/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/.pnpm/css-loader@7.1.4_webpack@5.109.2/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../node_modules/.pnpm/postcss-loader@8.2.1_@typescript+typescript6@6.0.2_postcss@8.5.26_webpack@5.109.2/node_modules/postcss-loader/dist/cjs.js??postcss!./res/themes/legacy-dark/css/legacy-dark.pcss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@layer compound-tokens, compound-web, shared-components, app-web;
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/*
 * SCSS variables defining a range of font sizes.
 *
 * These are defined in `rem` so that they scale with the `font-size` of the root element (which is adjustable via the
 * "Font size" setting). They exist to make the job of converting designs (which tend to be based in pixels) into CSS
 * easier.
 */

/*
 * These variables are now *deprecated* and should not be used in new code; instead Compound typographic tokens
 * should be used. Direct equivalents for these old font size tokens are listed below; where no equivalent exists,
 * that suggests that the design is using a non-standard font size and should be updated.
 *
 * In fact, modern Figma designs should actually use a named Typography style such as "Web/font/heading/sm/semibold",
 * translates directly to `font: var(--cpd-font-heading-sm-semibold)`.
 */ /* Compound equivalent: --cpd-font-size-body-xs */ /* Compound equivalent: --cpd-font-size-body-sm */ /* Compound equivalent: --cpd-font-size-body-md */ /* Compound equivalent: --cpd-font-size-body-lg */ /* Compound equivalent: --cpd-font-size-heading-sm */ /* Compound equivalent: --cpd-font-size-heading-md */ /* Compound equivalent: --cpd-font-size-heading-lg */ /* Compound equivalent: --cpd-font-size-heading-xl */
}
@layer app-web{

/*
 * Nunito.
 * Includes extended Latin and Vietnamese character sets
 * Current URLs are taken from
 * https://github.com/alexeiva/NunitoFont/releases/tag/v3.500
 * ...in order to include cyrillic.
 *
 * Previously, they were
 * https://fonts.googleapis.com/css?family=Nunito:400,400i,600,600i,700,700i&subset=latin-ext,vietnamese
 *
 * We explicitly do not include Nunito's italic variants, as they are not italic enough
 * and it's better to rely on the browser's built-in obliquing behaviour.
 */

/* Grab the other fonts from the current theme, so we can override to Inter */
/* in custom fonts if needed. */
}
@layer app-web{

/* the 'src' links are relative to the bundle.css, which is in a subdirectory.
 */

/* Twemoji COLR */
@font-face {
    font-family: "Twemoji";
    font-weight: 400;
    src: url(../../fonts/Twemoji_Mozilla/TwemojiMozilla-colr.666a113.woff2) format("woff2");
}
/* For at least Chrome on Windows 10, we have to explictly add extra weights for the emoji to appear in bold messages, etc. */
@font-face {
    font-family: "Twemoji";
    font-weight: 600;
    src: url(../../fonts/Twemoji_Mozilla/TwemojiMozilla-colr.666a113.woff2) format("woff2");
}
@font-face {
    font-family: "Twemoji";
    font-weight: 700;
    src: url(../../fonts/Twemoji_Mozilla/TwemojiMozilla-colr.666a113.woff2) format("woff2");
}
}
@layer app-web{
/* Nunito as the default, for old time's sake on legacy themes. */
/* the 'src' links are relative to the bundle.css, which is in a subdirectory.
 */
@font-face {
    font-family: "Nunito";
    font-style: normal;
    font-weight: 400;
    src: url(../../fonts/Nunito/Nunito-Regular.d3e2991.ttf) format("truetype");
}
@font-face {
    font-family: "Nunito";
    font-style: normal;
    font-weight: 600;
    src: url(../../fonts/Nunito/Nunito-SemiBold.58f5995.ttf) format("truetype");
}
@font-face {
    font-family: "Nunito";
    font-style: normal;
    font-weight: 700;
    src: url(../../fonts/Nunito/Nunito-Bold.b3a1698.ttf) format("truetype");
}
}
@layer app-web{

:root {
    /* This is set to Twemoji when the user opts into the bundled emoji font */
    --emoji-font-family: "";
}

/* Nunito lacks combining diacritics, so these will fall through
   to the next font.  Helevetica's diacritics sometimes do not combine
   nicely (on OSX, at least) and result in a huge horizontal mess.
   Arial empirically gets it right, hence prioritising Arial here. */
/* Noto Color Emoji contains digits, in fixed-width, therefore causing
   digits in flowed text to stand out.
   TODO: Consider putting all emoji fonts to the end rather than the front. */

/* unified palette */
/* try to use these colors when possible */

/* typical text (dark-on-white in light skin) */ /* Commonly used in headings and relevant alt text */

/* used for dialog box text */

/* used for focusing form controls */

/* button UI (white-on-green in light skin) */

/* informational plinth */

/* left-panel style muted accent color */

/* used by RoomDropTarget */

/* used by Autocomplete */

/* selected for hoverover & selected event tiles */

/* used for the hairline dividers in RoomView */

/* used for the border of input text fields */

/* apart from login forms, which have stronger border */

/* used for UserSettings EditableText */
/* scrollbars */
/* context menus */

/* ******************** */

/* Legacy theme backports */

/* Legacy theme backports */

/* ******************** */ /* XXX: Color from dark theme */

/* All of these are from dark theme */

/**
 * Creating a `semantic` color scale. This will not be needed with the new
 * visual language, but necessary during the transition period
 * This abstract the `green` away from where accent shades are used
 * Take: `background: rgba($accent, 0.1);`
 * would be transformed to: `background: $accent-300;`
 *
 * To use under very rare circumstances, always prefer the semantics defined
 * in https://compound.element.io/?path=/docs/tokens-semantic-colors--docs
 */

/* ******************** */

/* ******************** */

/* $event-highlight-bg-color shares this value, */
/* so to not make their order dependent on who depends on who, have a shared value */
/* defined before both */

/* event timestamp */

/* e2e */

/*** ImageView ***/

/* Tabbed views */

/* Buttons */ /* TODO: Verify color */

/* Toggle switch */

/* See non-legacy _light for variable information */

/* Bubble tiles */

/* pinned events indicator */

/* Location sharing */
/* ******************** */
/* ******************** */

body {
    color-scheme: light;
}

/* diff highlight colors */
.hljs-addition {
    background: #dfd;
}

.hljs-deletion {
    background: #fdd;
}
}
@layer app-web{
/* Colors from Figma Compound https://www.figma.com/file/X4XTH9iS2KGJ2wFKDqkyed/Compound?node-id=559%3A741 */

/* unified palette */
/* try to use these colors when possible */

/* typical text (dark-on-white in light skin) */

/* used for dialog box text */

/* used for focusing form controls */

/* informational plinth */

/* used by Autocomplete */

/* selected for hoverover & selected event tiles */

/* used for the hairline dividers in RoomView */

/* used for the border of input text fields */

/* scrollbars */

/* context menus */

/* Legacy theme backports */

/**
 * Creating a `semantic` color scale. This will not be needed with the new
 * visual language, but necessary during the transition period
 * This abstract the `green` away from where accent shades are used
 * Take: `background: rgba($accent, 0.1);`
 * would be transformed to: `background: $accent-300;`
 *
 * To use under very rare circumstances, always prefer the semantics defined
 * in https://compound.element.io/?path=/docs/tokens-semantic-colors--docs
 */
/* Legacy theme backports */

/* ******************** */

/* ******************** */

/* event timestamp */

/* Tabbed views */

/* Buttons */ /* TODO: Verify color */

/* Toggle switch */

/* See non-legacy dark for variable information */

/* Bubble tiles */

/* Location sharing */
/* ******************** */
/* ******************** */

body {
    color-scheme: dark;
}

/* Nasty hacks to apply a filter to arbitrary monochrome artwork to make it */
/* better match the theme.  Typically applied to dark grey 'off' buttons or */
/* light grey 'on' buttons. */
.mx_filterFlipColor {
    -webkit-filter: invert(1);
            filter: invert(1);
}

/* markdown overrides: */
        .mx_EventTile_content .markdown-body table tr {
            background-color: #000000;
        }

        .mx_EventTile_content .markdown-body table tr:nth-child(2n) {
            background-color: #080808;
        }

/* highlight.js overrides: */
.hljs-tag {
    color: inherit; /* Without this they'd be weirdly blue which doesn't match the theme */
}
}
@layer app-web{
/* autogenerated by rethemendex.sh */
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/**
 * React Transition Group animations are prefixed with 'mx_rtg--' so that we
 * know they should not be used anywhere outside of React Transition Groups.
*/

.mx_rtg--fade-enter {
    opacity: 0;
}
.mx_rtg--fade-enter-active {
    opacity: 1;
    -webkit-transition: opacity 300ms ease;
    transition: opacity 300ms ease;
}
.mx_rtg--fade-exit {
    opacity: 1;
}
.mx_rtg--fade-exit-active {
    opacity: 0;
    -webkit-transition: opacity 300ms ease;
    transition: opacity 300ms ease;
}

:root {
    --hover-transition: 0.08s cubic-bezier(0.46, 0.03, 0.52, 0.96); /* quadratic */
}

@-webkit-keyframes mx--anim-pulse {
    0% {
        opacity: 1;
    }
    50% {
        opacity: 0.7;
    }
    100% {
        opacity: 1;
    }
}

@keyframes mx--anim-pulse {
    0% {
        opacity: 1;
    }
    50% {
        opacity: 0.7;
    }
    100% {
        opacity: 1;
    }
}

@-webkit-keyframes mx_Dialog_lightbox_background_keyframes {
    from {
        opacity: 0;
    }
    to {
        opacity: 0.85;
    }
}

@keyframes mx_Dialog_lightbox_background_keyframes {
    from {
        opacity: 0;
    }
    to {
        opacity: 0.85;
    }
}

@-webkit-keyframes mx_ImageView_panel_keyframes {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes mx_ImageView_panel_keyframes {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@media (prefers-reduced-motion) {
    @-webkit-keyframes mx--anim-pulse {
        /* Override all keyframes in reduced-motion */
    }
    @keyframes mx--anim-pulse {
        /* Override all keyframes in reduced-motion */
    }

    @-webkit-keyframes mx_Dialog_lightbox_background_keyframes {
        /* Override all keyframes in reduced-motion */
    }

    @keyframes mx_Dialog_lightbox_background_keyframes {
        /* Override all keyframes in reduced-motion */
    }

    @-webkit-keyframes mx_ImageView_panel_keyframes {
        /* Override all keyframes in reduced-motion */
    }

    @keyframes mx_ImageView_panel_keyframes {
        /* Override all keyframes in reduced-motion */
    }

    .mx_rtg--fade-enter-active {
        -webkit-transition: none;
        transition: none;
    }
    .mx_rtg--fade-exit-active {
        -webkit-transition: none;
        transition: none;
    }
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019-2023 The Matrix.org Foundation C.I.C
Copyright 2017-2019 New Vector Ltd
Copyright 2017 Vector Creations Ltd
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
}
@layer app-web{
:root {
    --container-border-width: 8px;
    --container-gap-width: 8px; /* only even numbers should be used because otherwise we get 0.5px margin values. */
    --transition-short: 0.1s;
    --transition-standard: 0.3s;
    --buttons-dialog-gap-row: var(--cpd-space-2x);
    --buttons-dialog-gap-column: var(--cpd-space-2x);
    --MBody-border-radius: 8px;
    --EventTileBubble_margin-block: 10px;
    --MessageTimestamp-width: 46px; /* 8 + 30 (avatar) + 8 */

    /* Expected z-indexes for dialogs:
        4000 - Default wrapper index
        4009 - Static dialog background
        4010 - Static dialog itself
        4011 - Standard dialog background
        4012 - Standard dialog itself

       These are set up such that the static dialog always appears
       underneath the standard dialogs.
     */
    --dialog-zIndex-wrapper-default: 4000;
    --dialog-zIndex-static-background: 4009;
    --dialog-zIndex-static: calc(var(--dialog-zIndex-static-background) + 1); /* 4010 */
    --dialog-zIndex-standard-background: calc(var(--dialog-zIndex-static) + 1); /* 4011 */
    --dialog-zIndex-standard: calc(var(--dialog-zIndex-standard-background) + 1); /* 4012 */
}

#matrixchat {
    /* This is required to ensure Compound tooltips correctly draw where they should with z-index: auto */
    contain: strict;
}
#mx_ContextualMenu_Container,
#mx_PersistedElement_container,
#mx_Dialog_Container,
#mx_Dialog_StaticContainer {
    /* This is required to ensure Compound tooltips correctly draw where they should with z-index: auto */
    isolation: isolate;
}

/**
 * Disable pointer events inside the persistentElement container when the room-list is being resized.
 * This is necessary to avoid the pointer events from being hijacked by the content rendered inside
 * that div.
 */
:root:has(.mx_Separator[data-separator="active"]) #mx_PersistedElement_container {
    pointer-events: none;
}

/**
 * We need to increase the specificity of the selector to override the
 * custom property set by the design tokens package
 */
[class^="cpd-theme"][class^="cpd-theme"] {
    /**
     * The design tokens package currently does not expose the fallback fonts
     * We want to keep on re-using `$font-family` to not break custom themes
     * and because we can to use `Twemoji` to display emoji rather than using
     * system ones
     */
    --cpd-font-family-sans: "Nunito", var(--emoji-font-family), "Apple Color Emoji", "Segoe UI Emoji", "Arial", "Helvetica", sans-serif,
    "Noto Color Emoji";
}

@media (prefers-reduced-motion) {
    :root {
        --transition-short: 0;
        --transition-standard: 0;
    }
}

html {
    /* hack to stop overscroll bounce on OSX and iOS.
       N.B. Breaks things when we have legitimate horizontal overscroll */
    height: 100%;
    overflow: hidden;
    /* Stop similar overscroll bounce in Firefox Nightly for macOS */
    -ms-scroll-chaining: none;
        overscroll-behavior: none;
}

body {
    /* !important because compound overrides these font settings for body */
    font: var(--cpd-font-body-md-regular) !important;
    letter-spacing: var(--cpd-font-letter-spacing-body-md) !important;
    /**
     * We want to apply Inter Dynamic metrics (https://rsms.me/inter/dynmetrics/)
     * We need to tweak the `letter-spacing` property and doing so, disables by
     * default the optional ligatures
     * `font-feature-settings` allows us to override this behaviour and have the
     * correct ligatures and the proper dynamic metric spacing.
     */
    -webkit-font-feature-settings:
        "kern" 1,
        "liga" 1,
        "calt" 1 !important;
            font-feature-settings:
        "kern" 1,
        "liga" 1,
        "calt" 1 !important;

    background-color: #181b21;
    color: #edf3ff;
    border: 0px;
    margin: 0px;

    /* needed to match the designs correctly on macOS */
    /* see https://github.com/vector-im/element-web/issues/11425 */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

pre,
code {
    font-family: "Fira Code", "", "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji";
    font-family: "Fira Code", var(--emoji-font-family), "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji";
    font-size: 100% !important;
}

.error,
.warning,
.text-error,
.text-warning {
    color: #ff5b55;
}

.text-success {
    color: #0dbd8b;
}

.text-muted {
    color: #a1b2d1;
}

.text-primary {
    color: #edf3ff;
}

.text-secondary {
    color: #edf3ff;
}

.mx_Verified {
    color: #0dbd8b;
}

.mx_Untrusted {
    color: #ff5b55;
}

b {
    /* On Firefox, the default weight for `<b>` is `bolder` which results in no bold */
    /* effect since we only have specific weights of our fonts available. */
    font-weight: bold;
}

/* Keep the legacy link colour without overriding Compound anchors or shared timestamp styling. */
a:where(:not([data-kind]):not(.mx_MessageTimestamp)):hover,
a:where(:not([data-kind]):not(.mx_MessageTimestamp)):link,
a:where(:not([data-kind]):not(.mx_MessageTimestamp)):visited {
    color: #238cf5;
}

:not(.mx_no_textinput):not(.mx_textinput):not(.mx_Field) > input[type="text"],
:not(.mx_no_textinput):not(.mx_textinput):not(.mx_Field) > input[type="search"] {
    padding: 9px;
    font: var(--cpd-font-body-md-semibold);
    font-weight: var(--cpd-font-weight-semibold);
    min-width: 0;
}

input[type="text"].mx_textinput_icon,
input[type="search"].mx_textinput_icon {
    padding-left: 36px;
    background-repeat: no-repeat;
    background-position: 10px center;
}

/* FIXME THEME - Tint by CSS rather than referencing a duplicate asset */
input[type="text"].mx_textinput_icon.mx_textinput_search,
input[type="search"].mx_textinput_icon.mx_textinput_search {
    background-image: url(../../icons/search.7258145.svg);
}

/* dont search UI as not all browsers support it, */
/* we implement it ourselves where needed instead */
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration {
    display: none;
}

/* Override Firefox's UA style so we get a consistent look across browsers */
input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
    opacity: 1;
    opacity: initial;
}
input::-moz-placeholder, textarea::-moz-placeholder {
    opacity: 1;
    opacity: initial;
}
input:-ms-input-placeholder, textarea:-ms-input-placeholder {
    opacity: 1;
    opacity: initial;
}
input::-ms-input-placeholder, textarea::-ms-input-placeholder {
    opacity: 1;
    opacity: initial;
}
input::placeholder,
textarea::placeholder {
    opacity: 1;
    opacity: initial;
}

input[type="text"],
textarea {
    background-color: transparent;
    color: #edf3ff;
}

/* Required by Firefox */
textarea {
    color: #edf3ff;
}

input[type="text"]:focus,
textarea:focus {
    outline: none;
    -webkit-box-shadow: none;
            box-shadow: none;
}

/* This is used to hide the standard outline added by browsers for */
/* accessible (focusable) components. Not intended for buttons, but */
/* should be used on things like focusable containers where the outline */
/* is usually not helping anyone. */
*:focus:not(:focus-visible) {
    outline: none;
}

summary {
    cursor: pointer;
}

/* .mx_textinput is a container for a text input */
/* + some other controls like buttons, ... */
/* it has the appearance of a text box so the controls */
/* appear to be part of the input */
    .mx_Dialog .mx_textinput > input[type="text"],
    .mx_Dialog .mx_textinput > input[type="search"],
    .mx_MatrixChat_wrapper .mx_textinput > input[type="text"],
    .mx_MatrixChat_wrapper .mx_textinput > input[type="search"] {
        border: none;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        color: #edf3ff;
    }

    .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"],
    .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"],
    .mx_Dialog .mx_textinput,
    .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"],
    .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"],
    .mx_MatrixChat_wrapper .mx_textinput {
        display: block;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        background-color: transparent;
        color: #61708b;
        border-radius: 4px;
        border: 1px solid var(--cpd-color-gray-300);
        /* these things should probably not be defined globally */
        margin: 9px;
    }

    .mx_Dialog .mx_textinput, .mx_MatrixChat_wrapper .mx_textinput {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

    .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"]::-webkit-input-placeholder, .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"]::-webkit-input-placeholder, .mx_Dialog .mx_textinput input::-webkit-input-placeholder, .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"]::-webkit-input-placeholder, .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"]::-webkit-input-placeholder, .mx_MatrixChat_wrapper .mx_textinput input::-webkit-input-placeholder {
        color: var(--cpd-color-text-secondary);
    }

    .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"]::-moz-placeholder, .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"]::-moz-placeholder, .mx_Dialog .mx_textinput input::-moz-placeholder, .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"]::-moz-placeholder, .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"]::-moz-placeholder, .mx_MatrixChat_wrapper .mx_textinput input::-moz-placeholder {
        color: var(--cpd-color-text-secondary);
    }

    .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"]:-ms-input-placeholder, .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"]:-ms-input-placeholder, .mx_Dialog .mx_textinput input:-ms-input-placeholder, .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"]:-ms-input-placeholder, .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"]:-ms-input-placeholder, .mx_MatrixChat_wrapper .mx_textinput input:-ms-input-placeholder {
        color: var(--cpd-color-text-secondary);
    }

    .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"]::-ms-input-placeholder, .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"]::-ms-input-placeholder, .mx_Dialog .mx_textinput input::-ms-input-placeholder, .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"]::-ms-input-placeholder, .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"]::-ms-input-placeholder, .mx_MatrixChat_wrapper .mx_textinput input::-ms-input-placeholder {
        color: var(--cpd-color-text-secondary);
    }

    .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"]::placeholder,
    .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"]::placeholder,
    .mx_Dialog .mx_textinput input::placeholder,
    .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"]::placeholder,
    .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"]::placeholder,
    .mx_MatrixChat_wrapper .mx_textinput input::placeholder {
        color: var(--cpd-color-text-secondary);
    }

/* Prevent ugly dotted highlight around selected elements in Firefox */
::-moz-focus-inner {
    border: 0;
}

/* These are magic constants which are excluded from tinting, to let themes */
/* (which only have CSS) tell the app what their non-tinted */
/* colourscheme is by inspecting the stylesheet DOM. */
/* They are not used for layout!! */
#mx_theme_accentColor {
    color: #0dbd8b;
}

#mx_theme_secondaryAccentColor {
    color: #f2f5f8;
}

.mx_Dialog_wrapper {
    position: fixed;
    z-index: 4000;
    z-index: var(--dialog-zIndex-wrapper-default);
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
}

.mx_Dialog_border {
    z-index: calc(calc(calc(4009 + 1) + 1) + 1);
    z-index: var(--dialog-zIndex-standard);
    position: relative;
    width: 100%;
    max-width: -webkit-fit-content;
    max-width: -moz-fit-content;
    max-width: fit-content;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    max-height: calc(100% - var(--cpd-space-6x));
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

    .mx_Dialog_lightbox .mx_Dialog_border {
        /* The lightbox isn't so much of a dialog as a fullscreen overlay. We
        don't want the glass border. */
        display: contents;
    }

.mx_Dialog {
    background-color: #181b21;
    color: #c8c8cd;
    font-size: 0.9375rem;
    position: relative;
    padding: var(--cpd-space-8x) var(--cpd-space-10x);
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    overflow-y: auto;
}

    .mx_Dialog_staticWrapper .mx_Dialog {
        z-index: calc(4009 + 1);
        z-index: var(--dialog-zIndex-static);
        contain: content;
    }

    .mx_Dialog_lightbox .mx_Dialog {
        border-radius: 0px;
        background-color: transparent;
        width: 100%;
        height: 100%;
        max-width: 100%;
        max-height: 100%;
        pointer-events: none;
        padding: 0;
    }

    /* Styles copied/inspired by GroupLayout, ReplyTile, and EventTile variants. */
    .mx_Dialog .markdown-body {
        font: var(--cpd-font-body-md-regular) !important;
        letter-spacing: var(--cpd-font-letter-spacing-body-md);
        font-family: inherit !important;
        white-space: normal !important;
        line-height: inherit !important;
        background-color: inherit;
        color: inherit;

        /* Make h1 and h2 the same size as h3. */
    } /* inherit the colour from the dark or light theme by default (but not for code blocks) */

        .mx_Dialog .markdown-body pre,
        .mx_Dialog .markdown-body code {
            font-family: "Fira Code", "", "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji" !important;
            font-family: "Fira Code", var(--emoji-font-family), "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji" !important;
            background-color: #2a3039;
        }

        /* this selector wrongly applies to code blocks too but we will unset it in the next one */
        .mx_Dialog .markdown-body code {
            white-space: pre-wrap; /* don't collapse spaces in inline code blocks */
        }

        .mx_Dialog .markdown-body pre {
            /* have to use overlay rather than auto otherwise Linux and Windows */
            /* Chrome gets very confused about vertical spacing: */
            /* https://github.com/vector-im/vector-web/issues/754 */
            overflow-x: overlay;
            overflow-y: visible;
        }

            .mx_Dialog .markdown-body pre::-webkit-scrollbar-corner {
                background: transparent;
            }

            .mx_Dialog .markdown-body pre code {
                white-space: pre; /* we want code blocks to be scrollable and not wrap */
            }

                .mx_Dialog .markdown-body pre code > * {
                    display: inline;
                }

        .mx_Dialog .markdown-body h1,
        .mx_Dialog .markdown-body h2,
        .mx_Dialog .markdown-body h3,
        .mx_Dialog .markdown-body h4,
        .mx_Dialog .markdown-body h5,
        .mx_Dialog .markdown-body h6 {
            font-family: inherit !important;
            color: inherit;
        }
        .mx_Dialog .markdown-body h1,
        .mx_Dialog .markdown-body h2 {
            font-size: 1.5em;
            border-bottom: none !important; /* override GFM */
        }

        .mx_Dialog .markdown-body a {
            color: #238cf5;
        }

        .mx_Dialog .markdown-body blockquote {
            border-left: 2px solid var(--cpd-color-border-interactive-primary);
            color: #edf3ff;
            border-radius: 2px;
            padding: 0 10px;
        }

.mx_Dialog_fixedWidth {
    width: 60vw;
    max-width: 704px;
}

.mx_Dialog_background {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #00000080;
    z-index: calc(calc(4009 + 1) + 1);
    z-index: var(--dialog-zIndex-standard-background);
}

    .mx_Dialog_background.mx_Dialog_staticBackground {
        z-index: 4009;
        z-index: var(--dialog-zIndex-static-background);
    }

    .mx_Dialog_wrapperWithStaticUnder .mx_Dialog_background {
        /* Roughly half of what it would normally be - we don't want to black out */
        /* the app, just make it clear that the dialogs are stacked. */
        opacity: 0.4;
    }

    .mx_Dialog_lightbox .mx_Dialog_background {
        opacity: 0.85;
        background-color: #000;
        -webkit-animation-name: mx_Dialog_lightbox_background_keyframes;
                animation-name: mx_Dialog_lightbox_background_keyframes;
        -webkit-animation-duration: 300ms;
                animation-duration: 300ms;
    }

.mx_Dialog_titleImage {
    vertical-align: sub;
    width: 25px;
    height: 25px;
    margin-left: -2px;
    margin-right: 4px;
    margin-bottom: 2px;
}

.mx_Dialog_title {
    color: #edf3ff;
    display: inline-block;
    width: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    letter-spacing: var(--cpd-font-letter-spacing-heading-lg);
}

    .mx_Dialog_title.danger {
        color: #ff5b55;
    }

.mx_Dialog_header {
    position: relative;
    padding: 0;
    -webkit-padding-end: 20px;
            padding-inline-end: 20px; /* Reserve room for the close button */
    margin-bottom: var(--cpd-space-2x);
}

    .mx_Dialog_header.mx_Dialog_headerWithButton > .mx_Dialog_title {
        text-align: center;
    }

.mx_Dialog_cancelButton {
    width: 20px;
    height: 20px;
    padding: var(--cpd-space-1x);
    border-radius: 14px;
    background-color: var(--cpd-color-bg-subtle-secondary);
}
    .mx_Dialog_cancelButton:hover {
        background-color: var(--cpd-color-bg-subtle-primary);
    }
    .mx_Dialog_cancelButton svg {
        width: inherit;
        height: inherit;
        vertical-align: top;
        color: var(--cpd-color-icon-secondary);
    }
    .mx_Dialog_cancelButton{
    position: absolute;
    top: var(--cpd-space-4x);
    right: var(--cpd-space-4x);
}

.mx_Dialog_content {
    margin: 24px 0 68px;
    font: var(--cpd-font-body-md-regular);
    color: #edf3ff;
    word-wrap: break-word;
}

.mx_Dialog_buttons {
    margin-top: var(--cpd-space-5x);
    -webkit-margin-start: auto;
            margin-inline-start: auto;
    text-align: right;
}

    .mx_Dialog_buttons .mx_Dialog_buttons_additive {
        /* The consumer is responsible for positioning their elements. */
        float: left;
    }

    .mx_Dialog_buttons .mx_Dialog_buttons_row {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        -webkit-box-pack: end;
            -ms-flex-pack: end;
                justify-content: flex-end;
        text-align: left;
        text-align: initial;
        -webkit-margin-start: auto;
                margin-inline-start: auto;

        /* default gap among elements */
        -webkit-column-gap: var(--buttons-dialog-gap-column);
           -moz-column-gap: var(--buttons-dialog-gap-column);
                column-gap: var(--buttons-dialog-gap-column);
        row-gap: var(--buttons-dialog-gap-row);
    }

        .mx_Dialog_buttons .mx_Dialog_buttons_row button {
            margin: 0 !important; /* override the margin settings */
        }

/* XXX: Our button style are a mess: buttons that happen to appear in dialogs get special styles applied
 * to them that no button anywhere else in the app gets by default. In practice, buttons in other places
 * in the app look the same by being AccessibleButtons, or possibly by having explict button classes.
 * We should go through and have one consistent set of styles for buttons throughout the app.
 * For now, I am duplicating the selectors here for mx_Dialog and mx_DialogButtons.
 */
.mx_Dialog
    button:not(
        .mx_EncryptionUserSettingsTab button,
        .mx_EncryptionCard button,
        .mx_UserProfileSettings button,
        .mx_ShareDialog button,
        .mx_UnpinAllDialog button,
        .mx_ThemeChoicePanel_CustomTheme button,
        .mx_Dialog_nonDialogButton,
        .mx_AccessibleButton,
        .mx_IdentityServerPicker button,
        .mx_AccessSecretStorageDialog button,
        .mx_InviteDialog_section button,
        .mx_InviteDialog_editor button,
        .mx_UnknownIdentityUsersWarningDialog button,
        .mx_ThreadActionBar button,
        .mx_HistoryActionBar button,
        [data-kind],
        [class|="maplibregl"]
    ),
.mx_Dialog_buttons button:not(.mx_Dialog_nonDialogButton, .mx_AccessibleButton, [data-kind]),
.mx_Dialog input[type="submit"],
.mx_Dialog_buttons input[type="submit"] {
    /* align images in buttons (eg spinners) */
    vertical-align: middle;
    border: 0px;
    border-radius: 24px;
    font: var(--cpd-font-body-md-regular);
    color: white;
    background-color: var(--cpd-color-bg-action-primary-rest);
    width: auto;
    padding: 7px;
    padding-left: 1.5em;
    padding-right: 1.5em;
    cursor: pointer;
    display: inline-block;

    /* flip colours for the secondary ones */
}
    .mx_Dialog
    button:not(
        .mx_EncryptionUserSettingsTab button,
        .mx_EncryptionCard button,
        .mx_UserProfileSettings button,
        .mx_ShareDialog button,
        .mx_UnpinAllDialog button,
        .mx_ThemeChoicePanel_CustomTheme button,
        .mx_Dialog_nonDialogButton,
        .mx_AccessibleButton,
        .mx_IdentityServerPicker button,
        .mx_AccessSecretStorageDialog button,
        .mx_InviteDialog_section button,
        .mx_InviteDialog_editor button,
        .mx_UnknownIdentityUsersWarningDialog button,
        .mx_ThreadActionBar button,
        .mx_HistoryActionBar button,
        [data-kind],
        [class|="maplibregl"]
    ):not(:focus-visible), .mx_Dialog_buttons button:not(.mx_Dialog_nonDialogButton, .mx_AccessibleButton, [data-kind]):not(:focus-visible), .mx_Dialog input[type="submit"]:not(:focus-visible), .mx_Dialog_buttons input[type="submit"]:not(:focus-visible) {
        outline: none;
    }
    .mx_Dialog
    button:not(
        .mx_EncryptionUserSettingsTab button,
        .mx_EncryptionCard button,
        .mx_UserProfileSettings button,
        .mx_ShareDialog button,
        .mx_UnpinAllDialog button,
        .mx_ThemeChoicePanel_CustomTheme button,
        .mx_Dialog_nonDialogButton,
        .mx_AccessibleButton,
        .mx_IdentityServerPicker button,
        .mx_AccessSecretStorageDialog button,
        .mx_InviteDialog_section button,
        .mx_InviteDialog_editor button,
        .mx_UnknownIdentityUsersWarningDialog button,
        .mx_ThreadActionBar button,
        .mx_HistoryActionBar button,
        [data-kind],
        [class|="maplibregl"]
    ),
.mx_Dialog_buttons button:not(.mx_Dialog_nonDialogButton, .mx_AccessibleButton, [data-kind]),
.mx_Dialog input[type="submit"],
.mx_Dialog_buttons input[type="submit"]{
    margin-left: 0px;
    margin-right: var(--buttons-dialog-gap-column);
    margin-bottom: 5px;
    font-weight: var(--cpd-font-weight-semibold);
    border: 1px solid var(--cpd-color-border-interactive-secondary);
    color: var(--cpd-color-text-primary);
    background-color: transparent;
    font-family: inherit;
}

.mx_Dialog
    button:not(
        .mx_Dialog_nonDialogButton,
        [class|="maplibregl"],
        .mx_AccessibleButton,
        .mx_UserProfileSettings button,
        .mx_ThemeChoicePanel_CustomTheme button,
        .mx_UnpinAllDialog button,
        .mx_ShareDialog button,
        .mx_EncryptionUserSettingsTab button,
        .mx_UnknownIdentityUsersWarningDialog button,
        [data-kind]
    ):last-child {
    margin-right: 0px;
}

.mx_Dialog
    button:not(
        .mx_Dialog_nonDialogButton,
        [class|="maplibregl"],
        .mx_AccessibleButton,
        .mx_UserProfileSettings button,
        .mx_ThemeChoicePanel_CustomTheme button,
        .mx_UnpinAllDialog button,
        .mx_ShareDialog button,
        .mx_EncryptionUserSettingsTab button,
        .mx_InviteDialog_section button,
        .mx_InviteDialog_editor button,
        .mx_UnknownIdentityUsersWarningDialog button,
        [data-kind]
    ):focus,
.mx_Dialog input[type="submit"]:focus,
.mx_Dialog_buttons button:not(.mx_Dialog_nonDialogButton, .mx_AccessibleButton, [data-kind]):focus,
.mx_Dialog_buttons input[type="submit"]:focus {
    -webkit-filter: brightness(105%);
            filter: brightness(105%);
}

.mx_Dialog button.mx_Dialog_primary:not(.mx_Dialog_nonDialogButton, [class|="maplibregl"], [data-kind]),
.mx_Dialog input[type="submit"].mx_Dialog_primary,
.mx_Dialog_buttons
    button:not(
        .mx_Dialog_nonDialogButton,
        .mx_AccessibleButton,
        .cancel,
        .mx_UserProfileSettings button,
        .mx_ThemeChoicePanel_CustomTheme button,
        .mx_UnpinAllDialog button,
        .mx_ShareDialog button,
        .mx_EncryptionUserSettingsTab button,
        .mx_UnknownIdentityUsersWarningDialog button,
        [data-kind]
    ),
.mx_Dialog_buttons input[type="submit"].mx_Dialog_primary {
    color: var(--cpd-color-text-on-solid-primary);
    background-color: var(--cpd-color-bg-action-primary-rest);
    border-color: var(--cpd-color-bg-action-primary-rest);
    min-width: 156px;
}

.mx_Dialog button.danger:not(.mx_Dialog_nonDialogButton, [class|="maplibregl"]),
.mx_Dialog input[type="submit"].danger,
.mx_Dialog_buttons
    button.danger:not(
        .mx_Dialog_nonDialogButton,
        .mx_AccessibleButton,
        .mx_UserProfileSettings button,
        .mx_ThemeChoicePanel_CustomTheme button,
        .mx_UnpinAllDialog button,
        .mx_ShareDialog button,
        .mx_EncryptionUserSettingsTab button,
        .mx_UnknownIdentityUsersWarningDialog button
    ),
.mx_Dialog_buttons input[type="submit"].danger {
    background-color: var(--cpd-color-bg-critical-primary);
    border: solid 1px var(--cpd-color-bg-critical-primary);
    color: var(--cpd-color-text-on-solid-primary);
}

.mx_Dialog button.warning:not(.mx_Dialog_nonDialogButton, [class|="maplibregl"]),
.mx_Dialog input[type="submit"].warning {
    border: solid 1px var(--cpd-color-border-critical-subtle);
    color: var(--cpd-color-text-critical-primary);
}

.mx_Dialog
    button:not(
        .mx_Dialog_nonDialogButton,
        [class|="maplibregl"],
        .mx_AccessibleButton,
        .mx_UserProfileSettings button,
        .mx_ThemeChoicePanel_CustomTheme button,
        .mx_UnpinAllDialog button,
        .mx_ShareDialog button,
        .mx_EncryptionUserSettingsTab button,
        .mx_UnknownIdentityUsersWarningDialog button,
        [data-kind]
    ):disabled,
.mx_Dialog input[type="submit"]:disabled,
.mx_Dialog_buttons button:not(.mx_Dialog_nonDialogButton, .mx_AccessibleButton):disabled,
.mx_Dialog_buttons input[type="submit"]:disabled {
    background-color: #c8c8cd;
    border: solid 1px #c8c8cd;
    opacity: 0.7;
}

.mx_Dialog_buttons button.cancel {
    color: var(--cpd-color-text-primary);
    background-color: var(--cpd-color-bg-action-secondary-rest);
    border-color: var(--cpd-color-border-interactive-secondary);
    min-width: 156px;
}

/* Spinner Dialog overide */
    /* This is not a real dialog, so we shouldn't show a glass border */
    .mx_Dialog_wrapper.mx_Dialog_spinner .mx_Dialog_border {
        display: contents;
    }

    .mx_Dialog_wrapper.mx_Dialog_spinner .mx_Dialog {
        inline-size: auto;
        block-size: auto;
        border-radius: 8px;
        padding: 8px;
        -webkit-box-shadow: none;
                box-shadow: none;

        /* Don't show scroll-bars on spinner dialogs */
        overflow-x: hidden;
        overflow-y: hidden;
    }

/* TODO: Review mx_GeneralButton usage to see if it can use a different class */
/* These classes were brought in from the old UserSettings and are included here to avoid */
/* breaking the app. */
/* Ref: https://github.com/vector-im/element-web/issues/8420 */
.mx_GeneralButton {
    /* align images in buttons (eg spinners) */
    vertical-align: middle;
    border: 0px;
    border-radius: 24px;
    font: var(--cpd-font-body-md-regular);
    color: white;
    background-color: var(--cpd-color-bg-action-primary-rest);
    width: auto;
    padding: 7px;
    padding-left: 1.5em;
    padding-right: 1.5em;
    cursor: pointer;
    display: inline-block;
}
    .mx_GeneralButton:not(:focus-visible) {
        outline: none;
    }
    .mx_GeneralButton{
    display: inline;
    margin: auto;
}

.mx_TextInputDialog_label {
    text-align: left;
    padding-bottom: 12px;
}

.mx_TextInputDialog_input {
    font-size: 0.9375rem;
    border-radius: 3px;
    border: 1px solid #e7e7e7;
    padding: 9px;
    color: #edf3ff;
    background-color: #181b21;
}

.mx_button_row {
    margin-top: 69px;
}

/* username colors */
/* used by SenderProfile & RoomPreviewBar */
.mx_Username_color1 {
    color: var(--cpd-color-text-decorative-1);
}

.mx_Username_color2 {
    color: var(--cpd-color-text-decorative-2);
}

.mx_Username_color3 {
    color: var(--cpd-color-text-decorative-3);
}

.mx_Username_color4 {
    color: var(--cpd-color-text-decorative-4);
}

.mx_Username_color5 {
    color: var(--cpd-color-text-decorative-5);
}

.mx_Username_color6 {
    color: var(--cpd-color-text-decorative-6);
}

.mx_AppWarning,
.mx_AppPermission {
    text-align: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    height: 100%;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_lineClamp {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    -webkit-line-clamp: var(--mx-line-clamp, 1);
    overflow: hidden;
}

/* Layout compatibility hook for timestamp placement in existing app/web timeline surfaces. */
.mx_MessageTimestamp {
    display: block; /* enable the width setting below */
    width: 46px;
    width: var(--MessageTimestamp-width);
}
}
@layer app-web{
/* Auto-generated by scripts/extract-brand-colors.py from /root/metmet/hydrogen-html/logo.png — do not edit by hand. */
:root {
    --metmet-brand-primary: #028e91;
    --metmet-brand-secondary: #3ac6cb;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_BeaconListItem {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    padding: var(--cpd-space-3x) 0;

    border-bottom: 1px solid #21262c;

    cursor: pointer;
}

.mx_BeaconListItem_avatarIcon {
    -webkit-box-flex: 0;
        -ms-flex: 0 0;
            flex: 0 0;
    height: 32px;
    width: 32px;
}

.mx_BeaconListItem_avatar {
    -webkit-box-flex: 0;
        -ms-flex: 0 0;
            flex: 0 0;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;

    margin-right: var(--cpd-space-2x);
    border: 2px solid #5c56f5;
    border-radius: 50%;
}

.mx_BeaconListItem_info {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    width: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
}

.mx_BeaconListItem_status {
    /* override beacon status padding */
    padding: 0 !important;
    margin-bottom: var(--cpd-space-2x);
}

    .mx_BeaconListItem_status .mx_BeaconStatus_label {
        font-weight: var(--cpd-font-weight-semibold);
    }

.mx_BeaconListItem_lastUpdated {
    color: #edf3ff;
    font-size: 0.625rem;
}

.mx_BeaconListItem_interactions {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_BeaconStatus {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;

    -webkit-box-sizing: border-box;

            box-sizing: border-box;
    padding: var(--cpd-space-2x);

    color: var(--color);
    font-size: 0.75rem;
}

.mx_BeaconStatus_Loading,
.mx_BeaconStatus_Stopped {
    --color: #edf3ff;
}

.mx_BeaconStatus_Active,
.mx_BeaconStatus_Error {
    --color: #edf3ff;
}

.mx_BeaconStatus_icon {
    height: 32px;
    width: 32px;

    -webkit-box-flex: 0;

        -ms-flex: 0 0 32px;

            flex: 0 0 32px;
    margin-right: var(--cpd-space-2x);
}

.mx_BeaconStatus_description {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    line-height: 0.875rem;

    padding-right: var(--cpd-space-2x);

    white-space: nowrap;
    overflow: hidden;
}

    .mx_BeaconStatus_description .mx_BeaconStatus_description_status {
        text-overflow: ellipsis;
        overflow: hidden;
    }

.mx_BeaconStatus_expiryTime {
    color: #edf3ff;
}

.mx_BeaconStatus_label {
    margin-bottom: 2px;
    overflow: hidden;
    text-overflow: ellipsis;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_BeaconStatusTooltip {
    position: absolute;
    top: 42px;
    max-width: 150px;
    height: 38px;
    -webkit-box-sizing: content-box;
            box-sizing: content-box;
    padding-top: var(--cpd-space-2x);
}

.mx_BeaconStatusTooltip_inner {
    position: relative;
    height: 100%;
    border-radius: 4px;
    background: #22262e;
    -webkit-box-shadow: 4px 4px 12px 0 #181b21;
            box-shadow: 4px 4px 12px 0 #181b21;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_BeaconViewDialog_wrapper .mx_Dialog {
    padding: 0px;

    /* Unset contain and position to allow the close button
    to appear outside the dialog */
    contain: unset;
    position: static;
    position: initial;
}

.mx_BeaconViewDialog {
    /* subtract 0.5px to prevent single-pixel margin due to rounding */
    width: calc(80vw - 0.5px);
    height: calc(80vh - 0.5px);
    overflow: hidden;

    /* sidebar is absolutely positioned inside */
    position: relative;
}

    .mx_BeaconViewDialog .mx_Dialog_header {
        margin: 0px;
        padding: 0px;
        position: static;
        position: initial;
    }

        .mx_BeaconViewDialog .mx_Dialog_header .mx_Dialog_title {
            display: none;
        }

        .mx_BeaconViewDialog .mx_Dialog_header .mx_Dialog_cancelButton {
            z-index: 4010;
            position: fixed;
            right: 5vw;
            top: 5vh;
            width: 20px;
            height: 20px;
            background-color: #edf3ff;
        }

.mx_BeaconViewDialog_map {
    width: 80vw;
    height: 80vh;
    border-radius: 8px;
}

.mx_BeaconViewDialog_mapFallbackMessage {
    color: #edf3ff;
    margin-bottom: var(--cpd-space-4x);
}

.mx_BeaconViewDialog_viewListButton {
    position: absolute;
    top: var(--cpd-space-6x);
    left: var(--cpd-space-6x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DialogOwnBeaconStatus {
    position: absolute;
    bottom: var(--cpd-space-8x);
    width: 300px;
    margin-left: -150px;
    left: 50%;

    -webkit-box-sizing: border-box;

            box-sizing: border-box;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-pack: stretch;
        -ms-flex-pack: stretch;
            justify-content: stretch;

    background: #181b21;
    border-radius: 8px;
    -webkit-box-shadow: 4px 4px 12px 0 #181b21;
            box-shadow: 4px 4px 12px 0 #181b21;

    padding: 0 var(--cpd-space-3x);
}

.mx_DialogOwnBeaconStatus_avatarIcon {
    -webkit-box-flex: 0;
        -ms-flex: 0 0;
            flex: 0 0;
    height: 32px;
    width: 32px;
    margin: var(--cpd-space-2x) 0 var(--cpd-space-2x) 0;
}

.mx_DialogOwnBeaconStatus_avatar {
    -webkit-box-flex: 0;
        -ms-flex: 0 0;
            flex: 0 0;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;

    border: 2px solid #5c56f5;
    border-radius: 50%;
    margin: var(--cpd-space-2x) 0 var(--cpd-space-2x) 0;
}

.mx_DialogOwnBeaconStatus_status {
    -webkit-box-flex: 1;
        -ms-flex: 1 1;
            flex: 1 1;
    padding-right: 0;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DialogSidebar {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 265px;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;

    -webkit-box-sizing: border-box;

            box-sizing: border-box;
    padding: var(--cpd-space-4x);

    background-color: #181b21;
    -webkit-box-shadow: 0px 4px 4px #181b21;
            box-shadow: 0px 4px 4px #181b21;
}

    .mx_DialogSidebar .mx_DialogSidebar_header {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-pack: justify;
            -ms-flex-pack: justify;
                justify-content: space-between;

        -webkit-box-flex: 0;

            -ms-flex: 0 0;

                flex: 0 0;
        margin-bottom: var(--cpd-space-4x);

        color: #edf3ff;
    }

        .mx_DialogSidebar .mx_DialogSidebar_header .mx_DialogSidebar_closeButtonIcon {
            color: #edf3ff;
        }

    .mx_DialogSidebar .mx_DialogSidebar_list {
        list-style: none;
        padding: 0;
        margin: 0;
        -webkit-box-flex: 1;
            -ms-flex: 1 1 0px;
                flex: 1 1 0;
        width: 100%;
        overflow: auto;
    }

.mx_DialogSidebar_noResults {
    font: var(--cpd-font-body-md-regular);
    color: #edf3ff;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LeftPanelLiveShareWarning {
    width: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;

    padding: var(--cpd-space-1x);
    text-align: center;

    background-color: #0dbd8b;
    color: #fff;
    font-size: 0.625rem;

    /* panel backdrops overlay the whole sidepanel */
    /* go above to get hover for title */
    z-index: 1;
}

.mx_LeftPanelLiveShareWarning__error {
    background-color: #ff5b55;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LiveTimeRemaining {
    color: #edf3ff;
    font-size: 0.75rem;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_OwnBeaconStatus_button {
    margin-left: var(--cpd-space-2x);
}

.mx_EventTile[data-layout="bubble"] .mx_OwnBeaconStatus_button {
    /* align to top to make room for timestamp */
    /* in bubble view */
    -ms-flex-item-align: start;
        align-self: start;
}

.mx_OwnBeaconStatus_destructiveButton {
    /* override button link_inline styles */
    color: #ff5b55 !important;
    font-weight: var(--cpd-font-weight-semibold) !important;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ShareLatestLocation_icon {
    height: 13px;
    width: 13px;
    color: #edf3ff;
}

/* double class to be more specific than the general mx_CopyableText CSS rule */
    /* override copyable text style to make compact */
    .mx_CopyableText.mx_ShareLatestLocation_copy .mx_CopyableText_copyButton {
        height: 13px;
        margin-left: var(--cpd-space-2x) !important;
        position: relative;
        top: -1px;
        width: 13px;
    }

        .mx_CopyableText.mx_ShareLatestLocation_copy .mx_CopyableText_copyButton::before {
            background-color: #edf3ff;
            height: 13px;
            width: 13px;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_StyledLiveBeaconIcon {
    -webkit-box-flex: 0;
        -ms-flex-positive: 0;
            flex-grow: 0;
    -ms-flex-negative: 0;
        flex-shrink: 0;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    border-width: 2px;
    border-style: solid;
    border-radius: 50%;

    background-color: #5c56f5;
    border-color: #5c56f5;
    padding: 2px;
    /* colors icon */
    color: white;
}

.mx_StyledLiveBeaconIcon.mx_StyledLiveBeaconIcon_error {
    background-color: #ff5b55;
    border-color: #ff5b55;
}

.mx_StyledLiveBeaconIcon.mx_StyledLiveBeaconIcon_idle {
    background-color: #6f7882;
    border-color: #6f7882;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_KebabContextMenu_icon {
    width: 24px;
    height: 24px;
    color: var(--cpd-color-icon-tertiary);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PollDetailHeader {
    /* override accessiblebutton style */
    font-size: 0.9375rem !important;
}

.mx_PollDetailHeader_icon {
    height: 16px;
    width: 16px;
    margin-right: var(--cpd-space-2x);
    vertical-align: middle;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PollListItem {
    width: 100%;
}

.mx_PollListItem_content {
    width: 100%;
    display: grid;
    -webkit-box-pack: left;
        -ms-flex-pack: left;
            justify-content: left;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    grid-gap: var(--cpd-space-2x);
    gap: var(--cpd-space-2x);
    grid-template-columns: auto auto auto;
    grid-template-rows: auto;
    cursor: pointer;

    color: #edf3ff;
}

.mx_PollListItem_icon {
    height: 14px;
    width: 14px;
    color: #6f7882;
    padding-left: var(--cpd-space-2x);
}

.mx_PollListItem_question {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PollListItemEnded {
    width: 100%;
}

.mx_PollListItemEnded_content {
    width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    color: #edf3ff;
    cursor: pointer;
}

.mx_PollListItemEnded_title {
    display: grid;
    -webkit-box-pack: left;
        -ms-flex-pack: left;
            justify-content: left;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    grid-gap: var(--cpd-space-2x);
    gap: var(--cpd-space-2x);
    grid-template-columns: -webkit-min-content 1fr -webkit-min-content;
    grid-template-columns: min-content 1fr min-content;
    grid-template-rows: auto;
}

.mx_PollListItemEnded_icon {
    height: 14px;
    width: 14px;
    color: #6f7882;
    padding-left: var(--cpd-space-2x);
}

.mx_PollListItemEnded_date {
    font-size: 0.75rem;
    color: #edf3ff;
}

.mx_PollListItemEnded_question {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mx_PollListItemEnded_answers {
    display: grid;
    grid-gap: var(--cpd-space-2x);
    gap: var(--cpd-space-2x);
    margin-top: var(--cpd-space-3x);
}

.mx_PollListItemEnded_voteCount {
    /* 6px to match PollOption padding */
    margin: var(--cpd-space-2x) 0 0 6px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019-2023 The Matrix.org Foundation C.I.C.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AppPermission {
    font-size: 0.75rem;
    width: 100%; /* make mx_AppPermission fill width of mx_AppTileBody so that scroll bar appears on the edge */
    overflow-y: scroll;
}
    .mx_AppPermission .mx_AppPermission_bolder,
    .mx_AppPermission .mx_AppPermission_content_bolder {
        font-weight: var(--cpd-font-weight-semibold);
    }
    .mx_AppPermission .mx_AppPermission_content {
        margin-block: auto; /* place at the center */
    }

        .mx_AppPermission .mx_AppPermission_content > div {
            margin-block: 12px;
        }

        .mx_AppPermission .mx_AppPermission_content .mx_TextWithTooltip_target--helpIcon {
            display: inline-block;
            height: 0.875rem; /* align with characters on the same line */
            vertical-align: middle;
        }

            .mx_AppPermission .mx_AppPermission_content .mx_TextWithTooltip_target--helpIcon .mx_Icon {
                color: #0dbd8b;
            }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 Suguru Hirahara

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AppWarning {
    font-size: 1rem;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
}

    .mx_AppWarning h4 {
        margin: 0;
        padding: 0;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_FilterDropdown .mx_Dropdown_menu {
        margin-top: var(--cpd-space-1x);
        left: auto;
        left: initial;
        right: calc(-1 * var(--cpd-space-3x));
        width: 232px;
        padding: var(--cpd-space-3x);

        border: 1px solid #6f7882;
        border-radius: 8px;
        -webkit-box-shadow: 0px 1px 3px rgb(23, 25, 28, 0.05);
                box-shadow: 0px 1px 3px rgb(23, 25, 28, 0.05);

        background-color: #21262c;
    }

        .mx_FilterDropdown .mx_Dropdown_menu .mx_Dropdown_option_highlight {
            background-color: transparent;
        }

    .mx_FilterDropdown .mx_Dropdown_input {
        height: 24px;
        background-color: transparent;
        border-color: transparent;
        color: #edf3ff;
        border-radius: 4px;
    }

        .mx_FilterDropdown .mx_Dropdown_input:focus,
        .mx_FilterDropdown .mx_Dropdown_input:hover {
            background-color: #6f7882;
            border-color: #6f7882;
        }

    .mx_FilterDropdown .mx_Dropdown_arrow {
        color: #edf3ff;
    }

.mx_FilterDropdown_option {
    position: relative;
    width: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    padding: var(--cpd-space-2x) 0 var(--cpd-space-2x) var(--cpd-space-5x);

    font-size: 0.75rem;
    line-height: 0.9375rem;
    color: #edf3ff;
}

.mx_FilterDropdown_optionSelectedIcon {
    height: 14px;
    width: 14px;
    position: absolute;
    top: var(--cpd-space-2x);
    left: 0;
}

.mx_FilterDropdown_optionLabel {
    font-weight: var(--cpd-font-weight-semibold);
    display: block;
}

.mx_FilterDropdown_optionDescription {
    color: #edf3ff;
    margin-top: var(--cpd-space-1x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_FilterTabGroup {
    /* Reset the browser default <fieldset> styling */
    display: inline-block;
    margin-inline: unset;
    padding-block: unset;
    padding-inline: unset;
    min-inline-size: unset;
    border: none;

    color: #edf3ff;
}
    .mx_FilterTabGroup label {
        margin-right: var(--cpd-space-3x);
        cursor: pointer;
    }
        .mx_FilterTabGroup label span {
            display: inline-block;
            line-height: 1.5rem;
        }
    .mx_FilterTabGroup input[type="radio"] {
        -webkit-appearance: none;
           -moz-appearance: none;
                appearance: none;
        margin: 0;
        padding: 0;
    }
            .mx_FilterTabGroup input[type="radio"]:focus + span, .mx_FilterTabGroup input[type="radio"]:hover + span {
                color: #edf3ff;
            }

        .mx_FilterTabGroup input[type="radio"]:checked + span {
            color: #0dbd8b;
            font-weight: var(--cpd-font-weight-semibold);
            /* underline */
            -webkit-box-shadow: 0 1.5px 0 0 currentColor;
                    box-shadow: 0 1.5px 0 0 currentColor;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LearnMore_button {
    margin-left: var(--cpd-space-1x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_EnableLiveShare {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;

    padding: var(--cpd-space-8x) var(--cpd-space-4x);
    text-align: center;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

.mx_EnableLiveShare_heading {
    padding-top: var(--cpd-space-6x);
}

.mx_EnableLiveShare_icon {
    height: 58px;
    width: 58px;
}

.mx_EnableLiveShare_description {
    padding: 0 var(--cpd-space-6x);
    margin-bottom: var(--cpd-space-8x);
    line-height: 1.25rem;
}

.mx_EnableLiveShare_button {
    margin-top: var(--cpd-space-8x);
    height: 48px;
    width: 100%;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LiveDurationDropdown {
    margin-bottom: var(--cpd-space-4x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LocationShareMenu {
    width: 375px;
    height: 460px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MapError {
    padding: 100px var(--cpd-space-8x) 0;
    text-align: center;

    --mx-map-error-icon-color: #edf3ff;
    --mx-map-error-icon-size: 58px;
}

.mx_MapError.mx_MapError_isMinimised {
    height: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;

    padding: var(--cpd-space-6x);
    background-color: rgba(33,38,44, 0.9);
    font-size: 0.75rem;
    line-height: 1rem;

    --mx-map-error-icon-color: #ff5b55;
    --mx-map-error-icon-size: 26px;
}

    .mx_MapError.mx_MapError_isMinimised .mx_MapError_message {
        margin: 0;
        max-width: 275px;
    }

    .mx_MapError.mx_MapError_isMinimised .mx_MapError_heading {
        padding-top: var(--cpd-space-2x);
        /* override h3 heading size */
        font-size: inherit !important;
        font-weight: normal !important;
    }

.mx_MapError_message {
    margin: var(--cpd-space-4x) 0 var(--cpd-space-8x);
}

.mx_MapError_heading {
    padding-top: var(--cpd-space-6x);
}

.mx_MapError_icon {
    height: var(--mx-map-error-icon-size);
    width: var(--mx-map-error-icon-size);
    color: var(--mx-map-error-icon-color);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MapFallback {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    position: relative;
    z-index: 0;

    background-color: #21262c;
}

.mx_MapFallback_bg {
    position: absolute;
    top: 0;
    left: 0;
    min-height: 100%;
    min-width: 100%;
    color: #6f7882;
    z-index: -1;

    pointer-events: none;
}

.mx_MapFallback_icon {
    width: 65px;
    margin-bottom: var(--cpd-space-4x);
    color: #6f7882;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Marker_defaultColor {
    color: #0dbd8b;
}

.mx_Marker_border {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    -webkit-filter: drop-shadow(0px 3px 5px rgb(0, 0, 0, 0.2));
            filter: drop-shadow(0px 3px 5px rgb(0, 0, 0, 0.2));
    background-color: currentColor;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

    /* caret down */
    .mx_Marker_border::before {
        content: "";
        border-left: 5px solid transparent;
        border-right: 5px solid transparent;
        border-top: 5px solid currentColor;
        position: absolute;
        bottom: -4px;
    }

.mx_Marker_icon {
    color: white;
    height: 20px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ShareDialogButtons {
    position: absolute;
    width: 100%;
    height: 0;
    top: 0;
}

button.mx_ShareDialogButtons_button {
    height: 24px;
    width: 24px;
    border-radius: 50%;
    background-color: #6f7882;
    opacity: 0.8;
    text-align: center;
    color: #edf3ff;
    position: absolute;
    top: var(--cpd-space-4x);
}

    button.mx_ShareDialogButtons_button:hover,
    button.mx_ShareDialogButtons_button:focus {
        opacity: 1;
    }

    button.mx_ShareDialogButtons_button.left {
        left: var(--cpd-space-4x);
    }

    button.mx_ShareDialogButtons_button.right {
        right: var(--cpd-space-4x);
    }

.mx_ShareDialogButtons_button-icon {
    width: 20px;
    height: 20px;
    margin: 2px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ShareType {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;

    padding: 60px var(--cpd-space-3x) var(--cpd-space-8x);

    color: #edf3ff;
}

    .mx_ShareType .mx_ShareType_wrapper_options {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        row-gap: var(--cpd-space-3x);
        width: 100%;
        margin-top: var(--cpd-space-3x);
    }

        .mx_ShareType .mx_ShareType_wrapper_options .mx_ShareType_option {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-box-pack: start;
                -ms-flex-pack: start;
                    justify-content: flex-start;
            padding: var(--cpd-space-2x) var(--cpd-space-5x);
            background: none;

            border: 1px solid #6f7882;
            border-radius: 8px;

            font-size: 0.9375rem;
            font-family: inherit;
            line-height: inherit;
            color: #edf3ff;
        }

            .mx_ShareType .mx_ShareType_wrapper_options .mx_ShareType_option:hover,
            .mx_ShareType .mx_ShareType_wrapper_options .mx_ShareType_option:focus {
                border-color: #0dbd8b;
            }

.mx_ShareType_badge {
    height: 60px;
    width: 60px;
    margin-bottom: var(--cpd-space-5x);
    background-color: #0dbd8b;
    border-radius: 50%;
    border: 14px solid #0dbd8b;
    /* colors icon */
    color: white;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

.mx_ShareType_heading {
    padding-bottom: var(--cpd-space-8x);
    text-align: center;
}

.mx_ShareType_option-icon {
    height: 40px;
    width: 40px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    margin-right: var(--cpd-space-3x);
    -webkit-box-flex: 0;
        -ms-flex: 0 0 40px;
            flex: 0 0 40px;
    border-width: 2px;
    border-style: solid;
    border-radius: 50%;

    /* Live is styled by StyledLiveBeaconIcon */
}

    .mx_ShareType_option-icon.Own {
        border-color: #0dbd8b;
    }

    .mx_ShareType_option-icon.Pin {
        border-color: #0dbd8b;
        background-color: #0dbd8b;
        padding: 7px;
        /* colors icon */
        color: white;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ZoomButtons {
    position: absolute;
    bottom: var(--cpd-space-8x);
    right: var(--cpd-space-6x);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    row-gap: var(--cpd-space-2x);
}

    .mx_ZoomButtons .mx_ZoomButtons_button {

        border-radius: 4px;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        height: 24px;
        width: 24px;
        background: #181b21;
        -webkit-box-shadow: 0px 4px 12px rgb(0, 0, 0, 0.25);
                box-shadow: 0px 4px 12px rgb(0, 0, 0, 0.25);
    }

        .mx_ZoomButtons .mx_ZoomButtons_button .mx_ZoomButtons_icon {

            height: 12px;
            width: 12px;
            color: #edf3ff;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MBeaconBody {
    position: relative;
    height: 220px;
    max-width: 325px;
    width: 100%;

    border-radius: 8px;

    border-radius: var(--MBody-border-radius);
    overflow: hidden;
}

.mx_MBeaconBody.mx_MBeaconBody_withoutMap {
    height: auto;
}

    .mx_MBeaconBody.mx_MBeaconBody_withoutMap .mx_MBeaconBody_chin {
        position: relative;
        background-color: transparent;
    }

.mx_MBeaconBody_withoutMapContent {
    background-color: rgba(33,38,44, 0.9);
    border-radius: 4px;
}

.mx_MBeaconBody_withoutMapInfoLastUpdated {
    /* 48px lines up with icon in BeaconStatus */
    margin-top: calc(-1 * var(--cpd-space-2x));
    padding: 0 var(--cpd-space-2x) var(--cpd-space-2x) 48px;

    color: #edf3ff;
    font-size: 0.625rem;
}

.mx_MBeaconBody_map {
    height: 100%;
    width: 100%;
    z-index: 0; /* keeps the entire map under the message action bars */

    cursor: pointer;
}

.mx_MBeaconBody_mapFallback,
.mx_MBeaconBody_mapError {
    /* pushes spinner/icon up */
    /* to appear more centered with the footer */
    padding-bottom: 50px !important;
}

.mx_MBeaconBody_mapErrorInteractive {
    cursor: pointer;
}

.mx_MBeaconBody_mapFallback {
    cursor: default;
}

.mx_MBeaconBody_chin {
    position: absolute;
    bottom: 0;
    width: 100%;
    background-color: var(--cpd-color-bg-canvas-default);
    opacity: 0.85;
}

.mx_EventTile[data-layout="bubble"] .mx_EventTile_line .mx_MBeaconBody {
    max-width: 100%;
    width: 450px;
}

.mx_ReplyTile .mx_MBeaconBody {
    /* Prevent clicking a beacon within a reply */
    pointer-events: none;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MediaProcessingError_Icon {
    margin-right: var(--cpd-space-1x);
    vertical-align: text-top;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PollOption {
    border: 1px solid #6f7882;
    border-radius: 8px;
    padding: 6px 12px;
    background-color: #181b21;
}

    .mx_PollOption .mx_StyledRadioButton_content,
    .mx_PollOption .mx_PollOption_endedOption {
        padding-top: 2px;
        margin-right: 0px;
    }

    .mx_PollOption .mx_StyledRadioButton_spacer {
        display: none;
    }

.mx_PollOption,
/* label has cursor: default in user-agent stylesheet */
/* override */
.mx_PollOption_live-option {
    cursor: pointer;
}

.mx_PollOption_content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
}

.mx_PollOption_optionVoteCount {
    color: #edf3ff;
    font-size: 0.75rem;
    white-space: nowrap;
}

.mx_PollOption_winnerIcon {
    height: 12px;
    width: 12px;
    color: var(--cpd-color-icon-accent-tertiary);
    margin-right: var(--cpd-space-1x);
    vertical-align: middle;
}
        .mx_PollOption_checked .mx_PollOption_popularityBackground .mx_PollOption_popularityAmount {
            background-color: var(--cpd-color-icon-primary);
        }

    /* override checked radio button styling to show checkmark instead */
        .mx_PollOption_checked .mx_StyledRadioButton_checked input[type="radio"]:checked + div {
            border-color: var(--cpd-color-icon-primary);
            background-color: var(--cpd-color-icon-primary);
        }

            .mx_PollOption_checked .mx_StyledRadioButton_checked input[type="radio"]:checked + div div {
                background: none;
            }

                .mx_PollOption_checked .mx_StyledRadioButton_checked input[type="radio"]:checked + div div svg {
                    color: var(--cpd-color-icon-on-solid-primary);
                    width: 12px;
                    height: 12px;
                    margin: -2px;
                    display: block;
                }
        .mx_PollOption_ended.mx_PollOption_checked .mx_PollOption_popularityBackground .mx_PollOption_popularityAmount {
            background-color: var(--cpd-color-icon-accent-tertiary);
        }

    /* override checked radio button styling to show checkmark instead */
        .mx_PollOption_ended.mx_PollOption_checked .mx_StyledRadioButton_checked input[type="radio"]:checked + div {
            border-color: var(--cpd-color-icon-accent-tertiary);
            background-color: var(--cpd-color-icon-accent-tertiary);
        }

/* options not actionable in these states */
.mx_PollOption_checked,
.mx_PollOption_ended {
    pointer-events: none;
}

.mx_PollOption_popularityBackground {
    width: 100%;
    height: 8px;
    margin-right: 12px;
    border-radius: 8px;
    background-color: #21262c;
    margin-top: var(--cpd-space-2x);
}

    .mx_PollOption_popularityBackground .mx_PollOption_popularityAmount {
        width: 0%;
        height: 8px;
        border-radius: 8px;
        background-color: var(--cpd-color-icon-primary);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2024 The Matrix.org Foundation C.I.C.
Copyright 2019 New Vector Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/*
 * These used to live in General User Settings. These components are horribly duplicative
 * but share the same styles. For now I'm putting them here so I can renamed the general
 * tab sensibly and before I can refactor these components.
 */

.mx_AddRemoveThreepids_existing {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_AddRemoveThreepids_existing_address,
.mx_AddRemoveThreepids_existing_promptText {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    margin-right: 10px;
}

.mx_AddRemoveThreepids_existing_button {
    margin-left: 5px;
}

.mx_EmailAddressesPhoneNumbers_verify {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

.mx_EmailAddressesPhoneNumbers_existing_button {
    -webkit-box-pack: right;
        -ms-flex-pack: right;
            justify-content: right;
}

.mx_EmailAddressesPhoneNumbers_verify_instructions {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CurrentDeviceSection_deviceDetails {
    /* align with text of session tile */
    margin-left: 56px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DeviceDetailHeading {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_DeviceDetailHeading_renameCta {
    -ms-flex-negative: 0;
        flex-shrink: 0;
}

.mx_DeviceDetailHeading_renameForm {
    display: grid;
    grid-gap: var(--cpd-space-4x);
    gap: var(--cpd-space-4x);
    -webkit-box-pack: left;
        -ms-flex-pack: left;
            justify-content: left;
    grid-template-columns: 100%;
}

.mx_DeviceDetailHeading_renameFormButtons {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    gap: var(--cpd-space-2x);
}

    .mx_DeviceDetailHeading_renameFormButtons .mx_Spinner {
        width: auto;
        -webkit-box-flex: 0;
            -ms-flex-positive: 0;
                flex-grow: 0;
    }

.mx_DeviceDetailHeading_renameFormInput {
    /* override field styles */
    margin: 0 0 var(--cpd-space-1x) 0 !important;
}

.mx_DeviceDetailHeading_renameFormHeading {
    margin: 0;
}

.mx_DeviceDetailHeading_renameFormError {
    color: #ff5b55;
    padding-right: var(--cpd-space-1x);
    display: block;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DeviceDetails {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;

    margin-top: var(--cpd-space-4x);
    padding: var(--cpd-space-6x);
    border-radius: 8px;
    border: 1px solid #6f7882;
}

.mx_DeviceDetails_section {
    padding-bottom: var(--cpd-space-5x);
    margin-bottom: var(--cpd-space-5x);
    border-bottom: 1px solid #6f7882;

    display: grid;
    grid-gap: var(--cpd-space-6x);
    gap: var(--cpd-space-6x);
    -webkit-box-pack: left;
        -ms-flex-pack: left;
            justify-content: left;
    grid-template-columns: 100%;
}

    .mx_DeviceDetails_section:last-child {
        padding-bottom: 0;
        border-bottom: 0;
        margin-bottom: 0;
    }

.mx_DeviceDetails_sectionHeading {
    margin: 0;
}

    .mx_DeviceDetails_sectionHeading .mx_DeviceDetails_sectionSubheading {
        display: block;
        font-size: 0.75rem;
        color: #edf3ff;
        line-height: 0.875rem;
        margin-top: var(--cpd-space-1x);
    }

.mx_DeviceDetails_metadataTable {
    font: var(--cpd-font-body-sm-regular);
    color: #edf3ff;

    width: 100%;

    border-spacing: 0;
}

    .mx_DeviceDetails_metadataTable th {
        text-transform: uppercase;
        font-weight: normal;
        text-align: left;
    }

    .mx_DeviceDetails_metadataTable td {
        padding-top: var(--cpd-space-2x);
    }

    .mx_DeviceDetails_metadataTable .mxDeviceDetails_metadataLabel {
        width: 160px;
    }

    .mx_DeviceDetails_metadataTable .mxDeviceDetails_metadataValue {
        color: #edf3ff;
    }

.mx_DeviceDetails_signOutButtonContent {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: var(--cpd-space-1x);
}

.mx_DeviceDetails_pushNotifications {
    display: block;
}
    .mx_DeviceDetails_pushNotifications .mx_ToggleSwitch {
        float: right;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DeviceExpandDetailsButton {
    height: 32px;
    width: 32px;
    background: transparent;

    border-radius: 4px;
    color: var(--cpd-color-icon-tertiary);

    --icon-transform: rotate(-90deg);
}

    .mx_DeviceExpandDetailsButton:hover {
        background: #6f7882;
    }

.mx_DeviceExpandDetailsButton.mx_DeviceExpandDetailsButton_expanded {
    --icon-transform: rotate(0deg);

    background: #21262c;
}

    .mx_DeviceExpandDetailsButton.mx_DeviceExpandDetailsButton_expanded:hover {
        background: #6f7882;
    }

.mx_DeviceExpandDetailsButton_icon {
    height: 24px;
    width: 24px;

    -webkit-transition: all 0.3s;

    transition: all 0.3s;
    -webkit-transform: var(--icon-transform);
            transform: var(--icon-transform);
    -webkit-transform-origin: center;
            transform-origin: center;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DeviceSecurityCard {
    width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;

    padding: var(--cpd-space-4x);

    border: 1px solid #6f7882;
    border-radius: 8px;
}

.mx_DeviceSecurityCard_icon {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 40px;
            flex: 0 0 40px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    margin-right: var(--cpd-space-4x);
    border-radius: 8px;

    height: 40px;
    width: 40px;

    color: var(--icon-color);
    background-color: var(--background-color);
}

    .mx_DeviceSecurityCard_icon.Verified {
        --icon-color: #0dbd8b;
        --background-color: var(--cpd-color-green-300);
    }

    .mx_DeviceSecurityCard_icon.Unverified {
        --icon-color: #ff5b55;
        --background-color: var(--cpd-color-red-300);
    }

    .mx_DeviceSecurityCard_icon.Inactive {
        --icon-color: #edf3ff;
        --background-color: rgba(33,38,44, 0.9);
    }

.mx_DeviceSecurityCard_content {
    -webkit-box-flex: 1;
        -ms-flex: 1 1;
            flex: 1 1;
}
.mx_DeviceSecurityCard_heading {
    margin: 0 0 var(--cpd-space-1x) 0;
}
.mx_DeviceSecurityCard_description {
    margin: 0;
    font: var(--cpd-font-body-sm-regular);
    color: #edf3ff;
}

.mx_DeviceSecurityCard_actions {
    margin-top: var(--cpd-space-4x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DeviceTile {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    width: 100%;
}

.mx_DeviceTile_interactive {
    cursor: pointer;
}

.mx_DeviceTile_info {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
}

.mx_DeviceTile_metadata {
    margin-top: var(--cpd-space-1x);
    font: var(--cpd-font-body-sm-regular);
    color: #edf3ff;
}

.mx_DeviceTile_inactiveIcon {
    height: 14px;
    margin-right: var(--cpd-space-2x);
    vertical-align: middle;
}

.mx_DeviceTile_actions {
    display: grid;
    grid-gap: var(--cpd-space-2x);
    gap: var(--cpd-space-2x);
    grid-auto-flow: column;
    margin-left: var(--cpd-space-2x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DeviceTypeIcon {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    position: relative;
    margin-right: var(--cpd-space-2x);
    /* creates space for verification icon to overlap */
    padding: 0 var(--cpd-space-2x) var(--cpd-space-2x) 0;
}

.mx_DeviceTypeIcon_deviceIconWrapper {
    --background-color: rgba(33,38,44, 0.9);
    --icon-color: #edf3ff;

    height: 40px;
    width: 40px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;

    border: var(--cpd-space-2x) solid rgba(33,38,44, 0.9);

    border: var(--cpd-space-2x) solid var(--background-color);
    border-radius: 50%;
    color: #edf3ff;
    color: var(--icon-color);
    background-color: rgba(33,38,44, 0.9);
    background-color: var(--background-color);
}

.mx_DeviceTypeIcon_selected .mx_DeviceTypeIcon_deviceIconWrapper {
    --background-color: #edf3ff;
    --icon-color: #181b21;
}

.mx_DeviceTypeIcon_deviceIcon {
    height: 24px;
    width: 24px;
}

.mx_DeviceTypeIcon_verificationIcon {
    position: absolute;
    bottom: 0;
    right: 0;
    height: 24px;
    width: 24px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    padding: var(--cpd-space-1x);

    border: 1px solid #6f7882;
    border-radius: 50%;
    background-color: #181b21;

    color: var(--v-icon-color);
}

    .mx_DeviceTypeIcon_verificationIcon.verified {
        --v-icon-color: #0dbd8b;
    }

    .mx_DeviceTypeIcon_verificationIcon.unverified {
        --v-icon-color: #ff5b55;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_FilteredDeviceList .mx_Dropdown {
        -webkit-box-flex: 1;
            -ms-flex: 1 0 80px;
                flex: 1 0 80px;
    }

.mx_FilteredDeviceList_list {
    list-style-type: none;
    display: grid;
    grid-gap: var(--cpd-space-4x);
    gap: var(--cpd-space-4x);
    margin: 0;
    padding: 0 var(--cpd-space-4x);
}

.mx_FilteredDeviceList_listItem {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

.mx_FilteredDeviceList_securityCard {
    margin-bottom: var(--cpd-space-8x);
}

.mx_FilteredDeviceList_noResults {
    width: 100%;
    text-align: center;
    margin-bottom: var(--cpd-space-8x);
}

.mx_FilteredDeviceList_headerButton {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    /* override inline button styling */
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: flex !important;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    gap: var(--cpd-space-2x);
}

.mx_FilteredDeviceList_deviceDetails {
    /* align with text of session tile */
    margin-left: 88px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_FilteredDeviceListHeader {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    gap: var(--cpd-space-4x);

    width: 100%;
    height: 48px;
    padding: 0 var(--cpd-space-4x);
    margin-bottom: var(--cpd-space-8x);

    background-color: rgba(33,38,44, 0.9);
    border-radius: 8px;
    color: #edf3ff;
}

    /* Higher specificity selector to override the flex-start value */
    .mx_FilteredDeviceListHeader .mx_AccessibleButton.mx_AccessibleButton_hasKind {
        -ms-flex-item-align: center;
            align-self: center;
    }

.mx_FilteredDeviceListHeader_label {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 100%;
            flex: 1 1 100%;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SecurityRecommendations_spacing {
    height: var(--cpd-space-4x);
}
}
@layer app-web{

/*
Copyright 2024,2025 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SelectableDeviceTile {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    width: 100%;
}

.mx_SelectableDeviceTile_checkbox {
    -webkit-box-flex: 1;
        -ms-flex: 1 0;
            flex: 1 0;
}

    .mx_SelectableDeviceTile_checkbox > div {
        margin-top: auto;
        margin-bottom: auto;
        margin-right: var(--cpd-space-1x);
    }
}
@layer app-web{

/*
 * Copyright 2025 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_KeyStoragePanel_toggleRow {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SettingsSubsection {
    width: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

    .mx_SettingsSubsection.mx_SettingsSubsection_newUi {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-6x);
    }

    .mx_SettingsSubsection *[role="separator"] {
        /**
         * The gap between subsections is 32px and inside the subsection is 24px.
         * The separator separates the subsections, so it should have the same gap as the subsections.
         * We add 12px and the separator spacing (8px) to the top margin to make the separator visually centered between the subsections.
         * !important because it's overriding compound margin.
         */
        margin-top: var(--cpd-space-5x) !important;
    }

.mx_SettingsSubsection_description {
    margin-top: var(--cpd-space-2x);
}

.mx_SettingsSubsection_text {
    width: 100%;
    -webkit-box-sizing: inherit;
            box-sizing: inherit;
    color: #edf3ff;
}

.mx_SettingsSubsection_content {
    width: 100%;
    display: grid;
    grid-gap: var(--cpd-space-4x);
    gap: var(--cpd-space-4x);
    /* setting minwidth 0 makes columns definitely sized fixing horizontal overflow */
    grid-template-columns: minmax(0, 1fr);
    justify-items: flex-start;
    margin-top: var(--cpd-space-6x);
}

    .mx_SettingsSubsection_content summary {
        color: #0dbd8b;
    }
        .mx_SettingsSubsection_content details[open] summary {
            margin-bottom: var(--cpd-space-2x);
        }

    .mx_SettingsSubsection_content.mx_SettingsSubsection_contentStretch {
        justify-items: stretch;
    }

    .mx_SettingsSubsection_content.mx_SettingsSubsection_noHeading {
        margin-top: 0;
    }
    .mx_SettingsSubsection_content.mx_SettingsSubsection_content_newUi {
        gap: var(--cpd-space-6x);
        margin-top: 0;
    }

    .mx_SettingsSubsection_content .mx_SettingsSubsection_dropdown {
        min-width: 360px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SettingsSubsectionHeading {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;

    gap: var(--cpd-space-2x);
}

.mx_SettingsSubsectionHeading_heading {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 100%;
            flex: 1 1 100%;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_QuickThemeSwitcher {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

    .mx_QuickThemeSwitcher .mx_Dropdown {
        min-width: 100px;
        margin-left: auto;
        height: -webkit-min-content;
        height: -moz-min-content;
        height: min-content;
    }

    .mx_QuickThemeSwitcher .mx_Dropdown_menu {
        /* Quick settings lives at the bottom of the window, so a menu dropping downwards would run
           off the bottom of the viewport. Open it upwards, where there is room for every theme. */
        top: auto;
        bottom: 100%;
    }

.mx_QuickThemeSwitcher_heading {
    font-weight: var(--cpd-font-weight-semibold);
    font-size: 0.75rem;
    line-height: 0.9375rem;
    color: #edf3ff;
    text-transform: uppercase;
    display: inline-block;
    margin: 0;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Caption {
    font: var(--cpd-font-body-sm-regular);
    color: #edf3ff;
}

    .mx_Caption.mx_Caption_error {
        color: #ff5b55;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/*
 * Compound icon

 * {@link https://www.figma.com/file/X4XTH9iS2KGJ2wFKDqkyed}
 */

.mx_Icon {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

.mx_Icon_accent {
    color: #0dbd8b;
}

.mx_Icon_bg-accent-light {
    background-color: var(--cpd-color-green-300);
}

.mx_Icon_alert {
    color: #ff5b55;
}

.mx_Icon_circle-40 {
    border-radius: 20px;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 40px;
            flex: 0 0 40px;
    height: 40px;
    padding: 0 12px;
    width: 40px;
}

.mx_Icon_8 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 8px;
            flex: 0 0 8px;
    height: 8px;
    width: 8px;
}

.mx_Icon_10 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 10px;
            flex: 0 0 10px;
    height: 10px;
    width: 10px;
}

.mx_Icon_12 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 12px;
            flex: 0 0 12px;
    height: 12px;
    width: 12px;
}

.mx_Icon_16 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16px;
            flex: 0 0 16px;
    height: 16px;
    width: 16px;
}

.mx_Icon_24 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 24px;
            flex: 0 0 24px;
    height: 24px;
    width: 24px;
}

.mx_Icon_32 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 32px;
            flex: 0 0 32px;
    height: 32px;
    width: 32px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SuccessDialog {
    text-align: center;
}

    .mx_SuccessDialog .mx_Icon {
        margin-bottom: var(--cpd-space-4x);
    }

    .mx_SuccessDialog .mx_Dialog_header {
        margin: 0 0 var(--cpd-space-4x);
        padding: 0;
    }

    .mx_SuccessDialog .mx_Dialog_title {
        margin: 0;
    }

    .mx_SuccessDialog .mx_Dialog_content {
        color: #edf3ff;
        margin: 0 0 var(--cpd-space-10x);
    }
        .mx_SuccessDialog .mx_Dialog_buttons .mx_Dialog_buttons_row {
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
        }

            .mx_SuccessDialog .mx_Dialog_buttons .mx_Dialog_buttons_row button.mx_Dialog_primary {
                height: 48px;
                min-width: 328px;
            }
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/* make any scrollbar grey and thin */
html {
    scrollbar-color: rgba(255, 255, 255, 0.2) transparent;
}
/* scrollbar-width is not inherited (but -color is, why?!), */
/* so declare it on every element */
* {
    scrollbar-width: thin;
}

::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

::-webkit-scrollbar-thumb {
    border-radius: 3px;
    background-color: rgba(255, 255, 255, 0.2);
}

/* make auto-hide scrollbars not transparent again on hover */
.mx_AutoHideScrollbar:hover {
    scrollbar-color: rgba(255, 255, 255, 0.2) transparent;
}

    .mx_AutoHideScrollbar:hover::-webkit-scrollbar-thumb {
        background-color: rgba(255, 255, 255, 0.2);
    }

/* make scrollbars transparent for autohide scrollbars */
.mx_AutoHideScrollbar {
    overflow-x: hidden;
    overflow-y: auto;
    overflow-y: overlay; /* where supported */
    -ms-overflow-style: -ms-autohiding-scrollbar;
}

    .mx_AutoHideScrollbar::-webkit-scrollbar {
        background-color: transparent;
    }

    .mx_AutoHideScrollbar::-webkit-scrollbar-thumb {
        background-color: transparent;
    }

    .mx_AutoHideScrollbar{

    scrollbar-color: transparent transparent;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AutocompleteInput {
    position: relative;
}

.mx_AutocompleteInput_search_icon {
    margin-left: var(--cpd-space-2x);
    fill: #edf3ff;
}

.mx_AutocompleteInput_editor {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    overflow-x: hidden;
    overflow-y: auto;
    border: 1px solid #e7e7e7;
    border-radius: 4px;
    -webkit-transition: border-color 0.25s;
    transition: border-color 0.25s;
}

    .mx_AutocompleteInput_editor > input {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        min-width: 40%;
        resize: none;
        /* `!important` is required to bypass global input styles. */
        margin: 0 !important;
        padding: var(--cpd-space-2x) 9px;
        border: none !important;
        color: #edf3ff !important;
        font-weight: normal !important;
    }

        .mx_AutocompleteInput_editor > input::-webkit-input-placeholder {
            color: #edf3ff !important;
            font-weight: normal !important;
        }

        .mx_AutocompleteInput_editor > input::-moz-placeholder {
            color: #edf3ff !important;
            font-weight: normal !important;
        }

        .mx_AutocompleteInput_editor > input:-ms-input-placeholder {
            color: #edf3ff !important;
            font-weight: normal !important;
        }

        .mx_AutocompleteInput_editor > input::-ms-input-placeholder {
            color: #edf3ff !important;
            font-weight: normal !important;
        }

        .mx_AutocompleteInput_editor > input::placeholder {
            color: #edf3ff !important;
            font-weight: normal !important;
        }

.mx_AutocompleteInput_editor--focused {
    border-color: #0086e6;
}

.mx_AutocompleteInput_editor--has-suggestions {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

.mx_AutocompleteInput_editor_selection {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-left: var(--cpd-space-2x);
}

.mx_AutocompleteInput_editor_selection_pill {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    border-radius: 12px;
    padding-left: var(--cpd-space-2x);
    padding-right: var(--cpd-space-2x);
    background-color: var(--cpd-color-text-decorative-1);
    color: #ffffff;
    font-size: 0.75rem;
}

.mx_AutocompleteInput_editor_selection_remove_button svg {
    vertical-align: middle;
}

.mx_AutocompleteInput_matches {
    position: absolute;
    left: 0;
    right: 0;
    background-color: #181b21;
    border: 1px solid #0086e6;
    border-top-color: #e7e7e7;
    border-bottom-left-radius: 4px;
    border-bottom-right-radius: 4px;
    z-index: 1000;
}

.mx_AutocompleteInput_suggestion {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding: var(--cpd-space-2x);
    cursor: pointer;
}

    .mx_AutocompleteInput_suggestion > * {
        -webkit-user-select: none;
           -moz-user-select: none;
            -ms-user-select: none;
                user-select: none;
    }

    .mx_AutocompleteInput_suggestion:hover {
        background-color: #6f7882;
        border-bottom-left-radius: 4px;
        border-bottom-right-radius: 4px;
    }

.mx_AutocompleteInput_suggestion--selected {
    background-color: #6f7882;
}

    .mx_AutocompleteInput_suggestion--selected:last-child {
        border-bottom-left-radius: 4px;
        border-bottom-right-radius: 4px;
    }

.mx_AutocompleteInput_suggestion_title {
    margin-right: var(--cpd-space-2x);
}

.mx_AutocompleteInput_suggestion_description {
    color: #edf3ff;
    font-size: 0.75rem;
}
}
@layer app-web{

.mx_CompatibilityPage {
    width: 100%;
    height: 100%;
    background-color: #e55;
}

.mx_CompatibilityPage_box {
    position: absolute;
    inset: 0;
    margin: auto;
    width: 500px;
    height: 300px;
    border: 1px solid;
    padding: 10px;
    background-color: #fcc;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ContextualMenu_wrapper {
    position: fixed;
    z-index: 5000;
}

.mx_ContextualMenu_background {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 1;
}

.mx_ContextualMenu {
    border-radius: 12px;
    -webkit-box-shadow: 0px 4px 24px rgb(0, 0, 0, 0.1);
            box-shadow: 0px 4px 24px rgb(0, 0, 0, 0.1);
    background-color: var(--cpd-color-bg-canvas-default);
    border: var(--cpd-border-width-1) solid var(--cpd-color-border-interactive-secondary);
    color: #edf3ff;
    position: absolute;
    z-index: 5001;
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
}

.mx_ContextualMenu_right {
    right: 16px;
}

.mx_ContextualMenu.mx_ContextualMenu_withChevron_right {
    right: 8px;
}

.mx_ContextualMenu_chevron_right {
    position: absolute;
    right: -8px;
    top: 0px;
    width: 0;
    height: 0;
    border-top: 8px solid transparent;
    border-left: 8px solid #22262e;
    border-bottom: 8px solid transparent;
}

.mx_ContextualMenu_left {
    left: 0;
}

.mx_ContextualMenu.mx_ContextualMenu_withChevron_left {
    left: 8px;
}

.mx_ContextualMenu_chevron_left {
    position: absolute;
    left: -8px;
    top: 0px;
    width: 0;
    height: 0;
    border-top: 8px solid transparent;
    border-right: 8px solid #22262e;
    border-bottom: 8px solid transparent;
}

.mx_ContextualMenu_top {
    top: 0;
}

.mx_ContextualMenu.mx_ContextualMenu_withChevron_top {
    top: 8px;
}

.mx_ContextualMenu_chevron_top {
    position: absolute;
    left: 0px;
    top: -8px;
    width: 0;
    height: 0;
    border-left: 8px solid transparent;
    border-bottom: 8px solid #22262e;
    border-right: 8px solid transparent;
}

.mx_ContextualMenu_bottom {
    bottom: 0;
}

.mx_ContextualMenu.mx_ContextualMenu_withChevron_bottom {
    bottom: 8px;
}

.mx_ContextualMenu_chevron_bottom {
    position: absolute;
    left: 0px;
    bottom: -8px;
    width: 0;
    height: 0;
    border-left: 8px solid transparent;
    border-top: 8px solid #22262e;
    border-right: 8px solid transparent;
}

.mx_ContextualMenu_rightAligned {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
}

.mx_ContextualMenu_bottomAligned {
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ErrorMessage {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    color: #ff5b55;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    font-size: 0.75rem;
    gap: var(--cpd-space-2x);
    line-height: 1.2em;
    min-height: 2.4em;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

@-webkit-keyframes mx_FileDropTarget_animation {
    from {
        opacity: 0;
    }
    to {
        opacity: 0.95;
    }
}

@keyframes mx_FileDropTarget_animation {
    from {
        opacity: 0;
    }
    to {
        opacity: 0.95;
    }
}

.mx_FileDropTarget {
    min-width: 0;
    width: 100%;
    height: 100%;

    font-size: 1.125rem;
    text-align: center;

    pointer-events: none;

    background-color: #181b21;
    opacity: 0.95;

    position: absolute;
    z-index: 3000;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;

    -webkit-animation: mx_FileDropTarget_animation;

            animation: mx_FileDropTarget_animation;
    -webkit-animation-duration: 0.5s;
            animation-duration: 0.5s;
}

@-webkit-keyframes mx_FileDropTarget_image_animation {
    from {
        -webkit-transform: scaleX(0);
                transform: scaleX(0);
    }
    to {
        -webkit-transform: scaleX(1);
                transform: scaleX(1);
    }
}

@keyframes mx_FileDropTarget_image_animation {
    from {
        -webkit-transform: scaleX(0);
                transform: scaleX(0);
    }
    to {
        -webkit-transform: scaleX(1);
                transform: scaleX(1);
    }
}

.mx_FileDropTarget_image {
    width: 32px;
    -webkit-animation: mx_FileDropTarget_image_animation;
            animation: mx_FileDropTarget_image_animation;
    -webkit-animation-duration: 0.5s;
            animation-duration: 0.5s;
    margin-bottom: 16px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_FilePanel {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    overflow-y: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    /* FIXME: rather than having EventTile's default CSS be for MessagePanel,
   we should make EventTile a base CSS class and customise it specifically
   for usage in {Message,File,Notification}Panel. */
}

    .mx_FilePanel .mx_RoomView_messageListWrapper {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
    }

    .mx_FilePanel .mx_RoomView_MessageList {
        width: 100%;
        gap: var(--cpd-space-6x);
    }

    /* Overrides for the attachment body tiles */
    .mx_FilePanel .mx_EventTile {
        word-break: break-word;
        padding-top: 0;
    }

        .mx_FilePanel .mx_EventTile + .mx_EventTile {
            border-top: 1px solid var(--cpd-color-gray-400);
            padding-top: var(--cpd-space-6x);
        }

        .mx_FilePanel .mx_EventTile .mx_EventTile_line {
            -webkit-padding-start: 0;
                    padding-inline-start: 0;
        }

        .mx_FilePanel .mx_EventTile .mx_MFileBody [data-type="download"] {
            margin-top: var(--cpd-space-4x);
        }

        .mx_FilePanel .mx_EventTile .mx_ImageBody {
            gap: 0;
        }

        /* anchor link as wrapper */
        .mx_FilePanel .mx_EventTile .mx_EventTile_senderDetailsLink {
            text-decoration: none;
            margin-bottom: var(--cpd-space-1x);
            display: block;
        }

            .mx_FilePanel .mx_EventTile .mx_EventTile_senderDetailsLink .mx_EventTile_senderDetails {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                margin-top: -2px;
                gap: var(--cpd-space-2x);
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
            }

                .mx_FilePanel .mx_EventTile .mx_EventTile_senderDetailsLink .mx_EventTile_senderDetails .mx_DisambiguatedProfile {
                    color: #a1b2d1; /* for ellipsis. Color of displayName and mxid is inherited */
                }

                .mx_FilePanel .mx_EventTile .mx_EventTile_senderDetailsLink .mx_EventTile_senderDetails .mx_MessageTimestamp {
                    margin-left: auto;
                }

    .mx_FilePanel .mx_EventTile_line {
        -webkit-margin-end: 0;
                margin-inline-end: 0;
        -webkit-padding-start: 0;
                padding-inline-start: 0;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_GenericDropdownMenu_button {
    padding: 3px 4px 3px 8px;
    border-radius: 4px;
    line-height: 1.5;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    font-size: 0.75rem;
    color: #edf3ff;
}

    .mx_GenericDropdownMenu_button svg {
        width: 18px;
        height: 18px;
        float: right;
    }

.mx_GenericDropdownMenu_button:hover,
.mx_GenericDropdownMenu_button[aria-expanded="true"] {
    background: #6f7882;
}
    .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_ContextualMenu {
        position: static;
        position: initial;

        font-size: 0.75rem;
        color: #edf3ff;
        padding-top: 10px;
        padding-bottom: 10px;

        border: 1px solid #6f7882;
        -webkit-box-shadow: 0 1px 3px rgb(23, 25, 28, 0.05);
                box-shadow: 0 1px 3px rgb(23, 25, 28, 0.05);
    }

    .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_ContextualMenu_chevron_top {
        left: auto;
        right: 22px;
        border-bottom-color: #6f7882;
    }

        .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_ContextualMenu_chevron_top::after {
            content: "";
            border: inherit;
            border-bottom-color: #22262e;
            position: absolute;
            top: 1px;
            left: -8px;
        }

    .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_GenericDropdownMenu_divider {
        display: block;
        height: 0;
        margin-left: 4px;
        margin-right: 19px;
        border-top: 1px solid #6f7882;
    }

    .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_GenericDropdownMenu_Option {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        padding: 10px 20px 10px 30px;
        position: relative;
    }

        .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_GenericDropdownMenu_Option > .mx_GenericDropdownMenu_Option--label {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;

            margin: 0;
        }

            .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_GenericDropdownMenu_Option > .mx_GenericDropdownMenu_Option--label span:first-child {
                color: #edf3ff;
                font-weight: var(--cpd-font-weight-semibold);
            }

        .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_GenericDropdownMenu_Option.mx_GenericDropdownMenu_Option--header > .mx_GenericDropdownMenu_Option--label span:first-child {
            font-size: 0.9375rem;
        }
            .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_GenericDropdownMenu_Option.mx_GenericDropdownMenu_Option--item:hover {
                background-color: #343a46;
            }

            .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_GenericDropdownMenu_Option.mx_GenericDropdownMenu_Option--item .mx_GenericDropdownMenu_Option--checkIcon {
                width: 16px;
                height: 16px;
                margin-left: -22px;
                margin-right: 6px;
                color: #edf3ff;
                display: inline-block;
                vertical-align: middle;
            }
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.
Copyright 2017 Vector Creations Ltd
Copyright 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_HomePage {
    display: grid;
    place-items: center;
    width: min(100% - 50px, 960px);
    height: 100%;
    margin: 0 auto;
    container-type: inline-size;
    container-name: homepage;
}

.mx_HomePage_default {
    text-align: center;
}

    .mx_HomePage_default img {
        height: 48px;
    }

    .mx_HomePage_default h1 {
        margin-bottom: 4px;
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 2rem;
        line-height: 1.375;
    }

    .mx_HomePage_default h2 {
        margin-top: 4px;
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 1.125rem;
        line-height: 1.5625rem;
        color: #a1b2d1;
    }

    .mx_HomePage_default .mx_MiniAvatarUploader {
        margin: 0 auto;
    }

    .mx_HomePage_default .mx_HomePage_default_buttons {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        grid-gap: 5px 40px;
        gap: 5px 40px;
        width: 100%;
        margin-top: 80px;
        margin-bottom: 20px;
    }

        .mx_HomePage_default .mx_HomePage_default_buttons .mx_AccessibleButton {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
            gap: 13px;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
            width: 160px;
            min-height: 132px;
            padding: 8px 15px;
            border-radius: 8px;
            font-weight: var(--cpd-font-weight-semibold);
            font-size: 0.9375rem;
            line-height: 1.25rem;
            color: #fff; /* on all themes */
            background-color: #0dbd8b;
        }

            .mx_HomePage_default .mx_HomePage_default_buttons .mx_AccessibleButton svg {
                display: block;
                width: 100%;
                height: 40px;
                -o-object-fit: contain;
                   object-fit: contain;
                color: #fff; /* on all themes */
            }

        @container homepage (max-width: 559px) {

    .mx_HomePage_default .mx_HomePage_default_buttons {
            grid-template-columns: 1fr
    }

            .mx_HomePage_default .mx_HomePage_default_buttons .mx_AccessibleButton {
                -webkit-box-orient: horizontal;
                -webkit-box-direction: normal;
                    -ms-flex-direction: row;
                        flex-direction: row;
                width: 100%;
                min-height: 0;
            }

                .mx_HomePage_default .mx_HomePage_default_buttons .mx_AccessibleButton svg {
                    width: 24px;
                }
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LargeLoader {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    height: 100%;
}

    .mx_LargeLoader .mx_Spinner {
        -webkit-box-flex: initial;
            -ms-flex: initial;
                flex: initial;
        height: auto;
        margin-bottom: 32px;
        margin-top: 33vh;
    }

    .mx_LargeLoader .mx_LargeLoader_text {
        font-size: 24px;
        font-weight: var(--cpd-font-weight-semibold);
        padding: 0 16px;
        position: relative;
        text-align: center;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_MatrixChat--with-avatar .mx_LeftPanel,
    .mx_MatrixChat--with-avatar .mx_LeftPanel .mx_LeftPanel_roomListContainer {
        background-color: transparent;
    }

.mx_LeftPanel_outerWrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    max-width: 50%;
    position: relative;
}

.mx_LeftPanel_wrapper,
.mx_LeftPanel {
    --collapsedWidth: 68px;
}
    .mx_LeftPanel_panel .mx_LeftPanel_outerWrapper {
        height: 100%;
        max-width: none;
    }

    .mx_LeftPanel_panel .mx_LeftPanel_wrapper--user {
        width: 100%;
    }

.mx_LeftPanel_wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    height: 100%; /* ensure space panel is still scrollable with an outer wrapper */
}

    .mx_LeftPanel_wrapper .mx_LeftPanel_wrapper--user {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        overflow: hidden;
        position: relative;
        /* For enhanced visibility under contrast control */
        outline: 1px solid transparent;
    }

        .mx_LeftPanel_wrapper .mx_LeftPanel_wrapper--user[data-collapsed] {
            max-width: var(--collapsedWidth);
        }

.mx_LeftPanel {
    background-color: var(--cpd-color-bg-canvas-default);
    /* The room list is not designed to be collapsed to just icons. */
    /* 224 + 68(spaces bar) was deemed by design to be a good minimum for the left panel. */
    --collapsedWidth: 224px;

    /* Create a row-based flexbox for the space panel and the room list */
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    contain: content;
    position: relative;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    overflow: hidden;
}

    .mx_LeftPanel .mx_LeftPanel_roomListContainer {
        -webkit-box-flex: 1;
            -ms-flex: 1 0 0px;
                flex: 1 0 0;
        min-width: 0;
        /* Create another flexbox (this time a column) for the room list components */
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

    /* These styles override the defaults for the minimized (66px) layout */
    .mx_LeftPanel.mx_LeftPanel_minimized {
        -webkit-box-flex: 0;
            -ms-flex-positive: 0;
                flex-grow: 0;
        min-width: 0;
        min-width: initial;
        width: auto !important;
        width: initial !important;
    }

        .mx_LeftPanel.mx_LeftPanel_minimized .mx_LeftPanel_roomListContainer {
            width: var(--collapsedWidth);
        }

#left-panel .mx_LeftPanel_wrapper--user {
    /*
     * Disable background when using the new room list.
     * This background sometimes shows when the panel is resized and it looks like a thicker border.
     */
    background: none;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MainSplit {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    min-width: 0;
    min-height: 0;
    height: 100%;
}
    .mx_MainSplit > .mx_RightPanel_ResizeWrapper:hover .mx_ResizeHandle--horizontal::before {
        position: absolute;
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-150%, -50%);
                transform: translate(-150%, -50%);

        height: 64px; /* to match width of the ones on roomlist */
        width: 4px;
        border-radius: 4px;

        content: "";

        background-color: #edf3ff;
        opacity: 0.8;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MatrixChat_splash {
    position: relative;
    height: 100%;
}

.mx_MatrixChat_wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    width: 100%;
    height: 100%;
}

.mx_MatrixToolbar {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;

    height: 40px;
}

.mx_MatrixChat {
    position: relative;
    width: 100%;
    height: 100%;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;

    -webkit-box-flex: 1;

        -ms-flex: 1;

            flex: 1;
    min-height: 0;
}

/* not the left panel, and not the resize handle, so the roomview and friends */
.mx_MatrixChat > :not(.mx_LeftPanel):not(.mx_SpacePanel):not(.mx_ResizeHandle):not(.mx_LeftPanel_outerWrapper) {
    background-color: #181b21;

    -webkit-box-flex: 1;

        -ms-flex: 1 1 0px;

            flex: 1 1 0;
    min-width: 0;

    /* To fix https://github.com/vector-im/element-web/issues/3298 where Safari
       needed height 100% all the way down to the HomePage. Height does not
       have to be auto, empirically.
    */
    height: 100%;
}

.mx_MatrixChat > .mx_ResizeHandle--horizontal:hover {
    position: relative;
}

    .mx_MatrixChat > .mx_ResizeHandle--horizontal:hover::before {
        position: absolute;
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-50%, -50%);
                transform: translate(-50%, -50%);

        height: 64px; /* to match width of the ones on roomlist */
        width: 4px;
        border-radius: 4px;

        content: " ";

        background-color: #edf3ff;
        opacity: 0.8;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_NonUrgentToastContainer {
    position: absolute;
    bottom: 30px;
    left: 28px;
    z-index: 101; /* same level as other toasts */
}

    .mx_NonUrgentToastContainer .mx_NonUrgentToastContainer_toast {
        padding: 10px 12px;
        border-radius: 8px;
        width: 320px;
        font-size: 0.8125rem;
        margin-top: 8px;

        /* We don't use variables on the colours because we want it to be the same */
        /* in all themes. */
        background-color: #17191c;
        color: #fff;
    }
}
@layer app-web{

/*
Copyright 2026 Element Creations Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PictureInPictureDragger {
    cursor: -webkit-grab;
    cursor: grab;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    left: 0;
    position: fixed;
    top: 0;
    /* Display above any widget elements */
    z-index: 102;
}

.mx_PictureInPictureDragger:active {
    cursor: -webkit-grabbing;
    cursor: grabbing;
}
}
@layer app-web{

/*
Copyright 2024,2025 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_QuickSettingsButton {
    /* !important override compound */
    border-radius: 8px !important;
    margin: 12px auto 12px;
}

    .mx_QuickSettingsButton svg {
        fill: #edf3ff;
    }

    .mx_QuickSettingsButton:not(.expanded):hover {
        /**
         * override compound default background color when hovered
         * should disappear when the space panel will be migrated to compound
         */
        background-color: #6f7882 !important;
        color: #edf3ff;
    }

        .mx_QuickSettingsButton:not(.expanded):hover svg {
            fill: #edf3ff;
        }

    .mx_QuickSettingsButton.expanded {
        /**
         * override compound default background color when hovered
         * should disappear when the space panel will be migrated to compound
         */
        background-color: transparent !important;

        /* align with settings icon */
        margin-left: 21px;
        margin-right: 8px;
        width: 100%;
    }

        /**
         * modify internal css of the compound component
         * dirty but we need to add the label into the indicator icon button
         **/
        .mx_QuickSettingsButton.expanded > div {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

        .mx_QuickSettingsButton.expanded svg {
            /* align with settings label */
            margin-right: 14px;
            /* required to set the icon width when into a flex container */
            width: 24px;
            -ms-flex-negative: 0;
                flex-shrink: 0;
        }

        .mx_QuickSettingsButton.expanded .mx_QuickSettingsButton_label {
            /* !important override compound  */
            color: #edf3ff !important;
        }

.mx_QuickSettingsButton_ContextMenuWrapper .mx_ContextualMenu {
    padding: 16px;
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
    min-width: 200px;
    contain: unset; /* let the dropdown paint beyond the context menu */
}

    .mx_QuickSettingsButton_ContextMenuWrapper .mx_ContextualMenu > div > h2 {
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 0.9375rem;
        line-height: 1.5rem;
        color: var(--cpd-color-text-secondary);
        margin: 0 0 16px;
    }

    .mx_QuickSettingsButton_ContextMenuWrapper .mx_ContextualMenu .mx_AccessibleButton_hasKind {
        display: block;
        margin-top: 4px;
    }

    .mx_QuickSettingsButton_ContextMenuWrapper .mx_ContextualMenu > div > h4 {
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 0.75rem;
        line-height: 0.9375rem;
        text-transform: uppercase;
        color: var(--cpd-color-text-secondary);
        margin: 20px 0 12px;
        position: relative;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
    }

    .mx_QuickSettingsButton_ContextMenuWrapper .mx_ContextualMenu .mx_QuickSettingsButton_moreOptionsButton {
        margin-left: var(--cpd-space-7x);
        font-size: 0.9375rem;
        line-height: 1.5rem;
        color: var(--cpd-color-text-primary);
        position: relative;
        margin-bottom: 16px;
    }

    .mx_QuickSettingsButton_ContextMenuWrapper .mx_ContextualMenu .mx_QuickSettingsButton_option {
        margin-bottom: var(--cpd-space-3x);
    }
        .mx_QuickSettingsButton_ContextMenuWrapper .mx_ContextualMenu .mx_QuickSettingsButton_option label {
            /* Correctly line up icons and text. */
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
        }

    .mx_QuickSettingsButton_ContextMenuWrapper .mx_ContextualMenu .mx_QuickThemeSwitcher {
        margin-top: var(--cpd-space-2x);
    }

.mx_QuickSettingsButton_icon {
    margin-right: var(--cpd-space-1x);
    color: #edf3ff;
    width: 18px;
    height: 18px;
    margin-top: auto;
    margin-bottom: auto;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RightPanel {
    overflow-x: hidden;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    border-left: 1px solid var(--cpd-color-gray-400);
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    height: 100%;
    contain: strict;
    background-color: var(--cpd-color-bg-canvas-default);
}

    .mx_RightPanel .mx_RoomView_MessageList {
        padding: 14px 18px; /* top and bottom is 4px smaller to balance with the padding set above */
    }

.mx_RightPanel .mx_MemberList,
.mx_RightPanel .mx_MemberInfo {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
}

.mx_RightPanel .mx_RoomView_messagePanelSpinner {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    margin: auto;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

:root {
    --RoomView_MessageList-padding: 18px;
}
    .mx_LeftPanel_panel .mx_RoomView_wrapper {
        height: 100%;
    }

.mx_RoomView_wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    position: relative;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    /* Contain the amount of layers rendered by constraining what actually needs re-layering via css */
    contain: strict;
}

.mx_RoomView {
    word-wrap: break-word;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    position: relative;
}

    .mx_RoomView .mx_MainSplit {
        -webkit-box-flex: 1;
            -ms-flex: 1 1 0px;
                flex: 1 1 0;
    }

    .mx_RoomView .mx_MessageComposer {
        width: 100%;
        -webkit-box-flex: 0;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        margin-right: 2px;
        padding-bottom: 1em;
    }

.mx_RoomView_auxPanel_hiddenHighlights {
    border-bottom: 1px solid #000000;
    padding: 10px 26px;
    color: #ff5b55;
    cursor: pointer;
}

.mx_RoomView_messagePanel {
    width: 100%;
    overflow-y: auto;
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    overflow-anchor: none;
}

.mx_RoomView_messagePanelSearchSpinner {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    background-image: url(../../img/typing-indicator-2x.e13c259.gif);
    background-position: center 367px;
    background-size: 25px;
    background-repeat: no-repeat;
    position: relative;
}

    .mx_RoomView_messagePanelSearchSpinner svg {
        color: #888;
        width: 50px;
        height: 50px;
        position: absolute;
        top: 286px;
        left: calc(50% - 25px);
    }

.mx_RoomView_body {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 0;
    container-type: size;
    container-name: roomview;
}

    .mx_RoomView_body .mx_RoomView_messagePanel,
    .mx_RoomView_body .mx_RoomView_messagePanelSpinner,
    .mx_RoomView_body .mx_RoomView_messagePanelSearchSpinner {
        -webkit-box-ordinal-group: 3;
            -ms-flex-order: 2;
                order: 2;
    }

    .mx_RoomView_body .mx_RoomView_timeline {
        /* offset parent for mx_RoomView_topUnreadMessagesBar  */
        position: relative;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

/* Restore the gap between the timeline and the right panel only when the panel is open.
   Without this, the scrollbar on mx_RoomView_messagePanel would sit 4 px away from the
   viewport edge in Firefox (which does not support overflow:overlay). */
.mx_MainSplit:has(.mx_RightPanel_ResizeWrapper) .mx_RoomView_timeline {
    margin-right: calc(8px / 2);
    margin-right: calc(var(--container-gap-width) / 2);
}

.mx_RoomView_statusArea {
    width: 100%;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;

    max-height: 0px;
    background-color: #181b21;
    z-index: 1000;
    overflow: hidden;

    -webkit-transition: all 0.2s ease-out;

    transition: all 0.2s ease-out;
}

.mx_RoomView_statusArea_expanded {
    max-height: 100px;
}

.mx_RoomView_statusAreaBox {
    margin: auto;
    min-height: 50px;
}

.mx_RoomView_statusAreaBox_line {
    margin-left: 65px;
    border-top: 1px solid #000000;
    height: 1px;
}

.mx_RoomView_messageListWrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    position: relative;
}
    .mx_RoomView_searchResultsPanel .mx_RoomView_messageListWrapper {
        -webkit-box-pack: start;
            -ms-flex-pack: start;
                justify-content: flex-start;
    }

        .mx_RoomView_searchResultsPanel .mx_RoomView_messageListWrapper > .mx_RoomView_MessageList > li > ol {
            list-style-type: none;
        }

    .mx_RoomView_searchResultsPanel a {
        text-decoration: none;
        color: inherit;
    }

.mx_RoomView_empty {
    font-size: 0.8125rem;
    padding: 0 24px;
    margin-right: 30px;
    text-align: center;
    margin-bottom: 80px; /* visually center the content (intentional offset) */
}

.mx_RoomView_MessageList {
    list-style-type: none;
    padding: 18px;
    padding: var(--RoomView_MessageList-padding); /* mx_ProfileResizer depends on this value */
    margin: 0;
    /* needed as min-height is set to clientHeight in ScrollPanel
    to prevent shrinking when WhoIsTypingTile is hidden */
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

    .mx_RoomView_MessageList li {
        clear: both;
    }

    .mx_ScrollPanel .mx_RoomView_MessageList {
        position: relative;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-pack: end;
            -ms-flex-pack: end;
                justify-content: flex-end;

        content-visibility: auto;
        contain-intrinsic-size: 50px;
    }

    .mx_RoomView--local .mx_ScrollPanel .mx_RoomView_MessageList {
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
    }
    .mx_RoomView_inCall .mx_RoomView_statusAreaBox_line {
        margin-top: 2px;
        border: none;
        height: 0px;
    }

    .mx_RoomView_inCall .mx_MessageComposer_wrapper {
        border-top: 2px hidden;
        padding-top: 1px;
    }
    .mx_MatrixChat_useCompactLayout .mx_RoomView_MessageList {
        margin-bottom: 4px;
    }

        .mx_MatrixChat_useCompactLayout .mx_RoomView_MessageList h2 {
            margin-top: 6px;
        }

    .mx_MatrixChat_useCompactLayout .mx_RoomView_statusAreaBox {
        min-height: 42px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SearchBox {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    min-width: 0;
    min-height: 36px; /* to avoid jumping when the X to clear shows/hides */
}

    .mx_SearchBox.mx_SearchBox_blurred:not(:hover) {
        background-color: transparent;
    }

    .mx_SearchBox .mx_SearchBox_closeButton {
        cursor: pointer;
        height: 16px;
        width: 16px;
        padding: 9px;
    }

        .mx_SearchBox .mx_SearchBox_closeButton svg {
            height: inherit;
            width: inherit;
            color: var(--cpd-color-icon-secondary);
        }
}
@layer app-web{

/*
Copyright 2024,2025 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_SpaceRoomView_landing .mx_AccessibleButton_kind_link {
        font-size: inherit;
    }

    .mx_SpaceRoomView_landing .mx_SearchBox {
        margin: 24px 0 16px;
    }

    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_noResults {
        text-align: center;
    }

        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_noResults > div {
            font-size: 0.9375rem;
            line-height: 1.5rem;
            color: #edf3ff;
        }

    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_listHeader {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-flow: wrap;
            flex-flow: wrap;
        -webkit-box-pack: justify;
            -ms-flex-pack: justify;
                justify-content: space-between;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        gap: 12px;
        font-size: 0.9375rem;
        line-height: 1.5rem;
        color: #edf3ff;
        margin-bottom: 12px;
    }

        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_listHeader .mx_SpaceHierarchy_listHeader_header {
            grid-column-start: 1;
            font-weight: var(--cpd-font-weight-semibold);
            margin: 0;
        }

        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_listHeader .mx_SpaceHierarchy_listHeader_buttons {
            grid-column-start: 2;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -ms-flex-flow: wrap;
                flex-flow: wrap;
            gap: 12px;
            min-height: 32px;
        }

            .mx_SpaceRoomView_landing .mx_SpaceHierarchy_listHeader .mx_SpaceHierarchy_listHeader_buttons .mx_AccessibleButton {
                padding: 4px 12px;
                font-weight: normal;
            }

        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_listHeader .mx_AccessibleButton_kind_danger_outline,
        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_listHeader .mx_AccessibleButton_kind_primary_outline {
            padding: 3px 12px; /* to account for the 1px border */
        }

    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_error {
        position: relative;
        font-weight: var(--cpd-font-weight-semibold);
        color: #ff5b55;
        font-size: 0.9375rem;
        line-height: 1.125rem;
        margin: 20px auto 12px;
        padding-left: 24px;
        width: -webkit-max-content;
        width: -moz-max-content;
        width: max-content;
    }

        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_error::before {
            content: "";
            position: absolute;
            height: 16px;
            width: 16px;
            left: 0;
            background-image: url(../../icons/error-solid.7cb2e4d.svg);
            background-size: cover;
            background-repeat: no-repeat;
        }
        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_roomCount > h3 {
            display: inline;
            font-weight: var(--cpd-font-weight-semibold);
            font-size: 1.125rem;
            line-height: 1.375rem;
            color: #edf3ff;
        }

        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_roomCount > span {
            margin-left: 8px;
            font-size: 0.9375rem;
            line-height: 1.5rem;
            color: #edf3ff;
        }

    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_subspace_toggle {
        position: absolute;
        left: -1px;
        top: 10px;
        height: 16px;
        width: 16px;
        border-radius: 4px;
        background-color: #181b21;
    }

        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_subspace_toggle svg {
            width: inherit;
            height: inherit;
            color: #edf3ff;
            -webkit-transform: rotate(270deg);
                    transform: rotate(270deg);
        }

        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_subspace_toggle.mx_SpaceHierarchy_subspace_toggle_shown svg {
            -webkit-transform: rotate(0deg);
                    transform: rotate(0deg);
        }

    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_subspace_children {
        position: relative;
        padding-left: 12px;
    }

    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list {
        list-style: none;
        padding: 0;
        margin: 0;
    }

        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper {
            list-style: none;
        }

            .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile {
                position: relative;
                padding: 8px 16px;
                border-radius: 8px;
                -webkit-box-sizing: border-box;
                        box-sizing: border-box;

                display: -webkit-box;

                display: -ms-flexbox;

                display: flex;
                -ms-flex-wrap: wrap;
                    flex-wrap: wrap;
                gap: 6px 12px;
            }

                .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_roomTile_item {
                    font-weight: var(--cpd-font-weight-semibold);
                    font-size: 0.9375rem;
                    line-height: 1.125rem;
                    display: grid;
                    grid-template-columns: 20px auto;
                    grid-gap: 6px 8px;
                    gap: 6px 8px;
                    -webkit-box-align: center;
                        -ms-flex-align: center;
                            align-items: center;
                    -webkit-box-flex: 1;
                        -ms-flex: 1;
                            flex: 1; /* wrap action buttons */
                }

                    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_roomTile_item .mx_SpaceHierarchy_roomTile_avatar {
                        grid-row: 1;
                        grid-column: 1;
                    }

                    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_roomTile_item .mx_SpaceHierarchy_roomTile_name {
                        grid-row: 1;
                        grid-column: 2;
                    }

                        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_roomTile_item .mx_SpaceHierarchy_roomTile_name .mx_InfoTooltip,
                        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_roomTile_item .mx_SpaceHierarchy_roomTile_name .mx_SpaceHierarchy_roomTile_joined {
                            margin-left: 12px;
                            color: #edf3ff;
                            font-size: 0.75rem;
                            line-height: 0.9375rem;
                        }

                        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_roomTile_item .mx_SpaceHierarchy_roomTile_name .mx_InfoTooltip {
                            display: inline-block;
                        }

                        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_roomTile_item .mx_SpaceHierarchy_roomTile_name .mx_SpaceHierarchy_roomTile_joined {
                            display: -webkit-inline-box;
                            display: -ms-inline-flexbox;
                            display: inline-flex;
                            -webkit-box-align: center;
                                -ms-flex-align: center;
                                    align-items: center;
                            vertical-align: middle;
                        }

                            .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_roomTile_item .mx_SpaceHierarchy_roomTile_name .mx_SpaceHierarchy_roomTile_joined svg {
                                width: 20px;
                                height: 20px;
                                color: #0dbd8b;
                            }

                    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_roomTile_item .mx_SpaceHierarchy_roomTile_info {
                        grid-row: 2;
                        grid-column: 2;
                        font: var(--cpd-font-body-md-regular);
                        font-weight: normal;
                        font-weight: initial;
                        line-height: 1.125rem;
                        color: #edf3ff;
                        display: -webkit-box;
                        -webkit-box-orient: vertical;
                        -webkit-line-clamp: 2;
                        overflow: hidden;
                    }

                .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_actions {
                    display: -webkit-box;
                    display: -ms-flexbox;
                    display: flex;
                    -webkit-box-align: center;
                        -ms-flex-align: center;
                            align-items: center;
                    -webkit-column-gap: 12px;
                       -moz-column-gap: 12px;
                            column-gap: 12px;
                    margin-left: auto;
                }

                    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_actions .mx_AccessibleButton {
                        line-height: 1.5rem;
                        padding: 4px 16px;
                        display: inline-block;
                        visibility: hidden;
                    }

                    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_actions .mx_AccessibleButton_kind_danger_outline,
                    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_actions .mx_AccessibleButton_kind_primary_outline {
                        padding: 3px 16px; /* to account for the 1px border */
                    }

                .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile:hover,
                .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile:focus-within {
                    background-color: #15171b;
                }

                    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile:hover .mx_AccessibleButton, .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile:focus-within .mx_AccessibleButton {
                        visibility: visible;
                    }
                    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile.mx_SpaceHierarchy_joining .mx_AccessibleButton {
                        visibility: visible;
                        padding: 4px 18px;
                    }
        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_roomTile::before, .mx_SpaceRoomView_landing .mx_SpaceHierarchy_subspace_children::before {
            content: "";
            position: absolute;
            background-color: #15171b;
            width: 1px;
            height: 100%;
            left: 6px;
            top: 0;
        }
        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_actions .mx_SpaceHierarchy_actionsText {
            font-weight: normal;
            font-size: 0.75rem;
            line-height: 0.9375rem;
            color: #edf3ff;
        }

    .mx_SpaceRoomView_landing > hr {
        border: none;
        height: 1px;
        background-color: rgb(141, 151, 165, 0.2);
        margin: 20px 0;
    }

    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_createRoom {
        display: block;
        margin: 16px auto 0;
        width: -webkit-max-content;
        width: -moz-max-content;
        width: max-content;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SpacePanel {
    --activeBackground-color: #1a1d23;
    --activeBorder-color: #edf3ff;
    --activeBorder-transparent-gap: 1px;
    --gutterSize: 14px;
    --height-nested: 24px;
    --height-topLevel: 32px;

    background-color: var(--cpd-color-bg-canvas-default);
    border-right: 1px solid var(--cpd-color-bg-subtle-primary);
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    padding: 0;
    margin: 0;
    position: relative;
    /* Fix for the blurred avatar-background */
    z-index: 1;

    /* For enhanced visibility under contrast control */
    outline: 1px solid transparent;

    /* Create another flexbox so the Panel fills the container */
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

    .mx_SpacePanel.collapsed {
        width: 68px;
    }

    .mx_SpacePanel .mx_SpacePanel_toggleCollapse {
        position: absolute;
        width: 18px;
        height: 18px;
        border-radius: 50%;
        background-color: #edf3ff;
        top: 19px; /* v-align with avatar */
        right: -8px;
    }

        .mx_SpacePanel .mx_SpacePanel_toggleCollapse svg {
            height: inherit;
            width: inherit;
            display: inline-block;
            color: #181b21;
            /* Slight alignment tweak to center the asset */
            margin-left: 1px;
        }

        .mx_SpacePanel .mx_SpacePanel_toggleCollapse:not(.expanded) {
            opacity: 0;
        }

        .mx_SpacePanel .mx_SpacePanel_toggleCollapse.expanded svg {
            -webkit-transform: rotate(180deg);
                    transform: rotate(180deg);
            /* Slight alignment tweak to center the asset */
            margin-left: -1px;
        }

    .mx_SpacePanel:hover .mx_SpacePanel_toggleCollapse,
    .mx_SpacePanel .mx_SpacePanel_toggleCollapse:focus-visible {
        opacity: 1;
        /* For enhanced visibility under contrast control */
        outline: 1px solid transparent;
    }

    .mx_SpacePanel ul {
        margin: 0;
        list-style: none;
        padding: 0;
    }

    .mx_SpacePanel .mx_SpaceButton_toggleCollapse {
        cursor: pointer;
    }
        .mx_SpacePanel .mx_SpaceItem_dragging .mx_SpaceButton_toggleCollapse {
            visibility: hidden;
        }

    .mx_SpacePanel .mx_SpaceItem {
        display: -webkit-inline-box;
        display: -ms-inline-flexbox;
        display: inline-flex;
        -ms-flex-flow: wrap;
            flex-flow: wrap;
    }

        .mx_SpacePanel .mx_SpaceItem.mx_SpaceItem_narrow {
            -ms-flex-item-align: baseline;
                align-self: baseline;
        }
        .mx_SpacePanel .mx_SpaceItem.collapsed > .mx_SpaceButton > .mx_SpaceButton_toggleCollapse {
            padding: 0 10px;
            margin: 0 -10px;
        }

        .mx_SpacePanel .mx_SpaceItem.collapsed > .mx_SpaceTreeLevel {
            display: none;
        }

    .mx_SpacePanel .mx_SpaceItem_new {
        position: relative;
    }

    .mx_SpacePanel .mx_SpaceItem:not(.hasSubSpaces) > .mx_SpaceButton {
        margin-left: var(--gutterSize);
        min-width: 40px;
    }

    .mx_SpacePanel .mx_SpaceButton {
        border-radius: 8px;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        padding: 4px 4px 4px 0;
        width: 100%;
        /* Override the unlayered cursor: grab; rule from react-beautiful-dnd */
        cursor: pointer !important;
    }
            .mx_SpacePanel .mx_SpaceButton.mx_SpaceButton_active:not(.mx_SpaceButton_narrow) .mx_SpaceButton_selectionWrapper {
                background-color: var(--activeBackground-color);
            }

            .mx_SpacePanel .mx_SpaceButton.mx_SpaceButton_active.mx_SpaceButton_narrow .mx_SpaceButton_selectionWrapper {
                padding: var(--activeBorder-transparent-gap);
                border: 3px var(--activeBorder-color) solid;
            }

        .mx_SpacePanel .mx_SpaceButton .mx_SpaceButton_selectionWrapper {
            position: relative;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            border-radius: 12px;
            padding: 4px;
            width: calc(100% - 32px);
            min-width: 0;
        }

        .mx_SpacePanel .mx_SpaceButton.mx_SpaceButton_narrow .mx_SpaceButton_selectionWrapper {
            -webkit-box-flex: initial;
                -ms-flex: initial;
                    flex: initial;
            width: 32px;
        }

        .mx_SpacePanel .mx_SpaceButton .mx_SpaceButton_name {
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
            margin-left: 8px;
            white-space: nowrap;
            display: block;
            text-overflow: ellipsis;
            overflow: hidden;
            font: var(--cpd-font-body-md-regular);
        }

        .mx_SpacePanel .mx_SpaceButton .mx_SpaceButton_toggleCollapse {
            height: 20px;
            width: var(--gutterSize);
            -ms-flex-negative: 0;
                flex-shrink: 0;
            padding: 10px 0;
        }

            .mx_SpacePanel .mx_SpaceButton .mx_SpaceButton_toggleCollapse svg {
                width: 20px;
                height: inherit;
                display: inline-block;
                color: #edf3ff;
                /* Re-align with parent */
                margin-left: -3px;
            }

        .mx_SpacePanel .mx_SpaceButton .mx_SpaceButton_icon {
            /* Calculate height excluding padding to allow svg to inherit */
            width: calc(var(--height-topLevel) - 14px);
            height: calc(var(--height-topLevel) - 14px);
            -ms-flex-negative: 0;
                flex-shrink: 0;
            border-radius: 8px;
            padding: 7px;
            background-color: #1a1d23;
        }

            .mx_SpacePanel .mx_SpaceButton .mx_SpaceButton_icon svg {
                width: inherit;
                height: inherit;
                display: block;
                color: #edf3ff;
            }

        .mx_SpacePanel .mx_SpaceButton.mx_SpaceButton_new .mx_SpaceButton_icon {
            background-color: transparent;
            background-color: initial;
        }

            .mx_SpacePanel .mx_SpaceButton.mx_SpaceButton_new .mx_SpaceButton_icon svg {
                color: #edf3ff;
                -webkit-transition: all 0.2s ease-in-out;
                transition: all 0.2s ease-in-out; /* TODO transition */
            }

        .mx_SpacePanel .mx_SpaceButton.mx_SpaceButton_newCancel .mx_SpaceButton_icon svg {
            -webkit-transform: rotate(45deg);
                    transform: rotate(45deg);
        }

        .mx_SpacePanel .mx_SpaceButton .mx_SpaceButton_menuButton {
            width: 16px;
            height: 16px;
            padding: var(--cpd-space-0-5x);
            -ms-flex-negative: 0;
                flex-shrink: 0;
            margin-top: auto;
            margin-bottom: auto;
            display: none;
            position: absolute;
            right: 4px;
        }

            .mx_SpacePanel .mx_SpaceButton .mx_SpaceButton_menuButton svg {
                width: inherit;
                height: inherit;
                display: block;
                color: #edf3ff;
            }

    .mx_SpacePanel .mx_SpaceTreeLevel {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        max-width: 250px;
        min-width: 0;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
    }

        .mx_SpacePanel .mx_SpaceTreeLevel .mx_SpaceTreeLevel {
            /* Indent subspaces */
            padding-left: 16px;
        }

    .mx_SpacePanel .mx_SpaceButton_avatarWrapper {
        position: relative;
        line-height: 0;
    }

    .mx_SpacePanel .mx_SpacePanel_badgeContainer {
        /* Create a flexbox to make aligning dot badges easier */
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        position: absolute;
        right: -3px;
        top: -3px;
    }

        .mx_SpacePanel .mx_SpacePanel_badgeContainer .mx_SpacePanel_notificationBadge {
            margin: 0 2px; /* centering */
            background-clip: padding-box;
        }

        .mx_SpacePanel .mx_SpacePanel_badgeContainer [data-badge-type="dot"] {
            /* make the smaller dot occupy the same width for centering */
            margin: 0 -1px 0 0;
            border: 3px solid #15171b;
        }

        .mx_SpacePanel .mx_SpacePanel_badgeContainer [data-badge-type="badge_2char"],
        .mx_SpacePanel .mx_SpacePanel_badgeContainer [data-badge-type="badge_3char"] {
            margin: -5px -5px 0 0;
            border: 2px solid #15171b;
        }
        .mx_SpacePanel .mx_SpaceButton:hover:not(.mx_SpaceButton_narrow):not(.mx_SpaceButton_invite) .mx_SpaceButton_menuButton, .mx_SpacePanel .mx_SpaceButton:focus-within:not(.mx_SpaceButton_narrow):not(.mx_SpaceButton_invite) .mx_SpaceButton_menuButton, .mx_SpacePanel .mx_SpaceButton_hasMenuOpen:not(.mx_SpaceButton_narrow):not(.mx_SpaceButton_invite) .mx_SpaceButton_menuButton {
            display: block;
        }
            .mx_SpacePanel .mx_SpaceItem:not(.mx_SpaceItem_new) .mx_SpaceButton:hover:not(.mx_SpaceButton_narrow):not(.mx_SpaceButton_invite) .mx_SpaceButton_name, .mx_SpacePanel .mx_SpaceItem:not(.mx_SpaceItem_new) .mx_SpaceButton:focus-within:not(.mx_SpaceButton_narrow):not(.mx_SpaceButton_invite) .mx_SpaceButton_name, .mx_SpacePanel .mx_SpaceItem:not(.mx_SpaceItem_new) .mx_SpaceButton_hasMenuOpen:not(.mx_SpaceButton_narrow):not(.mx_SpaceButton_invite) .mx_SpaceButton_name {
                max-width: calc(100% - 56px);
            }

    /* root space buttons are bigger and not indented */
    .mx_SpacePanel > .mx_AutoHideScrollbar {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        padding: 0 0 16px 0;
        scrollbar-gutter: stable;
    }

        .mx_SpacePanel > .mx_AutoHideScrollbar.mx_IndicatorScrollbar_topOverflow {
            -webkit-mask-image: linear-gradient(to bottom, transparent, black 16px);
                    mask-image: linear-gradient(to bottom, transparent, black 16px);
        }

        .mx_SpacePanel > .mx_AutoHideScrollbar.mx_IndicatorScrollbar_bottomOverflow {
            -webkit-mask-image: linear-gradient(
                to top,
                transparent,
                rgb(255, 255, 255, 30%) 4px,
                rgb(255, 255, 255, 55%) 8px,
                rgb(255, 255, 255, 75%) 12px,
                black 16px
            );
                    mask-image: linear-gradient(
                to top,
                transparent,
                rgb(255, 255, 255, 30%) 4px,
                rgb(255, 255, 255, 55%) 8px,
                rgb(255, 255, 255, 75%) 12px,
                black 16px
            );
        }

        .mx_SpacePanel > .mx_AutoHideScrollbar.mx_IndicatorScrollbar_topOverflow.mx_IndicatorScrollbar_bottomOverflow {
            /* This stacks two gradients on top of one another, which lets us
               have a fixed pixel offset from both top and bottom for the colour stops.
               Note the top fade is much smaller because the spaces start close to the top,
               so otherwise a large gradient suddenly appears when you scroll down.
             */
            -webkit-mask-image:
                linear-gradient(to bottom, transparent, black 16px),
                linear-gradient(
                    to top,
                    transparent,
                    rgb(255, 255, 255, 30%) 4px,
                    rgb(255, 255, 255, 55%) 8px,
                    rgb(255, 255, 255, 75%) 12px,
                    black 16px
                );
                    mask-image:
                linear-gradient(to bottom, transparent, black 16px),
                linear-gradient(
                    to top,
                    transparent,
                    rgb(255, 255, 255, 30%) 4px,
                    rgb(255, 255, 255, 55%) 8px,
                    rgb(255, 255, 255, 75%) 12px,
                    black 16px
                );
            -webkit-mask-position:
                0% 0%,
                0% 100%;
                    mask-position:
                0% 0%,
                0% 100%;
            -webkit-mask-size:
                calc(100% - 10px) 50%,
                calc(100% - 10px) 50%;
                    mask-size:
                calc(100% - 10px) 50%,
                calc(100% - 10px) 50%;
            -webkit-mask-repeat: no-repeat;
                    mask-repeat: no-repeat;
        }

.mx_SpacePanel_contextMenu {
    max-width: 360px;
}

    .mx_SpacePanel_contextMenu .mx_SpacePanel_contextMenu_header {
        margin: 12px 16px 12px;
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 0.9375rem;
        line-height: 1.125rem;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .mx_SpacePanel_contextMenu .mx_SpacePanel_contextMenu_separatorLabel {
        color: #edf3ff;
        font-size: 0.625rem;
        line-height: 0.75rem;
        font-weight: var(--cpd-font-weight-semibold);
    }

.mx_SpacePanel_sharePublicSpace {
    margin: 0;
}
    .mx_SpacePanel_Tooltip_KeyboardShortcut kbd {
        font-family: inherit;
        text-transform: capitalize;
    }
}
@layer app-web{

/*
Copyright 2025 Element Creations Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SpacePillButton {
    position: relative;
    padding: 16px 32px 16px 72px;
    width: 432px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    border-radius: 8px;
    border: 1px solid #e7e7e7;
    font-size: 1.0625rem;
    font-weight: var(--cpd-font-weight-semibold);
    margin: 20px 0;
}

    .mx_SpacePillButton > div {
        margin-top: 4px;
        font-weight: normal;
        font-size: 0.9375rem;
        color: #edf3ff;
    }

    .mx_SpacePillButton svg {
        position: absolute;
        content: "";
        width: 28px;
        height: 28px;
        top: 50%;
        -webkit-transform: translateY(-50%);
                transform: translateY(-50%);
        left: 22px;
        color: #edf3ff;
    }

    .mx_SpacePillButton:hover {
        border-color: var(--cpd-color-bg-action-primary-rest);
    }

        .mx_SpacePillButton:hover svg {
            color: var(--cpd-color-icon-primary);
        }

        .mx_SpacePillButton:hover > span {
            color: #edf3ff;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SpaceRoomView {
    --innerWidth: 428px;

    overflow-y: auto;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
}

    .mx_SpaceRoomView .mx_MainSplit > div:first-child {
        padding: 80px 60px;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        max-height: 100%;
        overflow-y: auto;
    }

        .mx_SpaceRoomView .mx_MainSplit > div:first-child h1 {
            margin: 0;
            font-size: 1.5rem;
            font-weight: var(--cpd-font-weight-semibold);
            color: #edf3ff;
            width: -webkit-max-content;
            width: -moz-max-content;
            width: max-content;
        }

        .mx_SpaceRoomView .mx_MainSplit > div:first-child .mx_SpaceRoomView_description {
            font-size: 0.9375rem;
            color: #edf3ff;
            margin-top: 12px;
            margin-bottom: 24px;
            max-width: var(--innerWidth);
        }

        .mx_SpaceRoomView .mx_MainSplit > div:first-child .mx_AddExistingToSpace {
            max-width: var(--innerWidth);
        }

            .mx_SpaceRoomView .mx_MainSplit > div:first-child .mx_AddExistingToSpace .mx_AddExistingToSpace_content {
                height: calc(100vh - 360px);
                max-height: 400px;
            }

        .mx_SpaceRoomView .mx_MainSplit > div:first-child .mx_SpaceRoomView_buttons {
            display: block;
            margin-top: 44px;
            width: var(--innerWidth);
            text-align: right; /* button alignment right */
        }

            .mx_SpaceRoomView .mx_MainSplit > div:first-child .mx_SpaceRoomView_buttons .mx_AccessibleButton_hasKind {
                padding: 8px 22px;
                margin-left: 16px;
            }

            .mx_SpaceRoomView .mx_MainSplit > div:first-child .mx_SpaceRoomView_buttons input.mx_AccessibleButton {
                border: none; /* override default styles */
            }

        .mx_SpaceRoomView .mx_MainSplit > div:first-child .mx_Field {
            max-width: var(--innerWidth);
        }

            .mx_SpaceRoomView .mx_MainSplit > div:first-child .mx_Field + .mx_Field {
                margin-top: 28px;
            }

        .mx_SpaceRoomView .mx_MainSplit > div:first-child .mx_SpaceRoomView_errorText {
            font-weight: var(--cpd-font-weight-semibold);
            font-size: 0.75rem;
            line-height: 0.9375rem;
            color: #ff5b55;
            margin-bottom: 28px;
        }

        .mx_SpaceRoomView .mx_MainSplit > div:first-child .mx_AccessibleButton_disabled {
            cursor: not-allowed;
        }

    .mx_SpaceRoomView .mx_SpaceRoomView_landing {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        min-width: 0;
    }

        .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_header {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-pack: justify;
                -ms-flex-pack: justify;
                    justify-content: space-between;
        }

            .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_header .mx_BaseAvatar {
                width: 80px;
            }

        .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_name {
            margin: 24px 0 16px;
            font-size: 0.9375rem;
            color: #edf3ff;
        }

            .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_name > span {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-orient: vertical;
                -webkit-box-direction: normal;
                    -ms-flex-flow: column;
                        flex-flow: column;
                gap: 12px 0;
            }

                .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_name > span h1 {
                    display: inline-block;
                    overflow: hidden;
                    text-overflow: ellipsis;
                    white-space: nowrap;
                    width: 100%;
                }
                .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_name .mx_SpaceRoomView_landing_inviter .mx_BaseAvatar {
                    margin-right: 4px;
                    vertical-align: middle;
                }

        .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-box-pack: justify;
                -ms-flex-pack: justify;
                    justify-content: space-between;
            gap: 12px;
            -ms-flex-wrap: wrap;
                flex-wrap: wrap;
            line-height: 1.5rem;
        }

            .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar .mx_SpaceRoomView_landing_infoBar_interactive {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -ms-flex-wrap: wrap;
                    flex-wrap: wrap;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
                gap: 12px 12px;
            }

                .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar .mx_SpaceRoomView_landing_infoBar_interactive .mx_FacePile {
                    display: inline-block;
                    cursor: pointer;
                    /* For enhanced visibility under contrast control */
                    outline: 1px solid transparent;
                }

                .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar .mx_SpaceRoomView_landing_infoBar_interactive .mx_SpaceRoomView_landing_inviteButton,
                .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar .mx_SpaceRoomView_landing_infoBar_interactive .mx_SpaceRoomView_landing_settingsButton {
                    position: relative;
                }

                    .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar .mx_SpaceRoomView_landing_infoBar_interactive .mx_SpaceRoomView_landing_inviteButton svg, .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar .mx_SpaceRoomView_landing_infoBar_interactive .mx_SpaceRoomView_landing_settingsButton svg {
                        position: absolute;
                    }

                .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar .mx_SpaceRoomView_landing_infoBar_interactive .mx_SpaceRoomView_landing_inviteButton {
                    padding: 4px 18px 4px 40px;
                    height: -webkit-min-content;
                    height: -moz-min-content;
                    height: min-content;
                }

                    .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar .mx_SpaceRoomView_landing_infoBar_interactive .mx_SpaceRoomView_landing_inviteButton svg {
                        left: 8px;
                        height: 16px;
                        width: 16px;
                        color: var(--cpd-color-icon-on-solid-primary);
                    }

                .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar .mx_SpaceRoomView_landing_infoBar_interactive .mx_SpaceRoomView_landing_settingsButton {
                    width: 24px;
                    height: 24px;
                }

                    .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar .mx_SpaceRoomView_landing_infoBar_interactive .mx_SpaceRoomView_landing_settingsButton svg {
                        left: 0;
                        top: 0;
                        height: 24px;
                        width: 24px;
                        color: #edf3ff;
                    }

        .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_topic {
            font-size: 0.9375rem;
            margin-top: 12px;
            margin-bottom: 16px;
            white-space: pre-wrap;
            word-wrap: break-word;
        }

        .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SearchBox {
            margin: 0 0 20px;
            -webkit-box-flex: 0;
                -ms-flex: 0;
                    flex: 0;
        }
        .mx_SpaceRoomView .mx_SpaceRoomView_inviteTeammates .mx_SpaceRoomView_inviteTeammates_buttons {
            color: #edf3ff;
            margin-top: 28px;
        }

            .mx_SpaceRoomView .mx_SpaceRoomView_inviteTeammates .mx_SpaceRoomView_inviteTeammates_buttons .mx_AccessibleButton {
                position: relative;
                display: inline-block;
                padding-left: 32px;
                line-height: 24px; /* to center icons */
                color: var(--cpd-color-text-primary);
                font-weight: var(--cpd-font-weight-semibold);
                text-decoration: underline;
            }

                .mx_SpaceRoomView .mx_SpaceRoomView_inviteTeammates .mx_SpaceRoomView_inviteTeammates_buttons .mx_AccessibleButton svg {
                    position: absolute;
                    height: 24px;
                    width: 24px;
                    top: 0;
                    left: 0;
                    color: var(--cpd-color-icon-primary);
                }

                .mx_SpaceRoomView .mx_SpaceRoomView_inviteTeammates .mx_SpaceRoomView_inviteTeammates_buttons .mx_AccessibleButton + .mx_AccessibleButton {
                    margin-left: 32px;
                }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SplashPage {
    position: relative;
    height: 100%;
}

    .mx_SplashPage::before {
        content: "";
        display: block;
        position: absolute;
        z-index: -1;
        opacity: 0.6;
        background-image:
            radial-gradient(
                53.85% 66.75% at 87.55% 0%,
                hsl(250deg, 76%, 71%, 0.261) 0%,
                hsl(250deg, 100%, 88%, 0) 100%
            ),
            radial-gradient(41.93% 41.93% at 0% 0%, hsl(222deg, 29%, 20%, 0.28) 0%, hsl(250deg, 100%, 88%, 0) 100%),
            radial-gradient(100% 100% at 0% 0%, hsl(250deg, 100%, 88%, 0.174) 0%, hsl(0deg, 100%, 86%, 0) 100%),
            radial-gradient(106.35% 96.26% at 100% 0%, hsl(250deg, 100%, 88%, 0.4) 0%, hsl(167deg, 76%, 82%, 0) 100%);
        /* blur to reduce color banding issues due to alpha-blending multiple gradients */
        -webkit-filter: blur(8px);
                filter: blur(8px);
        inset: -9px;
        -webkit-mask:
            /* mask to dither resulting combined gradient */
            url(../../img/noise.8322d5a.png),
            /* gradient to apply different amounts of dithering to different parts of the gradient */
            linear-gradient(
                to bottom,
                /* 10% dithering at the top */ rgb(0, 0, 0, 0.9) 20%,
                /* 80% dithering at the bottom */ rgb(0, 0, 0, 0.2) 100%
            );
        -webkit-mask:
            /* mask to dither resulting combined gradient */
            url(../../img/noise.8322d5a.png),
            /* gradient to apply different amounts of dithering to different parts of the gradient */
            linear-gradient(
                to bottom,
                /* 10% dithering at the top */ rgb(0, 0, 0, 0.9) 20%,
                /* 80% dithering at the bottom */ rgb(0, 0, 0, 0.2) 100%
            );
                mask:
            /* mask to dither resulting combined gradient */
            url(../../img/noise.8322d5a.png),
            /* gradient to apply different amounts of dithering to different parts of the gradient */
            linear-gradient(
                to bottom,
                /* 10% dithering at the top */ rgb(0, 0, 0, 0.9) 20%,
                /* 80% dithering at the bottom */ rgb(0, 0, 0, 0.2) 100%
            );
                mask:
            /* mask to dither resulting combined gradient */
            url(../../img/noise.8322d5a.png),
            /* gradient to apply different amounts of dithering to different parts of the gradient */
            linear-gradient(
                to bottom,
                /* 10% dithering at the top */ rgb(0, 0, 0, 0.9) 20%,
                /* 80% dithering at the bottom */ rgb(0, 0, 0, 0.2) 100%
            );
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.
Copyright 2019 New Vector Ltd
Copyright 2017 Travis Ralston

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_TabbedView {
    margin: 0;
    padding: 0 0 0 var(--cpd-space-8x);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    inset: 0;
    margin-top: 8px;
}

.mx_TabbedView_tabsOnLeft {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    position: absolute;
}

    .mx_TabbedView_tabsOnLeft .mx_TabbedView_tabLabels {
        width: 220px;
        max-width: 220px;
        position: fixed;
        margin: 0; /* Remove the default value */
        padding: 0; /* Remove the default value */
    }

    .mx_TabbedView_tabsOnLeft .mx_TabbedView_tabPanel {
        margin-left: 280px; /* 220px sidebar + 60px padding */
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

    .mx_TabbedView_tabsOnLeft .mx_TabbedView_tabLabel:hover,
    .mx_TabbedView_tabsOnLeft .mx_TabbedView_tabLabel_active {
        color: #edf3ff;
    }

    .mx_TabbedView_tabsOnLeft .mx_TabbedView_tabLabel_active {
        background-color: var(--cpd-color-bg-subtle-secondary);
        /* For enhanced visibility under contrast control */
        outline: 1px solid transparent;
    }

.mx_TabbedView_tabsOnTop {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

    .mx_TabbedView_tabsOnTop .mx_TabbedView_tabLabels {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        margin-bottom: 8px;
    }

    .mx_TabbedView_tabsOnTop .mx_TabbedView_tabLabel {
        padding-left: 0px;
        padding-right: 52px;
    }

        .mx_TabbedView_tabsOnTop .mx_TabbedView_tabLabel .mx_TabbedView_tabLabel_text {
            font-size: 15px;
            color: #edf3ff;
        }

    .mx_TabbedView_tabsOnTop .mx_TabbedView_tabPanel {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
    }

    .mx_TabbedView_tabsOnTop .mx_TabbedView_tabLabel_active {
        color: #0dbd8b;
    }
        .mx_TabbedView_tabsOnTop .mx_TabbedView_tabLabel_active .mx_TabbedView_tabLabel_text {
            color: #0dbd8b;
        }

.mx_TabbedView_tabLabels {
    color: #edf3ff;
}

.mx_TabbedView_tabLabel {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    vertical-align: text-top;
    cursor: pointer;
    padding-block: var(--cpd-space-2x);
    padding-inline: var(--cpd-space-3x) var(--cpd-space-4x);
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    min-block-size: 40px;
    min-inline-size: 40px;
    border-radius: 24px;
    font: var(--cpd-font-body-md-medium);
    position: relative;
    -webkit-transition:
        color 0.1s,
        background-color 0.1s;
    transition:
        color 0.1s,
        background-color 0.1s;
}

    .mx_TabbedView_tabLabel svg {
        width: 20px;
        height: 20px;
        margin-right: var(--cpd-space-3x);
    }

.mx_TabbedView_tabLabel_text {
    vertical-align: middle;
}

.mx_TabbedView_tabPanel {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    min-height: 0; /* firefox */
}

.mx_TabbedView_tabPanelContent {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    overflow: auto;
    min-height: 0; /* firefox */
}

/* Hide the labels on tabs, showing only the icons, on narrow viewports. */
@media (max-width: 1024px) {
        .mx_TabbedView_tabsOnLeft.mx_TabbedView_responsive .mx_TabbedView_tabLabel_text {
            display: none;
        }
        .mx_TabbedView_tabsOnLeft.mx_TabbedView_responsive .mx_TabbedView_tabPanel {
            margin-left: 72px; /* 40px sidebar + 32px padding */
        }
        .mx_TabbedView_tabsOnLeft.mx_TabbedView_responsive .mx_TabbedView_tabLabels {
            width: auto;
        }
        .mx_TabbedView_tabsOnLeft.mx_TabbedView_responsive .mx_TabbedView_tabLabel {
            padding-inline: 0 0;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
        }
            .mx_TabbedView_tabsOnLeft.mx_TabbedView_responsive .mx_TabbedView_tabLabel svg {
                margin-right: 0;
            }
}
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 * Copyright 2024 The Matrix.org Foundation C.I.C.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_ThreadsActivityCentre_container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

.mx_ThreadsActivityCentreButton {
    /* !important override compound */
    border-radius: 8px !important;
    margin: 18px auto auto auto;
}

    .mx_ThreadsActivityCentreButton.expanded {
        /**
         * override compound default background color when hovered
         * should disappear when the space panel will be migrated to compound
         */
        background-color: transparent !important;

        /* align with settings icon */
        margin-left: 21px;
        margin-right: 8px;
        width: 100%;
    }

        /**
         * modify internal css of the compound component
         * dirty but we need to add the `Threads` label into the indicator icon button
         **/
        .mx_ThreadsActivityCentreButton.expanded > div {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

            .mx_ThreadsActivityCentreButton.expanded > div::before {
                inline-size: 8px;
                block-size: 8px;
                left: 17px;
            }

        .mx_ThreadsActivityCentreButton.expanded .mx_ThreadsActivityCentreButton_Icon {
            /* align with settings label */
            margin-right: 14px;
            /* required to set the icon width when into a flex container */
            width: 24px;
            -ms-flex-negative: 0;
                flex-shrink: 0;
        }

        .mx_ThreadsActivityCentreButton.expanded .mx_ThreadsActivityCentreButton_Text {
            /* !important override compound  */
            color: #edf3ff !important;
        }
        .mx_ThreadsActivityCentreButton:not(.expanded):hover,
        .mx_ThreadsActivityCentreButton:not(.expanded):hover .mx_ThreadsActivityCentreButton_Icon {
            /* !important override compound */
            background-color: #6f7882 !important;
            fill: #edf3ff;
        }

    .mx_ThreadsActivityCentreButton .mx_ThreadsActivityCentreButton_Icon {
        fill: #edf3ff;
    }

.mx_ThreadsActivityCentre_rows {
    overflow-y: scroll;
    /* Let some space at the top and the bottom of the pop-up */
    max-height: calc(100vh - 200px);
}

    .mx_ThreadsActivityCentre_rows .mx_ThreadsActivityCentreRow {
        height: 48px;
    }

        /* Make the label of the MenuItem stay on one line and truncate with ellipsis if needed */
        .mx_ThreadsActivityCentre_rows .mx_ThreadsActivityCentreRow > span {
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            /* Arbitrary size, keep the TAC as the wanted width */
            width: 202px;
        }

        /* Hide the notification badge on hover — compound's `nav-hint ~ *` rule would normally
         * do this, but the app-web CSS layer overrides compound-web regardless of specificity. */
        .mx_ThreadsActivityCentre_rows .mx_ThreadsActivityCentreRow:hover .mx_ThreadsActivityCentre_notificationBadge {
            display: none;
        }

.mx_ThreadsActivityCentre_emptyCaption {
    padding-left: 16px;
    padding-right: 16px;
    font-size: 13px;
}
}
@layer app-web{

/*
Copyright 2026 Element Creations Ltd.
Copyright 2024 New Vector Ltd.
Copyright 2019-2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ToastContainer {
    position: absolute;
    top: 12px;
    left: 62px;
    z-index: 101;
    display: grid;
    grid-template-rows: 1fr 28px 8px;
}

    .mx_ToastContainer.mx_ToastContainer_stacked::before {
        content: "";
        margin: 0 var(--cpd-space-1-5x);
        grid-row: 2 / -1;
        grid-column: 1;
        background-color: #21262c;
        -webkit-box-shadow: 0px 4px 20px rgb(0, 0, 0, 0.5);
                box-shadow: 0px 4px 20px rgb(0, 0, 0, 0.5);
        border-radius: var(--cpd-space-6x);
    }

    .mx_ToastContainer .mx_Toast_toast {
        grid-row: 1 / 3;
        grid-column: 1;
        background-color: var(--cpd-color-bg-canvas-default);
        color: #edf3ff;
        -webkit-box-shadow: 0px 4px 24px rgb(0, 0, 0, 0.1);
                box-shadow: 0px 4px 24px rgb(0, 0, 0, 0.1);
        border: var(--cpd-border-width-1) solid var(--cpd-color-border-interactive-secondary);
        border-radius: var(--cpd-space-3x);
        overflow: hidden;
        display: grid;
        grid-template-columns: 20px 1fr auto;
        grid-column-gap: var(--cpd-space-2x);
        -webkit-column-gap: var(--cpd-space-2x);
           -moz-column-gap: var(--cpd-space-2x);
                column-gap: var(--cpd-space-2x);
        grid-row-gap: 4px;
        row-gap: 4px;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        padding: calc(var(--cpd-space-5x) - var(--cpd-border-width-1));
    }
            .mx_ToastContainer .mx_Toast_toast.mx_Toast_hasIcon svg {
                width: 20px;
                height: 20px;
                grid-column: 1;
            }

            .mx_ToastContainer .mx_Toast_toast.mx_Toast_hasIcon .mx_Toast_title {
                grid-column: 2;
            }

            .mx_ToastContainer .mx_Toast_toast.mx_Toast_hasIcon .mx_Toast_closebutton {
                grid-column: 3;
            }
        .mx_ToastContainer .mx_Toast_toast:not(.mx_Toast_hasIcon) .mx_Toast_title {
            grid-column: 1 / -1;
        }

        .mx_ToastContainer .mx_Toast_toast .mx_Toast_title {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-column-gap: var(--cpd-space-2x);
               -moz-column-gap: var(--cpd-space-2x);
                    column-gap: var(--cpd-space-2x);
            width: 100%;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
        }

            .mx_ToastContainer .mx_Toast_toast .mx_Toast_title h2 {
                margin: 0;
                font: var(--cpd-font-body-lg-semibold);
                display: inline;
                width: auto;
            }

        .mx_ToastContainer .mx_Toast_toast .mx_Toast_body {
            grid-column: 1 / -1;
            grid-row: 2;
        }

        .mx_ToastContainer .mx_Toast_toast .mx_Toast_buttons {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-pack: end;
                -ms-flex-pack: end;
                    justify-content: flex-end;
            -webkit-column-gap: var(--cpd-space-2x);
               -moz-column-gap: var(--cpd-space-2x);
                    column-gap: var(--cpd-space-2x);
        }

            .mx_ToastContainer .mx_Toast_toast .mx_Toast_buttons .mx_AccessibleButton {
                min-width: 96px;
                -webkit-box-sizing: border-box;
                        box-sizing: border-box;
            }

        .mx_ToastContainer .mx_Toast_toast .mx_Toast_description {
            max-width: 272px;
            overflow: hidden;
            text-overflow: ellipsis;
            margin: var(--cpd-space-1x) 0 11px 0;
            color: #edf3ff;
            font: var(--cpd-font-body-sm-regular);
        }

            .mx_ToastContainer .mx_Toast_toast .mx_Toast_description a {
                text-decoration: none;
            }

        .mx_ToastContainer .mx_Toast_toast .mx_Toast_deviceID {
            font-size: 0.625rem;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 , 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_UploadBar {
    /* line up with the shield area in the composer */
    padding: 5px 21px 0;
    position: relative;

    display: grid;
    grid-template:
        "icon     filename cancel" auto
        "progress progress progress" auto
        / -webkit-min-content auto -webkit-min-content;
    grid-template:
        "icon     filename cancel" auto
        "progress progress progress" auto
        / min-content auto min-content;
    grid-gap: var(--cpd-space-1-5x);
    gap: var(--cpd-space-1-5x);
}

    .mx_UploadBar > svg {
        grid-area: icon;
        height: 18px;
        width: 18px;
        color: #a1b2d1;
        align-self: center;
    }

    .mx_UploadBar .mx_UploadBar_filename {
        grid-area: filename;
        color: #a1b2d1;
        position: relative;
        font-size: 0.9375rem;
        vertical-align: middle;
    }

    .mx_UploadBar .mx_UploadBar_cancel {
        grid-area: cancel;
        height: 16px;
        width: 16px;
        color: #a1b2d1;
        align-self: center;
    }

    .mx_UploadBar .mx_ProgressBar {
        grid-area: progress;
        width: 100%;
    }
    .mx_ThreadView .mx_UploadBar {
        padding-left: 0;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_ViewSource pre {
        font-size: 0.75rem;
        padding: 0.5em 1em;
        word-wrap: break-word;
        white-space: pre-wrap;
        overflow-wrap: anywhere;
    }

    .mx_ViewSource .mx_ViewSource_header {
        border-bottom: 1px solid #6f7882;
        padding-bottom: var(--cpd-space-3x);
        margin-bottom: var(--cpd-space-3x);
        font-family: monospace;
    }

        .mx_ViewSource .mx_ViewSource_header .mx_CopyableText {
            word-break: break-all;
        }

    .mx_ViewSource .mx_ViewSource_heading {
        font-size: 1.0625rem;
        font-weight: 400;
        color: #edf3ff;
        margin-top: var(--cpd-space-3x);
    }

    .mx_ViewSource .mx_ViewSource_details {
        margin-top: var(--cpd-space-3x);
    }

    .mx_ViewSource .mx_CopyableText_border {
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        width: 100%;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CompleteSecurity_header {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_E2EIcon.mx_CompleteSecurity_headerIcon {
    width: 24px;
    height: 24px;
    margin-right: 4px;
    display: inline-block;
}

.mx_E2EIcon.mx_CompleteSecurity_heroIcon {
    width: 128px;
    height: 128px;
    margin: 0 auto;
}

.mx_CompleteSecurity_skip {
    width: 20px;
    height: 20px;
    padding: var(--cpd-space-1x);
    border-radius: 14px;
    background-color: var(--cpd-color-bg-subtle-secondary);
}
    .mx_CompleteSecurity_skip:hover {
        background-color: var(--cpd-color-bg-subtle-primary);
    }
    .mx_CompleteSecurity_skip svg {
        width: inherit;
        height: inherit;
        vertical-align: top;
        color: var(--cpd-color-icon-secondary);
    }
    .mx_CompleteSecurity_skip{
    position: absolute;
    right: 24px;
}

.mx_CompleteSecurity_body {
    font-size: 0.9375rem;
}

.mx_CompleteSecurity_waiting {
    color: #edf3ff;
}

.mx_CompleteSecurity_actionRow {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    margin-top: 1.75rem;
}

    .mx_CompleteSecurity_actionRow .mx_AccessibleButton {
        -webkit-margin-start: 18px;
                margin-inline-start: 18px;
    }

        .mx_CompleteSecurity_actionRow .mx_AccessibleButton.warning {
            color: #ff5b55;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019-2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ConfirmSessionLockTheftView {
    width: 100%;
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
}

.mx_ConfirmSessionLockTheftView_body {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    max-width: 400px;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Login_submit {
    width: 100%;
    margin-top: 24px;
    margin-bottom: 24px;
}

.mx_Login_loader {
    display: inline;
    position: relative;
    top: 2px;
    left: 8px;
}

.mx_Login_loader .mx_Spinner {
    display: inline;
}

.mx_Login_loader .mx_Spinner img {
    width: 16px;
    height: 16px;
}

.mx_Login_error {
    color: #ff5b55;
    font-weight: bold;
    text-align: center;
    margin-top: 12px;
    margin-bottom: 12px;
}

.mx_Login_error.mx_Login_serverError {
    text-align: left;
    font-weight: normal;
}

.mx_Login_error.mx_Login_serverError.mx_Login_serverErrorNonFatal {
    color: #ff8d13; /* Only used here */
}

.mx_Login_type_container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    color: #2e2f32;
}

    .mx_Login_type_container .mx_Field {
        margin: 0;
    }

.mx_Login_type_label {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
}

.mx_Login_underlinedServerName {
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
    border-bottom: 1px dashed #0dbd8b;
}

div.mx_AccessibleButton_kind_link.mx_Login_forgot {
    display: block;
    margin-top: 24px;
}

    div.mx_AccessibleButton_kind_link.mx_Login_forgot.mx_AccessibleButton_disabled {
        cursor: not-allowed;
    }

.mx_Login_spinner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -ms-flex-line-pack: center;
        align-content: center;
    padding: 14px;
}

.mx_Login_fullWidthButton {
    width: 100%;
    margin-bottom: 16px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015-2024 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LoginSplashView_migrationProgress {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;

    -webkit-box-align: center;

        -ms-flex-align: center;

            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    width: 100%;
    height: 100%;
}

    .mx_LoginSplashView_migrationProgress .mx_ProgressBar {
        height: 8px;
        width: 600px;

        border-radius: 8px;
    }

        .mx_LoginSplashView_migrationProgress .mx_ProgressBar::-moz-progress-bar {
        border-radius: 8px;
    }

        .mx_LoginSplashView_migrationProgress .mx_ProgressBar::-webkit-progress-bar,
    .mx_LoginSplashView_migrationProgress .mx_ProgressBar::-webkit-progress-value {
        border-radius: 8px;
    }

.mx_LoginSplashView_splashButtons {
    text-align: center;
    width: 100%;
    position: absolute;
    bottom: 30px;
}

.mx_LoginSplashView_syncError {
    color: #ffffff;
    background-color: #df2a8b; /* Only used here */
    border-radius: 5px;
    display: table;
    padding: 30px;
    position: absolute;
    top: 100px;
    left: 50%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MobileRegister_body {
    padding: 32px;
    height: 100vh;
    overflow-y: auto;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Register_mainContent {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    min-height: 270px;
}

    .mx_Register_mainContent p {
        font: var(--cpd-font-body-md-regular);
        color: #2e2f32;
    }

        .mx_Register_mainContent p.secondary {
            color: #2e2f32;
        }

    .mx_Register_mainContent > img:first-child {
        margin-bottom: 16px;
        width: -webkit-max-content;
        width: -moz-max-content;
        width: max-content;
    }

    .mx_Register_mainContent .mx_Login_submit {
        margin-bottom: 0;
    }

/* Medium rather than the bold every other auth error uses: this one sits directly above the button it
   is disabling, and does not need to shout over it. Scoped so the login errors keep their weight. */
.mx_Login_error.mx_Registration_rateLimitError {
    font-weight: var(--cpd-font-weight-medium);
}

.mx_Register_footerActions {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    padding-top: 16px;
    margin-top: 16px;
    border-top: 1px solid rgb(141, 151, 165, 0.2);
}

    .mx_Register_footerActions > * {
        -ms-flex-preferred-size: content;
            flex-basis: content;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_SessionLockStolenView h1 {
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 2rem;
        text-align: center;
    }

    .mx_SessionLockStolenView h2 {
        margin: 0;
        font-weight: 500;
        font-size: 1.5rem;
        text-align: center;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SetupEncryptionBody {
    width: 600px;
}
}
@layer app-web{

/*
Copyright (C) 2026 MetMet

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_GuestOnboarding {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    height: 100%;
    width: 100%;
    background-color: #fff;
    padding: 16px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

.mx_GuestOnboarding_card {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    text-align: center;
    max-width: 360px;
    width: 100%;
}

.mx_GuestOnboarding_logo {
    width: 88px;
    height: 88px;
    margin-bottom: 24px;
}

.mx_GuestOnboarding_title {
    font-size: 22px;
    font-weight: 700;
    color: #1a1a1a;
    margin: 0 0 8px 0;
}

.mx_GuestOnboarding_description {
    font-size: 15px;
    color: #6f6f6f;
    margin: 0 0 28px 0;
    line-height: 1.4;
}

.mx_GuestOnboarding_actions {
    width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 12px;
}

.mx_GuestOnboarding_primaryButton {
    width: 100%;
    padding: 14px 24px;
    border-radius: 8px;
    border: none;
    background-color: #028e91;
    background-color: var(--metmet-brand-primary);
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
}

.mx_GuestOnboarding_primaryButton:hover {
    background-color: #3ac6cb;
    background-color: var(--metmet-brand-secondary);
}

.mx_GuestOnboarding_skip {
    margin-top: 20px;
    background: none;
    border: none;
    color: #9a9a9a;
    font-size: 14px;
    cursor: pointer;
    text-decoration: underline;
}

.mx_GuestOnboarding_fallback {
    margin-top: 16px;
    padding: 12px 16px;
    background-color: #f5f5f5;
    border-radius: 8px;
    font-size: 14px;
    color: #444;
    text-align: left;
}

.mx_GuestOnboardingOverlay {
    position: fixed;
    inset: 0;
    background-color: rgb(0 0 0 / 55%);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    padding-bottom: 15vh;
    z-index: 5000;
}

.mx_GuestOnboardingOverlay_text {
    color: #fff;
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 12px;
    text-align: center;
}

.mx_GuestOnboardingOverlay_arrow {
    font-size: 40px;
    -webkit-animation: mx_GuestOnboardingOverlay_bounce 1s infinite;
            animation: mx_GuestOnboardingOverlay_bounce 1s infinite;
}

@-webkit-keyframes mx_GuestOnboardingOverlay_bounce {
    0%,
    100% {
        -webkit-transform: translateY(0);
                transform: translateY(0);
    }

    50% {
        -webkit-transform: translateY(10px);
                transform: translateY(10px);
    }
}

@keyframes mx_GuestOnboardingOverlay_bounce {
    0%,
    100% {
        -webkit-transform: translateY(0);
                transform: translateY(0);
    }

    50% {
        -webkit-transform: translateY(10px);
                transform: translateY(10px);
    }
}

.mx_GuestConnecting_spinner {
    width: 32px;
    height: 32px;
    border: 3px solid #3ac6cb;
    border: 3px solid var(--metmet-brand-secondary);
    border-top-color: #028e91;
    border-top-color: var(--metmet-brand-primary);
    border-radius: 50%;
    -webkit-animation: mx_GuestConnecting_spin 0.8s linear infinite;
            animation: mx_GuestConnecting_spin 0.8s linear infinite;
    margin-bottom: 16px;
}

@-webkit-keyframes mx_GuestConnecting_spin {
    to {
        -webkit-transform: rotate(360deg);
                transform: rotate(360deg);
    }
}

@keyframes mx_GuestConnecting_spin {
    to {
        -webkit-transform: rotate(360deg);
                transform: rotate(360deg);
    }
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021, 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/* Dev note: there's no actual component called <PlaybackContainer />. These classes */
/* are shared amongst multiple voice message components. */

/* Container for live recording and playback controls */
.mx_VoiceMessagePrimaryContainer {
    /* Match mx_MediaBody spacing, offsetting the waveform's 1px internal right padding. */
    padding: 6px 11px 6px 12px;

    /* Cheat at alignment a bit */
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;

    contain: content;
}

    .mx_VoiceMessagePrimaryContainer .mx_Waveform,
    .mx_VoiceMessagePrimaryContainer .mx_RecordingPlayback_timelineLayoutMiddle {
        min-width: 0; /* Prevent a blowout */
    }

    /* Waveforms are present in live recording only */
    .mx_VoiceMessagePrimaryContainer .mx_Waveform {
        /* default, overridden in JS */
        --barHeight: 1;
    }
        .mx_VoiceMessagePrimaryContainer .mx_Waveform .mx_Waveform_bar {
            background-color: #6f7882;
            height: 100%;
            -webkit-transform: scaleY(max(0.05, var(--barHeight)));
                    transform: scaleY(max(0.05, var(--barHeight)));
        }

            .mx_VoiceMessagePrimaryContainer .mx_Waveform .mx_Waveform_bar.mx_Waveform_bar_100pct {
                /* Small animation to remove the mechanical feel of progress */
                -webkit-transition: background-color 250ms ease;
                transition: background-color 250ms ease;
                background-color: #edf3ff;
            }

    .mx_VoiceMessagePrimaryContainer .mx_Clock {
        width: 2.625rem; /* we're not using a monospace font, so fake it */
        min-width: 2.625rem; /* force sensible layouts in awkward flexboxes (file panel, for example) */
        padding-right: 6px; /* with the fixed width this ends up as a visual 8px most of the time, as intended. */
        padding-left: 8px; /* isolate from recording circle / play control */
    }

    .mx_VoiceMessagePrimaryContainer .mx_RecordingPlayback_timelineLayoutMiddle {
        margin-left: 8px;
        margin-right: 6px;
        position: relative;
        display: inline-block;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        height: 30px;
    } /* same height as mx_Waveform, needed for automatic vertical centering */

        .mx_VoiceMessagePrimaryContainer .mx_RecordingPlayback_timelineLayoutMiddle .mx_Waveform {
            left: 0;
            top: 0;
        }

        .mx_VoiceMessagePrimaryContainer .mx_RecordingPlayback_timelineLayoutMiddle .mx_SeekBar {
            position: absolute;
            left: 0;
            height: 30px;
            top: -2px; /* visually vertically centered */

            /* Hide the hairline progress bar since we're at 100% height. Need to have distinct rules */
            /* because CSS is weird. */
            background: none;

            /* Make the thumb easier to see. Like the SeekBar original styles, these need to be */
            /* distinct. We make it transparent so it doesn't show up on the UI, but also larger */
        }
            .mx_VoiceMessagePrimaryContainer .mx_RecordingPlayback_timelineLayoutMiddle .mx_SeekBar::before {
                background: none;
            }
            .mx_VoiceMessagePrimaryContainer .mx_RecordingPlayback_timelineLayoutMiddle .mx_SeekBar::-moz-range-progress {
                background: none;
            }
            /* move and drag the thumb regardless of hitting the thumb, however. */
            .mx_VoiceMessagePrimaryContainer .mx_RecordingPlayback_timelineLayoutMiddle .mx_SeekBar::-webkit-slider-thumb {
                width: 10px;
                height: 10px;
                background-color: transparent;
            }
            /* so it's easier to grab by mouse users in some browsers. Most browsers let the user */
            .mx_VoiceMessagePrimaryContainer .mx_RecordingPlayback_timelineLayoutMiddle .mx_SeekBar::-moz-range-thumb {
                width: 10px;
                height: 10px;
                background-color: transparent;
            }

        /* For timeline-rendered playback, the clock is on the other side of the waveform. */
        .mx_VoiceMessagePrimaryContainer .mx_RecordingPlayback_timelineLayoutMiddle + .mx_Clock {
            text-align: right;

            /* Take the padding off the clock because it's accounted for by the `timelineLayoutMiddle` */
            padding: 0;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/* CSS inspiration from: */
/* * https://www.w3schools.com/howto/howto_js_rangeslider.asp */
/* * https://stackoverflow.com/a/28283806 */
/* * https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/ */

.mx_SeekBar {
    /* default, overridden in JS */
    --fillTo: 1;

    /* Dev note: we deliberately do not have the -ms-track (and friends) selectors because we don't */
    /* need to support IE. */

    -webkit-appearance: none;

       -moz-appearance: none;

            appearance: none; /* default style override */

    width: 100%;
    height: 1px;
    background: #6f7882;
    outline: none; /* remove blue selection border */
    position: relative; /* for before+after pseudo elements later on */

    cursor: pointer;

    /* This is for webkit support, but we can't limit the functionality of it to just webkit */
    /* browsers. Firefox responds to webkit-prefixed values now, which means we can't use media */

    /* Increase clickable area for the slider (approximately same size as browser default) */
    /* We do it this way to keep the same padding and margins of the element, avoiding margin math. */
}

    .mx_SeekBar::-webkit-slider-thumb {
        -webkit-appearance: none;
                appearance: none; /* default style override */

        /* Dev note: This needs to be duplicated with the -moz-range-thumb selector */
        /* because otherwise Edge (webkit) will fail to see the styles and just refuse */
        /* to apply them. */
        width: 8px;
        height: 8px;
        border-radius: 8px;
        background-color: #edf3ff;
        cursor: pointer;
    }

    .mx_SeekBar::-moz-range-thumb {
        width: 8px;
        height: 8px;
        border-radius: 8px;
        background-color: #edf3ff;
        cursor: pointer;

        /* Firefox adds a border on the thumb */
        border: none;
    }
    /* in firefox, so it's just wasted CPU/GPU time. */
    .mx_SeekBar::before {
        /* ::before to ensure it ends up under the thumb */
        content: "";
        background-color: #edf3ff;

        /* Absolute positioning to ensure it overlaps with the existing bar */
        position: absolute;
        top: 0;
        left: 0;

        /* Sizing to match the bar */
        width: 100%;
        height: 1px;

        /* And finally dynamic width without overly hurting the rendering engine. */
        -webkit-transform-origin: 0 100%;
                transform-origin: 0 100%;
        -webkit-transform: scaleX(var(--fillTo));
                transform: scaleX(var(--fillTo));
    }

    /* This is firefox's built-in support for the above, with 100% less hacks. */
    .mx_SeekBar::-moz-range-progress {
        background-color: #edf3ff;
        height: 1px;
    }
    /* or support queries to selectively apply the rule. An upside is that this CSS doesn't work */

    .mx_SeekBar:disabled {
        opacity: 0.5;
    }
    /* Source: https://front-back.com/expand-clickable-areas-for-a-better-touch-experience/ */
    .mx_SeekBar::after {
        content: "";
        position: absolute;
        top: -6px;
        bottom: -6px;
        left: 0;
        right: 0;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Waveform {
    position: relative;
    height: 30px; /* tallest bar can only be 30px */
    top: 1px; /* because of our border trick (see below), we're off by 1px of aligntment */

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; /* so the bars grow from the middle */

    overflow: hidden; /* this is cheaper than a `max-height: calc(100% - 4px)` in the bar's CSS. */

    /* A bar is meant to be a 2x2 circle when at zero height, and otherwise a 2px wide line */
}
    /* with rounded caps. */
    .mx_Waveform .mx_Waveform_bar {
        width: 0; /* 0px width means we'll end up using the border as our width */
        border: 1px solid transparent; /* transparent means we'll use the background colour */
        border-radius: 2px; /* rounded end caps, based on the border */
        min-height: 0; /* like the width, we'll rely on the border to give us height */
        max-height: 100%; /* this makes the `height: 42%` work on the element */
        margin-left: 1px; /* we want 2px between each bar, so 1px on either side for balance */
        margin-right: 1px;

        /* background color is handled by the parent components */
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.
Copyright 2019 New Vector Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AuthBody {
    width: 500px;
    font-size: 0.75rem;
    color: #2e2f32;
    background-color: #181b21;
    border-radius: 0 var(--cpd-space-6x) var(--cpd-space-6x) 0;
    padding: 25px 60px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

    .mx_AuthBody strong {
        font-weight: var(--cpd-font-weight-semibold);
    }

    .mx_AuthBody.mx_AuthBody_flex {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

    .mx_AuthBody h1 {
        font-size: 1.5rem;
        font-weight: var(--cpd-font-weight-semibold);
        margin-top: var(--cpd-space-2x);
        color: #2e2f32;
    }

    .mx_AuthBody h2 {
        font: var(--cpd-font-body-md-semibold);
        color: #2e2f32;
    }

    .mx_AuthBody h2.mx_AuthBody_centered {
        text-align: center;
    }

    .mx_AuthBody a:link,
    .mx_AuthBody a:hover,
    .mx_AuthBody a:visited {
        color: #0dbd8b;
        text-decoration: none;
    }

    .mx_AuthBody fieldset {
        /* Reset the browser default <fieldset> styling */
        display: block;
        margin-inline: unset;
        padding-block: unset;
        padding-inline: unset;
        min-inline-size: unset;
        border: none;
    }

    .mx_AuthBody .mx_AuthBody_icon {
        width: 44px;
        height: 44px;
    }

    .mx_AuthBody .mx_AuthBody_lockIcon {
        color: #edf3ff;
        height: 32px;
        width: 32px;
    }

    .mx_AuthBody .mx_AuthBody_text {
        margin-bottom: var(--cpd-space-12x);
        margin-top: 0;
    }

    .mx_AuthBody input[type="text"],
    .mx_AuthBody input[type="password"] {
        color: #2e2f32;
    }

    .mx_AuthBody input[type="password"] {
        background-color: transparent;
    }
        .mx_AuthBody input[type="password"]:focus {
            outline: none;
            -webkit-box-shadow: none;
                    box-shadow: none;
        }

    .mx_AuthBody .mx_Field label {
        color: #2e2f32;
    }

    .mx_AuthBody .mx_Field input,
    .mx_AuthBody .mx_Field select {
        color: #2e2f32;
        background-color: #181b21;
    }

    .mx_AuthBody .mx_Field input:not(:-moz-placeholder) + label, .mx_AuthBody .mx_Field textarea:not(:-moz-placeholder) + label {
        background-color: #181b21;
    }

    .mx_AuthBody .mx_Field input:not(:-ms-input-placeholder) + label, .mx_AuthBody .mx_Field textarea:not(:-ms-input-placeholder) + label {
        background-color: #181b21;
    }

    .mx_AuthBody .mx_Field_labelAlwaysTopLeft label,
    .mx_AuthBody .mx_Field select + label,
    .mx_AuthBody .mx_Field input:focus + label,
    .mx_AuthBody .mx_Field input:not(:placeholder-shown) + label,
    .mx_AuthBody .mx_Field textarea:focus + label,
    .mx_AuthBody .mx_Field textarea:not(:placeholder-shown) + label {
        background-color: #181b21;
    }

    .mx_AuthBody input.error {
        color: #ff5b55;
    }

    .mx_AuthBody .mx_Login_submit {
        height: 32px;
        margin-top: var(--cpd-space-4x);
    }

    .mx_AuthBody .mx_ErrorMessage {
        margin-bottom: 12px;
        margin-top: 2px;
    }

    .mx_AuthBody .mx_Field input {
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
    }

    .mx_AuthBody .mx_Field_select::before {
        background-color: #2e2f32;
    }

    .mx_AuthBody .mx_Dropdown {
        color: #2e2f32;
    }

    .mx_AuthBody .mx_Dropdown_arrow {
        color: #2e2f32;
    }

    .mx_AuthBody .mx_Dropdown_menu {
        background-color: #181b21;
    }

        .mx_AuthBody .mx_Dropdown_menu .mx_Dropdown_option_highlight {
            background-color: #dddddd;
        }

/* specialisation for password reset views */
.mx_AuthBody.mx_AuthBody_forgot-password {
    font: var(--cpd-font-body-md-regular);
    color: #edf3ff;
    padding: 50px 32px;
    min-height: 600px;
}

    .mx_AuthBody.mx_AuthBody_forgot-password h1 {
        margin: var(--cpd-space-6x) 0;
    }

    .mx_AuthBody.mx_AuthBody_forgot-password .mx_AuthBody_button-container {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
    }

    .mx_AuthBody.mx_AuthBody_forgot-password .mx_Login_submit {
        margin: 0 0 var(--cpd-space-4x);
    }

    .mx_AuthBody.mx_AuthBody_forgot-password .mx_AuthBody_text {
        margin-bottom: var(--cpd-space-8x);
    }

        .mx_AuthBody.mx_AuthBody_forgot-password .mx_AuthBody_text p {
            margin: 0 0 var(--cpd-space-2x);
        }

    .mx_AuthBody.mx_AuthBody_forgot-password .mx_AuthBody_sign-in-instead-button {
        font-weight: var(--cpd-font-weight-semibold);
        padding: var(--cpd-space-1x);
    }

    .mx_AuthBody.mx_AuthBody_forgot-password .mx_AuthBody_fieldRow {
        margin-bottom: var(--cpd-space-6x);
    }

    .mx_AuthBody.mx_AuthBody_forgot-password .mx_AccessibleButton.mx_AccessibleButton_hasKind {
        background: none;
    }

        .mx_AuthBody.mx_AuthBody_forgot-password .mx_AccessibleButton.mx_AccessibleButton_hasKind:disabled {
            cursor: default;
            opacity: 0.4;
        }

.mx_AuthBody_did-not-receive {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    color: #edf3ff;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: var(--cpd-space-2x);
}

.mx_AuthBody_resend-button {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    border-radius: 8px;
    color: #0dbd8b;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: var(--cpd-space-1x);
    padding: var(--cpd-space-1x);
}

    .mx_AuthBody_resend-button:hover {
        background-color: #21262c;
    }

.mx_AuthBody_emailPromptIcon {
    width: 57px;
}

.mx_AuthBody_emailPromptIcon--shifted {
    margin-bottom: -17px; /* Prevent layout jump by relative positioning. */
    position: relative;
    top: -17px; /* This icon is higher than the other icons. Shift up to prevent icon jumping. */
    width: 57px;
}

.mx_AuthBody_fieldRow {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-bottom: 10px;
}

.mx_AuthBody_fieldRow > .mx_Field {
    margin: 0 5px;
}

.mx_AuthBody_fieldRow > .mx_Field:first-child {
    margin-left: 0;
}

.mx_AuthBody_fieldRow > .mx_Field:last-child {
    margin-right: 0;
}

.mx_AuthBody_paddedFooter {
    height: 80px; /* height of the submit button + register link */
    padding-top: 28px;
    text-align: center;
}

    .mx_AuthBody_paddedFooter .mx_AuthBody_paddedFooter_title {
        margin-top: var(--cpd-space-4x);
        font-size: 0.9375rem;
        line-height: 1.5rem;
    }

        .mx_AuthBody_paddedFooter .mx_AuthBody_paddedFooter_title .mx_InlineSpinner svg {
            vertical-align: sub;
            margin-right: 5px;
        }

    .mx_AuthBody_paddedFooter .mx_AuthBody_paddedFooter_subtitle {
        margin-top: var(--cpd-space-2x);
        font-size: 0.625rem;
        line-height: 0.875rem;
    }

.mx_AuthBody_changeFlow {
    display: block;
    text-align: center;
}

    .mx_AuthBody_changeFlow > a {
        font-weight: var(--cpd-font-weight-semibold);
    }

.mx_SSOButtons + .mx_AuthBody_changeFlow {
    margin-top: var(--cpd-space-6x);
}

.mx_AuthBody_spinner {
    margin: 1em 0;
}

@media only screen and (max-width: 480px) {
    .mx_AuthBody {
        border-radius: 4px;
        width: auto;
        max-width: 500px;
        padding: 10px;
    }
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AuthFooter {
    text-align: center;
    width: 100%;
    font: var(--cpd-font-body-md-regular);
    opacity: 0.72;
    padding: 20px 0;
    background: -webkit-gradient(linear, left top, left bottom, from(rgb(0, 0, 0, 0)), to(rgb(0, 0, 0, 0.8)));
    background: linear-gradient(rgb(0, 0, 0, 0), rgb(0, 0, 0, 0.8));
}

.mx_AuthFooter a:link,
.mx_AuthFooter a:hover,
.mx_AuthFooter a:visited {
    color: #ffffff;
    margin: 0 22px;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AuthHeader {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    width: 206px;
    padding: 25px 25px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

@media only screen and (max-width: 480px) {
    .mx_AuthHeader {
        display: none;
    }
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AuthHeaderLogo {
    margin-top: 15px;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    padding: 0 25px;
}

.mx_AuthHeaderLogo img {
    width: 100%;
}

@media only screen and (max-width: 480px) {
    .mx_AuthHeaderLogo {
        display: none;
    }
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AuthPage {
    width: 100%;
    min-height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    background-color: #2e3649;
    height: 100vh;
    overflow: auto;
}

.mx_AuthPage_modal {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin: 100px auto auto;
    border-radius: var(--cpd-space-6x);
    background-color: rgba(255, 255, 255, 0.59);
}

    @media only screen and (max-height: 768px) {

.mx_AuthPage_modal {
        margin-top: 50px
}
    }

    @media only screen and (max-width: 480px) {

.mx_AuthPage_modal {
        margin-top: 0
}
    }

    .mx_AuthPage_modal.mx_AuthPage_modal_withBlur {
        /* Apply a blurred shadow around the modal */
        -webkit-box-shadow: 0 2px 4px 0 rgb(0, 0, 0, 0.33);
                box-shadow: 0 2px 4px 0 rgb(0, 0, 0, 0.33);
    }

        .mx_AuthPage_modal.mx_AuthPage_modal_withBlur .mx_AuthPage_modalContent {
            /* Make the modal's background semitransparent */
            background-color: rgb(255, 255, 255, 0.59);
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.
Copyright 2019 New Vector Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CompleteSecurityBody {
    color: #2e2f32;
    background-color: #181b21;
    border-radius: 24px;
    padding: 20px 20px 60px 20px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

    .mx_CompleteSecurityBody h2 {
        font-size: 1.5rem;
        font-weight: var(--cpd-font-weight-semibold);
        margin-top: 0;
    }

    .mx_CompleteSecurityBody h3 {
        font: var(--cpd-font-body-md-semibold);
    }

    .mx_CompleteSecurityBody a:link,
    .mx_CompleteSecurityBody a:hover,
    .mx_CompleteSecurityBody a:visited {
        color: #0dbd8b;
        text-decoration: none;
    }
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CountryDropdown .mx_Dropdown_input .mx_Dropdown_option {
    padding: 0 3px;
}

.mx_CountryDropdown .mx_Dropdown_arrow {
    padding-right: 3px;
}

.mx_CountryDropdown_shortOption {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    height: 100%;
}

.mx_CountryDropdown_option {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}
}
@layer app-web{

/*
Copyright 2026 Element Creations Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DefaultWelcome {
    text-align: center;
}

    .mx_DefaultWelcome .mx_DefaultWelcome_logo img {
        height: 48px;
        aspect-ratio: auto;
        display: block;
        margin: 0 auto;
    }

    .mx_DefaultWelcome h1 {
        margin: var(--cpd-space-4x) 0 var(--cpd-space-2x);
    }

    .mx_DefaultWelcome p {
        color: var(--cpd-color-text-secondary);
        margin-top: var(--cpd-space-2x);
    }

    .mx_DefaultWelcome .mx_DefaultWelcome_buttons {
        margin: var(--cpd-space-6x) 0 var(--cpd-space-1x);
        padding-bottom: var(--cpd-space-4x);
        border-bottom: 1px solid var(--cpd-color-separator-primary);
    }

        .mx_DefaultWelcome .mx_DefaultWelcome_buttons a {
            width: 380px;
            margin-bottom: var(--cpd-space-4x);
        }
    .mx_WelcomePage_registrationDisabled .mx_DefaultWelcome_buttons_register {
        display: none;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.
Copyright 2017 Vector Creations Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_InteractiveAuthEntryComponents .mx_InteractiveAuthEntryComponents_termsSubmit {
        margin-top: 20px;
        margin-bottom: 5px;
        width: 100%;
        -webkit-box-sizing: border-box;
                box-sizing: border-box; /* prevent overflowing */
    }

.mx_InteractiveAuthEntryComponents_msisdnWrapper {
    text-align: center;
}

.mx_InteractiveAuthEntryComponents_msisdnEntry {
    font-size: 200%;
    font-weight: bold;
    border: 1px solid #c7c7c7;
    border-radius: 3px;
    width: 6em;
}

.mx_InteractiveAuthEntryComponents_msisdnEntry:focus {
    border: 1px solid #0dbd8b;
}

.mx_InteractiveAuthEntryComponents_msisdnSubmit {
    margin-top: 4px;
    margin-bottom: 5px;
}

/* XXX: This should be a common button class */
.mx_InteractiveAuthEntryComponents_msisdnSubmit:disabled {
    background-color: #c8c8cd;
    cursor: default;
}

.mx_InteractiveAuthEntryComponents_termsPolicy {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_InteractiveAuthEntryComponents_passwordSection {
    width: 300px;
}

.mx_InteractiveAuthEntryComponents_sso_buttons {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    margin-top: 20px;
}

    .mx_InteractiveAuthEntryComponents_sso_buttons .mx_AccessibleButton {
        margin-left: 5px;
    }
    /* "Resend" button/link */
    .mx_InteractiveAuthEntryComponents_emailWrapper .mx_AccessibleButton_kind_link_inline {
        /* We need this to be an inline-block so positioning works correctly */
        display: inline-block !important;
    }

        /* Spinner as end adornment of the "resend" button/link */
        .mx_InteractiveAuthEntryComponents_emailWrapper .mx_AccessibleButton_kind_link_inline .mx_Spinner {
            /* Spinners are usually block elements, but we need it as inline element */
            display: -webkit-inline-box !important;
            display: -ms-inline-flexbox !important;
            display: inline-flex !important;
            /* Spinners by default fill all available width, but we don't want that */
            width: auto !important;
            /* We need to center the spinner relative to the button/link */
            vertical-align: middle !important;
        }
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AuthBody_language {
    width: 100%;
}

.mx_AuthBody_language .mx_Dropdown_input {
    border: none;
    font: var(--cpd-font-body-md-semibold);
    color: #2e2f32;
    width: auto;
}

.mx_AuthBody_language .mx_Dropdown_arrow {
    color: #2e2f32;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LoginWithQRSection p {
    margin-top: 0;
    margin-bottom: var(--cpd-space-4x);
}
    .mx_LoginWithQRSection .mx_AccessibleButton_kind_primary + p {
        color: var(--cpd-color-text-secondary);
        margin-top: var(--cpd-space-2x);
    }

.mx_LoginWithQRSection .mx_AccessibleButton svg {
    margin-right: var(--cpd-space-3x);
}

.mx_LoginWithQR_dialog .mx_Dialog {
    padding: var(--cpd-space-12x) var(--cpd-space-12x) var(--cpd-space-10x);
}

    .mx_LoginWithQR_dialog .mx_Dialog .mx_LoginWithQR {
        width: 500px;
    }

.mx_LoginWithQR {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    min-height: 500px;
    font: var(--cpd-font-body-md-regular);
}

    .mx_LoginWithQR h1 {
        font-size: 1.5rem;
        margin-bottom: 0;
    }

    .mx_LoginWithQR h2 {
        margin-top: var(--cpd-space-6x);
    }

    .mx_LoginWithQR .mx_LoginWithQR_qrWrapper {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        padding: var(--cpd-space-7x) 0;
    }

        .mx_LoginWithQR .mx_LoginWithQR_qrWrapper .mx_Spinner {
            /* Match the size of the QR code to prevent jumps */
            height: 200px;
            width: 200px;
        }

    .mx_LoginWithQR .mx_LoginWithQR_confirmationDigits {
        text-align: center;
        margin: var(--cpd-space-12x) auto;
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 1.5rem;
        color: #edf3ff;
    }

    .mx_LoginWithQR .mx_LoginWithQR_confirmationAlert {
        border: 1px solid #6f7882;
        border-radius: var(--cpd-space-2x);
        padding: var(--cpd-space-2x);
        line-height: 1.5em;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
    }

        .mx_LoginWithQR .mx_LoginWithQR_confirmationAlert svg {
            height: 30px;
        }

    .mx_LoginWithQR .mx_LoginWithQR_separator {
        margin: 1em 0;
    }

    .mx_LoginWithQR ol {
        -webkit-padding-start: 0;
                padding-inline-start: 0;
        list-style: none;
    } /* list markers do not support the outlined number styling we need */

        .mx_LoginWithQR ol li {
            position: relative;
            padding-left: var(--cpd-space-7x);
            color: 1px solid var(--cpd-color-text-secondary);
            margin-bottom: var(--cpd-space-4x);
            line-height: 20px;
            text-align: left;
            text-align: initial;
        }

        /* Circled number list item marker */
        .mx_LoginWithQR ol li::before {
            content: counter(list-item);
            position: absolute;
            left: 0;
            display: inline-block;
            width: 20px;
            height: 20px;
            line-height: 20px;
            border-radius: 50%;
            border: 1px solid var(--cpd-color-text-secondary);
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
            text-align: center;
        }

    .mx_LoginWithQR label[for="mx_LoginWithQR_checkCode"] {
        margin-top: var(--cpd-space-6x);
        color: var(--cpd-color-text-primary);
        margin-bottom: var(--cpd-space-1x);
    }

    .mx_LoginWithQR .mx_LoginWithQR_checkCode_input {
        margin-bottom: var(--cpd-space-1x);
        text-align: left;
        text-align: initial;
    }

        .mx_LoginWithQR .mx_LoginWithQR_checkCode_input input {
            /* Workaround for one of the input rules in _common.pcss being not specific enough */
            padding: 0;
            -webkit-padding-start: calc(40px / 2 - (1ch / 2));
                    padding-inline-start: calc(40px / 2 - (1ch / 2));
        }

    .mx_LoginWithQR .mx_LoginWithQR_heading {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        gap: var(--cpd-space-3x);
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

    .mx_LoginWithQR .mx_LoginWithQR_BackButton {
        height: var(--cpd-space-7x);
        border-radius: var(--cpd-space-7x);
        padding: var(--cpd-space-1x);
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        background-color: var(--cpd-color-bg-subtle-secondary);
    }
        .mx_LoginWithQR .mx_LoginWithQR_BackButton svg {
            height: 100%;
        }

    .mx_LoginWithQR .mx_LoginWithQR_breadcrumbs {
        font-size: 0.8125rem;
        color: #edf3ff;
    }

    .mx_LoginWithQR .mx_LoginWithQR_main {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        color: #edf3ff;
        text-align: center;
    }

        .mx_LoginWithQR .mx_LoginWithQR_main p {
            color: #edf3ff;
            margin-bottom: var(--cpd-space-8x);
        }

    .mx_LoginWithQR .mx_LoginWithQR_buttons {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        gap: var(--cpd-space-4x);
        margin-top: var(--cpd-space-6x);
    }

        .mx_LoginWithQR .mx_LoginWithQR_buttons .mx_AccessibleButton {
            width: 300px;
            height: 48px;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
        }

    .mx_LoginWithQR .mx_QRCode {
        border-radius: var(--cpd-space-2x);
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
    }

    .mx_LoginWithQR .mx_LoginWithQR_spinner {
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        height: 100%;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

progress.mx_PassphraseField_progress {
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    width: 100%;
    border: 0;
    height: 4px;
    position: absolute;
    top: -10px;
    left: 0;

    border-radius: "2px";
}

    progress.mx_PassphraseField_progress::-moz-progress-bar {
        border-radius: "2px";
    }

    progress.mx_PassphraseField_progress::-webkit-progress-bar,
    progress.mx_PassphraseField_progress::-webkit-progress-value {
        border-radius: "2px";
    }

    progress.mx_PassphraseField_progress{
    color: #ff5b55;
}
    progress.mx_PassphraseField_progress::-moz-progress-bar {
        background-color: #ff5b55;
    }
    progress.mx_PassphraseField_progress::-webkit-progress-value {
        background-color: #ff5b55;
    }
    progress.mx_PassphraseField_progress[value="2"],
    progress.mx_PassphraseField_progress[value="3"] {
        color: var(--cpd-color-text-decorative-5);
    }
        progress.mx_PassphraseField_progress[value="2"]::-moz-progress-bar, progress.mx_PassphraseField_progress[value="3"]::-moz-progress-bar {
        background-color: var(--cpd-color-text-decorative-5);
    }
        progress.mx_PassphraseField_progress[value="2"]::-webkit-progress-value, progress.mx_PassphraseField_progress[value="3"]::-webkit-progress-value {
        background-color: var(--cpd-color-text-decorative-5);
    }
    progress.mx_PassphraseField_progress[value="4"] {
        color: #0dbd8b;
    }
        progress.mx_PassphraseField_progress[value="4"]::-moz-progress-bar {
        background-color: #0dbd8b;
    }
        progress.mx_PassphraseField_progress[value="4"]::-webkit-progress-value {
        background-color: #0dbd8b;
    }
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Welcome {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    background-color: var(--cpd-color-bg-canvas-default);
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    padding: var(--cpd-space-11x) var(--cpd-space-12x) var(--cpd-space-4x);
}
        .mx_Welcome.mx_WelcomePage_registrationDisabled .mx_ButtonCreateAccount {
            display: none;
        }

.mx_Welcome .mx_AuthBody_language {
    width: 160px;
    margin: var(--cpd-space-1x) 0;
}

/* Invert image colours in dark mode. */
.cpd-theme-dark .mx_WelcomePage_logo {
    -webkit-filter: invert(1);
            filter: invert(1);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

button.mx_BaseAvatar {
    /* <button> is a form element and by default it uses the user agent (browser) styling.
       We want it to inherit the font-family and line-height from its parent.
     */
    font-family: inherit;
    line-height: inherit;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DecoratedRoomAvatar,
.mx_ExtraTile {
    position: relative;
    contain: content;
    line-height: 0;
}

    .mx_DecoratedRoomAvatar.mx_DecoratedRoomAvatar_cutout .mx_BaseAvatar, .mx_ExtraTile.mx_DecoratedRoomAvatar_cutout .mx_BaseAvatar {
        -webkit-mask-image: url(../../img/element-icons/roomlist/decorated-avatar-mask.376375b.svg);
                mask-image: url(../../img/element-icons/roomlist/decorated-avatar-mask.376375b.svg);
        -webkit-mask-position: center;
                mask-position: center;
        -webkit-mask-size: contain;
                mask-size: contain;
        -webkit-mask-repeat: no-repeat;
                mask-repeat: no-repeat;
    }

    .mx_DecoratedRoomAvatar .mx_DecoratedRoomAvatar_icon, .mx_ExtraTile .mx_DecoratedRoomAvatar_icon {
        position: absolute;
        /* the following percentage based sizings are to match the scalable svg mask for the cutout */
        bottom: 6.25%; /* 2px for a 32x32 avatar */
        right: 6.25%;
        width: 25%; /* 8px for a 32x32 avatar */
        height: 25%;
        border-radius: 50%;
    }

        .mx_DecoratedRoomAvatar .mx_DecoratedRoomAvatar_icon::before,
        .mx_DecoratedRoomAvatar .mx_DecoratedRoomAvatar_icon svg,
        .mx_ExtraTile .mx_DecoratedRoomAvatar_icon::before,
        .mx_ExtraTile .mx_DecoratedRoomAvatar_icon svg {
            width: 100%;
            height: 100%;
            right: 0;
            position: absolute;
            border-radius: 8px;
        }

    .mx_DecoratedRoomAvatar .mx_DecoratedRoomAvatar_icon_globe svg, .mx_ExtraTile .mx_DecoratedRoomAvatar_icon_globe svg {
        /* Oversize the icon to account for the dead space around the icon within the canvas */
        width: 120%;
        height: 120%;
        margin: -10%;
        color: #edf3ff;
    }

    .mx_DecoratedRoomAvatar .mx_DecoratedRoomAvatar_icon_offline::before, .mx_ExtraTile .mx_DecoratedRoomAvatar_icon_offline::before {
        content: "";
        background-color: #e3e8f0;
    }

    .mx_DecoratedRoomAvatar .mx_DecoratedRoomAvatar_icon_online::before, .mx_ExtraTile .mx_DecoratedRoomAvatar_icon_online::before {
        content: "";
        background-color: #0dbd8b;
    }

    .mx_DecoratedRoomAvatar .mx_DecoratedRoomAvatar_icon_away::before, .mx_ExtraTile .mx_DecoratedRoomAvatar_icon_away::before {
        content: "";
        background-color: #d9b072;
    }

    .mx_DecoratedRoomAvatar .mx_DecoratedRoomAvatar_icon_busy::before, .mx_ExtraTile .mx_DecoratedRoomAvatar_icon_busy::before {
        content: "";
        background-color: #ff5b55;
    }

    .mx_DecoratedRoomAvatar .mx_DecoratedRoomAvatar_notificationBadge,
    .mx_DecoratedRoomAvatar .mx_RoomTile_badgeContainer,
    .mx_ExtraTile .mx_DecoratedRoomAvatar_notificationBadge,
    .mx_ExtraTile .mx_RoomTile_badgeContainer {
        position: absolute;
        top: 0;
        right: 0;
        height: 18px;
        width: 18px;
    }
}
@layer app-web{

/*
 * Copyright 2025 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_RoomAvatarView {
    --room-avatar-size: 32px;

    position: relative;

    /* Keep the container to the same size than the avatar */
    inline-size: 32px;
    inline-size: var(--room-avatar-size);
    block-size: 32px;
    block-size: var(--room-avatar-size);
}

    .mx_RoomAvatarView .mx_RoomAvatarView_RoomAvatar {
        -webkit-mask-position: center;
                mask-position: center;
        -webkit-mask-size: contain;
                mask-size: contain;
        -webkit-mask-repeat: no-repeat;
                mask-repeat: no-repeat;
        pointer-events: none;
    }

    .mx_RoomAvatarView .mx_RoomAvatarView_RoomAvatar_icon {
        -webkit-mask-image: url(../../img/element-icons/roomlist/room-avatar-view-icon-mask.dfdc337.svg);
                mask-image: url(../../img/element-icons/roomlist/room-avatar-view-icon-mask.dfdc337.svg);
    }

    .mx_RoomAvatarView .mx_RoomAvatarView_RoomAvatar_presence {
        -webkit-mask-image: url(../../img/element-icons/roomlist/room-avatar-view-presence-mask.e2f8b62.svg);
                mask-image: url(../../img/element-icons/roomlist/room-avatar-view-presence-mask.e2f8b62.svg);
    }

    .mx_RoomAvatarView .mx_RoomAvatarView_icon {
        position: absolute;

        /* Place half the icon inside the avatar */
        /* Avatar size - (icon size (16px) / 2) */
        left: calc((var(--room-avatar-size) - 8px));
        bottom: var(--cpd-space-0-5x);
    }

    .mx_RoomAvatarView .mx_RoomAvatarView_PresenceDecoration {
        position: absolute;

        /* Place half the icon inside the avatar */
        /* Avatar size - (icon size (8px) / 2) */
        left: calc((var(--room-avatar-size) - 4px));
        bottom: var(--cpd-space-0-5x);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_WidgetAvatar {
    /* !important override compound avatar */
    border-radius: 4px !important;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2024 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_WithPresenceIndicator {
    position: relative;
    contain: content;
    line-height: 0;
}

    .mx_WithPresenceIndicator .mx_WithPresenceIndicator_icon {
        position: absolute;
        right: 0px;
        bottom: 2px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_BetaCard {
    padding: var(--cpd-space-6x);
    background-color: rgba(33,38,44, 0.9);
    border-radius: 8px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    color: #edf3ff;
}

    .mx_BetaCard .mx_BetaCard_columns {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-flow: wrap;
            flex-flow: wrap;
        gap: var(--cpd-space-5x);
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
    }

        .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_description {
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
        }

            .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_description .mx_BetaCard_title {
                font-weight: var(--cpd-font-weight-semibold);
                font-size: 1.125rem;
                line-height: 1.375rem;
                color: #edf3ff;
                margin: var(--cpd-space-1x) 0 14px;

                display: -webkit-box;

                display: -ms-flexbox;

                display: flex;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
                -webkit-column-gap: var(--cpd-space-3x);
                   -moz-column-gap: var(--cpd-space-3x);
                        column-gap: var(--cpd-space-3x);
            }

            .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_description .mx_BetaCard_caption {
                font-size: 0.9375rem;
                line-height: 1.25rem;
            }

            .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_description .mx_BetaCard_buttons {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -ms-flex-wrap: wrap-reverse;
                    flex-wrap: wrap-reverse;
                gap: var(--cpd-space-3x);
                margin: var(--cpd-space-5x) auto 0;
            }

                .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_description .mx_BetaCard_buttons .mx_AccessibleButton {
                    padding: 7px 40px;
                    width: auto;
                    -webkit-box-flex: 1;
                        -ms-flex: 1;
                            flex: 1;
                    white-space: nowrap; /* text might overflow */
                }

                    .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_description .mx_BetaCard_buttons .mx_AccessibleButton:nth-child(1) {
                        -webkit-box-ordinal-group: 3;
                            -ms-flex-order: 2;
                                order: 2; /* Place feedback button top and right */
                    }

            .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_description .mx_BetaCard_refreshWarning {
                margin-top: var(--cpd-space-2x);
                font-size: 0.625rem;
                text-align: center;
            }

            .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_description .mx_BetaCard_faq {
                margin-top: var(--cpd-space-5x);
                font: var(--cpd-font-body-xs-regular);
            }

                .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_description .mx_BetaCard_faq > h4 {
                    margin: var(--cpd-space-3x) 0 0;
                }

                .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_description .mx_BetaCard_faq > p {
                    margin: 0;
                }

        .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_image_wrapper {
            margin: auto 0;
        }

            .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_image_wrapper .mx_BetaCard_columns_image {
                width: 100%;
                max-width: 300px;
                -o-object-fit: contain;
                   object-fit: contain;
                height: 100%;
                border-radius: 4px;
            }
        .mx_BetaCard .mx_BetaCard_relatedSettings .mx_SettingsFlag {
            margin: var(--cpd-space-4x) 0 0;
            font-size: 0.9375rem;
            line-height: 1.5rem;
            color: #edf3ff;
        }

            .mx_BetaCard .mx_BetaCard_relatedSettings .mx_SettingsFlag .mx_SettingsFlag_microcopy {
                margin-top: var(--cpd-space-1x);
                font: var(--cpd-font-body-sm-regular);
            }

.mx_BetaCard_betaPill {
    background-color: #238cf5;
    padding: var(--cpd-space-1x) 10px;
    border-radius: 8px;
    text-transform: uppercase;
    font-size: 0.75rem;
    font-weight: var(--cpd-font-weight-semibold);
    line-height: 15px;
    color: #ffffff;
    display: inline-block;
    vertical-align: text-bottom;
    word-break: keep-all; /* avoid multiple lines on CJK language */
}

    .mx_BetaCard_betaPill.mx_AccessibleButton {
        cursor: pointer;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DeviceContextMenu {
    max-width: 252px;
}

    .mx_DeviceContextMenu .mx_IconizedContextMenu_label {
        padding-left: 0 !important;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020-2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/* A context menu that largely fits the | [icon]    [label] | format. */
.mx_IconizedContextMenu {
    min-width: 146px;
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
    /* override default ul styles */
    margin: 0;
    padding: 0;
}
        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList > * {
            padding-left: 20px;
            padding-right: 20px;
        }

        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_IconizedContextMenu_optionList_label {
            font-size: 0.9375rem;
            font-weight: var(--cpd-font-weight-semibold);
        }

        /* the notFirst class is for cases where the optionList might be under a header of sorts. */
        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList:nth-child(n + 2),
        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_IconizedContextMenu_optionList_notFirst {
            border-top: var(--cpd-border-width-1) solid var(--cpd-color-gray-400);
        }

        /* round the top corners of the top button for the hover effect to be bounded */
        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList:first-child .mx_IconizedContextMenu_item:first-child {
            border-radius: 8px 8px 0 0; /* radius matches .mx_ContextualMenu */
        }

        /* round the bottom corners of the bottom button for the hover effect to be bounded */
        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList:last-child .mx_IconizedContextMenu_item:last-child {
            border-radius: 0 0 8px 8px; /* radius matches .mx_ContextualMenu */
        }

        /* round all corners of the only button for the hover effect to be bounded */
        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList:first-child:last-child .mx_IconizedContextMenu_item:first-child:last-child {
            border-radius: 8px; /* radius matches .mx_ContextualMenu */
        }

        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_IconizedContextMenu_item {
            /* pad the inside of the button so that the hover background is padded too */
            padding-top: 12px;
            padding-bottom: 12px;
            text-decoration: none;
            color: #edf3ff;
            font: var(--cpd-font-body-md-regular);

            /* Create a flexbox to more easily define the list items */
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

            .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_IconizedContextMenu_item:hover,
            .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_IconizedContextMenu_item:focus-visible {
                background-color: var(--cpd-color-bg-action-secondary-hovered);
            }

            .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_IconizedContextMenu_item.mx_AccessibleButton_disabled {
                opacity: 0.5;
                cursor: not-allowed;
            }

            .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_IconizedContextMenu_item span.mx_IconizedContextMenu_label {
                /* labels */
                width: 100%;
                -webkit-box-flex: 1;
                    -ms-flex: 1;
                        flex: 1;

                /* Ellipsize any text overflow */
                text-overflow: ellipsis;
                overflow: hidden;
                white-space: nowrap;
            }

            .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_IconizedContextMenu_item svg {
                width: 16px;
                height: 16px;
                display: block;
                -ms-flex-negative: 0;
                    flex-shrink: 0;
            }

                .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_IconizedContextMenu_item svg + .mx_IconizedContextMenu_label {
                    padding-left: 14px;
                }

            .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_IconizedContextMenu_item .mx_BetaCard_betaPill {
                margin-left: 16px;
            }
        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList_red .mx_IconizedContextMenu_item {
            color: #ff5b55 !important;
        }

        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList_red svg {
            color: var(--cpd-color-icon-critical-primary);
        }

    .mx_IconizedContextMenu .mx_IconizedContextMenu_option_red {
        color: #ff5b55 !important;
    }

        .mx_IconizedContextMenu .mx_IconizedContextMenu_option_red svg {
            color: #ff5b55;
        }
        .mx_IconizedContextMenu .mx_IconizedContextMenu_active.mx_IconizedContextMenu_item,
        .mx_IconizedContextMenu .mx_IconizedContextMenu_active .mx_IconizedContextMenu_item {
            color: #0dbd8b !important;
        }

            .mx_IconizedContextMenu .mx_IconizedContextMenu_active.mx_IconizedContextMenu_item svg, .mx_IconizedContextMenu .mx_IconizedContextMenu_active .mx_IconizedContextMenu_item svg {
                color: #0dbd8b;
            }
        .mx_IconizedContextMenu.mx_IconizedContextMenu_compact .mx_IconizedContextMenu_optionList > * {
            padding: 8px 16px 8px 12px;
        }

    .mx_IconizedContextMenu svg.mx_IconizedContextMenu_checked {
        margin-left: 16px;
        margin-right: -5px;
    }

    .mx_IconizedContextMenu .mx_IconizedContextMenu_sublabel {
        margin-left: 20px;
        color: #edf3ff;
    }

.mx_IconizedContextMenu_item.mx_IconizedContextMenu_itemDestructive {
    color: #ff5b55 !important;
}
}
@layer app-web{

/*
Copyright 2020-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LegacyCallContextMenu_item {
    width: 205px;
    height: 40px;
    padding-left: 16px;
    line-height: 40px;
    vertical-align: center;
}
}
@layer app-web{

/*
Copyright 2024,2025 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_AddExistingToSpaceDialog_wrapper .mx_Dialog {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }
    .mx_AddExistingToSpace .mx_SearchBox {
        /* To match the space around the title */
        margin: 0 0 15px 0;
        -webkit-box-flex: 0;
            -ms-flex-positive: 0;
                flex-grow: 0;
    }

    .mx_AddExistingToSpace .mx_AddExistingToSpace_content {
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
    }

    .mx_AddExistingToSpace .mx_AddExistingToSpace_noResults {
        display: block;
        margin-top: 24px;
    }

    .mx_AddExistingToSpace .mx_AddExistingToSpace_section {
        margin-right: 12px;
    }

        .mx_AddExistingToSpace .mx_AddExistingToSpace_section ul {
            list-style: none;
            padding-left: 0;
        }

        /* provides space for scrollbar so that checkbox and scrollbar do not collide */
        .mx_AddExistingToSpace .mx_AddExistingToSpace_section:not(:first-child) {
            margin-top: 24px;
        }

        .mx_AddExistingToSpace .mx_AddExistingToSpace_section > h3 {
            margin: 0;
            color: #edf3ff;
            font-size: 0.75rem;
            font-weight: var(--cpd-font-weight-semibold);
            line-height: 0.9375rem;
        }

        .mx_AddExistingToSpace .mx_AddExistingToSpace_section .mx_AccessibleButton_kind_link {
            font-size: 0.75rem;
            line-height: 0.9375rem;
            margin-top: 8px;
        }

    .mx_AddExistingToSpace .mx_AddExistingToSpace_footer {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        margin-top: 20px;
    }

        .mx_AddExistingToSpace .mx_AddExistingToSpace_footer > span {
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
            font-size: 0.75rem;
            line-height: 0.9375rem;
            color: #edf3ff;
        }

            .mx_AddExistingToSpace .mx_AddExistingToSpace_footer > span .mx_ProgressBar {
                height: 8px;
                width: 100%;

                border-radius: 8px;
            }

                .mx_AddExistingToSpace .mx_AddExistingToSpace_footer > span .mx_ProgressBar::-moz-progress-bar {
        border-radius: 8px;
    }

                .mx_AddExistingToSpace .mx_AddExistingToSpace_footer > span .mx_ProgressBar::-webkit-progress-bar,
    .mx_AddExistingToSpace .mx_AddExistingToSpace_footer > span .mx_ProgressBar::-webkit-progress-value {
        border-radius: 8px;
    }

            .mx_AddExistingToSpace .mx_AddExistingToSpace_footer > span .mx_AddExistingToSpaceDialog_progressText {
                margin-top: 8px;
                font-size: 0.9375rem;
                line-height: 1.5rem;
                color: #edf3ff;
            }

            .mx_AddExistingToSpace .mx_AddExistingToSpace_footer > span > * {
                vertical-align: middle;
            }

        .mx_AddExistingToSpace .mx_AddExistingToSpace_footer .mx_AddExistingToSpace_error {
            padding-left: 12px;
        }

            .mx_AddExistingToSpace .mx_AddExistingToSpace_footer .mx_AddExistingToSpace_error > img {
                -ms-flex-item-align: center;
                    align-self: center;
            }

            .mx_AddExistingToSpace .mx_AddExistingToSpace_footer .mx_AddExistingToSpace_error .mx_AddExistingToSpace_errorHeading {
                font-weight: var(--cpd-font-weight-semibold);
                font-size: 0.9375rem;
                line-height: 1.125rem;
                color: #ff5b55;
            }

            .mx_AddExistingToSpace .mx_AddExistingToSpace_footer .mx_AddExistingToSpace_error .mx_AddExistingToSpace_errorCaption {
                margin-top: 4px;
                font-size: 0.75rem;
                line-height: 0.9375rem;
                color: #edf3ff;
            }

        .mx_AddExistingToSpace .mx_AddExistingToSpace_footer .mx_AccessibleButton {
            display: inline-block;
            -ms-flex-item-align: center;
                align-self: center;
        }

        .mx_AddExistingToSpace .mx_AddExistingToSpace_footer .mx_AccessibleButton_kind_primary {
            padding: 8px 36px;
        }

        .mx_AddExistingToSpace .mx_AddExistingToSpace_footer .mx_AddExistingToSpaceDialog_retryButton svg {
            color: #edf3ff;
            width: 18px;
            height: 18px;
            margin-right: var(--cpd-space-2x);
        }

.mx_AddExistingToSpaceDialog {
    width: 480px;
    color: #edf3ff;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    min-height: 0;
    height: 80vh;
}

    .mx_AddExistingToSpaceDialog .mx_AddExistingToSpace {
        display: contents;
    }

.mx_SubspaceSelector {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

    .mx_SubspaceSelector .mx_BaseAvatar {
        margin: auto 16px auto 5px;
    }
        .mx_SubspaceSelector > div > h1 {
            font-weight: var(--cpd-font-weight-semibold);
            font-size: 1.125rem;
            line-height: 1.375rem;
            margin: 0;
        }

    .mx_SubspaceSelector .mx_Dropdown_input {
        border: none;
    }

        .mx_SubspaceSelector .mx_Dropdown_input > .mx_Dropdown_option {
            padding-left: 0;
            -webkit-box-flex: initial;
                -ms-flex: initial;
                    flex: initial;
            height: auto;
            height: initial;
            color: #edf3ff;
            font-size: 0.9375rem;
            line-height: 1.5rem;
        }

            .mx_SubspaceSelector .mx_Dropdown_input > .mx_Dropdown_option .mx_BaseAvatar {
                display: none;
            }

        .mx_SubspaceSelector .mx_Dropdown_input .mx_SubspaceSelector_dropdownOptionActive {
            color: #0dbd8b;
            padding-right: 24px;
            position: relative;
        }

            .mx_SubspaceSelector .mx_Dropdown_input .mx_SubspaceSelector_dropdownOptionActive svg {
                width: 20px;
                height: 20px;
                right: 0;
                position: absolute;
                color: #0dbd8b;
            }

    .mx_SubspaceSelector .mx_SubspaceSelector_onlySpace {
        color: #edf3ff;
        font-size: 0.9375rem;
        line-height: 1.5rem;
    }

.mx_AddExistingToSpace_entry {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-top: 12px;
}

    .mx_AddExistingToSpace_entry form {
        /* Align checkboxes. */
        margin-top: auto;
        margin-bottom: auto;
    }

    /* we can't target .mx_BaseAvatar here as it'll break the decorated avatar styling */
    .mx_AddExistingToSpace_entry .mx_DecoratedRoomAvatar {
        margin-right: 12px;
    }

    .mx_AddExistingToSpace_entry .mx_AddExistingToSpace_entry_name {
        font-size: 0.9375rem;
        line-height: 30px;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
        margin-right: 12px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AnalyticsLearnMoreDialog {
    max-width: 500px;
}
    .mx_AnalyticsLearnMoreDialog .mx_AnalyticsLearnMore_image_holder {
        background-image: url(../../img/element-shiny.f5a5e6e.svg);
        background-repeat: no-repeat;
        background-position: center top;
        height: 112px;
        padding: 20px 0px;
    }

    .mx_AnalyticsLearnMoreDialog .mx_Dialog_content {
        margin-bottom: 0px;
    }

    .mx_AnalyticsLearnMoreDialog .mx_AnalyticsLearnMore_copy {
        border-bottom: 1px solid #000000;
        padding-bottom: 20px;
        margin-bottom: 20px;
    }

    .mx_AnalyticsLearnMoreDialog a {
        color: #0dbd8b;
        text-decoration: none;
    }

    .mx_AnalyticsLearnMoreDialog .mx_AnalyticsLearnMore_bullets {
        padding-left: 0px;
    }

    .mx_AnalyticsLearnMoreDialog .mx_AnalyticsLearnMore_bullets li {
        list-style-type: none;
        padding: 2px 0 0 32px;
        margin-bottom: 20px;
        vertical-align: middle;
        position: relative;
    }

        .mx_AnalyticsLearnMoreDialog .mx_AnalyticsLearnMore_bullets li svg {
            position: absolute;
            width: 26px;
            height: 26px;
            left: 0;
            top: 0;
            color: #0dbd8b;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
        .mx_BugReportDialog .mx_BugReportDialog_download .mx_AccessibleButton_kind_link {
            margin-right: 18px; /* Space between "Downloading logs..." */
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2016 Aviral Dasgupta

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ChangelogDialog_content {
    max-height: 300px;
    overflow: auto;
}

.mx_ChangelogDialog_li {
    padding: 0.2em;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/* -------------------------------------------------------------------------------- */
/* DEV NOTE: This stylesheet covers dialogs listed by the compound, including */
/* over multiple React components. The actual inner contents of the dialog should */
/* be in their respective stylesheets. */
/* -------------------------------------------------------------------------------- */

/* Override legacy/default styles for dialogs */
.mx_Dialog_wrapper.mx_CompoundDialog .mx_Dialog {
    padding: 0; /* we'll manage it ourselves */
    color: #edf3ff;
}
    .mx_CompoundDialog .mx_Dialog {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

    .mx_CompoundDialog .mx_CompoundDialog_header {
        padding: 32px 32px 16px 32px;
    }

        .mx_CompoundDialog .mx_CompoundDialog_header h1 {
            display: inline-block;
            font-weight: var(--cpd-font-weight-semibold);
            font-size: 1.5rem;
            margin: 0; /* managed by header class */
        }

    .mx_CompoundDialog .mx_CompoundDialog_cancelButton {
        width: 20px;
        height: 20px;
        padding: var(--cpd-space-1x);
        border-radius: 14px;
        background-color: var(--cpd-color-bg-subtle-secondary);
        /* Align with corner radius of dialog */
    }
        .mx_CompoundDialog .mx_CompoundDialog_cancelButton:hover {
        background-color: var(--cpd-color-bg-subtle-primary);
    }
        .mx_CompoundDialog .mx_CompoundDialog_cancelButton svg {
        width: inherit;
        height: inherit;
        vertical-align: top;
        color: var(--cpd-color-icon-secondary);
    }
        .mx_CompoundDialog .mx_CompoundDialog_cancelButton{
        position: absolute;
        top: var(--cpd-space-4x);
        right: var(--cpd-space-4x);
}

    .mx_CompoundDialog .mx_CompoundDialog_form {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        min-height: 0;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
    }

    .mx_CompoundDialog .mx_CompoundDialog_content {
        overflow: auto;
        padding: 8px 32px;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
    }

    .mx_CompoundDialog .mx_CompoundDialog_footer {
        padding: 20px 32px;
        text-align: right;
    }

        .mx_CompoundDialog .mx_CompoundDialog_footer .mx_AccessibleButton {
            margin-left: 24px;
        }

.mx_ScrollableBaseDialog {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;

    width: 544px; /* fixed */
    height: 516px; /* fixed */
    max-width: 100%;
    min-height: 0;
    max-height: 80%;
}

    .mx_ScrollableBaseDialog .mx_CompoundDialog_footer {
        -webkit-box-shadow: 0px -4px 4px rgb(0, 0, 0, 0.05);
                box-shadow: 0px -4px 4px rgb(0, 0, 0, 0.05); /* hardcoded colour for both themes */
        z-index: 1; /* needed to make footer & shadow appear above dialog content */
    }
}
@layer app-web{

/*
Copyright 2025 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_ConfirmKeyStorageOffDialog .mx_Dialog_border {
        width: 600px;
    }

    .mx_ConfirmKeyStorageOffDialog .mx_EncryptionCard {
        text-align: center;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_ConfirmSpaceUserActionDialog_wrapper .mx_Dialog {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        padding: 24px 32px;
    }

.mx_ConfirmSpaceUserActionDialog {
    width: 440px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    height: 520px;
}

    .mx_ConfirmSpaceUserActionDialog .mx_Dialog_content {
        margin: 12px 0;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        overflow-y: auto;
    }

    .mx_ConfirmSpaceUserActionDialog .mx_ConfirmUserActionDialog_reasonField {
        margin-bottom: 12px;
    }

    .mx_ConfirmSpaceUserActionDialog .mx_ConfirmSpaceUserActionDialog_warning {
        border-radius: 8px;
        padding: 12px 8px;
        background-color: #22262e;

        font-size: 0.75rem;
        line-height: 0.9375rem;
        color: #edf3ff;
    }

        .mx_ConfirmSpaceUserActionDialog .mx_ConfirmSpaceUserActionDialog_warning svg {
            height: 16px;
            width: 16px;
            vertical-align: -4px;
            margin-right: var(--cpd-space-1-5x);
            color: #edf3ff;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2017 Vector Creations Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ConfirmUserActionDialog .mx_Dialog_content .mx_ConfirmUserActionDialog_user {
    min-height: 48px;
    margin-bottom: 24px;
}

.mx_ConfirmUserActionDialog_avatar {
    float: left;
    margin-right: 20px;
}

.mx_ConfirmUserActionDialog_name {
    padding-top: 2px;
    font-size: 1.125rem;
}

.mx_ConfirmUserActionDialog_userId {
    font-size: 0.8125rem;
}

.mx_ConfirmUserActionDialog_reasonField {
    font: var(--cpd-font-body-md-regular);
    color: #edf3ff;
    background-color: #181b21;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2017 Michael Telatynski <7t3chguy@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CreateRoomDialog_details {
    margin-top: 15px;
}

    .mx_CreateRoomDialog_details .mx_CreateRoomDialog_details_summary {
        list-style: none;
        font-weight: var(--cpd-font-weight-semibold);
        cursor: pointer;
        color: var(--cpd-color-text-primary);
        text-decoration: underline;
        width: -webkit-fit-content;
        width: -moz-fit-content;
        width: fit-content;
    }

        /* list-style doesn't do it for webkit */
        .mx_CreateRoomDialog_details .mx_CreateRoomDialog_details_summary::-webkit-details-marker {
            display: none;
        }

        .mx_CreateRoomDialog_details .mx_CreateRoomDialog_details_summary:not(:focus-visible) {
            outline: none;
        }

    .mx_CreateRoomDialog_details > div {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: start;
            -ms-flex-align: start;
                align-items: flex-start;
        margin: 5px 0;
    }

        .mx_CreateRoomDialog_details > div input[type="checkbox"] {
            margin-right: 10px;
        }

.mx_CreateRoomDialog_label {
    text-align: left;
    padding-bottom: 12px;
}

.mx_CreateRoomDialog_input_container {
    padding-right: 20px;
}

.mx_CreateRoomDialog_input {
    font-size: 0.9375rem;
    border-radius: 3px;
    border: 1px solid #e7e7e7;
    padding: 9px;
    color: #edf3ff;
    background-color: #181b21;
    width: 100%;
}

.mx_CreateRoomDialog_aliasContainer {
    /* needed to make the alias field only grow as wide as needed as opposed to full width */
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}
    .mx_CreateRoomDialog.mx_Dialog_fixedWidth {
        width: 450px;
    }

    .mx_CreateRoomDialog .mx_Dialog_content {
        margin-bottom: 40px;
    }

    .mx_CreateRoomDialog p,
    .mx_CreateRoomDialog .mx_Field_input label {
        color: #a1b2d1;
    }

    .mx_CreateRoomDialog .mx_SettingsFlag {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
    }

    .mx_CreateRoomDialog .mx_SettingsFlag_label {
        -webkit-box-flex: 1;
            -ms-flex: 1 1 0px;
                flex: 1 1 0;
        min-width: 0;
        font-weight: var(--cpd-font-weight-semibold);
    }

    .mx_CreateRoomDialog .mx_ToggleSwitch {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        margin-left: 30px;
    }

    .mx_CreateRoomDialog .mx_Dialog_content > .mx_SettingsFlag {
        margin-top: 24px;
    }

    .mx_CreateRoomDialog .mx_Field {
        margin: 0;
    }

    .mx_CreateRoomDialog form {
        gap: var(--cpd-space-4x);
    }

    .mx_CreateRoomDialog p {
        margin: 0 85px 0 0;
        font-size: 0.75rem;
    }

.mx_CreateRoomDialog_labelledCheckbox {
    color: #a1b2d1;
    margin-top: var(--cpd-space-6x);
}
}
@layer app-web{

/*
 * Copyright 2026 Element Creations Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_CreateSectionDialog {
    color: var(--cpd-color-text-primary);
}

    .mx_CreateSectionDialog .mx_CreateSectionDialog_title {
        text-overflow: ellipsis;
        overflow: hidden;
        white-space: nowrap;
    }

    .mx_CreateSectionDialog.mx_Dialog_fixedWidth {
        /* 576px coming from Figma and remove external padding */
        max-width: calc(576px - var(--cpd-space-20x));
    }

    .mx_CreateSectionDialog .mx_Dialog_header {
        margin-bottom: var(--cpd-space-6x);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_CreateSubspaceDialog_wrapper .mx_Dialog {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

.mx_CreateSubspaceDialog {
    width: 480px;
    color: #edf3ff;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    min-height: 0;
}

    .mx_CreateSubspaceDialog .mx_CreateSubspaceDialog_content {
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
    }

        .mx_CreateSubspaceDialog .mx_CreateSubspaceDialog_content .mx_CreateSubspaceDialog_betaNotice {
            padding: 12px 16px;
            border-radius: 8px;
            background-color: #22262e;
        }

            .mx_CreateSubspaceDialog .mx_CreateSubspaceDialog_content .mx_CreateSubspaceDialog_betaNotice .mx_BetaCard_betaPill {
                margin-right: 8px;
                vertical-align: middle;
            }

        .mx_CreateSubspaceDialog .mx_CreateSubspaceDialog_content .mx_JoinRuleDropdown + p {
            color: #a1b2d1;
            font-size: 0.75rem;
        }

    .mx_CreateSubspaceDialog .mx_CreateSubspaceDialog_footer {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        margin-top: 20px;
    }

        .mx_CreateSubspaceDialog .mx_CreateSubspaceDialog_footer .mx_CreateSubspaceDialog_footer_prompt {
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
            font-size: 0.75rem;
            line-height: 0.9375rem;
            color: #edf3ff;
        }

            .mx_CreateSubspaceDialog .mx_CreateSubspaceDialog_footer .mx_CreateSubspaceDialog_footer_prompt > * {
                vertical-align: middle;
            }

        .mx_CreateSubspaceDialog .mx_CreateSubspaceDialog_footer .mx_AccessibleButton {
            display: inline-block;
            -ms-flex-item-align: center;
                align-self: center;
        }

        .mx_CreateSubspaceDialog .mx_CreateSubspaceDialog_footer .mx_AccessibleButton_kind_primary {
            margin-left: 16px;
            padding: 8px 36px;
        }
}
@layer app-web{

/*
 * Copyright 2025 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */
    .mx_Crypto table {
        margin: var(--cpd-space-4x) 0;
        text-align: left;
        border-spacing: var(--cpd-space-2x) 0;
    }

        .mx_Crypto table thead {
            font: var(--cpd-font-heading-sm-semibold);
        }
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DeactivateAccountDialog .mx_Dialog_content {
    margin-bottom: 30px;
}

.mx_DeactivateAccountDialog .mx_DeactivateAccountDialog_input_section .mx_Field {
    width: 300px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2017 Michael Telatynski <7t3chguy@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_DevtoolsDialog_wrapper .mx_Dialog {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

    .mx_DevtoolsDialog_wrapper .mx_Dialog_fixedWidth {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        min-height: 0;
        max-height: 100%;
    }

        .mx_DevtoolsDialog_wrapper .mx_Dialog_fixedWidth .mx_Dialog_buttons button {
            margin-bottom: 0;
        }

    .mx_DevtoolsDialog_wrapper .mx_DevTools_toggleForm {
        gap: var(--cpd-space-2x);
    }

.mx_DevTools_toolHeading {
    color: var(--cpd-color-text-secondary);
    font: var(--cpd-font-heading-sm-semibold);
}

.mx_DevTools_content {
    overflow-y: auto;
    /* Give room for focus outlines */
    -webkit-padding-start: var(--cpd-space-0-5x);
            padding-inline-start: var(--cpd-space-0-5x);
    -webkit-padding-after: var(--cpd-space-0-5x);
            padding-block-end: var(--cpd-space-0-5x);
}

.mx_DevTools_RoomStateExplorer_query {
    margin-bottom: 10px;
}

.mx_DevTools_button {
    font-family: monospace !important;
    margin-bottom: 8px !important;
}

.mx_DevTools_RoomStateExplorer_button_hasSpaces {
    text-decoration: underline;
}

.mx_DevTools_button.mx_DevTools_RoomStateExplorer_button_emptyString {
    font-style: italic;
}

.mx_DevTools_label_left {
    float: left;
}

.mx_DevTools_label_right {
    float: right;
}

.mx_DevTools_label_bottom {
    clear: both;
    border-bottom: 1px solid #e5e5e5;
}

.mx_DevTools_inputRow {
    display: table-row;
}

.mx_DevTools_inputLabelCell {
    display: table-cell;
    font-weight: bold;
    padding-right: 24px;
}

.mx_DevTools_textarea {
    font-size: 0.75rem;
    max-width: 684px;
    min-height: 250px;
    padding: 10px;
}

.mx_DevTools_eventTypeStateKeyGroup {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
}

.mx_DevTools_content .mx_Field_input:first-of-type {
    margin-right: 42px;
}

.mx_DevTools_VerificationRequest {
    border: 1px solid #cccccc;
    border-radius: 3px;
    padding: 1px 5px;
    margin-bottom: 6px;
    font-family: "Fira Code", "", "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji";
    font-family: "Fira Code", var(--emoji-font-family), "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji";
}

    .mx_DevTools_VerificationRequest dl {
        display: grid;
        grid-template-columns: -webkit-max-content auto;
        grid-template-columns: max-content auto;
        margin: 0;
    }

    .mx_DevTools_VerificationRequest dd {
        grid-column-start: 2;
    }

    .mx_DevTools_VerificationRequest dd:empty {
        color: #666666;
    }
        .mx_DevTools_VerificationRequest dd:empty::after {
            content: "(empty)";
        }

    .mx_DevTools_VerificationRequest dt {
        font-weight: bold;
        grid-column-start: 1;
    }

    .mx_DevTools_VerificationRequest dt::after {
        content: ":";
    }
    .mx_DevTools_SettingsExplorer table {
        width: 100%;
        table-layout: fixed;
        border-collapse: collapse;
    }

        .mx_DevTools_SettingsExplorer table th {
            /* Colour choice: first one autocomplete gave me. */
            border-bottom: 1px solid #0dbd8b;
            text-align: left;
        }

        .mx_DevTools_SettingsExplorer table td,
        .mx_DevTools_SettingsExplorer table th {
            width: 360px; /* "feels right" number */

            text-overflow: ellipsis;
            overflow: hidden;
            white-space: nowrap;
        }

        .mx_DevTools_SettingsExplorer table td + td,
        .mx_DevTools_SettingsExplorer table th + th {
            width: auto;
        }

        .mx_DevTools_SettingsExplorer table tr:hover {
            /* Colour choice: first one autocomplete gave me. */
            background-color: #0dbd8b;
        }

    .mx_DevTools_SettingsExplorer .mx_DevTools_SettingsExplorer_mutable {
        background-color: #0dbd8b;
    }

    .mx_DevTools_SettingsExplorer .mx_DevTools_SettingsExplorer_immutable {
        background-color: #ff5b55;
    }

    .mx_DevTools_SettingsExplorer .mx_DevTools_SettingsExplorer_edit {
        float: right;
        margin-right: 16px;
    }

    .mx_DevTools_SettingsExplorer .mx_DevTools_SettingsExplorer_warning {
        border: 2px solid #ff5b55;
        border-radius: 4px;
        padding: 4px;
        margin-bottom: 8px;
    }

.mx_DevTools_SettingsExplorer_setting {
    /* override default link button color */
    /* as it is the same as the background highlight */
    /* used on focus */
    color: #0086e6 !important;
}
    .mx_DevTools_sticky_explorer table {
        width: 100%;
        border-collapse: collapse;
        table-layout: fixed;
        margin-top: var(--cpd-space-3x);
    }

        .mx_DevTools_sticky_explorer table th {
            text-align: left;
            padding: var(--cpd-space-2x) var(--cpd-space-3x);
        }

        .mx_DevTools_sticky_explorer table th#user_header {
            width: 35%;
        }
        .mx_DevTools_sticky_explorer table th#sticky_key_header {
            width: 50%;
        }
        .mx_DevTools_sticky_explorer table th#expires_in_header {
            width: 15%;
        }

        .mx_DevTools_sticky_explorer table tr {
            cursor: pointer;
            border-bottom: var(--cpd-border-width-1) solid var(--cpd-color-border-interactive-primary);
            background: transparent;
        }

        .mx_DevTools_sticky_explorer table tr:hover {
            color: var(--cpd-color-text-secondary);
            background: var(--cpd-color-bg-action-secondary-hovered);
        }

        .mx_DevTools_sticky_explorer table tr:focus-visible {
            outline: var(--cpd-border-width-2) solid var(--cpd-color-border-focused);
        }

        .mx_DevTools_sticky_explorer table td {
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            padding: var(--cpd-space-2x) var(--cpd-space-3x);
        }

        .mx_DevTools_sticky_explorer table td.remaining_time_column {
            text-align: right;
        }
}
@layer app-web{

/*
Copyright (C) 2026 MetMet

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/* "HAPANA" (stay) is the prominent, default option; "NDIYO" (leave) stays small and outlined —
   a deliberate retention nudge, matching the guest-onboarding brand colors. */
.mx_ExitRoomConfirmDialog_stayButton.mx_Dialog_primary {
    background-color: #028e91;
    background-color: var(--metmet-brand-primary);
    border-color: #028e91;
    border-color: var(--metmet-brand-primary);
    color: #fff;
    font-size: 1rem;
    padding: 10px 24px;
}

.mx_ExitRoomConfirmDialog_exitButton {
    background-color: transparent;
    border: 1px solid #3ac6cb;
    border: 1px solid var(--metmet-brand-secondary);
    color: #3ac6cb;
    color: var(--metmet-brand-secondary);
    font-size: 0.8125rem;
    padding: 4px 12px;
}
}
@layer app-web{

/*
Copyright 2024,2025 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_ExportDialog .mx_ExportDialog_subheading {
        font-size: 1rem;
        display: block;
        font-family: "Nunito", "", "Apple Color Emoji", "Segoe UI Emoji", "Arial", "Helvetica", sans-serif,
    "Noto Color Emoji";
        font-family: "Nunito", var(--emoji-font-family), "Apple Color Emoji", "Segoe UI Emoji", "Arial", "Helvetica", sans-serif,
    "Noto Color Emoji";
        font-weight: var(--cpd-font-weight-semibold);
        color: #edf3ff;
        margin-top: 18px;
        margin-bottom: 12px;
    }
        .mx_ExportDialog.mx_ExportDialog_Exporting .mx_ExportDialog_options {
            pointer-events: none;
        }

        .mx_ExportDialog.mx_ExportDialog_Exporting .mx_Field_select::before {
            display: none;
        }

        .mx_ExportDialog.mx_ExportDialog_Exporting .mx_StyledRadioButton input[type="radio"]:checked + div > div {
            background: #888;
        }

        .mx_ExportDialog.mx_ExportDialog_Exporting .mx_StyledRadioButton input[type="radio"]:checked + div {
            border-color: currentcolor;
            border-color: initial;
        }

        .mx_ExportDialog.mx_ExportDialog_Exporting .mx_Field_valid.mx_Field label,
        .mx_ExportDialog.mx_ExportDialog_Exporting .mx_Field_valid.mx_Field:focus-within label {
            color: inherit;
        }

        .mx_ExportDialog.mx_ExportDialog_Exporting .mx_Field_valid.mx_Field,
        .mx_ExportDialog.mx_ExportDialog_Exporting .mx_Field_valid.mx_Field:focus-within {
            border-color: #e7e7e7;
        }
        .mx_ExportDialog .mx_ExportDialog_progress .mx_Dialog_buttons {
            margin-top: 0;
            margin-top: initial;
            margin-left: 18px;
        }

        .mx_ExportDialog .mx_ExportDialog_progress .mx_Spinner {
            width: auto;
            width: initial;
            height: auto;
            height: initial;
            -webkit-box-flex: initial;
                -ms-flex: initial;
                    flex: initial;
            margin-right: 10px;
        }

        .mx_ExportDialog .mx_ExportDialog_progress{

        display: -webkit-box;

        display: -ms-flexbox;

        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        -webkit-box-pack: end;
            -ms-flex-pack: end;
                justify-content: flex-end;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
}

    .mx_ExportDialog .mx_StyledRadioButton > .mx_StyledRadioButton_content {
        margin-top: 5px;
        margin-bottom: 5px;
    }

    .mx_ExportDialog .mx_Field {
        width: 256px;
    }

    .mx_ExportDialog .mx_Field_postfix {
        padding: 9px 10px;
    }

.mx_ExportDialog_attachments-checkbox {
    margin-top: var(--cpd-space-4x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_FeedbackDialog hr {
        margin: 24px 0;
        border-color: #e7e7e7;
    }

    .mx_FeedbackDialog .mx_Dialog_content {
        margin-bottom: 24px;
    }

        .mx_FeedbackDialog .mx_Dialog_content > h2 {
            margin-bottom: 32px;
        }

    .mx_FeedbackDialog .mx_FeedbackDialog_section {
        position: relative;
        padding: 12px 52px 12px 68px;
        border-radius: 8px;
        border: 1px solid #6f7882;
    }

        .mx_FeedbackDialog .mx_FeedbackDialog_section + .mx_FeedbackDialog_section {
            margin-top: 16px;
        }

        .mx_FeedbackDialog .mx_FeedbackDialog_section > h3 {
            margin-top: 0;
            margin-bottom: 8px;
            font-weight: var(--cpd-font-weight-semibold);
            font-size: 1.125rem;
            line-height: 1.375rem;
        }

        .mx_FeedbackDialog .mx_FeedbackDialog_section > p {
            color: #edf3ff;
            font-size: 0.9375rem;
            line-height: 1.5rem;
            margin: 8px 0 0;
        }

        .mx_FeedbackDialog .mx_FeedbackDialog_section .mx_FeedbackDialog_section_microcopy {
            font-size: 0.75rem;
            line-height: 0.9375rem;
        }

        .mx_FeedbackDialog .mx_FeedbackDialog_section a,
        .mx_FeedbackDialog .mx_FeedbackDialog_section .mx_AccessibleButton_kind_link {
            text-decoration: underline;
        }

        .mx_FeedbackDialog .mx_FeedbackDialog_section > svg {
            position: absolute;
            left: 16px;
            top: 12px;
            padding: var(--cpd-space-2x);
            width: 24px;
            height: 24px;
            background-color: var(--cpd-color-icon-tertiary);
            color: #ffffff;
            border-radius: 8px;
        }
        .mx_FeedbackDialog .mx_FeedbackDialog_rateApp .mx_StyledRadioButton {
            display: -webkit-inline-box;
            display: -ms-inline-flexbox;
            display: inline-flex;
            font-size: 20px;
            -webkit-transition:
                font-size 1s,
                border 0.5s;
            transition:
                font-size 1s,
                border 0.5s;
            border-radius: 50%;
            border: 2px solid transparent;
            margin-top: 12px;
            margin-bottom: 24px;
            vertical-align: top;
            cursor: pointer;
        }

            .mx_FeedbackDialog .mx_FeedbackDialog_rateApp .mx_StyledRadioButton input[type="radio"] + div {
                display: none;
            }

            .mx_FeedbackDialog .mx_FeedbackDialog_rateApp .mx_StyledRadioButton .mx_StyledRadioButton_content {
                background: var(--cpd-color-icon-tertiary);
                width: 40px;
                height: 40px;
                text-align: center;
                line-height: 40px;
                border-radius: 20px;
                margin: 5px;
            }

            .mx_FeedbackDialog .mx_FeedbackDialog_rateApp .mx_StyledRadioButton .mx_StyledRadioButton_spacer {
                display: none;
            }

            .mx_FeedbackDialog .mx_FeedbackDialog_rateApp .mx_StyledRadioButton + .mx_StyledRadioButton {
                margin-left: 16px;
            }

        .mx_FeedbackDialog .mx_FeedbackDialog_rateApp .mx_StyledRadioButton_checked {
            font-size: 24px;
            border-color: var(--cpd-color-bg-action-primary-rest);
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Robin Townsend <robin@robin.town>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ForwardDialog {
    width: 520px;
    color: #edf3ff;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    min-height: 0;
    height: 80vh;
}

    .mx_ForwardDialog > h3 {
        margin: 0 0 6px;
        color: #edf3ff;
        font-size: 0.75rem;
        font-weight: var(--cpd-font-weight-semibold);
        line-height: 0.9375rem;
    }

    .mx_ForwardDialog > .mx_ForwardDialog_preview {
        max-height: 30%;
        -ms-flex-negative: 0;
            flex-shrink: 0;
        overflow-y: auto;

        /* When forwarding messages from encrypted rooms, EventTile will complain */
        /* that our preview is unencrypted, which doesn't actually matter */
        /* We also hide download links to not encourage users to try interacting */
    }

        .mx_ForwardDialog > .mx_ForwardDialog_preview .mx_EventTile[data-layout="bubble"] {
            margin-top: 20px;
        }

        .mx_ForwardDialog > .mx_ForwardDialog_preview div {
            pointer-events: none;
        }
        .mx_ForwardDialog > .mx_ForwardDialog_preview .mx_EventTile_msgOption,
        .mx_ForwardDialog > .mx_ForwardDialog_preview .mx_EventTile_e2eIcon,
        .mx_ForwardDialog > .mx_ForwardDialog_preview .mx_MFileBody [data-type="download"] {
            display: none;
        }

    .mx_ForwardDialog > hr {
        width: 100%;
        border: none;
        border-top: 1px solid #e7e7e7;
        margin: 12px 0;
    }

    .mx_ForwardDialog > .mx_ForwardList {
        display: contents;
    }

        .mx_ForwardDialog > .mx_ForwardList .mx_SearchBox {
            /* To match the space around the title */
            margin: 0 0 15px 0;
            -webkit-box-flex: 0;
                -ms-flex-positive: 0;
                    flex-grow: 0;
        }

            .mx_ForwardDialog > .mx_ForwardList .mx_SearchBox:not(:focus-within) + .mx_ForwardList_content {
                /* Inhibit the styling if focus is not within the input which handles keyboard accessibility */
                --mx_ForwardList_entry_selectedBgColor: transparent;
            }

        .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_content {
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
        }

        .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_noResults {
            display: block;
            margin-top: 24px;
        }
            .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results:not(:first-child) {
                margin-top: 24px;
            }

            .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_resultsList {
                padding-right: 8px;
            }

            .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-pack: justify;
                    -ms-flex-pack: justify;
                        justify-content: space-between;
                height: 32px;
                padding: 6px;
                border-radius: 8px;
            }

                .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry:hover,
                .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry.mx_ForwardList_entry_active {
                    background-color: #15171b;
                    background-color: var(--mx_ForwardList_entry_selectedBgColor, #15171b);
                }

                .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry .mx_ForwardList_roomButton {
                    display: -webkit-box;
                    display: -ms-flexbox;
                    display: flex;
                    margin-right: 12px;
                    min-width: 0;
                }

                    .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry .mx_ForwardList_roomButton .mx_DecoratedRoomAvatar {
                        margin-right: 12px;
                    }

                    .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry .mx_ForwardList_roomButton .mx_ForwardList_entry_name,
                    .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry .mx_ForwardList_roomButton .mx_ForwardList_entry_detail {
                        line-height: 30px;
                        overflow: hidden;
                        white-space: nowrap;
                        text-overflow: ellipsis;
                    }

                    .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry .mx_ForwardList_roomButton .mx_ForwardList_entry_name {
                        font-size: 0.9375rem;
                    }

                    .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry .mx_ForwardList_roomButton .mx_ForwardList_entry_detail {
                        font-size: 0.75rem;
                        margin-left: 8px;
                        color: #edf3ff;
                    }

                .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry .mx_ForwardList_sendButton {
                    position: relative;
                    margin-left: 12px;
                }

                    .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry .mx_ForwardList_sendButton:not(.mx_ForwardList_canSend) .mx_ForwardList_sendLabel {
                        /* Hide the "Send" label while preserving button size */
                        visibility: hidden;
                    }

                    .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry .mx_ForwardList_sendButton > svg {
                        position: absolute;
                        width: 14px;
                        height: 14px;
                        color: #0dbd8b;
                    }

                    .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry .mx_ForwardList_sendButton .mx_ForwardDialog_notificationBadge {
                        /* Match the failed to send indicator's color with the disabled button */
                        background-color: #ffffff;
                    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_GenericFeatureFeedbackDialog .mx_GenericFeatureFeedbackDialog_subheading {
        color: #edf3ff;
        font: var(--cpd-font-body-md-regular);
        line-height: 1.25rem;
        margin-bottom: 24px;
    }
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_IncomingSasDialog_opponentProfile_image {
    position: relative;
}

.mx_IncomingSasDialog_opponentProfile h2 {
    display: inline-block;
    margin-left: 10px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019, 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_InviteDialog_flexWrapper .mx_Dialog {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

.mx_InviteDialog_transferWrapper .mx_Dialog {
    padding-bottom: var(--cpd-space-4x);
}

.mx_InviteDialog_addressBar {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    /* Right margin for the design. We could apply this to the whole dialog, but then the scrollbar */
    /* for the user section gets weird. */
    margin: var(--cpd-space-2x) 45px 0 0;
}

    .mx_InviteDialog_addressBar .mx_InviteDialog_editor {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        margin-left: var(--cpd-space-0-5x);
    }

    .mx_InviteDialog_addressBar .mx_InviteDialog_goButton {
        min-width: 86px;
        -webkit-margin-start: 10px;
                margin-inline-start: 10px;
        height: 41px;
        line-height: 1.5625rem;
    }

.mx_InviteDialog_section {
    padding-bottom: var(--cpd-space-1x);
}

    .mx_InviteDialog_section .mx_InviteDialog_section_showMore {
        margin: 7px 18px;
        display: block;
    }

.mx_InviteDialog_section_hidden_suggestions_disclaimer {
    padding: var(--cpd-space-2x) 0 var(--cpd-space-4x) 0;
    font: var(--cpd-font-body-md-regular);
}

    .mx_InviteDialog_section_hidden_suggestions_disclaimer > span {
        color: #edf3ff;
        font-weight: var(--cpd-font-weight-semibold);
    }

    .mx_InviteDialog_section_hidden_suggestions_disclaimer > p {
        margin: 0;
    }

.mx_InviteDialog_footer {
    border-top: 1px solid #e7e7e7;
}

    .mx_InviteDialog_footer > h3 {
        margin: var(--cpd-space-3x) 0;
        font-size: 0.75rem;
        color: #a1b2d1;
        font-weight: bold;
        text-transform: uppercase;
    }

    .mx_InviteDialog_footer .mx_CopyableText.mx_CopyableText_border {
        width: auto;
        width: initial; /* full width */
        margin-bottom: 0;
    }

        .mx_InviteDialog_footer .mx_CopyableText.mx_CopyableText_border > a {
            text-decoration: none;
            -ms-flex-negative: 1;
                flex-shrink: 1;
            overflow: hidden;
            text-overflow: ellipsis;
        }

.mx_InviteDialog_other {
    /* Prevent the dialog from jumping around randomly when elements change. */
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    height: 600px;
    overflow: hidden;
}

    .mx_InviteDialog_other h2 {
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        white-space: pre-wrap;
        overflow: hidden;
    }

    .mx_InviteDialog_other .mx_InviteDialog_addressBar {
        -webkit-margin-end: 0;
                margin-inline-end: 0;
    }

    .mx_InviteDialog_other .mx_InviteDialog_userSections {
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        -webkit-padding-end: 0;
                padding-inline-end: 0;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        margin-top: var(--cpd-space-3x);
        gap: var(--cpd-space-3x);
    }

        .mx_InviteDialog_other .mx_InviteDialog_userSections .mx_InviteDialog_section {
            padding-bottom: 0;
        }

.mx_InviteDialog_content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    overflow: hidden;
}

    .mx_InviteDialog_content .mx_InviteProgressBody {
        margin-top: var(--cpd-space-12x);
    }

.mx_InviteDialog_transfer {
    width: auto;
}

    .mx_InviteDialog_transfer .mx_InviteDialog_content {
        width: 496px;
        height: 430px;
        overflow: visible;
    }

        .mx_InviteDialog_transfer .mx_InviteDialog_content .mx_TabbedView {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            -ms-flex-negative: 1;
                flex-shrink: 1;
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
            min-height: 0;
        }

            .mx_InviteDialog_transfer .mx_InviteDialog_content .mx_TabbedView .mx_TabbedView_tabPanel {
                -webkit-box-orient: vertical;
                -webkit-box-direction: normal;
                    -ms-flex-direction: column;
                        flex-direction: column;
            }

                .mx_InviteDialog_transfer .mx_InviteDialog_content .mx_TabbedView .mx_TabbedView_tabPanel .mx_TabbedView_tabPanelContent {
                    display: -webkit-box;
                    display: -ms-flexbox;
                    display: flex;
                    -webkit-box-orient: vertical;
                    -webkit-box-direction: normal;
                        -ms-flex-direction: column;
                            flex-direction: column;
                }

    .mx_InviteDialog_transfer .mx_InviteDialog_addressBar {
        margin-top: var(--cpd-space-2x);
    }

    .mx_InviteDialog_transfer input[type="checkbox"] {
        -webkit-margin-end: var(--cpd-space-2x);
                margin-inline-end: var(--cpd-space-2x);
    }

.mx_InviteDialog_userSections {
    overflow-y: auto;
    padding: 0 45px var(--cpd-space-1x) 0;
}

.mx_InviteDialog_helpText {
    margin: 0;
}

.mx_InviteDialog_dialPad {
    width: 224px;
    margin-top: var(--cpd-space-4x);
    margin-inline: auto;
}

    .mx_InviteDialog_dialPad .mx_InviteDialog_dialPadField {
        border-top: 0;
        border-inline: 0;
        border-radius: 0;
        margin-top: 0;
        border-color: #6f7882;
    }

        .mx_InviteDialog_dialPad .mx_InviteDialog_dialPadField:focus-within {
            border-color: #0dbd8b;
        }

        .mx_InviteDialog_dialPad .mx_InviteDialog_dialPadField input {
            font-size: 18px;
            font-weight: var(--cpd-font-weight-semibold);
            padding-top: 0;
        }

        .mx_InviteDialog_dialPad .mx_InviteDialog_dialPadField .mx_Field_postfix {
            /* Remove border separator between postfix and field content */
            border-left: none;
        }

    .mx_InviteDialog_dialPad .mx_DialPad {
        row-gap: var(--cpd-space-4x);
        -webkit-column-gap: 48px;
           -moz-column-gap: 48px;
                column-gap: 48px;
        margin-inline: auto;
    }

.mx_InviteDialog_transferConsultConnect {
    padding-top: var(--cpd-space-4x);
    /* This wants a drop shadow the full width of the dialog, so use negative margin to make it full width,
     * then compensate with padding
     */
    padding-inline: var(--cpd-space-6x);
    margin-inline: calc(-1 * var(--cpd-space-6x));
    border-top: 1px solid #6f7882;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_InviteDialog_transferConsultConnect_pushRight {
    -webkit-margin-start: auto;
            margin-inline-start: auto;
}

.mx_InviteDialog_tile {
    cursor: pointer;
    display: grid;
    grid-gap: var(--cpd-space-2x) var(--cpd-space-3x);
    gap: var(--cpd-space-2x) var(--cpd-space-3x);
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

    .mx_InviteDialog_tile.mx_InviteDialog_tile--inviterError {
        grid-template-columns: -webkit-max-content auto;
        grid-template-columns: max-content auto; /* max-content = avatar width */
    }

    .mx_InviteDialog_tile * {
        vertical-align: middle;
    }

    .mx_InviteDialog_tile .mx_InviteDialog_tile_avatarStack {
        width: 36px;
        height: 36px;
        display: inline-block;
        position: relative;
        grid-row-start: 1;
        grid-column-start: 1;
    }

        .mx_InviteDialog_tile .mx_InviteDialog_tile_avatarStack > * {
            position: absolute;
            top: 0;
            left: 0;
        }

    .mx_InviteDialog_tile .mx_InviteDialog_tile_nameStack {
        grid-row-start: 1;
        grid-column-start: 2;

        display: -webkit-box;

        display: -ms-flexbox;

        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-flow: column;
                flex-flow: column;
        align-self: center;
        -webkit-box-align: baseline;
            -ms-flex-align: baseline;
                align-items: baseline;
        gap: 2px 0;
        overflow: hidden;
    }

        .mx_InviteDialog_tile .mx_InviteDialog_tile_nameStack .mx_InviteDialog_tile_nameStack_name,
        .mx_InviteDialog_tile .mx_InviteDialog_tile_nameStack .mx_InviteDialog_tile_nameStack_userId {
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            max-width: 100%;
        }

        .mx_InviteDialog_tile .mx_InviteDialog_tile_nameStack .mx_InviteDialog_tile_nameStack_name {
            font-size: 0.9375rem;
            font-weight: var(--cpd-font-weight-semibold);
            color: #edf3ff;
        }

        .mx_InviteDialog_tile .mx_InviteDialog_tile_nameStack .mx_InviteDialog_tile_nameStack_userId {
            font-size: 0.75rem;
            color: #a1b2d1;
        }

.mx_InviteDialog_multiInviterErrorWrapper .mx_Dialog {
    width: 600px;
    max-width: 100%;
}

    .mx_InviteDialog_multiInviterErrorWrapper .mx_Dialog .mx_Dialog_fixedWidth {
        width: auto;
    }
    .mx_InviteDialog_multiInviterError > h4 {
        font: var(--cpd-font-body-md-regular);
        color: var(--cpd-color-text-secondary);
    }

    .mx_InviteDialog_multiInviterError .mx_InviteDialog_multiInviterError_group {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-2x);
        margin-bottom: var(--cpd-space-6x);
    }

        .mx_InviteDialog_multiInviterError .mx_InviteDialog_multiInviterError_group:last-child {
            margin-bottom: 0;
        }

    .mx_InviteDialog_multiInviterError .mx_InviteDialog_multiInviterError_reason {
        margin-bottom: var(--cpd-space-2x);

        font-size: var(--cpd-font-size-body-md);
        color: var(--cpd-color-text-critical-primary);
    }

.mx_InviteDialog_identityServer {
    margin-top: 1em;
}

.mx_InviteDialog_oneThreepid {
    font-size: 0.75rem;
    margin: var(--cpd-space-2x) 0;
}
}
@layer app-web{

/*
Copyright 2025 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_InviteProgressBody {
    text-align: center;
    font: var(--cpd-font-body-lg-regular);
}

    .mx_InviteProgressBody h1 {
        color: var(--cpd-color-text-primary);
        font: var(--cpd-font-heading-sm-semibold);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_JoinRuleDropdown {
    margin-bottom: 8px;
    font: var(--cpd-font-body-md-regular);
    color: #edf3ff;
}

    .mx_JoinRuleDropdown .mx_Dropdown_option {
        font: var(--cpd-font-body-md-regular);
        line-height: 2rem;
        height: 32px;
        min-height: 32px;
    }

        .mx_JoinRuleDropdown .mx_Dropdown_option > div {
            padding-left: var(--cpd-space-1-5x);
        }

            .mx_JoinRuleDropdown .mx_Dropdown_option > div svg {
                width: 16px;
                height: 16px;
                color: #edf3ff;
                vertical-align: -2px;
                margin-right: var(--cpd-space-1-5x);
            }

            .mx_JoinRuleDropdown .mx_Dropdown_option > div.mx_JoinRuleDropdown_knock::before {
                content: normal;
            }

    .mx_JoinRuleDropdown .mx_JoinRuleDropdown_icon {
        color: #edf3ff;
        position: absolute;
        left: 6px;
        top: 8px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_LeaveSpaceDialog_wrapper .mx_Dialog {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        padding: 24px 32px;
    }

        .mx_LeaveSpaceDialog_wrapper .mx_Dialog .mx_LeaveSpaceDialog {
            width: 440px;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            -ms-flex-wrap: nowrap;
                flex-wrap: nowrap;
            height: 520px;
        }

            .mx_LeaveSpaceDialog_wrapper .mx_Dialog .mx_LeaveSpaceDialog .mx_Dialog_content {
                -webkit-box-flex: 1;
                    -ms-flex-positive: 1;
                        flex-grow: 1;
                margin: 0;
                overflow-y: auto;
            }

                .mx_LeaveSpaceDialog_wrapper .mx_Dialog .mx_LeaveSpaceDialog .mx_Dialog_content .mx_LeaveSpaceDialog_section_warning {
                    border-radius: 8px;
                    margin: 12px 0 0;
                    padding: 12px 8px;
                    background-color: #22262e;

                    font-size: 0.75rem;
                    line-height: 0.9375rem;
                    color: #edf3ff;
                }

                    .mx_LeaveSpaceDialog_wrapper .mx_Dialog .mx_LeaveSpaceDialog .mx_Dialog_content .mx_LeaveSpaceDialog_section_warning svg {
                        height: 16px;
                        width: 16px;
                        color: #edf3ff;
                        vertical-align: middle;
                        margin: 0 var(--cpd-space-1x);
                    }

                .mx_LeaveSpaceDialog_wrapper .mx_Dialog .mx_LeaveSpaceDialog .mx_Dialog_content > p {
                    color: #edf3ff;
                }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LocationViewDialog_wrapper .mx_Dialog {
    padding: 0px;
}

.mx_LocationViewDialog {
    /* subtract 0.5px to prevent single-pixel margin due to rounding */
    width: calc(80vw - 0.5px);
    height: calc(80vh - 0.5px);
    overflow: hidden;
}

    .mx_LocationViewDialog .mx_Dialog_header {
        margin: 0px;
        padding: 0px;
        position: static;
        position: initial;
    }

        .mx_LocationViewDialog .mx_Dialog_header .mx_Dialog_title {
            display: none;
        }

    .mx_LocationViewDialog .mx_Dialog_cancelButton {
        z-index: 4010;
        position: absolute;
        left: var(--cpd-space-4x);
        top: var(--cpd-space-4x);
    }

.mx_LocationViewDialog_map {
    width: 80vw;
    height: 80vh;
    border-radius: 8px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 Manan Sadana <manancodes.dev@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LogoutDialog {
    width: 26rem;
}

    .mx_LogoutDialog .mx_EncryptionCard {
        gap: 0;
    }
        .mx_LogoutDialog .mx_EncryptionCard h2 {
            text-align: center;
            color: var(--cpd-color-text-primary);
        }
        .mx_LogoutDialog .mx_EncryptionCard .mx_EncryptionCard_emphasisedContent {
            text-align: center;
            margin-top: var(--cpd-space-2x);
            margin-bottom: var(--cpd-space-12x);
        }
            .mx_LogoutDialog .mx_EncryptionCard .mx_EncryptionCard_emphasisedContent p {
                margin: 0;
            }
}
@layer app-web{

/*
Copyright 2024,2025 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_ManageRestrictedJoinRuleDialog_wrapper .mx_Dialog {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

.mx_ManageRestrictedJoinRuleDialog {
    width: 480px;
    color: #edf3ff;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    min-height: 0;
    height: 60vh;
}

    .mx_ManageRestrictedJoinRuleDialog .mx_SearchBox {
        /* To match the space around the title */
        margin: 0 0 15px 0;
        -webkit-box-flex: 0;
            -ms-flex-positive: 0;
                flex-grow: 0;
    }

    .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_content {
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
    }

    .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_noResults {
        display: block;
        margin-top: 24px;
    }
        .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_section:not(:first-child) {
            margin-top: 24px;
        }

        .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_section > h3 {
            margin: 0;
            color: #edf3ff;
            font-size: 0.75rem;
            font-weight: var(--cpd-font-weight-semibold);
            line-height: 0.9375rem;
        }

        .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_section .mx_ManageRestrictedJoinRuleDialog_entry {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            margin-top: 12px;
        }

            .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_section .mx_ManageRestrictedJoinRuleDialog_entry > div {
                -webkit-box-flex: 1;
                    -ms-flex-positive: 1;
                        flex-grow: 1;
            }

            .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_section .mx_ManageRestrictedJoinRuleDialog_entry .mx_ManageRestrictedJoinRuleDialog_entry_name {
                margin: 0 8px;
                font-size: 0.9375rem;
                line-height: 30px;
                -webkit-box-flex: 1;
                    -ms-flex-positive: 1;
                        flex-grow: 1;
                overflow: hidden;
                white-space: nowrap;
                text-overflow: ellipsis;
            }

            .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_section .mx_ManageRestrictedJoinRuleDialog_entry .mx_ManageRestrictedJoinRuleDialog_entry_description {
                margin-top: 8px;
                font-size: 0.75rem;
                line-height: 0.9375rem;
                color: #edf3ff;
            }
        .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_section_spaces .mx_BaseAvatar {
            margin-right: 12px;
        }

    .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_section_info {
        position: relative;
        border-radius: 8px;
        margin: 12px 0;
        padding: 8px;
        background-color: #22262e;

        font-size: 0.75rem;
        line-height: 0.9375rem;
        color: #edf3ff;
    }

        .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_section_info svg {
            height: 16px;
            width: 16px;
            color: #edf3ff;
            vertical-align: middle;
            margin: 0 var(--cpd-space-1x);
        }

    .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_footer {
        margin-top: 20px;
    }

        .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_footer .mx_ManageRestrictedJoinRuleDialog_footer_buttons {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            width: -webkit-max-content;
            width: -moz-max-content;
            width: max-content;
            margin-left: auto;
        }

            .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_footer .mx_ManageRestrictedJoinRuleDialog_footer_buttons .mx_AccessibleButton {
                display: inline-block;
            }

                .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_footer .mx_ManageRestrictedJoinRuleDialog_footer_buttons .mx_AccessibleButton + .mx_AccessibleButton {
                    margin-left: 24px;
                }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MessageEditHistoryDialog {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    max-height: 60vh;
}

.mx_MessageEditHistoryDialog_scrollPanel {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
}

.mx_MessageEditHistoryDialog_error {
    color: #ff5b55;
    text-align: center;
}

.mx_MessageEditHistoryDialog_edits {
    list-style-type: none;
    font: var(--cpd-font-body-md-regular);
    padding: 0;
    color: #edf3ff;
}

    .mx_MessageEditHistoryDialog_edits .mx_EditHistoryMessage_emoteSender {
        cursor: pointer;
    }

    .mx_MessageEditHistoryDialog_edits span.mx_EditHistoryMessage_deletion,
    .mx_MessageEditHistoryDialog_edits span.mx_EditHistoryMessage_insertion {
        padding: 0px 2px;
    }

    .mx_MessageEditHistoryDialog_edits .mx_EditHistoryMessage_deletion {
        color: rgb(255, 76, 85);
        background-color: rgb(255, 76, 85, 0.1);
        text-decoration: line-through;
    }

    .mx_MessageEditHistoryDialog_edits .mx_EditHistoryMessage_insertion {
        color: rgb(26, 169, 123);
        background-color: rgb(26, 169, 123, 0.1);
        text-decoration: underline;
    }

    /* Emulate mx_EventTile[data-layout="group"] */
    .mx_MessageEditHistoryDialog_edits .mx_EventTile {
        padding-top: 0;
    }

        .mx_MessageEditHistoryDialog_edits .mx_EventTile .mx_MessageTimestamp {
            position: absolute;
            left: 0;
            text-align: center;
        }

        .mx_MessageEditHistoryDialog_edits .mx_EventTile .mx_EventTile_line {
            padding-top: var(--EventTile_group_line-spacing-block-start);
            padding-bottom: var(--EventTile_group_line-spacing-block-end);
            padding-left: var(--EventTile_group_line-spacing-inline-start);
            line-height: var(--EventTile_group_line-line-height);
        }

            .mx_MessageEditHistoryDialog_edits .mx_EventTile .mx_EventTile_line .mx_EventTile_content {
                margin-right: 0px;
            }
        .mx_MessageEditHistoryDialog_edits .mx_EventTile::before {
            content: "";
            position: absolute;
            top: -1px;
            bottom: -1px;
            left: -10px;
            right: -10px;
            z-index: -1;
            border-radius: 4px;
        }
            .mx_MessageEditHistoryDialog_edits .mx_EventTile:hover::before {
                background: #1c2026;
            }

    .mx_MessageEditHistoryDialog_edits .mx_HistoryActionBar {
        border-radius: 0 !important;
    }

    .mx_MessageEditHistoryDialog_edits .mx_HistoryActionBar [data-presentation="label"] {
        line-height: 24px !important;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_ModalWidgetDialog .mx_ModalWidgetDialog_warning {
        margin-bottom: 24px;
    }

        .mx_ModalWidgetDialog .mx_ModalWidgetDialog_warning > img {
            vertical-align: middle;
            margin-right: 8px;
        }

    .mx_ModalWidgetDialog .mx_ModalWidgetDialog_buttons {
        float: right;
        margin-top: 24px;
    }

        .mx_ModalWidgetDialog .mx_ModalWidgetDialog_buttons .mx_AccessibleButton + .mx_AccessibleButton {
            margin-left: 8px;
        }

    .mx_ModalWidgetDialog iframe {
        width: 100%;
        height: 450px;
        border: 0;
        border-radius: 8px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_PollCreateDialog .mx_PollCreateDialog_busy {
        position: absolute;
        inset: 0;
        background-color: rgba(24,27,33, 0.85);
        z-index: 1;
    }

    .mx_PollCreateDialog h2 {
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 0.9375rem;
        line-height: 1.5rem;
        margin-top: 0;
        margin-bottom: 8px;
    }

        .mx_PollCreateDialog h2:nth-child(n + 2) {
            margin-top: 20px;
        }

    .mx_PollCreateDialog p {
        color: #edf3ff;
    }

    .mx_PollCreateDialog .mx_PollCreateDialog_option {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        margin-top: 11px;
        margin-bottom: 16px; /* 11px from the top will collapse, so this creates a 16px gap between options */
    }

        .mx_PollCreateDialog .mx_PollCreateDialog_option .mx_Field {
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
            margin: 0;
        }

        .mx_PollCreateDialog .mx_PollCreateDialog_option .mx_PollCreateDialog_removeOption {
            margin-left: 12px;
            width: 16px;
            height: 16px;
            padding: var(--cpd-space-0-5x);
            border-radius: 50%;
            background-color: #6f7882;
            cursor: pointer;
        }

            .mx_PollCreateDialog .mx_PollCreateDialog_option .mx_PollCreateDialog_removeOption svg {
                width: inherit;
                height: inherit;
                color: #edf3ff;
            }

    .mx_PollCreateDialog .mx_PollCreateDialog_addOption {
        padding: 0;
        margin-bottom: 40px; /* arbitrary to create scrollable area under the poll */
    }

    .mx_PollCreateDialog .mx_AccessibleButton_disabled {
        opacity: 0.4;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RegistrationEmailPromptDialog {
    width: 417px;
}

    .mx_RegistrationEmailPromptDialog .mx_Dialog_content {
        margin-bottom: 24px;
        color: #edf3ff;
    }

    .mx_RegistrationEmailPromptDialog .mx_Dialog_primary {
        width: 100%;
    }
}
@layer app-web{

/*
 * Copyright 2026 Element Creations Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_RemoveSectionDialog {
    color: var(--cpd-color-text-primary);
}
}
@layer app-web{

/*
Copyright 2025 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_ReportRoomDialog textarea, .mx_DeclineAndBlockInviteDialog textarea {
        font: var(--cpd-font-body-md-regular);
        border: 1px solid var(--cpd-color-border-interactive-primary);
        background: var(--cpd-color-bg-canvas-default);
        border-radius: 0.5rem;
        padding: var(--cpd-space-3x) var(--cpd-space-4x);
    }

    /*
      Workaround to fix labels appearing with the wrong color.

      .mx_Dialog (in res/css/_common.pcss) redefines the body color
      as $light-fg-color rather than the standard primary color.

      This forces the colour to match the Compound style, but
      in the future the Dialogs should not force a color.
    */
    .mx_ReportRoomDialog form label, .mx_DeclineAndBlockInviteDialog form label {
        color: var(--cpd-color-text-primary);
    }
    .mx_DeclineAndBlockInviteDialog div[aria-disabled="true"] > label {
        color: var(--cpd-color-text-secondary);
    }

    .mx_DeclineAndBlockInviteDialog .mx_SettingsFlag_label {
        color: var(--cpd-color-text-primary);
        font-weight: var(--cpd-font-weight-semibold);
    }
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomSettingsDialog .mx_Dialog_title {
    -ms-text-overflow: ellipsis;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
    margin: 0 auto;
    padding-right: 80px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomSettingsDialog_BridgeList {
    padding: 0;
}

    .mx_RoomSettingsDialog_BridgeList li {
        list-style-type: none;
    }

        .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -ms-flex-wrap: wrap;
                flex-wrap: wrap;
            gap: var(--cpd-space-2x);
            padding: 5px;
            margin-bottom: var(--cpd-space-2x);

            /* border-style around each bridge list item */
            border-width: 1px 1px;
            border-color: #000000;
            border-style: solid;
            border-radius: 5px;
        }
                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_icon .mx_RoomSettingsDialog_protocolIcon,
                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_icon .mx_RoomSettingsDialog_protocolIcon span,
                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_icon .mx_RoomSettingsDialog_noProtocolIcon {
                    -webkit-box-sizing: border-box;
                            box-sizing: border-box;
                    border-radius: 5px;
                    border: 1px solid #181b21;
                }

                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_icon .mx_RoomSettingsDialog_noProtocolIcon,
                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_icon .mx_RoomSettingsDialog_protocolIcon img {
                    border-radius: 5px;
                }

                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_icon .mx_RoomSettingsDialog_noProtocolIcon {
                    width: 48px;
                    height: 48px;
                    background: #181b21;
                }
                    .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_icon .mx_RoomSettingsDialog_protocolIcon img {
                        border-width: 1px 1px;
                        border-color: #000000;
                    }

                    .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_icon .mx_RoomSettingsDialog_protocolIcon span {
                        /* Correct letter placement */
                        left: auto;
                    }

            .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data {
                display: inline-block;
                width: 85%;
            }

                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_column_data_details,
                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_column_data_metadata,
                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_column_data_metadata li,
                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_column_data_protocolName {
                    margin-bottom: 0;
                }

                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_column_data_details,
                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_column_data_metadata {
                    margin-top: var(--cpd-space-1x);
                }

                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_column_data_metadata li {
                    margin-top: var(--cpd-space-2x);
                }

                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_column_data_protocolName {
                    margin-top: 0;
                    font-size: 16pt;
                    color: #edf3ff;
                }

                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_workspace_channel_details {
                    color: #edf3ff;
                    font-weight: var(--cpd-font-weight-semibold);
                }

                    .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_workspace_channel_details .mx_RoomSettingsDialog_channel {
                        -webkit-margin-start: 5px;
                                margin-inline-start: 5px;
                    }

                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_metadata {
                    color: #a1b2d1;
                    margin-bottom: 0;
                    overflow-y: visible;
                    text-overflow: ellipsis;
                    white-space: normal;
                    padding: 0;
                }
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomUpgradeDialog {
    padding-right: 70px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019-2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomUpgradeWarningDialog {
    max-width: 38vw;
    width: 38vw;
}
        .mx_RoomUpgradeWarningDialog .mx_RoomUpgradeWarningDialog_progress .mx_ProgressBar {
            height: 8px;
            width: 100%;

            border-radius: 8px;
        }

            .mx_RoomUpgradeWarningDialog .mx_RoomUpgradeWarningDialog_progress .mx_ProgressBar::-moz-progress-bar {
        border-radius: 8px;
    }

            .mx_RoomUpgradeWarningDialog .mx_RoomUpgradeWarningDialog_progress .mx_ProgressBar::-webkit-progress-bar,
    .mx_RoomUpgradeWarningDialog .mx_RoomUpgradeWarningDialog_progress .mx_ProgressBar::-webkit-progress-value {
        border-radius: 8px;
    }

        .mx_RoomUpgradeWarningDialog .mx_RoomUpgradeWarningDialog_progress .mx_RoomUpgradeWarningDialog_progressText {
            margin-top: 8px;
            font-size: 0.9375rem;
            line-height: 1.5rem;
            color: #edf3ff;
        }

.mx_RoomUpgradeWarningDialog .mx_SettingsFlag {
    font-weight: 700;
}

    .mx_RoomUpgradeWarningDialog .mx_SettingsFlag .mx_ToggleSwitch {
        display: inline-block;
        vertical-align: middle;
        margin-left: 8px;
        float: right;
    }

    .mx_RoomUpgradeWarningDialog .mx_SettingsFlag .mx_SettingsFlag_label {
        display: inline-block;
        vertical-align: middle;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content {
        padding-right: 85px;
        color: #edf3ff;
    }

        .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content hr {
            border-color: #edf3ff;
            opacity: 0.1;
            border-bottom: none;
        }

        .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content ul {
            padding: 16px;
        }

            .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content ul li:nth-child(n + 2) {
                margin-top: 16px;
            }
            .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content .mx_ServerOfflineDialog_content_context .mx_ServerOfflineDialog_content_context_timestamp {
                display: inline-block;
                width: 115px;
                color: #a1b2d1;
                line-height: 24px; /* same as avatar */
                vertical-align: top;
            }

            .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content .mx_ServerOfflineDialog_content_context .mx_ServerOfflineDialog_content_context_timeline {
                display: inline-block;
                width: calc(100% - 155px); /* 115px timestamp width + 40px right margin */
            }
                    .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content .mx_ServerOfflineDialog_content_context .mx_ServerOfflineDialog_content_context_timeline .mx_ServerOfflineDialog_content_context_timeline_header span {
                        margin-left: 8px;
                        vertical-align: middle;
                    }

                .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content .mx_ServerOfflineDialog_content_context .mx_ServerOfflineDialog_content_context_timeline .mx_ServerOfflineDialog_content_context_txn {
                    position: relative;
                    margin-top: 8px;
                }

                    .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content .mx_ServerOfflineDialog_content_context .mx_ServerOfflineDialog_content_context_timeline .mx_ServerOfflineDialog_content_context_txn .mx_ServerOfflineDialog_content_context_txn_desc {
                        width: calc(100% - 100px); /* 100px is an arbitrary margin for the button */
                    }

                    .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content .mx_ServerOfflineDialog_content_context .mx_ServerOfflineDialog_content_context_timeline .mx_ServerOfflineDialog_content_context_txn .mx_AccessibleButton {
                        float: right;
                    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ServerPickerDialog {
    width: 468px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

    .mx_ServerPickerDialog .mx_Dialog_content {
        margin-bottom: 0;
    }

        .mx_ServerPickerDialog .mx_Dialog_content > p {
            color: #edf3ff;
            font: var(--cpd-font-body-md-regular);

            margin: 16px 0;
        }

            .mx_ServerPickerDialog .mx_Dialog_content > p:first-of-type {
                margin-bottom: 40px;
            }

            .mx_ServerPickerDialog .mx_Dialog_content > p:last-of-type {
                margin: 0 24px 24px;
            }

        .mx_ServerPickerDialog .mx_Dialog_content > h2 {
            font-size: 0.9375rem;
            font-weight: var(--cpd-font-weight-semibold);
            color: #edf3ff;
            margin: 16px 0 16px 8px;
        }

        .mx_ServerPickerDialog .mx_Dialog_content > a {
            color: #0dbd8b;
            margin-left: 8px;
        }
        .mx_ServerPickerDialog .mx_ServerPickerDialog_otherHomeserverRadio input[type="radio"] + div {
            margin-top: auto;
            margin-bottom: auto;
        }

    .mx_ServerPickerDialog .mx_ServerPickerDialog_otherHomeserver {
        border-top: none;
        border-left: none;
        border-right: none;
        border-radius: 0;
        border-radius: initial;
    }

        .mx_ServerPickerDialog .mx_ServerPickerDialog_otherHomeserver > input {
            padding-left: 0;
        }

        .mx_ServerPickerDialog .mx_ServerPickerDialog_otherHomeserver > label {
            margin-left: 0;
        }

    .mx_ServerPickerDialog .mx_AccessibleButton_kind_primary {
        width: calc(100% - 26px);
        margin: 0 8px;
        padding: 15px 18px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2017 Vector Creations Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SetEmailDialog_email_input {
    border-radius: 3px;
    border: 1px solid #e7e7e7;
    padding: 9px;
    color: rgba(74, 74, 74, 0.9);
    background-color: #181b21;
    font-size: 0.9375rem;
    width: 100%;
    max-width: 280px;
    margin-bottom: 10px;
}

.mx_SetEmailDialog_email_input:focus {
    outline: none;
    -webkit-box-shadow: none;
            box-shadow: none;
    border: 1px solid #0dbd8b;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/* Not actually a component but things shared by settings components */
.mx_UserSettingsDialog,
.mx_RoomSettingsDialog,
.mx_SpaceSettingsDialog,
.mx_SpacePreferencesDialog {
    width: 90vw;
    max-width: 980px;
    /* set the height too since tabbed view scrolls itself. */
    height: 80vh;
}

    .mx_UserSettingsDialog .mx_TabbedView, .mx_RoomSettingsDialog .mx_TabbedView, .mx_SpaceSettingsDialog .mx_TabbedView, .mx_SpacePreferencesDialog .mx_TabbedView {
        top: 90px;
    }

    .mx_UserSettingsDialog .mx_TabbedView .mx_SettingsTab, .mx_RoomSettingsDialog .mx_TabbedView .mx_SettingsTab, .mx_SpaceSettingsDialog .mx_TabbedView .mx_SettingsTab, .mx_SpacePreferencesDialog .mx_TabbedView .mx_SettingsTab {
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        min-width: 580px;
        padding-right: 100px;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;

        /* Put some padding on the bottom to avoid the settings tab from */
        /* colliding harshly with the dialog when scrolled down. */
        padding-bottom: 100px;
    }

    .mx_UserSettingsDialog .mx_SettingsDialog_tabLabelsAlert::after, .mx_RoomSettingsDialog .mx_SettingsDialog_tabLabelsAlert::after, .mx_SpaceSettingsDialog .mx_SettingsDialog_tabLabelsAlert::after, .mx_SpacePreferencesDialog .mx_SettingsDialog_tabLabelsAlert::after {
        display: inline-block;
        content: "";
        width: 8px;
        height: 8px;
        background-color: var(--cpd-color-icon-critical-primary);
        clip-path: circle(4px);
        position: absolute;
        right: var(--cpd-space-4x);
    }

/* On narrow viewports, the tab labels are hidden, so we need to shift the indicator so it isn't over the tab icon. */
@media (max-width: 1024px) {
        .mx_UserSettingsDialog .mx_SettingsDialog_tabLabelsAlert::after, .mx_RoomSettingsDialog .mx_SettingsDialog_tabLabelsAlert::after, .mx_SpaceSettingsDialog .mx_SettingsDialog_tabLabelsAlert::after, .mx_SpacePreferencesDialog .mx_SettingsDialog_tabLabelsAlert::after {
            right: var(--cpd-space-1x);
            top: var(--cpd-space-1x);
        }
}
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ShareDialog {
    /* Value from figma design */
    width: 416px;
}

    .mx_ShareDialog .mx_Dialog_header {
        text-align: center;
        margin-bottom: var(--cpd-space-6x);
        /* Override dialog header padding to able to center it */
        -webkit-padding-end: 0;
                padding-inline-end: 0;
    }

    .mx_ShareDialog .mx_ShareDialog_content {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-6x);
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

        .mx_ShareDialog .mx_ShareDialog_content .mx_ShareDialog_top {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            gap: var(--cpd-space-4x);
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            width: 100%;
        }

            .mx_ShareDialog .mx_ShareDialog_content .mx_ShareDialog_top span {
                text-align: center;
                font: var(--cpd-font-body-sm-semibold);
                color: var(--cpd-color-text-secondary);
                text-overflow: ellipsis;
                white-space: nowrap;
                overflow: hidden;
                width: 100%;
            }

        .mx_ShareDialog .mx_ShareDialog_content label {
            display: -webkit-inline-box;
            display: -ms-inline-flexbox;
            display: inline-flex;
            gap: var(--cpd-space-3x);
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            font: var(--cpd-font-body-md-medium);
        }

        .mx_ShareDialog .mx_ShareDialog_content button {
            width: 100%;
        }

        .mx_ShareDialog .mx_ShareDialog_content .mx_ShareDialog_social {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            gap: var(--cpd-space-3x);
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
        }

            .mx_ShareDialog .mx_ShareDialog_content .mx_ShareDialog_social a {
                width: 48px;
                height: 48px;
                border-radius: 99px;
                -webkit-box-sizing: border-box;
                        box-sizing: border-box;
                border: 1px solid var(--cpd-color-border-interactive-secondary);
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-pack: center;
                    -ms-flex-pack: center;
                        justify-content: center;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
            }

                .mx_ShareDialog .mx_ShareDialog_content .mx_ShareDialog_social a img {
                    width: 24px;
                    height: 24px;
                }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SlashCommandHelpDialog .mx_SlashCommandHelpDialog_headerRow h2 {
    margin-bottom: 2px;
}

.mx_SlashCommandHelpDialog .mx_Dialog_content {
    margin-top: 12px;
    margin-bottom: 34px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SpacePreferencesDialog {
    width: 700px;
    height: 400px;
}

    .mx_SpacePreferencesDialog > h4 {
        margin: -12px 0 0;
        font-weight: normal;
        font-size: 0.9375rem;
        line-height: 1.5rem;
        color: #edf3ff;
    }

    .mx_SpacePreferencesDialog .mx_TabbedView {
        top: 80px;
    }

        .mx_SpacePreferencesDialog .mx_TabbedView .mx_SettingsTab {
            min-width: 0;
            min-width: initial;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SpaceSettingsDialog {
    color: #edf3ff;
}

    .mx_SpaceSettingsDialog .mx_SpaceSettings_errorText {
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 0.75rem;
        line-height: 0.9375rem;
        color: #ff5b55;
        margin-bottom: 28px;
    }

    .mx_SpaceSettingsDialog .mx_ToggleSwitch {
        display: inline-block;
        vertical-align: middle;
        margin-left: 16px;
    }
        .mx_SpaceSettingsDialog .mx_SettingsTab_section .mx_SettingsTab_section_caption {
            margin-top: 12px;
            margin-bottom: 20px;
        }

        .mx_SpaceSettingsDialog .mx_SettingsTab_section .mx_StyledRadioButton {
            margin-top: 8px;
            margin-bottom: 4px;
        }

            .mx_SpaceSettingsDialog .mx_SettingsTab_section .mx_StyledRadioButton .mx_StyledRadioButton_content {
                font-weight: var(--cpd-font-weight-semibold);
                line-height: 1.125rem;
                color: #edf3ff;
            }

            .mx_SpaceSettingsDialog .mx_SettingsTab_section .mx_StyledRadioButton + span {
                font-size: 0.9375rem;
                line-height: 1.125rem;
                color: #edf3ff;
                margin-left: 26px;
            }

    .mx_SpaceSettingsDialog .mx_SpaceSettingsDialog_buttons {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        margin-top: 64px;
    }

        .mx_SpaceSettingsDialog .mx_SpaceSettingsDialog_buttons .mx_AccessibleButton {
            display: inline-block;
        }

        .mx_SpaceSettingsDialog .mx_SpaceSettingsDialog_buttons .mx_AccessibleButton_kind_link {
            margin-left: auto;
        }
        .mx_SpaceSettingsDialog .mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_link {
            font: var(--cpd-font-body-md-semibold);
            margin: 7px 18px;
        }

            .mx_SpaceSettingsDialog .mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_link.mx_SettingsTab_showAdvanced {
                margin: 18px 0;
            }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_SpotlightDialog_wrapper .mx_Dialog_border {
        /* Disable the glass border as this dialog wasn't designed with it in mind */
        display: contents;
    }

    .mx_SpotlightDialog_wrapper .mx_Dialog {
        /* !important because it's overriding compound  */
        width: -webkit-fit-content !important;
        width: -moz-fit-content !important;
        width: fit-content !important;
        border-radius: 8px !important;
        height: 60% !important;
        overflow-y: visible;
        overflow-y: initial;
        position: relative;
        padding: 0;
        contain: unset; /* needed for #mx_SpotlightDialog_keyboardPrompt to not be culled */
    }

        .mx_SpotlightDialog_wrapper .mx_Dialog #mx_SpotlightDialog_keyboardPrompt {
            position: absolute;
            padding: var(--cpd-space-2x);
            border-radius: 8px;
            background-color: #181b21;
            top: -60px; /* relative to the top of the modal */
            left: 50%;
            -webkit-transform: translateX(-50%);
                    transform: translateX(-50%);
            font-size: 0.75rem;
            line-height: 0.9375rem;
            color: #edf3ff;
        }

            .mx_SpotlightDialog_wrapper .mx_Dialog #mx_SpotlightDialog_keyboardPrompt kbd {
                display: inline-block;
                padding: 2px var(--cpd-space-1x);
                margin: 0 var(--cpd-space-1x);
                border-radius: 6px;
                background-color: #6f7882;
                vertical-align: middle;
                color: #edf3ff;
                /* To avoid any styling inherent with <kbd> elements */
                font-family: inherit;
                font-weight: inherit;
                font-size: inherit;
            }

.mx_SpotlightDialog {
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

    .mx_SpotlightDialog .mx_Dialog_header {
        display: none;
    }

    .mx_SpotlightDialog .mx_SpotlightDialog_searchBox {
        margin: 0;
        border: none;
        border-radius: 8px 8px 0 0;
        padding: var(--cpd-space-3x) var(--cpd-space-4x);
        border-bottom: 1px solid #21262c;
    }

        .mx_SpotlightDialog .mx_SpotlightDialog_searchBox > .mx_SpotlightDialog_filter {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -ms-flex-line-pack: center;
                align-content: center;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            border-radius: 8px;
            margin-right: var(--cpd-space-2x);
            background-color: #6f7882;
            vertical-align: middle;
            color: #edf3ff;
            position: relative;
            padding: var(--cpd-space-1x) var(--cpd-space-2x) var(--cpd-space-1x) 37px;
        }

            .mx_SpotlightDialog .mx_SpotlightDialog_searchBox > .mx_SpotlightDialog_filter > svg {
                color: #edf3ff;
                width: 18px;
                height: 18px;
                position: absolute;
                left: var(--cpd-space-2x);
                top: 50%;
                -webkit-transform: translateY(-50%);
                        transform: translateY(-50%);
            }

            .mx_SpotlightDialog .mx_SpotlightDialog_searchBox > .mx_SpotlightDialog_filter .mx_SpotlightDialog_filter--close {
                display: inline-block;
                width: 14px;
                height: 14px;
                padding: 1px;
                background: #21262c;
                border-radius: 8px;
                margin-left: var(--cpd-space-2x);
                text-align: center;
                line-height: 16px;
                color: #edf3ff;
            }

                .mx_SpotlightDialog .mx_SpotlightDialog_searchBox > .mx_SpotlightDialog_filter .mx_SpotlightDialog_filter--close svg {
                    color: #edf3ff;
                    width: inherit;
                    height: inherit;
                }

        .mx_SpotlightDialog .mx_SpotlightDialog_searchBox > input {
            display: block;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
            background-color: transparent;
            width: 100%;
            height: 32px;
            padding: 0;
            color: #edf3ff;
            font-weight: normal;
            font-size: 0.9375rem;
            line-height: 1.5rem;
        }

        .mx_SpotlightDialog .mx_SpotlightDialog_searchBox > .mx_Spinner {
            -webkit-box-flex: 0;
                -ms-flex-positive: 0;
                    flex-grow: 0;
            width: auto;
            width: initial;
            height: auto;
            height: initial;
            margin-left: var(--cpd-space-4x);
        }

        .mx_SpotlightDialog .mx_SpotlightDialog_searchBox:not(:focus-within) + #mx_SpotlightDialog_content {
            /* Inhibit the styling if focus is not within the input which handles keyboard accessibility */
            --mx_SpotlightDialog_option_selectedBgColor: transparent;
        }

            /* Hide the enter prompt as in this state pressing enter would not actuate that option */
            .mx_SpotlightDialog .mx_SpotlightDialog_searchBox:not(:focus-within) + #mx_SpotlightDialog_content .mx_SpotlightDialog_enterPrompt {
                visibility: hidden;
            }

    .mx_SpotlightDialog #mx_SpotlightDialog_content {
        height: 100%;
        overflow-y: auto;
        padding: var(--cpd-space-4x);
    }

        .mx_SpotlightDialog #mx_SpotlightDialog_content ul {
            padding: 0;
            margin: 0;
        }
            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_section > h4,
            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_section > .mx_SpotlightDialog_sectionHeader > h4 {
                font-weight: var(--cpd-font-weight-semibold);
                font-size: 0.75rem;
                line-height: 0.9375rem;
                color: #edf3ff;
                margin: 0;
            }

            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_section > h4 {
                margin-bottom: var(--cpd-space-2x);
            }

            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_section .mx_SpotlightDialog_sectionHeader {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-pack: justify;
                    -ms-flex-pack: justify;
                        justify-content: space-between;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
                margin-bottom: var(--cpd-space-2x);
            }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_section .mx_SpotlightDialog_sectionHeader .mx_SpotlightDialog_options {
                    display: -webkit-box;
                    display: -ms-flexbox;
                    display: flex;
                    gap: var(--cpd-space-1x);
                }

            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_section + .mx_SpotlightDialog_section {
                margin-top: var(--cpd-space-6x);
            }

        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_option {
            border-radius: 8px;
            overflow: hidden;
            text-overflow: ellipsis;
        }

            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_option:hover,
            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_option[aria-selected="true"] {
                background-color: #6f7882;
                background-color: var(--mx_SpotlightDialog_option_selectedBgColor, #6f7882);
            }
            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentlyViewed > div {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                white-space: nowrap;
                overflow-x: hidden;
                margin-right: 1px; /* occlude the 1px visible of the very next tile to prevent it looking broken */
            }

            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentlyViewed .mx_SpotlightDialog_option {
                padding: var(--cpd-space-1x);
                color: #edf3ff;
                font-size: 0.75rem;
                line-height: 0.9375rem;
                display: inline-block;
                width: 58px;
                height: 58px;
                min-width: 58px;
                -webkit-box-sizing: border-box;
                        box-sizing: border-box;
                text-align: center;
            }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentlyViewed .mx_SpotlightDialog_option .mx_DecoratedRoomAvatar {
                    margin: 0 9px var(--cpd-space-1x); /* maintain centering */
                }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentlyViewed .mx_SpotlightDialog_option + .mx_SpotlightDialog_option {
                    margin-left: var(--cpd-space-4x);
                }
            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option {
                --mx_SpotlightDialog_option_selectedBgColor: #21262c;

                padding: 6px var(--cpd-space-1x);
                font-size: 0.9375rem;
                line-height: 1.5rem;
                color: #edf3ff;
                position: relative;
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
                white-space: nowrap;
            }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_option--endAdornment, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--endAdornment, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--endAdornment, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_option--endAdornment {
                    display: -webkit-inline-box;
                    display: -ms-inline-flexbox;
                    display: inline-flex;
                    -webkit-box-orient: horizontal;
                    -webkit-box-direction: normal;
                        -ms-flex-direction: row;
                            flex-direction: row;
                    margin-left: auto;
                    -webkit-box-align: start;
                        -ms-flex-align: start;
                            align-items: flex-start;
                }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline {
                    -webkit-box-align: start;
                        -ms-flex-align: start;
                            align-items: flex-start;
                }

                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline .mx_AccessibleButton, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline .mx_AccessibleButton, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline .mx_AccessibleButton, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline .mx_AccessibleButton {
                        padding: var(--cpd-space-1x) var(--cpd-space-5x);
                        margin: 2px var(--cpd-space-1x);
                    }

                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline .mx_SpotlightDialog_enterPrompt, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline .mx_SpotlightDialog_enterPrompt, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline .mx_SpotlightDialog_enterPrompt, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline .mx_SpotlightDialog_enterPrompt {
                        margin-top: 9px;
                        margin-right: var(--cpd-space-2x);
                    }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_result_name, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_name, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_name, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_result_name {
                    min-width: 0;
                    overflow: hidden;
                    text-overflow: ellipsis;
                }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option > .mx_SpotlightDialog_metaspaceResult,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option > .mx_DecoratedRoomAvatar,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option > .mx_BaseAvatar,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option > .mx_SpotlightDialog_metaspaceResult,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option > .mx_DecoratedRoomAvatar,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option > .mx_BaseAvatar,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option > .mx_SpotlightDialog_metaspaceResult,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option > .mx_DecoratedRoomAvatar,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option > .mx_BaseAvatar,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option > .mx_SpotlightDialog_metaspaceResult,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option > .mx_DecoratedRoomAvatar,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option > .mx_BaseAvatar {
                    margin-right: var(--cpd-space-2x);
                    width: 24px;
                    height: 24px;
                    -ms-flex-negative: 0;
                        flex-shrink: 0;
                }

                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option > .mx_SpotlightDialog_metaspaceResult .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option > .mx_DecoratedRoomAvatar .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option > .mx_BaseAvatar .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option > .mx_SpotlightDialog_metaspaceResult .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option > .mx_DecoratedRoomAvatar .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option > .mx_BaseAvatar .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option > .mx_SpotlightDialog_metaspaceResult .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option > .mx_DecoratedRoomAvatar .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option > .mx_BaseAvatar .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option > .mx_SpotlightDialog_metaspaceResult .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option > .mx_DecoratedRoomAvatar .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option > .mx_BaseAvatar .mx_BaseAvatar {
                        width: inherit;
                        height: inherit;
                    }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails {
                    display: -webkit-box;
                    display: -ms-flexbox;
                    display: flex;
                    -webkit-box-orient: vertical;
                    -webkit-box-direction: normal;
                        -ms-flex-direction: column;
                            flex-direction: column;
                    -webkit-box-flex: 1;
                        -ms-flex-positive: 1;
                            flex-grow: 1;
                    min-width: 0;
                }

                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader {
                        display: -webkit-box;
                        display: -ms-flexbox;
                        display: flex;
                        -webkit-box-orient: horizontal;
                        -webkit-box-direction: normal;
                            -ms-flex-direction: row;
                                flex-direction: row;
                        line-height: 1.5rem;
                        margin-right: var(--cpd-space-2x);
                    }

                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomName, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomName, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomName, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomName {
                            color: #edf3ff;
                            font-size: 0.9375rem;
                            overflow: hidden;
                            text-overflow: ellipsis;
                        }
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias {
                            color: #edf3ff;
                            font-size: 0.75rem;
                            margin-left: var(--cpd-space-2x);
                            overflow: hidden;
                            text-overflow: ellipsis;
                        }
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription {
                        color: #edf3ff;
                        font-size: 0.75rem;
                        white-space: normal;
                        word-wrap: break-word;
                        line-height: 1.25rem;
                        display: -webkit-box;
                        -webkit-box-orient: vertical;
                        -webkit-line-clamp: 3;
                        overflow: hidden;
                    }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_notificationBadge, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_notificationBadge, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_notificationBadge, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_notificationBadge {
                    margin-left: var(--cpd-space-2x);
                }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications {
                    width: 16px;
                    height: 16px;
                    padding: var(--cpd-space-0-5x);
                    -ms-flex-negative: 0;
                        flex-shrink: 0;
                    margin-top: auto;
                    margin-bottom: auto;
                    position: relative;
                    display: none;
                }

                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu svg, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications svg, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu svg, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications svg, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu svg, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications svg, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu svg, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications svg {
                        width: inherit;
                        height: inherit;
                        display: block;
                        color: #edf3ff;
                    }

                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu:hover svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu:focus-visible svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications:hover svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications:focus-visible svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu:hover svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu:focus-visible svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications:hover svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications:focus-visible svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu:hover svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu:focus-visible svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications:hover svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications:focus-visible svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu:hover svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu:focus-visible svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications:hover svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications:focus-visible svg {
                        color: #edf3ff;
                    }
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_option--menu,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_option--notifications,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_option--menu,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_option--notifications,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_option--menu,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_option--notifications,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_option--menu,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_option--notifications,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_option--menu,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_option--notifications,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_option--menu,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_option--notifications,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_option--menu,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_option--notifications,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_option--menu,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_option--notifications {
                        display: block;
                    }

                    /* $secondary-content/$tertiary-content do not have enough contrast against
                       the hover background ($quinary-content) to meet WCAG AA (4.5:1). */
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription {
                            color: #edf3ff;
                        }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_enterPrompt, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_enterPrompt, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_enterPrompt, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_enterPrompt {
                    display: inline-block;
                }

        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_inviteLink,
        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_createRoom {
            margin-top: var(--cpd-space-2x);
        }

            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_inviteLink .mx_AccessibleButton, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_createRoom .mx_AccessibleButton {
                position: relative;
                margin: 0;
                padding: 3px var(--cpd-space-2x) 3px var(--cpd-space-7x);
            }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_inviteLink .mx_AccessibleButton svg, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_createRoom .mx_AccessibleButton svg {
                    display: block;
                    position: absolute;
                    left: var(--cpd-space-2x);
                    width: 16px;
                    height: 16px;
                    color: var(--cpd-color-icon-primary);
                }
            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option {
                padding-left: var(--cpd-space-8x);
                position: relative;
            }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option svg {
                    color: #edf3ff;
                    width: 24px;
                    height: 24px;
                    position: absolute;
                    left: var(--cpd-space-1x);
                    top: 50%;
                    -webkit-transform: translateY(-50%);
                            transform: translateY(-50%);
                }

            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_otherSearches_messageSearchText {
                font-size: 0.9375rem;
                line-height: 1.5rem;
            }

        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_result_details {
            margin-left: var(--cpd-space-2x);
            margin-right: var(--cpd-space-2x);
            color: #edf3ff;
            font-size: 0.75rem;
            line-height: 0.9375rem;
            min-width: 0;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches > h4 > .mx_AccessibleButton_kind_link {
            float: right;
            font-size: 0.75rem;
            line-height: 0.9375rem;
            color: #edf3ff;
        }

        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_enterPrompt {
            padding: 2px var(--cpd-space-1x);
            /* To avoid any styling inherent with <kbd> elements */
            font-family: inherit;
            font-weight: inherit;
            font-size: 0.75rem;
            line-height: 0.9375rem;
            color: #edf3ff;
            border-radius: 6px;
            background-color: #6f7882;
            margin-right: var(--cpd-space-1x);
            display: none;
        }

        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_metaspaceResult svg {
            color: #edf3ff;
            width: inherit;
            height: inherit;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/*
 * To avoid visual glitching of two modals stacking briefly, we customise the
 * terms dialog sizing when it will appear for the integration manager so that
 * it gets the same basic size as the IM's own modal.
 */
.mx_TermsDialog_forIntegrationManager .mx_Dialog_border {
    width: 60%;
    height: 70%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

.mx_TermsDialog_termsTableHeader {
    font-weight: bold;
    text-align: left;
}

.mx_TermsDialog_termsTable {
    font-size: 0.75rem;
    width: 100%;
}

.mx_TermsDialog_service,
.mx_TermsDialog_summary {
    padding-right: 10px;
}
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 * Copyright 2024 The Matrix.org Foundation C.I.C.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_UnpinAllDialog {
    /* 396 is coming from figma and we remove the left and right paddings of the dialog */
    width: calc(396px - (var(--cpd-space-10x) * 2));
    padding-bottom: var(--cpd-space-2x);
}

    .mx_UnpinAllDialog .mx_UnpinAllDialog_title {
        /* Override the default heading style */
        font: var(--cpd-font-heading-sm-semibold) !important;
        margin-bottom: var(--cpd-space-3x);
    }

    .mx_UnpinAllDialog .mx_UnpinAllDialog_buttons {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-4x);
        margin: var(--cpd-space-8x) var(--cpd-space-2x) 0 var(--cpd-space-2x);
    }

        .mx_UnpinAllDialog .mx_UnpinAllDialog_buttons button {
            width: 100%;
        }
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_UploadConfirmDialog_fileIcon {
    margin-right: 5px;
}

.mx_UploadConfirmDialog_previewOuter {
    text-align: center;
}

.mx_UploadConfirmDialog_previewInner {
    display: inline-block;
    text-align: left;
}

.mx_UploadConfirmDialog_imagePreview {
    max-height: 300px;
    max-width: 100%;
    border-radius: 4px;
    border: 1px solid var(--cpd-color-icon-tertiary);
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SettingsDialog_toastContainer {
    position: absolute;
    bottom: var(--cpd-space-10x);
    width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
}

.mx_UserSettingsDialog_title {
    /* Override default dialog font style */
    font: var(--cpd-font-heading-md-regular) !important;
}

    .mx_UserSettingsDialog_title .mx_UserSettingsDialog_title_strong {
        font: var(--cpd-font-heading-md-semibold);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_VerifyEMailDialog {
    height: auto;
    top: 300px;
}

    .mx_VerifyEMailDialog .mx_Dialog {
        color: #edf3ff;
        font: var(--cpd-font-body-md-regular);
        padding: var(--cpd-space-6x) var(--cpd-space-6x) var(--cpd-space-4x);
        text-align: center;
        /* !important override compound  */
        width: 485px !important;
    }

        .mx_VerifyEMailDialog .mx_Dialog h1 {
            font-size: 1.5rem;
            font-weight: var(--cpd-font-weight-semibold);
        }

        .mx_VerifyEMailDialog .mx_Dialog .mx_VerifyEMailDialog_text-light {
            color: #edf3ff;
            line-height: 20px;
        }

        .mx_VerifyEMailDialog .mx_Dialog .mx_AuthBody_did-not-receive {
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
            margin-bottom: var(--cpd-space-2x);
        }

        .mx_VerifyEMailDialog .mx_Dialog .mx_Dialog_cancelButton {
            right: 10px;
        }
}
@layer app-web{

/*
Copyright 2024,2025 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_WidgetCapabilitiesPromptDialog .text-muted {
        font-size: 0.75rem;
    }

    .mx_WidgetCapabilitiesPromptDialog .mx_Dialog_content {
        margin-bottom: 16px;
    }

    .mx_WidgetCapabilitiesPromptDialog .mx_WidgetCapabilitiesPromptDialog_cap {
        margin-top: 20px;
        font-size: 0.9375rem;
        line-height: 0.9375rem;
    }

    .mx_WidgetCapabilitiesPromptDialog .mx_Dialog_buttons {
        margin-top: 40px; /* double normal */
    }

    .mx_WidgetCapabilitiesPromptDialog .mx_SettingsFlag {
        line-height: calc(0.875rem + 7px + 7px); /* 7px top & bottom padding */
        color: #a1b2d1;
        font-size: 0.75rem;
    }

        .mx_WidgetCapabilitiesPromptDialog .mx_SettingsFlag .mx_ToggleSwitch {
            /* downsize the switch + ball */
            width: 2rem;
            height: 0.9375rem;
        }

            .mx_WidgetCapabilitiesPromptDialog .mx_SettingsFlag .mx_ToggleSwitch.mx_ToggleSwitch_on > .mx_ToggleSwitch_ball {
                left: calc(100% - 0.9375rem);
            }

            .mx_WidgetCapabilitiesPromptDialog .mx_SettingsFlag .mx_ToggleSwitch .mx_ToggleSwitch_ball {
                width: 0.9375rem;
                height: 0.9375rem;
                border-radius: 0.9375rem;
            }
}
@layer app-web{

/*
 Copyright 2026 Element Creations Ltd.

 SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 Please see LICENSE files in the repository root for full details.
*/

.mx_UnknownIdentityUsersWarningDialog {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    height: 600px; /* Consistency with InviteDialog */
}

.mx_UnknownIdentityUsersWarningDialog_headerContainer {
    /* Centre the PageHeader component horizontally */
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;

    /* Styling for the regular text inside the header */
    font: var(--cpd-font-body-lg-regular);

    /* Space before the list */
    padding-bottom: var(--cpd-space-6x);
}

.mx_UnknownIdentityUsersWarningDialog_userList {
    width: 100%;
    overflow: auto;

    /* Fill available vertical space, but don't allow it to shrink to less than 60px (about the height of a single tile) */
    -webkit-box-flex: 1;
        -ms-flex: 1 0 60px;
            flex: 1 0 60px;

    /* Remove browser default ul padding/margin */
    padding: 0;
    margin: 0;
}

.mx_UnknownIdentityUsersWarningDialog_buttons {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: var(--cpd-space-4x);
}

    .mx_UnknownIdentityUsersWarningDialog_buttons > button {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2018, 2019 , 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_AccessSecretStorageDialog.mx_EncryptionCard {
        /* override some styles that we don't need */
        border: 0px none;
        -webkit-box-shadow: none;
                box-shadow: none;
        padding: 0px;
    }
            .mx_AccessSecretStorageDialog .mx_AccessSecretStorageDialog_primaryContainer .mx_AccessSecretStorageDialog_recoveryKeyEntry input {
                /*
                * From figma: https://www.figma.com/design/ZodBLtGnKmRTGJo5SGLnH3/ER-137--Excluding-Insecure-Devices?node-id=102-43729&t=QmewENUd7f6Tmw9U-1
                */
                width: 448px;
                height: 70px;
                margin: 0px;
                border: 1px solid;
                background-color: transparent;
                color: #edf3ff;
                padding: 9px;
                font: var(--cpd-font-body-md-semibold);
                font-weight: var(--cpd-font-weight-semibold);
            }
                .mx_AccessSecretStorageDialog .mx_AccessSecretStorageDialog_primaryContainer .mx_AccessSecretStorageDialog_recoveryKeyEntry input:focus {
                    outline: none;
                    -webkit-box-shadow: none;
                            box-shadow: none;
                }
            .mx_AccessSecretStorageDialog .mx_AccessSecretStorageDialog_primaryContainer .mx_AccessSecretStorageDialog_recoveryKeyFeedback svg {
                display: inline-block;
                vertical-align: bottom;
                width: 20px;
                height: 20px;
                -webkit-mask-size: 20px;
                        mask-size: 20px;
                -webkit-margin-end: 5px;
                        margin-inline-end: 5px;
            }

            .mx_AccessSecretStorageDialog .mx_AccessSecretStorageDialog_primaryContainer .mx_AccessSecretStorageDialog_recoveryKeyFeedback.mx_AccessSecretStorageDialog_recoveryKeyFeedback--invalid {
                color: #ff5b55;
            }

                .mx_AccessSecretStorageDialog .mx_AccessSecretStorageDialog_primaryContainer .mx_AccessSecretStorageDialog_recoveryKeyFeedback.mx_AccessSecretStorageDialog_recoveryKeyFeedback--invalid svg {
                    color: #ff5b55;
                }

    .mx_AccessSecretStorageDialog .mx_EncryptionCard_buttons {
        margin-top: var(--cpd-space-20x);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CreateCrossSigningDialog {
    /* Why you ask? Because CompleteSecurityBody is 600px so this is the width */
    /* we end up when in there, but when in our own dialog we set our own width */
    /* so need to fix it to something sensible as otherwise we'd end up either */
    /* really wide or really narrow depending on the phase. I bet you wish you */
    /* never asked. */
    width: 560px;
}

    .mx_CreateCrossSigningDialog details .mx_AccessibleButton {
        margin: 1em 0; /* emulate paragraph spacing because we can't put this button in a paragraph due to HTML rules */
    }

.mx_CreateCrossSigningDialog .mx_Dialog_title {
    /* TODO: Consider setting this for all dialog titles. */
    margin-bottom: 1em;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019, 2020 The Matrix.org Foundation C.I.C.
Copyright 2018 New Vector Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CreateSecretStorageDialog {
    /* Why you ask? Because CompleteSecurityBody is 600px so this is the width */
    /* we end up when in there, but when in our own dialog we set our own width */
    /* so need to fix it to something sensible as otherwise we'd end up either */
    /* really wide or really narrow depending on the phase. I bet you wish you */
    /* never asked. */
    width: 560px;
}

    .mx_CreateSecretStorageDialog.mx_SuccessDialog {
        padding: 56px; /* 80px from design - 24px wrapper padding */
    }

        .mx_CreateSecretStorageDialog.mx_SuccessDialog .mx_Dialog_title {
            margin-bottom: var(--cpd-space-4x);
        }

    .mx_CreateSecretStorageDialog .mx_SettingsFlag {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
    }

    .mx_CreateSecretStorageDialog .mx_SettingsFlag_label {
        -webkit-box-flex: 1;
            -ms-flex: 1 1 0px;
                flex: 1 1 0;
        min-width: 0;
        font-weight: var(--cpd-font-weight-semibold);
    }

    .mx_CreateSecretStorageDialog .mx_ToggleSwitch {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        margin-left: 30px;
    }

    .mx_CreateSecretStorageDialog details .mx_AccessibleButton {
        margin: 1em 0; /* emulate paragraph spacing because we can't put this button in a paragraph due to HTML rules */
    }

.mx_CreateSecretStorageDialog .mx_Dialog_title {
    /* TODO: Consider setting this for all dialog titles. */
    margin-bottom: 1em;
}

.mx_CreateSecretStorageDialog_centeredTitle,
.mx_CreateSecretStorageDialog_centeredBody {
    text-align: center;
}

.mx_CreateSecretStorageDialog_primaryContainer {
    /* FIXME: plinth colour in new theme(s). background-color: $accent; */
    padding-top: 20px;
}

    .mx_CreateSecretStorageDialog_primaryContainer.mx_CreateSecretStorageDialog_recoveryKeyPrimarycontainer {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
    }

.mx_CreateSecretStorageDialog_primaryContainer::after {
    content: "";
    clear: both;
    display: block;
}

.mx_CreateSecretStorageDialog_primaryContainer .mx_StyledRadioButton {
    margin-bottom: 16px;
    padding: 11px;
}

.mx_CreateSecretStorageDialog_optionTitle {
    color: #edf3ff;
    font-weight: var(--cpd-font-weight-semibold);
    font-size: 1.125rem;
    padding-bottom: 10px;
}

.mx_CreateSecretStorageDialog_passPhraseContainer {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
}

.mx_Field.mx_CreateSecretStorageDialog_passPhraseField {
    margin-top: 0px;
}

.mx_CreateSecretStorageDialog_passPhraseMatch {
    width: 200px;
    margin-left: 20px;
}

.mx_CreateSecretStorageDialog_recoveryKeyContainer {
    display: inline-block;
}

.mx_CreateSecretStorageDialog_recoveryKey {
    font-weight: bold;
    text-align: center;
    padding: 20px;
    color: #888;
    background-color: #22262e;
    border-radius: 6px;
    word-spacing: 1em;
    margin-bottom: 20px;
}

    .mx_CreateSecretStorageDialog_recoveryKey code {
        display: inline-block;
        width: 30rem;
    }

.mx_CreateSecretStorageDialog_recoveryKeyButtons {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 16px;
}

.mx_CreateSecretStorageDialog_recoveryKeyButtons_copyBtn {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

.mx_CreateSecretStorageDialog_recoveryKeyButtons .mx_AccessibleButton {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    white-space: nowrap;
}

.mx_CreateSecretStorageDialog_continueSpinner {
    margin-top: 33px;
    text-align: right;
}

.mx_CreateSecretStorageDialog_continueSpinner img {
    width: 20px;
    height: 20px;
}
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_KeyBackupFailedDialog .mx_Dialog_title {
    margin-bottom: 32px;
}

.mx_KeyBackupFailedDialog_title {
    padding-bottom: 10px;
}

    .mx_KeyBackupFailedDialog_title svg {
        margin-right: var(--cpd-space-2x);
        vertical-align: -2px;
        color: #edf3ff;
    }

.mx_KeyBackupFailedDialog .mx_Dialog_buttons {
    margin-top: 36px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.
Copyright 2018 New Vector Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RestoreKeyBackupDialog_keyStatus {
    height: 30px;
}

.mx_RestoreKeyBackupDialog_primaryContainer {
    /* FIXME: plinth colour in new theme(s). background-color: $accent; */
    padding: 20px;
}

.mx_RestoreKeyBackupDialog_passPhraseInput {
    background-color: transparent;
    color: #edf3ff;
    padding: 9px;
    font: var(--cpd-font-body-md-semibold);
    font-weight: var(--cpd-font-weight-semibold);
    min-width: 0;
}
    .mx_RestoreKeyBackupDialog_passPhraseInput:focus {
        outline: none;
        -webkit-box-shadow: none;
                box-shadow: none;
    }

.mx_RestoreKeyBackupDialog_passPhraseInput,
.mx_RestoreKeyBackupDialog_recoveryKeyInput {
    width: 300px;
    border: 1px solid #0dbd8b;
    border-radius: 5px;
    padding: 10px;
}

.mx_RestoreKeyBackupDialog_content > div {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    min-height: 110px; /* Empirically measured */
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
        .mx_NetworkDropdown_wrapper .mx_ContextualMenu .mx_GenericDropdownMenu_Option.mx_GenericDropdownMenu_Option--header {
            padding-top: var(--cpd-space-3x);
            padding-bottom: var(--cpd-space-1x);
            min-width: 160px;
        }

        .mx_NetworkDropdown_wrapper .mx_ContextualMenu .mx_GenericDropdownMenu_Option.mx_GenericDropdownMenu_Option--item {
            padding-top: var(--cpd-space-1x);
            padding-bottom: var(--cpd-space-1x);
        }

            .mx_NetworkDropdown_wrapper .mx_ContextualMenu .mx_GenericDropdownMenu_Option.mx_GenericDropdownMenu_Option--item > .mx_GenericDropdownMenu_Option--label span:first-child {
                font-weight: normal;
            }

        .mx_NetworkDropdown_wrapper .mx_ContextualMenu .mx_GenericDropdownMenu_Option > .mx_GenericDropdownMenu_Option--label {
            -webkit-box-orient: horizontal;
            -webkit-box-direction: normal;
                -ms-flex-direction: row;
                    flex-direction: row;
            -webkit-box-align: baseline;
                -ms-flex-align: baseline;
                    align-items: baseline;
            -ms-flex-line-pack: baseline;
                align-content: baseline;
            color: #edf3ff;
        }

            .mx_NetworkDropdown_wrapper .mx_ContextualMenu .mx_GenericDropdownMenu_Option > .mx_GenericDropdownMenu_Option--label span:not(:first-child) {
                margin-left: var(--cpd-space-1x);
                color: #edf3ff;
            }

    .mx_NetworkDropdown_wrapper .mx_ContextualMenu .mx_GenericDropdownMenu_divider {
        margin-top: var(--cpd-space-1x);
        margin-bottom: var(--cpd-space-1x);
    }

        .mx_NetworkDropdown_wrapper .mx_ContextualMenu .mx_GenericDropdownMenu_divider + .mx_GenericDropdownMenu_Option .mx_GenericDropdownMenu_Option--label {
            font-size: 0.9375rem;
        }

.mx_NetworkDropdown_removeServer {
    position: relative;
    display: inline-block;
    width: 14px;
    height: 14px;
    padding: 1px;
    background: #6f7882;
    border-radius: 8px;
    text-align: center;
    line-height: 16px;
    color: #edf3ff;
    margin-left: auto;
}

    .mx_NetworkDropdown_removeServer svg {
        color: #edf3ff;
        height: inherit;
        width: inherit;
    }

.mx_NetworkDropdown_dialog .mx_Dialog {
    width: 45vw;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2017 Vector Creations Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AccessibleButton {
    cursor: pointer;
}

    .mx_AccessibleButton:where(button) {
        /* Clear default button styling */
        -webkit-appearance: none;
           -moz-appearance: none;
                appearance: none;
        background: none;
        border: none;
        padding: 0;
        margin: 0;
        font-size: inherit;
        font-family: inherit;
        line-height: inherit;
        -webkit-box-sizing: content-box;
                box-sizing: content-box;
    }

    .mx_AccessibleButton.mx_AccessibleButton_disabled {
        cursor: not-allowed;
    }

        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_icon_primary,
        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_icon_primary_outline,
        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_primary,
        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_primary_outline,
        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_primary_sm,
        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_link,
        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_link_accent,
        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_link_inline,
        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_danger_inline,
        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_content_inline,
        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_link_sm {
            opacity: 0.4;
        }

    .mx_AccessibleButton.mx_AccessibleButton_hasKind {
        padding: 7px 18px;
        text-align: center;
        border-radius: 24px;
        display: -webkit-inline-box;
        display: -ms-inline-flexbox;
        display: inline-flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        font: var(--cpd-font-body-md-semibold);
        border: none; /* override default <button /> styles */
        word-break: keep-all; /* prevent button text in Chinese/Japanese/Korean (CJK) from being collapsed */
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
    }

        .mx_AccessibleButton.mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_primary_sm,
        .mx_AccessibleButton.mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_danger_sm,
        .mx_AccessibleButton.mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_link_sm {
            padding: 5px 12px;
        }

        .mx_AccessibleButton.mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_primary_sm {
            color: var(--cpd-color-text-on-solid-primary);
            background-color: var(--cpd-color-bg-action-primary-rest);
            border: 1px solid var(--cpd-color-bg-action-primary-rest);
        }

        .mx_AccessibleButton.mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_danger_sm {
            color: var(--cpd-color-text-on-solid-primary);
            background-color: var(--cpd-color-bg-critical-primary);
            border: 1px solid var(--cpd-color-bg-critical-primary);
        }

        .mx_AccessibleButton.mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_link_sm {
            color: var(--cpd-color-text-primary);
            text-decoration: underline;
            font-weight: var(--cpd-font-weight-semibold);
        }

        .mx_AccessibleButton.mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_icon,
        .mx_AccessibleButton.mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_icon_primary,
        .mx_AccessibleButton.mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_icon_primary_outline {
            padding: 0;
            height: 32px;
            width: 32px;
        }

    .mx_AccessibleButton.mx_AccessibleButton_kind_icon_primary,
    .mx_AccessibleButton.mx_AccessibleButton_kind_icon_primary_outline,
    .mx_AccessibleButton.mx_AccessibleButton_kind_primary,
    .mx_AccessibleButton.mx_AccessibleButton_kind_primary_outline,
    .mx_AccessibleButton.mx_AccessibleButton_kind_secondary {
        font-weight: var(--cpd-font-weight-semibold);
    }

    .mx_AccessibleButton.mx_AccessibleButton_kind_icon_primary,
    .mx_AccessibleButton.mx_AccessibleButton_kind_primary {
        border: 1px solid var(--cpd-color-bg-action-primary-rest);
        color: var(--cpd-color-text-on-solid-primary);
        background-color: var(--cpd-color-bg-action-primary-rest);
    }

    .mx_AccessibleButton.mx_AccessibleButton_kind_icon_primary_outline,
    .mx_AccessibleButton.mx_AccessibleButton_kind_primary_outline {
        border: 1px solid var(--cpd-color-border-interactive-secondary);
        color: var(--cpd-color-text-primary);
    }

    .mx_AccessibleButton.mx_AccessibleButton_kind_secondary {
        color: var(--cpd-color-text-primary);
        text-decoration: underline;
    }

    .mx_AccessibleButton.mx_AccessibleButton_kind_danger {
        color: var(--cpd-color-text-on-solid-primary);
        background-color: var(--cpd-color-bg-critical-primary);
        border: 1px solid var(--cpd-color-bg-critical-primary);
    }

        .mx_AccessibleButton.mx_AccessibleButton_kind_danger.mx_AccessibleButton_disabled {
            color: var(--cpd-color-text-on-solid-primary);
            background-color: var(--cpd-color-bg-critical-primary);
        }

    .mx_AccessibleButton.mx_AccessibleButton_kind_danger_outline {
        color: var(--cpd-color-text-critical-primary);
        background-color: transparent;
        border: 1px solid var(--cpd-color-border-critical-subtle);
    }

        .mx_AccessibleButton.mx_AccessibleButton_kind_danger_outline.mx_AccessibleButton_disabled {
            color: var(--cpd-color-text-disabled);
            border-color: var(--cpd-color-border-disabled);
        }
        .mx_AccessibleButton.mx_AccessibleButton_kind_danger_sm.mx_AccessibleButton_disabled {
            color: var(--cpd-color-text-disabled);
            background-color: var(--cpd-color-bg-subtle-primary);
        }

    .mx_AccessibleButton.mx_AccessibleButton_kind_link,
    .mx_AccessibleButton.mx_AccessibleButton_kind_link_inline,
    .mx_AccessibleButton.mx_AccessibleButton_kind_danger_inline,
    .mx_AccessibleButton.mx_AccessibleButton_kind_content_inline {
        font-size: inherit;
        font-weight: var(--cpd-font-weight-semibold);
        line-height: inherit;
        padding: 0;
        text-decoration: underline;
    }

    .mx_AccessibleButton.mx_AccessibleButton_kind_link,
    .mx_AccessibleButton.mx_AccessibleButton_kind_link_inline {
        color: var(--cpd-color-text-primary);
    }

    .mx_AccessibleButton.mx_AccessibleButton_kind_danger_inline {
        color: var(--cpd-color-text-critical-primary);
    }

    .mx_AccessibleButton.mx_AccessibleButton_kind_content_inline {
        color: #edf3ff;
    }

    .mx_AccessibleButton.mx_AccessibleButton_kind_link_inline,
    .mx_AccessibleButton.mx_AccessibleButton_kind_danger_inline,
    .mx_AccessibleButton.mx_AccessibleButton_kind_content_inline {
        display: inline;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2019 New Vector Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CopyableText {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
    max-width: 100%;
}

    .mx_CopyableText.mx_CopyableText_border {
        overflow: auto;
        border-radius: 5px;
        border: solid 1px #c8c8cd;
        margin-bottom: 10px;
        margin-top: 10px;
        padding: 10px;
    }

    .mx_CopyableText .mx_CopyableText_copyButton {
        -ms-flex-negative: 0;
            flex-shrink: 0;
        display: block;
        /* If the copy button is used within a scrollable div, make it stick to the right while scrolling */
        position: sticky;
        margin-left: var(--cpd-space-1x);
    }

        .mx_CopyableText .mx_CopyableText_copyButton svg {
            color: #a1b2d1;
            display: block;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_desktopCapturerSourcePicker {
    overflow: hidden;
}

    .mx_desktopCapturerSourcePicker .mx_desktopCapturerSourcePicker_tab {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: start;
            -ms-flex-align: start;
                align-items: flex-start;
        height: 500px;
        overflow: overlay;
    }

        .mx_desktopCapturerSourcePicker .mx_desktopCapturerSourcePicker_tab .mx_desktopCapturerSourcePicker_source {
            width: 50%;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
        }

            .mx_desktopCapturerSourcePicker .mx_desktopCapturerSourcePicker_tab .mx_desktopCapturerSourcePicker_source .mx_desktopCapturerSourcePicker_source_thumbnail {
                margin: 4px;
                padding: 4px;
                border-width: 2px;
                border-radius: 8px;
                border-style: solid;
                border-color: transparent;
            }

                .mx_desktopCapturerSourcePicker .mx_desktopCapturerSourcePicker_tab .mx_desktopCapturerSourcePicker_source .mx_desktopCapturerSourcePicker_source_thumbnail.mx_desktopCapturerSourcePicker_source_thumbnail_selected,
                .mx_desktopCapturerSourcePicker .mx_desktopCapturerSourcePicker_tab .mx_desktopCapturerSourcePicker_source .mx_desktopCapturerSourcePicker_source_thumbnail:hover,
                .mx_desktopCapturerSourcePicker .mx_desktopCapturerSourcePicker_tab .mx_desktopCapturerSourcePicker_source .mx_desktopCapturerSourcePicker_source_thumbnail:focus {
                    border-color: #0dbd8b;
                }

            .mx_desktopCapturerSourcePicker .mx_desktopCapturerSourcePicker_tab .mx_desktopCapturerSourcePicker_source .mx_desktopCapturerSourcePicker_source_name {
                margin: 0 4px;
                white-space: nowrap;
                text-overflow: ellipsis;
                overflow: hidden;
            }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DialPadBackspaceButton {
    height: 20px;
    width: 20px;
    padding: var(--cpd-space-1x);
}

    .mx_DialPadBackspaceButton svg {
        color: #8d97a5;
        width: inherit;
        height: inherit;
        display: inline-block;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2017 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Dropdown {
    position: relative;
    color: #edf3ff;
}

.mx_Dropdown_disabled {
    opacity: 0.3;
}

.mx_Dropdown_input {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    position: relative;
    border-radius: 8px;
    border: 1px solid var(--cpd-color-border-interactive-secondary);
    font: var(--cpd-font-body-sm-regular);
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
}

.mx_Dropdown_input.mx_AccessibleButton_disabled {
    cursor: not-allowed;
}

.mx_Dropdown_input:focus {
    border-color: #238cf5;
}

/* Disable dropdown highlight on focus */
.mx_Dropdown_input.mx_AccessibleButton:focus {
    -webkit-filter: none;
            filter: none;
}

svg.mx_Dropdown_arrow {
    width: 18px;
    height: 18px;
    margin-right: 3px;
    color: #edf3ff;
}

.mx_Dropdown_option {
    height: 35px;
    line-height: 2.1875rem;
    /* Overwrites the default padding for any li elements */
    padding: 0 8px;
}

.mx_Dropdown_input > .mx_Dropdown_option {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_Dropdown_option div {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mx_Dropdown_option img,
.mx_Dropdown_option .mx_Dropdown_option_emoji {
    margin: 5px;
    width: 16px;
    vertical-align: middle;
}

.mx_Dropdown_option_emoji {
    font-size: 1rem;
    line-height: 1rem;
}

input.mx_Dropdown_option,
input.mx_Dropdown_option:focus {
    font-weight: normal;
    border: 0;
    padding-top: 0;
    padding-bottom: 0;
    /* XXX: hack to prevent text box being too big and pushing */
    /* its parent out / overlapping the dropdown arrow. Only really */
    /* works in the Country dropdown. */
    width: 60%;
}

.mx_Dropdown_menu {
    position: absolute;
    left: -1px;
    right: -1px;
    top: 100%;
    z-index: 2;
    margin: 0;
    padding: 0px;
    border-radius: 4px;
    border: 1px solid #238cf5;
    background-color: #181b21;
    max-height: 200px;
    overflow-y: auto;
}

.mx_Dropdown_menu .mx_Dropdown_option {
    height: auto;
    min-height: 35px;
}

ul.mx_Dropdown_menu li.mx_Dropdown_option {
    list-style: none;
}

.mx_Dropdown_menu .mx_Dropdown_option_highlight {
    background-color: #343a46;
}

.mx_Dropdown_searchPrompt {
    font-weight: normal;
    margin-left: 5px;
    margin-bottom: 5px;
}
}
@layer app-web{

/*
Copyright 2017-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_EditableItemList {
    margin-top: 12px;
    margin-bottom: 10px;
}

.mx_EditableItem {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-bottom: 5px;
}

.mx_EditableItem_delete {
    width: 20px;
    height: 20px;
    padding: var(--cpd-space-1x);
    border-radius: 14px;
    background-color: var(--cpd-color-bg-subtle-secondary);
}
    .mx_EditableItem_delete:hover {
        background-color: var(--cpd-color-bg-subtle-primary);
    }
    .mx_EditableItem_delete svg {
        width: inherit;
        height: inherit;
        vertical-align: top;
        color: var(--cpd-color-icon-secondary);
    }
    .mx_EditableItem_delete{
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
    vertical-align: middle;
    width: 28px;
    height: 28px;
    -webkit-mask-size: 100%;
            mask-size: 100%;
}

.mx_EditableItem_email {
    vertical-align: middle;
}

.mx_EditableItem_promptText {
    margin-right: 10px;
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
}

.mx_EditableItem_confirmBtn {
    margin-right: 5px;
}

.mx_EditableItem_item {
    -webkit-box-flex: 1;
        -ms-flex: auto 1 0px;
            flex: auto 1 0;
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
    width: calc(100% - 28px); /* leave space for the remove button */
    overflow-x: hidden;
    text-overflow: ellipsis;
}

.mx_EditableItemList_label {
    margin-bottom: 5px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ErrorBoundary {
    width: 100%;
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
}

.mx_ErrorBoundary_body {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    max-width: 400px;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

    .mx_ErrorBoundary_body .mx_AccessibleButton {
        margin-top: 5px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ExternalLink {
    color: #0086e6;
}

.mx_ExternalLink_icon {
    display: inline-block;
    width: 0.6875rem;
    height: 0.6875rem;
    margin-left: 0.3rem;
    vertical-align: middle;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_FacePile_more {
    /* Needed to calculate the offset on the face pile */
    --cpd-avatar-size: 28px;
    position: relative;
    border-radius: 100%;
    width: 28px;
    height: 28px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    padding: var(--cpd-space-1x);
    background-color: rgba(33,38,44, 0.9);
    color: #edf3ff;
    display: inline-block;
    z-index: 1;
    /* For enhanced visibility under contrast control */
    outline: 1px solid transparent;
}

.mx_FacePile_summary {
    margin-left: 12px;
    font: var(--cpd-font-body-md-regular);
    line-height: 1.5rem;
    color: #edf3ff;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/* TODO: Consider unifying with general input styles in _light.pcss */

.mx_Field {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 0;
    position: relative;
    margin: 1em 0;
    border-radius: 8px;
    -webkit-transition: border-color 0.25s;
    transition: border-color 0.25s;
    border: 1px solid var(--cpd-color-border-interactive-secondary);
}

.mx_Field_prefix {
    border-right: 1px solid var(--cpd-color-border-interactive-secondary);
}

.mx_Field_postfix {
    border-left: 1px solid var(--cpd-color-border-interactive-secondary);
}

.mx_Field input,
.mx_Field select,
.mx_Field textarea {
    font: var(--cpd-font-body-md-regular);
    border: none;
    /* Even without a border here, we still need this avoid overlapping the rounded */
    /* corners on the field above. */
    border-radius: 8px;
    padding: 8px 9px;
    color: #edf3ff;
    background-color: #181b21;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 0;
}

.mx_Field input[type="password"] {
    background-color: transparent;
    color: #edf3ff;
}
    .mx_Field input[type="password"]:focus {
        outline: none;
        -webkit-box-shadow: none;
                box-shadow: none;
    }

.mx_Field select {
    -moz-appearance: none;
    -webkit-appearance: none;
    text-overflow: ellipsis;
}

.mx_Field_select_chevron {
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    right: 4px;
    width: 18px;
    height: 18px;
    color: #edf3ff;
    z-index: 1;
    pointer-events: none;
}

.mx_Field:focus-within {
    border-color: #238cf5;
}

.mx_Field input:focus,
.mx_Field select:focus,
.mx_Field textarea:focus {
    outline: 0;
}

.mx_Field input::-webkit-input-placeholder, .mx_Field textarea::-webkit-input-placeholder {
    -webkit-transition: color 0.25s ease-in 0s;
    transition: color 0.25s ease-in 0s;
    color: transparent;
}

.mx_Field input::-moz-placeholder, .mx_Field textarea::-moz-placeholder {
    -moz-transition: color 0.25s ease-in 0s;
    transition: color 0.25s ease-in 0s;
    color: transparent;
}

.mx_Field input:-ms-input-placeholder, .mx_Field textarea:-ms-input-placeholder {
    -ms-transition: color 0.25s ease-in 0s;
    transition: color 0.25s ease-in 0s;
    color: transparent;
}

.mx_Field input::-ms-input-placeholder, .mx_Field textarea::-ms-input-placeholder {
    -ms-transition: color 0.25s ease-in 0s;
    transition: color 0.25s ease-in 0s;
    color: transparent;
}

.mx_Field input::placeholder,
.mx_Field textarea::placeholder {
    -webkit-transition: color 0.25s ease-in 0s;
    transition: color 0.25s ease-in 0s;
    color: transparent;
}

.mx_Field input:placeholder-shown:focus::-webkit-input-placeholder, .mx_Field textarea:placeholder-shown:focus::-webkit-input-placeholder, .mx_Field.mx_Field_placeholderIsHint input::-webkit-input-placeholder {
    -webkit-transition: color 0.25s ease-in 0.1s;
    transition: color 0.25s ease-in 0.1s;
    color: #888;
}

.mx_Field input:placeholder-shown:focus::-moz-placeholder, .mx_Field textarea:placeholder-shown:focus::-moz-placeholder, .mx_Field.mx_Field_placeholderIsHint input::-moz-placeholder {
    -moz-transition: color 0.25s ease-in 0.1s;
    transition: color 0.25s ease-in 0.1s;
    color: #888;
}

.mx_Field input:placeholder-shown:focus:-ms-input-placeholder, .mx_Field textarea:placeholder-shown:focus:-ms-input-placeholder, .mx_Field.mx_Field_placeholderIsHint input:-ms-input-placeholder {
    -ms-transition: color 0.25s ease-in 0.1s;
    transition: color 0.25s ease-in 0.1s;
    color: #888;
}

.mx_Field input:placeholder-shown:focus::-ms-input-placeholder, .mx_Field textarea:placeholder-shown:focus::-ms-input-placeholder, .mx_Field.mx_Field_placeholderIsHint input::-ms-input-placeholder {
    -ms-transition: color 0.25s ease-in 0.1s;
    transition: color 0.25s ease-in 0.1s;
    color: #888;
}

.mx_Field input:-moz-placeholder:focus::placeholder, .mx_Field textarea:-moz-placeholder:focus::placeholder {
    -moz-transition: color 0.25s ease-in 0.1s;
    transition: color 0.25s ease-in 0.1s;
    color: #888;
}

.mx_Field input:-ms-input-placeholder:focus::placeholder, .mx_Field textarea:-ms-input-placeholder:focus::placeholder {
    -ms-transition: color 0.25s ease-in 0.1s;
    transition: color 0.25s ease-in 0.1s;
    color: #888;
}

.mx_Field input:placeholder-shown:focus::placeholder,
.mx_Field textarea:placeholder-shown:focus::placeholder,
.mx_Field.mx_Field_placeholderIsHint input::placeholder {
    -webkit-transition: color 0.25s ease-in 0.1s;
    transition: color 0.25s ease-in 0.1s;
    color: #888;
}

.mx_Field label {
    -webkit-transition:
        font-size 0.25s ease-out 0.1s,
        color 0.25s ease-out 0.1s,
        background-color 0.25s ease-out 0.1s,
        -webkit-transform 0.25s ease-out 0.1s;
    transition:
        font-size 0.25s ease-out 0.1s,
        color 0.25s ease-out 0.1s,
        background-color 0.25s ease-out 0.1s,
        -webkit-transform 0.25s ease-out 0.1s;
    transition:
        font-size 0.25s ease-out 0.1s,
        color 0.25s ease-out 0.1s,
        transform 0.25s ease-out 0.1s,
        background-color 0.25s ease-out 0.1s;
    transition:
        font-size 0.25s ease-out 0.1s,
        color 0.25s ease-out 0.1s,
        transform 0.25s ease-out 0.1s,
        background-color 0.25s ease-out 0.1s,
        -webkit-transform 0.25s ease-out 0.1s;
    background-color: transparent;
    font: var(--cpd-font-body-md-regular);
    color: var(--cpd-color-text-secondary);
    -webkit-transform: translateY(0);
            transform: translateY(0);
    position: absolute;
    left: 0px;
    margin: 7px 8px;
    padding: 2px;
    pointer-events: none; /* Allow clicks to fall through to the input */
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    max-width: calc(100% - 20px); /* 100% of parent minus margin and padding */
}

.mx_Field input:not(:-moz-placeholder) + label, .mx_Field textarea:not(:-moz-placeholder) + label {
    -moz-transition:
        font-size 0.25s ease-out 0s,
        color 0.25s ease-out 0s,
        transform 0.25s ease-out 0s,
        background-color 0.25s ease-out 0s;
    transition:
        font-size 0.25s ease-out 0s,
        color 0.25s ease-out 0s,
        transform 0.25s ease-out 0s,
        background-color 0.25s ease-out 0s;
    font-size: 0.625rem;
    transform: translateY(-13px);
    padding: 0 2px;
    background-color: #181b21;
    pointer-events: initial;
}

.mx_Field input:not(:-ms-input-placeholder) + label, .mx_Field textarea:not(:-ms-input-placeholder) + label {
    -ms-transition:
        font-size 0.25s ease-out 0s,
        color 0.25s ease-out 0s,
        transform 0.25s ease-out 0s,
        background-color 0.25s ease-out 0s;
    transition:
        font-size 0.25s ease-out 0s,
        color 0.25s ease-out 0s,
        transform 0.25s ease-out 0s,
        background-color 0.25s ease-out 0s;
    font-size: 0.625rem;
    transform: translateY(-13px);
    padding: 0 2px;
    background-color: #181b21;
    pointer-events: initial;
}

.mx_Field_labelAlwaysTopLeft label,
.mx_Field select + label /* Always show a select's label on top to not collide with the value */,
.mx_Field input:focus + label,
.mx_Field input:not(:placeholder-shown) + label,
.mx_Field textarea:focus + label,
.mx_Field textarea:not(:placeholder-shown) + label {
    -webkit-transition:
        font-size 0.25s ease-out 0s,
        color 0.25s ease-out 0s,
        background-color 0.25s ease-out 0s,
        -webkit-transform 0.25s ease-out 0s;
    transition:
        font-size 0.25s ease-out 0s,
        color 0.25s ease-out 0s,
        background-color 0.25s ease-out 0s,
        -webkit-transform 0.25s ease-out 0s;
    transition:
        font-size 0.25s ease-out 0s,
        color 0.25s ease-out 0s,
        transform 0.25s ease-out 0s,
        background-color 0.25s ease-out 0s;
    transition:
        font-size 0.25s ease-out 0s,
        color 0.25s ease-out 0s,
        transform 0.25s ease-out 0s,
        background-color 0.25s ease-out 0s,
        -webkit-transform 0.25s ease-out 0s;
    font-size: 0.625rem;
    -webkit-transform: translateY(-13px);
            transform: translateY(-13px);
    padding: 0 2px;
    background-color: #181b21;
    pointer-events: initial;
}

.mx_Field input:focus + label,
.mx_Field select:focus + label,
.mx_Field textarea:focus + label {
    color: #238cf5;
}

.mx_Field select:disabled,
.mx_Field select:disabled + label,
.mx_Field input:disabled,
.mx_Field input:disabled + label,
.mx_Field textarea:disabled,
.mx_Field textarea:disabled + label {
    background-color: #181b21;
    color: #888;
}
    .mx_Field_valid.mx_Field,
    .mx_Field_valid.mx_Field:focus-within {
        border-color: #0dbd8b;
    }

    .mx_Field_valid.mx_Field label,
    .mx_Field_valid.mx_Field:focus-within label {
        color: #0dbd8b;
    }
    .mx_Field_invalid.mx_Field,
    .mx_Field_invalid.mx_Field:focus-within {
        border-color: #ff5b55;
    }

    .mx_Field_invalid.mx_Field label,
    .mx_Field_invalid.mx_Field:focus-within label {
        color: #ff5b55;
    }

/* Customise other components when placed inside a Field */

.mx_Field .mx_Dropdown_input {
    border: medium none currentcolor;
    border: initial;
    border-radius: 0;
    border-radius: initial;
}

.mx_Field .mx_CountryDropdown {
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_GenericEventListSummary {
    position: relative;
}

    .mx_GenericEventListSummary .mx_GenericEventListSummary_avatars {
        margin-right: var(--cpd-space-2x);
    }

    .mx_GenericEventListSummary .mx_GenericEventListSummary_spacer {
        border-bottom: 1px solid #000000;
        margin-left: 63px;
        line-height: 1.875rem; /* TODO: Use a variable */
    }

        .mx_IRCLayout .mx_GenericEventListSummary .mx_GenericEventListSummary_spacer {
            line-height: var(--line-height);
        }

    .mx_GenericEventListSummary .mx_GenericEventListSummary_toggle {
        /* We reuse a title cased translation */
        text-transform: lowercase;
    }
        .mx_GenericEventListSummary[data-layout="irc"] .mx_GenericEventListSummary_toggle, .mx_GenericEventListSummary[data-layout="group"] .mx_GenericEventListSummary_toggle {
            float: right;
            margin-inline: 0 10px;
        }

    .mx_GenericEventListSummary[data-layout="group"] {
        margin-top: var(--cpd-space-2x);
    }

    .mx_GenericEventListSummary[data-layout="bubble"] {
        --maxWidth: 70%;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        margin-left: calc(var(--avatarSize) + var(--gutterSize));

        /* ideally we'd use display=contents here for the layout to all work regardless of the *ELS but */
    }

        .mx_GenericEventListSummary[data-layout="bubble"] .mx_GenericEventListSummary_toggle {
            margin-block: 0;
        }

            .mx_GenericEventListSummary[data-layout="bubble"] .mx_GenericEventListSummary_toggle[aria-expanded="false"] {
                -webkit-box-ordinal-group: 10;
                    -ms-flex-order: 9;
                        order: 9; /* TODO: Remove */
            }

            .mx_GenericEventListSummary[data-layout="bubble"] .mx_GenericEventListSummary_toggle[aria-expanded="true"] {
                -webkit-margin-start: auto;
                        margin-inline-start: auto; /* reduce clickable area */
                -webkit-margin-end: var(--EventTile_bubble-margin-inline-end);
                        margin-inline-end: var(--EventTile_bubble-margin-inline-end); /* as the parent has zero margin */
            }

        .mx_GenericEventListSummary[data-layout="bubble"] .mx_GenericEventListSummary_spacer {
            display: none;
        }

        .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] {
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-box-pack: justify;
                -ms-flex-pack: justify;
                    justify-content: space-between;
            -webkit-column-gap: 5px;
               -moz-column-gap: 5px;
                    column-gap: 5px;
        }
        /* that breaks ScrollPanel's reliance upon offsetTop so we have to have a bit more finesse. */
        .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="true"] {
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            margin: 0;
        }

        .mx_GenericEventListSummary[data-layout="bubble"]::after {
            content: "";
            clear: both;
        }
            .mx_GenericEventListSummary[data-layout="bubble"]:hover::before {
                background: transparent;
            }

    .mx_MatrixChat_useCompactLayout .mx_GenericEventListSummary {
        font-size: 0.8125rem;
        margin-top: var(--cpd-space-1x);
    }

        .mx_MatrixChat_useCompactLayout .mx_GenericEventListSummary .mx_EventTile_line {
            line-height: 1.25;
        }

        .mx_MatrixChat_useCompactLayout .mx_GenericEventListSummary .mx_GenericEventListSummary_spacer {
            line-height: 1.375;
        }

        .mx_MatrixChat_useCompactLayout .mx_GenericEventListSummary .mx_TextualEvent.mx_GenericEventListSummary_summary {
            font: var(--cpd-font-body-sm-regular);
        }

    /* Make all state events one order smaller than the other events */
    .mx_GenericEventListSummary .mx_EventTile {
        font: var(--cpd-font-body-sm-regular);
        color: #edf3ff;
    }

.mx_GenericEventListSummary_unstyledList {
    list-style: none;
    padding: 0;
}

.mx_TextualEvent.mx_GenericEventListSummary_summary {
    font: var(--cpd-font-body-sm-regular);
    display: inline;
    color: #edf3ff;
}

.mx_GenericEventListSummary_avatars {
    display: inline-block;
    line-height: 0.75rem;
}

    .mx_GenericEventListSummary_avatars .mx_BaseAvatar {
        margin-right: -4px;
        cursor: pointer;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

:root {
    --image-view-panel-height: 68px;
}

.mx_ImageView {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
    height: 100%;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

.mx_ImageView_image_wrapper {
    pointer-events: initial;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    height: 100%;
    overflow: hidden;
}

.mx_ImageView_image {
    -ms-flex-negative: 0;
        flex-shrink: 0;
}

    .mx_ImageView_image.mx_ImageView_image_animating {
        -webkit-transition: -webkit-transform 200ms ease 0s;
        transition: -webkit-transform 200ms ease 0s;
        transition: transform 200ms ease 0s;
        transition: transform 200ms ease 0s, -webkit-transform 200ms ease 0s;
    }

    .mx_ImageView_image.mx_ImageView_image_animatingLoading {
        -webkit-transition: -webkit-transform 300ms ease 0s;
        transition: -webkit-transform 300ms ease 0s;
        transition: transform 300ms ease 0s;
        transition: transform 300ms ease 0s, -webkit-transform 300ms ease 0s;
    }

.mx_ImageView_panel {
    width: 100%;
    height: 68px;
    height: var(--image-view-panel-height);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-animation-name: mx_ImageView_panel_keyframes;
            animation-name: mx_ImageView_panel_keyframes;
    -webkit-animation-duration: 300ms;
            animation-duration: 300ms;
}

.mx_ImageView_info_wrapper {
    pointer-events: initial;
    padding-left: 32px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    color: #ffffff;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    -ms-flex-preferred-size: 0;
        flex-basis: 0;
}

.mx_ImageView_info {
    padding-left: 12px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

.mx_ImageView_info_sender {
    font-weight: bold;
}

.mx_ImageView_title {
    color: #ffffff;
    font-size: 0.75rem;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    -ms-flex-preferred-size: 0;
        flex-basis: 0;
    text-align: center;
}

.mx_ImageView_toolbar {
    --icon-size: 24px;

    padding-right: 16px;
    pointer-events: initial;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    -ms-flex-preferred-size: 0;
        flex-basis: 0;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    gap: var(--cpd-space-3x);
}

.mx_ImageView_button {
    padding: calc((32px - var(--icon-size)) / 2);
    width: var(--icon-size);
    height: var(--icon-size);
    display: block;
}

    .mx_ImageView_button svg {
        height: inherit;
        width: inherit;
        display: block;
        color: var(--cpd-color-icon-tertiary);
    }

.mx_ImageView_button_more {
    --icon-size: 28px;
}

.mx_ImageView_button_close {
    border-radius: 100%;
    background: #21262c; /* same on all themes */
}

@media (prefers-reduced-motion) {
    .mx_ImageView_image_animating {
        -webkit-transition: none !important;
        transition: none !important;
    }

    .mx_ImageView_image_animatingLoading {
        -webkit-transition: none !important;
        transition: none !important;
    }
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_InfoTooltip_icon {
    width: 16px;
    height: 16px;
    display: inline-block;
}

    .mx_InfoTooltip_icon svg {
        height: inherit;
        width: inherit;
        color: #a1b2d1;
    }

.mx_InfoTooltip_icon::before {
    display: inline-block;
    vertical-align: middle;
}
}
@layer app-web{

/*
Copyright 2017-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_InlineSpinner {
    display: inline;
}

    .mx_InlineSpinner svg {
        margin: 0px 6px;
        vertical-align: -3px;
        display: inline-block;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019-2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_InteractiveTooltip_wrapper {
    position: fixed;
    z-index: 3999;
}

.mx_InteractiveTooltip {
    border-radius: 8px;
    background-color: #181b21;
    color: #edf3ff;
    position: absolute;
    z-index: 5001;
    -webkit-box-shadow:
        0 24px 8px rgb(17 17 26 / 4%),
        0 8px 32px rgb(17 17 26 / 4%);
            box-shadow:
        0 24px 8px rgb(17 17 26 / 4%),
        0 8px 32px rgb(17 17 26 / 4%);
}

.mx_InteractiveTooltip.mx_InteractiveTooltip_withChevron_top {
    top: 10px; /* 8px chevron + 2px spacing */
}

.mx_InteractiveTooltip.mx_InteractiveTooltip_withChevron_left {
    left: 10px; /* 8px chevron + 2px spacing */
}

.mx_InteractiveTooltip.mx_InteractiveTooltip_withChevron_right {
    right: 10px; /* 8px chevron + 2px spacing */
}

.mx_InteractiveTooltip.mx_InteractiveTooltip_withChevron_bottom {
    bottom: 10px; /* 8px chevron + 2px spacing */
}

.mx_InteractiveTooltip_chevron_top {
    position: absolute;
    left: calc(50% - 8px);
    top: -8px;
    width: 0;
    height: 0;
    border-left: 8px solid transparent;
    border-bottom: 8px solid #181b21;
    border-right: 8px solid transparent;
}

/* Adapted from https://codyhouse.co/blog/post/css-rounded-triangles-with-clip-path */
/* by Sebastiano Guerriero (@guerriero_se) */
@supports (clip-path: polygon(0% 0%, 100% 100%, 0% 100%)) {
    .mx_InteractiveTooltip_chevron_top {
        height: 16px;
        width: 16px;
        background-color: inherit;
        border: none;
        clip-path: polygon(0% 0%, 100% 100%, 0% 100%);
        -webkit-transform: rotate(135deg);
                transform: rotate(135deg);
        border-radius: 0 0 0 3px;
        top: calc(-8px / 1.414); /* sqrt(2) because of rotation */
    }
}

.mx_InteractiveTooltip_chevron_bottom {
    position: absolute;
    left: calc(50% - 8px);
    bottom: -8px;
    width: 0;
    height: 0;
    border-left: 8px solid transparent;
    border-top: 8px solid #181b21;
    border-right: 8px solid transparent;
}

/* Adapted from https://codyhouse.co/blog/post/css-rounded-triangles-with-clip-path */
/* by Sebastiano Guerriero (@guerriero_se) */
@supports (clip-path: polygon(0% 0%, 100% 100%, 0% 100%)) {
    .mx_InteractiveTooltip_chevron_bottom {
        height: 16px;
        width: 16px;
        background-color: inherit;
        border: none;
        clip-path: polygon(0% 0%, 100% 100%, 0% 100%);
        -webkit-transform: rotate(-45deg);
                transform: rotate(-45deg);
        border-radius: 0 0 0 3px;
        bottom: calc(-8px / 1.414); /* sqrt(2) because of rotation */
    }
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_InviteReason {
    position: relative;
    margin-bottom: 1em;
}

    .mx_InviteReason .mx_InviteReason_reason {
        visibility: visible;
    }

    .mx_InviteReason .mx_InviteReason_view {
        display: none;
        position: absolute;
        inset: 0;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        cursor: pointer;
        color: #edf3ff;
    }

        .mx_InviteReason .mx_InviteReason_view svg {
            width: 16px;
            height: 16px;
            color: #edf3ff;
            display: inline-block;
            margin-right: 8px;
        }
    .mx_InviteReason_hidden .mx_InviteReason_reason {
        visibility: hidden;
    }

    .mx_InviteReason_hidden .mx_InviteReason_view {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
    }
}
@layer app-web{

/*
Copyright 2024,2025 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LabelledCheckbox {
    margin-top: var(--cpd-space-2x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_LanguageDropdown .mx_Dropdown_option > div {
        text-transform: capitalize;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MiniAvatarUploader {
    position: relative;
    width: -webkit-min-content;
    width: -moz-min-content;
    width: min-content;
}

    .mx_MiniAvatarUploader .mx_MiniAvatarUploader_indicator {
        position: absolute;

        height: 16px;
        width: 16px;
        padding: 5px;

        right: -6px;
        bottom: -6px;

        background-color: #181b21;
        border-radius: 50%;

        line-height: 0;
    }

        .mx_MiniAvatarUploader .mx_MiniAvatarUploader_indicator .mx_MiniAvatarUploader_cameraIcon {
            height: inherit;
            width: inherit;
            color: #edf3ff;
        }

.mx_MiniAvatarUploader_input {
    display: none;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Pill {
    padding: 0.0625rem 0.4em 0.0625rem 0.4em;
    line-height: 1.0625rem;
    border-radius: 1rem;
    vertical-align: text-top;
    display: inline-block;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    max-width: 100%;
    overflow: hidden;
    cursor: pointer;

    color: var(--cpd-color-text-on-solid-primary) !important; /* To override .markdown-body */
    background-color: var(--cpd-color-bg-action-primary-rest) !important; /* To override .markdown-body */
    /* For enhanced visibility under contrast control */
    outline: 1px solid transparent;
}

    .mx_Pill > * {
        pointer-events: none;
    }

    .mx_Pill.mx_UserPill_me,
    .mx_Pill.mx_AtRoomPill,
    .mx_Pill.mx_KeywordPill {
        background-color: var(--cpd-color-bg-critical-primary) !important; /* To override .markdown-body */
    }

    .mx_Pill:hover {
        background-color: var(--cpd-color-bg-action-primary-hovered) !important; /* To override .markdown-body */
    }

    .mx_Pill:active {
        background-color: var(--cpd-color-bg-action-primary-pressed) !important; /* To override .markdown-body */
    }

    .mx_Pill.mx_UserPill_me:hover {
        background-color: var(
            --cpd-color-bg-critical-hovered
        ) !important; /* To override .markdown-body | same on both themes */
    }

    /* We don't want to indicate clickability */
    .mx_Pill.mx_AtRoomPill:hover,
    .mx_Pill.mx_KeywordPill:hover {
        background-color: var(--cpd-color-bg-critical-primary) !important; /* To override .markdown-body */
        cursor: inherit;
    }

    .mx_Pill::before,
    .mx_Pill .mx_BaseAvatar {
        -webkit-margin-start: -0.3em;
                margin-inline-start: -0.3em; /* Otherwise the gap is too large */
        -webkit-margin-end: 0.2em;
                margin-inline-end: 0.2em;
        min-width: 1rem; /* ensure the avatar is not compressed */
        -webkit-user-select: text;
           -moz-user-select: text;
            -ms-user-select: text;
                user-select: text;
        vertical-align: top;
    }

    .mx_Pill .mx_Pill_text {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .mx_Pill .mx_Pill_userStatus {
        -webkit-margin-start: var(--cpd-space-1x);
                margin-inline-start: var(--cpd-space-1x);
        -webkit-box-flex: 0;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
    }

    /* Pills with user status are flex so the status emoji stays visible if the
       display name gets truncated. */
    .mx_Pill.mx_Pill_withStatus {
        display: -webkit-inline-box;
        display: -ms-inline-flexbox;
        display: inline-flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

    a.mx_Pill {
        text-overflow: ellipsis;
        white-space: nowrap;
        overflow: hidden;
        text-decoration: none !important; /* To override .markdown-body */
    }

    .mx_Pill .mx_Pill_LinkIcon {
        background-color: #0467dd;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        color: #181b21;
        height: 16px;
        padding: 1px;
        width: 16px;
        border-radius: 50%;
    }

    .mx_Pill .mx_Pill_UserIcon {
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        color: #edf3ff;
        height: 16px;
        width: 16px;
    }

    .mx_Pill.mx_SpacePill {
        border-top-left-radius: 8px;
        border-bottom-left-radius: 8px;
        padding-left: 4px;
    }
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PowerSelector {
    width: 100%;
}

.mx_PowerSelector .mx_Field select,
.mx_PowerSelector .mx_Field input {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020, 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

progress.mx_ProgressBar {
    height: 6px;
    width: 60px;
    overflow: hidden;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    border: var(--cpd-border-width-1) solid var(--cpd-color-gray-400);

    border-radius: 6px;
}

    progress.mx_ProgressBar::-moz-progress-bar {
        border-radius: 6px;
    }

    progress.mx_ProgressBar::-webkit-progress-bar,
    progress.mx_ProgressBar::-webkit-progress-value {
        border-radius: 6px;
    }

    progress.mx_ProgressBar{
    color: var(--cpd-color-icon-accent-tertiary);
}
    progress.mx_ProgressBar::-moz-progress-bar {
        background-color: var(--cpd-color-icon-accent-tertiary);
    }
    progress.mx_ProgressBar::-webkit-progress-value {
        background-color: var(--cpd-color-icon-accent-tertiary);
    }
    progress.mx_ProgressBar{
    background-color: #21262c;
}
    progress.mx_ProgressBar::-webkit-progress-bar {
        background-color: #21262c;
    }
    progress.mx_ProgressBar::-webkit-progress-value {
        -webkit-transition: width 1s;
        transition: width 1s;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_QRCode img {
        border-radius: 8px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2018 Vector Creations Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ReplyChain {
    margin: 0; /* Reset default blockquote margin */
    padding-left: 10px;
    border-left: 2px solid var(--username-color);
    border-radius: 2px;
}
        .mx_ReplyChain .mx_ReplyChain_show.mx_AccessibleButton_kind_link_inline {
            white-space: nowrap; /* Enforce 'In reply to' to be a single line */
            color: #edf3ff;
            -webkit-transition: color ease 0.15s;
            transition: color ease 0.15s;
            font-weight: var(--cpd-font-weight-regular);
            text-decoration: inherit;
        }

            .mx_ReplyChain .mx_ReplyChain_show.mx_AccessibleButton_kind_link_inline:hover {
                color: #edf3ff;
            }

    .mx_ReplyChain.mx_ReplyChain_color1 {
        --username-color: var(--cpd-color-text-decorative-1);
    }

    .mx_ReplyChain.mx_ReplyChain_color2 {
        --username-color: var(--cpd-color-text-decorative-2);
    }

    .mx_ReplyChain.mx_ReplyChain_color3 {
        --username-color: var(--cpd-color-text-decorative-3);
    }

    .mx_ReplyChain.mx_ReplyChain_color4 {
        --username-color: var(--cpd-color-text-decorative-4);
    }

    .mx_ReplyChain.mx_ReplyChain_color5 {
        --username-color: var(--cpd-color-text-decorative-5);
    }

    .mx_ReplyChain.mx_ReplyChain_color6 {
        --username-color: var(--cpd-color-text-decorative-6);
    }
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ResizeHandle {
    cursor: row-resize;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    z-index: 100;
}

    .mx_ResizeHandle.mx_ResizeHandle--horizontal {
        margin: 0 -5px;
        padding: 0 5px;
        cursor: col-resize;
    }

        .mx_ResizeHandle.mx_ResizeHandle--horizontal > div {
            width: 1px;
            height: 100%;
        }

    .mx_ResizeHandle.mx_ResizeHandle--vertical {
        margin: -5px 0;
        padding: 5px 0;
    }

        .mx_ResizeHandle.mx_ResizeHandle--vertical > div {
            height: 1px;
        }
}
@layer app-web{
/* XXX: bleurgh, what is this? These classes totally break the component */
/* naming scheme; it's completely unclear where or how they're being used */
/* --Matthew */

.mx_Markdown_BOLD {
    font-weight: bold;
}

.mx_Markdown_ITALIC {
    font-style: italic;
    /*
    // interestingly, *not* using the explicit italic font
    // variant seems yield better results.

    // compensate for Nunito italics being terrible
    // https://github.com/google/fonts/issues/172
    transform: skewX(-14deg);
    display: inline-block;
    */
}

.mx_Markdown_CODE {
    padding: 0.2em 0;
    margin: 0;
    font-size: 85%;
    background-color: rgba(0, 0, 0, 0.04);
    border-radius: 3px;
}

.mx_Markdown_HR {
    display: block;
    background: #e9e9e9;
}

.mx_Markdown_STRIKETHROUGH {
    text-decoration: line-through;
}

.mx_Emoji {
    /* Should be 1.8rem for our default message bodies, and scale with the */
    /* surrounding text */
    font-size: max(1.125rem, 1em);
    vertical-align: bottom;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomAliasField {
    /* if parent is a flex container, this allows the */
    /* width to be as wide as needed, and not 100% */
    -webkit-box-flex: 0;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    min-width: 0;
    max-width: 100%;
}

    .mx_RoomAliasField input {
        width: 150px;
        padding-left: 0;
        padding-right: 0;
    }

    .mx_RoomAliasField input::-webkit-input-placeholder {
        color: #888;
        font-weight: normal;
    }

    .mx_RoomAliasField input::-moz-placeholder {
        color: #888;
        font-weight: normal;
    }

    .mx_RoomAliasField input:-ms-input-placeholder {
        color: #888;
        font-weight: normal;
    }

    .mx_RoomAliasField input::-ms-input-placeholder {
        color: #888;
        font-weight: normal;
    }

    .mx_RoomAliasField input::placeholder {
        color: #888;
        font-weight: normal;
    }

    .mx_RoomAliasField .mx_Field_prefix,
    .mx_RoomAliasField .mx_Field_postfix {
        color: #888;
        border-left: none;
        border-right: none;
        font-weight: var(--cpd-font-weight-semibold);
        padding: 9px 10px;
        -webkit-box-flex: 0;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
    }

    .mx_RoomAliasField .mx_Field_postfix {
        text-overflow: ellipsis;
        white-space: nowrap;
        overflow: hidden;
        /* this allows the domain name to show */
        /* as long as it doesn't make the input shrink */
        /* if it's too big, it shows an ellipsis */
        /* 180: 28 for prefix, 152 for input */
        max-width: calc(100% - 180px);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SSOButtons {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
}

    .mx_SSOButtons .mx_SSOButtons_row + .mx_SSOButtons_row {
        margin-top: 16px;
    }

    .mx_SSOButtons .mx_SSOButton {
        position: relative;
        width: 100%;
        display: inline-block;
    }

        .mx_SSOButtons .mx_SSOButton svg,
        .mx_SSOButtons .mx_SSOButton img {
            width: 24px;
            height: 24px;
            -o-object-fit: contain;
               object-fit: contain;
            position: absolute;
            left: 8px;
            top: 4px;
            color: var(--cpd-color-icon-primary);
        }
        .mx_SSOButtons .mx_SSOButton_mini svg,
        .mx_SSOButtons .mx_SSOButton_mini img {
            /* 30px parent, 24px self */
            padding: 3px;
            position: static;
            position: initial;
        }

        .mx_SSOButtons .mx_SSOButton_mini + .mx_SSOButton_mini {
            margin-left: 16px;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SearchWarning {
    text-align: center;
    padding: 0 16px;
}

    .mx_SearchWarning > * {
        vertical-align: middle;
    }

    .mx_SearchWarning > img {
        margin-right: 8px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ServerPicker {
    margin-bottom: 14px;
    padding-bottom: var(--cpd-space-4x);
    border-bottom: 1px solid rgb(141, 151, 165, 0.2);
    display: grid;
    grid-template-columns: auto -webkit-min-content;
    grid-template-columns: auto min-content;
    grid-template-rows: auto auto auto;
    font: var(--cpd-font-body-md-regular);
}

    .mx_ServerPicker > h2 {
        font-weight: var(--cpd-font-weight-semibold);
        margin: 0 0 20px;
        grid-column: 1;
        grid-row: 1;
    }

    .mx_ServerPicker .mx_ServerPicker_help {
        width: 24px;
        height: 24px;
        border-radius: 10px;
        grid-column: 2;
        grid-row: 1;
        margin-left: auto;
        margin-top: -2px;
        margin-right: -2px;
    }

        .mx_ServerPicker .mx_ServerPicker_help svg {
            width: inherit;
            height: inherit;
            color: var(--cpd-color-icon-tertiary);
        }

    .mx_ServerPicker .mx_ServerPicker_server {
        color: #2e2f32;
        grid-column: 1;
        grid-row: 2;
        overflow: hidden;
        text-overflow: ellipsis;
        margin-right: 8px;
    }

    .mx_ServerPicker .mx_ServerPicker_change {
        grid-column: 2;
        grid-row: 2;
    }

    .mx_ServerPicker .mx_ServerPicker_desc {
        margin-top: 4px;
        color: #edf3ff;
        grid-column: 1 / 2;
        grid-row: 3;
    }
    .mx_ServerPicker_helpDialog .mx_Dialog_content {
        width: 456px;
    }
}
@layer app-web{

/*
Copyright 2025 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SettingsDropdown {
    margin-bottom: var(--cpd-space-1x);
    width: 100%;
}

    .mx_SettingsDropdown .mx_SettingsDropdown_label {
        color: #edf3ff;
        margin: var(--cpd-space-1x) 0;
    }

    .mx_SettingsDropdown .mx_Dropdown_input {
        width: 360px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SettingsFlag {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    margin-bottom: 4px;
    width: 100%;
}

    .mx_SettingsFlag .mx_ToggleSwitch {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
    }
        .mx_SettingsFlag.mx_SettingsFlag_toggleInFront .mx_ToggleSwitch {
            display: inline-block;
            vertical-align: middle;
            margin-right: 8px;
        }

        .mx_SettingsFlag.mx_SettingsFlag_toggleInFront .mx_SettingsFlag_label {
            display: inline-block;
            vertical-align: middle;
        }

.mx_SettingsFlag_label {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    color: #edf3ff;
    padding-right: 10px;
    padding-top: 4px;
}

.mx_SettingsFlag_microcopy {
    margin-top: 4px;
    font: var(--cpd-font-body-sm-regular);
    color: #edf3ff;

    /* Support code/pre elements in settings flag descriptions */
}
    .mx_SettingsFlag_microcopy pre,
    .mx_SettingsFlag_microcopy code {
        font-family: "Fira Code", "", "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji" !important;
        font-family: "Fira Code", var(--emoji-font-family), "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji" !important;
        background-color: rgba(0, 0, 0, 0.04);
    }

    .mx_SettingsFlag_microcopy .mx_SettingsTab_microcopy_warning::before {
        content: "⚠️ ";
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Spinner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    width: 100%;
    height: 100%;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
}

.mx_MatrixChat_middlePanel .mx_Spinner {
    height: auto;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/**
* This component expects the parent to specify a positive padding and
* width
*/

.mx_StyledRadioButton {
    position: relative;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-align: baseline;
        -ms-flex-align: baseline;
            align-items: baseline;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
}

    .mx_StyledRadioButton > .mx_StyledRadioButton_content {
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;

        display: -webkit-box;

        display: -ms-flexbox;

        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;

        margin-left: 8px;
        margin-right: 8px;
    }

    .mx_StyledRadioButton .mx_StyledRadioButton_spacer {
        -ms-flex-negative: 0;
            flex-shrink: 0;
        -webkit-box-flex: 0;
            -ms-flex-positive: 0;
                flex-grow: 0;

        height: 1rem;
        width: 1rem;
    }

    .mx_StyledRadioButton input[type="radio"] {
        /* Remove the OS's representation */
        margin: 0;
        padding: 0;
        -webkit-appearance: none;
           -moz-appearance: none;
                appearance: none;
    }

        .mx_StyledRadioButton input[type="radio"] + div {
            -ms-flex-negative: 0;
                flex-shrink: 0;
            -webkit-box-flex: 0;
                -ms-flex-positive: 0;
                    flex-grow: 0;

            display: -webkit-box;

            display: -ms-flexbox;

            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;

            -webkit-box-sizing: border-box;

                    box-sizing: border-box;
            height: 1rem;
            width: 1rem;
            margin-left: 2px; /* For the highlight on focus */

            border: 1px solid var(--cpd-color-border-interactive-primary);
            border-radius: 1rem;
        }

            .mx_StyledRadioButton input[type="radio"] + div > div {
                -webkit-box-sizing: border-box;
                        box-sizing: border-box;

                height: 0.5rem;
                width: 0.5rem;

                border-radius: 0.5rem;
            }
            .mx_StyledRadioButton input[type="radio"]:focus-visible + div {
                outline-width: 2px;
                outline-style: solid;
                outline-color: Highlight;
            }
                /* WebKit gets its native focus styles. */
                @media (-webkit-min-device-pixel-ratio: 0) {
            .mx_StyledRadioButton input[type="radio"]:focus-visible + div {
        outline-color: -webkit-focus-ring-color;
        outline-style: auto;
            }
    }
            .mx_StyledRadioButton input[type="radio"]:checked + div {
                border-color: var(--cpd-color-bg-accent-rest);
            }

                .mx_StyledRadioButton input[type="radio"]:checked + div > div {
                    background: var(--cpd-color-bg-accent-rest);
                    /* For enhanced visibility under contrast control */
                    outline: 1px solid transparent;
                }
            .mx_StyledRadioButton input[type="radio"]:disabled + div,
            .mx_StyledRadioButton input[type="radio"]:disabled + div + span {
                opacity: 0.5;
                cursor: not-allowed;
            }

            .mx_StyledRadioButton input[type="radio"]:disabled + div {
                border-color: var(--cpd-color-border-interactive-primary);
            }
            .mx_StyledRadioButton input[type="radio"]:checked:disabled + div > div {
                background-color: var(--cpd-color-border-interactive-primary);
            }

    .mx_StyledRadioButton .mx_StyledRadioButton_innerLabel {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        position: relative;
        top: 4px;
    }

.mx_StyledRadioButton_outlined {
    border: 1px solid #181b21;
    border-radius: 8px;
}

.mx_StyledRadioButton_checked {
    border-color: var(--cpd-color-bg-accent-rest);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2017 Michael Telatynski <7t3chguy@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SyntaxHighlight {
    /* inhibit hljs styling */
    background: none !important;
    color: #c8c8cd !important;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_TagComposer .mx_TagComposer_input {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
    }

        .mx_TagComposer .mx_TagComposer_input .mx_AccessibleButton {
            min-width: 70px;
            padding: 0 8px; /* override from button styles */
            -ms-flex-item-align: stretch;
                align-self: stretch; /* override default settingstab style */
        }

        .mx_TagComposer .mx_TagComposer_input .mx_Field,
        .mx_TagComposer .mx_TagComposer_input .mx_Field input,
        .mx_TagComposer .mx_TagComposer_input .mx_AccessibleButton {
            /* So they look related to each other by feeling the same */
            border-radius: 8px;
        }

    .mx_TagComposer .mx_TagComposer_tags {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        margin-top: 12px; /* this plus 12px from the tags makes 24px from the input */
    }

    .mx_TagComposer .mx_Tag {
        margin-right: 12px;
        margin-top: 12px;
    }

.mx_Tag {
    font-size: 0.9375rem;

    display: -webkit-inline-box;

    display: -ms-inline-flexbox;

    display: inline-flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;

    gap: 8px;
    padding: 8px;
    border-radius: 8px;

    color: #edf3ff;
    background: #6f7882;
}

    .mx_Tag > svg:first-child {
        width: 1em;
        color: #edf3ff;
        -webkit-transform: scale(1.25);
                transform: scale(1.25);
        -webkit-transform-origin: center;
                transform-origin: center;
    }

    .mx_Tag .mx_Tag_delete {
        border-radius: 50%;
        text-align: center;
        width: 1.066666em; /* 16px; */
        height: 1.066666em;
        line-height: 1em;
        color: #edf3ff;
        background: #21262c;
        position: relative;
    }

        .mx_Tag .mx_Tag_delete svg {
            width: 16px;
            height: 16px;
        }
}
@layer app-web{
/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
.mx_TextWithTooltip_target {
    display: inline;
}

.mx_TextWithTooltip_tooltip {
    display: none;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ToggleSwitch {
    --ToggleSwitch-min-width: 2.75rem;

    -webkit-transition:
        background-color 0.2s ease-out 0.1s,
        border-color 0.2s ease-out 0.1s;

    transition:
        background-color 0.2s ease-out 0.1s,
        border-color 0.2s ease-out 0.1s;

    width: 2.75rem;
    height: 1.25rem;
    border-radius: 1.5rem;
    padding: 2px;

    background-color: var(--cpd-color-bg-canvas-disabled);
    border: 1px solid var(--cpd-color-border-disabled);
    cursor: not-allowed;
}

    .mx_ToggleSwitch.mx_ToggleSwitch_enabled {
        cursor: pointer;
        background-color: var(--cpd-color-bg-canvas-default);
        border: var(--cpd-border-width-1) solid var(--cpd-color-border-interactive-primary);
    }

        .mx_ToggleSwitch.mx_ToggleSwitch_enabled.mx_ToggleSwitch_on {
            background-color: var(--cpd-color-bg-accent-rest);
            border-color: var(--cpd-color-bg-accent-rest);
        }

        .mx_ToggleSwitch.mx_ToggleSwitch_enabled > .mx_ToggleSwitch_ball {
            background-color: var(--cpd-color-icon-secondary);
        }

    .mx_ToggleSwitch.mx_ToggleSwitch_on {
        background-color: var(--cpd-color-bg-action-primary-disabled);
        border-color: var(--cpd-color-bg-action-primary-disabled);
    }

        .mx_ToggleSwitch.mx_ToggleSwitch_on > .mx_ToggleSwitch_ball {
            left: calc(100% - 1.25rem);
            background-color: var(--cpd-color-icon-on-solid-primary);
        }

.mx_ToggleSwitch_ball {
    position: relative;
    width: 1.25rem;
    height: 1.25rem;
    border-radius: 1.25rem;
    background-color: var(--cpd-color-bg-action-primary-disabled);
    -webkit-transition:
        left 0.15s ease-out 0.1s,
        background-color 0.15s ease-out 0.1s;
    transition:
        left 0.15s ease-out 0.1s,
        background-color 0.15s ease-out 0.1s;
    left: 0;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Validation {
    position: relative;
    max-width: 200px;
}

.mx_Validation_details {
    padding-left: 0;
    margin: 0;
}

.mx_Validation_description + .mx_Validation_details {
    margin: 1em 0 0;
}

.mx_Validation_detail {
    font-weight: normal;
    list-style: none;
    margin-bottom: 0.5em;
}

    .mx_Validation_detail:last-child {
        margin-bottom: 0;
    }

    .mx_Validation_detail svg {
        width: 14px;
        height: 14px;
        margin-right: var(--cpd-space-1x);
        vertical-align: text-bottom;
    }

    .mx_Validation_detail.mx_Validation_valid {
        color: #0dbd8b;
    }

    .mx_Validation_detail.mx_Validation_invalid {
        color: #ff5b55;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LocationPicker {
    border-radius: 8px;

    height: 100%;
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;

    /* when there are errors loading the map */
    /* the canvas is still inserted */
    /* and can overlap error message/close buttons */
}
    /* hide it */
        .mx_LocationPicker.mx_LocationPicker_hasError .maplibregl-canvas-container,
        .mx_LocationPicker.mx_LocationPicker_hasError .maplibregl-control-container {
            display: none;
        }

    .mx_LocationPicker #mx_LocationPicker_map {
        border-top-left-radius: inherit;
        border-top-right-radius: inherit;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
    }

        .mx_LocationPicker #mx_LocationPicker_map .maplibregl-ctrl.maplibregl-ctrl-group,
        .mx_LocationPicker #mx_LocationPicker_map .maplibregl-ctrl.maplibregl-ctrl-attrib {
            margin-right: var(--cpd-space-4x);
        }

        .mx_LocationPicker #mx_LocationPicker_map .maplibregl-ctrl.maplibregl-ctrl-group {
            /* place below the close button */
            /* padding-16 + 24px close button + padding-10 */
            margin-top: 50px;
        }

        .mx_LocationPicker #mx_LocationPicker_map .maplibregl-user-location-accuracy-circle {
            display: none;
        }

        .mx_LocationPicker #mx_LocationPicker_map .maplibregl-user-location-dot {
            display: none;
        }

    .mx_LocationPicker .mx_LocationPicker_footer {
        -webkit-box-flex: 0;
            -ms-flex: 0;
                flex: 0;
        width: 100%;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        padding: var(--cpd-space-4x);
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-pack: stretch;
            -ms-flex-pack: stretch;
                justify-content: stretch;

        border-bottom-left-radius: inherit;
        border-bottom-right-radius: inherit;

        background-color: #22262e;
    }

.mx_LocationPicker_pinText {
    position: absolute;
    top: var(--cpd-space-4x);
    width: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    text-align: center;
    height: 0;
    pointer-events: none;
}

    .mx_LocationPicker_pinText span {
        -webkit-box-shadow: 0px 4px 15px rgb(0, 0, 0, 0.15);
                box-shadow: 0px 4px 15px rgb(0, 0, 0, 0.15);
        border-radius: 8px;
        padding: var(--cpd-space-2x);
        background-color: #181b21;
        color: #edf3ff;

        font-size: 0.75rem;
    }

.mx_LocationPicker_submitButton {
    width: 100%;
    height: 48px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CallEvent_wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
}

.mx_CallEvent {
    padding: 12px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    min-height: 60px;
    max-width: 600px;
    width: 100%;
    background-color: #21262c;
    border-radius: 8px;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    gap: var(--cpd-space-2x);
}

    .mx_CallEvent > .mx_BaseAvatar,
    .mx_CallEvent > .mx_Icon {
        -ms-flex-item-align: start;
            align-self: flex-start;
    }

    .mx_CallEvent > .mx_Icon {
        padding: 0;
        margin: var(--cpd-space-1x) 0;
        color: #edf3ff;
    }

    .mx_CallEvent .mx_LiveContentSummary {
        font-size: 0.75rem;
    }

    .mx_CallEvent{

    --facepile-background: #21262c;
}

.mx_CallEvent_title {
    font-size: 0.9375rem;
    line-height: 24px; /* in px to match the avatar */
}

.mx_CallEvent_inactive .mx_CallEvent_title svg {
    display: inline-block;
    vertical-align: middle;
    color: #edf3ff;
    width: 16px;
    height: 16px;
    margin-right: var(--cpd-space-2x);
}

.mx_CallEvent_active .mx_CallEvent_title {
    font-weight: var(--cpd-font-weight-semibold);
}

.mx_CallEvent_columns {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: var(--cpd-space-3x);
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
}

.mx_TimelineCard .mx_CallEvent_columns {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: var(--cpd-space-2x);
}

.mx_CallEvent_details {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 6px;
}

.mx_CallEvent_button {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    min-width: 120px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2018-2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_EventTileBubble.mx_CreateEvent {
    margin: 10px auto;
    margin: var(--EventTileBubble_margin-block) auto;
}

    .mx_EventTileBubble.mx_CreateEvent svg {
        color: #a1b2d1;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/** Disambiguated profile needs to have a different layout in the member tile */
.mx_MemberTileView .mx_DisambiguatedProfile {
    /* Name and the user status emoji share the first row (with the name truncating and the emoji always visible)
       Disambiguated MXID gets a full row below. */
    display: grid;
    grid-template-columns: -webkit-min-content 1fr;
    grid-template-columns: min-content 1fr;
}

    .mx_MemberTileView .mx_DisambiguatedProfile .mx_DisambiguatedProfile_userStatus {
        -webkit-margin-start: var(--cpd-space-0-5x);
                margin-inline-start: var(--cpd-space-0-5x);
    }

    .mx_MemberTileView .mx_DisambiguatedProfile .mx_DisambiguatedProfile_mxid {
        grid-column: 1 / -1;
        -webkit-margin-start: 0;
                margin-inline-start: 0;
        font: var(--cpd-font-body-sm-regular);
        text-overflow: ellipsis;
        overflow: hidden;
    }

    .mx_MemberTileView .mx_DisambiguatedProfile span:not(.mx_DisambiguatedProfile_mxid) {
        /**
        In a member tile, this span element is a grid child and so
        we need the following for text overflow to work.
        **/
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LegacyCallEvent_wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
}

    .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-pack: justify;
            -ms-flex-pack: justify;
                justify-content: space-between;
        gap: var(--cpd-space-1x) 0;

        position: relative;
        margin: var(--cpd-space-1x) 0;
        padding: var(--cpd-space-3x) var(--cpd-space-6x);
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        background-color: var(--cpd-color-bg-subtle-secondary);
        border-radius: 8px;
        width: 65%;
        height: -webkit-fit-content;
        height: -moz-fit-content;
        height: fit-content;
    }

        .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_iconButton {
            display: -webkit-inline-box;
            display: -ms-inline-flexbox;
            display: inline-flex;
        }

            .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_iconButton svg {
                height: 16px;
                width: 16px;
                color: #edf3ff;
            }

        .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_info {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: horizontal;
            -webkit-box-direction: normal;
                -ms-flex-direction: row;
                    flex-direction: row;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            width: -webkit-fit-content;
            width: -moz-fit-content;
            width: fit-content;
            max-width: 100%;
        }

            .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_info .mx_LegacyCallEvent_info_basic {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-orient: vertical;
                -webkit-box-direction: normal;
                    -ms-flex-direction: column;
                        flex-direction: column;
                gap: var(--cpd-space-1x);
                margin-left: 10px; /* To match mx_LegacyCallEvent */
                margin-right: 10px;
                min-width: 0;
            }

                .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_info .mx_LegacyCallEvent_info_basic .mx_LegacyCallEvent_sender {
                    font-weight: var(--cpd-font-weight-semibold);
                    margin-bottom: var(--cpd-space-1x);

                    overflow: hidden;
                    white-space: nowrap;
                    text-overflow: ellipsis;
                }

                .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_info .mx_LegacyCallEvent_info_basic .mx_LegacyCallEvent_type {
                    font-weight: 400;
                    color: #edf3ff;
                }

        .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_content {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -ms-flex-wrap: wrap;
                flex-wrap: wrap;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            color: #edf3ff;
            font-size: 0.75rem;
            gap: var(--cpd-space-3x); /* See mx_IncomingLegacyCallToast_buttons */
            -webkit-margin-start: 42px;
                    margin-inline-start: 42px; /* avatar (32px) + mx_LegacyCallEvent_info_basic margin (10px) */
            word-break: break-word;
            max-width: -webkit-fit-content;
            max-width: -moz-fit-content;
            max-width: fit-content;
        }

            .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_content .mx_LegacyCallEvent_content_button {
                -webkit-box-sizing: border-box;
                        box-sizing: border-box;
                font-weight: var(--cpd-font-weight-semibold);
                height: 1.5rem;
                line-height: 1.5rem;
                margin-right: 0;
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
            }
                .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_content .mx_LegacyCallEvent_content_button svg {
        width: 16px;
        height: 16px;
        display: inline-block;
        color: white;
        margin-right: 8px;
        vertical-align: middle;
    }
                .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_content .mx_LegacyCallEvent_content_button{
                padding: 0 var(--cpd-space-3x);
                font-size: inherit;
}

            .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_content .mx_LegacyCallEvent_content_tooltip {
                margin-right: 5px;
            }

        .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent.mx_LegacyCallEvent_narrow {
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            -webkit-box-align: initial;
                -ms-flex-align: initial;
                    align-items: initial;
            gap: var(--cpd-space-1x) var(--cpd-space-4x);
            height: auto;
            height: initial;
            min-width: 290px;
        }

            .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent.mx_LegacyCallEvent_narrow .mx_LegacyCallEvent_iconButton {
                position: absolute;
                margin-right: 0;
                top: 12px;
                right: 12px;
                height: 16px;
                width: 16px;
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
            }

            .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent.mx_LegacyCallEvent_narrow .mx_LegacyCallEvent_info {
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
            }

.mx_LegacyCallEvent_type_icon {
    height: 16px;
    width: 16px;
    margin-right: 6px;
    display: inline-block;
    vertical-align: -2px;
}

    .mx_LegacyCallEvent_type_icon svg {
        position: absolute;
        height: inherit;
        width: inherit;
        color: #edf3ff;
    }
        .mx_EventTile[data-layout="bubble"] .mx_EventTile_e2eIcon + .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent {
            position: relative;

            /* 5px (gap) + 14px (e2e icon size * mask-size) + 9px (margin-left of e2e icon) */
            right: calc(5px + 14px + 9px);
        }
            .mx_EventTile_leftAlignedBubble .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent.mx_LegacyCallEvent_narrow {
                gap: var(--cpd-space-2x) var(--cpd-space-1x);
            }
        .mx_IRCLayout .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent {
            -webkit-margin-start: var(--cpd-space-1x);
                    margin-inline-start: var(--cpd-space-1x); /* display green line */
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 Tulir Asokan <tulir@maunium.net>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_MImageReplyBody .mx_MImageBody_banner, .mx_MStickerBody_wrapper .mx_MImageBody_banner {
        position: absolute;
        bottom: var(--cpd-space-1x);
        left: var(--cpd-space-1x);
        padding: var(--cpd-space-1x);
        border-radius: 8px;
        border-radius: var(--MBody-border-radius);
        font-size: 0.9375rem;
        -webkit-user-select: none;
           -moz-user-select: none;
            -ms-user-select: none;
                user-select: none;
        pointer-events: none;
        max-width: min(100%, 350px);
        text-overflow: ellipsis;
        white-space: nowrap;
        overflow: hidden;
        background-color: rgb(0, 0, 0, 0.6);
        color: #ffffff;
    }

    .mx_MImageReplyBody .mx_MImageBody_placeholder, .mx_MStickerBody_wrapper .mx_MImageBody_placeholder {
        position: absolute;
        left: 0;
        top: 0;
        height: 100%;
        width: 100%;
        background-color: #181b21;
    }

        .mx_MImageReplyBody .mx_MImageBody_placeholder .mx_Blurhash > canvas, .mx_MStickerBody_wrapper .mx_MImageBody_placeholder .mx_Blurhash > canvas {
            -webkit-animation: mx--anim-pulse 1.75s infinite cubic-bezier(0.4, 0, 0.6, 1);
                    animation: mx--anim-pulse 1.75s infinite cubic-bezier(0.4, 0, 0.6, 1);
        }

    .mx_MImageReplyBody .mx_MImageBody_thumbnail_container, .mx_MStickerBody_wrapper .mx_MImageBody_thumbnail_container {
        border-radius: 8px;
        border-radius: var(--MBody-border-radius);
        overflow: hidden;
        contain: paint;
    }

    .mx_MImageReplyBody .mx_MImageBody_thumbnail, .mx_MStickerBody_wrapper .mx_MImageBody_thumbnail {
        display: block;
        height: 100%;
        width: 100%;
    }

    .mx_MImageReplyBody .mx_MImageBody_gifLabel, .mx_MStickerBody_wrapper .mx_MImageBody_gifLabel {
        position: absolute;
        display: block;
        top: 0px;
        left: 14px;
        padding: 5px;
        border-radius: 5px;
        background: rgba(0, 0, 0, 0.7);
        border: 2px solid rgba(0, 0, 0, 0.2);
        color: rgba(255, 255, 255, 1);
        pointer-events: none;
    }

.mx_MImageReplyBody {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-column-gap: var(--cpd-space-1x);
       -moz-column-gap: var(--cpd-space-1x);
            column-gap: var(--cpd-space-1x);
}

    .mx_MImageReplyBody .mx_MImageBody_thumbnail_container {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        min-width: 0; /* Prevent a blowout */
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MLocationBody {
    max-width: 100%;
}

    .mx_MLocationBody .mx_MLocationBody_map {
        max-width: 100%;
        width: 450px;
        height: 300px;
        z-index: 0; /* keeps the entire map under the message action bar */

        border-radius: 8px;

        border-radius: var(--MBody-border-radius);
        cursor: pointer;
    }

/* In the timeline, we fit the width of the container */
.mx_EventTile_line .mx_MLocationBody .mx_MLocationBody_map {
    max-width: 450px;
    width: 100%;
}

.mx_EventTile[data-layout="bubble"] .mx_EventTile_line .mx_MLocationBody .mx_MLocationBody_map {
    max-width: 100%;
    width: 450px;
}

.mx_DisambiguatedProfile ~ .mx_MLocationBody {
    margin-top: 6px; /* See: https://github.com/matrix-org/matrix-react-sdk/pull/8442 */
}

.mx_ReplyTile .mx_MLocationBody {
    /* Prevent clicking a location within a reply */
    pointer-events: none;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MPollBody {
    margin-top: var(--cpd-space-2x);
    min-width: 0; /* Override fieldset default min-width: min-content */
    width: 100%; /* Ensure fieldset takes full available width */
    border: none; /* Remove default fieldset border */
    padding: 0; /* Remove default fieldset padding */
    margin-inline: unset; /* Remove default fieldset margin */
    display: inline-block; /* Preserve the fieldset display value we used to set globally */
}

    .mx_MPollBody legend {
        padding-inline: unset; /* Remove default legend padding */
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 0.9375rem;
        line-height: 1.5rem;
        margin-top: 0;
        margin-bottom: var(--cpd-space-2x);
        letter-spacing: var(--cpd-font-letter-spacing-heading-lg);
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        gap: var(--cpd-space-3x);
    }

        .mx_MPollBody legend svg {
            -ms-flex-negative: 0;
                flex-shrink: 0;
            color: var(--cpd-color-icon-primary);
        }

        .mx_MPollBody legend .mx_MPollBody_edited {
            color: #a1b2d1;
            font-size: 0.75rem;
            opacity: 0.6;
        }

    .mx_MPollBody .mx_MPollBody_totalVotes {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: inline;
                flex-direction: inline;
        -webkit-box-pack: start;
            -ms-flex-pack: start;
                justify-content: start;
        color: #edf3ff;
        font-size: 0.75rem;
    }

        .mx_MPollBody .mx_MPollBody_totalVotes .mx_Spinner {
            -webkit-box-flex: 0;
                -ms-flex: 0;
                    flex: 0;
            margin-left: var(--cpd-space-2x);
        }

/* Prevent clicking a poll within a reply */
.mx_ReplyTile .mx_MPollBody {
    pointer-events: none;
}

.mx_MPollBody_allOptions {
    display: grid;
    grid-gap: var(--cpd-space-4x);
    gap: var(--cpd-space-4x);
    margin-bottom: var(--cpd-space-2x);
    max-width: 550px;
}
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MStickerBody_wrapper {
    padding: 12px 0px;
}

.mx_MStickerBody_hidden {
    max-width: 220px;
    text-decoration: none;
    text-align: center;

    /* To center the text in the middle of the frame */
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
}

.mx_MStickerBody_placeholder {
    /* centering */
    position: absolute;
    left: calc(50% - 40px);
    top: calc(50% - 40px);
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MessageActionBar {
    --MessageActionBar-size-button: 28px;
    --MessageActionBar-size-margin: 3px;

    position: absolute;
    top: calc(
        -1 *
            (28px + 2 * (3px + var(--cpd-border-width-1)))
    );
    top: calc(
        -1 *
            (var(--MessageActionBar-size-button) + 2 * (var(--MessageActionBar-size-margin) + var(--cpd-border-width-1)))
    );
    right: 8px;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    /* Ensure the action bar appears above other things like the read marker */
    /* and sender avatar (for small screens) */
    z-index: 10;

    /* Adds a previous event safe area so that you can't accidentally hover the */
    /* previous event while trying to mouse into the action bar or from the */
}
    /* react button to its tooltip. */
    .mx_MessageActionBar::before {
        content: "";
        position: absolute;
        /* tooltip safe mousing area + tooltip overhang + */
        /* action bar + action bar offset from event */
        width: calc(10px + 48px + 100% + 8px);
        /* safe area + action bar */
        height: calc(20px + 100%);
        top: -12px;
        left: -58px;
        z-index: -1;
        cursor: auto;
        cursor: initial;

        /* stylelint-disable-next-line max-line-length */
    }
        .mx_GenericEventListSummary[data-layout="bubble"]
            .mx_GenericEventListSummary_toggle
            ~ .mx_GenericEventListSummary_unstyledList
            .mx_EventTile_info:first-of-type
            .mx_MessageActionBar::before {
            /* improve clickability of "collapse" link button on bubble layout by reducing width and height values */
            /* mx_GenericEventListSummary_toggle ~: to apply rules to action bar when "collapse" button is available */
            /* mx_EventTile_info:first-of-type: to apply rules to the info event tile just under "collapse" button */
            /* TODO: use a new class name instead */
            width: 100%;
            height: 100%;
            top: 0;
            left: 0;
        }

        .mx_EventTile_info .mx_ViewSourceEvent ~ .mx_MessageActionBar::before {
            /* improve clickability of view source event toggle button by removing vertical safe area */
            width: 100%;
            height: 100%;
            top: 0;
            left: 0;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_TextualBody_urlPreviews {
    /* Let shared-components own preview link colours instead of the app-wide anchor colour. */
}
    .mx_TextualBody_urlPreviews a:where(:not([data-kind])):hover,
    .mx_TextualBody_urlPreviews a:where(:not([data-kind])):link,
    .mx_TextualBody_urlPreviews a:where(:not([data-kind])):visited {
        color: revert-layer;
    }
}
@layer app-web{

/*
 * Copyright 2026 Element Creations Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_ThreadActionBar {
    position: absolute;
    visibility: hidden;
    top: calc(-1 * (28px + 2 * (3px + var(--cpd-border-width-1))));
    right: 8px;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    /* Ensure the action bar appears above other things like the read marker */
    /* and sender avatar (for small screens) */
    z-index: 10;

    /* Adds a previous event safe area so that you can't accidentally hover the */
    /* previous event while trying to mouse into the action bar or from the */
}
    /* react button to its tooltip. */
    .mx_ThreadActionBar::before {
        content: "";
        position: absolute;
        /* tooltip safe mousing area + tooltip overhang + */
        /* action bar + action bar offset from event */
        width: calc(10px + 48px + 100% + 8px);
        /* safe area + action bar */
        height: calc(20px + 100%);
        top: -12px;
        left: -58px;
        z-index: -1;
        cursor: auto;
        cursor: initial;

        /* stylelint-disable-next-line max-line-length */
    }
        .mx_GenericEventListSummary[data-layout="bubble"]
            .mx_GenericEventListSummary_toggle
            ~ .mx_GenericEventListSummary_unstyledList
            .mx_EventTile_info:first-of-type
            .mx_ThreadActionBar::before {
            /* improve clickability of "collapse" link button on bubble layout by reducing width and height values */
            /* mx_GenericEventListSummary_toggle ~: to apply rules to action bar when "collapse" button is available */
            /* mx_EventTile_info:first-of-type: to apply rules to the info event tile just under "collapse" button */
            /* TODO: use a new class name instead */
            width: 100%;
            height: 100%;
            top: 0;
            left: 0;
        }

        .mx_EventTile_info .mx_ViewSourceEvent ~ .mx_ThreadActionBar::before {
            /* improve clickability of view source event toggle button by removing vertical safe area */
            width: 100%;
            height: 100%;
            top: 0;
            left: 0;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019, 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_EventTileBubble.mx_cryptoEvent {
    margin: 10px auto;
    margin: var(--EventTileBubble_margin-block) auto;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PollHistory_content {
    height: 600px;
    width: 100%;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

.mx_PollHistory_header.mx_Heading_h2 {
    margin-bottom: var(--cpd-space-4x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PollHistoryList {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
    max-height: 100%;
}

.mx_PollHistoryList_list {
    overflow: auto;
    list-style: none;
    margin-block: 0;
    padding-inline: 0;
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    -ms-flex-line-pack: start;
        align-content: flex-start;
    display: grid;
    grid-gap: var(--cpd-space-5x);
    gap: var(--cpd-space-5x);
    padding-right: var(--cpd-space-16x);
    margin: var(--cpd-space-8x) 0;
}

    .mx_PollHistoryList_list.mx_PollHistoryList_list_ENDED {
        gap: var(--cpd-space-8x);
    }

.mx_PollHistoryList_noResults {
    height: 100%;
    width: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    padding: 0 var(--cpd-space-16x);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    text-align: center;

    line-height: 1.5rem;
    color: #edf3ff;
}

    .mx_PollHistoryList_noResults .mx_PollHistoryList_loadMorePolls {
        margin-top: var(--cpd-space-4x);
    }

.mx_PollHistoryList_loading {
    color: #edf3ff;
    text-align: center;
}

    /* center in all free space
    when there are no results */
    .mx_PollHistoryList_loading.mx_PollHistoryList_noResultsYet {
        margin: auto auto;
    }

.mx_PollHistoryList_loadMorePolls {
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_BaseCard {
    --BaseCard_EventTile_line-padding-block: 2px;
    --BaseCard_EventTile-spacing-inline: 36px;
    --BaseCard_header-button-size: 28px;

    overflow: hidden;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    font-size: var(--cpd-font-size-body-md);
}

    .mx_BaseCard .mx_BaseCard_header {
        height: 64px;
        padding: var(--cpd-space-4x);
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        /* changing the color from $separator to transparent as it is
           the best visual output during the transition period. This will be
           reintroduced at a later stage. */
        border-bottom: 1px solid transparent;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-pack: justify;
            -ms-flex-pack: justify;
                justify-content: space-between;
        gap: var(--cpd-space-3x);
        -ms-flex-negative: 0;
            flex-shrink: 0;
        -webkit-border-after: var(--cpd-border-width-1) solid var(--cpd-color-gray-400);
                border-block-end: var(--cpd-border-width-1) solid var(--cpd-color-gray-400);
    }

        .mx_BaseCard .mx_BaseCard_header .mx_BaseCard_header_spacer {
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
        }

        .mx_BaseCard .mx_BaseCard_header > h2 {
            margin: 0 44px;
            font: var(--cpd-font-body-sm-semibold);
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

        .mx_BaseCard .mx_BaseCard_header .mx_BaseCard_header_title {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-box-pack: justify;
                -ms-flex-pack: justify;
                    justify-content: space-between;
            height: 24px;
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
        }

            .mx_BaseCard .mx_BaseCard_header .mx_BaseCard_header_title .mx_BaseCard_header_title_heading {
                overflow: hidden;
                white-space: nowrap;
                text-overflow: ellipsis;
                font: var(--cpd-font-body-md-medium);
                color: var(--cpd-color-text-secondary);
            }

            .mx_BaseCard .mx_BaseCard_header .mx_BaseCard_header_title .mx_BaseCard_header_title_button--option {
                position: relative;
                width: calc(var(--BaseCard_header-button-size) - 4px);
                height: calc(var(--BaseCard_header-button-size) - 4px);
                padding: 2px;
            }

                .mx_BaseCard .mx_BaseCard_header .mx_BaseCard_header_title .mx_BaseCard_header_title_button--option svg {
                    width: inherit;
                    height: inherit;
                    display: block;
                    color: #edf3ff;
                }

                .mx_BaseCard .mx_BaseCard_header .mx_BaseCard_header_title .mx_BaseCard_header_title_button--option:hover svg {
                    color: #edf3ff;
                }

    .mx_BaseCard .mx_AutoHideScrollbar {
        min-height: 0;
        width: 100%;
        height: 100%;
        scrollbar-gutter: stable;
    }

    .mx_BaseCard .mx_BaseCard_footer {
        padding-top: var(--cpd-space-1x);
        text-align: center;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-pack: distribute;
            justify-content: space-around;
    }

        .mx_BaseCard .mx_BaseCard_footer .mx_AccessibleButton_kind_secondary {
            color: #edf3ff;
            background-color: rgb(141, 151, 165, 0.2);
            font: var(--cpd-font-body-md-semibold);
        }

        .mx_BaseCard .mx_BaseCard_footer .mx_AccessibleButton_disabled {
            cursor: not-allowed;
        }
    .mx_ContextualMenu_wrapper.mx_BaseCard_header_title .mx_ContextualMenu {
        position: static;
        position: initial;
    }

        .mx_ContextualMenu_wrapper.mx_BaseCard_header_title .mx_ContextualMenu span:first-of-type {
            font-weight: var(--cpd-font-weight-semibold);
            font-size: inherit;
            color: #edf3ff;
        }

        .mx_ContextualMenu_wrapper.mx_BaseCard_header_title .mx_ContextualMenu{

        font: var(--cpd-font-body-sm-regular);
        color: #edf3ff;
        padding-top: 10px;
        padding-bottom: 10px;

        border: var(--cpd-border-width-1) solid var(--cpd-color-border-interactive-secondary);
        -webkit-box-shadow: 0px 4px 24px rgb(0, 0, 0, 0.1);
                box-shadow: 0px 4px 24px rgb(0, 0, 0, 0.1);
}

    .mx_ContextualMenu_wrapper.mx_BaseCard_header_title .mx_ContextualMenu_chevron_top {
        left: auto;
        right: 22px;
        border-bottom-color: var(--cpd-color-border-interactive-secondary);
    }

        .mx_ContextualMenu_wrapper.mx_BaseCard_header_title .mx_ContextualMenu_chevron_top::after {
            content: "";
            border: inherit;
            border-bottom-color: var(--cpd-color-bg-canvas-default);
            position: absolute;
            top: 1px;
            left: -8px;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2024 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_EmptyState {
    height: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    padding: var(--cpd-space-4x);
    text-align: center;
}

    .mx_EmptyState svg {
        width: 56px;
        height: 56px;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        border-radius: 8px;
        padding: var(--cpd-space-3x);
        background-color: #1a1d23;
    }

    .mx_EmptyState::before {
        /* Bloom using magic numbers directly out of Figma */
        content: "";
        position: absolute;
        z-index: -1;
        width: 642px;
        height: 775px;
        right: -253.77px;
        top: 0;
        background: radial-gradient(49.95% 49.95% at 50% 50%, rgb(13, 189, 139, 0.12) 0%, rgb(18, 115, 235, 0) 100%);
        -webkit-transform: rotate(-89.69deg);
                transform: rotate(-89.69deg);
        overflow: hidden;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_EncryptionInfo_spinner .mx_Spinner {
        margin-top: 25px;
        margin-bottom: 15px;
    }
    .mx_EncryptionInfo_spinner{

    text-align: center;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2024 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ExtensionsCard {
    --cpd-separator-spacing: var(--cpd-space-6x);
    --AddExtension-overlap: -76px;
}
    .mx_ExtensionsCard .mx_AutoHideScrollbar {
        padding: 0 var(--cpd-space-4x);
        margin-top: var(--cpd-space-6x);
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
    }

        /* Styling for the "Add extensions" button */
        .mx_ExtensionsCard .mx_AutoHideScrollbar > button {
            width: 100%;
        }

    .mx_ExtensionsCard .mx_ExtensionsCard_container {
        text-align: center;
        margin: var(--cpd-space-5x) var(--cpd-space-4x) 0;
    }

    .mx_ExtensionsCard .mx_ExtensionsCard_Button {
        /* this button is special so we have to override some of the original styling */
        /* as we will be applying it in its children */
        padding: 0;
        height: auto;
        color: #edf3ff;
        position: relative;
    }

        .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_WidgetAvatar {
            -ms-flex-negative: 0;
                flex-shrink: 0;
        }

        .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_ExtensionsCard_icon_app {
            padding: var(--cpd-space-2x) var(--cpd-space-12x) var(--cpd-space-2x) var(--cpd-space-3x);
            text-overflow: ellipsis;
            overflow: hidden;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

            .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_ExtensionsCard_icon_app p {
                margin: 0 var(--cpd-space-3x);
                color: #edf3ff;
            }

        .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_ExtensionsCard_app_pinToggle,
        .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_ExtensionsCard_app_options {
            position: absolute;
            top: 0;
            height: 100%; /* to give bigger interactive zone */
            width: 24px;
            padding: var(--cpd-space-3x) var(--cpd-space-1x);
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
            -ms-flex-negative: 0;
                flex-shrink: 0;
        }

            .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_ExtensionsCard_app_pinToggle svg, .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_ExtensionsCard_app_options svg {
                width: 16px;
                height: 16px;
                color: var(--cpd-color-icon-tertiary);
            }
                .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_ExtensionsCard_app_pinToggle:hover::after, .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_ExtensionsCard_app_options:hover::after {
                    content: "";
                    position: absolute;
                    height: 24px;
                    width: 24px;
                    top: var(--cpd-space-2x); /* equal to padding-top of parent */
                    left: 0;
                    border-radius: 12px;
                    background-color: rgb(141, 151, 165, 0.1);
                }

        .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_ExtensionsCard_app_pinToggle {
            right: 8px;
        }

        .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_ExtensionsCard_app_options {
            right: 32px; /* 24 + 8 */
        }
            .mx_ExtensionsCard .mx_ExtensionsCard_Button.mx_ExtensionsCard_Button_pinned::after {
                opacity: 0.2;
            }

            .mx_ExtensionsCard .mx_ExtensionsCard_Button.mx_ExtensionsCard_Button_pinned .mx_ExtensionsCard_app_pinToggle svg {
                color: #0dbd8b;
            }

        .mx_ExtensionsCard .mx_ExtensionsCard_Button::before {
            content: normal;
            content: initial;
        }

        .mx_ExtensionsCard .mx_ExtensionsCard_Button::after {
            top: var(--cpd-space-2x); /* re-align based on the height change */
            pointer-events: none; /* pass through to the real button */
        }

    /* Set layout for everyone button */
    .mx_ExtensionsCard a[data-kind="primary"] {
        margin-top: var(--cpd-space-10x);
    }

    .mx_ExtensionsCard .mx_EmptyState::before {
        /* Overlap the Add extensions button */
        top: var(--AddExtension-overlap);
    }

    .mx_ExtensionsCard .mx_EmptyState {
        /* Stop empty state scrolling */
        height: calc(100% + var(--AddExtension-overlap));
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PinnedMessagesCard {
    --unpin-height: 76px;
}

    .mx_PinnedMessagesCard .mx_PinnedMessagesCard_wrapper {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        padding: var(--cpd-space-4x);
        gap: var(--cpd-space-6x);
        overflow-y: auto;
    }

        .mx_PinnedMessagesCard .mx_PinnedMessagesCard_wrapper .mx_PinnedMessagesCard_Separator {
            min-height: 1px;
            /* Override default compound value */
            margin-block: 0;
        }

    .mx_PinnedMessagesCard .mx_PinnedMessagesCard_wrapper_unpin_all {
        /* Remove the unpin all button height and the top and bottom padding  */
        height: calc(100% - var(--unpin-height) - calc(var(--cpd-space-4x) * 2));
    }

    .mx_PinnedMessagesCard .mx_PinnedMessagesCard_unpin {
        /* Make it float at the bottom of the unpin panel */
        position: absolute;
        bottom: 0;
        width: 100%;
        height: var(--unpin-height);
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-shadow: 0 4px 24px 0 rgb(27, 29, 34, 0.1);
                box-shadow: 0 4px 24px 0 rgb(27, 29, 34, 0.1);
        background: var(--cpd-color-bg-canvas-default);
    }

    .mx_PinnedMessagesCard .mx_EventTile_body {
        word-break: break-word;
    }
}
@layer app-web{

/*
Copyright 2024, 2025 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomSummaryCard {
    --cpd-separator-inset: var(--cpd-space-4x);
    --cpd-separator-spacing: var(--cpd-space-4x);
}

    .mx_RoomSummaryCard .mx_RoomSummaryCard_container {
        text-align: center;
        margin: var(--cpd-space-5x) var(--cpd-space-4x) 0;
    }

    .mx_RoomSummaryCard .mx_RoomSummaryCard_roomName,
    .mx_RoomSummaryCard .mx_RoomSummaryCard_alias {
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        white-space: pre-wrap;
        overflow: hidden;
    }

    .mx_RoomSummaryCard .mx_RoomSummaryCard_alias {
        text-overflow: ellipsis;
    }

    .mx_RoomSummaryCard .mx_RoomSummaryCard_topic {
        padding: 0 12px;
        color: var(--cpd-color-text-secondary);
    }

        .mx_RoomSummaryCard .mx_RoomSummaryCard_topic .mx_RoomSummaryCard_topic_box {
            width: 100%;
        }

        .mx_RoomSummaryCard .mx_RoomSummaryCard_topic .mx_RoomSummaryCard_topic_container {
            text-align: start;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
        }

        .mx_RoomSummaryCard .mx_RoomSummaryCard_topic .mx_RoomSummaryCard_topic_edit {
            width: -webkit-max-content;
            width: -moz-max-content;
            width: max-content;
        }

        .mx_RoomSummaryCard .mx_RoomSummaryCard_topic p {
            white-space: pre-wrap;
            width: 100%;
            min-width: 0;
            margin: 0;
        }

        .mx_RoomSummaryCard .mx_RoomSummaryCard_topic a {
            cursor: pointer;
        }

        .mx_RoomSummaryCard .mx_RoomSummaryCard_topic .mx_RoomSummaryCard_topic_chevron {
            -webkit-transition: -webkit-transform 0.3s;
            transition: -webkit-transform 0.3s;
            transition: transform 0.3s;
            transition: transform 0.3s, -webkit-transform 0.3s;
        }
            .mx_RoomSummaryCard .mx_RoomSummaryCard_topic.mx_RoomSummaryCard_topic_collapsed p {
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: normal;
                display: -webkit-box;
                -webkit-box-orient: vertical;
                -webkit-line-clamp: 2;
            }

            .mx_RoomSummaryCard .mx_RoomSummaryCard_topic.mx_RoomSummaryCard_topic_collapsed .mx_RoomSummaryCard_topic_chevron {
                -webkit-transform: rotate(-90deg);
                        transform: rotate(-90deg);
            }

    .mx_RoomSummaryCard .mx_AccessibleButton_kind_link {
        margin-top: 12px;
        margin-bottom: 12px;
        font-size: 0.8125rem;
        font-weight: var(--cpd-font-weight-semibold);
    }

.mx_RoomSummaryCard_badges {
    margin: var(--cpd-space-4x) 0;
}

.mx_RoomSummaryCard_search {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    min-width: 0;
}

    .mx_RoomSummaryCard_search input[type="search"]::-webkit-search-cancel-button {
        display: inline;
        display: initial; /* override _common.pcss which inhibits this */
    }

.mx_RoomSummaryCard_roomName {
    margin: var(--cpd-space-3x) 0 var(--cpd-space-1x);
}

.mx_RoomSummaryCard_bottomOptions {
    margin: 0 0 var(--cpd-space-8x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021-2024 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ThreadPanel {
    height: 100px;
    overflow: visible;
}

    .mx_ThreadPanel .mx_ThreadPanelHeader {
        height: 64px;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        padding: 16px;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        border-bottom: 1px solid var(--cpd-color-gray-400);
    }

        .mx_ThreadPanel .mx_ThreadPanelHeader .mx_AccessibleButton {
            font-size: 12px;
            color: #edf3ff;
        }

        .mx_ThreadPanel .mx_ThreadPanelHeader .mx_ThreadPanel_vertical_separator {
            height: 28px;
            margin-left: var(--cpd-space-3x);
            margin-right: var(--cpd-space-2x);
            border-left: 1px solid var(--cpd-color-gray-400);
        }

        .mx_ThreadPanel .mx_ThreadPanelHeader .mx_ThreadPanel_dropdown {
            font: var(--cpd-font-body-sm-regular);
            padding: 3px var(--cpd-space-1x) 3px var(--cpd-space-2x);
            border-radius: 4px;
            line-height: 1.5;
            -webkit-user-select: none;
               -moz-user-select: none;
                -ms-user-select: none;
                    user-select: none;
        }

            .mx_ThreadPanel .mx_ThreadPanelHeader .mx_ThreadPanel_dropdown:hover,
            .mx_ThreadPanel .mx_ThreadPanelHeader .mx_ThreadPanel_dropdown[aria-expanded="true"] {
                background: #6f7882;
            }

            .mx_ThreadPanel .mx_ThreadPanelHeader .mx_ThreadPanel_dropdown svg {
                margin-left: 2px;
                height: 20px;
                width: 20px;
                display: inline-block;
                vertical-align: bottom;
            }

    .mx_ThreadPanel .mx_AutoHideScrollbar,
    .mx_ThreadPanel .mx_RoomView_messagePanelSpinner {
        background-color: #181b21;
        border-radius: 8px;
        -webkit-padding-end: 0;
                padding-inline-end: 0;
        overflow-y: scroll; /* set gap between the thread tile and the right border */
        height: 100%;
    }
        .mx_ThreadPanel .mx_EventTile[data-layout="group"] .mx_MessageActionBar {
            right: 0;
            top: -36px; /* 2px above EventTile */
            z-index: 10; /* See _EventTile.pcss */
        }

    /* For style rules of EventTile in a thread, see _EventTile.pcss */
    .mx_ThreadPanel.mx_ThreadView {
        max-height: 100%;
    }

        .mx_ThreadPanel.mx_ThreadView .mx_ThreadView_timelinePanelWrapper {
            position: relative;
            min-height: 0; /* don't displace the composer */
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
        }

            .mx_ThreadPanel.mx_ThreadView .mx_ThreadView_timelinePanelWrapper .mx_FileDropTarget {
                border-radius: 8px;
            }

        .mx_ThreadPanel.mx_ThreadView .mx_MessageComposer_sendMessage {
            margin-right: 0;
        }

        /* Make use of the space above the composer buttons too */
        .mx_ThreadPanel.mx_ThreadView .mx_Autocomplete {
            width: calc(100% + 140px);
        }
        .mx_ThreadPanel.mx_ThreadView.mx_ThreadView_narrow .mx_Autocomplete {
            width: calc(100% + 108px);
        }
        .mx_ThreadPanel .mx_RoomView_messagePanel.mx_RoomView_messageListWrapper {
            position: static;
            position: initial;
        }

        .mx_ThreadPanel .mx_RoomView_messagePanel .mx_RoomView_messageListWrapper {
            width: calc(100% + 6px); /* 8px - 2px */
        }

        .mx_ThreadPanel .mx_RoomView_messagePanel .mx_RoomView_empty {
            display: contents;
        }

    .mx_ThreadPanel .mx_RoomView_MessageList {
        -webkit-padding-start: var(--cpd-space-2x);
                padding-inline-start: var(--cpd-space-2x);
        -webkit-padding-end: var(--cpd-space-2x);
                padding-inline-end: var(--cpd-space-2x);
        content-visibility: visible;
    }

    .mx_ThreadPanel .mx_EventTile,
    .mx_ThreadPanel .mx_GenericEventListSummary {
        /* Account for scrollbar when hovering */
        padding-top: 0;
    }

        .mx_ThreadPanel .mx_EventTile .mx_TimelineSeparator, .mx_ThreadPanel .mx_GenericEventListSummary .mx_TimelineSeparator {
            display: none;
        }

        .mx_ThreadPanel .mx_EventTile.mx_EventTile_clamp:hover, .mx_ThreadPanel .mx_GenericEventListSummary.mx_EventTile_clamp:hover {
            cursor: pointer;
        }

    .mx_ThreadPanel .mx_MessageComposer {
        background-color: #181b21;
        border-radius: 8px;
        margin-top: 8px;
        padding: 0 8px;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
    }

    .mx_ThreadPanel .mx_BaseCard_footer {
        text-align: left;
        font-size: 0.75rem;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-pack: end;
            -ms-flex-pack: end;
                justify-content: flex-end;
        gap: 4px;
        position: relative;
        top: 2px;
        padding-right: 8px;
    }

        .mx_ThreadPanel .mx_BaseCard_footer .mx_AccessibleButton_kind_link_inline {
            color: #edf3ff;
        }
    .mx_ContextualMenu_wrapper .mx_ThreadPanel_Header_FilterOptionItem {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        -webkit-box-pack: justify;
            -ms-flex-pack: justify;
                justify-content: space-between;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        padding: 10px 20px 10px 30px;
        position: relative;
    }

        .mx_ContextualMenu_wrapper .mx_ThreadPanel_Header_FilterOptionItem:hover {
            background-color: #22262e;
        }
            .mx_ContextualMenu_wrapper .mx_ThreadPanel_Header_FilterOptionItem[aria-checked="true"] span:first-child {
                margin-left: -20px;
            }

            .mx_ContextualMenu_wrapper .mx_ThreadPanel_Header_FilterOptionItem[aria-checked="true"] svg {
                width: 12px;
                height: 12px;
                margin-right: 8px;
                color: #edf3ff;
                display: inline-block;
                vertical-align: middle;
                position: absolute;
                top: 14px;
                left: 10px;
            }

        .mx_ContextualMenu_wrapper .mx_ThreadPanel_Header_FilterOptionItem span:last-child {
            color: #edf3ff;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021, 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_TimelineCard .mx_TimelineCard_timeline {
        overflow: hidden;
        position: relative; /* offset parent for jump to bottom button */
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        border-radius: 8px;
    }

    .mx_TimelineCard .mx_NewRoomIntro {
        -webkit-margin-start: var(--BaseCard_EventTile-spacing-inline);
                margin-inline-start: var(--BaseCard_EventTile-spacing-inline);
        -webkit-margin-end: var(--BaseCard_EventTile-spacing-inline);
                margin-inline-end: var(--BaseCard_EventTile-spacing-inline);
    }

    .mx_TimelineCard .mx_EventTile_content {
        margin-right: 0;
    }
        .mx_TimelineCard .mx_EventTile .mx_ThreadSummary {
            position: relative;
            padding-right: 11px;
        }

            .mx_TimelineCard .mx_EventTile .mx_ThreadSummary::after {
                content: "";
                display: block;
                position: absolute;
                left: 0;
                bottom: -16px;
                height: 1px;
                width: 100%;
                border-bottom: 1px solid #616b7f;
            }

        .mx_TimelineCard .mx_EventTile[data-layout="irc"],
        .mx_TimelineCard .mx_EventTile[data-layout="group"] {
            --TimelineCard_ReadReceiptGroup-inset-block-start: -6px;
            --EventTile_group_line-spacing-inline-start: var(--BaseCard_EventTile-spacing-inline);
        }

            .mx_TimelineCard .mx_EventTile[data-layout="irc"].mx_EventTile_info .mx_EventTile_line,
            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_EventTile_line,
            .mx_TimelineCard .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_line,
            .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_EventTile_line {
                padding: var(--BaseCard_EventTile_line-padding-block) var(--BaseCard_EventTile-spacing-inline);
                -webkit-padding-end: 46px;
                        padding-inline-end: 46px;
                -webkit-padding-end: var(--MessageTimestamp-width);
                        padding-inline-end: var(--MessageTimestamp-width); /* ensure timestamp is not hidden */
            }

                .mx_TimelineCard .mx_EventTile[data-layout="irc"].mx_EventTile_info .mx_EventTile_line .mx_EventTile_e2eIcon, .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_EventTile_line .mx_EventTile_e2eIcon, .mx_TimelineCard .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_line .mx_EventTile_e2eIcon, .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_EventTile_line .mx_EventTile_e2eIcon {
                    inset-inline-start: var(--cpd-space-2x);
                }

            .mx_TimelineCard .mx_EventTile[data-layout="irc"].mx_EventTile_info, .mx_TimelineCard .mx_EventTile[data-layout="group"].mx_EventTile_info {

                /* Info events should have the same size as state events, those
                 * are usually wrapped in a generic event list summary */
            }
                .mx_TimelineCard .mx_EventTile[data-layout="irc"].mx_EventTile_info .mx_EventTile_avatar, .mx_TimelineCard .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_avatar {
                    inset-inline-start: 18px;
                }
                .mx_TimelineCard .mx_EventTile[data-layout="irc"].mx_EventTile_info, .mx_TimelineCard .mx_EventTile[data-layout="group"].mx_EventTile_info{
                font: var(--cpd-font-body-sm-regular);
}

            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_EventTile_avatar, .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_EventTile_avatar {
                inset-inline-start: -3px;
            }

            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_EventTile_msgOption, .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_EventTile_msgOption {
                -webkit-margin-end: 0;
                        margin-inline-end: 0;
            }

                .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_EventTile_msgOption .mx_ReadReceiptGroup, .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_EventTile_msgOption .mx_ReadReceiptGroup {
                    top: var(--TimelineCard_ReadReceiptGroup-inset-block-start);
                }

            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_DisambiguatedProfile,
            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_ThreadSummary,
            .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_DisambiguatedProfile,
            .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_ThreadSummary {
                -webkit-margin-start: var(--BaseCard_EventTile-spacing-inline);
                        margin-inline-start: var(--BaseCard_EventTile-spacing-inline);
            }

            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_DisambiguatedProfile, .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_DisambiguatedProfile {
                max-width: calc(100% - var(--BaseCard_EventTile-spacing-inline)); /* instead of $left-gutter */
            }

            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_ReplyTile .mx_DisambiguatedProfile, .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_ReplyTile .mx_DisambiguatedProfile {
                -webkit-margin-start: 0;
                        margin-inline-start: 0;
                max-width: none;
                max-width: initial;
            }

            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_MessageTimestamp, .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_MessageTimestamp {
                inset-inline: auto 0;
                font-size: 0.75rem;
            }

            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_ReactionsRow, .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_ReactionsRow {
                /* See: var(--ThreadView_group_spacing-end) for ReactionsRow on _EventTile.pcss */
                -webkit-margin-end: var(--cpd-space-2x);
                        margin-inline-end: var(--cpd-space-2x);
            }

            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_ThreadSummary, .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_ThreadSummary {
                -webkit-margin-end: 0;
                        margin-inline-end: 0;
                max-width: min(calc(100% - 36px), 600px);
            }
            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_EventTile_avatar,
            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_MessageTimestamp {
                position: absolute;
            }

        .mx_TimelineCard .mx_EventTile[data-layout="group"] {
            /* Read receipt group on compact modern layout */
            /* This is required because mx_TimelineCard is a child element wrapped by mx_MatrixChat_useCompactLayout, */
        }
            /* which specifies the default position of mx_ReadReceiptGroup on compact modern layout. */
            .mx_MatrixChat_useCompactLayout .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_ReadReceiptGroup {
                top: var(--TimelineCard_ReadReceiptGroup-inset-block-start);
            }
            .mx_TimelineCard .mx_EventTile[data-layout="bubble"]::before {
                z-index: auto; /* enable background color on hover */
            }

            .mx_TimelineCard .mx_EventTile[data-layout="bubble"].mx_EventTile_info .mx_MessageActionBar {
                /* 1px: border width */
                inset-inline-end: calc(8px + 1px);
                inset-inline-end: calc(var(--container-gap-width) + 1px);
            }

            .mx_TimelineCard .mx_EventTile[data-layout="bubble"] .mx_ReactionsRow {
                position: relative; /* display on hover */
            }

    .mx_TimelineCard .mx_LegacyCallEvent_wrapper {
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        margin: auto 5px;
    }
        .mx_TimelineCard .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent {
            margin: 4px;
        }
            .mx_TimelineCard .mx_GenericEventListSummary[data-layout="irc"] .mx_EventTile_line,
            .mx_TimelineCard .mx_GenericEventListSummary[data-layout="irc"] .mx_GenericEventListSummary_unstyledList > .mx_EventTile_info .mx_EventTile_avatar ~ .mx_EventTile_line,
            .mx_TimelineCard .mx_GenericEventListSummary[data-layout="group"] .mx_EventTile_line,
            .mx_TimelineCard .mx_GenericEventListSummary[data-layout="group"] .mx_GenericEventListSummary_unstyledList > .mx_EventTile_info .mx_EventTile_avatar ~ .mx_EventTile_line {
                -webkit-padding-start: var(--BaseCard_EventTile-spacing-inline);
                        padding-inline-start: var(--BaseCard_EventTile-spacing-inline);
                -webkit-padding-end: 46px;
                        padding-inline-end: 46px;
                -webkit-padding-end: var(--MessageTimestamp-width);
                        padding-inline-end: var(--MessageTimestamp-width); /* ensure timestamp is not hidden */
            }

    .mx_TimelineCard .mx_WhoIsTypingTile {
        margin-left: -12px; /* undo padding on the message list */
    }

    .mx_TimelineCard .mx_WhoIsTypingTile_avatars {
        -ms-flex-preferred-size: 48px;
            flex-basis: 48px; /* 12 (padding on message list) + 36 (padding on event lines) */
    }
        /* RR next to a message on the messsge list */
            .mx_TimelineCard .mx_GenericEventListSummary_unstyledList .mx_EventTile[data-layout="bubble"] .mx_ReadReceiptGroup, .mx_TimelineCard .mx_RoomView_MessageList .mx_EventTile[data-layout="bubble"] .mx_ReadReceiptGroup {
                /* 6px: scroll bar width (magic number) */
                /* stylelint-disable-next-line declaration-colon-space-after */
                inset-inline-end: calc(
                    -1 * var(--ReadReceiptGroup_EventBubbleTile-spacing-end) + 8px + 6px
                );
                inset-inline-end: calc(
                    -1 * var(--ReadReceiptGroup_EventBubbleTile-spacing-end) + var(--container-gap-width) + 6px
                );
            }
                .mx_TimelineCard .mx_GenericEventListSummary_unstyledList .mx_EventTile[data-layout="bubble"].mx_EventTile_info .mx_ReadReceiptGroup, .mx_TimelineCard .mx_RoomView_MessageList .mx_EventTile[data-layout="bubble"].mx_EventTile_info .mx_ReadReceiptGroup {
                    inset-inline-end: -4px; /* align with RR outside of info tile */
                }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_UserInfo.mx_BaseCard {
    /* UserInfo has a circular image at the top so it fits between the back & close buttons */
    padding-top: 0;
    overflow-y: auto;
    font-size: var(--cpd-font-size-body-sm);
}

    .mx_UserInfo.mx_BaseCard .mx_UserInfo_container {
        padding: var(--cpd-space-2x) 0 var(--cpd-space-4x);
        margin: 0 var(--cpd-space-4x);
    }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_container + .mx_UserInfo_container {
            border-top: 1px solid var(--cpd-color-gray-400);
        }

    .mx_UserInfo.mx_BaseCard .mx_UserInfo_memberDetailsContainer {
        padding-top: 0;
        padding-bottom: 0;
        margin-bottom: var(--cpd-space-2x);
    }

    .mx_UserInfo.mx_BaseCard .mx_RoomTile_titleContainer {
        width: 154px;
    }

    .mx_UserInfo.mx_BaseCard .mx_RoomTile_badge {
        display: none;
    }

    .mx_UserInfo.mx_BaseCard .mx_RoomTile_title {
        width: 160px;
    }

    .mx_UserInfo.mx_BaseCard .mx_UserInfo_avatar {
        margin: var(--cpd-space-12x) var(--cpd-space-4x) 0 var(--cpd-space-4x);
    }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_avatar .mx_UserInfo_avatar_transition {
            max-width: 120px;
            aspect-ratio: 1 / 1;
            margin: 0 auto;
            -webkit-transition: 0.5s;
            transition: 0.5s;
        }

            .mx_UserInfo.mx_BaseCard .mx_UserInfo_avatar .mx_UserInfo_avatar_transition .mx_BaseAvatar {
                /* Override the calculated font-size so that the letter isn't tiny */
                font-size: 4rem;
            }

            .mx_UserInfo.mx_BaseCard .mx_UserInfo_avatar .mx_UserInfo_avatar_transition .mx_BaseAvatar,
            .mx_UserInfo.mx_BaseCard .mx_UserInfo_avatar .mx_UserInfo_avatar_transition .mx_BaseAvatar img {
                width: 100%;
                height: 100%;
            }

    .mx_UserInfo.mx_BaseCard h2 {
        text-transform: uppercase;
        color: #edf3ff;
        font: var(--cpd-font-body-md-semibold);
        font-weight: var(--cpd-font-weight-semibold);
        margin: var(--cpd-space-1x) 0;
    }

    .mx_UserInfo.mx_BaseCard p {
        margin: 5px 0;
    }

    .mx_UserInfo.mx_BaseCard .mx_UserInfo_header {
        margin-bottom: var(--cpd-space-8x);
        padding-bottom: 0;
    }

    .mx_UserInfo.mx_BaseCard .mx_UserInfo_profile {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-1x);
    }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_profile h1 {
            margin: 0;
            font-size: 1.25rem;
            line-height: 1.5625rem;
        }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_profile .mx_UserInfo_profile_name {
            min-height: 30px;

            /* limit to 2 lines, show an ellipsis if it overflows */
            /* this looks webkit specific but is supported by Firefox 68+ */
            display: -webkit-box;
            -webkit-box-orient: vertical;
            -webkit-line-clamp: 2;

            overflow: hidden;
            word-break: break-all;
            text-overflow: ellipsis;
        }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_profile .mx_UserInfo_profile_mxid {
            color: var(--cpd-color-text-secondary);
            height: 28px;
        }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_profile .mx_UserInfo_profileStatus {
            height: 20px;
        }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_profile .mx_UserInfo_timezone {
            height: 20px;
            margin: 0;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

        /** Overrides for the copy to clipboard button **/
        .mx_UserInfo.mx_BaseCard .mx_UserInfo_profile .mx_CopyableText {
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_profile .mx_CopyableText_copyButton {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            position: static;
            position: initial;
        }

    .mx_UserInfo.mx_BaseCard .mx_UserInfo_timezone {
        margin: var(--cpd-space-1x) 0;
    }

    .mx_UserInfo.mx_BaseCard .mx_PresenceLabel {
        font: var(--cpd-font-body-sm-regular);
        opacity: 1;
    }

    .mx_UserInfo.mx_BaseCard .mx_UserInfo_verification {
        margin-top: var(--cpd-space-4x);
        height: 36px;
    }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_verification .mx_UserInfo_verified_badge {
            min-width: 68px;
            height: 20px;
        }

            .mx_UserInfo.mx_BaseCard .mx_UserInfo_verification .mx_UserInfo_verified_badge .mx_UserInfo_verified_icon {
                -ms-flex-negative: 0;
                    flex-shrink: 0;
            }

            .mx_UserInfo.mx_BaseCard .mx_UserInfo_verification .mx_UserInfo_verified_badge .mx_UserInfo_verified_label {
                margin: 0;
            }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_verification .mx_UserInfo_verification_unavailable {
            color: var(--cpd-color-text-secondary);
        }
        .mx_UserInfo.mx_BaseCard .mx_UserInfo_memberDetails .mx_UserInfo_profileField {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;

            margin: 6px 0;
        }

            .mx_UserInfo.mx_BaseCard .mx_UserInfo_memberDetails .mx_UserInfo_profileField .mx_UserInfo_roleDescription {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-pack: center;
                    -ms-flex-pack: center;
                        justify-content: center;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
                /* try to make it the same height as the dropdown */
                margin: 11px 0 12px 0;
            }

            .mx_UserInfo.mx_BaseCard .mx_UserInfo_memberDetails .mx_UserInfo_profileField .mx_Field {
                margin: 0;
            }

    .mx_UserInfo.mx_BaseCard .mx_UserInfo_field {
        line-height: 1rem;
    }

    .mx_UserInfo.mx_BaseCard .mx_UserInfo_statusMessage {

        font: var(--cpd-font-body-sm-regular);
        font-size: 0.6875rem;
        line-height: 1rem;
        opacity: 0.5;
        overflow: hidden;
        word-break: break-word;
        text-overflow: ellipsis;
        display: -webkit-box;
        max-height: calc(1rem * 3);
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
    }

    .mx_UserInfo.mx_BaseCard .mx_AutoHideScrollbar {
        -webkit-box-flex: 1;
            -ms-flex: 1 1 0px;
                flex: 1 1 0;
    }
            .mx_UserInfo.mx_BaseCard.mx_UserInfo_smallAvatar .mx_UserInfo_avatar .mx_UserInfo_avatar_transition {
                max-width: 72px;
                margin: 0 auto;
            }

            .mx_UserInfo.mx_BaseCard.mx_UserInfo_smallAvatar .mx_UserInfo_avatar .mx_BaseAvatar {
                /* Override the calculated font-size so that the letter isn't tiny */
                font-size: 2rem;
            }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    /* center the big shield icon */
    .mx_VerificationPanel_verified_section .mx_E2EIcon, .mx_VerificationPanel_reciprocate_section .mx_E2EIcon {
        /* Override general user info margin */
        margin: 20px auto !important;
    }
        .mx_UserInfo.mx_BaseCard .mx_UserInfo_container:not(.mx_UserInfo_separator) > div > p {
            margin-top: 0;
            margin-bottom: 0;
        }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_container:not(.mx_UserInfo_separator) .mx_VerificationPanel_verifyByEmojiButton,
        .mx_UserInfo.mx_BaseCard .mx_UserInfo_container:not(.mx_UserInfo_separator) .mx_UserInfo_wideButton {
            width: -webkit-fit-content;
            width: -moz-fit-content;
            width: fit-content;
        }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_container:not(.mx_UserInfo_separator) .mx_EncryptionInfo_spinner,
        .mx_UserInfo.mx_BaseCard .mx_UserInfo_container:not(.mx_UserInfo_separator) .mx_VerificationShowSas {
            -webkit-margin-start: auto;
                    margin-inline-start: auto;
            -webkit-margin-end: auto;
                    margin-inline-end: auto;
        }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_container:not(.mx_UserInfo_separator) .mx_Spinner,
        .mx_UserInfo.mx_BaseCard .mx_UserInfo_container:not(.mx_UserInfo_separator) .mx_VerificationShowSas {
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

    .mx_UserInfo.mx_BaseCard .mx_VerificationPanel_qrCode {
        padding: 4px 4px 0 4px;
        background: white;
        border-radius: 4px;
        width: -webkit-max-content;
        width: -moz-max-content;
        width: max-content;
        max-width: 100%;
        /* Override general user info margin */
        margin: 0 auto !important;
    }

        .mx_UserInfo.mx_BaseCard .mx_VerificationPanel_qrCode canvas {
            /* override height and width which are set on the element directly */
            height: auto !important;
            width: 100% !important;
            max-width: 240px;
        }
        .mx_UserInfo.mx_BaseCard .mx_VerificationPanel_reciprocate_section .mx_AccessibleButton {
            width: 100%;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
            padding: 10px;
            display: block;
            margin: 10px 0;
        }

/* Special case styling for EncryptionPanel in a Modal dialog */
    .mx_Dialog .mx_VerificationPanel_QRPhase_startOptions, .mx_CompleteSecurity_body .mx_VerificationPanel_QRPhase_startOptions {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        margin-top: 10px;
        margin-bottom: 10px;
        -webkit-box-align: stretch;
            -ms-flex-align: stretch;
                align-items: stretch;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
    }

        .mx_Dialog .mx_VerificationPanel_QRPhase_startOptions > .mx_VerificationPanel_QRPhase_betweenText, .mx_CompleteSecurity_body .mx_VerificationPanel_QRPhase_startOptions > .mx_VerificationPanel_QRPhase_betweenText {
            width: 50px;
            vertical-align: middle;
            text-align: center;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
        }

        .mx_Dialog .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption, .mx_CompleteSecurity_body .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption {
            background-color: #22262e;
            border-radius: 10px;
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            padding: 20px;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            position: relative;
            max-width: 310px;
            -webkit-box-pack: justify;
                -ms-flex-pack: justify;
                    justify-content: space-between;
        }

            .mx_Dialog .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption canvas,
            .mx_Dialog .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption .mx_VerificationPanel_QRPhase_noQR,
            .mx_CompleteSecurity_body .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption canvas,
            .mx_CompleteSecurity_body .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption .mx_VerificationPanel_QRPhase_noQR {
                width: 220px !important;
                height: 220px !important;
                background-color: #fff;
                border-radius: 4px;
                vertical-align: middle;
                text-align: center;
                padding: 10px;
            }

            .mx_Dialog .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption > p, .mx_CompleteSecurity_body .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption > p {
                margin-top: 0;
                font-weight: 700;
            }

            .mx_Dialog .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption .mx_VerificationPanel_QRPhase_helpText, .mx_CompleteSecurity_body .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption .mx_VerificationPanel_QRPhase_helpText {
                font: var(--cpd-font-body-md-regular);
                margin: 30px 0;
                text-align: center;
            }

    /* EncryptionPanel when verification is done */
        /* right align the "Got it" button */
        .mx_Dialog .mx_VerificationPanel_verified_section .mx_AccessibleButton, .mx_CompleteSecurity_body .mx_VerificationPanel_verified_section .mx_AccessibleButton {
            float: right;
        }
        .mx_Dialog .mx_VerificationPanel_reciprocate_section .mx_AccessibleButton, .mx_CompleteSecurity_body .mx_VerificationPanel_reciprocate_section .mx_AccessibleButton {
            margin-left: 10px;
            padding: 7px 40px;
        }

        .mx_Dialog .mx_VerificationPanel_reciprocate_section .mx_VerificationPanel_reciprocateButtons, .mx_CompleteSecurity_body .mx_VerificationPanel_reciprocate_section .mx_VerificationPanel_reciprocateButtons {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: horizontal;
            -webkit-box-direction: normal;
                -ms-flex-direction: row;
                    flex-direction: row;
            -webkit-box-pack: end;
                -ms-flex-pack: end;
                    justify-content: flex-end;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_WidgetCard .mx_AppTileFullWidth {
        max-width: none;
        max-width: initial;
        width: auto !important;
        height: 100%;
        border: 0;
    }
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AliasSettings_localAddresses {
    cursor: pointer;
    color: var(--cpd-color-text-primary);
    font-weight: var(--cpd-font-weight-semibold);
    text-decoration: underline;
    list-style: none;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
}

    /* list-style doesn't do it for webkit */
    .mx_AliasSettings_localAddresses::-webkit-details-marker {
        display: none;
    }
}
@layer app-web{

/*
 * Copyright 2025 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_RoomListPanel {
    background-color: var(--cpd-color-bg-canvas-default);
    height: 100%;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AppsDrawer {
    --minWidth: 240px; /* TODO this should be 300px but that's too large */

    margin: 8px;

    margin: var(--container-gap-width);
    /* The left side gap is fully handled by this margin. To prohibit bleeding on webkit browser. */
    margin-right: calc(8px / 2);
    margin-right: calc(var(--container-gap-width) / 2);
    margin-bottom: 0; /* No bottom margin for the correct gap to the CallView below. */
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    overflow: hidden;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
}

    .mx_AppsDrawer .mx_AppsDrawer_resizer {
        margin-bottom: 8px;
        margin-bottom: var(--container-gap-width);
    }

    .mx_AppsDrawer .mx_AppsDrawer_resizer_container {
        width: 100%;
        height: 10px;
        display: block;
        position: relative;
    }

        .mx_AppsDrawer .mx_AppsDrawer_resizer_container .mx_AppsDrawer_resizer_container_handle {
            cursor: ns-resize;

            /* Override styles from library, making the whole area the target area */
            width: 100% !important;
            height: 100% !important;

            /* This is positioned directly below frame */
            position: absolute;
            bottom: 50% !important; /* override from library */

            /* We then render the pill handle in an ::after to keep it in the handle's */
        }
            /* area without being a massive line across the screen */
            .mx_AppsDrawer .mx_AppsDrawer_resizer_container .mx_AppsDrawer_resizer_container_handle::after {
                content: "";
                position: absolute;
                border-radius: 3px;

                height: 4px;
                bottom: 0;

                /* Together, these make the bar 64px wide */
                /* These are also overridden from the library */
                left: calc(50% - 32px);
                right: calc(50% - 32px);
            }
        .mx_AppsDrawer:hover .mx_AppsDrawer_resizer_container_handle::after {
            opacity: 0.8;
            background: #edf3ff;
        }

        .mx_AppsDrawer:hover .mx_ResizeHandle--horizontal::before {
            position: absolute;
            left: 3px;
            top: 50%;
            -webkit-transform: translate(0, -50%);
                    transform: translate(0, -50%);

            height: 64px; /* to match width of the ones on roomlist */
            width: 4px;
            border-radius: 4px;

            content: "";

            background-color: #edf3ff;
            opacity: 0.8;
        }

    .mx_AppsDrawer .mx_AppTile {
        width: 50%;
        min-width: var(--minWidth);
    }

    .mx_AppsDrawer.mx_AppsDrawer--maximised {
        margin-bottom: 8px;
        margin-bottom: var(--container-gap-width);
    }

    .mx_AppsDrawer.mx_AppsDrawer--resizing .mx_AppTile_persistedWrapper {
        z-index: 1;
    }

    .mx_AppsDrawer.mx_AppsDrawer--2apps .mx_AppTile {
        width: 50%;
    }

        .mx_AppsDrawer.mx_AppsDrawer--2apps .mx_AppTile:nth-child(3) {
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
            width: 0 !important;
            min-width: var(--minWidth) !important;
        }
    .mx_AppsDrawer.mx_AppsDrawer--3apps .mx_AppTile {
        width: 33%;
    }

        .mx_AppsDrawer.mx_AppsDrawer--3apps .mx_AppTile:nth-child(3) {
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
            width: 0 !important;
            min-width: var(--minWidth) !important;
        }

.mx_AppsContainer {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    height: 100%;
    width: 100%;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-height: 0;
}

    .mx_AppsContainer .mx_AppTile:first-of-type {
        border-left-width: 8px;
        border-left-width: var(--container-border-width);
        border-radius: 10px 0 0 10px;
    }
    .mx_AppsContainer .mx_AppTile:last-of-type {
        border-right-width: 8px;
        border-right-width: var(--container-border-width);
        border-radius: 0 10px 10px 0;
    }

    .mx_AppsContainer .mx_ResizeHandle--horizontal {
        position: relative;
    }

        .mx_AppsContainer .mx_ResizeHandle--horizontal > div {
            width: 0;
        }

.mx_AppTile {
    border: 8px solid #22262e;
    border: var(--container-border-width) solid #22262e;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    background-color: #22262e;
}

.mx_AppTileFullWidth {
    width: 100% !important; /* to override the inline style set by the resizer */
    margin: 0;
    padding: 0;
    border: 8px solid #22262e;
    border: var(--container-border-width) solid #22262e;
    border-radius: 8px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    background-color: #22262e;
}

.mx_AppTile_mini {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

.mx_AppTile .mx_AppTile_persistedWrapper,
.mx_AppTileFullWidth .mx_AppTile_persistedWrapper,
.mx_AppTile_mini .mx_AppTile_persistedWrapper {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
}

.mx_AppTile_persistedWrapper div {
    width: 100%;
    height: 100%;
}

.mx_AppTileMenuBar {
    margin: 0;
    font-size: 0.75rem;
    background-color: #22262e;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    width: 100%;
    padding-top: 3px;
    padding-bottom: 6px;
}

    .mx_AppTileMenuBar .mx_AppTileMenuBar_title {
        line-height: 20px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

        .mx_AppTileMenuBar .mx_AppTileMenuBar_title .mx_WidgetAvatar {
            margin-right: 12px;
        }

        .mx_AppTileMenuBar .mx_AppTileMenuBar_title h1 {
            font-size: inherit;
            margin: 0;
        }

        .mx_AppTileMenuBar .mx_AppTileMenuBar_title > :last-child {
            margin-left: 9px;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

    .mx_AppTileMenuBar .mx_AppTileMenuBar_widgets {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

        .mx_AppTileMenuBar .mx_AppTileMenuBar_widgets .mx_AppTileMenuBar_widgets_button {
            --size: 24px; /* Size of the button. Its height and width values should be same */

            margin: 0 4px;
            position: relative;
            height: 24px;
            height: var(--size);
            width: 24px;
            width: var(--size);
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
        }

            .mx_AppTileMenuBar .mx_AppTileMenuBar_widgets .mx_AppTileMenuBar_widgets_button:hover::after {
                content: "";
                position: absolute;
                height: var(--size);
                width: var(--size);
                background-color: #1a1d23;
                border-radius: 50%;
                left: 0;
                top: 0;
            }

            .mx_AppTileMenuBar .mx_AppTileMenuBar_widgets .mx_AppTileMenuBar_widgets_button .mx_Icon {
                color: #a1b2d1;
            }

/* Rules added to this selector style appTileBody generally */
.mx_AppTileBody {
    /* Apply to every variant of appTileBody */
    border-radius: 8px;
}
    /* Note the loading spinner and the message next to it are not always included in mx_AppTileBody--loading */
    .mx_AppTileBody .mx_AppTileBody_fadeInSpinner {
        /* place spinner and the message at the center of mx_AppTileBody */
        height: 100%;
        width: 100%;

        font-weight: bold; /* message next to the spinner */
        -webkit-animation-fill-mode: backwards;
                animation-fill-mode: backwards;
        -webkit-animation-duration: 200ms;
                animation-duration: 200ms;
        -webkit-animation-delay: 500ms;
                animation-delay: 500ms;
        -webkit-animation-name: mx_AppTileBody_fadeInSpinnerAnimation;
                animation-name: mx_AppTileBody_fadeInSpinnerAnimation;
    }

    .mx_AppTileBody.mx_AppTileBody--large,
    .mx_AppTileBody.mx_AppTileBody--mini {
        width: 100%;
        height: 100%;
        overflow: hidden;
    }

        .mx_AppTileBody.mx_AppTileBody--large iframe, .mx_AppTileBody.mx_AppTileBody--mini iframe {
            border: none;
            width: 100%;
            height: 100%;
        }

    .mx_AppTileBody.mx_AppTileBody--large {
        --AppTileBody-height: 100%;

        background-color: #1a1d23;
    }

        .mx_AppTileBody.mx_AppTileBody--large iframe {
            overflow: hidden;
            padding: 0;
            margin: 0;
            display: block;
        }

    .mx_AppTileBody.mx_AppTileBody--loading {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        position: relative;
        height: 100%;

        /* match bg of border so that the cut corners have the right fill */
        background-color: #1a1d23 !important;
    }

        .mx_AppTileBody.mx_AppTileBody--loading iframe {
            display: none;
        }

    .mx_AppTileBody.mx_AppTileBody--call {
        border-radius: 0px;
    }

    /* const loadingElement */
    .mx_AppTileBody.mx_AppTileBody--call.mx_AppTileBody--mini {
        border-radius: 8px;
    }

/* appTileBody is embedded to PersistedElement outside of mx_AppTile,
   so rules to style appTileBody generally should not be included here. */
.mx_AppTile .mx_AppTileBody--large,
.mx_AppTileFullWidth .mx_AppTileBody--large,
.mx_AppTile_mini .mx_AppTileBody--mini {
    height: inherit;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
}

@-webkit-keyframes mx_AppTileBody_fadeInSpinnerAnimation {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes mx_AppTileBody_fadeInSpinnerAnimation {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}
}
@layer app-web{

.mx_Autocomplete {
    position: absolute;
    bottom: 0;
    z-index: 1001;
    width: 100%;
    border: 1px solid #000000;
    background: #181b21;
    border-bottom: none;
    border-radius: 8px 8px 0 0;
    overflow: clip;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-shadow: 0px -16px 32px tranparent;
            box-shadow: 0px -16px 32px tranparent;
}

.mx_Autocomplete_ProviderSection {
    border-bottom: 1px solid #000000;
    width: 100%;
}

/* a "block" completion takes up a whole line */
.mx_Autocomplete_Completion_block {
    min-height: 34px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    padding: 0 12px;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    cursor: pointer;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    color: #edf3ff;
}

.mx_Autocomplete_Completion_block * {
    margin: 0 3px;
}

.mx_Autocomplete_Completion_pill {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    border-radius: 2rem;
    height: 2.125rem;
    padding: 0.4rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    cursor: pointer;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    color: #edf3ff;
}

.mx_Autocomplete_Completion_pill > * {
    margin-right: 0.3rem;
}

/* styling for common completion elements */
.mx_Autocomplete_Completion_subtitle {
    font-style: italic;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
}

.mx_Autocomplete_Completion_description {
    color: gray;
    min-width: 150px;
}

.mx_Autocomplete_Completion_container_pill {
    margin: 12px;
    height: 100%;
    overflow-y: scroll;
}

@container roomview (height >= 0px) {
    .mx_Autocomplete_Completion_container_pill {
        max-height: 40cqh;
    }
}
    .mx_Autocomplete_Completion_container_truncate .mx_Autocomplete_Completion_title,
    .mx_Autocomplete_Completion_container_truncate .mx_Autocomplete_Completion_subtitle,
    .mx_Autocomplete_Completion_container_truncate .mx_Autocomplete_Completion_description {
        /* Ellipsis for long names/subtitles/descriptions */
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

.mx_Autocomplete_Completion.selected,
.mx_Autocomplete_Completion:hover {
    background: #343a46;
    outline: none;
}

.mx_Autocomplete_provider_name {
    margin: 12px;
    color: #edf3ff;
    font-weight: 400;
    opacity: 0.4;
}
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AuxPanel {
    min-width: 0px;
    width: 100%;
    margin: 0px auto;

    overflow: auto;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_BasicMessageComposer {
    /* These are set in Javascript */
    --avatar-letter: "";
    --avatar-background: unset;
    --avatar-color: unset;
    --placeholder: "";

    position: relative;
}

    .mx_BasicMessageComposer .mx_BasicMessageComposer_inputEmpty > :first-child::before {
        content: var(--placeholder);
        color: var(--cpd-color-text-secondary);
        width: 0;
        height: 0;
        overflow: visible;
        display: inline-block;
        pointer-events: none;
        white-space: nowrap;
    }

    @-webkit-keyframes visualbell {
        from {
            background-color: #800;
        }
        to {
            background-color: #181b21;
        }
    }

    @keyframes visualbell {
        from {
            background-color: #800;
        }
        to {
            background-color: #181b21;
        }
    }

    .mx_BasicMessageComposer.mx_BasicMessageComposer_input_error {
        -webkit-animation: 0.2s visualbell;
                animation: 0.2s visualbell;
    }

    .mx_BasicMessageComposer .mx_BasicMessageComposer_input {
        white-space: pre-wrap;
        word-wrap: break-word;
        outline: none;
        overflow-x: hidden;
    }
        /* navigated through in a single keypress */
        .mx_BasicMessageComposer .mx_BasicMessageComposer_input .caretNode {
            -webkit-user-select: all;
               -moz-user-select: all;
                    user-select: all;
        }

        /* Force caret nodes to be selected in full so that they can be */
            .mx_BasicMessageComposer .mx_BasicMessageComposer_input.mx_BasicMessageComposer_input_shouldShowPillAvatar span.mx_UserPill,
            .mx_BasicMessageComposer .mx_BasicMessageComposer_input.mx_BasicMessageComposer_input_shouldShowPillAvatar span.mx_RoomPill,
            .mx_BasicMessageComposer .mx_BasicMessageComposer_input.mx_BasicMessageComposer_input_shouldShowPillAvatar span.mx_SpacePill {
                display: -webkit-inline-box;
                display: -ms-inline-flexbox;
                display: inline-flex;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
                -webkit-user-select: all;
                   -moz-user-select: all;
                        user-select: all;
                position: relative;
                cursor: inherit; /* We don't want indicate clickability */
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: nowrap;
            }

                .mx_BasicMessageComposer .mx_BasicMessageComposer_input.mx_BasicMessageComposer_input_shouldShowPillAvatar span.mx_UserPill:hover, .mx_BasicMessageComposer .mx_BasicMessageComposer_input.mx_BasicMessageComposer_input_shouldShowPillAvatar span.mx_RoomPill:hover, .mx_BasicMessageComposer .mx_BasicMessageComposer_input.mx_BasicMessageComposer_input_shouldShowPillAvatar span.mx_SpacePill:hover {
                    /* We don't want indicate clickability | To override the overriding of .markdown-body */
                    background-color: var(--cpd-color-bg-action-primary-rest) !important;
                }

                /* avatar psuedo element */
                .mx_BasicMessageComposer .mx_BasicMessageComposer_input.mx_BasicMessageComposer_input_shouldShowPillAvatar span.mx_UserPill::before, .mx_BasicMessageComposer .mx_BasicMessageComposer_input.mx_BasicMessageComposer_input_shouldShowPillAvatar span.mx_RoomPill::before, .mx_BasicMessageComposer .mx_BasicMessageComposer_input.mx_BasicMessageComposer_input_shouldShowPillAvatar span.mx_SpacePill::before {
                    display: inline-block;
                    content: var(--avatar-letter);
                    width: 1rem;
                    min-width: 1rem; /* ensure the avatar is not compressed */
                    height: 1rem;
                    -webkit-margin-end: 0.24rem;
                            margin-inline-end: 0.24rem;
                    background: var(--avatar-background), #181b21;
                    color: #ffffff;
                    color: var(--avatar-color, #ffffff);
                    background-repeat: no-repeat;
                    background-size: 1rem;
                    border-radius: 1rem;
                    text-align: center;
                    font-weight: normal;
                    line-height: 1rem;
                    font-size: 0.6275rem;
                }

        .mx_BasicMessageComposer .mx_BasicMessageComposer_input.mx_BasicMessageComposer_input_disabled {
            /* Ignore all user input to avoid accidentally triggering the composer */
            pointer-events: none;
        }

    .mx_BasicMessageComposer .mx_BasicMessageComposer_AutoCompleteWrapper {
        position: relative;
        height: 0;
    }
}
@layer app-web{
    .mx_JoinRuleDialog .mx_JoinRuleDialogButtons {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-column-gap: 5px;
           -moz-column-gap: 5px;
                column-gap: 5px;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
    }
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_E2EIcon {
    width: 16px;
    height: 16px;
    margin: 0 9px;
    display: block;
}

    .mx_E2EIcon svg {
        width: inherit;
        height: inherit;
        display: block;
    }

.mx_E2EIcon.mx_E2EIcon_inline {
    display: inline-block;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_E2EIconView {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_E2EIconView_warning {
    color: var(--cpd-color-icon-critical-primary);
}

.mx_E2EIconView_verified {
    color: var(--cpd-color-icon-success-primary);
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_EditMessageComposer {
    --EditMessageComposer-padding-inline: 3px;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    max-width: 100%; /* disable overflow */
    width: auto;
    gap: 5px;
    padding: 3px 3px;
    padding: 3px var(--EditMessageComposer-padding-inline);
}

    .mx_EditMessageComposer .mx_BasicMessageComposer_input {
        border-radius: 4px;
        border: solid 1px #000000;
        background-color: #181b21;
        max-height: 200px;
        padding: 3px 6px;
    }

        .mx_EditMessageComposer .mx_BasicMessageComposer_input:focus {
            border-color: var(--cpd-color-border-interactive-primary);
        }

    .mx_EditMessageComposer .mx_EditMessageComposer_buttons {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-flow: row wrap-reverse;
                flex-flow: row wrap-reverse; /* display "Save" over "Cancel" */
        -webkit-box-pack: end;
            -ms-flex-pack: end;
                justify-content: flex-end;
        gap: 5px;
        -webkit-margin-start: auto;
                margin-inline-start: auto;
    }

        .mx_EditMessageComposer .mx_EditMessageComposer_buttons .mx_AccessibleButton {
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
            min-width: 100px; /* magic number to align the edge of the button with the input area */
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_EmojiButton {
    position: relative;
    cursor: pointer;
    border-radius: 50%;
}
    .mx_EmojiButton svg {
        color: var(--cpd-color-icon-tertiary);
    }
    .mx_EmojiButton:hover {
        background-color: var(--cpd-color-bg-subtle-secondary);
    }

        .mx_EmojiButton:hover svg {
            color: var(--cpd-color-icon-secondary);
        }

.mx_EmojiButton_highlight {
    background: var(--cpd-color-bg-subtle-primary);
    color: var(--cpd-color-icon-primary) !important;
}
    .mx_MessageComposer_wysiwyg .mx_EmojiButton {
        position: relative;
        cursor: pointer;
        border-radius: 5px;
    }
        .mx_MessageComposer_wysiwyg .mx_EmojiButton svg {
        color: var(--cpd-color-icon-tertiary);
    }
        .mx_MessageComposer_wysiwyg .mx_EmojiButton:hover {
        background-color: rgba(33,38,44, 0.9);
    }

        .mx_MessageComposer_wysiwyg .mx_EmojiButton:hover svg {
            color: #edf3ff;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_RoomView_body[data-layout="bubble"] .mx_RoomView_timeline,
    .mx_RoomView_body[data-layout="bubble"] .mx_RoomView_statusArea,
    .mx_RoomView_body[data-layout="bubble"] .mx_MessageComposer {
        width: 100%;
        max-width: 1200px;
        margin: 0 auto;
    }

.mx_EventTile[data-layout="bubble"],
.mx_GenericEventListSummary[data-layout="bubble"] {
    --avatarSize: 32px;
    --gutterSize: 11px;
    --cornerRadius: 12px;
    --maxWidth: 70%;

    /* For both event tile and event list summary */
    --EventTile_bubble-margin-inline-start: 49px;
    --EventTile_bubble-margin-inline-end: 60px;

    -webkit-margin-start: 49px;

            margin-inline-start: 49px;

    -webkit-margin-start: var(--EventTile_bubble-margin-inline-start);

            margin-inline-start: var(--EventTile_bubble-margin-inline-start);
    -webkit-margin-end: 60px;
            margin-inline-end: 60px;
    -webkit-margin-end: var(--EventTile_bubble-margin-inline-end);
            margin-inline-end: var(--EventTile_bubble-margin-inline-end);
}

.mx_EventTile[data-layout="bubble"] {
    --EventTile_bubble_line-margin-inline-start: -9px;
    --EventTile_bubble_line-margin-inline-end: -12px;
    --EventTile_bubble_gap-inline: 5px;
}

    .mx_EventTile[data-layout="bubble"] .mx_MessageTimestamp {
        width: auto;
        width: initial; /* Cancel the default width */
        max-width: 80px;
    }

    .mx_EventTile[data-layout="bubble"] .mx_ThreadSummary {
        clear: both;
        width: -webkit-fit-content;
        width: -moz-fit-content;
        width: fit-content;
    }

    .mx_EventTile[data-layout="bubble"] .mx_EventTile_content {
        margin-right: 0;
    }

    .mx_EventTile[data-layout="bubble"]:not(.mx_EventTile_info) .mx_EventTile_avatar {
        line-height: 0;
        border: 4px solid #181b21;
        border-radius: 50%;
        position: absolute;
        top: 6px;
        z-index: 9;
    }
        .mx_EventTile[data-layout="bubble"]:not(.mx_EventTile_info) .mx_EventTile_avatar img {
            -webkit-box-shadow: 0 0 0 3px #181b21;
                    box-shadow: 0 0 0 3px #181b21;
            border-radius: 50%;
        }
        .mx_EventTile[data-layout="bubble"].mx_EventTile_highlight .mx_EventTile_avatar {
            border-color: #25271f;
        }
        .mx_EventTile[data-layout="bubble"].mx_EventTile_highlight::before {
            background-color: #25271f;
        }
        .mx_EventTile[data-layout="bubble"]:hover .mx_EventTile_avatar {
            border-color: #1c2026;
        }

    /* For replies */
    .mx_EventTile[data-layout="bubble"] .mx_EventTile {
        padding-top: 0;
    }

    .mx_EventTile[data-layout="bubble"]::before {
        content: "";
        position: absolute;
        top: -1px;
        bottom: -1px;
        left: calc(-1 * var(--EventTile_bubble-margin-inline-start));
        right: calc(-1 * var(--EventTile_bubble-margin-inline-end));
        z-index: -1;
        border-radius: 4px;
    }
        .mx_EventTile[data-layout="bubble"]:hover::before, .mx_EventTile[data-layout="bubble"].mx_EventTile_selected::before {
            background: #1c2026;
        }
            .mx_EventTile[data-layout="bubble"]:hover .mx_EventTile_avatar img, .mx_EventTile[data-layout="bubble"].mx_EventTile_selected .mx_EventTile_avatar img {
                -webkit-box-shadow: 0 0 0 3px #1c2026;
                        box-shadow: 0 0 0 3px #1c2026;
            }

    /* Position the main event sender; reply senders own their alignment. */
    .mx_EventTile[data-layout="bubble"] > .mx_DisambiguatedProfile,
    .mx_EventTile[data-layout="bubble"] .mx_EventTile_senderDetails > .mx_DisambiguatedProfile {
        position: relative;
        inset-block-start: -2px;
        inset-inline-start: 2px;
        font-size: 0.9375rem;
    }

    .mx_EventTile[data-layout="bubble"] .mx_MessageActionBar {
        top: -28px;
        z-index: 9; /* above the avatar */
    }

    .mx_EventTile[data-layout="bubble"] .mx_MediaBody {
        /* leave space for the timestamp */
        padding-right: 48px !important;
    }
        .mx_EventTile[data-layout="bubble"] .mx_ImageBody .mx_ImageBody_container {
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
            min-height: calc(1.8rem + var(--gutterSize) + var(--gutterSize));
            min-width: calc(1.8rem + var(--gutterSize) + var(--gutterSize));
        }

    .mx_EventTile[data-layout="bubble"] .mx_LegacyCallEvent {
        background-color: transparent;
        background-color: initial;

        border-style: solid;
        border-width: 1px;
        border-color: #6f7882;
    }

    .mx_EventTile[data-layout="bubble"] .mx_EventTile_footer {
        margin: var(--cpd-space-1-5x) 0;
        margin-inline: var(--EventTile_bubble_line-margin-inline-start) var(--EventTile_bubble_line-margin-inline-end);
    }
        .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_EventTile_line {
            border-bottom-right-radius: var(--cornerRadius);
        }

            .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_EventTile_line .mx_ImageBody .mx_ImageBody_container,
            .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_EventTile_line .mx_ImageBody::before,
            .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_EventTile_line .mx_MVideoBody .mx_MVideoBody_container,
            .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_EventTile_line .mx_MediaBody,
            .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_EventTile_line .mx_MLocationBody_map,
            .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_EventTile_line .mx_MBeaconBody {
                border-bottom-right-radius: var(--cornerRadius) !important;
            }

        .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_EventTile_avatar {
            left: -36px;
        }

        .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_MessageActionBar {
            inset-inline-start: calc(
                100% - var(--MessageActionBar-size-button) - 2 * var(--MessageActionBar-size-margin)
            );
            right: auto;
            right: initial; /* Reset the default value */
        }

        .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_ThreadSummary {
            -webkit-margin-start: calc(-1 * var(--gutterSize));
                    margin-inline-start: calc(-1 * var(--gutterSize));
            -webkit-margin-end: auto;
                    margin-inline-end: auto;
        }

        .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_ReactionsRow,
        .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_EventTile_footer {
            -webkit-box-pack: start;
                -ms-flex-pack: start;
                    justify-content: flex-start;
        }

        .mx_EventTile[data-layout="bubble"][data-self="false"]{

        --backgroundColor: #22262e;
}
        .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_line {
            -webkit-margin-start: auto;
                    margin-inline-start: auto;
            border-bottom-left-radius: var(--cornerRadius);
        }

            .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_line .mx_ImageBody .mx_ImageBody_container,
            .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_line .mx_ImageBody::before,
            .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_line .mx_MVideoBody .mx_MVideoBody_container,
            .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_line .mx_MediaBody,
            .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_line .mx_MLocationBody_map,
            .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_line .mx_MBeaconBody {
                border-bottom-left-radius: var(--cornerRadius) !important;
            }

        .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_sticker {
            /* align timestamp with those inside bubbles */
            margin-right: 32px;
        }

        .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_ThreadSummary {
            -webkit-margin-start: auto;
                    margin-inline-start: auto;
            -webkit-margin-end: calc(-1 * var(--gutterSize));
                    margin-inline-end: calc(-1 * var(--gutterSize));
        }

        .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_DisambiguatedProfile {
            display: none;
        }

        .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_ReplyTile .mx_DisambiguatedProfile {
            display: block;
            max-width: 100%;
        }

        .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_footer {
            -webkit-box-pack: end;
                -ms-flex-pack: end;
                    justify-content: flex-end;
        }

        .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_ReactionsRow {
            -webkit-box-pack: end;
                -ms-flex-pack: end;
                    justify-content: flex-end;
        }

            .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_ReactionsRow > :last-child {
                -webkit-box-ordinal-group: 0;
                    -ms-flex-order: -1;
                        order: -1; /* Moving the "add reaction button" before the reactions */
            }

        .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_avatar {
            top: -19px; /* height of the sender block */
            right: -38px;
        }

        .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_MediaBody {
            background: #14322e;
        }

        .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_MessageActionBar {
            inset-inline-end: 0;
        }

        .mx_EventTile[data-layout="bubble"][data-self="true"]{

        --backgroundColor: #14322e;
}

    .mx_EventTile[data-layout="bubble"] .mx_EventTile_line {
        --EventBubbleTile_line-max-width: 70%;

        width: -webkit-fit-content;

        width: -moz-fit-content;

        width: fit-content;
        max-width: 70%;
        max-width: var(--EventBubbleTile_line-max-width); /* Align message bubble and displayName */
        line-height: 1.125rem; /* fixed line height to prevent emoji from being taller than text */
        position: relative;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        gap: 5px var(--EventTile_bubble_gap-inline);
        margin-block: 0;
        margin-inline: var(--EventTile_bubble_line-margin-inline-start) var(--EventTile_bubble_line-margin-inline-end);
        border-top-left-radius: var(--cornerRadius);
        border-top-right-radius: var(--cornerRadius);

        /* noinspection CssReplaceWithShorthandSafely */
    }
        /* in the DOM depending on the specific rendering context */
        .mx_EventTile[data-layout="bubble"] .mx_EventTile_line > a, 
        .mx_EventTile[data-layout="bubble"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp {
            position: absolute;
            padding: 4px 8px;
            bottom: 0;
            right: 0;
            z-index: 3; /* above media and location share maps */
        }

        /* the selector here is quite weird because timestamps can appear linked & unlinked and in different places */
            /* TODO: Use a common class name instead */
            .mx_EventTile[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_mediaLine .mx_MFileBody,
            .mx_EventTile[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_mediaLine .mx_MAudioBody {
                max-width: 100%; /* avoid overflow */
            }

            .mx_EventTile[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_mediaLine .mx_MVoiceMessageBody {
                /* allow the event to be collapsed, this causes the waveform to get cropped */
                min-width: 0;
            }

            /* we put the timestamps for media (other than stickers) atop the media */
                .mx_EventTile[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_mediaLine.mx_EventTile_image .mx_MessageTimestamp {
                    border-radius: 8px;
                    border-radius: var(--MBody-border-radius);
                    /* Hardcoded colours because it's the same on all themes */
                    background-color: rgb(0, 0, 0, 0.6);
                    color: #ffffff;
                    padding: 0px 4px 0px 4px;
                }
            .mx_EventTile[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_sticker > a, 
            .mx_EventTile[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_sticker .mx_MessageActionBar + .mx_MessageTimestamp {
                /* position timestamps for stickers to the right of the un-bubbled sticker */
                right: auto;
                right: initial;
                left: 100%;
            }

            .mx_EventTile[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_sticker .mx_MStickerBody_wrapper {
                padding: 0;
            }

        .mx_EventTile[data-layout="bubble"] .mx_EventTile_line .mx_ImageBody {
            width: 100%;
        }
        .mx_EventTile[data-layout="bubble"] .mx_EventTile_line .mx_ImageBody .mx_ImageBody_container,
        .mx_EventTile[data-layout="bubble"] .mx_EventTile_line .mx_MVideoBody .mx_MVideoBody_container,
        .mx_EventTile[data-layout="bubble"] .mx_EventTile_line .mx_MediaBody {
            border-radius: 0;
            border-radius: initial;
            border-top-left-radius: var(--cornerRadius);
            border-top-right-radius: var(--cornerRadius);
        }

        .mx_EventTile[data-layout="bubble"] .mx_EventTile_line .mx_EventTile_e2eIcon {
            -ms-flex-negative: 0;
                flex-shrink: 0; /* keep it at full size */

            /* Keep height equal to text for shield alignment, additional 2px because of 1px padding on text */
            height: calc(1.125rem + 2px);
        }

    .mx_EventTile[data-layout="bubble"]:not(.mx_EventTile_noBubble):not(.mx_EventTile_alignedBetweenBubbles)
        .mx_EventTile_line:not(.mx_EventTile_mediaLine) {
        /* make the top and bottom padding 1px smaller so that we can pad
            .mx_EventTile_content by 1px */
        /* to avoid anti-zalgo cutting off our larger than text emojis. */
        padding: calc(var(--gutterSize) - 1px);
        padding-right: 60px; /* space for the timestamp */
        background: var(--backgroundColor);
    }

        .mx_EventTile[data-layout="bubble"]:not(.mx_EventTile_noBubble):not(.mx_EventTile_alignedBetweenBubbles)
        .mx_EventTile_line:not(.mx_EventTile_mediaLine) .mx_EventTile_content {
            padding: 1px;
        }

    .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="false"] .mx_EventTile_line {
        border-top-left-radius: 0;
    }

        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="false"] .mx_EventTile_line .mx_ImageBody .mx_ImageBody_container,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="false"] .mx_EventTile_line .mx_MVideoBody .mx_MVideoBody_container,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="false"] .mx_EventTile_line .mx_ImageBody::before,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="false"] .mx_EventTile_line .mx_MediaBody,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="false"] .mx_EventTile_line .mx_MLocationBody_map,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="false"] .mx_EventTile_line .mx_MBeaconBody {
            border-top-left-radius: 0;
        }
    .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="false"] .mx_EventTile_line {
        border-bottom-left-radius: var(--cornerRadius);
    }

        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="false"] .mx_EventTile_line .mx_ImageBody .mx_ImageBody_container,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="false"] .mx_EventTile_line .mx_MVideoBody .mx_MVideoBody_container,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="false"] .mx_EventTile_line .mx_ImageBody::before,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="false"] .mx_EventTile_line .mx_MediaBody,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="false"] .mx_EventTile_line .mx_MLocationBody_map,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="false"] .mx_EventTile_line .mx_MBeaconBody {
            border-bottom-left-radius: var(--cornerRadius);
        }

    .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="true"] .mx_EventTile_line {
        border-top-right-radius: 0;
    }

        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="true"] .mx_EventTile_line .mx_ImageBody .mx_ImageBody_container,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="true"] .mx_EventTile_line .mx_MVideoBody .mx_MVideoBody_container,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="true"] .mx_EventTile_line .mx_ImageBody::before,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="true"] .mx_EventTile_line .mx_MediaBody,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="true"] .mx_EventTile_line .mx_MLocationBody_map,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="true"] .mx_EventTile_line .mx_MBeaconBody {
            border-top-right-radius: 0;
        }
    .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="true"] .mx_EventTile_line {
        border-bottom-right-radius: var(--cornerRadius);
    }

        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="true"] .mx_EventTile_line .mx_ImageBody .mx_ImageBody_container,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="true"] .mx_EventTile_line .mx_MVideoBody .mx_MVideoBody_container,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="true"] .mx_EventTile_line .mx_ImageBody::before,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="true"] .mx_EventTile_line .mx_MediaBody,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="true"] .mx_EventTile_line .mx_MLocationBody_map,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="true"] .mx_EventTile_line .mx_MBeaconBody {
            border-bottom-right-radius: var(--cornerRadius);
        }
        .mx_EventTile[data-layout="bubble"].mx_EventTile_noSender .mx_EventTile_avatar {
            top: -19px;
        }
        .mx_EventTile[data-layout="bubble"][data-has-reply="true"] > .mx_EventTile_line {
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
        }
            .mx_EventTile[data-layout="bubble"][data-has-reply="true"] .mx_ReplyChain .mx_EventTile_reply {
                max-width: 90%;
                padding: 0;
            }
                .mx_EventTile[data-layout="bubble"][data-has-reply="true"] .mx_ReplyChain .mx_EventTile_reply > a, 
                .mx_EventTile[data-layout="bubble"][data-has-reply="true"] .mx_ReplyChain .mx_EventTile_reply .mx_MessageActionBar + .mx_MessageTimestamp {
                    display: none !important;
                }

            .mx_EventTile[data-layout="bubble"][data-has-reply="true"] .mx_ReplyChain .mx_EventTile {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                gap: var(--gutterSize);
            }
                .mx_EventTile[data-layout="bubble"][data-has-reply="true"] .mx_ReplyChain .mx_EventTile .mx_EventTile_avatar {
                    position: static;
                }
                .mx_EventTile[data-layout="bubble"][data-has-reply="true"] .mx_ReplyChain .mx_EventTile .mx_DisambiguatedProfile {
                    display: none;
                }

    .mx_EventTile[data-layout="bubble"] .mx_MPollBody {
        width: 550px; /* to prevent timestamp overlapping summary text */
        max-width: 100%; /* prevent overflowing a reply tile */
    }

        .mx_EventTile[data-layout="bubble"] .mx_MPollBody .mx_MPollBody_totalVotes {
            /* align summary text with corner timestamp */
            padding: 4px 0;
        }
            .mx_EventTile[data-layout="bubble"].mx_EventTile_bad:hover::before {
                background: transparent;
            }

        /* Special layout scenario for "Unable To Decrypt (UTD)" events */
        .mx_EventTile[data-layout="bubble"].mx_EventTile_bad .mx_EventTile_line {
            display: grid;
            grid-template:
                "reply reply" auto
                "shield body" auto
                / auto 1fr;
        }

            .mx_EventTile[data-layout="bubble"].mx_EventTile_bad .mx_EventTile_line .mx_UnknownBody,
            .mx_EventTile[data-layout="bubble"].mx_EventTile_bad .mx_EventTile_line .mx_ReplyChain_wrapper,
            .mx_EventTile[data-layout="bubble"].mx_EventTile_bad .mx_EventTile_line .mx_ViewSourceEvent {
                min-width: 0; /* Prevent a grid blowout */
            }

            .mx_EventTile[data-layout="bubble"].mx_EventTile_bad .mx_EventTile_line .mx_EventTile_e2eIcon {
                grid-area: shield;
                margin-top: auto;
                margin-bottom: auto;
            }

            .mx_EventTile[data-layout="bubble"].mx_EventTile_bad .mx_EventTile_line .mx_UnknownBody,
            .mx_EventTile[data-layout="bubble"].mx_EventTile_bad .mx_EventTile_line .mx_DecryptionFailureBody {
                grid-area: body;
            }

            .mx_EventTile[data-layout="bubble"].mx_EventTile_bad .mx_EventTile_line .mx_ReplyChain_wrapper {
                grid-area: reply;
            }
            /* "Unable To Decrypt" layout for hidden events */
            .mx_EventTile[data-layout="bubble"].mx_EventTile_bad.mx_EventTile_info .mx_EventTile_line {
                gap: 0 9px; /* 9px: margin value of E2E icon */
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
                grid-template:
                    "shield source" auto
                    / auto 1fr;
            }

                .mx_EventTile[data-layout="bubble"].mx_EventTile_bad.mx_EventTile_info .mx_EventTile_line .mx_ViewSourceEvent {
                    grid-area: source;
                }

    .mx_EventTile[data-layout="bubble"] .mx_LegacyCallEvent_wrapper,
    .mx_EventTile[data-layout="bubble"] .mx_CallEvent_wrapper {
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
    }

    .mx_EventTile[data-layout="bubble"].mx_EventTile_alignedBetweenBubbles {
        -webkit-margin-start: calc(
            var(--EventTile_bubble-margin-inline-start) + var(--EventTile_bubble_line-margin-inline-start)
        );
                margin-inline-start: calc(
            var(--EventTile_bubble-margin-inline-start) + var(--EventTile_bubble_line-margin-inline-start)
        );
        -webkit-margin-end: calc(
            var(--EventTile_bubble-margin-inline-end) + var(--EventTile_bubble_line-margin-inline-end)
        );
                margin-inline-end: calc(
            var(--EventTile_bubble-margin-inline-end) + var(--EventTile_bubble_line-margin-inline-end)
        );
    }

        .mx_EventTile[data-layout="bubble"].mx_EventTile_alignedBetweenBubbles .mx_EventTile_line {
            max-width: 100%;
            width: 100%;
            margin: 0;
        }

.mx_EventTile.mx_EventTile_noBubble[data-layout="bubble"] {
    --backgroundColor: transparent;
}

    .mx_EventTile.mx_EventTile_noBubble[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_emote {
        padding-right: 60px; /* align with bubbles text */
        font-style: italic;
    }

        .mx_EventTile.mx_EventTile_noBubble[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_emote > a {
            /* linked timestamp element */
            -ms-flex-item-align: center;
                align-self: center;
            bottom: auto;
            bottom: initial;
            top: auto;
            top: initial;
            font-style: normal; /* undo italic above */
        }

        .mx_EventTile.mx_EventTile_noBubble[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_emote .mx_MEmoteBody {
            padding: 4px 0;
        }
    .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_line > a, .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_line > a {
        /* hide this timestamp as the tile will render its own */
        display: none;
    }

.mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"],
.mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"],
.mx_EventTile.mx_EventTile_info[data-layout="bubble"] {
    padding: 5px 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
}

    .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_line,
    .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_info,
    .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_line,
    .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_info,
    .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_line,
    .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_info {
        min-width: 100%;
        /* Preserve alignment with left edge of text in bubbles */
        margin: 0;
    }

.mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"],
.mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"],
.mx_EventTile.mx_EventTile_info[data-layout="bubble"],
.mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] {
    --backgroundColor: transparent;
    --gutterSize: 0;
}

    .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_avatar, .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_avatar, .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_avatar, .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] .mx_EventTile_avatar {
        position: static;
        -webkit-box-ordinal-group: 0;
            -ms-flex-order: -1;
                order: -1;
        -webkit-margin-end: var(--EventTile_bubble_gap-inline);
                margin-inline-end: var(--EventTile_bubble_gap-inline); /* Same spacing between E2E icon and a hidden event */
        display: -webkit-inline-box;
        display: -ms-inline-flexbox;
        display: inline-flex;
    }

    .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_e2eIcon, .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_e2eIcon, .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_e2eIcon, .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] .mx_EventTile_e2eIcon {
        -webkit-margin-start: 0;
                margin-inline-start: 0; /* mx_EventTile_avatar has margin-inline-end, so margin is not needed here */
        -ms-flex-item-align: center;
            align-self: center;
    }
        .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_line > a, 
        .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp, 
        .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_line > a, 
        .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp, 
        .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_line > a, 
        .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp, 
        .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] .mx_EventTile_line > a, 
        .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp {
            right: auto;
            left: -77px;
            bottom: auto;
            bottom: initial;
            -ms-flex-item-align: center;
                align-self: center;
        }

            .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_line > a .mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_line > a.mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp .mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp.mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_line > a .mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_line > a.mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp .mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp.mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_line > a .mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_line > a.mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp .mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp.mx_MessageTimestamp,
            .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] .mx_EventTile_line > a .mx_MessageTimestamp,
            .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] .mx_EventTile_line > a.mx_MessageTimestamp,
            .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp .mx_MessageTimestamp,
            .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp.mx_MessageTimestamp {
                vertical-align: middle;
            }
    .mx_GenericEventListSummary[data-layout="bubble"] .mx_EventTile.mx_EventTile_info .mx_EventTile_line {
        /* Avoid overflow of event info by cancelling width settings */
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    /* increase margin between ELS and the next Event to not have our user avatar overlap the expand/collapse button */
    .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] + .mx_EventTile[data-layout="bubble"][data-self="true"] {
        margin-top: 20px;
    }

    .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="true"] .mx_EventTile_info {
        padding: 2px 0;
        margin-right: 0;
    }

        .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="true"] .mx_EventTile_info .mx_MessageActionBar {
            /* Reset .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_MessageActionBar */
            inset-inline-start: initial;
            inset-inline-end: 48px; /* align with that of right-column bubbles */
        }

        .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="true"] .mx_EventTile_info .mx_ReadReceiptGroup {
            /* match alignment to RRs of chat bubbles */
            inset-inline-end: calc(-1 * var(--ReadReceiptGroup_EventBubbleTile-spacing-end) + 60px);
        }

        .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="true"] .mx_EventTile_info::before {
            inset-inline-end: 0; /* match alignment of the hover background to that of chat bubbles */
        }

.mx_EventTile_tileError[data-layout="bubble"] .mx_EventTile_line {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; /* restore the centering */
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020, 2021 The Matrix.org Foundation C.I.C.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_EventTile {
    --EventTile_content-margin-inline-end: 34px;
    --EventTile_group_line-spacing-block-start: 1px;
    --EventTile_group_line-spacing-block-end: 3px;
    --EventTile_group_line-spacing-inline-start: 64px;
    --EventTile_group_line-line-height: 1.375rem;
    --EventTile_ThreadSummary-line-height: calc(2 * 0.75rem);

    -ms-flex-negative: 0;

        flex-shrink: 0;
    max-width: 100%;
    clear: both; /* TODO: check if this is necessary */
    padding-top: 18px;
    position: relative;
}

    .mx_EventTile.mx_EventTile_info {
        font-size: var(--cpd-font-size-body-sm);
        color: #edf3ff;
    }

    .mx_EventTile .mx_EventTile_avatar {
        cursor: pointer;
        -webkit-user-select: none;
           -moz-user-select: none;
            -ms-user-select: none;
                user-select: none;
    }

    .mx_EventTile .mx_EventTile_body {
        overflow-y: hidden;
        text-align: start;
    }

    .mx_EventTile .mx_ReadReceiptGroup_container svg {
        display: inline-block;
        width: 16px;
        height: 16px;
        color: var(--cpd-color-icon-tertiary);
    }
        .mx_EventTile .mx_EventTile_content.mx_EditMessageComposer,
        .mx_EventTile .mx_EventTile_content.mx_EditWysiwygComposer {
            /* Make sure the formatting bar is visible */
            overflow: visible;
        }

    .mx_EventTile .mx_EventTile_searchHighlight {
        background-color: #0dbd8b;
        color: #ffffff;
        border-radius: 5px;
        padding-inline: 2px;
        cursor: pointer;
    }

        .mx_EventTile .mx_EventTile_searchHighlight a {
            background-color: #0dbd8b;
            color: #ffffff;
        }

    .mx_EventTile .mx_MessageTimestamp_lateIcon {
        position: absolute;
        right: 100%;
        top: var(--cpd-space-1x);
        color: var(--cpd-color-text-secondary);
    }

    .mx_EventTile .mx_EventTileBubble {
        margin-block: 10px;
        margin-block: var(--EventTileBubble_margin-block);
        min-width: 100px;
    }
        .mx_EventTile .mx_ImageBody .mx_ImageBody_container {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center; /* on every layout */
        }

    .mx_EventTile .mx_ReactionsRow {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-flow: wrap;
            flex-flow: wrap;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        gap: var(--cpd-space-1x);
    }
        .mx_EventTile .mx_ReplyChain--expanded .mx_EventTile_body {
            /* !important needed to override .mx_ReplyTile .mx_EventTile_content .mx_EventTile_body */
            display: block !important;
            overflow-y: scroll;
        }

        .mx_EventTile .mx_ReplyChain--expanded .mx_EventTile_collapsedCodeBlock {
            /* !important needed due to .mx_ReplyTile .mx_EventTile_content .mx_EventTile_pre_container > pre */
            display: block !important;
        }
        .mx_RoomView_searchResultsPanel .mx_EventTile.mx_EventTile_contextual {
            opacity: 0.4;
        }

    .mx_EventTile.mx_EventTile_bubbleContainer {
        display: grid;
        grid-template-columns: 1fr 100px;
    }

        .mx_EventTile.mx_EventTile_bubbleContainer .mx_EventTile_line {
            margin-right: 0;
            grid-column: 1 / 3;
            padding: 0 !important; /* override default padding of mx_EventTile_line so that we can be centered */
        }

        .mx_EventTile.mx_EventTile_bubbleContainer .mx_EventTile_msgOption {
            grid-column: 2;
        }
            .mx_EventTile.mx_EventTile_bubbleContainer:hover .mx_EventTile_line {
                /* To avoid bubble events being highlighted */
                background-color: inherit !important;
            }

    .mx_EventTile.mx_EventTile_isEditing .mx_MessageTimestamp {
        visibility: hidden;
    }

    .mx_EventTile[data-layout="irc"],
    .mx_EventTile[data-layout="group"] {
        --selected-message-border-width: 4px;

        /* TODO: adjust the values for IRC layout */
        --EventTile-box-shadow-offset-x: calc(50px + var(--selected-message-border-width));
        --EventTile-box-shadow-spread-radius: -50px;

        /* this is used for the tile for the event which is selected via the URL. */
    }
        .mx_EventTile[data-layout="irc"] .mx_EventTile_e2eIcon, .mx_EventTile[data-layout="group"] .mx_EventTile_e2eIcon {
            position: absolute;
        }
            .mx_EventTile[data-layout="irc"] .mx_ImageBody .mx_ImageBody_container, .mx_EventTile[data-layout="group"] .mx_ImageBody .mx_ImageBody_container {
                -webkit-box-pack: start;
                    -ms-flex-pack: start;
                        justify-content: flex-start;
                min-height: 2.75rem;
                min-width: 2.75rem;
            }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_line,
        .mx_EventTile[data-layout="irc"] .mx_EventTile_reply,
        .mx_EventTile[data-layout="group"] .mx_EventTile_line,
        .mx_EventTile[data-layout="group"] .mx_EventTile_reply {
            position: relative;
            border-radius: 8px;
        }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_reply, .mx_EventTile[data-layout="group"] .mx_EventTile_reply {
            margin-right: 10px;
        }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_msgOption, .mx_EventTile[data-layout="group"] .mx_EventTile_msgOption {
            float: right;
            text-align: right;
            position: relative;
            width: 90px;

            /* Hack to stop the height of this pushing the messages apart.
               Replaces margin-top: -6px. This interacts better with a read
               marker being in between. Content overflows. */
            height: 1px;
        }
            .mx_EventTile[data-layout="irc"].mx_EventTile_highlight .mx_EventTile_line, .mx_EventTile[data-layout="irc"].mx_EventTile_highlight .markdown-body .mx_EventTile_line, .mx_EventTile[data-layout="group"].mx_EventTile_highlight .mx_EventTile_line, .mx_EventTile[data-layout="group"].mx_EventTile_highlight .markdown-body .mx_EventTile_line {
                background-color: #25271f;
            }
            .mx_EventTile[data-layout="irc"]:focus-visible:focus-within .mx_EventTile_line, .mx_EventTile[data-layout="irc"].mx_EventTile_actionBarFocused .mx_EventTile_line, .mx_EventTile[data-layout="irc"].mx_EventTile_isEditing .mx_EventTile_line, .mx_EventTile[data-layout="irc"].mx_EventTile_selected .mx_EventTile_line, .mx_EventTile[data-layout="group"]:focus-visible:focus-within .mx_EventTile_line, .mx_EventTile[data-layout="group"].mx_EventTile_actionBarFocused .mx_EventTile_line, .mx_EventTile[data-layout="group"].mx_EventTile_isEditing .mx_EventTile_line, .mx_EventTile[data-layout="group"].mx_EventTile_selected .mx_EventTile_line {
                background-color: #22262e;
            }
            .mx_EventTile[data-layout="irc"].mx_EventTile_isEditing > .mx_EventTile_line, .mx_EventTile[data-layout="irc"].mx_EventTile_selected > .mx_EventTile_line, .mx_EventTile[data-layout="group"].mx_EventTile_isEditing > .mx_EventTile_line, .mx_EventTile[data-layout="group"].mx_EventTile_selected > .mx_EventTile_line {
                /* TODO: ultimately we probably want some transition on here. */
                -webkit-box-shadow: inset var(--EventTile-box-shadow-offset-x) 0 0 var(--EventTile-box-shadow-spread-radius)
                    var(--cpd-color-bg-action-primary-rest);
                        box-shadow: inset var(--EventTile-box-shadow-offset-x) 0 0 var(--EventTile-box-shadow-spread-radius)
                    var(--cpd-color-bg-action-primary-rest);
            }
            .mx_EventTile[data-layout="irc"].mx_EventTile_info .mx_EventTile_e2eIcon, .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_e2eIcon {
                top: 0;
            }

        .mx_EventTile[data-layout="irc"].mx_EventTile_continuation .mx_EventTile_line, .mx_EventTile[data-layout="group"].mx_EventTile_continuation .mx_EventTile_line {
            clear: both;
        }
            .mx_EventTile[data-layout="irc"]:hover .mx_EventTile_line, .mx_EventTile[data-layout="group"]:hover .mx_EventTile_line {
                background-color: #22262e;
            }
        .mx_EventTile[data-layout="bubble"] .mx_EventTileBubble, .mx_EventTile[data-layout="group"] .mx_EventTileBubble {
            margin-inline: auto;
        }

        .mx_EventTile[data-layout="bubble"] .mx_ReplyChain, .mx_EventTile[data-layout="group"] .mx_ReplyChain {
            margin-bottom: var(--cpd-space-2x);
        }

    .mx_EventTile[data-layout="irc"] {
        --EventTile_irc_line-padding-block: 1px;

        /* add --right-padding value of MessageTimestamp only */
        /* stylelint-disable-next-line declaration-colon-space-after */
        --EventTile_irc_line_info-margin-inline-start: calc(
            var(--name-width) + var(--icon-width) + 1 * var(--right-padding)
        );

        display: -webkit-box;

        display: -ms-flexbox;

        display: flex;
        -webkit-box-align: start;
            -ms-flex-align: start;
                align-items: flex-start;
        padding-top: 0;
    }

        .mx_EventTile[data-layout="irc"] .mx_MessageTimestamp {
            min-width: 46px;
            min-width: var(--MessageTimestamp-width); /* ensure space for EventTile without timestamp */
            text-align: right;
        }

        .mx_EventTile[data-layout="irc"] > *:not(.mx_DisambiguatedProfile) {
            -webkit-margin-end: var(--right-padding);
                    margin-inline-end: var(--right-padding);
        }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_avatar,
        .mx_EventTile[data-layout="irc"] .mx_EventTile_e2eIcon {
            height: 1.125rem;
            height: var(--irc-line-height);
        }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_avatar,
        .mx_EventTile[data-layout="irc"] .mx_EventTile_e2eIcon,
        .mx_EventTile[data-layout="irc"] .mx_EventTile_msgOption {
            -ms-flex-negative: 0;
                flex-shrink: 0;
        }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_avatar {
            -webkit-box-ordinal-group: 2;
                -ms-flex-order: 1;
                    order: 1;
            position: relative;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;

            /* Need to use important to override the js calculated values. */
        }
            .mx_EventTile[data-layout="irc"] .mx_EventTile_avatar > .mx_BaseAvatar,
            .mx_EventTile[data-layout="irc"] .mx_EventTile_avatar > .mx_BaseAvatar > * {
                font-size: 0.625rem !important;
                line-height: calc(0.9375rem - 2px) !important;
            }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_e2eIcon {
            padding: 0;
            -webkit-box-flex: 0;
                -ms-flex-positive: 0;
                    flex-grow: 0;
            background-position: center;
        }
            .mx_EventTile[data-layout="irc"] .mx_EventTile_line .mx_EventTile_e2eIcon {
                /* add a 1px padding top and bottom because our larger
                emoji font otherwise gets cropped by anti-zalgo */
                padding: var(--EventTile_irc_line-padding-block) 0;
                display: inline-block;
            }
                .mx_EventTile[data-layout="irc"] .mx_EventTile_line .mx_ReplyTile .mx_MTextBody {
                    display: -webkit-box; /* Enable -webkit-line-clamp */
                }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_line,
        .mx_EventTile[data-layout="irc"] .mx_EventTile_reply {
            -webkit-box-ordinal-group: 4;
                -ms-flex-order: 3;
                    order: 3;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
            -ms-flex-negative: 1;
                flex-shrink: 1;
            min-width: 0;
        }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_reply {
            -webkit-box-ordinal-group: 5;
                -ms-flex-order: 4;
                    order: 4;
        }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_msgOption {
            -webkit-box-ordinal-group: 6;
                -ms-flex-order: 5;
                    order: 5;
        }

            .mx_EventTile[data-layout="irc"] .mx_EventTile_msgOption .mx_ReadReceiptGroup {
                inset-block-start: -0.3rem; /* (var(--irc-line-height) - avatar height) / 2 */
            }

        .mx_EventTile[data-layout="irc"] .mx_ReplyChain {
            margin: 0;
        }

        .mx_EventTile[data-layout="irc"] .mx_EditMessageComposer_buttons {
            position: relative;
        }

        .mx_EventTile[data-layout="irc"] .mx_EventTileBubble {
            position: relative;
            left: var(--EventTile_irc_line_info-margin-inline-start);
        }

            .mx_EventTile[data-layout="irc"] .mx_EventTileBubble.mx_cryptoEvent {
                left: auto;
                left: initial;
            }

        .mx_EventTile[data-layout="irc"] .mx_ReplyTile .mx_EventTileBubble {
            left: auto;
            left: initial; /* Cancel the value specified above for the tile inside ReplyTile */
        }
            .mx_EventTile[data-layout="irc"].mx_EventTile_isEditing > .mx_EventTile_line .mx_EditMessageComposer {
                /* add space for the stroke on box-shadow */
                -webkit-padding-start: calc(
                    var(--selected-message-border-width) + var(--EditMessageComposer-padding-inline)
                );
                        padding-inline-start: calc(
                    var(--selected-message-border-width) + var(--EditMessageComposer-padding-inline)
                );
            }
            .mx_EventTile[data-layout="irc"].mx_EventTile_info .mx_EventTile_avatar {
                left: var(--EventTile_irc_line_info-margin-inline-start);
                top: 0;
                margin-right: var(--right-padding);
                padding-block: var(--EventTile_irc_line-padding-block);
            }

            .mx_EventTile[data-layout="irc"].mx_EventTile_info .mx_EventTile_line {
                -webkit-margin-start: var(--EventTile_irc_line_info-margin-inline-start);
                        margin-inline-start: var(--EventTile_irc_line_info-margin-inline-start);
            }
            .mx_EventTile[data-layout="irc"].mx_EventTile_emote .mx_EventTile_avatar {
                /* add --right-padding value of MessageTimestamp only */
                margin-left: calc(var(--name-width) + var(--icon-width) + 1 * var(--right-padding));
            }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_footer {
            margin: var(--cpd-space-1-5x) 0;
        }
        .mx_EventTile[data-layout="group"] .mx_EventTile_avatar {
            top: 14px;
            left: var(--cpd-space-2x);
        }

        .mx_EventTile[data-layout="group"] .mx_EventTile_line,
        .mx_EventTile[data-layout="group"] .mx_EventTile_reply {
            padding-top: var(--EventTile_group_line-spacing-block-start);
            padding-bottom: var(--EventTile_group_line-spacing-block-end);
            padding-left: var(--EventTile_group_line-spacing-inline-start);
            line-height: var(--EventTile_group_line-line-height);
        }

        .mx_EventTile[data-layout="group"] .mx_EventTile_e2eIcon {
            inset: 0 0 0 44px;

            /* Keep height equal to text for alignment */
            height: var(--EventTile_group_line-line-height);
            margin: 1px;
        }

        .mx_EventTile[data-layout="group"] .mx_EventTile_msgOption {
            -webkit-margin-end: 10px;
                    margin-inline-end: 10px;
        }

            .mx_EventTile[data-layout="group"] .mx_EventTile_msgOption .mx_ReadReceiptGroup {
                /* This aligns the avatar with the last line of the */
                /* message. We want to move it one line up */
                /* See .mx_EventTile[data-layout=group] .mx_EventTile_line in _EventTile.scss */
                inset-block-start: calc(-1.375rem - 3px);
            }

        .mx_EventTile[data-layout="group"] .mx_MessageTimestamp {
            position: absolute;
            left: 0;
            text-align: center;
        }

        .mx_EventTile[data-layout="group"] .mx_ThreadSummary,
        .mx_EventTile[data-layout="group"] .mx_ThreadSummary_icon {
            margin-left: 64px;
        }

        .mx_EventTile[data-layout="group"] .mx_EventTile_footer {
            margin: var(--cpd-space-1x) var(--EventTile_group_line-spacing-inline-start);
        }

        .mx_EventTile[data-layout="group"] > .mx_DisambiguatedProfile {
            line-height: 1.25rem;
            -webkit-margin-start: 64px;
                    margin-inline-start: 64px;
            max-width: calc(100% - 64px);
        }

        .mx_EventTile[data-layout="group"] > .mx_EventTile_avatar {
            position: absolute;
            z-index: 9;
        }

        .mx_RoomView_timeline_rr_enabled .mx_EventTile[data-layout="group"] {

            /* on ELS we need the margin to allow interaction with the expand/collapse button */
            /* which is normally in the RR gutter */
        }

            .mx_RoomView_timeline_rr_enabled .mx_EventTile[data-layout="group"] .mx_ThreadSummary,
            .mx_RoomView_timeline_rr_enabled .mx_EventTile[data-layout="group"] .mx_ThreadSummary_icon,
            .mx_RoomView_timeline_rr_enabled .mx_EventTile[data-layout="group"] .mx_EventTile_line {
                margin-right: 80px;
                min-height: 0.875rem;
            }

            .mx_RoomView_timeline_rr_enabled .mx_EventTile[data-layout="group"] .mx_ThreadSummary {
                /* leave space on both left & right gutters */
                max-width: min(calc(100% - 64px - 80px), 600px);
            }

        .mx_EventTile[data-layout="group"].mx_EventTile_continuation {
            padding-top: 0;
        }

        .mx_EventTile[data-layout="group"].mx_EventTile_info {

            padding-top: 0;
        }

            .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_avatar,
            .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_e2eIcon {
                line-height: 1;
                margin: 3px 0 2px;
            }

            .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_avatar {
                top: auto;
                top: initial;
                inset-inline-start: 64px;
                height: 14px;
            }

            .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_line {
                padding-block: 3px 2px;
                /* 20px: avatar area */
                -webkit-padding-start: calc(var(--EventTile_group_line-spacing-inline-start) + 20px);
                        padding-inline-start: calc(var(--EventTile_group_line-spacing-inline-start) + 20px);
            }

                .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_line .mx_MessageTimestamp {
                    top: 0;
                }

            .mx_EventTile[data-layout="group"].mx_EventTile_info.mx_EventTile_selected .mx_EventTile_line {
                /* TODO: check if this would be necessary; */
                -webkit-padding-start: calc(var(--EventTile_group_line-spacing-inline-start) + 20px);
                        padding-inline-start: calc(var(--EventTile_group_line-spacing-inline-start) + 20px);
            }

    .mx_EventTile[data-layout="bubble"] {
        /* Other half of the gutter is provided by margin-bottom on the last tile
        of the section */
        margin-top: calc(var(--gutterSize) / 2);
        margin-left: var(--EventTile_bubble-margin-inline-start);

        /* Reset default values. TODO: remove */
        max-width: none;
        max-width: initial;
        padding-top: 0;
    }
            .mx_EventTile[data-layout="bubble"] .mx_EventTile_msgOption .mx_ReadReceiptGroup {
                position: absolute;
                inset-block-start: auto;

                /* as close to right gutter without clipping as possible */
                inset-inline-end: calc(-1 * var(--ReadReceiptGroup_EventBubbleTile-spacing-end));

                /* (EventTileLine.line-height - ReadReceiptGroup.height) / 2 */
                /* this centers the ReadReceiptGroup if we’ve got a single line */
                inset-block-end: calc((1.125rem - 24px) / 2);
            }
        .mx_EventTile[data-layout="bubble"] .mx_EventTileBubble {
            /* Timestamps are inside the tile, so the width can be less constrained */
            max-width: 600px;
        }

        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation {
            margin-top: 2px;
        }
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection {
            /* Other half of the gutter is provided by margin-top on the first
            tile of the section */
            margin-bottom: calc(var(--gutterSize) / 2);
        }
        .mx_GenericEventListSummary[data-layout="irc"] .mx_EventTile_line .mx_RedactedBody, .mx_GenericEventListSummary[data-layout="group"] .mx_EventTile_line .mx_RedactedBody {
            line-height: 1; /* remove spacing between lines */
        }
        /* Apply only collapsed events block */
        .mx_GenericEventListSummary[data-layout="irc"] > .mx_EventTile_line {
            /* add --right-padding value of MessageTimestamp and avatar only */
            /* stylelint-disable-next-line declaration-colon-space-after */
            padding-left: calc(
                var(--name-width) + var(--icon-width) + 46px + 2 * var(--right-padding)
            );
            padding-left: calc(
                var(--name-width) + var(--icon-width) + var(--MessageTimestamp-width) + 2 * var(--right-padding)
            );
        }
        .mx_GenericEventListSummary[data-layout="group"] .mx_EventTile_line {
            padding-left: 64px;
        }

        .mx_GenericEventListSummary[data-layout="group"] .mx_GenericEventListSummary_unstyledList > .mx_EventTile_info .mx_EventTile_avatar ~ .mx_EventTile_line {
            /* override padding-left $left-gutter */
            -webkit-padding-start: calc(var(--EventTile_group_line-spacing-inline-start) + 20px);
                    padding-inline-start: calc(var(--EventTile_group_line-spacing-inline-start) + 20px);
        }

.mx_EventTile_content {
    /*
    all the overflow-y: hidden; are to trap Zalgos -
    but they introduce an implicit overflow-x: auto.
    so make that explicitly hidden too to avoid random
    horizontal scrollbars occasionally appearing, like in
    https://github.com/vector-im/vector-web/issues/1154
    */
    overflow-y: hidden;
    overflow-x: hidden;
    margin-right: var(--EventTile_content-margin-inline-end);
}

    .mx_EventTile_content .markdown-body {
        font: var(--cpd-font-body-md-regular) !important;
        letter-spacing: var(--cpd-font-letter-spacing-body-md);
        font-family: inherit !important;
        white-space: normal !important;
        line-height: inherit !important;
        background-color: inherit;
        color: inherit; /* inherit the colour from the dark or light theme by default (but not for code blocks) */
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;

        /*
        // actually, removing the Italic TTF provides
        // better results seemingly

        // compensate for Nunito italics being terrible
        // https://github.com/google/fonts/issues/1726
        em {
            transform: skewX(-14deg);
            display: inline-block;
        }
        */
    }

        .mx_EventTile_content .markdown-body pre,
        .mx_EventTile_content .markdown-body code {
            font-family: "Fira Code", "", "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji" !important;
            font-family: "Fira Code", var(--emoji-font-family), "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji" !important;
            background-color: #21262c;
        }

        .mx_EventTile_content .markdown-body code:not(pre *) {
            background-color: #2a3039;
            border: 1px solid #2a3039;
            border-radius: 4px;
            /* The horizontal padding is added by github-markdown-css .markdown-body */
            padding: var(--cpd-space-0-5x) 0;
            /* Avoid inline code blocks to be sticked when on multiple lines */
            line-height: 1.375rem;
            /* Avoid the border to be glued to the other words */
            margin-right: var(--cpd-space-0-5x);
        }

        .mx_EventTile_content .markdown-body code {
            white-space: pre-wrap; /* don't collapse spaces in inline code blocks */
        }

        .mx_EventTile_content .markdown-body pre {
            /* have to use overlay rather than auto otherwise Linux and Windows */
            /* Chrome gets very confused about vertical spacing: */
            /* https://github.com/vector-im/vector-web/issues/754 */
            overflow-x: overlay;
            overflow-y: visible;
        }

            .mx_EventTile_content .markdown-body pre::-webkit-scrollbar-corner {
                background: transparent;
            }

            .mx_EventTile_content .markdown-body pre{

            border: 1px solid #6f7882;
}

            .mx_EventTile_content .markdown-body pre code {
                white-space: pre; /* we want code blocks to be scrollable and not wrap */
            }

                .mx_EventTile_content .markdown-body pre code > * {
                    display: inline;
                }

        .mx_EventTile_content .markdown-body h1,
        .mx_EventTile_content .markdown-body h2,
        .mx_EventTile_content .markdown-body h3,
        .mx_EventTile_content .markdown-body h4,
        .mx_EventTile_content .markdown-body h5,
        .mx_EventTile_content .markdown-body h6 {
            font-family: inherit !important;
            color: inherit;
        }

        /* Make h1 and h2 the same size as h3. */
        .mx_EventTile_content .markdown-body h1,
        .mx_EventTile_content .markdown-body h2 {
            font-size: 1.5em;
            border-bottom: none !important; /* override GFM */
        }

        .mx_EventTile_content .markdown-body a {
            color: #238cf5;
        }

        .mx_EventTile_content .markdown-body blockquote {
            border-left: 2px solid var(--cpd-color-border-interactive-primary);
            color: #edf3ff;
            border-radius: 2px;
            padding: 0 10px;
        }

        /* Support arbitrarily large marker numbers */
        .mx_EventTile_content .markdown-body ol {
            list-style-position: inside;
            -webkit-padding-start: 0.5em;
                    padding-inline-start: 0.5em;
        }

        /* Override nested lists being lower-roman */
        .mx_EventTile_content .markdown-body ol ol,
        .mx_EventTile_content .markdown-body ul ol {
            list-style-type: revert;
        }

        /* Make list type disc to match rich text editor */
        .mx_EventTile_content .markdown-body ul {
            list-style-type: disc;
        }

        /* override styles from the base markdown CSS that put markdown content on its own line,
           as this isn't what we want for richtext emote content.
         */
        .mx_EventTile_content .markdown-body::before {
            display: none;
        }

        .mx_EventTile_content .markdown-body::after {
            display: none;
        }

/* Spoiler stuff */
.mx_EventTile_spoiler {
    cursor: pointer;

    /* clear button styles */
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    font-size: inherit;
    font-family: inherit;
    line-height: inherit;
    text-align: inherit;
}

    .mx_EventTile_spoiler .mx_EventTile_spoiler_reason {
        color: #a1b2d1;
        font-size: 0.6875rem;
    }

    .mx_EventTile_spoiler .mx_EventTile_spoiler_content {
        -webkit-filter: blur(5px) saturate(0.1) sepia(1);
                filter: blur(5px) saturate(0.1) sepia(1);
        -webkit-transition-duration: 0.5s;
                transition-duration: 0.5s;
        pointer-events: none;
    }

    .mx_EventTile_spoiler.visible > .mx_EventTile_spoiler_content {
        -webkit-filter: none;
                filter: none;
        -webkit-user-select: auto;
           -moz-user-select: auto;
            -ms-user-select: auto;
                user-select: auto;
        pointer-events: auto;
    }

.mx_EventTile_bigEmoji {
    font-size: 48px;
    line-height: 57px;
}

    .mx_EventTile_bigEmoji .mx_Emoji {
        font-size: inherit !important;
    }

.mx_EventTile_e2eIcon {
    position: relative;
    width: 14px;
    height: 14px;
    display: block;
}

    .mx_EventTile_e2eIcon svg {
        height: inherit;
        width: inherit;
        display: block;
    }
    .mx_EventTile_body a:hover {
        text-decoration: underline;
    }

    .mx_EventTile_body pre {
        border: 1px solid transparent;
    }

        .mx_EventTile:hover .mx_EventTile_body pre,
        .mx_EventTile:focus-visible:focus-within .mx_EventTile_body pre {
            border: 1px solid #edf3ff;
        }

    /* selector wrongly applies to pill avatars but those have explicit width/height passed at a higher specificity */
    .mx_EventTile_body.markdown-body img {
        -o-object-fit: contain;
           object-fit: contain;
        -o-object-position: left top;
           object-position: left top;

        /* Override the default colors of the 'github-markdown-css' library
        (#fff for light theme, #000 for dark theme) to match the inherited theme */
        background-color: inherit !important;
    }

    .mx_EventTile_clamp .mx_EventTile_body {
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        text-overflow: ellipsis;
        display: -webkit-box;
    }

    .mx_EventTile_body .mx_EventTile_pre_container {
        /* For correct positioning of _copyButton (See TextualBody) */
        position: relative;
    }

        /* Emoji are enlarged in prose, but a code block's line numbers are one fixed-height block
           per line and cannot follow a line that an enlarged emoji has made taller. */
        .mx_EventTile_body .mx_EventTile_pre_container .mx_Emoji {
            font-size: inherit;
        }
            .mx_EventTile_body .mx_EventTile_pre_container:focus-within .mx_EventTile_button, .mx_EventTile_body .mx_EventTile_pre_container:hover .mx_EventTile_button {
                visibility: visible;
            }

        .mx_EventTile_body .mx_EventTile_pre_container .mx_EventTile_collapsedCodeBlock {
            max-height: 30vh;
            padding-top: var(--cpd-space-3x);
            padding-bottom: var(--cpd-space-3x);
        }

        /* Inserted adjacent to <pre> blocks, (See TextualBody) */
        .mx_EventTile_body .mx_EventTile_pre_container .mx_EventTile_button {
            position: absolute;
            top: var(--cpd-space-2x);
            right: var(--cpd-space-2x);
            visibility: hidden;
        }

            .mx_EventTile_body .mx_EventTile_pre_container .mx_EventTile_button.mx_EventTile_buttonBottom {
                top: 33px;
            }

            .mx_EventTile_body .mx_EventTile_pre_container .mx_EventTile_button svg {
                width: inherit;
                height: inherit;
                display: block;
                color: #a1b2d1;
            }

.mx_EventTile_lineNumbers {
    float: left;
    margin: 0 0.5em 0 -1.5em;
    color: gray;
}

    .mx_EventTile_lineNumbers span {
        text-align: right;
        display: block;
        padding-left: 1em;
    }

.mx_EventTile_button {
    display: inline-block;
    cursor: pointer;
}

.mx_EventTile_tileError {
    color: red;
    text-align: center;

    /* Remove some of the default tile padding so that the error is centered */
    margin-right: 0;
}

    .mx_EventTile_tileError .mx_EventTile_line {
        padding-left: 0;
        margin-right: 0;
    }

        .mx_EventTile_tileError .mx_EventTile_line span {
            padding: var(--cpd-space-1x) var(--cpd-space-2x);
        }

    .mx_EventTile_tileError a {
        margin-left: 1em;
    }

.mx_EventTile:hover .mx_ThreadActionBar,
.mx_EventTile.mx_EventTile_actionBarFocused .mx_ThreadActionBar,
[data-whatinput="keyboard"] .mx_EventTile:focus-within .mx_ThreadActionBar,
.mx_EventTile:focus-visible:focus-within .mx_ThreadActionBar {
    visibility: visible;
}

.mx_EventTile[data-shape="ThreadsList"],
.mx_EventTile[data-shape="Notification"] {
    --topOffset: var(--cpd-space-3x);
    --leftOffset: 48px; /* notification dot next to the timestamp */

    margin: calc(var(--topOffset) + 1px) 0 var(--topOffset); /* include the height of horizontal line */
    padding: var(--cpd-space-2x);
    border-radius: 8px;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -ms-flex-flow: wrap;
        flex-flow: wrap;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

    .mx_EventTile[data-shape="ThreadsList"]::after,
    .mx_EventTile[data-shape="ThreadsList"]::before,
    .mx_EventTile[data-shape="Notification"]::after,
    .mx_EventTile[data-shape="Notification"]::before {
        content: "";
        position: absolute;
    }

    .mx_EventTile[data-shape="ThreadsList"]::after, .mx_EventTile[data-shape="Notification"]::after { /* exclude the height of horizontal line */
        inset: auto calc(-1 * var(--cpd-space-2x)) calc(-1 * var(--topOffset) - 1px) calc(var(--leftOffset) + var(--cpd-space-2x));

        height: 1px;
        background-color: #6f7882;
        pointer-events: none; /* disable the message action bar on hover */
    }

    .mx_EventTile[data-shape="ThreadsList"]::before, .mx_EventTile[data-shape="Notification"]::before {
        inset: 0;
        pointer-events: none; /* ensures the title for the sender name can be correctly displayed */
    }

    .mx_EventTile[data-shape="ThreadsList"][data-notification="total"]::before, .mx_EventTile[data-shape="Notification"][data-notification="total"]::before {
        background-color: var(--cpd-color-icon-tertiary);
    }

    .mx_EventTile[data-shape="ThreadsList"][data-notification="highlight"]::before, .mx_EventTile[data-shape="Notification"][data-notification="highlight"]::before {
        background-color: #ff5b55;
    }
        .mx_EventTile[data-shape="ThreadsList"]:last-child::after, .mx_EventTile[data-shape="Notification"]:last-child::after {
            content: normal;
            content: initial;
        }
        .mx_EventTile[data-shape="ThreadsList"]:last-child, .mx_EventTile[data-shape="Notification"]:last-child{

        margin-bottom: 0;
}

    .mx_EventTile[data-shape="ThreadsList"]:first-child, .mx_EventTile[data-shape="Notification"]:first-child {
        margin-top: 0;
    }

    .mx_EventTile[data-shape="ThreadsList"] .mx_EventTile_avatar, .mx_EventTile[data-shape="Notification"] .mx_EventTile_avatar {
        inset: var(--cpd-space-2x) auto auto var(--cpd-space-2x);
    }

    .mx_EventTile[data-shape="ThreadsList"] .mx_EventTile_details, .mx_EventTile[data-shape="Notification"] .mx_EventTile_details {
        overflow: hidden;
    }

    .mx_EventTile[data-shape="ThreadsList"] .mx_DisambiguatedProfile, .mx_EventTile[data-shape="Notification"] .mx_DisambiguatedProfile {
        display: -webkit-inline-box;
        display: -ms-inline-flexbox;
        display: inline-flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
    }

        .mx_EventTile[data-shape="ThreadsList"] .mx_DisambiguatedProfile .mx_DisambiguatedProfile_displayName,
        .mx_EventTile[data-shape="ThreadsList"] .mx_DisambiguatedProfile .mx_DisambiguatedProfile_mxid,
        .mx_EventTile[data-shape="Notification"] .mx_DisambiguatedProfile .mx_DisambiguatedProfile_displayName,
        .mx_EventTile[data-shape="Notification"] .mx_DisambiguatedProfile .mx_DisambiguatedProfile_mxid {
            display: block;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .mx_EventTile[data-shape="ThreadsList"] .mx_DisambiguatedProfile .mx_DisambiguatedProfile_displayName, .mx_EventTile[data-shape="Notification"] .mx_DisambiguatedProfile .mx_DisambiguatedProfile_displayName {
            -webkit-box-flex: 0;
                -ms-flex: none;
                    flex: none;
            max-width: 100%;
        }

        .mx_EventTile[data-shape="ThreadsList"] .mx_DisambiguatedProfile .mx_DisambiguatedProfile_mxid, .mx_EventTile[data-shape="Notification"] .mx_DisambiguatedProfile .mx_DisambiguatedProfile_mxid {
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
        }

    .mx_EventTile[data-shape="ThreadsList"] .mx_EventTile_line, .mx_EventTile[data-shape="Notification"] .mx_EventTile_line {
        width: 100%;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        padding-bottom: 0;
        -webkit-padding-start: var(--leftOffset);
                padding-inline-start: var(--leftOffset);
    }

    .mx_EventTile[data-shape="ThreadsList"] .mx_MessageTimestamp, .mx_EventTile[data-shape="Notification"] .mx_MessageTimestamp {
        font-size: 0.75rem;
        width: auto;
        width: initial; /* Cancel the default width */
        overflow: hidden; /* ensure correct overflow behavior */
        text-overflow: ellipsis;
        position: static;
        position: initial;
        margin-left: auto; /* to ensure it's end-aligned even if it's the only element of its parent */
    }

    .mx_EventTile[data-shape="ThreadsList"]:hover, .mx_EventTile[data-shape="Notification"]:hover {
        background-color: rgba(33,38,44, 0.9);
    }

    /* ThreadsList has always group layout */
        .mx_EventTile[data-shape="ThreadsList"][data-layout="group"]:hover .mx_EventTile_line, .mx_EventTile[data-shape="Notification"][data-layout="group"]:hover .mx_EventTile_line {
            background-color: inherit;
            -webkit-box-shadow: none;
                    box-shadow: none; /* don't show the verification left stroke in the thread list */
        }
    .mx_EventTile[data-shape="ThreadsList"] .mx_ThreadPanel_replies {
        margin-top: var(--cpd-space-2x);
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        position: relative;
        font: var(--cpd-font-body-sm-regular);
    }

        .mx_EventTile[data-shape="ThreadsList"] .mx_ThreadPanel_replies > svg {
            display: inline-block;
            height: 18px;
            width: 18px;
            -ms-flex-negative: 0;
                flex-shrink: 0;
            color: var(--cpd-color-icon-tertiary);
        }

        .mx_EventTile[data-shape="ThreadsList"] .mx_ThreadPanel_replies .mx_ThreadPanel_replies_amount {
            color: #edf3ff;
            font-weight: var(--cpd-font-weight-semibold);
            white-space: nowrap;
            position: relative;
            padding: 0 var(--cpd-space-3x) 0 var(--cpd-space-2x);
        }

.mx_ThreadSummary_icon {
    display: inline-block;
    margin-top: var(--cpd-space-2x);
    margin-bottom: var(--cpd-space-2x);
}

    .mx_ThreadSummary_icon > svg {
        display: inline-block;
        height: 18px;
        width: 18px;
        -ms-flex-negative: 0;
            flex-shrink: 0;
        color: var(--cpd-color-icon-tertiary);
        vertical-align: middle;
        -webkit-margin-end: var(--cpd-space-2x);
                margin-inline-end: var(--cpd-space-2x);
        margin-top: -2px;
    }

    a.mx_ThreadSummary_icon {
        color: #edf3ff;
    }

/* For style rules of ThreadView, see _ThreadPanel.pcss */
.mx_ThreadView {
    --ThreadView_group_spacing-start: 56px; /* 56px: 64px - 8px (padding) */
    --ThreadView_group_spacing-end: 8px;
} /* same as padding */

    .mx_ThreadView .mx_EventTile {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

        .mx_ThreadView .mx_EventTile .mx_EventTile_roomName {
            display: none;
        }

        /* handling for hidden events (e.g reactions) in the thread view */
            .mx_ThreadView .mx_EventTile.mx_EventTile_info .mx_EventTile_avatar {
                position: absolute;
                /* Align with hidden event content */
                top: 50%;
                -webkit-transform: translateY(-50%);
                        transform: translateY(-50%);
                margin-top: -2px;
                margin-bottom: 0;
            }

            .mx_ThreadView .mx_EventTile.mx_EventTile_info.mx_EventTile_selected .mx_EventTile_line,
            .mx_ThreadView .mx_EventTile.mx_EventTile_info .mx_EventTile_line {

                -webkit-padding-start: 0;

                        padding-inline-start: 0;
                line-height: 0.75rem;
            }

                .mx_ThreadView .mx_EventTile.mx_EventTile_info.mx_EventTile_selected .mx_EventTile_line .mx_EventTile_content,
                .mx_ThreadView .mx_EventTile.mx_EventTile_info.mx_EventTile_selected .mx_EventTile_line .mx_RedactedBody,
                .mx_ThreadView .mx_EventTile.mx_EventTile_info .mx_EventTile_line .mx_EventTile_content,
                .mx_ThreadView .mx_EventTile.mx_EventTile_info .mx_EventTile_line .mx_RedactedBody {
                    width: auto;
                    font-size: 0.75rem;
                }

            .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="irc"],
            .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="group"] {
                padding-top: 0;
            }

                .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="irc"] .mx_EventTile_avatar, .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="group"] .mx_EventTile_avatar {
                    /* 14px: avatar width, 4px: align with text */
                    left: calc(46px + 14px - 4px);
                    left: calc(var(--MessageTimestamp-width) + 14px - 4px);
                    z-index: 9; /* position above the hover styling */
                }

                .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="irc"] .mx_MessageTimestamp, .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="group"] .mx_MessageTimestamp {
                    top: 2px; /* Align with avatar */
                }
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="irc"].mx_EventTile_selected .mx_EventTile_line .mx_EventTile_content,
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="irc"].mx_EventTile_selected .mx_EventTile_line .mx_RedactedBody,
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="irc"] .mx_EventTile_line .mx_EventTile_content,
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="irc"] .mx_EventTile_line .mx_RedactedBody,
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="group"].mx_EventTile_selected .mx_EventTile_line .mx_EventTile_content,
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="group"].mx_EventTile_selected .mx_EventTile_line .mx_RedactedBody,
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="group"] .mx_EventTile_line .mx_EventTile_content,
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="group"] .mx_EventTile_line .mx_RedactedBody {
                        /* 14px: avatar width, 6px: 20px - 14px */
                        -webkit-margin-start: calc(14px + 6px);
                                margin-inline-start: calc(14px + 6px);
                    }
                .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_avatar {
                    inset-inline-start: 0;
                }
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="bubble"].mx_EventTile_selected .mx_EventTile_line .mx_EventTile_content,
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="bubble"].mx_EventTile_selected .mx_EventTile_line .mx_RedactedBody,
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_line .mx_EventTile_content,
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_line .mx_RedactedBody {
                        -webkit-margin-start: calc(var(--ThreadView_group_spacing-start) + 14px + 6px);
                                margin-inline-start: calc(var(--ThreadView_group_spacing-start) + 14px + 6px);
                    }

        .mx_ThreadView .mx_EventTile[data-layout="irc"],
        .mx_ThreadView .mx_EventTile[data-layout="group"] {
            -webkit-padding-before: var(--cpd-space-4x);
                    padding-block-start: var(--cpd-space-4x);
        }

            .mx_ThreadView .mx_EventTile[data-layout="irc"] .mx_EventTile_line,
            .mx_ThreadView .mx_EventTile[data-layout="irc"] .mx_EventTile_footer,
            .mx_ThreadView .mx_EventTile[data-layout="group"] .mx_EventTile_line,
            .mx_ThreadView .mx_EventTile[data-layout="group"] .mx_EventTile_footer {
                -webkit-margin-end: var(--ThreadView_group_spacing-end);
                        margin-inline-end: var(--ThreadView_group_spacing-end);
            }

            .mx_ThreadView .mx_EventTile[data-layout="irc"] .mx_EventTile_line, .mx_ThreadView .mx_EventTile[data-layout="group"] .mx_EventTile_line {
                padding-block: var(--BaseCard_EventTile_line-padding-block);

                /* Add padding to align message text with summary text */
                /* See: .mx_EventTile[data-layout="group"] .mx_EventTile_line */
                -webkit-padding-start: var(--ThreadView_group_spacing-start);
                        padding-inline-start: var(--ThreadView_group_spacing-start);
            }
                    .mx_ThreadView .mx_EventTile[data-layout="irc"] .mx_EventTile_line .mx_EventTile_content.mx_EditMessageComposer, .mx_ThreadView .mx_EventTile[data-layout="group"] .mx_EventTile_line .mx_EventTile_content.mx_EditMessageComposer {
                        -webkit-padding-start: 0;
                                padding-inline-start: 0; /* align start of first letter with that of the event body */
                    }

            .mx_ThreadView .mx_EventTile[data-layout="irc"] .mx_EventTile_footer, .mx_ThreadView .mx_EventTile[data-layout="group"] .mx_EventTile_footer {
                /* Align with message text and summary text */
                -webkit-margin-start: var(--ThreadView_group_spacing-start);
                        margin-inline-start: var(--ThreadView_group_spacing-start);
            }

            .mx_ThreadView .mx_EventTile[data-layout="irc"].mx_EventTile_continuation, .mx_ThreadView .mx_EventTile[data-layout="group"].mx_EventTile_continuation {
                -webkit-padding-before: 0;
                        padding-block-start: 0; /* Cancel padding-block-start */
            }

        .mx_ThreadView .mx_EventTile[data-layout="group"] {
            width: 100%;
        }

            .mx_ThreadView .mx_EventTile[data-layout="group"] .mx_EventTile_senderDetails {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
                gap: var(--cpd-space-4x); /* gap between the avatar and the sender ID */
                -webkit-padding-start: var(--cpd-space-2x);
                        padding-inline-start: var(--cpd-space-2x);
            }

                .mx_ThreadView .mx_EventTile[data-layout="group"] .mx_EventTile_senderDetails a {
                    -webkit-box-flex: 1;
                        -ms-flex: 1;
                            flex: 1;
                    min-width: 0;
                    min-width: initial;
                    max-width: 100%;
                    display: -webkit-box;
                    display: -ms-flexbox;
                    display: flex;
                    -webkit-box-align: center;
                        -ms-flex-align: center;
                            align-items: center;
                }

                    .mx_ThreadView .mx_EventTile[data-layout="group"] .mx_EventTile_senderDetails a .mx_DisambiguatedProfile {
                        -webkit-margin-start: 8px;
                                margin-inline-start: 8px;
                        -webkit-box-flex: 1;
                            -ms-flex: 1;
                                flex: 1;
                    }

            .mx_ThreadView .mx_EventTile[data-layout="group"] .mx_MessageTimestamp {
                position: absolute; /* for IRC layout */
                top: 2px; /* Align with mx_EventTile_content */
            }

        .mx_ThreadView .mx_EventTile[data-layout="bubble"] {
            margin-inline: var(--BaseCard_EventTile-spacing-inline);
        }

            .mx_ThreadView .mx_EventTile[data-layout="bubble"]::before {
                inset-inline: calc(-1 * var(--BaseCard_EventTile-spacing-inline));
                z-index: auto; /* enable background color on hover */
            }

            .mx_ThreadView .mx_EventTile[data-layout="bubble"] .mx_ReactionsRow {
                position: relative; /* display on hover */
            }

            .mx_ThreadView .mx_EventTile[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_mediaLine {
                padding-block: 0;
                -webkit-padding-start: 0;
                        padding-inline-start: 0;
                max-width: var(--EventBubbleTile_line-max-width);
            }

            .mx_ThreadView .mx_EventTile[data-layout="bubble"][data-self="true"] {
                -webkit-box-align: end;
                    -ms-flex-align: end;
                        align-items: flex-end;
            }

                .mx_ThreadView .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_line.mx_EventTile_mediaLine {
                    margin: 0 var(--EventTile_bubble_line-margin-inline-end) 0 0; /* align with normal messages */
                }
            .mx_ThreadView .mx_GenericEventListSummary[data-layout="irc"] > .mx_EventTile_line, .mx_ThreadView .mx_GenericEventListSummary[data-layout="group"] > .mx_EventTile_line {
                -webkit-padding-start: var(--ThreadView_group_spacing-start);
                        padding-inline-start: var(--ThreadView_group_spacing-start); /* align summary text with message text */
                -webkit-padding-end: var(--ThreadView_group_spacing-end);
                        padding-inline-end: var(--ThreadView_group_spacing-end); /* align summary text with message text */
            }

/* Cascading - compact modern layout on the main timeline and the right panel */
    .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] {
        --MatrixChat_useCompactLayout_group-padding-top: var(--cpd-space-1x);
        --MatrixChat_useCompactLayout-top-avatar: 2px;
        --MatrixChat_useCompactLayout_line-spacing-block: 0px;

        padding-top: var(--MatrixChat_useCompactLayout_group-padding-top);
    }

        .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_line,
        .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_reply {
            padding-block: var(--MatrixChat_useCompactLayout_line-spacing-block);
        }

        .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_ReplyChain {
            margin-bottom: var(--cpd-space-1x);
        }

        .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_info {
            padding-top: 0; /* same as the padding for non-compact .mx_EventTile.mx_EventTile_info */
            font-size: 0.8125rem;
        }

            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_e2eIcon,
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_avatar {
                top: 0;
                margin-block: var(--MatrixChat_useCompactLayout_line-spacing-block);
            }

            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_line,
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_reply {
                line-height: 1.25rem;
            }

        .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_emote {
            padding-top: var(--cpd-space-2x); /* add a bit more space for emotes so that avatars don't collide */
        }

            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_emote .mx_EventTile_avatar {
                top: var(--MatrixChat_useCompactLayout-top-avatar);
            }

            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_emote .mx_EventTile_line,
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_emote .mx_EventTile_reply {
                padding-bottom: 1px;
            }
                .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_emote.mx_EventTile_continuation .mx_EventTile_line,
                .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_emote.mx_EventTile_continuation .mx_EventTile_reply {
                    padding-bottom: var(--MatrixChat_useCompactLayout_line-spacing-block);
                }

        /* Cascading - apply zero padding to every element including mx_EventTile_emote */
        .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_continuation {
            padding-top: var(--MatrixChat_useCompactLayout_line-spacing-block);
        }

        .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_avatar {
            top: var(--MatrixChat_useCompactLayout-top-avatar);
        }

        .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_e2eIcon {
            margin: 0px;
        }
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_msgOption .mx_ReadReceiptGroup {
                /* This aligns the avatar with the last line of the */
                /* message. We want to move it one line up - 2rem */
                inset-block-start: -2rem;
            }
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_content .markdown-body p,
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_content .markdown-body ul,
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_content .markdown-body ol,
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_content .markdown-body dl,
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_content .markdown-body blockquote,
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_content .markdown-body pre,
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_content .markdown-body table {
                margin-bottom: var(--cpd-space-1x); /* 1/4 of the non-compact margin-bottom */
            }

.mx_EventTile_details {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: -webkit-fill-available;
    width: -moz-available;
    width: stretch;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    gap: var(--cpd-space-2x);
    margin-left: var(--leftOffset);
}
    .mx_EventTile_details .mx_EventTile_truncated {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

.mx_EventTile_footer {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: var(--cpd-space-2x);
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

/* Media query for mobile UI */
@media only screen and (max-width: 480px) {
    .mx_EventTile_content {
        margin-right: 0;
    }
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Robin Townsend <robin@robin.town>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_EventTileBubble.mx_HistoryTile {
    margin: 10px auto;
    margin: var(--EventTileBubble_margin-block) auto;
}

    .mx_EventTileBubble.mx_HistoryTile svg {
        color: #a1b2d1;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

:root {
    --irc-line-height: 1.125rem;
}

.mx_IRCLayout {
    --name-width: 80px; /* cf. ircDisplayNameWidth on Settings.tsx */
    --event-tile-irc-name-width: var(--name-width);
    --icon-width: 14px;
    --line-height: var(--irc-line-height);
    --right-padding: 5px;

    line-height: 1.125rem !important;

    line-height: var(--line-height) !important;
}

    .mx_IRCLayout blockquote {
        margin: 0;
    }
        .mx_IRCLayout .mx_NewRoomIntro > h2 {
            line-height: normal;
            line-height: initial; /* Cancel var(--irc-line-height) */
        }
        .mx_IRCLayout .mx_ReplyChain .mx_DisambiguatedProfile {
            width: auto;
            width: initial;
            -webkit-box-ordinal-group: initial;
                -ms-flex-order: initial;
                    order: initial;
            -ms-flex-negative: initial;
                flex-shrink: initial; /* Unset flex-shrink to prevent long display name blowout */
        }
            .mx_IRCLayout .mx_ReplyChain .mx_EventTile_emote > .mx_EventTile_avatar {
                margin-left: 0;
                margin-left: initial;
            }

        .mx_IRCLayout .mx_ReplyChain .mx_MessageTimestamp {
            width: auto;
            width: initial;
        }

        /**
         * adding the icon back in the document flow
         * if it's not present, there's no unwanted wasted space
         */
        .mx_IRCLayout .mx_ReplyChain .mx_EventTile_e2eIcon {
            position: relative;
            -webkit-box-ordinal-group: 0;
                -ms-flex-order: -1;
                    order: -1;
        }

    .mx_IRCLayout .mx_ProfileResizer {
        --resizer-width: 15px;
        --resizer-a11y: 3px; /* Magic number, to be replaced with something more proper from the perspective of a11y */

        position: absolute;
        height: 100%;
        width: 15px;
        width: var(--resizer-width);
        cursor: col-resize;
        z-index: 100;

        /* Add width of every element rendered before the resizer (including padding for the avatar and the display
           name), subtracting the resizer width itself to prevent the resizer from overlapping the text and moving
           the resizer a bit to the left to make it easier to avoid selecting the resizer when highlighting text.
           Please note that MessageTimestamp does not have inline padding. */
        inset-inline-start: calc(
            18px + 46px + var(--icon-width) +
                var(--right-padding) + var(--name-width) + var(--right-padding) - 15px -
                3px
        );
        inset-inline-start: calc(
            var(--RoomView_MessageList-padding) + var(--MessageTimestamp-width) + var(--icon-width) +
                var(--right-padding) + var(--name-width) + var(--right-padding) - var(--resizer-width) -
                var(--resizer-a11y)
        );
    }
}
@layer app-web{

/*
Copyright 2025 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_InvitedIconView {
    color: var(--cpd-color-icon-tertiary);
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_JumpToBottomButton {
    z-index: 1000;
    position: absolute;
    /* 12 because height is 50 but button is only 38 = 12+(50-38) = 24 */
    bottom: 12px;
    right: 24px;
    width: 38px;
    /* give it a fixed height so the badge doesn't make */
    /* it taller and pop upwards when visible */
    height: 50px;
    text-align: center;
}

.mx_JumpToBottomButton_badge {
    position: relative;
    top: -12px;
    border-radius: 16px;
    font-weight: bold;
    font-size: 0.75rem;
    line-height: 0.875rem;
    text-align: center;
    /* to be able to get it centered */
    /* with text-align in parent */
    display: inline-block;
    padding: 0 4px;
    color: var(--cpd-color-text-on-solid-primary);
    background-color: var(--cpd-color-icon-secondary);
}

.mx_JumpToBottomButton_highlight .mx_JumpToBottomButton_badge {
    background-color: var(--cpd-color-icon-critical-primary);
}

.mx_JumpToBottomButton_scrollDown {
    position: relative;
    display: block;
    height: 38px;
    border-radius: 50%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    background: #181b21;
    border: 1.3px solid var(--cpd-color-icon-tertiary);
    cursor: pointer;
}

    .mx_JumpToBottomButton_scrollDown svg {
        height: inherit;
        width: inherit;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        padding: 7px 8px 7px 6px;
        color: var(--cpd-color-icon-tertiary);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LiveContentSummary {
    color: #edf3ff;
}
        .mx_LiveContentSummary .mx_LiveContentSummary_text svg {
            display: inline-block;
            vertical-align: text-bottom;
            color: #edf3ff;
            width: 16px;
            height: 16px;
            margin-right: 4px;
        }

        .mx_LiveContentSummary .mx_LiveContentSummary_text.mx_LiveContentSummary_text_active {
            color: #0dbd8b;
        }

            .mx_LiveContentSummary .mx_LiveContentSummary_text.mx_LiveContentSummary_text_active svg {
                color: #0dbd8b;
            }

    .mx_LiveContentSummary .mx_LiveContentSummary_participants svg {
        display: inline-block;
        vertical-align: middle;
        color: #edf3ff;
        width: 16px;
        height: 16px;
        margin-right: 2px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MemberListHeaderView {
    border-bottom: var(--cpd-border-width-1) solid var(--cpd-color-gray-400);
    max-height: 112px;
}

    .mx_MemberListHeaderView .mx_MemberListHeaderView_container {
        margin-top: var(--cpd-space-6x);
        width: 100%;
    }

    .mx_MemberListHeaderView .mx_MemberListHeaderView_invite_small {
        margin-left: var(--cpd-space-3x);
        margin-right: var(--cpd-space-4x);
    }

    .mx_MemberListHeaderView .mx_MemberListHeaderView_invite_large {
        width: 288px;
        height: 36px;
    }

    .mx_MemberListHeaderView .mx_MemberListHeaderView_label {
        padding: var(--cpd-space-6x) 0 var(--cpd-space-2x) var(--cpd-space-4x);
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        width: 100%;
        color: var(--cpd-color-text-secondary);
        font: var(--cpd-font-body-sm-semibold);
    }

    .mx_MemberListHeaderView .mx_MemberListHeaderView_search {
        width: 240px;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        margin-left: var(--cpd-space-4x);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MemberListView {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    min-height: 0;
}

    .mx_MemberListView .mx_MemberListView_container {
        height: 100%;
    }

    .mx_MemberListView .mx_MemberListView_separator {
        margin: 0;
        border: none;
        border-top: 2px solid var(--cpd-color-bg-subtle-primary);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MemberTileView {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    padding: var(--cpd-space-3x) var(--cpd-space-3x) var(--cpd-space-3x) var(--cpd-space-4x);
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    height: 56px;
    border-bottom: var(--cpd-border-width-1) solid var(--cpd-color-gray-300);
}

    .mx_MemberTileView .mx_MemberTileView_left,
    .mx_MemberTileView .mx_MemberTileView_right {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        gap: var(--cpd-space-2x);
    }

    .mx_MemberTileView .mx_MemberTileView_left {
        -ms-flex-preferred-size: 209px;
            flex-basis: 209px;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        min-width: 0;
    }

    .mx_MemberTileView .mx_MemberTileView_name {
        font: var(--cpd-font-body-md-medium);
        min-width: 0;
    }

        .mx_MemberTileView .mx_MemberTileView_name .mx_DisambiguatedProfile {
            font: inherit;
        }

    .mx_MemberTileView .mx_MemberTileView_userLabel {
        font: var(--cpd-font-body-sm-regular);
        color: var(--cpd-color-text-secondary);
        margin-left: var(--cpd-space-4x);
    }

    .mx_MemberTileView .mx_MemberTileView_avatar {
        position: relative;
        height: 32px;
        width: 32px;
    }

    .mx_MemberTileView .mx_MemberTileView_presence {
        position: absolute;
        right: -2px;
        bottom: 2px;
    }
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MessageComposer_wrapper {
    vertical-align: middle;
    margin: auto;
    border-top: 1px solid #000000;
    position: relative;
    padding-left: 42px;
    padding-right: 16px;
}

.mx_MessageComposer_replaced_wrapper {
    margin-left: auto;
    margin-right: auto;
}

.mx_MessageComposer_replaced_valign {
    height: 60px;
    display: table-cell;
    vertical-align: middle;
}

.mx_MessageComposer_roomReplaced_icon {
    float: left;
    margin-right: 20px;
    margin-top: 5px;
    width: 31px;
    height: 31px;
}

.mx_MessageComposer_roomReplaced_header {
    font-weight: bold;
}

.mx_MessageComposer_row {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    width: 100%;
}

.mx_MessageComposer_actions {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 6px;
}
    .mx_MessageComposer .mx_MessageComposer_avatar {
        position: absolute;
        left: 26px;
    }

        .mx_MessageComposer .mx_MessageComposer_avatar .mx_BaseAvatar {
            display: block;
        }

.mx_MessageComposer_e2eIconWrapper {
    height: 12px; /* Match the height of the E2E icon for alignment */
    width: 12px;
    position: absolute;
    left: 20px;
    top: 22px;
    margin-right: 0; /* Counteract the E2EIcon class */
    margin-left: 3px; /* Counteract the E2EIcon class */
}

    .mx_MessageComposer_e2eIconWrapper .mx_MessageComposer_e2eIcon {
        margin: 0;
        width: inherit;
        height: inherit;
    }

.mx_MessageComposer_noperm_error {
    width: 100%;
    height: 60px;
    font-style: italic;
    color: #888;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
}

.mx_MessageComposer_input {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    vertical-align: middle;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    min-height: 60px;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    font: var(--cpd-font-body-md-regular);
    margin-right: 6px;
}

    .mx_MessageComposer_input pre {
        background-color: rgba(0, 0, 0, 0.04);
        border-radius: 3px;
        padding: 10px;
    }

    .mx_MessageComposer_input textarea {
        display: block;
        width: 100%;
        padding: 0px;
        margin-top: 6px;
        margin-bottom: 6px;
        border: 0px;
        resize: none;
        outline: none;
        -webkit-box-shadow: none;
                box-shadow: none;
        color: #edf3ff;
        background-color: #181b21;
        font: var(--cpd-font-body-md-regular);
        max-height: 120px;
        overflow: auto;
    }

        /* hack for FF as vertical alignment of custom placeholder text is broken */
        .mx_MessageComposer_input textarea::-moz-placeholder {
            line-height: 100%;
            color: #0dbd8b;
            opacity: 1;
        }

        .mx_MessageComposer_input textarea::-webkit-input-placeholder {
            color: #0dbd8b;
        }

.mx_MessageComposer_button_highlight {
    background: var(--cpd-color-bg-subtle-primary);
    color: var(--cpd-color-icon-primary) !important;
}

.mx_MessageComposer_button {
    position: relative;
    cursor: pointer;
    border-radius: 50%;
}
    .mx_MessageComposer_button svg {
        color: var(--cpd-color-icon-tertiary);
    }
    .mx_MessageComposer_button:hover {
        background-color: var(--cpd-color-bg-subtle-primary);
    }

        .mx_MessageComposer_button:hover svg {
            color: var(--cpd-color-icon-primary);
        }
    .mx_MessageComposer_button{
    padding: 3px;
    height: 20px;
    width: 20px;
}

    .mx_MessageComposer_button:last-child {
        margin-right: auto;
    }
        .mx_MessageComposer_button.mx_MessageComposer_closeButtonMenu::after {
            background: var(--cpd-color-bg-subtle-primary);
        }

        .mx_MessageComposer_button.mx_MessageComposer_closeButtonMenu::before {
            background-color: var(--cpd-color-icon-primary);
            z-index: 2;
        }

    .mx_MessageComposer_button svg {
        width: inherit;
        height: inherit;
    }
    .mx_MessageComposer_wysiwyg .mx_MessageComposer_wrapper {
        padding-left: 16px;
        margin-top: 6px;
        margin-bottom: 12px;
    }

    .mx_MessageComposer_wysiwyg .mx_MessageComposer_row {
        -webkit-box-align: end;
            -ms-flex-align: end;
                align-items: flex-end;
    }

    .mx_MessageComposer_wysiwyg .mx_MessageComposer_actions {
        /* Height of the composer editor */
        height: 40px;
    }

    .mx_MessageComposer_wysiwyg .mx_MediaBody {
        padding-top: 4px;
        padding-bottom: 4px;
    }

    .mx_MessageComposer_wysiwyg .mx_MessageComposer_button {
        position: relative;
        cursor: pointer;
        border-radius: 5px;
    }
        .mx_MessageComposer_wysiwyg .mx_MessageComposer_button svg {
        color: var(--cpd-color-icon-tertiary);
    }
        .mx_MessageComposer_wysiwyg .mx_MessageComposer_button:hover {
        background-color: rgba(33,38,44, 0.9);
    }

        .mx_MessageComposer_wysiwyg .mx_MessageComposer_button:hover svg {
            color: #edf3ff;
        }
            .mx_MessageComposer_wysiwyg .mx_MessageComposer_button.mx_MessageComposer_closeButtonMenu::after {
                background: var(--cpd-color-green-300);
            }

            .mx_MessageComposer_wysiwyg .mx_MessageComposer_button.mx_MessageComposer_closeButtonMenu::before {
                background-color: #0dbd8b;
                z-index: 2;
            }

.mx_MessageComposer_buttonMenu {
    width: 24px;
    height: 24px;
    padding: 1px;
}

    .mx_MessageComposer_buttonMenu svg {
        width: 24px;
        height: 24px;
    }

.mx_MessageComposer_sendMessage {
    cursor: pointer;
    position: relative;
    padding: var(--cpd-space-2x);
    border-radius: 100%;
    background-color: var(--cpd-color-icon-accent-tertiary);
    height: 16px;
    width: 16px;
}

    .mx_MessageComposer_sendMessage svg {
        height: inherit;
        width: inherit;

        color: var(--cpd-color-icon-on-solid-primary);
    }
    .mx_MatrixChat_useCompactLayout .mx_MessageComposer_input {
        min-height: 50px;
    }

    .mx_MatrixChat_useCompactLayout .mx_MessageComposer_noperm_error {
        height: 50px;
    }

/**
 * Unstable compact mode
 */

.mx_MessageComposer.mx_MessageComposer--compact {
    margin-right: 0;
}

    .mx_MessageComposer.mx_MessageComposer--compact .mx_MessageComposer_wrapper {
        padding: 0 0 0 25px;
    }

    .mx_MessageComposer.mx_MessageComposer--compact .mx_MessageComposer_e2eIconWrapper {
        left: 0;
    }
        .mx_MessageComposer.mx_MessageComposer--compact:not(.mx_MessageComposer_e2eStatus) .mx_MessageComposer_wrapper {
            padding: 0;
        }

    .mx_MessageComposer.mx_MessageComposer--compact .mx_MessageComposer_button:last-child {
        margin-right: 0;
    }

    .mx_MessageComposer.mx_MessageComposer--compact .mx_MessageComposer_e2eIcon {
        left: 0;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MessageComposerFormatBar {
    display: none;
    width: calc(32px * 6);
    height: 32px;
    position: absolute;
    cursor: pointer;
    border-radius: 8px;
    background-color: #181b21;
    border: var(--cpd-border-width-1) solid var(--cpd-color-border-disabled);
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    /* equal to z-index of mx_ReplyPreview and mx_RoomView_statusArea (1000) */
    /* but as it appears after them in the DOM, will appear on top. */
    z-index: 1000;
}

    .mx_MessageComposerFormatBar.mx_MessageComposerFormatBar_shown {
        display: block;
    }

    .mx_MessageComposerFormatBar > * {
        white-space: nowrap;
        display: inline-block;
        position: relative;
        margin: 2px;
    }

    .mx_MessageComposerFormatBar .mx_MessageComposerFormatBar_button {
        width: 28px;
        height: 28px;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        vertical-align: middle;
        background: none;
        border: none;
        padding: 0;
    }

        .mx_MessageComposerFormatBar .mx_MessageComposerFormatBar_button svg {
            width: inherit;
            height: inherit;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
            padding: var(--cpd-space-1x);
            color: var(--cpd-color-icon-secondary);
        }

        .mx_MessageComposerFormatBar .mx_MessageComposerFormatBar_button:hover {
            background: var(--cpd-color-bg-subtle-secondary);
            border-radius: 6px;
            z-index: 1;
        }

            .mx_MessageComposerFormatBar .mx_MessageComposerFormatBar_button:hover svg {
                color: var(--cpd-color-icon-primary);
            }

.mx_MessageComposerFormatBar_buttonTooltip {
    white-space: nowrap;
    font-size: 0.8125rem;
    font-weight: var(--cpd-font-weight-semibold);
    min-width: 54px;
    text-align: center;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_NewRoomIntro {
    margin: 40px 0 48px 64px;
}
        .mx_NewRoomIntro .mx_MiniAvatarUploader_hasAvatar:not(.mx_MiniAvatarUploader_busy):not(:hover) .mx_MiniAvatarUploader_indicator {
            display: none;
        }

    .mx_NewRoomIntro .mx_NewRoomIntro_buttons {
        margin-top: 28px;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-flow: wrap;
            flex-flow: wrap;
        gap: 14px 12px;
    }

        .mx_NewRoomIntro .mx_NewRoomIntro_buttons .mx_AccessibleButton {
            line-height: 1.5rem;
            display: inline-block;
        }

            .mx_NewRoomIntro .mx_NewRoomIntro_buttons .mx_AccessibleButton svg {
                display: inline-block;
                color: white;
                width: 20px;
                height: 20px;
                margin-right: 5px;
                vertical-align: text-bottom;
            }

    .mx_NewRoomIntro > h2 {
        margin: var(--cpd-space-6x) 0 var(--cpd-space-4x);
        font: var(--cpd-font-heading-md-semibold);
    }

    .mx_NewRoomIntro > p {
        margin: 0;
        font-size: 0.9375rem;
        color: #edf3ff;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_OverflowTileView {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    color: #edf3ff;
    cursor: pointer;
}

.mx_OverflowTileView_text {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    overflow: hidden;
    font: var(--cpd-font-body-md-regular);
    text-overflow: ellipsis;
    white-space: nowrap;
    font-style: italic;
}

.mx_OverflowTileView:hover {
    padding-right: 30px;
    position: relative; /* to keep the chevron aligned */
}

    .mx_OverflowTileView:hover .mx_OverflowTileView_chevron {
        display: inline;
    }

.mx_OverflowTileView_chevron {
    position: absolute;
    top: calc(50% - 12px); /* center */
    right: 0;
    width: 24px;
    height: 24px;
    color: #a1b2d1;
    display: none;
}

.mx_OverflowTileView_icon {
    padding-left: 3px;
    padding-right: 12px;
    padding-top: 4px;
    padding-bottom: 4px;
    position: relative;
    line-height: 0;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2017 Travis Ralston

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PinnedEventTile {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: var(--cpd-space-4x);
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
}

    .mx_PinnedEventTile .mx_PinnedEventTile_wrapper {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-1x);
        /* Remove avatar width and space between the avatar and the wrapper */
        /* We need it to make the location fit */
        width: calc(100% - var(--cpd-space-4x) - 32px);
        /* Prevent a long sender name to overflow the tile */
        overflow: hidden;
    }

        .mx_PinnedEventTile .mx_PinnedEventTile_wrapper .mx_PinnedEventTile_top {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            gap: var(--cpd-space-1x);
            -webkit-box-pack: justify;
                -ms-flex-pack: justify;
                    justify-content: space-between;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

            .mx_PinnedEventTile .mx_PinnedEventTile_wrapper .mx_PinnedEventTile_top .mx_PinnedEventTile_sender {
                text-overflow: ellipsis;
                overflow: hidden;
                white-space: nowrap;
                font: var(--cpd-font-body-md-semibold);
            }

        .mx_PinnedEventTile .mx_PinnedEventTile_wrapper .mx_PinnedEventTile_thread {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            gap: var(--cpd-space-2x);
            font: var(--cpd-font-body-sm-regular);
        }

            .mx_PinnedEventTile .mx_PinnedEventTile_wrapper .mx_PinnedEventTile_thread svg {
                width: 20px;
                fill: var(--cpd-color-icon-tertiary);
            }

            .mx_PinnedEventTile .mx_PinnedEventTile_wrapper .mx_PinnedEventTile_thread span {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                color: var(--cpd-color-text-secondary);
            }

            .mx_PinnedEventTile .mx_PinnedEventTile_wrapper .mx_PinnedEventTile_thread button {
                background: transparent;
                border: none;
                cursor: pointer;
                text-decoration: underline;
            }
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 * Copyright 2024 The Matrix.org Foundation C.I.C.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_PinnedMessageBanner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    gap: var(--cpd-space-4x);
    /* 64px = 63px + 1px from the bottom border */
    height: 63px;
    padding: 0 var(--cpd-space-4x);

    background-color: var(--cpd-color-bg-canvas-default);
    border-bottom: 1px solid var(--cpd-color-gray-400);

    /* From figma */
    -webkit-box-shadow: 0 var(--cpd-space-2x) var(--cpd-space-6x) calc(var(--cpd-space-2x) * -1) rgb(27, 29, 34, 0.1);
            box-shadow: 0 var(--cpd-space-2x) var(--cpd-space-6x) calc(var(--cpd-space-2x) * -1) rgb(27, 29, 34, 0.1);
}

    .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main {
        color: inherit;
        background: transparent;
        border: none;
        text-align: start;
        cursor: pointer;

        height: 100%;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

        .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main .mx_PinnedMessageBanner_content {
            display: grid;
            grid-template:
                "indicators pinIcon title" auto
                "indicators pinIcon message" auto;
            grid-column-gap: var(--cpd-space-2x);
            -webkit-column-gap: var(--cpd-space-2x);
               -moz-column-gap: var(--cpd-space-2x);
                    column-gap: var(--cpd-space-2x);
        }

        .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main .mx_PinnedMessageBanner_Indicators {
            grid-area: indicators;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            gap: var(--cpd-space-0-5x);
            height: 100%;
        }

            .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main .mx_PinnedMessageBanner_Indicators .mx_PinnedMessageBanner_Indicator {
                width: var(--cpd-space-0-5x);
                background-color: var(--cpd-color-gray-600);
                height: 100%;
            }

            .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main .mx_PinnedMessageBanner_Indicators .mx_PinnedMessageBanner_Indicator--active {
                background-color: var(--cpd-color-icon-accent-primary);
            }

            .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main .mx_PinnedMessageBanner_Indicators .mx_PinnedMessageBanner_Indicator--hidden {
                background-color: transparent;
            }

        .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main .mx_PinnedMessageBanner_PinIcon {
            grid-area: pinIcon;
            align-self: center;
            fill: var(--cpd-color-icon-secondary-alpha);
        }

        .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main .mx_PinnedMessageBanner_title {
            grid-area: title;
            font: var(--cpd-font-body-sm-regular);
            color: var(--cpd-color-text-action-accent);
            line-height: 20px;
        }

            .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main .mx_PinnedMessageBanner_title .mx_PinnedMessageBanner_title_counter {
                font: var(--cpd-font-body-sm-semibold);
            }

        .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main .mx_PinnedMessageBanner_message {
            grid-area: message;
            line-height: 20px;
        }

        .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main .mx_PinnedMessageBanner_redactedMessage {
            grid-area: message;
            height: 20px;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

    .mx_PinnedMessageBanner .mx_PinnedMessageBanner_actions {
        white-space: nowrap;
    }
    .mx_PinnedMessageBanner[data-single-message="true"] .mx_PinnedMessageBanner_content {
        grid-template: "indicators pinIcon message" auto;
    }

        .mx_PinnedMessageBanner[data-single-message="true"] .mx_PinnedMessageBanner_content .mx_PinnedMessageBanner_message {
            line-height: 40px;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PresenceIconView {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    background: var(--cpd-color-bg-canvas-default);
    border-radius: 100%;
}

    .mx_PresenceIconView .mx_PresenceIconView_online {
        color: var(--cpd-color-icon-accent-primary);
    }

    .mx_PresenceIconView .mx_PresenceIconView_offline,
    .mx_PresenceIconView .mx_PresenceIconView_dnd {
        color: var(--cpd-color-icon-tertiary);
    }

    .mx_PresenceIconView .mx_PresenceIconView_unavailable {
        color: var(--cpd-color-icon-quaternary);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PresenceLabel {
    font-size: 0.6875rem;
    opacity: 0.5;
}

.mx_PresenceLabel_online {
    color: var(--cpd-color-text-success-primary);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ReadReceiptGroup {
    --ReadReceiptGroup_EventBubbleTile-spacing-end: 78px;

    position: relative;
    display: inline-block;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    z-index: 1;
}

    .mx_ReadReceiptGroup .mx_ReadReceiptGroup_button {
        display: -webkit-inline-box;
        display: -ms-inline-flexbox;
        display: inline-flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        height: 16px;
        padding: 4px;
        border-radius: 6px;
    }
            .mx_ReadReceiptGroup .mx_ReadReceiptGroup_button.mx_AccessibleButton:hover {
                background: #22262e;
            }

    .mx_ReadReceiptGroup .mx_ReadReceiptGroup_remainder {
        color: #edf3ff;
        font-size: 0.6875rem;
        line-height: 1rem;
        margin-right: 4px;
    }

    .mx_ReadReceiptGroup .mx_ReadReceiptGroup_container {
        position: relative;
        display: block;
        height: 100%;
    }

        .mx_ReadReceiptGroup .mx_ReadReceiptGroup_container .mx_BaseAvatar {
            /* Compound uses a border on default avatars but no border on actual images, we want a border in all cases */
            -webkit-box-sizing: content-box;
                    box-sizing: content-box;
            border: 1px solid #181b21 !important;
            /* Reset the line height as we are no longer box-sizing border-box. 14px because avatar is set at 14px in component */
            line-height: 14px;
            position: absolute;
            will-change: left, top;
            -webkit-transition:
                left 0.1s ease-out,
                top 0.3s ease-out;
            transition:
                left 0.1s ease-out,
                top 0.3s ease-out;
            -webkit-transition:
                left var(--transition-short) ease-out,
                top var(--transition-standard) ease-out;
            transition:
                left var(--transition-short) ease-out,
                top var(--transition-standard) ease-out;
        }

.mx_ReadReceiptGroup_popup {
    max-height: 300px;
    width: 220px;
    border-radius: 8px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    text-align: left;
    font-size: 12px;
    line-height: 15px;

    right: 0;
}

    .mx_ReadReceiptGroup_popup.mx_ContextualMenu_top {
        top: 8px;
    }

    .mx_ReadReceiptGroup_popup.mx_ContextualMenu_bottom {
        bottom: 8px;
    }

    .mx_ReadReceiptGroup_popup .mx_ReadReceiptGroup_title {
        font-size: 12px;
        line-height: 15px;
        margin: 16px 16px 8px;
        font-weight: var(--cpd-font-weight-semibold);
        /* shouldn’t be actually focusable */
        outline: none;
    }
        .mx_ReadReceiptGroup_popup .mx_AutoHideScrollbar .mx_ReadReceiptGroup_person {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: horizontal;
            -webkit-box-direction: normal;
                -ms-flex-direction: row;
                    flex-direction: row;
            padding: 4px;
            margin: 0 12px;
            border-radius: 8px;
        }

            .mx_ReadReceiptGroup_popup .mx_AutoHideScrollbar .mx_ReadReceiptGroup_person:hover {
                background: #343a46;
            }

            .mx_ReadReceiptGroup_popup .mx_AutoHideScrollbar .mx_ReadReceiptGroup_person:last-child {
                margin-bottom: 8px;
            }

            .mx_ReadReceiptGroup_popup .mx_AutoHideScrollbar .mx_ReadReceiptGroup_person .mx_BaseAvatar {
                margin: 6px 8px;
                -ms-flex-item-align: center;
                    align-self: center;
                justify-self: center;
                -ms-flex-negative: 0;
                    flex-shrink: 0; /* Long names should not shrink the picture */
            }

            .mx_ReadReceiptGroup_popup .mx_AutoHideScrollbar .mx_ReadReceiptGroup_person .mx_ReadReceiptGroup_name {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-orient: vertical;
                -webkit-box-direction: normal;
                    -ms-flex-direction: column;
                        flex-direction: column;
                -webkit-box-flex: 1;
                    -ms-flex-positive: 1;
                        flex-grow: 1;
                -ms-flex-negative: 1;
                    flex-shrink: 1;
                overflow: hidden;
            }

                .mx_ReadReceiptGroup_popup .mx_AutoHideScrollbar .mx_ReadReceiptGroup_person .mx_ReadReceiptGroup_name p {
                    margin: 2px 0;
                    text-overflow: ellipsis;
                    overflow: hidden;
                    white-space: nowrap;
                }

                .mx_ReadReceiptGroup_popup .mx_AutoHideScrollbar .mx_ReadReceiptGroup_person .mx_ReadReceiptGroup_name .mx_ReadReceiptGroup_secondary {
                    color: #edf3ff;
                }

.mx_ReadReceiptGroup_person--tooltip {
    overflow-y: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2018 Vector Creations Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ReplyPreview {
    border: 1px solid #000000;
    border-bottom: none;
    background: #181b21;
    max-height: 50vh;
    overflow: auto;
}

    .mx_ReplyPreview .mx_ReplyPreview_section {
        border-bottom: 1px solid #000000;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-flow: column;
                flex-flow: column;
        row-gap: var(--cpd-space-2x);
        padding: var(--cpd-space-2x) var(--cpd-space-2x) 0 0;
    }

        .mx_ReplyPreview .mx_ReplyPreview_section .mx_ReplyPreview_header {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-pack: justify;
                -ms-flex-pack: justify;
                    justify-content: space-between;
            -webkit-column-gap: 8px;
               -moz-column-gap: 8px;
                    column-gap: 8px;

            color: #edf3ff;
            font-weight: 400;
            opacity: 0.4;
        }

            .mx_ReplyPreview .mx_ReplyPreview_section .mx_ReplyPreview_header .mx_ReplyPreview_header_cancel svg {
                color: #edf3ff;
                width: 20px;
                height: 20px;
                -ms-flex-negative: 0;
                    flex-shrink: 0;
            }
    .mx_RoomView_body .mx_ReplyPreview {
        /* Add box-shadow to the reply preview on the main (left) panel only. */
        /* It is not added to the preview on the (right) panel for threads and a chat with a maximized widget. */
        -webkit-box-shadow: 0px -16px 32px tranparent;
                box-shadow: 0px -16px 32px tranparent;
        border-radius: 8px 8px 0 0;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 Tulir Asokan <tulir@maunium.net>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ReplyTile {
    position: relative;
    padding: 2px 0;
    font: var(--cpd-font-body-md-regular);
}

    .mx_ReplyTile > a {
        display: grid;
        grid-template:
            "sender" auto
            "message" auto
            / 100%;
        text-decoration: none;
        color: #edf3ff;
        -webkit-transition: color ease 0.15s;
        transition: color ease 0.15s;
        grid-gap: 2px;
        gap: 2px;
        max-width: 100%; /* avoid overflow with wide content */
    }

        .mx_ReplyTile > a:hover {
            color: #edf3ff;
        }

    .mx_ReplyTile .mx_RedactedBody {
        line-height: 1.125rem;
    }

    .mx_ReplyTile .mx_RedactedBody,
    .mx_ReplyTile .mx_HiddenBody {
        padding: 4px 0 2px 20px;
    }

        .mx_ReplyTile .mx_RedactedBody::before, .mx_ReplyTile .mx_HiddenBody::before {
            height: 13px;
            width: 13px;
            top: 3px;
        }

    /* We do reply size limiting with CSS to avoid duplicating the TextualBody component. */
    .mx_ReplyTile .mx_EventTile_content {
        grid-area: message;

        text-overflow: ellipsis;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

        .mx_ReplyTile .mx_EventTile_content .mx_EventTile_body.mx_EventTile_bigEmoji {
            line-height: 1.375rem !important; /* Same as var(--EventTile_group_line-line-height) */
            font-size: 0.875rem !important; /* Override the big emoji override */
        }

        /* in order to keep the message on two lines, we need to make the body inline */
        .mx_ReplyTile .mx_EventTile_content .mx_EventTile_body {
            display: inline;
        }

        /* The annotation wrapper is flex in normal timeline messages, but that stops
        -webkit-line-clamp from trimming long edited quotes down to two lines. */
        .mx_ReplyTile .mx_EventTile_content [data-textual-body-annotation-wrapper] {
            display: contents;
        }

        /* Hide line numbers and edited indicator */
        .mx_ReplyTile .mx_EventTile_content .mx_EventTile_lineNumbers,
        .mx_ReplyTile .mx_EventTile_content [data-textual-body-edited-marker] {
            display: none;
        }

        /* Hack to cut content in <pre> tags too */
        .mx_ReplyTile .mx_EventTile_content .mx_EventTile_pre_container > pre {
            overflow-x: scroll;
            overflow-y: hidden;
            text-overflow: ellipsis;
            display: -webkit-box;
            -webkit-box-orient: vertical;
            -webkit-line-clamp: 2;
            padding: 4px;
        }

        .mx_ReplyTile .mx_EventTile_content .markdown-body blockquote,
        .mx_ReplyTile .mx_EventTile_content .markdown-body dl,
        .mx_ReplyTile .mx_EventTile_content .markdown-body ol,
        .mx_ReplyTile .mx_EventTile_content .markdown-body p,
        .mx_ReplyTile .mx_EventTile_content .markdown-body pre,
        .mx_ReplyTile .mx_EventTile_content .markdown-body table,
        .mx_ReplyTile .mx_EventTile_content .markdown-body ul {
            margin-bottom: 4px;
        }

    .mx_ReplyTile.mx_ReplyTile_info {
        padding-top: 0;
    }

    .mx_ReplyTile.mx_ReplyTile_inline > a {
        /* Render replies to emotes inline with the sender avatar */
        grid-template:
            "sender        message" auto
            / -webkit-max-content auto;
        grid-template:
            "sender        message" auto
            / max-content auto;
        gap: 4px; /* increase spacing */
    }

    .mx_ReplyTile .mx_ReplyTile_sender {
        grid-area: sender;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        gap: 4px;
    }

        .mx_ReplyTile .mx_ReplyTile_sender .mx_DisambiguatedProfile {
            margin: 0;
        }

        .mx_ReplyTile .mx_ReplyTile_sender .mx_BaseAvatar {
            /* Prevent crushing by the flexbox */
            -ms-flex-negative: 0;
                flex-shrink: 0;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomHeader {
    height: 64px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    padding: 0 var(--cpd-space-3x) 0 calc(var(--cpd-space-3x) + var(--cpd-space-1-5x));
    border-bottom: 1px solid var(--cpd-color-gray-400);
    background-color: #181b21;
    -webkit-transition: all 0.2s ease;
    transition: all 0.2s ease;
}

    .mx_RoomHeader button:has(svg.mx_RoomHeader_toggled) {
        /* For enhanced visibility under contrast control */
        outline: 1px solid transparent;
    }

.mx_RoomHeader:hover {
    background-color: var(--cpd-color-gray-200);
}

.mx_RoomHeader_infoWrapper {
    /* unset button styles */
    color: inherit;
    background: transparent none repeat 0 0 / auto auto padding-box border-box scroll;
    background: initial;
    border: medium none currentcolor;
    border: initial;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    cursor: pointer;
    gap: var(--cpd-space-3x);
    text-align: left;
    height: 100%;
    padding: 0;
}

.mx_RoomHeader_info {
    /* We want the spacing to be 64px, 13x = 52px but we have a flex gap of
       12px set on the flex container, which sums up to 64 */
    padding-right: var(--cpd-space-13x);
}

.mx_RoomHeader_truncated {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;

    overflow: hidden;
    word-break: break-all;
    text-overflow: ellipsis;
}

.mx_RoomHeader_heading {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: var(--cpd-space-1-5x);
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_RoomHeader_icon {
    -ms-flex-negative: 0;
        flex-shrink: 0;
}

.mx_RoomHeader .mx_FacePile {
    color: #edf3ff;
    background: #181b21;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: var(--cpd-space-2x);
    border-radius: 9999px;
    padding: var(--cpd-space-1-5x);
    cursor: pointer;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    font: var(--cpd-font-body-sm-medium);
}

    /* RoomAvatar doesn't pass classes down to avatar
    So set style here
    using div because compound classes are not stable */
    .mx_RoomHeader .mx_FacePile > div {
        -ms-flex-negative: 0;
            flex-shrink: 0;
    }

    .mx_RoomHeader .mx_FacePile:hover {
        color: #edf3ff;
        background: var(--cpd-color-bg-subtle-primary);
    }

    .mx_RoomHeader .mx_FacePile.mx_FacePile_toggled {
        background: var(--cpd-color-bg-success-subtle);
        color: var(--cpd-color-text-action-accent);
        font: var(--cpd-font-body-sm-semibold);
        /* For enhanced visibility under contrast control */
        outline: 1px solid transparent;
    }

.mx_RoomHeader .mx_BaseAvatar {
    -ms-flex-negative: 0;
        flex-shrink: 0;
}

.mx_RoomHeader_videoCallOption {
    /* Workaround for https://github.com/element-hq/compound/issues/331 */
    min-width: 240px;
}

.mx_RoomHeader .mx_RoomHeader_toggled {
    fill: var(--cpd-color-icon-accent-primary);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomInfoLine {
    color: #edf3ff;
    display: inline-block;
}

    .mx_RoomInfoLine svg {
        margin-right: 6px;
        vertical-align: -2px;
        color: #edf3ff;
    }

    .mx_RoomInfoLine .mx_RoomInfoLine_members {
        color: inherit;
        text-decoration: inherit;
        font-weight: inherit;
    }

        .mx_RoomInfoLine .mx_RoomInfoLine_members::before {
            content: "·"; /* visual separator */
            margin: 0 6px;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 Nordeck IT + Consulting GmbH

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomKnocksBar {
    background-color: var(--cpd-color-bg-subtle-secondary);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    padding: var(--cpd-space-2x) var(--cpd-space-4x);
}

.mx_RoomKnocksBar_content {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    margin: 0 var(--cpd-space-3x);
}

.mx_RoomKnocksBar_paragraph {
    color: #edf3ff;
    font-size: var(--cpd-font-size-body-sm);
    margin: 0;
}

.mx_RoomKnocksBar_link {
    margin-left: var(--cpd-space-3x);
}

.mx_RoomKnocksBar_action,
.mx_RoomKnocksBar_avatar {
    -ms-flex-item-align: center;
        align-self: center;
    -ms-flex-negative: 0;
        flex-shrink: 0;
}

.mx_RoomKnocksBar_action + .mx_RoomKnocksBar_action {
    margin-left: var(--cpd-space-3x);
}

.mx_RoomKnocksBar_avatar + .mx_RoomKnocksBar_avatar {
    margin-left: calc(var(--cpd-space-4x) * -1);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015-2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomPreviewBar {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-align-items: center;
}

    .mx_RoomPreviewBar h3 {
        font-size: 1.125rem;
        font-weight: var(--cpd-font-weight-semibold);
    }

        .mx_RoomPreviewBar h3.mx_RoomPreviewBar_spinnerTitle {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: horizontal;
            -webkit-box-direction: normal;
                -ms-flex-direction: row;
                    flex-direction: row;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            margin: 0;
        }

    .mx_RoomPreviewBar h3,
    .mx_RoomPreviewBar .mx_RoomPreviewBar_message p {
        /* break-word, with fallback to break-all, which is wider supported */
        word-break: break-all;
        word-break: break-word;
    }

    .mx_RoomPreviewBar .mx_Spinner {
        width: auto;
        height: auto;
        margin: 10px 10px 10px 0;
        -webkit-box-flex: 0;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
    }

    .mx_RoomPreviewBar .mx_RoomPreviewBar_footer {
        font-size: 0.75rem;
        line-height: 1.25rem;
    }

        .mx_RoomPreviewBar .mx_RoomPreviewBar_footer .mx_Spinner {
            vertical-align: middle;
            display: inline-block;
        }

.mx_RoomPreviewBar_actions {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

.mx_RoomPreviewBar_message {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
}

    .mx_RoomPreviewBar_message p {
        overflow-wrap: break-word;
    }

.mx_RoomPreviewBar_panel {
    padding: 8px 8px 8px 20px;

    -webkit-box-orient: horizontal;

    -webkit-box-direction: normal;

        -ms-flex-direction: row;

            flex-direction: row;
}

    .mx_RoomPreviewBar_panel .mx_RoomPreviewBar_actions {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        padding: 3px 8px;
    }

        .mx_RoomPreviewBar_panel .mx_RoomPreviewBar_actions > * {
            margin-left: 12px;
        }

    .mx_RoomPreviewBar_panel .mx_RoomPreviewBar_message {
        -webkit-box-flex: 1;
            -ms-flex: 1 0 0px;
                flex: 1 0 0;
        min-width: 0;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

        .mx_RoomPreviewBar_panel .mx_RoomPreviewBar_message > * {
            margin: 4px;
        }

/* With maximised widgets, the panel fits in better when rounded */
.mx_MainSplit_maximisedWidget .mx_RoomPreviewBar_panel {
    margin: 8px;
    margin: var(--container-gap-width);
    margin-right: calc(8px / 2);
    margin-right: calc(var(--container-gap-width) / 2); /* Shared with right panel */
    margin-top: 0; /* Already covered by apps drawer */
    border-radius: 8px;
}

.mx_RoomPreviewBar_dialog {
    margin: auto;
    -webkit-box-sizing: content;
            box-sizing: content;
    width: 400px;
    /* Matches the room preview card this stands in place of, and the panel form of this same bar */
    border-radius: 8px;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    padding: 20px;
    text-align: center;
}

    .mx_RoomPreviewBar_dialog .mx_RoomPreviewBar_message {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

        .mx_RoomPreviewBar_dialog .mx_RoomPreviewBar_message > * {
            margin: 5px 0 20px 0;
        }

    .mx_RoomPreviewBar_dialog .mx_RoomPreviewBar_actions {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }
        .mx_RoomPreviewBar_dialog .mx_RoomPreviewBar_actions .mx_AccessibleButton {
            padding: 7px 50px; /* extra wide */
        }

        .mx_RoomPreviewBar_dialog .mx_RoomPreviewBar_actions > * {
            margin-top: 12px;
        }
        .mx_RoomPreviewBar_dialog .mx_RoomPreviewBar_actions .mx_AccessibleButton.mx_AccessibleButton_kind_primary {
            /* to account for the padding of the primary button which causes inconsistent look between */
            /* subsequent secondary (text) buttons */
            margin-bottom: 7px;
        }
.mx_RoomPreviewBar_Invite {
    max-height: 100vh;
    overflow-y: auto;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
}

.mx_RoomPreviewBar_Invite h3 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    white-space: pre-wrap;
    overflow: hidden;
}

.mx_RoomPreviewBar_inviter {
    font-weight: var(--cpd-font-weight-semibold);
}

a.mx_RoomPreviewBar_inviter {
    text-decoration: underline;
    cursor: pointer;
}

.mx_RoomPreviewBar_inviter_mxid {
    color: var(--cpd-color-text-secondary);
}

.mx_RoomPreviewBar_icon {
    margin-right: 8px;
    vertical-align: text-top;
}

.mx_RoomPreviewBar_fullWidth {
    width: 100%;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomPreviewCard {
    padding: var(--cpd-space-8x) var(--cpd-space-6x) !important; /* Override SpaceRoomView's default padding */
    margin: auto;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    max-width: 480px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    background-color: #21262c;
    border-radius: 8px;
    position: relative;
    font: var(--cpd-font-body-md-regular);
}

    .mx_RoomPreviewCard .mx_RoomPreviewCard_notice {
        font-weight: var(--cpd-font-weight-semibold);
        line-height: 1.5rem;
        color: #edf3ff;
        margin-top: var(--cpd-space-6x);
    }

        .mx_RoomPreviewCard .mx_RoomPreviewCard_notice svg {
            height: 1em;
            width: 1em;
            margin-right: var(--cpd-space-2x);
            color: #edf3ff;
            vertical-align: -2px;
        }

    .mx_RoomPreviewCard .mx_RoomPreviewCard_inviter {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        margin-bottom: var(--cpd-space-5x);
        font-size: 0.9375rem;
    }

        .mx_RoomPreviewCard .mx_RoomPreviewCard_inviter > div {
            margin-left: var(--cpd-space-2x);
        }

            .mx_RoomPreviewCard .mx_RoomPreviewCard_inviter > div .mx_RoomPreviewCard_inviter_name {
                line-height: 1.125rem;
            }

            .mx_RoomPreviewCard .mx_RoomPreviewCard_inviter > div .mx_RoomPreviewCard_inviter_mxid {
                color: #edf3ff;
            }

    .mx_RoomPreviewCard .mx_RoomPreviewCard_avatar {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

        .mx_RoomPreviewCard .mx_RoomPreviewCard_avatar .mx_RoomPreviewCard_video {
            width: 22px;
            height: 22px;
            padding: 14px;
            border-radius: calc((50px + 2 * 3px) / 2);
            background-color: #0dbd8b;
            border: 3px solid #21262c;

            left: calc(-50px / 4 - 3px);
        }

            .mx_RoomPreviewCard .mx_RoomPreviewCard_avatar .mx_RoomPreviewCard_video svg {
                width: inherit;
                height: inherit;
                color: #ffffff;
            }

        /* XXX Remove this when video rooms leave beta */
        .mx_RoomPreviewCard .mx_RoomPreviewCard_avatar .mx_BetaCard_betaPill {
            position: absolute;
            inset-block-start: var(--cpd-space-8x);
            inset-inline-end: var(--cpd-space-6x);
        }

    .mx_RoomPreviewCard h1.mx_RoomPreviewCard_name {
        margin: var(--cpd-space-4x) 0 !important; /* Override SpaceRoomView's default margins */
    }

    .mx_RoomPreviewCard .mx_RoomPreviewCard_topic {
        line-height: 1.375rem;
        margin-top: var(--cpd-space-4x);
        max-height: 160px;
        overflow-y: auto;
    }

    .mx_RoomPreviewCard .mx_FacePile {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        margin-top: var(--cpd-space-4x);
        /* For enhanced visibility under contrast control */
        outline: 1px solid transparent;
    }

        .mx_RoomPreviewCard .mx_FacePile :first-child {
            -ms-flex-negative: 0;
                flex-shrink: 0;
        }

    .mx_RoomPreviewCard .mx_RoomPreviewCard_joinButtons {
        margin-top: var(--cpd-space-5x);
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        gap: var(--cpd-space-5x);
    }

        .mx_RoomPreviewCard .mx_RoomPreviewCard_joinButtons .mx_AccessibleButton {
            max-width: 200px;
            padding: 14px 0;
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2024 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomSearchAuxPanel {
    /* use `min-height` rather than height, to allow room for the text to wrap if the window is narrow */
    min-height: 84px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    border-color: var(--cpd-color-bg-canvas-default);
    border-style: solid;
    border-width: 1px 0;
    padding: var(--cpd-space-3x);
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    gap: var(--cpd-space-2x);
}

    .mx_RoomSearchAuxPanel .mx_RoomSearchAuxPanel_summary {
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        display: inherit; /* flex */
        gap: var(--cpd-space-2x);
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        overflow: hidden;
    }

        .mx_RoomSearchAuxPanel .mx_RoomSearchAuxPanel_summary > svg {
            padding: var(--cpd-space-2x);
            border-radius: var(--cpd-space-2x);
            background-color: var(--cpd-color-bg-subtle-secondary);
            color: var(--cpd-color-icon-secondary);
            -ms-flex-negative: 0;
                flex-shrink: 0;
        }

        .mx_RoomSearchAuxPanel .mx_RoomSearchAuxPanel_summary .mx_RoomSearchAuxPanel_summary_text {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            font-size: 0.9375rem;
            line-height: 1.375rem;
            overflow: hidden;
        }

            .mx_RoomSearchAuxPanel .mx_RoomSearchAuxPanel_summary .mx_RoomSearchAuxPanel_summary_text span {
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: nowrap;
            }

        .mx_RoomSearchAuxPanel .mx_RoomSearchAuxPanel_summary .mx_SearchWarning {
            display: contents;
            font-size: 0.8125rem;
            line-height: 1.25rem;
            color: var(--cpd-color-text-secondary);
        }

    .mx_RoomSearchAuxPanel .mx_RoomSearchAuxPanel_buttons {
        display: inherit; /* flex */
        gap: var(--cpd-space-6x);
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -ms-flex-negative: 0;
            flex-shrink: 0;
    }
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomUpgradeWarningBar {
    max-height: 235px;
    background-color: #22262e;
    padding-left: 20px;
    padding-right: 20px;
    overflow: scroll;
}

.mx_RoomUpgradeWarningBar_wrapped {
    width: 100%;
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    text-align: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-align-items: center;
}

.mx_RoomUpgradeWarningBar_header {
    color: #ff5b55;
    font-weight: bold;
}

.mx_RoomUpgradeWarningBar_body {
    color: #ff5b55;
}

.mx_RoomUpgradeWarningBar_upgradelink {
    color: #ff5b55;
    text-decoration: underline;
}

.mx_RoomUpgradeWarningBar_small {
    color: #888;
    font-size: 70%;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SendMessageComposer {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    font: var(--cpd-font-body-md-regular);
    /* fixed line height to prevent emoji from being taller than text */
    line-height: 1.125rem;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    margin-right: 6px;
    /* don't grow wider than available space */
    min-width: 0;
}

    .mx_SendMessageComposer .mx_BasicMessageComposer {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        /* min-height at this level so the mx_BasicMessageComposer_input */
        /* still stays vertically centered when less than 55px. */
        /* We also set this to ensure the voice message recording widget */
        /* doesn't cause a jump. */
        min-height: 55px;
    }

        .mx_SendMessageComposer .mx_BasicMessageComposer .mx_BasicMessageComposer_input {
            padding: 3px 0;
            /* this will center the contenteditable */
            /* in it's parent vertically */
            /* while keeping the autocomplete at the top */
            /* of the composer. The parent needs to be a flex container for this to work. */
            margin: auto 0;
            /* max-height at this level so autocomplete doesn't get scrolled too */
            max-height: 140px;
            overflow-y: auto;
        }
}
@layer app-web{

.mx_Stickers_content {
    overflow: hidden;
}

.mx_Stickers_content_container {
    overflow: hidden;
    height: 300px;
}
    #mx_persistedElement_stickerPicker .mx_AppTileFullWidth {
        height: auto;
        height: initial;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        border-left: none;
        border-right: none;
        border-bottom: none;
    }

    #mx_persistedElement_stickerPicker .mx_AppTileMenuBar {
        padding: 0;
    }

    #mx_persistedElement_stickerPicker iframe {
        /* Sticker picker depends on the fixed height previously used for all tiles */
        height: 283px; /* height of the popout minus the AppTile menu bar */
    }

.mx_Stickers_contentPlaceholder {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    text-align: center;
}

.mx_Stickers_contentPlaceholder p {
    max-width: 200px;
}

.mx_Stickers_addLink {
    display: inline;
    cursor: pointer;
    color: #0dbd8b;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ThirdPartyMemberInfo {
    padding: var(--cpd-space-4x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_TopUnreadMessagesBar {
    z-index: 1000;
    position: absolute;
    top: 24px;
    right: 24px;
    width: 38px;
}

.mx_TopUnreadMessagesBar::after {
    content: "";
    position: absolute;
    top: -8px;
    left: 11px;
    width: 4px;
    height: 4px;
    border-radius: 16px;
    background-color: var(--cpd-color-bg-canvas-default);
    border: 6px solid var(--cpd-color-icon-accent-tertiary);
    pointer-events: none;
}

.mx_TopUnreadMessagesBar_scrollUp {
    height: 38px;
    width: 38px;
    border-radius: 19px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    background: #181b21;
    border: 1.3px solid var(--cpd-color-icon-tertiary);
    cursor: pointer;
}

    .mx_TopUnreadMessagesBar_scrollUp svg {
        width: 24px;
        height: 24px;
        padding: 6px;
        color: var(--cpd-color-icon-tertiary);
    }

.mx_TopUnreadMessagesBar_markAsRead {
    display: block;
    width: 18px;
    height: 18px;
    background: #181b21;
    border: 1.3px solid var(--cpd-color-icon-tertiary);
    border-radius: 10px;
    margin: 5px auto;
}

    .mx_TopUnreadMessagesBar_markAsRead svg {
        width: 16px;
        height: 16px;
        padding: 1px;
        color: var(--cpd-color-icon-tertiary);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_UserIdentityWarning {
    /* 42px is the padding-left of .mx_MessageComposer_wrapper in res/css/views/rooms/_MessageComposer.pcss */
    margin-left: calc(-42px + 18px);
    margin-left: calc(-42px + var(--RoomView_MessageList-padding));
}

    .mx_UserIdentityWarning .mx_UserIdentityWarning_row {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

        .mx_UserIdentityWarning .mx_UserIdentityWarning_row .mx_BaseAvatar {
            margin-left: var(--cpd-space-2x);
        }
        .mx_UserIdentityWarning .mx_UserIdentityWarning_row .mx_UserIdentityWarning_main {
            margin-left: var(--cpd-space-6x);
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
        }
        .mx_UserIdentityWarning .mx_UserIdentityWarning_row .mx_UserIdentityWarning_main.critical {
            color: var(--cpd-color-text-critical-primary);
        }
.mx_UserIdentityWarning.critical {
    background: linear-gradient(180deg, var(--cpd-color-red-100) 0%, var(--cpd-color-theme-bg) 100%);
}

.mx_MessageComposer.mx_MessageComposer--compact > .mx_UserIdentityWarning {
    margin-left: calc(-25px + 18px);
    margin-left: calc(-25px + var(--RoomView_MessageList-padding));
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_VoiceRecordComposerTile_stop {
    /* 20px + 4px padding + 2px border makes this a 32px square (as intended) */
    width: 20px;
    height: 20px;
    padding: var(--cpd-space-1x);
    border: 2px solid #6f7882;
    border-radius: 32px;
    margin-right: 2px; /* between us and the waveform component */
}

    .mx_VoiceRecordComposerTile_stop svg {
        width: inherit;
        height: inherit;
        color: #ff4b55;
    }

.mx_VoiceRecordComposerTile_delete {
    width: 24px;
    height: 24px;
    vertical-align: middle;
    margin-right: 2px; /* distance from left edge of waveform container (container has some margin too) */
}

    .mx_VoiceRecordComposerTile_delete svg {
        width: inherit;
        height: inherit;
        color: #6f7882;
    }

.mx_VoiceRecordComposerTile_uploadingState {
    margin-right: 10px;
    color: #edf3ff;
}

.mx_VoiceRecordComposerTile_failedState {
    margin-right: 21px;
}

    .mx_VoiceRecordComposerTile_failedState .mx_VoiceRecordComposerTile_uploadState_badge {
        display: inline-block;
        margin-right: 4px;
        vertical-align: middle;
    }

.mx_MessageComposer_row .mx_VoiceMessagePrimaryContainer {
    /* Note: remaining class properties are in the PlayerContainer CSS. */

    /* fixed height to reduce layout jumps with the play button appearing */
    /* https://github.com/vector-im/element-web/issues/18431 */
    height: 32px;

    margin: 6px; /* force the composer area to put a gutter around us */
    margin-right: 6px; /* isolate from stop/send button */

    position: relative; /* important for the live circle */
}

    .mx_MessageComposer_row .mx_VoiceMessagePrimaryContainer.mx_VoiceRecordComposerTile_recording {
        /* We are putting the circle in this padding, so we need +10px from the regular */
        /* padding on the left side. */
        padding-left: 22px;
    }

        .mx_MessageComposer_row .mx_VoiceMessagePrimaryContainer.mx_VoiceRecordComposerTile_recording::before {
            -webkit-animation: recording-pulse 2s infinite;
                    animation: recording-pulse 2s infinite;

            content: "";
            background-color: #ff4b55;
            width: 10px;
            height: 10px;
            position: absolute;
            left: 12px; /* 12px from the left edge for container padding */
            top: 17px; /* vertically center (middle align with clock) */
            border-radius: 10px;
        }
        .mx_MessageComposer_wysiwyg .mx_VoiceMessagePrimaryContainer.mx_VoiceRecordComposerTile_recording::before {
            top: 15px; /* vertically center (middle align with clock) */
        }

/* The keyframes are slightly weird here to help make a ramping/punch effect */
/* for the recording dot. We start and end at 100% opacity to help make the */
/* dot feel a bit like a real lamp that is blinking: the animation ends up */
/* spending a lot of its time showing a steady state without a fade effect. */
/* This lamp effect extends into why the 0% opacity keyframe is not in the */
/* midpoint: lamps take longer to turn off than they do to turn on, and the */
/* extra frames give it a bit of a realistic punch for when the animation is */
/* ramping back up to 100% opacity. */

/* Target animation timings: steady for 1.5s, fade out for 0.3s, fade in for 0.2s */
/* (intended to be used in a loop for 2s animation speed) */
@-webkit-keyframes recording-pulse {
    0% {
        opacity: 1;
    }
    35% {
        opacity: 0;
    }
    65% {
        opacity: 1;
    }
}
@keyframes recording-pulse {
    0% {
        opacity: 1;
    }
    35% {
        opacity: 0;
    }
    65% {
        opacity: 1;
    }
}

@media (forced-colors: active) {
    .mx_VoiceMessagePrimaryContainer {
        outline: 1px solid transparent;
    }
}
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_WhoIsTypingTile {
    margin-left: -18px; /* offset padding from mx_RoomView_MessageList to center avatars */
    padding-top: 18px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

/* position the indicator in the same place horizontally as .mx_EventTile_avatar. */
.mx_WhoIsTypingTile_avatars {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 82px;
            flex: 0 0 82px; /* 18 (padding on message list) + 64 (padding on event lines) */
    text-align: center;
}

.mx_WhoIsTypingTile_avatars > :not(:first-child) {
    margin-left: -12px;
}

.mx_WhoIsTypingTile_avatars .mx_BaseAvatar {
    border: 1px solid #181b21;
    border-radius: 40px;
}

.mx_WhoIsTypingTile_remainingAvatarPlaceholder {
    position: relative;
    display: inline-block;
    color: #edf3ff;
    background-color: #6f7882;
    border: 1px solid #181b21;
    border-radius: 40px;
    width: 24px;
    height: 24px;
    line-height: 1.5rem;
    font-size: 0.8em;
    vertical-align: top;
    text-align: center;
}

.mx_WhoIsTypingTile_label {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    font: var(--cpd-font-body-md-semibold);
    color: #a1b2d1;
}

.mx_WhoIsTypingTile_label > span {
    background-image: url(../../img/typing-indicator-2x.e13c259.gif);
    background-size: 25px;
    background-position: left bottom;
    background-repeat: no-repeat;
    padding-bottom: 15px;
    display: block;
}
    .mx_MatrixChat_useCompactLayout .mx_WhoIsTypingTile {
        padding-top: 4px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_EditWysiwygComposer {
    --EditWysiwygComposer-padding-inline: 3px;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    max-width: 100%; /* disable overflow */
    width: auto;
    gap: 8px;
    padding: 8px 3px;
    padding: 8px var(--EditWysiwygComposer-padding-inline);
}

    .mx_EditWysiwygComposer .mx_WysiwygComposer_Editor_content {
        border-radius: 4px;
        border: solid 1px #000000;
        background-color: #181b21;
        max-height: 200px;
        padding: 3px 6px;
    }

        .mx_EditWysiwygComposer .mx_WysiwygComposer_Editor_content:focus {
            border-color: var(--cpd-color-green-400);
        }

    .mx_EditWysiwygComposer .mx_EditWysiwygComposer_buttons {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-flow: row wrap-reverse;
                flex-flow: row wrap-reverse; /* display "Save" over "Cancel" */
        -webkit-box-pack: end;
            -ms-flex-pack: end;
                justify-content: flex-end;
        gap: 5px;
        -webkit-margin-start: auto;
                margin-inline-start: auto;
    }

        .mx_EditWysiwygComposer .mx_EditWysiwygComposer_buttons .mx_AccessibleButton {
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
            min-width: 100px; /* magic number to align the edge of the button with the input area */
        }
        .mx_EditWysiwygComposer .mx_FormattingButtons_Button:first-child {
            margin-left: 0px;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SendWysiwygComposer {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    font: var(--cpd-font-body-md-regular);
    /* fixed line height to prevent emoji from being taller than text */
    line-height: 1.125rem;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    margin-right: 13px;
    gap: 8px;
}

    .mx_SendWysiwygComposer .mx_FormattingButtons {
        margin-left: 12px;
    }

    .mx_SendWysiwygComposer .mx_WysiwygComposer_Editor {
        border: 1px solid;
        border-color: #6f7882;
        padding: 6px 11px 6px 12px;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: end;
            -ms-flex-align: end;
                align-items: flex-end;
        gap: 10px;
    }

        .mx_SendWysiwygComposer .mx_WysiwygComposer_Editor .mx_E2EIcon {
            margin: 0 0 7px 0;
            width: 12px;
            height: 12px;
        }

        .mx_SendWysiwygComposer .mx_WysiwygComposer_Editor[data-is-expanded="true"] {
            border-radius: 14px;
        }

            .mx_SendWysiwygComposer .mx_WysiwygComposer_Editor[data-is-expanded="true"] .mx_WysiwygComposer_Editor_container {
                margin-top: 3px;
                margin-bottom: 3px;
            }

        .mx_SendWysiwygComposer .mx_WysiwygComposer_Editor[data-is-expanded="false"] {
            border-radius: 40px;
        }

        .mx_SendWysiwygComposer .mx_WysiwygComposer_Editor .mx_WysiwygComposer_Editor_container {
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            min-height: 22px;
            margin-bottom: 2px;
            /* don't grow wider than available space */
            width: 0;
        }

            .mx_SendWysiwygComposer .mx_WysiwygComposer_Editor .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content {
                /* this will center the contenteditable */
                /* in it's parent vertically */
                /* while keeping the autocomplete at the top */
                /* of the composer. The parent needs to be a flex container for this to work. */
                margin: auto 0;
                /* the line height is $font-22px (set in _Editor.pcss) and we want to display 16 lines */
                max-height: calc(16 * 1.375rem);
                overflow-y: auto;
            }
    .mx_SendWysiwygComposer-focused .mx_WysiwygComposer_Editor {
        border-color: #6f7882;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_WysiwygComposer_Editor_container {
    /* These are set in Javascript */
    --avatar-letter: "";
    --avatar-background: unset;
    --placeholder: "";
}

    @-webkit-keyframes visualbell {
        from {
            background-color: #800;
        }
        to {
            background-color: #181b21;
        }
    }

    @keyframes visualbell {
        from {
            background-color: #800;
        }
        to {
            background-color: #181b21;
        }
    }

    .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content {
        line-height: 1.375rem;
        white-space: pre-wrap;
        word-wrap: break-word;
        outline: none;
        overflow-x: hidden;
    }
        /* navigated through in a single keypress */
        .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content .caretNode {
            -webkit-user-select: all;
               -moz-user-select: all;
                    user-select: all;
        }

        /* we always have a <br/> tag at the end of the html, we need it to be present at first then hide it as soon as
        we have any other elements */
        .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content br:not(:only-child) {
            display: none;
        }

        /* Force caret nodes to be selected in full so that they can be */

        .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content p {
            margin-top: 0;
            margin-bottom: 0;
            /* this may seem redundant, but we need to handle zero content formatting tags, which occur when we split a
               formatting tag into paragraphs */
            min-height: 1.375rem;
        }

        .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content ul,
        .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content ol {
            margin-top: 0;
            margin-bottom: 0;
            -webkit-padding-start: var(--cpd-space-7x);
                    padding-inline-start: var(--cpd-space-7x);
        }

        /* Make list type disc to match rich text editor */
        .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content ul {
            list-style-type: disc;
        }

        .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content blockquote {
            color: #777;
            border-left: 2px solid var(--cpd-color-border-interactive-primary);
            border-radius: 2px;
            padding: 0 10px;

            -webkit-margin-before: 0;

                    margin-block-start: 0;
            -webkit-margin-after: 0;
                    margin-block-end: 0;
            -webkit-margin-start: 0;
                    margin-inline-start: 0;
            -webkit-margin-end: 0;
                    margin-inline-end: 0;
        }

        .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content > pre {
            font-size: 0.9375rem;
            line-height: 1.5rem;

            margin-top: 0;
            margin-bottom: 0;
            padding: var(--cpd-space-2x) var(--cpd-space-3x);

            background-color: #2a3039;
            border: 1px solid #2a3039;
            border-radius: 2px;
        }

        .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content code:not(pre *) {
            font-family: "Fira Code", "", "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji" !important;
            font-family: "Fira Code", var(--emoji-font-family), "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji" !important;
            background-color: #2a3039;
            border: 1px solid #2a3039;
            border-radius: 4px;
            padding: var(--cpd-space-0-5x);
        }

            .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content code:not(pre *):empty {
                border: medium none currentcolor;
                border: initial;
                padding: 0;
                padding: initial;
            }

        /* this selector represents what will become a pill
        nb despite there being mx_UserPill and mx_RoomPill classes appended to these pills
        in the current composer, there don't appear to be any styles associated with those classes
        in this repo */
        .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content a[data-mention-type] {
            /* combine mx_Pill from _Pill.pcss */
            padding: 0.0625rem 0.4em;
            line-height: 1.0625rem;
            border-radius: 1rem;
            display: inline;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
            max-width: 100%;
            overflow: hidden;

            color: var(--cpd-color-text-on-solid-primary);
            background-color: var(--cpd-color-bg-action-primary-rest);

            /* ...with the overrides from _BasicMessageComposer.pcss */
            -webkit-user-select: all;
               -moz-user-select: all;
                    user-select: all;
            position: relative;
            cursor: inherit; /* We don't want indicate clickability */
            text-overflow: ellipsis;
            white-space: nowrap;
        }

            /* avatar pseudo element */
            .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content a[data-mention-type]::before {
                /* After consolidation, all of the styling from _Pill.scss was being overridden,
                so take what is in _BasicMessageComposer.pcss as the starting point */
                display: inline-block;
                content: var(--avatar-letter);
                background: var(--avatar-background), #181b21;

                width: 1rem;
                min-width: 1rem; /* ensure the avatar is not compressed */
                height: 1rem;
                line-height: 1rem;
                text-align: center;

                /* Get the positioning of the avatar just right for consistency with timeline */
                -webkit-margin-start: -0.4rem;
                        margin-inline-start: -0.4rem;
                -webkit-margin-end: 0.24rem;
                        margin-inline-end: 0.24rem;
                vertical-align: 0.12rem;

                background-repeat: no-repeat;
                background-size: 1rem;
                border-radius: 1rem;

                color: #ffffff;

                color: var(--avatar-color, #ffffff);
                font-weight: bold;
                font-size: 0.6275rem;
            }

    .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content_placeholder::before {
        content: var(--placeholder);
        width: 0;
        height: 0;
        overflow: visible;
        display: inline-block;
        pointer-events: none;
        white-space: nowrap;
        color: var(--cpd-color-text-secondary);
    }

.mx_WysiwygComposer_AutoCompleteWrapper {
    position: relative;
}

    /* Due to the fact that editing a message now has a larger amount of grey
    colour above it (due to the rich text buttons above the composer), we need
    to give the autocomplete a bit more visual separation by using a border.
    */
    .mx_WysiwygComposer_AutoCompleteWrapper > .mx_Autocomplete {
        border: 1px solid #6f7882;
        border-radius: 8px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_FormattingButtons {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    gap: 8px;
}

    .mx_FormattingButtons .mx_FormattingButtons_Button {
        --size: 28px;
        cursor: pointer;
        height: 28px;
        height: var(--size);
        width: 28px;
        width: var(--size);
        background-color: transparent;
        border: none;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        border-radius: 5px;
    }
        .mx_FormattingButtons .mx_FormattingButtons_Button_hover:hover {
            background: rgba(33,38,44, 0.9);
        }

            .mx_FormattingButtons .mx_FormattingButtons_Button_hover:hover .mx_FormattingButtons_Icon {
                color: #edf3ff;
            }

    .mx_FormattingButtons .mx_FormattingButtons_active {
        background: var(--cpd-color-green-300);
    }

        .mx_FormattingButtons .mx_FormattingButtons_active .mx_FormattingButtons_Icon {
            color: #0dbd8b;
        }
        .mx_FormattingButtons .mx_FormattingButtons_disabled .mx_FormattingButtons_Icon {
            color: #6f7882;
        }

    .mx_FormattingButtons .mx_FormattingButtons_Icon {
        --size: 16px;
        height: 16px;
        height: var(--size);
        width: 16px;
        width: var(--size);
        color: #edf3ff;
    }
    .mx_FormattingButtons_Tooltip_KeyboardShortcut kbd {
        text-align: center;
        display: inline-block;
        text-transform: capitalize;
        font-family: Inter, sans-serif;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LinkModal {
    padding: var(--cpd-space-8x);
    max-width: 600px;
    height: 341px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

    .mx_LinkModal .mx_LinkModal_content {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        gap: var(--cpd-space-2x);
        margin-top: 7px;
    }

        .mx_LinkModal .mx_LinkModal_content .mx_LinkModal_Field {
            -webkit-box-flex: initial;
                -ms-flex: initial;
                    flex: initial;
            height: 40px;
        }

        .mx_LinkModal .mx_LinkModal_content .mx_LinkModal_buttons {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
            -webkit-box-align: end;
                -ms-flex-align: end;
                    align-items: flex-end;
        }

            .mx_LinkModal .mx_LinkModal_content .mx_LinkModal_buttons .mx_Dialog_buttons {
                display: inline-block;
            }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019, 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AvatarSetting_avatar {
    width: 120px;
    min-width: 120px; /* so it doesn't get crushed by the flexbox in languages with longer words */
    height: 120px;
    margin-top: 8px;
    position: relative;
}

    .mx_AvatarSetting_avatar.mx_AvatarSetting_avatarDisplay:hover .mx_AvatarSetting_hover {
        opacity: 1;
    }

    .mx_AvatarSetting_avatar > * {
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
    }

    .mx_AvatarSetting_avatar .mx_AccessibleButton.mx_AccessibleButton_kind_primary {
        margin-top: 8px;
    }

    .mx_AvatarSetting_avatar .mx_AccessibleButton.mx_AccessibleButton_kind_link_sm {
        width: 100%;
    }

    .mx_AvatarSetting_avatar > img {
        display: block;
        height: 120px;
        width: inherit;
        border-radius: 120px;
        cursor: pointer;
        -o-object-fit: cover;
           object-fit: cover;
    }

    .mx_AvatarSetting_avatar .mx_AvatarSetting_uploadButton {
        width: 28px;
        height: 28px;
        border-radius: 32px;
        border: 1px solid var(--cpd-color-bg-canvas-default);
        background-color: var(--cpd-color-bg-canvas-default);

        position: absolute;
        bottom: 0;
        right: 0;
        text-align: center;
        cursor: pointer;
    }

        .mx_AvatarSetting_avatar .mx_AvatarSetting_uploadButton svg {
            position: relative;
            top: 3px;
        }

    .mx_AvatarSetting_avatar .mx_AvatarSetting_uploadButton:hover,
    .mx_AvatarSetting_avatar .mx_AvatarSetting_uploadButton_active {
        background-color: var(--cpd-color-bg-subtle-primary);
    }

.mx_AvatarSetting_removeMenuItem svg,
.mx_AvatarSetting_removeMenuItem span {
    color: var(--cpd-color-text-critical-primary) !important;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_FontScalingPanel_preview {
    --FontScalingPanel_preview-padding-block: 9px;

    border: 1px solid #6f7882;
    border-radius: 10px;
    padding: 0 var(--cpd-space-4x) 9px var(--cpd-space-4x);
    padding: 0 var(--cpd-space-4x) var(--FontScalingPanel_preview-padding-block) var(--cpd-space-4x);
    pointer-events: none;
    display: flow-root;
}

    .mx_FontScalingPanel_preview.mx_IRCLayout {
        padding-top: 9px;
    }

    .mx_FontScalingPanel_preview .mx_EventTile[data-layout="bubble"] {
        margin-top: 30px;
    }

    .mx_FontScalingPanel_preview .mx_EventTile_msgOption {
        display: none;
    }

.mx_FontScalingPanel_Dropdown {
    width: 120px;
    /* Override default mx_Field margin */
    margin-bottom: var(--cpd-space-2x) !important;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ImageSizePanel_radios {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    gap: var(--cpd-space-4x);
}

    .mx_ImageSizePanel_radios > label {
        margin-right: 68px; /* keep the boxes separate */
        cursor: pointer;
    }

    .mx_ImageSizePanel_radios .mx_ImageSizePanel_size {
        display: block;
        color: #6f7882;
        width: 221px;
        height: 148px;
        margin-bottom: 14px; /* move radio button away from bottom edge a bit */
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_IntegrationManager .mx_Dialog_border {
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        width: 60%;
        height: 70%;
        max-width: none;
        max-width: initial;
        max-height: none;
        max-height: initial;
    }

    .mx_IntegrationManager .mx_Dialog {
        padding: 0;
        overflow: hidden;
    }

    .mx_IntegrationManager iframe {
        background-color: #fff;
        border: 0;
        width: 100%;
        height: 100%;
    }

    .mx_IntegrationManager h3 {
        margin-block: var(--cpd-space-5x);
    }

    .mx_IntegrationManager .mx_IntegrationManager_loading,
    .mx_IntegrationManager .mx_IntegrationManager_error {
        text-align: center;
    }

    .mx_IntegrationManager .mx_IntegrationManager_error h3 {
        color: #ff5b55;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_JoinRuleSettings_upgradeRequired {
    margin-left: 16px;
    padding: 4px 16px;
    border: 1px solid #0dbd8b;
    border-radius: 8px;
    color: #0dbd8b;
    font-size: 0.75rem;
    line-height: 0.9375rem;
}
    .mx_JoinRuleSettings_spacesWithAccess > h4 {
        color: #edf3ff;
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 0.75rem;
        line-height: 0.9375rem;
        text-transform: uppercase;
    }

    .mx_JoinRuleSettings_spacesWithAccess > span {
        font: var(--cpd-font-body-md-medium);
        line-height: 32px; /* matches height of avatar for v-align */
        color: #edf3ff;
        display: inline-block;
    }

        .mx_JoinRuleSettings_spacesWithAccess > span .mx_BaseAvatar {
            margin-right: 8px;
        }

        .mx_JoinRuleSettings_spacesWithAccess > span + span {
            margin-left: 16px;
        }

.mx_JoinRuleSettings_radioButton {
    padding-top: 16px;
}

    .mx_JoinRuleSettings_radioButton .mx_StyledRadioButton_content {
        margin-left: 14px;
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 0.9375rem;
        line-height: 1.5rem;
        color: #edf3ff;
        display: block;
    }

    .mx_JoinRuleSettings_radioButton.mx_StyledRadioButton_disabled {
        opacity: 0.5;
    }

    .mx_JoinRuleSettings_radioButton.mx_StyledRadioButton_disabled + span {
        opacity: 0.5;
    }

    .mx_JoinRuleSettings_radioButton + span {
        display: inline-block;
        margin-left: 34px;
        margin-bottom: 16px;
        font-size: 0.9375rem;
        line-height: 1.5rem;
        color: #edf3ff;
    }

        .mx_JoinRuleSettings_radioButton + span + .mx_StyledRadioButton {
            border-top: 1px solid #6f7882;
        }

.mx_JoinRuleSettings_labelledCheckbox {
    font: var(--cpd-font-body-md-regular);
    margin-top: var(--cpd-space-2x);
}

.mx_JoinRuleSettings_recommended {
    color: var(--cpd-color-green-1000);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_KeyboardShortcut kbd {
        padding: 5px;
        border-radius: 4px;
        background-color: #181b21;
        min-width: 20px;
        text-align: center;
        display: inline-block;
        border: 1px solid #c7c7c7;
        -webkit-box-shadow: 0 2px #c7c7c7;
                box-shadow: 0 2px #c7c7c7;
        text-transform: capitalize;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2020, 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LayoutSwitcher_LayoutSelector {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    /**
     * The settings form has a default gap of 10px
     * We want to have a bigger gap between the layout options
     */
    gap: var(--cpd-space-4x) !important;
}

    .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio {
        border: 1px solid var(--cpd-color-border-interactive-primary);
        border-radius: var(--cpd-space-2x);
    }

        .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_inline {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            /*
             * 10px
             */
            gap: calc(var(--cpd-space-2x) + var(--cpd-space-0-5x));
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

        .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_inline,
        .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview {
            margin: var(--cpd-space-3x);
        }

        /**
         * Override the event tile style to make it fit in the selector
         * Tweak also hover style and remove action bar
         */
        .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview {
            pointer-events: none;
        }

            .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile {
                margin: 0;
            }

                /**
                 * Hide the message options and message action bar in the preview
                 */
                .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile .mx_EventTile_msgOption,
                .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile .mx_MessageActionBar {
                    display: none;
                }

                .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile .mx_EventTile_content {
                    margin-right: 0;
                }

                .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile[data-layout="group"] {
                    margin-top: calc(var(--cpd-space-3x) * -1);
                }

                /**
                 * Add margin to center the bubble
                 */
                .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile[data-layout="bubble"] {
                    /**
                     * Add the layout margin and the margin to vertically center the bubble
                     */
                    margin-top: var(--cpd-space-6x);
                    margin-right: 34px;
                    -ms-flex-negative: 1;
                        flex-shrink: 1;
                }

                .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile[data-layout="irc"] .mx_MessageTimestamp {
                    display: none; /* hide the container used for spacing consistency */
                }

                .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile .mx_EventTile_line {
                    max-width: 100%;
                }

        .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_separator {
            border-top: 0;
            border-bottom: 1px solid var(--cpd-color-border-interactive-secondary);
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_NotificationPusherSettings .mx_NotificationPusherSettings_description {
        color: #edf3ff;
    }

    .mx_NotificationPusherSettings .mx_NotificationPusherSettings_detail {
        margin-top: -4px;
        margin-bottom: 12px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    /* The labs notice banner renders directly below this, so keep them apart. When it is absent
       the margin collapses with the section's own, leaving the spacing below unchanged. */
    .mx_SettingsTab .mx_NotificationSettings2 .mx_NotificationSettings2_error {
        margin-bottom: var(--cpd-space-4x);
    }

        /* The alert lays its actions out at flex-basis 0, which would otherwise break the label
           across lines rather than wrapping it below the message. */
        .mx_SettingsTab .mx_NotificationSettings2 .mx_NotificationSettings2_error .mx_AccessibleButton {
            white-space: nowrap;
        }

        /* Compound drops the action onto its own row for any alert under 600px, which leaves this
           short message sitting beside a mostly empty second row. Wrap on demand instead, so the
           action only moves below the message once the two genuinely stop fitting side by side.
           The children are the alert's content row and the message within it. */
        .mx_SettingsTab .mx_NotificationSettings2 .mx_NotificationSettings2_error > div {
            -ms-flex-wrap: wrap;
                flex-wrap: wrap;
        }

            .mx_SettingsTab .mx_NotificationSettings2 .mx_NotificationSettings2_error > div > div:first-child {
                -webkit-box-flex: 1;
                    -ms-flex: 1 1 auto;
                        flex: 1 1 auto;

                /* Compound tints only the icon on a critical alert and leaves the message in the
                   default text colour, so state it here to read like warnings elsewhere. The action
                   is a sibling of this element and so keeps its own colour. */
                color: var(--cpd-color-text-critical-primary);
            }

    .mx_SettingsTab .mx_NotificationSettings2 .mx_SettingsSection_subSections {
        color: #edf3ff;
        gap: 32px;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

    .mx_SettingsTab .mx_NotificationSettings2 .mx_SettingsSubsection_description {
        margin-bottom: 20px;
    }
            .mx_SettingsTab .mx_NotificationSettings2 .mx_SettingsSubsection_description .mx_SettingsSubsection_text .mx_NotificationSettings2_notificationBadge {
                vertical-align: baseline;
                display: -webkit-inline-box;
                display: -ms-inline-flexbox;
                display: inline-flex;
                margin: 0 2px;
            }

    .mx_SettingsTab .mx_NotificationSettings2 .mx_SettingsSubsection_content {
        margin-top: 12px;
        gap: 12px;
        justify-items: stretch;
        -webkit-box-pack: stretch;
            -ms-flex-pack: stretch;
                justify-content: stretch;
    }

    .mx_SettingsTab .mx_NotificationSettings2 .mx_StyledRadioButton_content {
        margin-left: 10px;
        margin-right: 10px;
    }

    .mx_SettingsTab .mx_NotificationSettings2 .mx_TagComposer {
        margin-top: 16px;
    }

        .mx_SettingsTab .mx_NotificationSettings2 .mx_TagComposer.mx_TagComposer_disabled {
            opacity: 0.7;
        }

        .mx_SettingsTab .mx_NotificationSettings2 .mx_TagComposer .mx_TagComposer_tags {
            margin-top: 16px;
            gap: 8px;
        }

            .mx_SettingsTab .mx_NotificationSettings2 .mx_TagComposer .mx_TagComposer_tags .mx_Tag {
                border-radius: 18px;
                padding: 6px 12px;
                background: #1a1d23;
                margin: 0;
            }

                .mx_SettingsTab .mx_NotificationSettings2 .mx_TagComposer .mx_TagComposer_tags .mx_Tag .mx_Tag_delete {
                    background: #edf3ff;
                    color: #fff;
                    -ms-flex-item-align: initial;
                        align-self: initial;
                }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015-2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_UserNotifSettings_grid {
    width: calc(100% + 12px); /* +12px to line up center of 'Noisy' column with toggle switches */
    display: grid;
    grid-template-columns: auto repeat(3, 62px);
    place-items: center center;
    grid-gap: 8px;
    gap: 8px;
}

    /* Override StyledRadioButton default styles */
    .mx_UserNotifSettings_grid .mx_StyledRadioButton {
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
    }

        .mx_UserNotifSettings_grid .mx_StyledRadioButton .mx_StyledRadioButton_content {
            display: none;
        }

        .mx_UserNotifSettings_grid .mx_StyledRadioButton .mx_StyledRadioButton_spacer {
            display: none;
        }

    /* left align section heading */
    .mx_UserNotifSettings_grid .mx_SettingsSubsectionHeading {
        justify-self: start;
    }

.mx_UserNotifSettings_gridRowContainer {
    display: contents;
}

.mx_UserNotifSettings_gridRow {
    display: contents;
}

.mx_UserNotifSettings_gridRowLabel {
    padding-inline: unset; /* Remove default legend padding */
    justify-self: start;
    /* <legend> does not accept */
    /* display: inline | inline-block */
    /* force it inline using float */
    float: left;
}

.mx_UserNotifSettings_gridColumnLabel {
    color: #edf3ff;
    font: var(--cpd-font-body-sm-semibold);
}
.mx_UserNotifSettings_gridRowError {
    /* occupy full row */
    grid-column: 1/-1;
    justify-self: start;
    padding-right: 30%;
    /* collapse half of the grid-gap */
    margin-top: calc(-1 * var(--cpd-space-1x));
}

.mx_UserNotifSettings_floatingSection {
    margin-top: 40px;
}

    .mx_UserNotifSettings_floatingSection > div:first-child {
        /* section header */
        font-size: 1.125rem;
        font-weight: var(--cpd-font-weight-semibold);
    }

    .mx_UserNotifSettings_floatingSection > table {
        border-collapse: collapse;
        border-spacing: 0;
        margin-top: 8px;
    }

        .mx_UserNotifSettings_floatingSection > table tr > td:first-child {
            /* Just for a bit of spacing */
            padding-right: 8px;
        }

.mx_UserNotifSettings_clearNotifsButton {
    margin-top: 8px;
}

.mx_TagComposer {
    margin-top: 35px; /* lots of distance from the last line of the table */
}

.mx_AccessibleButton.mx_NotificationSound_browse {
    margin-right: 10px;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_GeneralUserSettingsTab_section--discovery_existing_verification {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

    .mx_GeneralUserSettingsTab_section--discovery_existing_verification .mx_Field {
        margin: 0 0 0 1em;
    }

.mx_PhoneNumbers_input {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_PhoneNumbers_input > .mx_Field {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
}

.mx_PhoneNumbers_country {
    width: 80px;
}
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 * Copyright 2024 The Matrix.org Foundation C.I.C.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_PowerLevelSelector_Button {
    -ms-flex-item-align: start;
        align-self: flex-start;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019, 2020 , 2024 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomProfileSettings {
    border-bottom: 1px solid #6f7882;
}

    .mx_RoomProfileSettings .mx_RoomProfileSettings_profile {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
    }

        .mx_RoomProfileSettings .mx_RoomProfileSettings_profile .mx_RoomProfileSettings_profile_controls {
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
            -webkit-margin-end: 54px;
                    margin-inline-end: 54px;
        }

            .mx_RoomProfileSettings .mx_RoomProfileSettings_profile .mx_RoomProfileSettings_profile_controls .mx_Field {
                margin-top: var(--cpd-space-2x);
            }

            .mx_RoomProfileSettings .mx_RoomProfileSettings_profile .mx_RoomProfileSettings_profile_controls .mx_RoomProfileSettings_profile_controls_topic {
                margin-top: var(--cpd-space-2x);
            }

                .mx_RoomProfileSettings .mx_RoomProfileSettings_profile .mx_RoomProfileSettings_profile_controls .mx_RoomProfileSettings_profile_controls_topic > textarea {
                    font-family: inherit;
                    resize: vertical;
                }

                .mx_RoomProfileSettings .mx_RoomProfileSettings_profile .mx_RoomProfileSettings_profile_controls .mx_RoomProfileSettings_profile_controls_topic.mx_RoomProfileSettings_profile_controls_topic--room textarea {
                    min-height: 4em;
                }

            .mx_RoomProfileSettings .mx_RoomProfileSettings_profile .mx_RoomProfileSettings_profile_controls .mx_RoomProfileSettings_profile_controls_userId {
                -webkit-margin-end: var(--cpd-space-5x);
                        margin-inline-end: var(--cpd-space-5x);
            }

    .mx_RoomProfileSettings .mx_RoomProfileSettings_buttons {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        gap: var(--cpd-space-4x);
        margin-top: 10px; /* 18px is already accounted for by the <p> above the buttons */
        margin-bottom: var(--cpd-space-7x);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_SetIntegrationManager .mx_SetIntegrationManager_heading_manager {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        -webkit-column-gap: var(--cpd-space-1x);
           -moz-column-gap: var(--cpd-space-1x);
                column-gap: var(--cpd-space-1x);
    }
    .mx_SetIntegrationManager form {
        margin-top: var(--cpd-space-3x);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SettingsFieldset {
    /* Reset the browser default <fieldset> styling */
    display: inline-block;
    margin-inline: unset;
    padding-block: unset;
    padding-inline: unset;
    min-inline-size: unset;
    border: none;
    -webkit-box-sizing: content-box;
            box-sizing: content-box;
}

.mx_SettingsFieldset_legend {
    /* Reset the browser default <legend> styling */
    padding-inline: unset;
    border: none;
    font: var(--cpd-font-heading-md-semibold);
    font-weight: var(--cpd-font-weight-semibold);
    display: block;
    color: #edf3ff;
    margin-bottom: 10px;
    margin-top: 12px;
}

.mx_SettingsFieldset_description {
    display: block;
    margin-top: 0;
    margin-bottom: 10px;
}

    .mx_SettingsFieldset_description p {
        margin-top: 10px;
        margin-bottom: 0;
    }

        .mx_SettingsFieldset_description p:first-child {
            margin: 0;
        }

.mx_SettingsFieldset_content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: var(--cpd-space-2x);
}
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_SettingsHeader {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: var(--cpd-space-2x);
    /* Override margin from common.pcss */
    margin: 0;
}

    .mx_SettingsHeader > span {
        font: var(--cpd-font-body-sm-medium);
        color: var(--cpd-color-text-action-accent);
    }

    .mx_SettingsHeader.mx_SettingsHeader_recommended::after {
        display: inline-block;
        content: "";
        width: 8px;
        height: 8px;
        background-color: var(--cpd-color-icon-critical-primary);
        clip-path: circle(4px);
    }
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_SettingsSubheader {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: var(--cpd-space-2x);
}

    .mx_SettingsSubheader > span {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        gap: var(--cpd-space-2x);
        font: var(--cpd-font-body-sm-medium);
    }

    .mx_SettingsSubheader .mx_SettingsSubheader_success {
        color: var(--cpd-color-text-success-primary);
    }

    .mx_SettingsSubheader .mx_SettingsSubheader_error {
        color: var(--cpd-color-text-critical-primary);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ExistingSpellCheckLanguage {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_ExistingSpellCheckLanguage_language {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    margin-right: 10px;
}

.mx_GeneralUserSettingsTab_spellCheckLanguageInput {
    margin-bottom: var(--cpd-space-2x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ThemeChoicePanel_ThemeSelectors {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    /* Override form default style */
    -webkit-box-orient: horizontal !important;
    -webkit-box-direction: normal !important;
        -ms-flex-direction: row !important;
            flex-direction: row !important;
    gap: var(--cpd-space-4x) !important;
}

    .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector {
        border: 1px solid var(--cpd-color-border-interactive-secondary);
        border-radius: var(--cpd-space-1-5x);
        padding: var(--cpd-space-3x) var(--cpd-space-5x) var(--cpd-space-3x) var(--cpd-space-3x);
        gap: var(--cpd-space-2x);
        background-color: var(--cpd-color-bg-canvas-default);
    }

        .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector.mx_ThemeChoicePanel_themeSelector_enabled {
            border-color: var(--cpd-color-border-interactive-primary);
        }

        .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector.mx_ThemeChoicePanel_themeSelector_disabled {
            border-color: var(--cpd-color-border-disabled);
        }

            .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector.mx_ThemeChoicePanel_themeSelector_disabled .mx_ThemeChoicePanel_themeSelector_Label {
                color: var(--cpd-color-text-disabled);
                cursor: not-allowed;
            }

        .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector .mx_ThemeChoicePanel_themeSelector_Label {
            font: var(--cpd-font-body-md-semibold);
        }
            .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector:not(.mx_ThemeChoicePanel_themeSelector_disabled) .mx_ThemeChoicePanel_themeSelector_Label {
                color: var(--cpd-color-text-primary);
            }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_UpdateCheckButton_summary {
    margin-left: 16px;
}
}
@layer app-web{

/*
Copyright 2026 Element Creations Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_UserPersonalInfoSettings h2 {
        margin: var(--cpd-space-4x) 0;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019, 2020 , 2024 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_UserProfileSettings {
    border-bottom: 1px solid #6f7882;
}

    .mx_UserProfileSettings h2 {
        margin: var(--cpd-space-4x) 0;
    }

    .mx_UserProfileSettings .mx_UserProfileSettings_profile {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        margin-top: var(--cpd-space-6x);
        gap: 16px;
    }

        .mx_UserProfileSettings .mx_UserProfileSettings_profile .mx_UserProfileSettings_profile_displayName {
            -webkit-box-flex: 0;
                -ms-flex-positive: 0;
                    flex-grow: 0;
            width: 100%;
            gap: 0;
        }
        .mx_UserProfileSettings .mx_UserProfileSettings_profile .mx_UserProfileSettings_profile_nameAndStatus {
            width: 100%;
            gap: 16px;
        }

    .mx_UserProfileSettings .mx_UserProfileSettings_profile_controls {
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
    }

    .mx_UserProfileSettings .mx_UserProfileSettings_profile_controls_userId {
        width: 100%;
        margin-top: var(--cpd-space-4x);
    }
        .mx_UserProfileSettings .mx_UserProfileSettings_profile_controls_userId .mx_CopyableText {
            margin-top: var(--cpd-space-1x);
            width: 100%;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
        }

    .mx_UserProfileSettings .mx_UserProfileSettings_profile_controls_userId_label {
        font-size: 15px;
        font-weight: 500;
    }

    .mx_UserProfileSettings .mx_UserProfileSettings_profile_buttons {
        margin-top: var(--cpd-space-8x);
        margin-bottom: var(--cpd-space-8x);
    }

    .mx_UserProfileSettings .mx_UserProfileSettings_accountmanageIcon {
        margin-right: var(--cpd-space-2x);
    }

@media (max-width: 768px) {
    .mx_UserProfileSettings_profile {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        gap: 30px;
    }
}
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_EncryptionDetails,
.mx_OtherSettings {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    /* !important override compound form */
    gap: var(--cpd-space-6x) !important;
    width: 100%;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: start;
}

    .mx_EncryptionDetails .mx_EncryptionDetails_session_title,
    .mx_EncryptionDetails .mx_OtherSettings_title,
    .mx_OtherSettings .mx_EncryptionDetails_session_title,
    .mx_OtherSettings .mx_OtherSettings_title {
        font: var(--cpd-font-body-lg-semibold);
        padding-bottom: var(--cpd-space-2x);
        border-bottom: 1px solid var(--cpd-color-gray-400);
        width: 100%;
        margin: 0;
    }
    .mx_EncryptionDetails .mx_EncryptionDetails_session {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-4x);
        width: 100%;
    }

        .mx_EncryptionDetails .mx_EncryptionDetails_session > div {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
        }

            .mx_EncryptionDetails .mx_EncryptionDetails_session > div > span {
                width: 50%;
                word-wrap: break-word;
            }

        .mx_EncryptionDetails .mx_EncryptionDetails_session > div:nth-child(odd) {
            background-color: var(--cpd-color-gray-200);
        }

    .mx_EncryptionDetails .mx_EncryptionDetails_buttons {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        gap: var(--cpd-space-4x);
    }
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */
    .mx_ChangeRecoveryKey .mx_InformationPanel_description {
        text-align: center;
    }

    .mx_ChangeRecoveryKey .mx_ChangeRecoveryKey_Form {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-8x);
    }

        .mx_ChangeRecoveryKey .mx_ChangeRecoveryKey_Form .mx_ChangeRecoveryKey_footer {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            gap: var(--cpd-space-4x);
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
        }

    .mx_ChangeRecoveryKey .mx_KeyPanel {
        display: grid;
        grid-template:
            "header button" auto
            "content button" auto / 1fr;

        grid-column-gap: var(--cpd-space-3x);

        -webkit-column-gap: var(--cpd-space-3x);

           -moz-column-gap: var(--cpd-space-3x);

                column-gap: var(--cpd-space-3x);
        grid-row-gap: var(--cpd-space-1x);
        row-gap: var(--cpd-space-1x);
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

        .mx_ChangeRecoveryKey .mx_KeyPanel > span {
            grid-area: header;
        }

        .mx_ChangeRecoveryKey .mx_KeyPanel > div {
            grid-area: content;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            gap: var(--cpd-space-2x);
            color: var(--cpd-color-text-secondary);
        }

            .mx_ChangeRecoveryKey .mx_KeyPanel > div .mx_KeyPanel_key {
                font-family: "Fira Code", monospace;
                /*
                 * From figma https://www.figma.com/design/qTWRfItpO3RdCjnTKPu4mL/Settings?node-id=375-77471&t=t7lozYrSI1AVZZ3U-4
                 */
                height: 70px;
                -webkit-box-sizing: border-box;
                        box-sizing: border-box;
                border-radius: var(--cpd-space-2x);
                padding: var(--cpd-space-3x) var(--cpd-space-4x);
                background-color: var(--cpd-color-bg-subtle-secondary);
            }

        .mx_ChangeRecoveryKey .mx_KeyPanel > button {
            margin: 0 var(--cpd-space-1x);
            grid-area: button;
            color: var(--cpd-color-icon-secondary-alpha);
        }

    .mx_ChangeRecoveryKey .mx_KeyForm {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-8x);
    }
            .mx_ChangeRecoveryKey .mx_KeyForm .mx_KeyForm_password > input[name="recoveryKey"] {
                /*
                 * From figma https://www.figma.com/design/qTWRfItpO3RdCjnTKPu4mL/Settings?node-id=375-77506&t=d82NdRBDoKsUe1C9-4
                 */
                height: 70px;
                padding: var(--cpd-space-3x) var(--cpd-space-3x) var(--cpd-space-3x) var(--cpd-space-4x);
                border: var(--cpd-border-width-1) solid;
                border-radius: 8px;
                margin: 0px;
            }
                .mx_ChangeRecoveryKey .mx_KeyForm .mx_KeyForm_password > input[name="recoveryKey"]:focus {
                    outline: none;
                    -webkit-box-shadow: none;
                            box-shadow: none;
                }

            .mx_ChangeRecoveryKey .mx_KeyForm .mx_KeyForm_password > button {
                /*
                 * See figma https://www.figma.com/design/qTWRfItpO3RdCjnTKPu4mL/Settings?node-id=375-77506&t=d82NdRBDoKsUe1C9-4
                 * Avoid stretching the hide/show symbol to the height of the input, and centre it vertically.
                 */
                height: 24.5px;
                padding: var(--cpd-space-1x);
                -ms-flex-item-align: center;
                    align-self: center;
            }
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_EncryptionCard {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: var(--cpd-space-8x);
    padding: var(--cpd-space-10x);
    border-radius: var(--cpd-space-4x);
    /* From figma */
    -webkit-box-shadow: 0 1.2px 2.4px 0 rgb(27, 29, 34, 0.15);
            box-shadow: 0 1.2px 2.4px 0 rgb(27, 29, 34, 0.15);
    border: 1px solid var(--cpd-color-gray-400);
}

    .mx_EncryptionCard .mx_EncryptionCard_header {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-4x);
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

        .mx_EncryptionCard .mx_EncryptionCard_header > h2 {
            margin: 0;
        }

        .mx_EncryptionCard .mx_EncryptionCard_header > span {
            color: var(--cpd-color-text-secondary);
            text-align: center;
        }

    /* extra class for specifying that we don't need a border */
    .mx_EncryptionCard.mx_EncryptionCard_noBorder {
        border: 0px none;
        -webkit-box-shadow: none;
                box-shadow: none;
        padding: 0px;
    }

.mx_EncryptionCard_buttons {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: var(--cpd-space-4x);
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
}
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */
    .mx_EncryptionCard_emphasisedContent span {
        font: var(--cpd-font-body-md-medium);
        text-align: center;
    }
}
@layer app-web{

/*
 * Copyright 2025 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_RecoveryPanelOutOfSync {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: var(--cpd-space-2x);
}
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

/* Red text for the "Do not close this window" warning */
.mx_ResetIdentityPanel_warning {
    color: var(--cpd-color-text-critical-primary);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SettingsBanner {
    background: #21262c;
    border-radius: 8px;
    padding: 12px 16px;
    gap: 12px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

    .mx_SettingsBanner .mx_SettingsBanner_content {
        margin: 0;
    }

    .mx_SettingsBanner .mx_AccessibleButton {
        white-space: nowrap;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SettingsIndent {
    padding-left: 16px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 12px;
}
}
@layer app-web{

/*
Copyright 2023, 2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SettingsSection {
    --SettingsTab_section-margin-bottom-preferences-labs: 30px;
    --SettingsTab_heading_nth_child-margin-top: 30px;
    --SettingsTab_tooltip-max-width: 20px; /* So it fits in the space provided by the page */

    color: #edf3ff;
}

    /* Compound links carry data-kind and provide their own colour. */
    .mx_SettingsSection a:not([data-kind]) {
        color: #0086e6;
    }

    .mx_SettingsSection.mx_SettingsSection_newUi {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-6x);
        -webkit-box-align: start;
            -ms-flex-align: start;
                align-items: start;
    }

    .mx_SettingsSection .mx_SettingsSection_header {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-3x);
        color: var(--cpd-color-text-secondary);
    }

.mx_SettingsSection_subSections {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-gap: var(--cpd-space-8x);
    gap: var(--cpd-space-8x);

    margin: var(--cpd-space-4x) 0;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SettingsTab {
    --SettingsTab_tooltip-max-width: 120px; /* So it fits in the space provided by the page */

    color: #edf3ff;
}

    /* Compound links carry data-kind and provide their own colour. */
    .mx_SettingsTab a:not([data-kind]) {
        color: #0086e6;
    }

    .mx_SettingsTab form {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-3x);
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
    }

    /* never want full width buttons
    event when other content is 100% width */
    .mx_SettingsTab .mx_AccessibleButton {
        -ms-flex-item-align: start;
            align-self: flex-start;
        justify-self: flex-start;
    }

    .mx_SettingsTab .mx_Field {
        margin: 0;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
    }

.mx_SettingsTab_warningText {
    color: #ff5b55;
}

.mx_SettingsTab_subsectionText {
    color: #edf3ff;
    font: var(--cpd-font-body-md-regular);
    display: block;
    margin-top: 10px;
    -webkit-margin-end: 80px;
            margin-inline-end: 80px; /* Align with the rest of the view */
    margin-bottom: 10px;
    -webkit-margin-start: 0;
            margin-inline-start: 0;
}

.mx_SettingsTab_section {

    margin-bottom: var(--cpd-space-6x);
}

    .mx_SettingsTab_section .mx_SettingsFlag {
        -webkit-margin-end: 80px;
                margin-inline-end: 80px;
        margin-bottom: 10px;
    }

        .mx_SettingsTab_section .mx_SettingsFlag .mx_SettingsFlag_label {
            vertical-align: middle;
            display: inline-block;
            max-width: calc(100% - 3rem); /* Force word wrap instead of colliding with the switch */
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
        }

        .mx_SettingsTab_section .mx_SettingsFlag .mx_ToggleSwitch {
            float: inline-end;
        }

    .mx_SettingsTab_section > p {
        -webkit-margin-end: 80px;
                margin-inline-end: 80px;
    }

    .mx_SettingsTab_section.mx_SettingsTab_subsectionText .mx_SettingsFlag {
        -webkit-margin-end: 0 !important;
                margin-inline-end: 0 !important;
    }

.mx_SettingsTab_sections {
    display: grid;
    grid-template-columns: 1fr;
    grid-gap: var(--cpd-space-8x);
    gap: var(--cpd-space-8x);

    padding-bottom: var(--cpd-space-4x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_NotificationSettingsTab_notificationsSection {
    width: 360px;
}

    .mx_NotificationSettingsTab_notificationsSection .mx_StyledRadioButton {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: reverse;
            -ms-flex-direction: row-reverse;
                flex-direction: row-reverse;
        color: #edf3ff;
        font-size: 0.9375rem;
        line-height: 1.125rem;
        font-weight: var(--cpd-font-weight-semibold);
        margin-top: 16px;
        position: relative;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

        .mx_NotificationSettingsTab_notificationsSection .mx_StyledRadioButton input + div {
            margin-top: 8px;
        }

        .mx_NotificationSettingsTab_notificationsSection .mx_StyledRadioButton .mx_NotificationSettingsTab_microCopy {
            color: #edf3ff;
            font-weight: normal;
            font-size: 0.75rem;
            line-height: 0.9375rem;
            margin-right: 32px;
        }

input[type="file"].mx_NotificationSound_soundUpload {
    display: none;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 Nordeck IT + Consulting GmbH

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PeopleRoomSettingsTab_knock {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-top: var(--cpd-space-2x);
}

.mx_PeopleRoomSettingsTab_content {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    margin: 0 var(--cpd-space-4x);
}

.mx_PeopleRoomSettingsTab_avatar {
    -ms-flex-item-align: start;
        align-self: flex-start;
    -ms-flex-negative: 0;
        flex-shrink: 0;
}

.mx_PeopleRoomSettingsTab_name {
    font-weight: var(--cpd-font-weight-semibold);
}

.mx_PeopleRoomSettingsTab_timestamp {
    color: #edf3ff;
    margin-left: var(--cpd-space-1x);
}

.mx_PeopleRoomSettingsTab_userId {
    color: #edf3ff;
    display: block;
    font-size: var(--cpd-font-size-body-sm);
}

.mx_PeopleRoomSettingsTab_seeMoreOrLess {
    margin: var(--cpd-space-3x) 0 0;
}

.mx_PeopleRoomSettingsTab_action {
    -ms-flex-negative: 0;
        flex-shrink: 0;
}

    .mx_PeopleRoomSettingsTab_action + .mx_PeopleRoomSettingsTab_action {
        margin-left: var(--cpd-space-3x);
    }

.mx_PeopleRoomSettingsTab_paragraph {
    margin: 0;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RolesRoomSettingsTab_bannedList {
    margin-bottom: 0;
}

.mx_RolesRoomSettingsTab_unbanBtn {
    margin-right: 10px;
    margin-bottom: 5px;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SecurityRoomSettingsTab_advancedSection {
    margin-top: var(--cpd-space-4x);
}

.mx_SecurityRoomSettingsTab_warning {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-column-gap: var(--cpd-space-1x);
       -moz-column-gap: var(--cpd-space-1x);
            column-gap: var(--cpd-space-1x);
}

    .mx_SecurityRoomSettingsTab_warning svg {
        color: #ff0064; /* Match legacy icon colour until redesign */
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020, 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Field.mx_AppearanceUserSettingsTab_checkboxControlledField {
    width: 256px;
    /* Line up with Settings field toggle button */
    -webkit-margin-start: 0;
            margin-inline-start: 0;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2019 New Vector Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_HelpUserSettingsTab_accessTokenDetails {
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_KeyboardShortcut_shortcutList {
    margin: 0;
    padding: 0;
    width: 100%;
    display: grid;
    grid-gap: var(--cpd-space-1x);
    gap: var(--cpd-space-1x);
}

.mx_KeyboardShortcut_shortcutRow,
.mx_KeyboardShortcut {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_KeyboardShortcut_shortcutRow {
    -webkit-column-gap: var(--cpd-space-2x);
       -moz-column-gap: var(--cpd-space-2x);
            column-gap: var(--cpd-space-2x);
}

.mx_KeyboardShortcut {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    -webkit-column-gap: var(--cpd-space-1x);
       -moz-column-gap: var(--cpd-space-1x);
            column-gap: var(--cpd-space-1x);
}
}
@layer app-web{

/*
Copyright 2025 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MediaPreviewAccountSetting_Radio {
    margin: var(--cpd-space-1x) 0;
}

.mx_MediaPreviewAccountSetting {
    margin-top: var(--cpd-space-1x);
}

.mx_MediaPreviewAccountSetting_RadioHelp {
    /* !important because it's overriding compound help message */
    margin-top: 0 !important;
    margin-bottom: var(--cpd-space-1x);
}

.mx_MediaPreviewAccountSetting_Form {
    width: 100%;
}

.mx_MediaPreviewAccountSetting_ToggleSwitch {
    font: var(--cpd-font-body-md-medium);
    letter-spacing: var(--cpd-font-letter-spacing-body-md);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MjolnirUserSettingsTab_listItem {
    margin-bottom: 2px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2024 The Matrix.org Foundation C.I.C.
Copyright 2019 New Vector Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PreferencesUserSettingsTab_section_hint {
    font: var(--cpd-font-body-sm-regular);
    color: var(--cpd-color-text-secondary);
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SecurityUserSettingsTab_bulkOptions {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-column-gap: var(--cpd-space-2x);
       -moz-column-gap: var(--cpd-space-2x);
            column-gap: var(--cpd-space-2x);
}

.mx_SecurityUserSettingsTab_ignoredUsers {
    padding-left: 0;
    margin: 0;
    list-style: none;
}

.mx_SecurityUserSettingsTab_ignoredUser {
    margin-bottom: var(--cpd-space-1x);
}

.mx_SecurityUserSettingsTab_ignoredUser .mx_AccessibleButton {
    margin-right: var(--cpd-space-2x);
}

.mx_SecurityUserSettingsTab_warning {
    color: #ff5b55;
}

    .mx_SecurityUserSettingsTab_warning svg {
        width: 24px;
        height: 24px;
        margin-right: var(--cpd-space-4x);
        color: #ff5b55;
    }

form.mx_SecurityUserSettingsTab_posthogSection {
    /* Inhibit compound spacing here as it clashes with pre-compound UI */
    display: contents !important;
}
}
@layer app-web{

/*
Copyright 2024,2025 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SidebarUserSettingsTab_homeAllRoomsCheckbox {
    margin-left: 24px;
}

    .mx_SidebarUserSettingsTab_homeAllRoomsCheckbox + div {
        margin-left: 48px;
    }

.mx_SidebarUserSettingsTab_icon {
    margin-right: var(--cpd-space-2x);
    margin-top: auto;
    margin-bottom: auto;
}

.mx_SidebarUserSettingsTab_checkbox label {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_SpaceBasicSettings .mx_Field {
        margin: 24px 0;
    }

    .mx_SpaceBasicSettings .mx_SpaceBasicSettings_avatarContainer {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        margin-top: 24px;
    }

        .mx_SpaceBasicSettings .mx_SpaceBasicSettings_avatarContainer .mx_SpaceBasicSettings_avatar {
            height: 80px;
            width: 80px;
            background-color: #edf3ff;
            border-radius: 16px;
            -o-object-fit: cover;
               object-fit: cover;
        }

            .mx_SpaceBasicSettings .mx_SpaceBasicSettings_avatarContainer .mx_SpaceBasicSettings_avatar svg {
                width: 20px;
                height: 20px;
                padding: 30px;
                color: #ffffff; /* white icon fill */
            }

        .mx_SpaceBasicSettings .mx_SpaceBasicSettings_avatarContainer > input[type="file"] {
            display: none;
        }

        .mx_SpaceBasicSettings .mx_SpaceBasicSettings_avatarContainer > .mx_AccessibleButton_kind_link {
            display: inline-block;
            margin: auto 18px;
            color: #0086e6;
            font: var(--cpd-font-body-md-regular);
        }

        .mx_SpaceBasicSettings .mx_SpaceBasicSettings_avatarContainer > .mx_SpaceBasicSettings_avatar_remove {
            color: #ff5b55;
        }

    .mx_SpaceBasicSettings .mx_AccessibleButton_hasKind {
        margin-left: auto;
        display: block;
        width: -webkit-min-content;
        width: -moz-min-content;
        width: min-content;
    }

    .mx_SpaceBasicSettings .mx_AccessibleButton_disabled {
        cursor: not-allowed;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SpaceChildrenPicker {
    margin: 16px 0;
}

    .mx_SpaceChildrenPicker .mx_StyledRadioButton + .mx_StyledRadioButton {
        margin-top: 16px;
    }

    .mx_SpaceChildrenPicker .mx_SearchBox {
        /* To match the space around the title */
        margin: 0 0 15px 0;
        -webkit-box-flex: 0;
            -ms-flex-positive: 0;
                flex-grow: 0;
        border-radius: 8px;
    }

    .mx_SpaceChildrenPicker .mx_SpaceChildrenPicker_noResults {
        display: block;
        margin-top: 24px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    /* background blur everything except SpacePanel */
    .mx_SpaceCreateMenu_wrapper .mx_ContextualMenu_background {
        background-color: #00000080;
        opacity: 0.6;
        left: 68px;
    }

    .mx_SpaceCreateMenu_wrapper .mx_ContextualMenu {
        padding: 24px;
        width: 480px;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        background-color: #181b21;
        position: relative;
    }
            .mx_SpaceCreateMenu_wrapper .mx_ContextualMenu > div > h2 {
                font: var(--cpd-font-heading-sm-semibold);
                font-size: 1.125rem;
                margin-top: 4px;
            }

            .mx_SpaceCreateMenu_wrapper .mx_ContextualMenu > div > p {
                font-size: 0.9375rem;
                color: #edf3ff;
            }

        .mx_SpaceCreateMenu_wrapper .mx_ContextualMenu .mx_SpaceCreateMenu_back {
            width: 24px;
            height: 24px;
            padding: var(--cpd-space-0-5x);
            background-color: #1a1d23;
            border-radius: 14px;
            margin-bottom: 12px;
        }

            .mx_SpaceCreateMenu_wrapper .mx_ContextualMenu .mx_SpaceCreateMenu_back svg {
                color: #edf3ff;
            }

        .mx_SpaceCreateMenu_wrapper .mx_ContextualMenu .mx_AccessibleButton_kind_primary {
            padding: 8px 22px;
            margin-left: auto;
            display: block;
            width: -webkit-min-content;
            width: -moz-min-content;
            width: min-content;
        }

        .mx_SpaceCreateMenu_wrapper .mx_ContextualMenu .mx_AccessibleButton_disabled {
            cursor: not-allowed;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_InlineTermsAgreement_cbContainer {
    margin-top: var(--cpd-space-4x);
    margin-bottom: 10px;
    font: var(--cpd-font-body-md-regular);
}

    .mx_InlineTermsAgreement_cbContainer a {
        color: #0dbd8b;
        text-decoration: none;
    }

    .mx_InlineTermsAgreement_cbContainer .mx_InlineTermsAgreement_checkbox {
        margin-top: 10px;
    }

        .mx_InlineTermsAgreement_cbContainer .mx_InlineTermsAgreement_checkbox input {
            vertical-align: text-bottom;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_AnalyticsToast .mx_AccessibleButton_kind_danger_outline {
        background-color: #0dbd8b;
        color: #ffffff;
        border: 1px solid #0dbd8b;
        font-weight: var(--cpd-font-weight-semibold);
    }

    .mx_AnalyticsToast .mx_AccessibleButton_kind_primary {
        background-color: #0dbd8b;
        color: #ffffff;
        border: 1px solid #0dbd8b;
        font-weight: var(--cpd-font-weight-semibold);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_IncomingCallToast {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    pointer-events: initial; /* restore pointer events so the user can accept/decline */
}

    .mx_IncomingCallToast .mx_IncomingCallToast_content {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-4x);
        width: 100%;
        overflow: hidden;
    }

        .mx_IncomingCallToast .mx_IncomingCallToast_content .mx_IncomingCallToast_title {
            display: grid;
            grid-template-columns: auto 1fr auto;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            grid-gap: var(--cpd-space-2x);
            gap: var(--cpd-space-2x);
        }

            .mx_IncomingCallToast .mx_IncomingCallToast_content .mx_IncomingCallToast_title h2 {
                margin: 0;
            }

            .mx_IncomingCallToast .mx_IncomingCallToast_content .mx_IncomingCallToast_title .mx_IncomingCallToast_expandButton {
                padding: var(--cpd-space-1x);
                color: var(--cpd-color-icon-secondary);
                -webkit-transition: color 0.1s;
                transition: color 0.1s;
            }

                .mx_IncomingCallToast .mx_IncomingCallToast_content .mx_IncomingCallToast_title .mx_IncomingCallToast_expandButton:hover {
                    color: var(--cpd-color-icon-primary);
                }

                .mx_IncomingCallToast .mx_IncomingCallToast_content .mx_IncomingCallToast_title .mx_IncomingCallToast_expandButton > svg {
                    display: block;
                }

        .mx_IncomingCallToast .mx_IncomingCallToast_content .mx_IncomingCallToast_avatars {
            display: inline-block;
            vertical-align: top;
        }

        .mx_IncomingCallToast .mx_IncomingCallToast_content .mx_IncomingCallToast_buttons {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            gap: var(--cpd-space-2x);
            -webkit-padding-before: var(--cpd-space-2x);
                    padding-block-start: var(--cpd-space-2x);
        }

        .mx_IncomingCallToast .mx_IncomingCallToast_content .mx_IncomingCallToast_actionButton {
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
            min-width: 131px;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_IncomingLegacyCallToast {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    pointer-events: initial; /* restore pointer events so the user can accept/decline */
}

    .mx_IncomingLegacyCallToast .mx_IncomingLegacyCallToast_content {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        margin-left: 8px;
    }

        .mx_IncomingLegacyCallToast .mx_IncomingLegacyCallToast_content .mx_LegacyCallEvent_caller {
            font-weight: bold;
            font-size: 0.9375rem;
            line-height: 1.125rem;

            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;

            margin-top: 2px;
            margin-right: 6px;

            max-width: 200px;
        }

        .mx_IncomingLegacyCallToast .mx_IncomingLegacyCallToast_content .mx_LegacyCallEvent_type {
            font-size: 0.75rem;
            line-height: 0.9375rem;
            color: #edf3ff;

            margin-top: 4px;
            margin-bottom: 6px;

            display: -webkit-box;

            display: -ms-flexbox;

            display: flex;
            -webkit-box-orient: horizontal;
            -webkit-box-direction: normal;
                -ms-flex-direction: row;
                    flex-direction: row;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

        .mx_IncomingLegacyCallToast .mx_IncomingLegacyCallToast_content .mx_IncomingLegacyCallToast_buttons {
            margin-top: 8px;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: horizontal;
            -webkit-box-direction: normal;
                -ms-flex-direction: row;
                    flex-direction: row;
            gap: 12px;
        }

            .mx_IncomingLegacyCallToast .mx_IncomingLegacyCallToast_content .mx_IncomingLegacyCallToast_buttons .mx_IncomingLegacyCallToast_button {
                -webkit-box-sizing: border-box;
                        box-sizing: border-box;
                font-weight: var(--cpd-font-weight-semibold);
                height: 1.5rem;
                line-height: 1.5rem;
                margin-right: 0;
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
            }
                .mx_IncomingLegacyCallToast .mx_IncomingLegacyCallToast_content .mx_IncomingLegacyCallToast_buttons .mx_IncomingLegacyCallToast_button svg {
        width: 16px;
        height: 16px;
        display: inline-block;
        color: white;
        margin-right: 8px;
        vertical-align: middle;
    }
                .mx_IncomingLegacyCallToast .mx_IncomingLegacyCallToast_content .mx_IncomingLegacyCallToast_buttons .mx_IncomingLegacyCallToast_button{
                padding: 8px;
                -ms-flex-negative: 0;
                    flex-shrink: 0;
                -webkit-box-flex: 1;
                    -ms-flex-positive: 1;
                        flex-grow: 1;
                font-size: 0.9375rem;
}

    .mx_IncomingLegacyCallToast .mx_IncomingLegacyCallToast_iconButton {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        height: 20px;
        width: 20px;
    }

        .mx_IncomingLegacyCallToast .mx_IncomingLegacyCallToast_iconButton svg {
            height: inherit;
            width: inherit;
            color: #edf3ff;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_NonUrgentEchoFailureToast svg {
        display: inline-block;
        width: 1.125rem;
        height: 1.125rem;
        color: #fff; /* we know that non-urgent toasts are always styled the same */
        margin-right: 8px;
    }

    .mx_NonUrgentEchoFailureToast span {
        /* includes the i18n block */
        vertical-align: middle;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021-2023 x The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Heading_h1,
.mx_Heading_h2,
.mx_Heading_h3,
.mx_Heading_h4 {
    margin-inline: unset;
    margin-block: unset;
    color: #edf3ff;
}

.mx_Heading_h1 {
    font: var(--cpd-font-heading-xl-semibold);
}

.mx_Heading_h2 {
    font: var(--cpd-font-heading-lg-semibold);
}

.mx_Heading_h3 {
    font: var(--cpd-font-heading-md-semibold);
    font-weight: var(--cpd-font-weight-semibold);
}

.mx_Heading_h4 {
    font: var(--cpd-font-heading-sm-semibold);
    font-weight: var(--cpd-font-weight-semibold);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.
Copyright 2019 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_VerificationShowSas_decimalSas {
    text-align: center;
    font-weight: bold;
    padding-left: 3px;
    padding-right: 3px;
}

.mx_VerificationShowSas_decimalSas span {
    margin-left: 5px;
    margin-right: 5px;
}

.mx_VerificationShowSas_emojiSas {
    margin: 25px 0;
}

.mx_VerificationShowSas_buttonRow {
    text-align: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 9px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021, 2022 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2020, 2021 The Matrix.org Foundation C.I.C.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/* data-whatintent makes more sense here semantically but then the tooltip would stay visible without the button */
/* which looks broken, so we match the behaviour of tooltips which is fine too. */
[data-whatinput="mouse"] .mx_LegacyCallViewButtons.mx_LegacyCallViewButtons_hidden {
    opacity: 0.001; /* opacity 0 can cause a re-layout */
    pointer-events: none;
}

.mx_LegacyCallViewButtons {
    --LegacyCallViewButtons_dropdownButton-size: 16px;

    position: absolute;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    bottom: 32px;
    opacity: 1;
    -webkit-transition: opacity 0.5s;
    transition: opacity 0.5s;
    z-index: 200; /* To be above _all_ feeds */
    gap: 18px;
}

    .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button {
        cursor: pointer;

        background-color: #21262c;

        border-radius: 100%;
        height: 40px;
        width: 40px;

        display: -webkit-box;

        display: -ms-flexbox;

        display: flex;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;

        position: relative;

        -webkit-box-shadow: 0px 4px 4px 0px #00000026;

                box-shadow: 0px 4px 4px 0px #00000026;
        /* State buttons */
        /* Stateless buttons */
        /* Invisible state */
    } /* Same on both themes */

        .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button svg {
            display: inline-block;

            color: #edf3ff;

            height: 24px;
            width: 24px;
        }

        .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_dropdownButton {
            width: var(--LegacyCallViewButtons_dropdownButton-size);
            height: var(--LegacyCallViewButtons_dropdownButton-size);

            position: absolute;
            right: 0;
            bottom: 0;
        }

            .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_dropdownButton svg {
                width: 16px;
                height: 16px;
            }

        .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_mic svg {
            height: 20px;
            width: 20px;
        }

        /* State buttons */
        .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_on {
            background-color: #21262c;
        }

            .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_on svg {
                color: #edf3ff;
            }

            .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_on.mx_LegacyCallViewButtons_button_screensharing {
                background-color: #0dbd8b;
            }

                .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_on.mx_LegacyCallViewButtons_button_screensharing svg {
                    color: white; /* Same on both themes */
                }

        .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_off {
            background-color: #edf3ff;
        }

            .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_off svg {
                color: #21262c;
            }

            .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_off.mx_LegacyCallViewButtons_button_screensharing,
            .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_off.mx_LegacyCallViewButtons_button_sidebar {
                background-color: #21262c;
            }

                .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_off.mx_LegacyCallViewButtons_button_screensharing svg, .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_off.mx_LegacyCallViewButtons_button_sidebar svg {
                    color: #edf3ff;
                }

        /* Stateless buttons */
        .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_hangup {
            background-color: #ff5b55;
        }

            .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_hangup svg {
                color: white; /* Same on both themes */
            }

        /* Invisible state */
        .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_invisible {
            visibility: hidden;
            pointer-events: none;
            position: absolute;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CallDuration {
    color: #edf3ff;
    font-size: 0.75rem;
    white-space: nowrap;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CallView {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    min-height: 0;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;

    background-color: #22262e;
}

    .mx_CallView .mx_AppTile {
        width: auto;
        height: 100%;
        border: none;
        border-radius: inherit;
        background-color: #181b21;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DialPad {
    display: grid;
    grid-row-gap: 16px;
    row-gap: 16px;
    grid-column-gap: 0px;
    -webkit-column-gap: 0px;
       -moz-column-gap: 0px;
            column-gap: 0px;
    margin-top: 24px;
    margin-left: auto;
    margin-right: auto;

    /* squeeze the dial pad buttons together horizontally */
    grid-template-columns: repeat(3, 1fr);
}

.mx_DialPad_button {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;

    width: 40px;
    height: 40px;
    background-color: #6f7882;
    border-radius: 40px;
    font-size: 18px;
    font-weight: var(--cpd-font-weight-semibold);
    text-align: center;
    vertical-align: middle;
    margin-left: auto;
    margin-right: auto;
}

.mx_DialPad_button .mx_DialPad_buttonSubText {
    font-size: 8px;
}

.mx_DialPad_dialButton {
    /* Always show the dial button in the center grid column */
    grid-column: 2;
    background-color: #0dbd8b;
}

    .mx_DialPad_dialButton svg {
        display: inline-block;
        height: 20px;
        width: 20px;
        padding: 10px;
        color: #fff; /* on all themes */
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DialPadContextMenu_dialPad .mx_DialPad {
    row-gap: 16px;
    -webkit-column-gap: 32px;
       -moz-column-gap: 32px;
            column-gap: 32px;
}

.mx_DialPadContextMenuWrapper {
    padding: 15px;
}

.mx_DialPadContextMenu_header {
    border: none;
    margin-top: 32px;
    margin-left: 20px;
    margin-right: 20px;

    /* a separator between the input line and the dial buttons */
    border-bottom: 1px solid #6f7882;
    -webkit-transition: border-bottom 0.25s;
    transition: border-bottom 0.25s;
}

.mx_DialPadContextMenu_cancel {
    width: 20px;
    height: 20px;
    padding: var(--cpd-space-1x);
    border-radius: 14px;
    background-color: var(--cpd-color-bg-subtle-secondary);
}
    .mx_DialPadContextMenu_cancel:hover {
        background-color: var(--cpd-color-bg-subtle-primary);
    }
    .mx_DialPadContextMenu_cancel svg {
        width: inherit;
        height: inherit;
        vertical-align: top;
        color: var(--cpd-color-icon-secondary);
    }
    .mx_DialPadContextMenu_cancel{
    float: right;
}

.mx_DialPadContextMenu_header:focus-within {
    border-bottom: 1px solid #0dbd8b;
}

.mx_DialPadContextMenu_title {
    color: #a1b2d1;
    font-size: 12px;
    font-weight: var(--cpd-font-weight-semibold);
}

.mx_DialPadContextMenu_dialled {
    height: 1.5em;
    font-size: 18px;
    font-weight: var(--cpd-font-weight-semibold);
    border: none;
    margin: 0px;
}
.mx_DialPadContextMenu_dialled input {
    font-size: 18px;
    font-weight: var(--cpd-font-weight-semibold);
    overflow: hidden;
    max-width: 185px;
    text-align: left;
    padding: 8px 0px;
    background-color: rgb(0, 0, 0, 0);
}

.mx_DialPadContextMenu_dialPad {
    margin: 16px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Dialog_dialPadWrapper .mx_Dialog {
    padding: 0px;
}

.mx_DialPadModal {
    width: 292px;
    height: 370px;
    padding: 16px 0px 0px 0px;
}

.mx_DialPadModal_header {
    margin-top: 32px;
    margin-left: 40px;
    margin-right: 40px;

    /* a separator between the input line and the dial buttons */
    border-bottom: 1px solid #6f7882;
    -webkit-transition: border-bottom 0.25s;
    transition: border-bottom 0.25s;
}

.mx_DialPadModal_header:focus-within {
    border-bottom: 1px solid #0dbd8b;
}

.mx_DialPadModal_title {
    color: #a1b2d1;
    font-size: 12px;
    font-weight: var(--cpd-font-weight-semibold);
}

.mx_DialPadModal_cancel {
    width: 20px;
    height: 20px;
    padding: var(--cpd-space-1x);
    border-radius: 14px;
    background-color: var(--cpd-color-bg-subtle-secondary);
}
    .mx_DialPadModal_cancel:hover {
        background-color: var(--cpd-color-bg-subtle-primary);
    }
    .mx_DialPadModal_cancel svg {
        width: inherit;
        height: inherit;
        vertical-align: top;
        color: var(--cpd-color-icon-secondary);
    }
    .mx_DialPadModal_cancel{
    float: right;
    margin-right: 16px;
}

.mx_DialPadModal_field {
    border: none;
    margin: 0px;
    height: 30px;
}

.mx_DialPadModal_field .mx_Field_postfix {
    /* Remove border separator between postfix and field content */
    border-left: none;
}

.mx_DialPadModal_field input {
    font-size: 18px;
    font-weight: var(--cpd-font-weight-semibold);
}

.mx_DialPadModal_dialPad {
    margin-left: 16px;
    margin-right: 16px;
    margin-top: 16px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021, 2022 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2020, 2021 The Matrix.org Foundation C.I.C.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LegacyCallView {
    border-radius: 8px;
    background-color: var(--cpd-color-bg-subtle-secondary);
    padding-left: 8px;
    padding-right: 8px;
    /* XXX: PiPContainer sets pointer-events: none - should probably be set back in a better place */
    pointer-events: initial;
}

    .mx_LegacyCallView .mx_LegacyCallView_toast {
        position: absolute;
        top: 74px;

        padding: 4px 8px;

        border-radius: 4px;
        z-index: 50;

        /* Same on both themes */
        color: white;
        background-color: #17191c;
    }

    .mx_LegacyCallView .mx_LegacyCallView_content_wrapper {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;

        width: 100%;
        height: 100%;

        overflow: hidden;
    }

        .mx_LegacyCallView .mx_LegacyCallView_content_wrapper .mx_LegacyCallView_content {
            position: relative;

            display: -webkit-box;

            display: -ms-flexbox;

            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;

            -webkit-box-flex: 1;

                -ms-flex: 1;

                    flex: 1;
            overflow: hidden;

            border-radius: 10px;

            padding: 10px;
            padding-right: calc(20% + 20px); /* Space for the sidebar */

            background-color: #6f7882;
        }

            .mx_LegacyCallView .mx_LegacyCallView_content_wrapper .mx_LegacyCallView_content .mx_LegacyCallView_status {
                z-index: 50;
                color: #ffffff;
            }

            .mx_LegacyCallView .mx_LegacyCallView_content_wrapper .mx_LegacyCallView_content .mx_LegacyCallView_avatarsContainer {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-orient: horizontal;
                -webkit-box-direction: normal;
                    -ms-flex-direction: row;
                        flex-direction: row;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
                -webkit-box-pack: center;
                    -ms-flex-pack: center;
                        justify-content: center;
            }

                .mx_LegacyCallView .mx_LegacyCallView_content_wrapper .mx_LegacyCallView_content .mx_LegacyCallView_avatarsContainer div {
                    margin-left: 12px;
                    margin-right: 12px;
                }

            .mx_LegacyCallView .mx_LegacyCallView_content_wrapper .mx_LegacyCallView_content .mx_LegacyCallView_holdBackground {
                position: absolute;
                left: 0;
                right: 0;

                width: 100%;
                height: 100%;

                background-repeat: no-repeat;
                background-size: cover;
                background-position: center;
                -webkit-filter: blur(20px);
                        filter: blur(20px);
            }

                .mx_LegacyCallView .mx_LegacyCallView_content_wrapper .mx_LegacyCallView_content .mx_LegacyCallView_holdBackground::after {
                    content: "";
                    display: block;
                    position: absolute;
                    width: 100%;
                    height: 100%;
                    left: 0;
                    right: 0;
                    background-color: rgb(0, 0, 0, 0.6);
                }

            .mx_LegacyCallView .mx_LegacyCallView_content_wrapper .mx_LegacyCallView_content.mx_LegacyCallView_content_hold .mx_LegacyCallView_status {
                font-weight: bold;
                text-align: center;
            }

                .mx_LegacyCallView .mx_LegacyCallView_content_wrapper .mx_LegacyCallView_content.mx_LegacyCallView_content_hold .mx_LegacyCallView_status::before {
                    display: block;
                    margin-left: auto;
                    margin-right: auto;
                    content: "";
                    width: 40px;
                    height: 40px;
                    background-image: url(../../img/voip/paused.b00e0b4.svg);
                    background-position: center;
                    background-size: cover;
                }

                .mx_LegacyCallView_pip .mx_LegacyCallView .mx_LegacyCallView_content_wrapper .mx_LegacyCallView_content.mx_LegacyCallView_content_hold .mx_LegacyCallView_status::before {
                    width: 30px;
                    height: 30px;
                }

    .mx_LegacyCallView:not(.mx_LegacyCallView_sidebar) .mx_LegacyCallView_content {
        padding: 0;
        width: 100%;
        height: 100%;
    }

        .mx_LegacyCallView:not(.mx_LegacyCallView_sidebar) .mx_LegacyCallView_content .mx_VideoFeed_primary {
            aspect-ratio: unset;
            border: 0;

            width: 100%;
            height: 100%;
        }

    .mx_LegacyCallView.mx_LegacyCallView_pip {
        width: 320px;
        padding-bottom: 8px;

        border-radius: 8px;

        background-color: #21262c;
        -webkit-box-shadow: 0px 4px 20px rgb(0, 0, 0, 0.2);
                box-shadow: 0px 4px 20px rgb(0, 0, 0, 0.2);
    }

        .mx_LegacyCallView.mx_LegacyCallView_pip .mx_LegacyCallViewButtons {
            bottom: 13px;
        }

            .mx_LegacyCallView.mx_LegacyCallView_pip .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button {
                width: 34px;
                height: 34px;
            }

                .mx_LegacyCallView.mx_LegacyCallView_pip .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_dropdownButton {
                    width: var(--LegacyCallViewButtons_dropdownButton-size);
                    height: var(--LegacyCallViewButtons_dropdownButton-size);
                }

                .mx_LegacyCallView.mx_LegacyCallView_pip .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button::before {
                    width: 22px;
                    height: 22px;
                }

        .mx_LegacyCallView.mx_LegacyCallView_pip .mx_LegacyCallView_content {
            min-height: 180px;
        }

    .mx_LegacyCallView.mx_LegacyCallView_large {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;

        -webkit-box-flex: 1;

            -ms-flex: 1;

                flex: 1;

        padding-bottom: 10px;

        margin: 8px;

        margin: var(--container-gap-width);
        /* The left side gap is fully handled by this margin. To prohibit bleeding on webkit browser. */
        margin-right: calc(8px / 2);
        margin-right: calc(var(--container-gap-width) / 2);
        margin-bottom: 10px;
    }

    .mx_LegacyCallView.mx_LegacyCallView_belowWidget {
        margin-top: 0;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LegacyCallViewForRoom {
    overflow: hidden;
}

    .mx_LegacyCallViewForRoom .mx_LegacyCallViewForRoom_ResizeWrapper {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
    }

        .mx_LegacyCallViewForRoom .mx_LegacyCallViewForRoom_ResizeWrapper:hover .mx_LegacyCallViewForRoom_ResizeHandle {
            /* Need to use important to override element style attributes */
            /* set by re-resizable */
            width: 100% !important;

            display: -webkit-box;

            display: -ms-flexbox;

            display: flex;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
        }

            .mx_LegacyCallViewForRoom .mx_LegacyCallViewForRoom_ResizeWrapper:hover .mx_LegacyCallViewForRoom_ResizeHandle::after {
                content: "";
                border-radius: 4px;

                height: 4px;
                width: 100%;
                max-width: 64px;

                background-color: #edf3ff;
            }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021, 2022 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LegacyCallViewHeader {
    height: 44px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -ms-flex-negative: 0;
        flex-shrink: 0;
    width: 100%;
}

    .mx_LegacyCallViewHeader.mx_LegacyCallViewHeader_pip {
        cursor: -webkit-grab;
        cursor: grab;
    }

.mx_LegacyCallViewHeader_text {
    font-size: 1.2rem;
    font-weight: bold;
    vertical-align: middle;
}
    .mx_LegacyCallViewHeader_secondaryCallInfo::before {
        content: "·";
        margin-left: 6px;
        margin-right: 6px;
    }

.mx_LegacyCallViewHeader_controls {
    margin-left: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 5px;
}

.mx_LegacyCallViewHeader_button {
    display: inline-block;
    vertical-align: middle;
    cursor: pointer;
}

    .mx_LegacyCallViewHeader_button svg {
        display: inline-block;
        height: 20px;
        width: 20px;
        vertical-align: middle;
        color: #edf3ff;
    }

.mx_LegacyCallViewHeader_callInfo {
    margin-left: 12px;
    margin-right: 16px;
    overflow: hidden;
}

.mx_LegacyCallViewHeader_roomName {
    font-weight: bold;
    font-size: 12px;
    line-height: normal;
    line-height: initial;
    height: 15px;

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mx_LegacyCallView_secondaryCall_roomName {
    margin-left: 4px;
}

.mx_LegacyCallViewHeader_icon {
    display: inline-block;
    margin-right: 6px;
    height: 16px;
    width: 16px;
    vertical-align: middle;
}

    .mx_LegacyCallViewHeader_icon svg {
        display: inline-block;
        vertical-align: top;

        height: 16px;
        width: 16px;
        color: #edf3ff;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021, 2022 Šimon Brandner <simon.bra.ag@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LegacyCallViewSidebar {
    position: absolute;
    right: 10px;

    width: 20%;
    height: 100%;
    overflow: auto;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
    gap: 12px;
}

    .mx_LegacyCallViewSidebar > .mx_VideoFeed {
        width: 100%;
        border-radius: 4px;
    }

        .mx_LegacyCallViewSidebar > .mx_VideoFeed.mx_VideoFeed_voice {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;

            background-color: #21262c;
        }

    .mx_LegacyCallViewSidebar.mx_LegacyCallViewSidebar_pipMode {
        top: 16px;
        bottom: auto;
        bottom: initial;
        -webkit-box-pack: end;
            -ms-flex-pack: end;
                justify-content: flex-end;
        gap: 4px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021, 2022 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2015, 2016 , 2020, 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_VideoFeed {
    overflow: hidden;
    position: relative;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    border: transparent 2px solid;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    border-radius: 4px;
}

    .mx_VideoFeed.mx_VideoFeed_secondary {
        position: absolute;
        right: 24px;
        bottom: 72px;
        width: 20%;
    }

    .mx_VideoFeed.mx_VideoFeed_voice {
        background-color: #15171b;

        display: -webkit-box;

        display: -ms-flexbox;

        display: flex;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

        .mx_VideoFeed.mx_VideoFeed_voice:not(.mx_VideoFeed_primary) {
            aspect-ratio: 16 / 9;
        }

    .mx_VideoFeed .mx_VideoFeed_video {
        height: 100%;
        width: 100%;
        border-radius: 4px;
        background-color: #000000;
    }

        .mx_VideoFeed .mx_VideoFeed_video.mx_VideoFeed_video_mirror {
            -webkit-transform: scale(-1, 1);
                    transform: scale(-1, 1);
        }

    .mx_VideoFeed .mx_VideoFeed_mic {
        position: absolute;
        left: 6px;
        bottom: 6px;
        z-index: 1;

        width: 24px;
        height: 24px;

        background-color: rgb(0, 0, 0, 0.5); /* Same on both themes */
        border-radius: 100%;
    }

        .mx_VideoFeed .mx_VideoFeed_mic svg {
            width: 16px;
            height: 16px;
            padding: 4px;
            color: white; /* Same on both themes */
        }
}
@layer app-web{
pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#abb2bf;background:#282c34}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword{color:#c678dd}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#98c379}.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#d19a66}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#61aeee}.hljs-built_in,.hljs-class .hljs-title,.hljs-title.class_{color:#e6c07b}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}
}
@layer app-web{
/*dark */
.markdown-body {
  color-scheme: dark;
  /** CSS default easing. Use for hover state changes and micro-interactions. */
  /** Accelerating motion. Use for elements exiting the viewport (moving off-screen). */
  /** Smooth acceleration and deceleration. Use for elements moving or morphing within the viewport. */
  /** Decelerating motion. Use for elements entering the viewport or appearing on screen. */
  /** Constant motion with no acceleration. Use for continuous animations like progress bars or loaders. */
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  margin: 0;
  font-weight: 400;
  color: #f0f6fc;
  background-color: #0d1117;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
  font-size: 16px;
  line-height: 1.5;
  word-wrap: break-word;
}

.markdown-body a {
  text-decoration: underline;
  text-underline-offset: .2rem;
}

.markdown-body .octicon {
  display: inline-block;
  fill: currentColor;
  vertical-align: text-bottom;
}

.markdown-body h1:hover .anchor .octicon-link:before,
.markdown-body h2:hover .anchor .octicon-link:before,
.markdown-body h3:hover .anchor .octicon-link:before,
.markdown-body h4:hover .anchor .octicon-link:before,
.markdown-body h5:hover .anchor .octicon-link:before,
.markdown-body h6:hover .anchor .octicon-link:before {
  width: 16px;
  height: 16px;
  content: ' ';
  display: inline-block;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg>");
  mask-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg>");
}

.markdown-body details,
.markdown-body figcaption,
.markdown-body figure {
  display: block;
}

.markdown-body summary {
  display: list-item;
}

.markdown-body [hidden] {
  display: none !important;
}

.markdown-body a {
  background-color: rgba(0,0,0,0);
  color: #4493f8;
  text-decoration: none;
}

.markdown-body abbr[title] {
  border-bottom: none;
  text-decoration: underline dotted;
}

.markdown-body b,
.markdown-body strong {
  font-weight: 600;
}

.markdown-body dfn {
  font-style: italic;
}

.markdown-body h1 {
  margin: .67em 0;
  font-weight: 600;
  padding-bottom: .3em;
  font-size: 2em;
  border-bottom: 1px solid #3d444db3;
}

.markdown-body mark {
  background-color: #bb800926;
  color: #f0f6fc;
}

.markdown-body small {
  font-size: 90%;
}

.markdown-body sub,
.markdown-body sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

.markdown-body sub {
  bottom: -0.25em;
}

.markdown-body sup {
  top: -0.5em;
}

.markdown-body img {
  border-style: none;
  max-width: 100%;
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
}

.markdown-body code,
.markdown-body kbd,
.markdown-body pre,
.markdown-body samp {
  font-family: monospace;
  font-size: 1em;
}

.markdown-body figure {
  margin: 1em 2.5rem;
}

.markdown-body hr {
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  overflow: hidden;
  background: rgba(0,0,0,0);
  border-bottom: 1px solid #3d444db3;
  height: .25em;
  padding: 0;
  margin: 1.5rem 0;
  background-color: #3d444d;
  border: 0;
}

.markdown-body input {
  font: inherit;
  margin: 0;
  overflow: visible;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

.markdown-body [type=button],
.markdown-body [type=reset],
.markdown-body [type=submit] {
  -webkit-appearance: button;
  -moz-appearance: button;
       appearance: button;
}

.markdown-body [type=checkbox],
.markdown-body [type=radio] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 0;
}

.markdown-body [type=number]::-webkit-inner-spin-button,
.markdown-body [type=number]::-webkit-outer-spin-button {
  height: auto;
}

.markdown-body [type=search]::-webkit-search-cancel-button,
.markdown-body [type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
  appearance: none;
}

.markdown-body ::-webkit-input-placeholder {
  color: inherit;
  opacity: .54;
}

.markdown-body ::-webkit-file-upload-button {
  -webkit-appearance: button;
  appearance: button;
  font: inherit;
}

.markdown-body a:hover {
  text-decoration: underline;
}

.markdown-body ::-webkit-input-placeholder {
  color: #9198a1;
  opacity: 1;
}

.markdown-body ::-moz-placeholder {
  color: #9198a1;
  opacity: 1;
}

.markdown-body :-ms-input-placeholder {
  color: #9198a1;
  opacity: 1;
}

.markdown-body ::-ms-input-placeholder {
  color: #9198a1;
  opacity: 1;
}

.markdown-body ::placeholder {
  color: #9198a1;
  opacity: 1;
}

.markdown-body hr::before {
  display: table;
  content: "";
}

.markdown-body hr::after {
  display: table;
  clear: both;
  content: "";
}

.markdown-body table {
  border-spacing: 0;
  border-collapse: collapse;
  display: block;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  max-width: 100%;
  overflow: auto;
  -webkit-font-feature-settings: "tnum";
          font-feature-settings: "tnum";
  font-variant: tabular-nums;
}

.markdown-body td,
.markdown-body th {
  padding: 0;
}

.markdown-body details summary {
  cursor: pointer;
}

.markdown-body a:focus,
.markdown-body [role=button]:focus,
.markdown-body input[type=radio]:focus,
.markdown-body input[type=checkbox]:focus {
  outline: 2px solid var(--borderColor-accent-emphasis);
  outline-offset: -2px;
  -webkit-box-shadow: none;
          box-shadow: none;
}

.markdown-body a:focus:not(:focus-visible),
.markdown-body [role=button]:focus:not(:focus-visible),
.markdown-body input[type=radio]:focus:not(:focus-visible),
.markdown-body input[type=checkbox]:focus:not(:focus-visible) {
  outline: solid 1px rgba(0,0,0,0);
}

.markdown-body a:focus-visible,
.markdown-body [role=button]:focus-visible,
.markdown-body input[type=radio]:focus-visible,
.markdown-body input[type=checkbox]:focus-visible {
  outline: 2px solid var(--borderColor-accent-emphasis);
  outline-offset: -2px;
  -webkit-box-shadow: none;
          box-shadow: none;
}

.markdown-body a:not([class]):focus,
.markdown-body a:not([class]):focus-visible,
.markdown-body input[type=radio]:focus,
.markdown-body input[type=radio]:focus-visible,
.markdown-body input[type=checkbox]:focus,
.markdown-body input[type=checkbox]:focus-visible {
  outline-offset: 0;
}

.markdown-body kbd {
  display: inline-block;
  padding: 0.25rem;
  font: 11px ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;
  line-height: 10px;
  color: #f0f6fc;
  vertical-align: middle;
  background-color: #151b23;
  border: solid 1px var(--borderColor-muted);
  border-bottom-color: var(--borderColor-muted);
  border-radius: 6px;
  -webkit-box-shadow: inset 0 -1px 0 var(--borderColor-muted);
          box-shadow: inset 0 -1px 0 var(--borderColor-muted);
}

.markdown-body h1,
.markdown-body h2,
.markdown-body h3,
.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
  margin-top: 1.5rem;
  margin-bottom: 1rem;
  font-weight: 600;
  line-height: 1.25;
}

.markdown-body h2 {
  font-weight: 600;
  padding-bottom: .3em;
  font-size: 1.5em;
  border-bottom: 1px solid #3d444db3;
}

.markdown-body h3 {
  font-weight: 600;
  font-size: 1.25em;
}

.markdown-body h4 {
  font-weight: 600;
  font-size: 1em;
}

.markdown-body h5 {
  font-weight: 600;
  font-size: .875em;
}

.markdown-body h6 {
  font-weight: 600;
  font-size: .85em;
  color: #9198a1;
}

.markdown-body p {
  margin-top: 0;
  margin-bottom: 10px;
}

.markdown-body blockquote {
  margin: 0;
  padding: 0 1em;
  color: #9198a1;
  border-left: .25em solid #3d444d;
}

.markdown-body ul,
.markdown-body ol {
  margin-top: 0;
  margin-bottom: 0;
  padding-left: 2em;
}

.markdown-body ol ol,
.markdown-body ul ol {
  list-style-type: lower-roman;
}

.markdown-body ul ul ol,
.markdown-body ul ol ol,
.markdown-body ol ul ol,
.markdown-body ol ol ol {
  list-style-type: lower-alpha;
}

.markdown-body dd {
  margin-left: 0;
}

.markdown-body tt,
.markdown-body code,
.markdown-body samp {
  font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;
  font-size: 12px;
}

.markdown-body pre {
  margin-top: 0;
  margin-bottom: 0;
  font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;
  font-size: 12px;
  word-wrap: normal;
}

.markdown-body .octicon {
  display: inline-block;
  overflow: visible !important;
  vertical-align: text-bottom;
  fill: currentColor;
}

.markdown-body input::-webkit-outer-spin-button,
.markdown-body input::-webkit-inner-spin-button {
  margin: 0;
  -webkit-appearance: none;
          appearance: none;
}

.markdown-body .mr-2 {
  margin-right: 0.5rem !important;
}

.markdown-body::before {
  display: table;
  content: "";
}

.markdown-body::after {
  display: table;
  clear: both;
  content: "";
}

.markdown-body>*:first-child {
  margin-top: 0 !important;
}

.markdown-body>*:last-child {
  margin-bottom: 0 !important;
}

.markdown-body a:not([href]) {
  color: inherit;
  text-decoration: none;
}

.markdown-body .absent {
  color: #f85149;
}

.markdown-body .anchor {
  float: left;
  padding-right: 0.25rem;
  margin-left: -20px;
  line-height: 1;
}

.markdown-body .anchor:focus {
  outline: none;
}

.markdown-body p,
.markdown-body blockquote,
.markdown-body ul,
.markdown-body ol,
.markdown-body dl,
.markdown-body table,
.markdown-body pre,
.markdown-body details {
  margin-top: 0;
  margin-bottom: 1rem;
}

.markdown-body blockquote>:first-child {
  margin-top: 0;
}

.markdown-body blockquote>:last-child {
  margin-bottom: 0;
}

.markdown-body h1 .octicon-link,
.markdown-body h2 .octicon-link,
.markdown-body h3 .octicon-link,
.markdown-body h4 .octicon-link,
.markdown-body h5 .octicon-link,
.markdown-body h6 .octicon-link {
  color: #f0f6fc;
  vertical-align: middle;
  visibility: hidden;
}

.markdown-body h1:hover .anchor,
.markdown-body h2:hover .anchor,
.markdown-body h3:hover .anchor,
.markdown-body h4:hover .anchor,
.markdown-body h5:hover .anchor,
.markdown-body h6:hover .anchor {
  text-decoration: none;
}

.markdown-body h1:hover .anchor .octicon-link,
.markdown-body h2:hover .anchor .octicon-link,
.markdown-body h3:hover .anchor .octicon-link,
.markdown-body h4:hover .anchor .octicon-link,
.markdown-body h5:hover .anchor .octicon-link,
.markdown-body h6:hover .anchor .octicon-link {
  visibility: visible;
}

.markdown-body h1 tt,
.markdown-body h1 code,
.markdown-body h2 tt,
.markdown-body h2 code,
.markdown-body h3 tt,
.markdown-body h3 code,
.markdown-body h4 tt,
.markdown-body h4 code,
.markdown-body h5 tt,
.markdown-body h5 code,
.markdown-body h6 tt,
.markdown-body h6 code {
  padding: 0 .2em;
  font-size: inherit;
}

.markdown-body summary h1,
.markdown-body summary h2,
.markdown-body summary h3,
.markdown-body summary h4,
.markdown-body summary h5,
.markdown-body summary h6 {
  display: inline-block;
}

.markdown-body summary h1 .anchor,
.markdown-body summary h2 .anchor,
.markdown-body summary h3 .anchor,
.markdown-body summary h4 .anchor,
.markdown-body summary h5 .anchor,
.markdown-body summary h6 .anchor {
  margin-left: -40px;
}

.markdown-body summary h1,
.markdown-body summary h2 {
  padding-bottom: 0;
  border-bottom: 0;
}

.markdown-body ul.no-list,
.markdown-body ol.no-list {
  padding: 0;
  list-style-type: none;
}

.markdown-body ol[type="a s"] {
  list-style-type: lower-alpha;
}

.markdown-body ol[type="A s"] {
  list-style-type: upper-alpha;
}

.markdown-body ol[type="i s"] {
  list-style-type: lower-roman;
}

.markdown-body ol[type="I s"] {
  list-style-type: upper-roman;
}

.markdown-body ol[type="1"] {
  list-style-type: decimal;
}

.markdown-body div>ol:not([type]) {
  list-style-type: decimal;
}

.markdown-body ul ul,
.markdown-body ul ol,
.markdown-body ol ol,
.markdown-body ol ul {
  margin-top: 0;
  margin-bottom: 0;
}

.markdown-body li>p {
  margin-top: 1rem;
}

.markdown-body li+li {
  margin-top: .25em;
}

.markdown-body dl {
  padding: 0;
}

.markdown-body dl dt {
  padding: 0;
  margin-top: 1rem;
  font-size: 1em;
  font-style: italic;
  font-weight: 600;
}

.markdown-body dl dd {
  padding: 0 1rem;
  margin-bottom: 1rem;
}

.markdown-body table th {
  font-weight: 600;
}

.markdown-body table th,
.markdown-body table td {
  padding: 6px 13px;
  border: 1px solid #3d444d;
}

.markdown-body table td>:last-child {
  margin-bottom: 0;
}

.markdown-body table tr {
  background-color: #0d1117;
  border-top: 1px solid #3d444db3;
}

.markdown-body table tr:nth-child(2n) {
  background-color: #151b23;
}

.markdown-body table img {
  background-color: rgba(0,0,0,0);
}

.markdown-body img[align=right] {
  padding-left: 20px;
}

.markdown-body img[align=left] {
  padding-right: 20px;
}

.markdown-body .emoji {
  max-width: none;
  vertical-align: text-top;
  background-color: rgba(0,0,0,0);
}

.markdown-body span.frame {
  display: block;
  overflow: hidden;
}

.markdown-body span.frame>span {
  display: block;
  float: left;
  width: auto;
  padding: 7px;
  margin: 13px 0 0;
  overflow: hidden;
  border: 1px solid #3d444d;
}

.markdown-body span.frame span img {
  display: block;
  float: left;
}

.markdown-body span.frame span span {
  display: block;
  padding: 5px 0 0;
  clear: both;
  color: #f0f6fc;
}

.markdown-body span.align-center {
  display: block;
  overflow: hidden;
  clear: both;
}

.markdown-body span.align-center>span {
  display: block;
  margin: 13px auto 0;
  overflow: hidden;
  text-align: center;
}

.markdown-body span.align-center span img {
  margin: 0 auto;
  text-align: center;
}

.markdown-body span.align-right {
  display: block;
  overflow: hidden;
  clear: both;
}

.markdown-body span.align-right>span {
  display: block;
  margin: 13px 0 0;
  overflow: hidden;
  text-align: right;
}

.markdown-body span.align-right span img {
  margin: 0;
  text-align: right;
}

.markdown-body span.float-left {
  display: block;
  float: left;
  margin-right: 13px;
  overflow: hidden;
}

.markdown-body span.float-left span {
  margin: 13px 0 0;
}

.markdown-body span.float-right {
  display: block;
  float: right;
  margin-left: 13px;
  overflow: hidden;
}

.markdown-body span.float-right>span {
  display: block;
  margin: 13px auto 0;
  overflow: hidden;
  text-align: right;
}

.markdown-body code,
.markdown-body tt {
  padding: .2em .4em;
  margin: 0;
  font-size: 85%;
  white-space: break-spaces;
  background-color: #656c7633;
  border-radius: 6px;
}

.markdown-body code br,
.markdown-body tt br {
  display: none;
}

.markdown-body del code {
  text-decoration: inherit;
}

.markdown-body samp {
  font-size: 85%;
}

.markdown-body pre code {
  font-size: 100%;
}

.markdown-body pre>code {
  padding: 0;
  margin: 0;
  word-break: normal;
  white-space: pre;
  background: rgba(0,0,0,0);
  border: 0;
}

.markdown-body .highlight {
  margin-bottom: 1rem;
}

.markdown-body .highlight pre {
  margin-bottom: 0;
  word-break: normal;
}

.markdown-body .highlight pre,
.markdown-body pre {
  padding: 1rem;
  overflow: auto;
  font-size: 85%;
  line-height: 1.45;
  color: #f0f6fc;
  background-color: #151b23;
  border-radius: 6px;
}

.markdown-body pre code,
.markdown-body pre tt {
  display: inline;
  padding: 0;
  margin: 0;
  overflow: visible;
  line-height: inherit;
  word-wrap: normal;
  background-color: rgba(0,0,0,0);
  border: 0;
}

.markdown-body .csv-data td,
.markdown-body .csv-data th {
  padding: 5px;
  overflow: hidden;
  font-size: 12px;
  line-height: 1;
  text-align: left;
  white-space: nowrap;
}

.markdown-body .csv-data .blob-num {
  padding: 10px 0.5rem 9px;
  text-align: right;
  background: #0d1117;
  border: 0;
}

.markdown-body .csv-data tr {
  border-top: 0;
}

.markdown-body .csv-data th {
  font-weight: 600;
  background: #151b23;
  border-top: 0;
}

.markdown-body [data-footnote-ref]::before {
  content: "[";
}

.markdown-body [data-footnote-ref]::after {
  content: "]";
}

.markdown-body .footnotes {
  font-size: 12px;
  color: #9198a1;
  border-top: 1px solid #3d444d;
}

.markdown-body .footnotes ol {
  padding-left: 1rem;
}

.markdown-body .footnotes ol ul {
  display: inline-block;
  padding-left: 1rem;
  margin-top: 1rem;
}

.markdown-body .footnotes li {
  position: relative;
}

.markdown-body .footnotes li:target::before {
  position: absolute;
  top: calc(0.5rem*-1);
  right: calc(0.5rem*-1);
  bottom: calc(0.5rem*-1);
  left: calc(1.5rem*-1);
  pointer-events: none;
  content: "";
  border: 2px solid #1f6feb;
  border-radius: 6px;
}

.markdown-body .footnotes li:target {
  color: #f0f6fc;
}

.markdown-body .footnotes .data-footnote-backref g-emoji {
  font-family: monospace;
}

.markdown-body .pl-c {
  color: #9198a1;
}

.markdown-body .pl-c1,
.markdown-body .pl-s .pl-v {
  color: #79c0ff;
}

.markdown-body .pl-e,
.markdown-body .pl-en {
  color: #d2a8ff;
}

.markdown-body .pl-smi,
.markdown-body .pl-s .pl-s1 {
  color: #f0f6fc;
}

.markdown-body .pl-ent {
  color: #7ee787;
}

.markdown-body .pl-k {
  color: #ff7b72;
}

.markdown-body .pl-s,
.markdown-body .pl-pds,
.markdown-body .pl-s .pl-pse .pl-s1,
.markdown-body .pl-sr,
.markdown-body .pl-sr .pl-cce,
.markdown-body .pl-sr .pl-sre,
.markdown-body .pl-sr .pl-sra {
  color: #a5d6ff;
}

.markdown-body .pl-v,
.markdown-body .pl-smw {
  color: #ffa657;
}

.markdown-body .pl-bu {
  color: #f85149;
}

.markdown-body .pl-ii {
  color: var(--fgColor-danger);
  background-color: var(--bgColor-danger-muted);
}

.markdown-body .pl-c2 {
  color: #f0f6fc;
  background-color: #b62324;
}

.markdown-body .pl-sr .pl-cce {
  font-weight: bold;
  color: #7ee787;
}

.markdown-body .pl-ml {
  color: #f2cc60;
}

.markdown-body .pl-mh,
.markdown-body .pl-mh .pl-en,
.markdown-body .pl-ms {
  font-weight: bold;
  color: #1f6feb;
}

.markdown-body .pl-mi {
  font-style: italic;
  color: #f0f6fc;
}

.markdown-body .pl-mb {
  font-weight: bold;
  color: #f0f6fc;
}

.markdown-body .pl-md {
  color: #ffdcd7;
  background-color: #67060c;
}

.markdown-body .pl-mi1 {
  color: #aff5b4;
  background-color: #033a16;
}

.markdown-body .pl-mc {
  color: #ffdfb6;
  background-color: #5a1e02;
}

.markdown-body .pl-mi2 {
  color: #f0f6fc;
  background-color: #1158c7;
}

.markdown-body .pl-mdr {
  font-weight: bold;
  color: #d2a8ff;
}

.markdown-body .pl-ba {
  color: #9198a1;
}

.markdown-body .pl-sg {
  color: #3d444d;
}

.markdown-body .pl-corl {
  text-decoration: underline;
  color: #a5d6ff;
}

.markdown-body [role=button]:focus:not(:focus-visible),
.markdown-body [role=tabpanel][tabindex="0"]:focus:not(:focus-visible),
.markdown-body button:focus:not(:focus-visible),
.markdown-body summary:focus:not(:focus-visible),
.markdown-body a:focus:not(:focus-visible) {
  outline: none;
  -webkit-box-shadow: none;
          box-shadow: none;
}

.markdown-body [tabindex="0"]:focus:not(:focus-visible),
.markdown-body details-dialog:focus:not(:focus-visible) {
  outline: none;
}

.markdown-body g-emoji {
  display: inline-block;
  min-width: 1ch;
  font-family: "Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
  font-size: 1em;
  font-style: normal !important;
  font-weight: 400;
  line-height: 1;
  vertical-align: -0.075em;
}

.markdown-body g-emoji img {
  width: 1em;
  height: 1em;
}

.markdown-body a:has(>p,>div,>pre,>blockquote) {
  display: block;
}

.markdown-body a:has(>p,>div,>pre,>blockquote):not(:has(.snippet-clipboard-content,>pre)) {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}

.markdown-body a:has(>p,>div,>pre,>blockquote):has(.snippet-clipboard-content,>pre):focus-visible {
  outline: 2px solid var(--borderColor-accent-emphasis);
  outline-offset: 2px;
}

.markdown-body .task-list-item {
  list-style-type: none;
}

.markdown-body .task-list-item label {
  font-weight: 400;
}

.markdown-body .task-list-item.enabled label {
  cursor: pointer;
}

.markdown-body .task-list-item+.task-list-item {
  margin-top: 0.25rem;
}

.markdown-body .task-list-item .handle {
  display: none;
}

.markdown-body .task-list-item-checkbox {
  margin: 0 .2em .25em -1.4em;
  vertical-align: middle;
}

.markdown-body ul:dir(rtl) .task-list-item-checkbox {
  margin: 0 -1.6em .25em .2em;
}

.markdown-body ol:dir(rtl) .task-list-item-checkbox {
  margin: 0 -1.6em .25em .2em;
}

.markdown-body .contains-task-list:hover .task-list-item-convert-container,
.markdown-body .contains-task-list:focus-within .task-list-item-convert-container {
  display: block;
  width: auto;
  height: 24px;
  overflow: visible;
  clip-path: none;
}

.markdown-body ::-webkit-calendar-picker-indicator {
  -webkit-filter: invert(50%);
          filter: invert(50%);
}

.markdown-body .markdown-alert {
  padding: 0.5rem 1rem;
  margin-bottom: 1rem;
  color: inherit;
  border-left: .25em solid #3d444d;
}

.markdown-body .markdown-alert>:first-child {
  margin-top: 0;
}

.markdown-body .markdown-alert>:last-child {
  margin-bottom: 0;
}

.markdown-body .markdown-alert .markdown-alert-title {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  font-weight: 500;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  line-height: 1;
}

.markdown-body .markdown-alert.markdown-alert-note {
  border-left-color: #1f6feb;
}

.markdown-body .markdown-alert.markdown-alert-note .markdown-alert-title {
  color: #4493f8;
}

.markdown-body .markdown-alert.markdown-alert-important {
  border-left-color: #8957e5;
}

.markdown-body .markdown-alert.markdown-alert-important .markdown-alert-title {
  color: #ab7df8;
}

.markdown-body .markdown-alert.markdown-alert-warning {
  border-left-color: #9e6a03;
}

.markdown-body .markdown-alert.markdown-alert-warning .markdown-alert-title {
  color: #d29922;
}

.markdown-body .markdown-alert.markdown-alert-tip {
  border-left-color: #238636;
}

.markdown-body .markdown-alert.markdown-alert-tip .markdown-alert-title {
  color: #3fb950;
}

.markdown-body .markdown-alert.markdown-alert-caution {
  border-left-color: #da3633;
}

.markdown-body .markdown-alert.markdown-alert-caution .markdown-alert-title {
  color: #f85149;
}

.markdown-body>*:first-child>.heading-element:first-child {
  margin-top: 0 !important;
}

.markdown-body .highlight pre:has(+.zeroclipboard-container) {
  min-height: 52px;
}
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlcy82YWM2OGE2ZDI5ODQyYTAwZWUzYS90aGVtZS1sZWdhY3ktZGFyay5jc3MiLCJtYXBwaW5ncyI6Ijs7O0FBQUEsZ0VBQWdFO0FDQWhFOztBQUFBOzs7Ozs7Q0FNQzs7QUFFRDs7Ozs7O0VBTUU7O0FBRUY7Ozs7Ozs7RUFPRSxFQUtxQixpREFBaUQsRUFFakQsaURBQWlELEVBRWpELGlEQUFpRCxFQUVqRCxpREFBaUQsRUFFbkQsb0RBQW9ELEVBRXJELG9EQUFvRCxFQUduRCxvREFBb0QsRUFFdkQsb0RBQW9EO0FBTXRFO0FDakRBOztBQUFBOzs7Ozs7Ozs7Ozs7RUFZRTs7QUFFRiw2RUFBNkU7QUFDN0UsK0JBQStCO0FBd0IvQjtBQ3ZDQTs7QUFBQTtFQUNFOztBQUVGLGlCQUFpQjtBQUNqQjtJQUNJLHNCQUFzQjtJQUN0QixnQkFBZ0I7SUFDaEIsNERBQWdGO0FBQ3BGO0FBQ0EsNkhBQTZIO0FBQzdIO0lBQ0ksc0JBQXNCO0lBQ3RCLGdCQUFnQjtJQUNoQiw0REFBZ0Y7QUFDcEY7QUFDQTtJQUNJLHNCQUFzQjtJQUN0QixnQkFBZ0I7SUFDaEIsNERBQWdGO0FBQ3BGO0FBQ0E7QURwQkE7QUFrQkEsaUVBQWlFO0FBQ2pFO0VBQ0U7QUFDRjtJQUNJLHFCQUFxQjtJQUNyQixrQkFBa0I7SUFDbEIsZ0JBQWdCO0lBQ2hCLCtEQUFtRTtBQUN2RTtBQUNBO0lBQ0kscUJBQXFCO0lBQ3JCLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIsK0RBQW9FO0FBQ3hFO0FBQ0E7SUFDSSxxQkFBcUI7SUFDckIsa0JBQWtCO0lBQ2xCLGdCQUFnQjtJQUNoQiwrREFBZ0U7QUFDcEU7QUFDQTtBRXZDQTs7QUFBQTtJQUNJLDBFQUEwRTtJQUMxRSx1QkFBdUI7QUFDM0I7O0FBRUE7OztvRUFHb0U7QUFDcEU7OzZFQUU2RTs7QUFTN0Usb0JBQW9CO0FBQ3BCLDBDQUEwQzs7QUFJMUMsK0NBQStDLEVBS3JCLG9EQUFvRDs7QUFFOUUsNkJBQTZCOztBQUc3QixvQ0FBb0M7O0FB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RUFDRSwyQkFBMkI7RUFDM0Isc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCOztBQUVBOztFQUVFLGNBQWM7RUFDZCxXQUFXO0VBQ1gsWUFBWTtFQUNaLGlCQUFpQjtFQUNqQixlQUFlO0FBQ2pCOztBQUVBO0VBQ0UsMkJBQW1CO1VBQW5CLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsY0FBYztFQUNkLGdDQUFnQztBQUNsQzs7QUFFQTtFQUNFLGFBQWE7QUFDZjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLG9CQUFhO0VBQWIsb0JBQWE7RUFBYixhQUFhO0VBQ2IsZ0JBQWdCO0VBQ2hCLHlCQUFtQjtNQUFuQixzQkFBbUI7VUFBbkIsbUJBQW1CO0VBQ25CLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSwwQkFBMEI7QUFDNUI7O0FBRUE7RUFDRSxjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsMEJBQTBCO0FBQzVCOztBQUVBO0VBQ0UsY0FBYztBQUNoQjs7QUFFQTtFQUNFLDBCQUEwQjtBQUM1Qjs7QUFFQTtFQUNFLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSwwQkFBMEI7QUFDNUI7O0FBRUE7RUFDRSxjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsMEJBQTBCO0FBQzVCOztBQUVBO0VBQ0UsY0FBYztBQUNoQjs7QUFFQTtFQUNFLHdCQUF3QjtBQUMxQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvdGhlbWVzL2xlZ2FjeS1kYXJrL2Nzcy9sZWdhY3ktZGFyay5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9fZm9udC1zaXplcy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL3RoZW1lcy9sZWdhY3ktbGlnaHQvY3NzL19mb250cy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL3RoZW1lcy9saWdodC9jc3MvX2ZvbnRzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvdGhlbWVzL2xlZ2FjeS1saWdodC9jc3MvX2xlZ2FjeS1saWdodC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL3RoZW1lcy9sZWdhY3ktZGFyay9jc3MvX2xlZ2FjeS1kYXJrLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL19jb21wb25lbnRzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL19hbmltYXRpb25zLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL19jb21tb24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi88bm8gc291cmNlPiIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvX21ldG1ldC1icmFuZC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fQmVhY29uTGlzdEl0ZW0ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9iZWFjb24vX0JlYWNvblN0YXR1cy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fQmVhY29uU3RhdHVzVG9vbHRpcC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fQmVhY29uVmlld0RpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fRGlhbG9nT3duQmVhY29uU3RhdHVzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19EaWFsb2dTaWRlYmFyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19MZWZ0UGFuZWxMaXZlU2hhcmVXYXJuaW5nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19MaXZlVGltZVJlbWFpbmluZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fT3duQmVhY29uU3RhdHVzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19TaGFyZUxhdGVzdExvY2F0aW9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19TdHlsZWRMaXZlQmVhY29uSWNvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2NvbnRleHRfbWVudXMvX0tlYmFiQ29udGV4dE1lbnUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9kaWFsb2dzL3BvbGxzL19Qb2xsRGV0YWlsSGVhZGVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvZGlhbG9ncy9wb2xscy9fUG9sbExpc3RJdGVtLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvZGlhbG9ncy9wb2xscy9fUG9sbExpc3RJdGVtRW5kZWQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9lbGVtZW50cy9fQXBwUGVybWlzc2lvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2VsZW1lbnRzL19BcHBXYXJuaW5nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvZWxlbWVudHMvX0ZpbHRlckRyb3Bkb3duLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvZWxlbWVudHMvX0ZpbHRlclRhYkdyb3VwLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvZWxlbWVudHMvX0xlYXJuTW9yZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19FbmFibGVMaXZlU2hhcmUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fTGl2ZUR1cmF0aW9uRHJvcGRvd24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fTG9jYXRpb25TaGFyZU1lbnUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fTWFwRXJyb3IucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fTWFwRmFsbGJhY2sucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fTWFya2VyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvbG9jYXRpb24vX1NoYXJlRGlhbG9nQnV0dG9ucy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19TaGFyZVR5cGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fWm9vbUJ1dHRvbnMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9tZXNzYWdlcy9fTUJlYWNvbkJvZHkucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9tZXNzYWdlcy9zaGFyZWQvX01lZGlhUHJvY2Vzc2luZ0Vycm9yLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvcG9sbHMvX1BvbGxPcHRpb24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9fQWRkUmVtb3ZlVGhyZWVwaWRzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fQ3VycmVudERldmljZVNlY3Rpb24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19EZXZpY2VEZXRhaWxIZWFkaW5nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fRGV2aWNlRGV0YWlscy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX0RldmljZUV4cGFuZERldGFpbHNCdXR0b24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19EZXZpY2VTZWN1cml0eUNhcmQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19EZXZpY2VUaWxlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fRGV2aWNlVHlwZUljb24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19GaWx0ZXJlZERldmljZUxpc3QucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19GaWx0ZXJlZERldmljZUxpc3RIZWFkZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19TZWN1cml0eVJlY29tbWVuZGF0aW9ucy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX1NlbGVjdGFibGVEZXZpY2VUaWxlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZW5jcnlwdGlvbi9fS2V5U3RvcmFnZVBhbmVsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3Mvc2hhcmVkL19TZXR0aW5nc1N1YnNlY3Rpb24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9zaGFyZWQvX1NldHRpbmdzU3Vic2VjdGlvbkhlYWRpbmcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9zcGFjZXMvX1F1aWNrVGhlbWVTd2l0Y2hlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL3R5cG9ncmFwaHkvX0NhcHRpb24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG91bmQvX0ljb24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG91bmQvX1N1Y2Nlc3NEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fQXV0b0hpZGVTY3JvbGxiYXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fQXV0b2NvbXBsZXRlSW5wdXQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fQ29tcGF0aWJpbGl0eVBhZ2UucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fQ29udGV4dHVhbE1lbnUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fRXJyb3JNZXNzYWdlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX0ZpbGVEcm9wVGFyZ2V0LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX0ZpbGVQYW5lbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19HZW5lcmljRHJvcGRvd25NZW51LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX0hvbWVQYWdlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX0xhcmdlTG9hZGVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX0xlZnRQYW5lbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19NYWluU3BsaXQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fTWF0cml4Q2hhdC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19Ob25VcmdlbnRUb2FzdENvbnRhaW5lci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19QaWN0dXJlSW5QaWN0dXJlRHJhZ2dlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19RdWlja1NldHRpbmdzQnV0dG9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX1JpZ2h0UGFuZWwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fUm9vbVZpZXcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fU2VhcmNoQm94LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX1NwYWNlSGllcmFyY2h5LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX1NwYWNlUGFuZWwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fU3BhY2VQaWxsQnV0dG9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX1NwYWNlUm9vbVZpZXcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fU3BsYXNoUGFnZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19UYWJiZWRWaWV3LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX1RocmVhZHNBY3Rpdml0eUNlbnRyZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19Ub2FzdENvbnRhaW5lci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19VcGxvYWRCYXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fVmlld1NvdXJjZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL2F1dGgvX0NvbXBsZXRlU2VjdXJpdHkucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9hdXRoL19Db25maXJtU2Vzc2lvbkxvY2tUaGVmdFZpZXcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9hdXRoL19Mb2dpbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL2F1dGgvX0xvZ2luU3BsYXNoVmlldy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL2F1dGgvX01vYmlsZVJlZ2lzdHJhdGlvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL2F1dGgvX1JlZ2lzdHJhdGlvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL2F1dGgvX1Nlc3Npb25Mb2NrU3RvbGVuVmlldy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL2F1dGgvX1NldHVwRW5jcnlwdGlvbkJvZHkucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9ndWVzdC9fR3Vlc3RPbmJvYXJkaW5nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F1ZGlvX21lc3NhZ2VzL19QbGF5YmFja0NvbnRhaW5lci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdWRpb19tZXNzYWdlcy9fU2Vla0Jhci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdWRpb19tZXNzYWdlcy9fV2F2ZWZvcm0ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXV0aC9fQXV0aEJvZHkucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXV0aC9fQXV0aEZvb3Rlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdXRoL19BdXRoSGVhZGVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F1dGgvX0F1dGhIZWFkZXJMb2dvLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F1dGgvX0F1dGhQYWdlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F1dGgvX0NvbXBsZXRlU2VjdXJpdHlCb2R5LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F1dGgvX0NvdW50cnlEcm9wZG93bi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdXRoL19EZWZhdWx0V2VsY29tZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdXRoL19JbnRlcmFjdGl2ZUF1dGhFbnRyeUNvbXBvbmVudHMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXV0aC9fTGFuZ3VhZ2VTZWxlY3Rvci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdXRoL19Mb2dpbldpdGhRUi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdXRoL19QYXNzcGhyYXNlRmllbGQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXV0aC9fV2VsY29tZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdmF0YXJzL19CYXNlQXZhdGFyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F2YXRhcnMvX0RlY29yYXRlZFJvb21BdmF0YXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXZhdGFycy9fUm9vbUF2YXRhclZpZXcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXZhdGFycy9fV2lkZ2V0QXZhdGFyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F2YXRhcnMvX1dpdGhQcmVzZW5jZUluZGljYXRvci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9iZXRhL19CZXRhQ2FyZC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9jb250ZXh0X21lbnVzL19EZXZpY2VDb250ZXh0TWVudS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9jb250ZXh0X21lbnVzL19JY29uaXplZENvbnRleHRNZW51LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2NvbnRleHRfbWVudXMvX0xlZ2FjeUNhbGxDb250ZXh0TWVudS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19BZGRFeGlzdGluZ1RvU3BhY2VEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fQW5hbHl0aWNzTGVhcm5Nb3JlRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0J1Z1JlcG9ydERpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19DaGFuZ2Vsb2dEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fQ29tcG91bmREaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fQ29uZmlybUtleVN0b3JhZ2VPZmZEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fQ29uZmlybVNwYWNlVXNlckFjdGlvbkRpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19Db25maXJtVXNlckFjdGlvbkRpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19DcmVhdGVSb29tRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0NyZWF0ZVNlY3Rpb25EaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fQ3JlYXRlU3Vic3BhY2VEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fQ3J5cHRvLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0RlYWN0aXZhdGVBY2NvdW50RGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0RldnRvb2xzRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0V4aXRSb29tQ29uZmlybURpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19FeHBvcnREaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fRmVlZGJhY2tEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fRm9yd2FyZERpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19HZW5lcmljRmVhdHVyZUZlZWRiYWNrRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0luY29taW5nU2FzRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0ludml0ZURpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19JbnZpdGVQcm9ncmVzc0JvZHkucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fSm9pblJ1bGVEcm9wZG93bi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19MZWF2ZVNwYWNlRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0xvY2F0aW9uVmlld0RpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19Mb2dvdXREaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fTWFuYWdlUmVzdHJpY3RlZEpvaW5SdWxlRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX01lc3NhZ2VFZGl0SGlzdG9yeURpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19Nb2RhbFdpZGdldERpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19Qb2xsQ3JlYXRlRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1JlZ2lzdHJhdGlvbkVtYWlsUHJvbXB0RGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1JlbW92ZVNlY3Rpb25EaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fUmVwb3J0Um9vbURpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19Sb29tU2V0dGluZ3NEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fUm9vbVNldHRpbmdzRGlhbG9nQnJpZGdlcy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19Sb29tVXBncmFkZURpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19Sb29tVXBncmFkZVdhcm5pbmdEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fU2VydmVyT2ZmbGluZURpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19TZXJ2ZXJQaWNrZXJEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fU2V0RW1haWxEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fU2V0dGluZ3NEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fU2hhcmVEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fU2xhc2hDb21tYW5kSGVscERpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19TcGFjZVByZWZlcmVuY2VzRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1NwYWNlU2V0dGluZ3NEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fU3BvdGxpZ2h0RGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1Rlcm1zRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1VucGluQWxsRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1VwbG9hZENvbmZpcm1EaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fVXNlclNldHRpbmdzRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1ZlcmlmeUVNYWlsRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1dpZGdldENhcGFiaWxpdGllc1Byb21wdERpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL2ludml0ZS9fVW5rbm93bklkZW50aXR5VXNlcnNXYXJuaW5nRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3Mvc2VjdXJpdHkvX0FjY2Vzc1NlY3JldFN0b3JhZ2VEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9zZWN1cml0eS9fQ3JlYXRlQ3Jvc3NTaWduaW5nRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3Mvc2VjdXJpdHkvX0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9zZWN1cml0eS9fS2V5QmFja3VwRmFpbGVkRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3Mvc2VjdXJpdHkvX1Jlc3RvcmVLZXlCYWNrdXBEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlyZWN0b3J5L19OZXR3b3JrRHJvcGRvd24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX0FjY2Vzc2libGVCdXR0b24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX0NvcHlhYmxlVGV4dC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fRGVza3RvcENhcHR1cmVyU291cmNlUGlja2VyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19EaWFsUGFkQmFja3NwYWNlQnV0dG9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19Ecm9wZG93bi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fRWRpdGFibGVJdGVtTGlzdC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fRXJyb3JCb3VuZGFyeS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fRXh0ZXJuYWxMaW5rLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19GYWNlUGlsZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fRmllbGQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19JbWFnZVZpZXcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX0luZm9Ub29sdGlwLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19JbmxpbmVTcGlubmVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19JbnRlcmFjdGl2ZVRvb2x0aXAucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX0ludml0ZVJlYXNvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fTGFiZWxsZWRDaGVja2JveC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fTGFuZ3VhZ2VEcm9wZG93bi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fTWluaUF2YXRhclVwbG9hZGVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19QaWxsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19Qb3dlclNlbGVjdG9yLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19Qcm9ncmVzc0Jhci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fUVJDb2RlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19SZXBseUNoYWluLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19SZXNpemVIYW5kbGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1JpY2hUZXh0LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19Sb29tQWxpYXNGaWVsZC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fU1NPQnV0dG9ucy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fU2VhcmNoV2FybmluZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fU2VydmVyUGlja2VyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19TZXR0aW5nc0Ryb3Bkb3duLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19TZXR0aW5nc0ZsYWcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1NwaW5uZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1N0eWxlZFJhZGlvQnV0dG9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19TeW50YXhIaWdobGlnaHQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1RhZ0NvbXBvc2VyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19UZXh0V2l0aFRvb2x0aXAucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1RvZ2dsZVN3aXRjaC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fVmFsaWRhdGlvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9sb2NhdGlvbi9fTG9jYXRpb25QaWNrZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvbWVzc2FnZXMvX0NhbGxFdmVudC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9tZXNzYWdlcy9fQ3JlYXRlRXZlbnQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvbWVzc2FnZXMvX0Rpc2FtYmlndWF0ZWRQcm9maWxlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL21lc3NhZ2VzL19MZWdhY3lDYWxsRXZlbnQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvbWVzc2FnZXMvX01JbWFnZVJlcGx5Qm9keS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9tZXNzYWdlcy9fTUxvY2F0aW9uQm9keS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9tZXNzYWdlcy9fTVBvbGxCb2R5LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL21lc3NhZ2VzL19NU3RpY2tlckJvZHkucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvbWVzc2FnZXMvX01lc3NhZ2VBY3Rpb25CYXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvbWVzc2FnZXMvX1RleHR1YWxFdmVudC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9tZXNzYWdlcy9fVGhyZWFkQWN0aW9uQmFyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL21lc3NhZ2VzL19jb21tb25fQ3J5cHRvRXZlbnQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvcG9sbHMvcG9sbEhpc3RvcnkvX1BvbGxIaXN0b3J5LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3BvbGxzL3BvbGxIaXN0b3J5L19Qb2xsSGlzdG9yeUxpc3QucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvcmlnaHRfcGFuZWwvX0Jhc2VDYXJkLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3JpZ2h0X3BhbmVsL19FbXB0eVN0YXRlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3JpZ2h0X3BhbmVsL19FbmNyeXB0aW9uSW5mby5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yaWdodF9wYW5lbC9fRXh0ZW5zaW9uc0NhcmQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvcmlnaHRfcGFuZWwvX1Bpbm5lZE1lc3NhZ2VzQ2FyZC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yaWdodF9wYW5lbC9fUm9vbVN1bW1hcnlDYXJkLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3JpZ2h0X3BhbmVsL19UaHJlYWRQYW5lbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yaWdodF9wYW5lbC9fVGltZWxpbmVDYXJkLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3JpZ2h0X3BhbmVsL19Vc2VySW5mby5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yaWdodF9wYW5lbC9fVmVyaWZpY2F0aW9uUGFuZWwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvcmlnaHRfcGFuZWwvX1dpZGdldENhcmQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbV9zZXR0aW5ncy9fQWxpYXNTZXR0aW5ncy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9Sb29tTGlzdFBhbmVsL19Sb29tTGlzdFBhbmVsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19BcHBzRHJhd2VyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19BdXRvY29tcGxldGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX0F1eFBhbmVsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19CYXNpY01lc3NhZ2VDb21wb3Nlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fQ2FsbEd1ZXN0TGlua0J1dHRvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fRTJFSWNvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fRTJFSWNvblZpZXcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX0VkaXRNZXNzYWdlQ29tcG9zZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX0Vtb2ppQnV0dG9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19FdmVudEJ1YmJsZVRpbGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX0V2ZW50VGlsZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fSGlzdG9yeVRpbGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX0lSQ0xheW91dC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fSW52aXRlZEljb25WaWV3LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19KdW1wVG9Cb3R0b21CdXR0b24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX0xpdmVDb250ZW50U3VtbWFyeS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fTWVtYmVyTGlzdEhlYWRlclZpZXcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX01lbWJlckxpc3RWaWV3LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19NZW1iZXJUaWxlVmlldy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fTWVzc2FnZUNvbXBvc2VyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19NZXNzYWdlQ29tcG9zZXJGb3JtYXRCYXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX05ld1Jvb21JbnRyby5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fT3ZlcmZsb3dUaWxlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19QaW5uZWRFdmVudFRpbGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1Bpbm5lZE1lc3NhZ2VCYW5uZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1ByZXNlbmNlSWNvblZpZXcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1ByZXNlbmNlTGFiZWwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1JlYWRSZWNlaXB0R3JvdXAucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1JlcGx5UHJldmlldy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fUmVwbHlUaWxlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19Sb29tSGVhZGVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19Sb29tSW5mb0xpbmUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1Jvb21Lbm9ja3NCYXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1Jvb21QcmV2aWV3QmFyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19Sb29tUHJldmlld0NhcmQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1Jvb21TZWFyY2hBdXhQYW5lbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fUm9vbVVwZ3JhZGVXYXJuaW5nQmFyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19TZW5kTWVzc2FnZUNvbXBvc2VyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19TdGlja2Vycy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fVGhpcmRQYXJ0eU1lbWJlckluZm8ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1RvcFVucmVhZE1lc3NhZ2VzQmFyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19Vc2VySWRlbnRpdHlXYXJuaW5nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19Wb2ljZVJlY29yZENvbXBvc2VyVGlsZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fV2hvSXNUeXBpbmdUaWxlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL3d5c2l3eWdfY29tcG9zZXIvX0VkaXRXeXNpd3lnQ29tcG9zZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvd3lzaXd5Z19jb21wb3Nlci9fU2VuZFd5c2l3eWdDb21wb3Nlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy93eXNpd3lnX2NvbXBvc2VyL2NvbXBvbmVudHMvX0VkaXRvci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy93eXNpd3lnX2NvbXBvc2VyL2NvbXBvbmVudHMvX0Zvcm1hdHRpbmdCdXR0b25zLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL3d5c2l3eWdfY29tcG9zZXIvY29tcG9uZW50cy9fTGlua01vZGFsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19BdmF0YXJTZXR0aW5nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19Gb250U2NhbGluZ1BhbmVsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19JbWFnZVNpemVQYW5lbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fSW50ZWdyYXRpb25NYW5hZ2VyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19Kb2luUnVsZVNldHRpbmdzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19LZXlib2FyZFNob3J0Y3V0LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19MYXlvdXRTd2l0Y2hlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fTm90aWZpY2F0aW9uUHVzaGVyU2V0dGluZ3MucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX05vdGlmaWNhdGlvblNldHRpbmdzMi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fTm90aWZpY2F0aW9ucy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fUGhvbmVOdW1iZXJzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19Qb3dlckxldmVsU2VsZWN0b3IucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX1Jvb21Qcm9maWxlU2V0dGluZ3MucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX1NldEludGVncmF0aW9uTWFuYWdlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fU2V0dGluZ3NGaWVsZHNldC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fU2V0dGluZ3NIZWFkZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX1NldHRpbmdzU3ViaGVhZGVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19TcGVsbENoZWNrTGFuZ3VhZ2VzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19UaGVtZUNob2ljZVBhbmVsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19VcGRhdGVDaGVja0J1dHRvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fVXNlclBlcnNvbmFsSW5mb1NldHRpbmdzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19Vc2VyUHJvZmlsZVNldHRpbmdzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL2VuY3J5cHRpb24vX0FkdmFuY2VkUGFuZWwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvZW5jcnlwdGlvbi9fQ2hhbmdlUmVjb3ZlcnlLZXkucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvZW5jcnlwdGlvbi9fRW5jcnlwdGlvbkNhcmQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvZW5jcnlwdGlvbi9fRW5jcnlwdGlvbkNhcmRFbXBoYXNpc2VkQ29udGVudC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9lbmNyeXB0aW9uL19SZWNvdmVyeVBhbmVsT3V0T2ZTeW5jLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL2VuY3J5cHRpb24vX1Jlc2V0SWRlbnRpdHlQYW5lbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy90YWJzL19TZXR0aW5nc0Jhbm5lci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy90YWJzL19TZXR0aW5nc0luZGVudC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy90YWJzL19TZXR0aW5nc1NlY3Rpb24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvdGFicy9fU2V0dGluZ3NUYWIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvdGFicy9yb29tL19Ob3RpZmljYXRpb25TZXR0aW5nc1RhYi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy90YWJzL3Jvb20vX1Blb3BsZVJvb21TZXR0aW5nc1RhYi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy90YWJzL3Jvb20vX1JvbGVzUm9vbVNldHRpbmdzVGFiLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL3RhYnMvcm9vbS9fU2VjdXJpdHlSb29tU2V0dGluZ3NUYWIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvdGFicy91c2VyL19BcHBlYXJhbmNlVXNlclNldHRpbmdzVGFiLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL3RhYnMvdXNlci9fSGVscFVzZXJTZXR0aW5nc1RhYi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy90YWJzL3VzZXIvX0tleWJvYXJkVXNlclNldHRpbmdzVGFiLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL3RhYnMvdXNlci9fTWVkaWFQcmV2aWV3QWNjb3VudFNldHRpbmdzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL3RhYnMvdXNlci9fTWpvbG5pclVzZXJTZXR0aW5nc1RhYi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy90YWJzL3VzZXIvX1ByZWZlcmVuY2VzVXNlclNldHRpbmdzVGFiLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL3RhYnMvdXNlci9fU2VjdXJpdHlVc2VyU2V0dGluZ3NUYWIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvdGFicy91c2VyL19TaWRlYmFyVXNlclNldHRpbmdzVGFiLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NwYWNlcy9fU3BhY2VCYXNpY1NldHRpbmdzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NwYWNlcy9fU3BhY2VDaGlsZHJlblBpY2tlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zcGFjZXMvX1NwYWNlQ3JlYXRlTWVudS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy90ZXJtcy9fSW5saW5lVGVybXNBZ3JlZW1lbnQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvdG9hc3RzL19BbmFseXRpY3NUb2FzdC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy90b2FzdHMvX0luY29taW5nQ2FsbFRvYXN0LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3RvYXN0cy9fSW5jb21pbmdMZWdhY3lDYWxsVG9hc3QucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvdG9hc3RzL19Ob25VcmdlbnRFY2hvRmFpbHVyZVRvYXN0LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3R5cG9ncmFwaHkvX0hlYWRpbmcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvdmVyaWZpY2F0aW9uL19WZXJpZmljYXRpb25TaG93U2FzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3ZvaXAvTGVnYWN5Q2FsbFZpZXcvX0xlZ2FjeUNhbGxWaWV3QnV0dG9ucy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy92b2lwL19DYWxsRHVyYXRpb24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvdm9pcC9fQ2FsbFZpZXcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvdm9pcC9fRGlhbFBhZC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy92b2lwL19EaWFsUGFkQ29udGV4dE1lbnUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvdm9pcC9fRGlhbFBhZE1vZGFsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3ZvaXAvX0xlZ2FjeUNhbGxWaWV3LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3ZvaXAvX0xlZ2FjeUNhbGxWaWV3Rm9yUm9vbS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy92b2lwL19MZWdhY3lDYWxsVmlld0hlYWRlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy92b2lwL19MZWdhY3lDYWxsVmlld1NpZGViYXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvdm9pcC9fVmlkZW9GZWVkLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2hpZ2hsaWdodC5qc0AxMS4xMi4wL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvc3R5bGVzL2F0b20tb25lLWRhcmsubWluLmNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vZ2l0aHViLW1hcmtkb3duLWNzc0A1LjkuMC9ub2RlX21vZHVsZXMvZ2l0aHViLW1hcmtkb3duLWNzcy9naXRodWItbWFya2Rvd24tZGFyay5jc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGxheWVyIGNvbXBvdW5kLXRva2VucywgY29tcG91bmQtd2ViLCBzaGFyZWQtY29tcG9uZW50cywgYXBwLXdlYjtcblxuQGltcG9ydCBcIi4uLy4uLy4uLy4uL3Jlcy9jc3MvX2ZvbnQtc2l6ZXMucGNzc1wiIGxheWVyKGFwcC13ZWIpO1xuQGltcG9ydCBcIi4uLy4uL2xlZ2FjeS1saWdodC9jc3MvX2ZvbnRzLnBjc3NcIiBsYXllcihhcHAtd2ViKTtcbkBpbXBvcnQgXCIuLi8uLi9sZWdhY3ktbGlnaHQvY3NzL19sZWdhY3ktbGlnaHQucGNzc1wiIGxheWVyKGFwcC13ZWIpO1xuQGltcG9ydCBcIl9sZWdhY3ktZGFyay5wY3NzXCIgbGF5ZXIoYXBwLXdlYik7XG5AaW1wb3J0IFwiLi4vLi4vLi4vLi4vcmVzL2Nzcy9fY29tcG9uZW50cy5wY3NzXCIgbGF5ZXIoYXBwLXdlYik7XG5AaW1wb3J0IHVybChcImhpZ2hsaWdodC5qcy9zdHlsZXMvYXRvbS1vbmUtZGFyay5taW4uY3NzXCIpIGxheWVyKGFwcC13ZWIpO1xuQGltcG9ydCB1cmwoXCJnaXRodWItbWFya2Rvd24tY3NzL2dpdGh1Yi1tYXJrZG93bi1kYXJrLmNzc1wiKSBsYXllcihhcHAtd2ViKTtcbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi8qXG4gKiBTQ1NTIHZhcmlhYmxlcyBkZWZpbmluZyBhIHJhbmdlIG9mIGZvbnQgc2l6ZXMuXG4gKlxuICogVGhlc2UgYXJlIGRlZmluZWQgaW4gYHJlbWAgc28gdGhhdCB0aGV5IHNjYWxlIHdpdGggdGhlIGBmb250LXNpemVgIG9mIHRoZSByb290IGVsZW1lbnQgKHdoaWNoIGlzIGFkanVzdGFibGUgdmlhIHRoZVxuICogXCJGb250IHNpemVcIiBzZXR0aW5nKS4gVGhleSBleGlzdCB0byBtYWtlIHRoZSBqb2Igb2YgY29udmVydGluZyBkZXNpZ25zICh3aGljaCB0ZW5kIHRvIGJlIGJhc2VkIGluIHBpeGVscykgaW50byBDU1NcbiAqIGVhc2llci5cbiAqL1xuXG4vKlxuICogVGhlc2UgdmFyaWFibGVzIGFyZSBub3cgKmRlcHJlY2F0ZWQqIGFuZCBzaG91bGQgbm90IGJlIHVzZWQgaW4gbmV3IGNvZGU7IGluc3RlYWQgQ29tcG91bmQgdHlwb2dyYXBoaWMgdG9rZW5zXG4gKiBzaG91bGQgYmUgdXNlZC4gRGlyZWN0IGVxdWl2YWxlbnRzIGZvciB0aGVzZSBvbGQgZm9udCBzaXplIHRva2VucyBhcmUgbGlzdGVkIGJlbG93OyB3aGVyZSBubyBlcXVpdmFsZW50IGV4aXN0cyxcbiAqIHRoYXQgc3VnZ2VzdHMgdGhhdCB0aGUgZGVzaWduIGlzIHVzaW5nIGEgbm9uLXN0YW5kYXJkIGZvbnQgc2l6ZSBhbmQgc2hvdWxkIGJlIHVwZGF0ZWQuXG4gKlxuICogSW4gZmFjdCwgbW9kZXJuIEZpZ21hIGRlc2lnbnMgc2hvdWxkIGFjdHVhbGx5IHVzZSBhIG5hbWVkIFR5cG9ncmFwaHkgc3R5bGUgc3VjaCBhcyBcIldlYi9mb250L2hlYWRpbmcvc20vc2VtaWJvbGRcIixcbiAqIHRyYW5zbGF0ZXMgZGlyZWN0bHkgdG8gYGZvbnQ6IHZhcigtLWNwZC1mb250LWhlYWRpbmctc20tc2VtaWJvbGQpYC5cbiAqL1xuJGZvbnQtMXB4OiAwLjA2MjVyZW07XG4kZm9udC04cHg6IDAuNXJlbTtcbiRmb250LTEwcHg6IDAuNjI1cmVtO1xuJGZvbnQtMTAtNHB4OiAwLjYyNzVyZW07XG4kZm9udC0xMXB4OiAwLjY4NzVyZW07IC8qIENvbXBvdW5kIGVxdWl2YWxlbnQ6IC0tY3BkLWZvbnQtc2l6ZS1ib2R5LXhzICovXG4kZm9udC0xMnB4OiAwLjc1cmVtO1xuJGZvbnQtMTNweDogMC44MTI1cmVtOyAvKiBDb21wb3VuZCBlcXVpdmFsZW50OiAtLWNwZC1mb250LXNpemUtYm9keS1zbSAqL1xuJGZvbnQtMTRweDogMC44NzVyZW07XG4kZm9udC0xNXB4OiAwLjkzNzVyZW07IC8qIENvbXBvdW5kIGVxdWl2YWxlbnQ6IC0tY3BkLWZvbnQtc2l6ZS1ib2R5LW1kICovXG4kZm9udC0xNnB4OiAxcmVtO1xuJGZvbnQtMTdweDogMS4wNjI1cmVtOyAvKiBDb21wb3VuZCBlcXVpdmFsZW50OiAtLWNwZC1mb250LXNpemUtYm9keS1sZyAqL1xuJGZvbnQtMThweDogMS4xMjVyZW07XG4kZm9udC0yMHB4OiAxLjI1cmVtOyAvKiBDb21wb3VuZCBlcXVpdmFsZW50OiAtLWNwZC1mb250LXNpemUtaGVhZGluZy1zbSAqL1xuJGZvbnQtMjJweDogMS4zNzVyZW07XG4kZm9udC0yNHB4OiAxLjVyZW07IC8qIENvbXBvdW5kIGVxdWl2YWxlbnQ6IC0tY3BkLWZvbnQtc2l6ZS1oZWFkaW5nLW1kICovXG4kZm9udC0yNXB4OiAxLjU2MjVyZW07XG4kZm9udC0yNnB4OiAxLjYyNXJlbTtcbiRmb250LTI4cHg6IDEuNzVyZW07IC8qIENvbXBvdW5kIGVxdWl2YWxlbnQ6IC0tY3BkLWZvbnQtc2l6ZS1oZWFkaW5nLWxnICovXG4kZm9udC0zMHB4OiAxLjg3NXJlbTtcbiRmb250LTMycHg6IDJyZW07IC8qIENvbXBvdW5kIGVxdWl2YWxlbnQ6IC0tY3BkLWZvbnQtc2l6ZS1oZWFkaW5nLXhsICovXG4kZm9udC0zNHB4OiAyLjEyNXJlbTtcbiRmb250LTM1cHg6IDIuMTg3NXJlbTtcbiRmb250LTQycHg6IDIuNjI1cmVtO1xuJGZvbnQtNDRweDogMi43NXJlbTtcbiRmb250LTQ4cHg6IDNyZW07XG4iLCIvKlxuICogTnVuaXRvLlxuICogSW5jbHVkZXMgZXh0ZW5kZWQgTGF0aW4gYW5kIFZpZXRuYW1lc2UgY2hhcmFjdGVyIHNldHNcbiAqIEN1cnJlbnQgVVJMcyBhcmUgdGFrZW4gZnJvbVxuICogaHR0cHM6Ly9naXRodWIuY29tL2FsZXhlaXZhL051bml0b0ZvbnQvcmVsZWFzZXMvdGFnL3YzLjUwMFxuICogLi4uaW4gb3JkZXIgdG8gaW5jbHVkZSBjeXJpbGxpYy5cbiAqXG4gKiBQcmV2aW91c2x5LCB0aGV5IHdlcmVcbiAqIGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1OdW5pdG86NDAwLDQwMGksNjAwLDYwMGksNzAwLDcwMGkmc3Vic2V0PWxhdGluLWV4dCx2aWV0bmFtZXNlXG4gKlxuICogV2UgZXhwbGljaXRseSBkbyBub3QgaW5jbHVkZSBOdW5pdG8ncyBpdGFsaWMgdmFyaWFudHMsIGFzIHRoZXkgYXJlIG5vdCBpdGFsaWMgZW5vdWdoXG4gKiBhbmQgaXQncyBiZXR0ZXIgdG8gcmVseSBvbiB0aGUgYnJvd3NlcidzIGJ1aWx0LWluIG9ibGlxdWluZyBiZWhhdmlvdXIuXG4gKi9cblxuLyogR3JhYiB0aGUgb3RoZXIgZm9udHMgZnJvbSB0aGUgY3VycmVudCB0aGVtZSwgc28gd2UgY2FuIG92ZXJyaWRlIHRvIEludGVyICovXG4vKiBpbiBjdXN0b20gZm9udHMgaWYgbmVlZGVkLiAqL1xuQGltcG9ydCBcIi4uLy4uL2xpZ2h0L2Nzcy9fZm9udHMucGNzc1wiO1xuXG4vKiBOdW5pdG8gYXMgdGhlIGRlZmF1bHQsIGZvciBvbGQgdGltZSdzIHNha2Ugb24gbGVnYWN5IHRoZW1lcy4gKi9cbi8qIHRoZSAnc3JjJyBsaW5rcyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJ1bmRsZS5jc3MsIHdoaWNoIGlzIGluIGEgc3ViZGlyZWN0b3J5LlxuICovXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogXCJOdW5pdG9cIjtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBzcmM6IHVybChcIi9yZXMvZm9udHMvTnVuaXRvL051bml0by1SZWd1bGFyLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbn1cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiBcIk51bml0b1wiO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHNyYzogdXJsKFwiL3Jlcy9mb250cy9OdW5pdG8vTnVuaXRvLVNlbWlCb2xkLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbn1cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiBcIk51bml0b1wiO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHNyYzogdXJsKFwiL3Jlcy9mb250cy9OdW5pdG8vTnVuaXRvLUJvbGQudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpO1xufVxuIiwiLyogdGhlICdzcmMnIGxpbmtzIGFyZSByZWxhdGl2ZSB0byB0aGUgYnVuZGxlLmNzcywgd2hpY2ggaXMgaW4gYSBzdWJkaXJlY3RvcnkuXG4gKi9cblxuLyogVHdlbW9qaSBDT0xSICovXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogXCJUd2Vtb2ppXCI7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBzcmM6IHVybChcIi9yZXMvZm9udHMvVHdlbW9qaV9Nb3ppbGxhL1R3ZW1vamlNb3ppbGxhLWNvbHIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XG59XG4vKiBGb3IgYXQgbGVhc3QgQ2hyb21lIG9uIFdpbmRvd3MgMTAsIHdlIGhhdmUgdG8gZXhwbGljdGx5IGFkZCBleHRyYSB3ZWlnaHRzIGZvciB0aGUgZW1vamkgdG8gYXBwZWFyIGluIGJvbGQgbWVzc2FnZXMsIGV0Yy4gKi9cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiBcIlR3ZW1vamlcIjtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHNyYzogdXJsKFwiL3Jlcy9mb250cy9Ud2Vtb2ppX01vemlsbGEvVHdlbW9qaU1vemlsbGEtY29sci53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbn1cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiBcIlR3ZW1vamlcIjtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHNyYzogdXJsKFwiL3Jlcy9mb250cy9Ud2Vtb2ppX01vemlsbGEvVHdlbW9qaU1vemlsbGEtY29sci53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbn1cbiIsIjpyb290IHtcbiAgICAvKiBUaGlzIGlzIHNldCB0byBUd2Vtb2ppIHdoZW4gdGhlIHVzZXIgb3B0cyBpbnRvIHRoZSBidW5kbGVkIGVtb2ppIGZvbnQgKi9cbiAgICAtLWVtb2ppLWZvbnQtZmFtaWx5OiBcIlwiO1xufVxuXG4vKiBOdW5pdG8gbGFja3MgY29tYmluaW5nIGRpYWNyaXRpY3MsIHNvIHRoZXNlIHdpbGwgZmFsbCB0aHJvdWdoXG4gICB0byB0aGUgbmV4dCBmb250LiAgSGVsZXZldGljYSdzIGRpYWNyaXRpY3Mgc29tZXRpbWVzIGRvIG5vdCBjb21iaW5lXG4gICBuaWNlbHkgKG9uIE9TWCwgYXQgbGVhc3QpIGFuZCByZXN1bHQgaW4gYSBodWdlIGhvcml6b250YWwgbWVzcy5cbiAgIEFyaWFsIGVtcGlyaWNhbGx5IGdldHMgaXQgcmlnaHQsIGhlbmNlIHByaW9yaXRpc2luZyBBcmlhbCBoZXJlLiAqL1xuLyogTm90byBDb2xvciBFbW9qaSBjb250YWlucyBkaWdpdHMsIGluIGZpeGVkLXdpZHRoLCB0aGVyZWZvcmUgY2F1c2luZ1xuICAgZGlnaXRzIGluIGZsb3dlZCB0ZXh0IHRvIHN0YW5kIG91dC5cbiAgIFRPRE86IENvbnNpZGVyIHB1dHRpbmcgYWxsIGVtb2ppIGZvbnRzIHRvIHRoZSBlbmQgcmF0aGVyIHRoYW4gdGhlIGZyb250LiAqL1xuJGZvbnQtZmFtaWx5OlxuICAgIFwiTnVuaXRvXCIsIHZhcigtLWVtb2ppLWZvbnQtZmFtaWx5KSwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiQXJpYWxcIiwgXCJIZWx2ZXRpY2FcIiwgc2Fucy1zZXJpZixcbiAgICBcIk5vdG8gQ29sb3IgRW1vamlcIjtcblxuJG1vbm9zcGFjZS1mb250LWZhbWlseTpcbiAgICBcIkZpcmEgQ29kZVwiLCB2YXIoLS1lbW9qaS1mb250LWZhbWlseSksIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIkNvdXJpZXJcIiwgbW9ub3NwYWNlLFxuICAgIFwiTm90byBDb2xvciBFbW9qaVwiO1xuXG4vKiB1bmlmaWVkIHBhbGV0dGUgKi9cbi8qIHRyeSB0byB1c2UgdGhlc2UgY29sb3JzIHdoZW4gcG9zc2libGUgKi9cbiRoZWFkZXItcGFuZWwtYmctY29sb3I6ICNmM2Y4ZmQ7XG4kaGVhZGVyLXBhbmVsLWJnLWhvdmVyOiB2YXIoLS1jcGQtY29sb3ItZ3JheS0yMDApO1xuXG4vKiB0eXBpY2FsIHRleHQgKGRhcmstb24td2hpdGUgaW4gbGlnaHQgc2tpbikgKi9cbiRwcmltYXJ5LWZnLWNvbG9yOiAjMmUyZjMyO1xuJHNlY29uZGFyeS1mZy1jb2xvcjogJHByaW1hcnktZmctY29sb3I7XG4kdGVydGlhcnktZmctY29sb3I6ICRwcmltYXJ5LWZnLWNvbG9yO1xuJHByaW1hcnktYmctY29sb3I6ICNmZmZmZmY7XG4kbXV0ZWQtZmctY29sb3I6ICM2MTcwOGI7IC8qIENvbW1vbmx5IHVzZWQgaW4gaGVhZGluZ3MgYW5kIHJlbGV2YW50IGFsdCB0ZXh0ICovXG5cbi8qIHVzZWQgZm9yIGRpYWxvZyBib3ggdGV4dCAqL1xuJGxpZ2h0LWZnLWNvbG9yOiAjNzQ3NDc0O1xuXG4vKiB1c2VkIGZvciBmb2N1c2luZyBmb3JtIGNvbnRyb2xzICovXG4kZm9jdXMtYmctY29sb3I6ICNkZGRkZGQ7XG5cbi8qIGJ1dHRvbiBVSSAod2hpdGUtb24tZ3JlZW4gaW4gbGlnaHQgc2tpbikgKi9cbiRhY2NlbnQtZmctY29sb3I6ICNmZmZmZmY7XG4kYWNjZW50LWFsdDogIzIzOGNmNTtcblxuJHNlbGVjdGlvbi1mZy1jb2xvcjogJHByaW1hcnktYmctY29sb3I7XG5cbiRmb2N1cy1icmlnaHRuZXNzOiAxMDUlO1xuXG4vKiBpbmZvcm1hdGlvbmFsIHBsaW50aCAqL1xuJGluZm8tcGxpbnRoLWJnLWNvbG9yOiAjZjdmN2Y3O1xuJGluZm8tcGxpbnRoLWZnLWNvbG9yOiAjODg4O1xuXG4vKiBsZWZ0LXBhbmVsIHN0eWxlIG11dGVkIGFjY2VudCBjb2xvciAqL1xuJHNlY29uZGFyeS1hY2NlbnQtY29sb3I6ICNmMmY1Zjg7XG5cbiRzcGFjZVBhbmVsLWJnLWNvbG9yOiAjMjczMDNhO1xuJGludmVydGVkLWJnLWNvbG9yOiAkc3BhY2VQYW5lbC1iZy1jb2xvcjtcblxuLyogdXNlZCBieSBSb29tRHJvcFRhcmdldCAqL1xuJGRyb3B0YXJnZXQtYmctY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcblxuLyogdXNlZCBieSBBdXRvY29tcGxldGUgKi9cbiRzZWxlY3RlZC1jb2xvcjogJHNlY29uZGFyeS1hY2NlbnQtY29sb3I7XG5cbi8qIHNlbGVjdGVkIGZvciBob3Zlcm92ZXIgJiBzZWxlY3RlZCBldmVudCB0aWxlcyAqL1xuJGV2ZW50LXNlbGVjdGVkLWNvbG9yOiAkaGVhZGVyLXBhbmVsLWJnLWNvbG9yO1xuXG4vKiB1c2VkIGZvciB0aGUgaGFpcmxpbmUgZGl2aWRlcnMgaW4gUm9vbVZpZXcgKi9cbiRwcmltYXJ5LWhhaXJsaW5lLWNvbG9yOiAjZTVlNWU1O1xuJHNlY29uZGFyeS1oYWlybGluZS1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWdyYXktMzAwKTtcblxuLyogdXNlZCBmb3IgdGhlIGJvcmRlciBvZiBpbnB1dCB0ZXh0IGZpZWxkcyAqL1xuJGlucHV0LWJvcmRlci1jb2xvcjogI2U3ZTdlNztcbiRpbnB1dC1kYXJrZXItYmctY29sb3I6ICNlM2U4ZjA7XG4kaW5wdXQtZGFya2VyLWZnLWNvbG9yOiAjOWZhOWJhO1xuJGlucHV0LWxpZ2h0ZXItYmctY29sb3I6ICNmMmY1Zjg7XG5cbiRyZXNlbmQtYnV0dG9uLWRpdmlkZXItY29sb3I6ICRpbnB1dC1kYXJrZXItYmctY29sb3I7XG5cbiRidXR0b24tZmctY29sb3I6IHdoaXRlO1xuXG4vKiBhcGFydCBmcm9tIGxvZ2luIGZvcm1zLCB3aGljaCBoYXZlIHN0cm9uZ2VyIGJvcmRlciAqL1xuJHN0cm9uZy1pbnB1dC1ib3JkZXItY29sb3I6ICNjN2M3Yzc7XG5cbi8qIHVzZWQgZm9yIFVzZXJTZXR0aW5ncyBFZGl0YWJsZVRleHQgKi9cbiRpbnB1dC11bmRlcmxpbmUtY29sb3I6IHJnYmEoMTUxLCAxNTEsIDE1MSwgMC41KTtcbiRpbnB1dC1mZy1jb2xvcjogcmdiYSg3NCwgNzQsIDc0LCAwLjkpO1xuJGlucHV0LXBsYWNlaG9sZGVyOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuLyogc2Nyb2xsYmFycyAqL1xuJHNjcm9sbGJhci10aHVtYi1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpO1xuLyogY29udGV4dCBtZW51cyAqL1xuJG1lbnUtYm9yZGVyLWNvbG9yOiAjZTdlN2U3O1xuJG1lbnUtYmctY29sb3I6ICNmZmY7XG4kbWVudS1ib3gtc2hhZG93LWNvbG9yOiByZ2JhKDExOCwgMTMxLCAxNTYsIDAuNik7XG4kbWVudS1zZWxlY3RlZC1jb2xvcjogI2Y1ZjhmYTtcblxuJGF2YXRhci1pbml0aWFsLWNvbG9yOiAjZmZmZmZmO1xuXG4kaDMtY29sb3I6ICMzZDNiMzk7XG4kaWNvbi1idXR0b24tY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXRlcnRpYXJ5KTtcblxuJGRpYWxvZy10aXRsZS1mZy1jb2xvcjogIzQ1NDc0YTtcbiRkaWFsb2ctYmFja2Ryb3AtY29sb3I6IHJnYmEoNDYsIDQ4LCA1MSwgMC4zOCk7XG4kZGlhbG9nLWNsb3NlLWZnLWNvbG9yOiAkaWNvbi1idXR0b24tY29sb3I7XG4kZGlhbG9nLWNsb3NlLWV4dGVybmFsLWNvbG9yOiAkcHJpbWFyeS1iZy1jb2xvcjtcblxuJGxpZ2h0Ym94LWJhY2tncm91bmQtYmctY29sb3I6ICMwMDA7XG4kbGlnaHRib3gtYmFja2dyb3VuZC1iZy1vcGFjaXR5OiAwLjk1O1xuXG4kaW1hZ2Vib2R5LWdpZmxhYmVsOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG4kaW1hZ2Vib2R5LWdpZmxhYmVsLWJvcmRlcjogcmdiYSgwLCAwLCAwLCAwLjIpO1xuJGltYWdlYm9keS1naWZsYWJlbC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTtcblxuJGluZm8tcGxpbnRoLWZnLWNvbG9yOiAjODg4O1xuXG4kbmV1dHJhbC1iYWRnZS1jb2xvcjogI2RiZGJkYjtcblxuJHByZXZpZXctd2lkZ2V0LWJhci1jb2xvcjogI2RkZDtcblxuJGJsb2NrcXVvdGUtYmFyLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXByaW1hcnkpO1xuXG4kc2V0dGluZ3MtZ3JleS1mZy1jb2xvcjogI2EyYTJhMjtcbiRzZXR0aW5ncy1zdWJzZWN0aW9uLWZnLWNvbG9yOiAjNjE3MDhiO1xuXG4kcnRlLWJnLWNvbG9yOiAjZTllOWU5O1xuJHJ0ZS1jb2RlLWJnLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDQpO1xuXG4kaGVhZGVyLXBhbmVsLXRleHQtcHJpbWFyeS1jb2xvcjogIzkxYTFjMDtcblxuJHBpbGwtYmctY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tcHJpbWFyeS1yZXN0KTtcbiRwaWxsLWhvdmVyLWJnLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXByaW1hcnktaG92ZXJlZCk7XG4kcGlsbC1wcmVzcy1iZy1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXByZXNzZWQpO1xuXG4kdG9wbGVmdG1lbnUtY29sb3I6ICMyMTIxMjE7XG4kcm9vbWhlYWRlci1iZy1jb2xvcjogJHByaW1hcnktYmctY29sb3I7XG4kcm9vbWhlYWRlci1hZGRyb29tLWJnLWNvbG9yOiAjOTFhMWMwO1xuJHJvb21oZWFkZXItYWRkcm9vbS1mZy1jb2xvcjogJGFjY2VudC1mZy1jb2xvcjtcbiRyb29tdG9waWMtY29sb3I6ICM5ZTllOWU7XG4kcm9vbS1pY29uLXVucmVhZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tdGVydGlhcnkpO1xuXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4kcHJlc2VuY2UtYXdheTogI2Q5YjA3MjtcbiRwcmVzZW5jZS1vZmZsaW5lOiAjZTNlOGYwO1xuJHByZXNlbmNlLWJ1c3k6ICNmZjViNTU7XG5cbi8qIExlZ2FjeSB0aGVtZSBiYWNrcG9ydHMgKi9cbiRhY2NlbnQ6ICMwZGJkOGI7XG4kYWxlcnQ6ICNmZjViNTU7XG4kbGlua3M6ICMwMDg2ZTY7XG4kbGluay1leHRlcm5hbDogIzA0NjdkZDtcbiRwcmltYXJ5LWNvbnRlbnQ6ICRwcmltYXJ5LWZnLWNvbG9yO1xuJHNlY29uZGFyeS1jb250ZW50OiAkc2Vjb25kYXJ5LWZnLWNvbG9yO1xuJHRlcnRpYXJ5LWNvbnRlbnQ6ICR0ZXJ0aWFyeS1mZy1jb2xvcjtcbiRxdWF0ZXJuYXJ5LWNvbnRlbnQ6ICM2Zjc4ODI7XG4kcXVpbmFyeS1jb250ZW50OiAkcXVhdGVybmFyeS1jb250ZW50O1xuJHN5c3RlbTogI2Y0ZjZmYTtcbiRzeXN0ZW0tdHJhbnNwYXJlbnQ6ICNlMWU2ZWMwMDtcbiRiYWNrZ3JvdW5kOiAkcHJpbWFyeS1iZy1jb2xvcjtcbiRvdmVybGF5LWJhY2tncm91bmQ6IHJnYmEoJGJhY2tncm91bmQsIDAuODUpO1xuXG4kcGFuZWxzOiByZ2JhKCRzeXN0ZW0sIDAuOSk7XG4kcGFuZWwtYWN0aW9uczogI2ZmZjtcblxuJHNlcGFyYXRvcjogdmFyKC0tY3BkLWNvbG9yLWdyYXktNDAwKTtcblxuLyogTGVnYWN5IHRoZW1lIGJhY2twb3J0cyAqL1xuXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuJHZvaXBjYWxsLXBsaW50aC1jb2xvcjogJHN5c3RlbTtcblxuJGNhbGwtdmlldy1idXR0b24tb24tZm9yZWdyb3VuZDogJHNlY29uZGFyeS1jb250ZW50O1xuJGNhbGwtdmlldy1idXR0b24tb24tYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4kY2FsbC12aWV3LWJ1dHRvbi1vZmYtZm9yZWdyb3VuZDogJGJhY2tncm91bmQ7XG4kY2FsbC12aWV3LWJ1dHRvbi1vZmYtYmFja2dyb3VuZDogJHNlY29uZGFyeS1jb250ZW50O1xuJGNhbGwtdmlldy1jb250ZW50LWJhY2tncm91bmQ6ICMyMTI2MmM7XG5cbiR2aWRlby1mZWVkLXNlY29uZGFyeS1iYWNrZ3JvdW5kOiAjMzk0MDQ5OyAvKiBYWFg6IENvbG9yIGZyb20gZGFyayB0aGVtZSAqL1xuXG4vKiBBbGwgb2YgdGhlc2UgYXJlIGZyb20gZGFyayB0aGVtZSAqL1xuJGNhbGwtc3lzdGVtOiAjMjEyNjJjO1xuJGNhbGwtYmFja2dyb3VuZDogIzE1MTkxZTtcbiRjYWxsLXByaW1hcnktY29udGVudDogI2ZmZmZmZjtcbiRjYWxsLWxpZ2h0LXF1YXRlcm5hcnktY29udGVudDogI2MxYzZjZDtcblxuJHVzZXJuYW1lLXZhcmlhbnQxLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1kZWNvcmF0aXZlLTEpO1xuJHVzZXJuYW1lLXZhcmlhbnQyLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1kZWNvcmF0aXZlLTIpO1xuJHVzZXJuYW1lLXZhcmlhbnQzLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1kZWNvcmF0aXZlLTMpO1xuJHVzZXJuYW1lLXZhcmlhbnQ0LWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1kZWNvcmF0aXZlLTQpO1xuJHVzZXJuYW1lLXZhcmlhbnQ1LWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1kZWNvcmF0aXZlLTUpO1xuJHVzZXJuYW1lLXZhcmlhbnQ2LWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1kZWNvcmF0aXZlLTYpO1xuXG4vKipcbiAqIENyZWF0aW5nIGEgYHNlbWFudGljYCBjb2xvciBzY2FsZS4gVGhpcyB3aWxsIG5vdCBiZSBuZWVkZWQgd2l0aCB0aGUgbmV3XG4gKiB2aXN1YWwgbGFuZ3VhZ2UsIGJ1dCBuZWNlc3NhcnkgZHVyaW5nIHRoZSB0cmFuc2l0aW9uIHBlcmlvZFxuICogVGhpcyBhYnN0cmFjdCB0aGUgYGdyZWVuYCBhd2F5IGZyb20gd2hlcmUgYWNjZW50IHNoYWRlcyBhcmUgdXNlZFxuICogVGFrZTogYGJhY2tncm91bmQ6IHJnYmEoJGFjY2VudCwgMC4xKTtgXG4gKiB3b3VsZCBiZSB0cmFuc2Zvcm1lZCB0bzogYGJhY2tncm91bmQ6ICRhY2NlbnQtMzAwO2BcbiAqXG4gKiBUbyB1c2UgdW5kZXIgdmVyeSByYXJlIGNpcmN1bXN0YW5jZXMsIGFsd2F5cyBwcmVmZXIgdGhlIHNlbWFudGljcyBkZWZpbmVkXG4gKiBpbiBodHRwczovL2NvbXBvdW5kLmVsZW1lbnQuaW8vP3BhdGg9L2RvY3MvdG9rZW5zLXNlbWFudGljLWNvbG9ycy0tZG9jc1xuICovXG4kYWNjZW50LTEwMDogdmFyKC0tY3BkLWNvbG9yLWdyZWVuLTEwMCk7XG4kYWNjZW50LTIwMDogdmFyKC0tY3BkLWNvbG9yLWdyZWVuLTIwMCk7XG4kYWNjZW50LTMwMDogdmFyKC0tY3BkLWNvbG9yLWdyZWVuLTMwMCk7XG4kYWNjZW50LTQwMDogdmFyKC0tY3BkLWNvbG9yLWdyZWVuLTQwMCk7XG4kYWNjZW50LTUwMDogdmFyKC0tY3BkLWNvbG9yLWdyZWVuLTUwMCk7XG4kYWNjZW50LTYwMDogdmFyKC0tY3BkLWNvbG9yLWdyZWVuLTYwMCk7XG4kYWNjZW50LTcwMDogdmFyKC0tY3BkLWNvbG9yLWdyZWVuLTcwMCk7XG4kYWNjZW50LTgwMDogdmFyKC0tY3BkLWNvbG9yLWdyZWVuLTgwMCk7XG4kYWNjZW50LTkwMDogdmFyKC0tY3BkLWNvbG9yLWdyZWVuLTkwMCk7XG4kYWNjZW50LTEwMDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0xMDAwKTtcbiRhY2NlbnQtMTEwMDogdmFyKC0tY3BkLWNvbG9yLWdyZWVuLTExMDApO1xuJGFjY2VudC0xMjAwOiB2YXIoLS1jcGQtY29sb3ItZ3JlZW4tMTIwMCk7XG4kYWNjZW50LTEzMDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0xMzAwKTtcbiRhY2NlbnQtMTQwMDogdmFyKC0tY3BkLWNvbG9yLWdyZWVuLTE0MDApO1xuXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4kd2lkZ2V0LW1lbnUtYmFyLWJnLWNvbG9yOiAkc2Vjb25kYXJ5LWFjY2VudC1jb2xvcjtcbiR3aWRnZXQtYm9keS1iZy1jb2xvcjogI2ZmZjtcblxuLyogKioqKioqKioqKioqKioqKioqKiogKi9cblxuLyogJGV2ZW50LWhpZ2hsaWdodC1iZy1jb2xvciBzaGFyZXMgdGhpcyB2YWx1ZSwgKi9cbi8qIHNvIHRvIG5vdCBtYWtlIHRoZWlyIG9yZGVyIGRlcGVuZGVudCBvbiB3aG8gZGVwZW5kcyBvbiB3aG8sIGhhdmUgYSBzaGFyZWQgdmFsdWUgKi9cbi8qIGRlZmluZWQgYmVmb3JlIGJvdGggKi9cbiR5ZWxsb3ctYmFja2dyb3VuZDogI2ZmZjhlMztcblxuJGV2ZW50LWhpZ2hsaWdodC1iZy1jb2xvcjogJHllbGxvdy1iYWNrZ3JvdW5kO1xuXG4vKiBldmVudCB0aW1lc3RhbXAgKi9cbiRldmVudC10aW1lc3RhbXAtY29sb3I6ICNhY2FjYWM7XG5cbi8qIGUyZSAqL1xuJGUyZS12ZXJpZmllZC1jb2xvcjogIzBkYmQ4YjtcbiRlMmUtd2FybmluZy1jb2xvcjogI2ZmNWI1NTtcbiRlMmUtdmVyaWZpZWQtY29sb3ItbGlnaHQ6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0zMDApO1xuJGUyZS13YXJuaW5nLWNvbG9yLWxpZ2h0OiB2YXIoLS1jcGQtY29sb3ItcmVkLTMwMCk7XG5cbi8qKiogSW1hZ2VWaWV3ICoqKi9cbiRsaWdodGJveC1iZy1jb2xvcjogIzQ1NDU0NTtcbiRsaWdodGJveC1mZy1jb2xvcjogI2ZmZmZmZjtcbiRsaWdodGJveC1ib3JkZXItY29sb3I6ICNmZmZmZmY7XG5cbi8qIFRhYmJlZCB2aWV3cyAqL1xuJHRhYi1sYWJlbC1mZy1jb2xvcjogIzQ1NDc0YTtcbiR0YWItbGFiZWwtYWN0aXZlLWZnLWNvbG9yOiAjZmZmZmZmO1xuXG4vKiBCdXR0b25zICovXG4kYnV0dG9uLXByaW1hcnktZmctY29sb3I6ICNmZmZmZmY7XG4kYnV0dG9uLXNlY29uZGFyeS1iZy1jb2xvcjogJGFjY2VudC1mZy1jb2xvcjtcbiRidXR0b24tZGFuZ2VyLWZnLWNvbG9yOiAjZmZmZmZmO1xuJGJ1dHRvbi1kYW5nZXItZGlzYWJsZWQtZmctY29sb3I6ICNmZmZmZmY7XG4kYnV0dG9uLWRhbmdlci1kaXNhYmxlZC1iZy1jb2xvcjogI2Y1YjZiYjsgLyogVE9ETzogVmVyaWZ5IGNvbG9yICovXG5cbiR2aXN1YWwtYmVsbC1iZy1jb2xvcjogI2ZhYTtcblxuLyogVG9nZ2xlIHN3aXRjaCAqL1xuJHRvZ2dsZXN3LW9mZi1jb2xvcjogI2MxYzlkNjtcbiR0b2dnbGVzdy1iYWxsLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXByaW1hcnktcmVzdCk7XG5cbiRwcm9ncmVzc2Jhci1iZy1jb2xvcjogcmdiYSgxNDEsIDE1MSwgMTY1LCAwLjIpO1xuXG4kYXV0aHBhZ2UtYmctY29sb3I6ICMyZTM2NDk7XG4kYXV0aHBhZ2UtbW9kYWwtYmctY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41OSk7XG4kYXV0aHBhZ2UtbW9kYWwtY29udGVudC13aXRoLWJsdXItYmctY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1LCAwLjU5KTtcbiRhdXRocGFnZS1mb2N1cy1iZy1jb2xvcjogI2RkZGRkZDtcbiRhdXRocGFnZS1sYW5nLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4kYXV0aHBhZ2UtcHJpbWFyeS1jb2xvcjogJHByaW1hcnktY29udGVudDtcbiRhdXRocGFnZS1zZWNvbmRhcnktY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcblxuJGRhcmstcGFuZWwtYmctY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtc2Vjb25kYXJ5KTtcbiRwYW5lbC1ncmFkaWVudDogcmdiYSgyNDIsIDI0NSwgMjQ4LCAwKSwgcmdiYSgyNDIsIDI0NSwgMjQ4LCAxKTtcblxuJG1lc3NhZ2UtYWN0aW9uLWJhci1iZy1jb2xvcjogJHByaW1hcnktYmctY29sb3I7XG4kbWVzc2FnZS1hY3Rpb24tYmFyLWZnLWNvbG9yOiAkcHJpbWFyeS1mZy1jb2xvcjtcbiRtZXNzYWdlLWFjdGlvbi1iYXItYm9yZGVyLWNvbG9yOiAjZTllZGYxO1xuJG1lc3NhZ2UtYWN0aW9uLWJhci1ob3Zlci1ib3JkZXItY29sb3I6ICRmb2N1cy1iZy1jb2xvcjtcblxuJHJlYWN0aW9uLXJvdy1idXR0b24taG92ZXItYm9yZGVyLWNvbG9yOiAkZm9jdXMtYmctY29sb3I7XG4kcmVhY3Rpb24tcm93LWJ1dHRvbi1zZWxlY3RlZC1iZy1jb2xvcjogI2U5ZmZmOTtcblxuJGtiZC1ib3JkZXItY29sb3I6ICRzdHJvbmctaW5wdXQtYm9yZGVyLWNvbG9yO1xuXG4kdG9vbHRpcC10aW1lbGluZS1iZy1jb2xvcjogJHNwYWNlUGFuZWwtYmctY29sb3I7XG4kdG9vbHRpcC10aW1lbGluZS1mZy1jb2xvcjogI2ZmZmZmZjtcblxuJGJyZWFkY3J1bWItcGxhY2Vob2xkZXItYmctY29sb3I6ICNlOGVlZjU7XG5cbi8qIFNlZSBub24tbGVnYWN5IF9saWdodCBmb3IgdmFyaWFibGUgaW5mb3JtYXRpb24gKi9cbiR2b2ljZS1yZWNvcmQtc3RvcC1zeW1ib2wtY29sb3I6ICNmZjRiNTU7XG4kdm9pY2UtcmVjb3JkLWxpdmUtY2lyY2xlLWNvbG9yOiAjZmY0YjU1O1xuJHZvaWNlLXJlY29yZC1zdG9wLWJvcmRlci1jb2xvcjogI2UzZThmMDtcbiR2b2ljZS1yZWNvcmQtaWNvbi1jb2xvcjogJHRlcnRpYXJ5LWZnLWNvbG9yO1xuXG4kY29tcG9zZXItc2hhZG93LWNvbG9yOiB0cmFucGFyZW50O1xuXG4kY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItcGFuZWwtYmctY29sb3I7XG4kaW5saW5lY29kZS1ib3JkZXItY29sb3I6ICRoZWFkZXItcGFuZWwtYmctY29sb3I7XG4kaW5saW5lY29kZS1iYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGVyLXBhbmVsLWJnLWNvbG9yO1xuXG4vKiBCdWJibGUgdGlsZXMgKi9cbiRldmVudGJ1YmJsZS1zZWxmLWJnOiAjZjBmYmY4O1xuJGV2ZW50YnViYmxlLW90aGVycy1iZzogJHN5c3RlbTtcbiRldmVudGJ1YmJsZS1iZy1ob3ZlcjogI2ZhZmJmZDtcblxuLyogcGlubmVkIGV2ZW50cyBpbmRpY2F0b3IgKi9cbiRwaW5uZWQtY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuXG4kc3BhY2VQYW5lbC1kaXZpZGVyLWNvbG9yOiAkdGVydGlhcnktY29udGVudDtcblxuLyogTG9jYXRpb24gc2hhcmluZyAqL1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbiRsb2NhdGlvbi1tYXJrZXItY29sb3I6ICNmZmZmZmY7XG4kbG9jYXRpb24tbGl2ZS1jb2xvcjogIzVjNTZmNTtcbiRsb2NhdGlvbi1saXZlLXNlY29uZGFyeS1jb2xvcjogI2RlZGRmZDtcbi8qICoqKioqKioqKioqKioqKioqKioqICovXG5cbmJvZHkge1xuICAgIGNvbG9yLXNjaGVtZTogbGlnaHQ7XG59XG5cbi8qIGRpZmYgaGlnaGxpZ2h0IGNvbG9ycyAqL1xuLmhsanMtYWRkaXRpb24ge1xuICAgIGJhY2tncm91bmQ6ICNkZmQ7XG59XG5cbi5obGpzLWRlbGV0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmRkO1xufVxuIiwiLyogQ29sb3JzIGZyb20gRmlnbWEgQ29tcG91bmQgaHR0cHM6Ly93d3cuZmlnbWEuY29tL2ZpbGUvWDRYVEg5aVMyS0dKMndGS0Rxa3llZC9Db21wb3VuZD9ub2RlLWlkPTU1OSUzQTc0MSAqL1xuJHN5c3RlbTogIzIxMjYyYztcbiRzeXN0ZW0tdHJhbnNwYXJlbnQ6ICNlMWU2ZWMwMDtcblxuLyogdW5pZmllZCBwYWxldHRlICovXG4vKiB0cnkgdG8gdXNlIHRoZXNlIGNvbG9ycyB3aGVuIHBvc3NpYmxlICovXG4kYmctY29sb3I6ICMxODFiMjE7XG4kYmFzZS1jb2xvcjogIzE1MTcxYjtcbiRiYXNlLXRleHQtY29sb3I6ICNlZGYzZmY7XG4kaGVhZGVyLXBhbmVsLWJnLWNvbG9yOiAjMjIyNjJlO1xuJGhlYWRlci1wYW5lbC1iZy1ob3ZlcjogdmFyKC0tY3BkLWNvbG9yLWdyYXktMjAwKTtcbiRoZWFkZXItcGFuZWwtdGV4dC1wcmltYXJ5LWNvbG9yOiAjYTFiMmQxO1xuJGhlYWRlci1wYW5lbC10ZXh0LXNlY29uZGFyeS1jb2xvcjogI2M4YzhjZDtcbiR0ZXh0LXByaW1hcnktY29sb3I6ICNlZGYzZmY7XG4kdGV4dC1zZWNvbmRhcnktY29sb3I6ICNhMWIyZDE7XG4kcm9vbS1oaWdobGlnaHQtY29sb3I6ICMzNDNhNDY7XG5cbi8qIHR5cGljYWwgdGV4dCAoZGFyay1vbi13aGl0ZSBpbiBsaWdodCBza2luKSAqL1xuJHByaW1hcnktZmctY29sb3I6ICR0ZXh0LXByaW1hcnktY29sb3I7XG4kc2Vjb25kYXJ5LWZnLWNvbG9yOiAkcHJpbWFyeS1mZy1jb2xvcjtcbiR0ZXJ0aWFyeS1mZy1jb2xvcjogJHByaW1hcnktZmctY29sb3I7XG4kcHJpbWFyeS1iZy1jb2xvcjogJGJnLWNvbG9yO1xuJG11dGVkLWZnLWNvbG9yOiAkaGVhZGVyLXBhbmVsLXRleHQtcHJpbWFyeS1jb2xvcjtcblxuLyogdXNlZCBmb3IgZGlhbG9nIGJveCB0ZXh0ICovXG4kbGlnaHQtZmctY29sb3I6ICRoZWFkZXItcGFuZWwtdGV4dC1zZWNvbmRhcnktY29sb3I7XG5cbi8qIHVzZWQgZm9yIGZvY3VzaW5nIGZvcm0gY29udHJvbHMgKi9cbiRmb2N1cy1iZy1jb2xvcjogJHJvb20taGlnaGxpZ2h0LWNvbG9yO1xuXG4kcGlsbC1iZy1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuJHBpbGwtaG92ZXItYmctY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tcHJpbWFyeS1ob3ZlcmVkKTtcbiRwaWxsLXByZXNzLWJnLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXByaW1hcnktcHJlc3NlZCk7XG5cbi8qIGluZm9ybWF0aW9uYWwgcGxpbnRoICovXG4kaW5mby1wbGludGgtYmctY29sb3I6ICRoZWFkZXItcGFuZWwtYmctY29sb3I7XG4kaW5mby1wbGludGgtZmctY29sb3I6ICM4ODg7XG5cbiRzcGFjZVBhbmVsLWJnLWNvbG9yOiAkYmFzZS1jb2xvcjtcbiRpbnZlcnRlZC1iZy1jb2xvcjogJHNwYWNlUGFuZWwtYmctY29sb3I7XG5cbi8qIHVzZWQgYnkgQXV0b2NvbXBsZXRlICovXG4kc2VsZWN0ZWQtY29sb3I6ICRyb29tLWhpZ2hsaWdodC1jb2xvcjtcblxuLyogc2VsZWN0ZWQgZm9yIGhvdmVyb3ZlciAmIHNlbGVjdGVkIGV2ZW50IHRpbGVzICovXG4kZXZlbnQtc2VsZWN0ZWQtY29sb3I6ICRoZWFkZXItcGFuZWwtYmctY29sb3I7XG5cbi8qIHVzZWQgZm9yIHRoZSBoYWlybGluZSBkaXZpZGVycyBpbiBSb29tVmlldyAqL1xuJHByaW1hcnktaGFpcmxpbmUtY29sb3I6ICMwMDAwMDA7XG4kc2Vjb25kYXJ5LWhhaXJsaW5lLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItZ3JheS0zMDApO1xuXG4vKiB1c2VkIGZvciB0aGUgYm9yZGVyIG9mIGlucHV0IHRleHQgZmllbGRzICovXG4kaW5wdXQtYm9yZGVyLWNvbG9yOiAjZTdlN2U3O1xuJGlucHV0LWRhcmtlci1iZy1jb2xvcjogIzE4MWIyMTtcbiRpbnB1dC1kYXJrZXItZmctY29sb3I6ICM2MTcwOGI7XG4kaW5wdXQtbGlnaHRlci1iZy1jb2xvcjogI2YyZjVmODtcbiRpbnB1dC1wbGFjZWhvbGRlcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcblxuJHJlc2VuZC1idXR0b24tZGl2aWRlci1jb2xvcjogJG11dGVkLWZnLWNvbG9yO1xuXG4vKiBzY3JvbGxiYXJzICovXG4kc2Nyb2xsYmFyLXRodW1iLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG5cbi8qIGNvbnRleHQgbWVudXMgKi9cbiRtZW51LWJvcmRlci1jb2xvcjogIzAwMDAwMDtcbiRtZW51LWJnLWNvbG9yOiAkaGVhZGVyLXBhbmVsLWJnLWNvbG9yO1xuJG1lbnUtYm94LXNoYWRvdy1jb2xvcjogJGJnLWNvbG9yO1xuJG1lbnUtc2VsZWN0ZWQtY29sb3I6ICRyb29tLWhpZ2hsaWdodC1jb2xvcjtcblxuJGF2YXRhci1pbml0aWFsLWNvbG9yOiAjZmZmZmZmO1xuXG4kaDMtY29sb3I6ICRwcmltYXJ5LWZnLWNvbG9yO1xuJGljb24tYnV0dG9uLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi10ZXJ0aWFyeSk7XG5cbiRkaWFsb2ctdGl0bGUtZmctY29sb3I6ICRiYXNlLXRleHQtY29sb3I7XG4kZGlhbG9nLWJhY2tkcm9wLWNvbG9yOiAjMDAwMDAwODA7XG4kZGlhbG9nLWNsb3NlLWZnLWNvbG9yOiAkaWNvbi1idXR0b24tY29sb3I7XG4kZGlhbG9nLWNsb3NlLWV4dGVybmFsLWNvbG9yOiAkdGV4dC1wcmltYXJ5LWNvbG9yO1xuXG4kbGlnaHRib3gtYmFja2dyb3VuZC1iZy1jb2xvcjogIzAwMDtcbiRsaWdodGJveC1iYWNrZ3JvdW5kLWJnLW9wYWNpdHk6IDAuODU7XG5cbiRzZXR0aW5ncy1ncmV5LWZnLWNvbG9yOiAjYTJhMmEyO1xuJHNldHRpbmdzLXN1YnNlY3Rpb24tZmctY29sb3I6ICR0ZXh0LXNlY29uZGFyeS1jb2xvcjtcblxuJHRvcGxlZnRtZW51LWNvbG9yOiAkdGV4dC1wcmltYXJ5LWNvbG9yO1xuJHJvb21oZWFkZXItYWRkcm9vbS1iZy1jb2xvcjogIzNjNDU1NjtcbiRyb29taGVhZGVyLWFkZHJvb20tZmctY29sb3I6ICR0ZXh0LXByaW1hcnktY29sb3I7XG4kcm9vbXRvcGljLWNvbG9yOiAkdGV4dC1zZWNvbmRhcnktY29sb3I7XG4kcm9vbS1pY29uLXVucmVhZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tdGVydGlhcnkpO1xuXG4vKiBMZWdhY3kgdGhlbWUgYmFja3BvcnRzICovXG4kYWNjZW50OiAjMGRiZDhiO1xuJGFsZXJ0OiAjZmY1YjU1O1xuJGxpbmtzOiAjMDA4NmU2O1xuJGxpbmstZXh0ZXJuYWw6ICMwNDY3ZGQ7XG4kcHJpbWFyeS1jb250ZW50OiAkcHJpbWFyeS1mZy1jb2xvcjtcbiRzZWNvbmRhcnktY29udGVudDogJHNlY29uZGFyeS1mZy1jb2xvcjtcbiR0ZXJ0aWFyeS1jb250ZW50OiAkdGVydGlhcnktZmctY29sb3I7XG4kcXVhdGVybmFyeS1jb250ZW50OiAjNmY3ODgyO1xuJHF1aW5hcnktY29udGVudDogJHF1YXRlcm5hcnktY29udGVudDtcbiRiYWNrZ3JvdW5kOiAkcHJpbWFyeS1iZy1jb2xvcjtcbiRvdmVybGF5LWJhY2tncm91bmQ6IHJnYmEoJGJhY2tncm91bmQsIDAuODUpO1xuXG4kcGFuZWxzOiByZ2JhKCRzeXN0ZW0sIDAuOSk7XG4kcGFuZWwtYWN0aW9uczogIzFhMWQyMztcblxuJHNlcGFyYXRvcjogdmFyKC0tY3BkLWNvbG9yLWdyYXktNDAwKTtcblxuLyoqXG4gKiBDcmVhdGluZyBhIGBzZW1hbnRpY2AgY29sb3Igc2NhbGUuIFRoaXMgd2lsbCBub3QgYmUgbmVlZGVkIHdpdGggdGhlIG5ld1xuICogdmlzdWFsIGxhbmd1YWdlLCBidXQgbmVjZXNzYXJ5IGR1cmluZyB0aGUgdHJhbnNpdGlvbiBwZXJpb2RcbiAqIFRoaXMgYWJzdHJhY3QgdGhlIGBncmVlbmAgYXdheSBmcm9tIHdoZXJlIGFjY2VudCBzaGFkZXMgYXJlIHVzZWRcbiAqIFRha2U6IGBiYWNrZ3JvdW5kOiByZ2JhKCRhY2NlbnQsIDAuMSk7YFxuICogd291bGQgYmUgdHJhbnNmb3JtZWQgdG86IGBiYWNrZ3JvdW5kOiAkYWNjZW50LTMwMDtgXG4gKlxuICogVG8gdXNlIHVuZGVyIHZlcnkgcmFyZSBjaXJjdW1zdGFuY2VzLCBhbHdheXMgcHJlZmVyIHRoZSBzZW1hbnRpY3MgZGVmaW5lZFxuICogaW4gaHR0cHM6Ly9jb21wb3VuZC5lbGVtZW50LmlvLz9wYXRoPS9kb2NzL3Rva2Vucy1zZW1hbnRpYy1jb2xvcnMtLWRvY3NcbiAqL1xuJGFjY2VudC0xMDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0xMDApO1xuJGFjY2VudC0yMDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0yMDApO1xuJGFjY2VudC0zMDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0zMDApO1xuJGFjY2VudC00MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi00MDApO1xuJGFjY2VudC01MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi01MDApO1xuJGFjY2VudC02MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi02MDApO1xuJGFjY2VudC03MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi03MDApO1xuJGFjY2VudC04MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi04MDApO1xuJGFjY2VudC05MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi05MDApO1xuJGFjY2VudC0xMDAwOiB2YXIoLS1jcGQtY29sb3ItZ3JlZW4tMTAwMCk7XG4kYWNjZW50LTExMDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0xMTAwKTtcbiRhY2NlbnQtMTIwMDogdmFyKC0tY3BkLWNvbG9yLWdyZWVuLTEyMDApO1xuJGFjY2VudC0xMzAwOiB2YXIoLS1jcGQtY29sb3ItZ3JlZW4tMTMwMCk7XG4kYWNjZW50LTE0MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0xNDAwKTtcbi8qIExlZ2FjeSB0aGVtZSBiYWNrcG9ydHMgKi9cblxuLyogKioqKioqKioqKioqKioqKioqKiogKi9cblxuJGNhbGwtdmlldy1idXR0b24tb24tZm9yZWdyb3VuZDogJHByaW1hcnktY29udGVudDtcbiRjYWxsLXZpZXctYnV0dG9uLW9uLWJhY2tncm91bmQ6ICRzeXN0ZW07XG4kY2FsbC12aWV3LWJ1dHRvbi1vZmYtZm9yZWdyb3VuZDogJHN5c3RlbTtcbiRjYWxsLXZpZXctYnV0dG9uLW9mZi1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb250ZW50O1xuJGNhbGwtdmlldy1jb250ZW50LWJhY2tncm91bmQ6ICRxdWluYXJ5LWNvbnRlbnQ7XG5cbiR2aWRlby1mZWVkLXNlY29uZGFyeS1iYWNrZ3JvdW5kOiAkc3lzdGVtO1xuXG4kY2FsbC1zeXN0ZW06ICRzeXN0ZW07XG4kY2FsbC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiRjYWxsLXByaW1hcnktY29udGVudDogJHByaW1hcnktY29udGVudDtcbiRjYWxsLWxpZ2h0LXF1YXRlcm5hcnktY29udGVudDogI2MxYzZjZDtcblxuJHJvb21zdWJsaXN0LXNrZWxldG9uLXVpLWJnOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjM2U0NDRjIDAlLCAjM2U0NDRjMDAgMTAwJSk7XG5cbiRzcGFjZVBhbmVsLWRpdmlkZXItY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4kd2lkZ2V0LW1lbnUtYmFyLWJnLWNvbG9yOiAkaGVhZGVyLXBhbmVsLWJnLWNvbG9yO1xuJHdpZGdldC1ib2R5LWJnLWNvbG9yOiAjMWExZDIzO1xuXG4kZXZlbnQtaGlnaGxpZ2h0LWJnLWNvbG9yOiAjMjUyNzFmO1xuXG4vKiBldmVudCB0aW1lc3RhbXAgKi9cbiRldmVudC10aW1lc3RhbXAtY29sb3I6ICR0ZXh0LXNlY29uZGFyeS1jb2xvcjtcblxuLyogVGFiYmVkIHZpZXdzICovXG4kdGFiLWxhYmVsLWZnLWNvbG9yOiAkdGV4dC1wcmltYXJ5LWNvbG9yO1xuJHRhYi1sYWJlbC1hY3RpdmUtZmctY29sb3I6ICR0ZXh0LXByaW1hcnktY29sb3I7XG5cbi8qIEJ1dHRvbnMgKi9cbiRidXR0b24tcHJpbWFyeS1mZy1jb2xvcjogI2ZmZmZmZjtcbiRidXR0b24tc2Vjb25kYXJ5LWJnLWNvbG9yOiB0cmFuc3BhcmVudDtcbiRidXR0b24tZGFuZ2VyLWZnLWNvbG9yOiAjZmZmZmZmO1xuJGJ1dHRvbi1kYW5nZXItZGlzYWJsZWQtZmctY29sb3I6ICNmZmZmZmY7XG4kYnV0dG9uLWRhbmdlci1kaXNhYmxlZC1iZy1jb2xvcjogI2Y1YjZiYjsgLyogVE9ETzogVmVyaWZ5IGNvbG9yICovXG5cbi8qIFRvZ2dsZSBzd2l0Y2ggKi9cbiR0b2dnbGVzdy1vZmYtY29sb3I6ICRyb29tLWhpZ2hsaWdodC1jb2xvcjtcblxuJHByb2dyZXNzYmFyLWJnLWNvbG9yOiAjMjEyNjJjO1xuXG4kdmlzdWFsLWJlbGwtYmctY29sb3I6ICM4MDA7XG5cbiRkYXJrLXBhbmVsLWJnLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXNlY29uZGFyeSk7XG4kcGFuZWwtZ3JhZGllbnQ6IHJnYmEoMzQsIDM4LCA0NiwgMCksIHJnYmEoMzQsIDM4LCA0NiwgMSk7XG5cbiRtZXNzYWdlLWFjdGlvbi1iYXItYmctY29sb3I6ICRoZWFkZXItcGFuZWwtYmctY29sb3I7XG4kbWVzc2FnZS1hY3Rpb24tYmFyLWZnLWNvbG9yOiAkaGVhZGVyLXBhbmVsLXRleHQtcHJpbWFyeS1jb2xvcjtcbiRtZXNzYWdlLWFjdGlvbi1iYXItYm9yZGVyLWNvbG9yOiAjNjE2YjdmO1xuJG1lc3NhZ2UtYWN0aW9uLWJhci1ob3Zlci1ib3JkZXItY29sb3I6ICRoZWFkZXItcGFuZWwtdGV4dC1wcmltYXJ5LWNvbG9yO1xuXG4kcmVhY3Rpb24tcm93LWJ1dHRvbi1ob3Zlci1ib3JkZXItY29sb3I6ICRoZWFkZXItcGFuZWwtdGV4dC1wcmltYXJ5LWNvbG9yO1xuJHJlYWN0aW9uLXJvdy1idXR0b24tc2VsZWN0ZWQtYmctY29sb3I6ICMxZjY5NTQ7XG5cbiRrYmQtYm9yZGVyLWNvbG9yOiAkc3Ryb25nLWlucHV0LWJvcmRlci1jb2xvcjtcblxuJHRvb2x0aXAtdGltZWxpbmUtYmctY29sb3I6ICRzcGFjZVBhbmVsLWJnLWNvbG9yO1xuJHRvb2x0aXAtdGltZWxpbmUtZmctY29sb3I6ICNmZmZmZmY7XG5cbiRicmVhZGNydW1iLXBsYWNlaG9sZGVyLWJnLWNvbG9yOiAjMjcyYzM1O1xuXG4vKiBTZWUgbm9uLWxlZ2FjeSBkYXJrIGZvciB2YXJpYWJsZSBpbmZvcm1hdGlvbiAqL1xuJHZvaWNlLXJlY29yZC1zdG9wLWJvcmRlci1jb2xvcjogIzZmNzg4MjtcbiR2b2ljZS1yZWNvcmQtaWNvbi1jb2xvcjogIzZmNzg4MjtcblxuJGNvbXBvc2VyLXNoYWRvdy1jb2xvcjogdHJhbnBhcmVudDtcblxuJGNvZGVibG9jay1iYWNrZ3JvdW5kLWNvbG9yOiAjMmEzMDM5O1xuJGlubGluZWNvZGUtYm9yZGVyLWNvbG9yOiAjMmEzMDM5O1xuJGlubGluZWNvZGUtYmFja2dyb3VuZC1jb2xvcjogIzJhMzAzOTtcblxuLyogQnViYmxlIHRpbGVzICovXG4kZXZlbnRidWJibGUtc2VsZi1iZzogIzE0MzIyZTtcbiRldmVudGJ1YmJsZS1vdGhlcnMtYmc6ICRldmVudC1zZWxlY3RlZC1jb2xvcjtcbiRldmVudGJ1YmJsZS1iZy1ob3ZlcjogIzFjMjAyNjtcblxuLyogTG9jYXRpb24gc2hhcmluZyAqL1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbiRsb2NhdGlvbi1tYXJrZXItY29sb3I6ICNmZmZmZmY7XG4kbG9jYXRpb24tbGl2ZS1jb2xvcjogIzVjNTZmNTtcbiRsb2NhdGlvbi1saXZlLXNlY29uZGFyeS1jb2xvcjogI2RlZGRmZDtcbi8qICoqKioqKioqKioqKioqKioqKioqICovXG5cbmJvZHkge1xuICAgIGNvbG9yLXNjaGVtZTogZGFyaztcbn1cblxuLyogTmFzdHkgaGFja3MgdG8gYXBwbHkgYSBmaWx0ZXIgdG8gYXJiaXRyYXJ5IG1vbm9jaHJvbWUgYXJ0d29yayB0byBtYWtlIGl0ICovXG4vKiBiZXR0ZXIgbWF0Y2ggdGhlIHRoZW1lLiAgVHlwaWNhbGx5IGFwcGxpZWQgdG8gZGFyayBncmV5ICdvZmYnIGJ1dHRvbnMgb3IgKi9cbi8qIGxpZ2h0IGdyZXkgJ29uJyBidXR0b25zLiAqL1xuLm14X2ZpbHRlckZsaXBDb2xvciB7XG4gICAgZmlsdGVyOiBpbnZlcnQoMSk7XG59XG5cbi8qIG1hcmtkb3duIG92ZXJyaWRlczogKi9cbi5teF9FdmVudFRpbGVfY29udGVudCAubWFya2Rvd24tYm9keSB7XG4gICAgdGFibGUge1xuICAgICAgICB0ciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xuICAgICAgICB9XG5cbiAgICAgICAgdHI6bnRoLWNoaWxkKDJuKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDgwODA4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBoaWdobGlnaHQuanMgb3ZlcnJpZGVzOiAqL1xuLmhsanMtdGFnIHtcbiAgICBjb2xvcjogaW5oZXJpdDsgLyogV2l0aG91dCB0aGlzIHRoZXknZCBiZSB3ZWlyZGx5IGJsdWUgd2hpY2ggZG9lc24ndCBtYXRjaCB0aGUgdGhlbWUgKi9cbn1cbiIsIi8qIGF1dG9nZW5lcmF0ZWQgYnkgcmV0aGVtZW5kZXguc2ggKi9cbkBpbXBvcnQgXCIuL19hbmltYXRpb25zLnBjc3NcIjtcbkBpbXBvcnQgXCIuL19jb21tb24ucGNzc1wiO1xuQGltcG9ydCBcIi4vX2ZvbnQtc2l6ZXMucGNzc1wiO1xuQGltcG9ydCBcIi4vX21ldG1ldC1icmFuZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fQmVhY29uTGlzdEl0ZW0ucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9iZWFjb24vX0JlYWNvblN0YXR1cy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fQmVhY29uU3RhdHVzVG9vbHRpcC5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fQmVhY29uVmlld0RpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fRGlhbG9nT3duQmVhY29uU3RhdHVzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19EaWFsb2dTaWRlYmFyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19MZWZ0UGFuZWxMaXZlU2hhcmVXYXJuaW5nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19MaXZlVGltZVJlbWFpbmluZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fT3duQmVhY29uU3RhdHVzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19TaGFyZUxhdGVzdExvY2F0aW9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19TdHlsZWRMaXZlQmVhY29uSWNvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2NvbnRleHRfbWVudXMvX0tlYmFiQ29udGV4dE1lbnUucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9kaWFsb2dzL3BvbGxzL19Qb2xsRGV0YWlsSGVhZGVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvZGlhbG9ncy9wb2xscy9fUG9sbExpc3RJdGVtLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvZGlhbG9ncy9wb2xscy9fUG9sbExpc3RJdGVtRW5kZWQucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9lbGVtZW50cy9fQXBwUGVybWlzc2lvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2VsZW1lbnRzL19BcHBXYXJuaW5nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvZWxlbWVudHMvX0ZpbHRlckRyb3Bkb3duLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvZWxlbWVudHMvX0ZpbHRlclRhYkdyb3VwLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvZWxlbWVudHMvX0xlYXJuTW9yZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19FbmFibGVMaXZlU2hhcmUucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fTGl2ZUR1cmF0aW9uRHJvcGRvd24ucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fTG9jYXRpb25TaGFyZU1lbnUucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fTWFwRXJyb3IucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fTWFwRmFsbGJhY2sucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fTWFya2VyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvbG9jYXRpb24vX1NoYXJlRGlhbG9nQnV0dG9ucy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19TaGFyZVR5cGUucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fWm9vbUJ1dHRvbnMucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9tZXNzYWdlcy9fTUJlYWNvbkJvZHkucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9tZXNzYWdlcy9zaGFyZWQvX01lZGlhUHJvY2Vzc2luZ0Vycm9yLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvcG9sbHMvX1BvbGxPcHRpb24ucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9fQWRkUmVtb3ZlVGhyZWVwaWRzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fQ3VycmVudERldmljZVNlY3Rpb24ucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19EZXZpY2VEZXRhaWxIZWFkaW5nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fRGV2aWNlRGV0YWlscy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX0RldmljZUV4cGFuZERldGFpbHNCdXR0b24ucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19EZXZpY2VTZWN1cml0eUNhcmQucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19EZXZpY2VUaWxlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fRGV2aWNlVHlwZUljb24ucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19GaWx0ZXJlZERldmljZUxpc3QucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19GaWx0ZXJlZERldmljZUxpc3RIZWFkZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19TZWN1cml0eVJlY29tbWVuZGF0aW9ucy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX1NlbGVjdGFibGVEZXZpY2VUaWxlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZW5jcnlwdGlvbi9fS2V5U3RvcmFnZVBhbmVsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3Mvc2hhcmVkL19TZXR0aW5nc1N1YnNlY3Rpb24ucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9zaGFyZWQvX1NldHRpbmdzU3Vic2VjdGlvbkhlYWRpbmcucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9zcGFjZXMvX1F1aWNrVGhlbWVTd2l0Y2hlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL3R5cG9ncmFwaHkvX0NhcHRpb24ucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG91bmQvX0ljb24ucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG91bmQvX1N1Y2Nlc3NEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fQXV0b0hpZGVTY3JvbGxiYXIucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fQXV0b2NvbXBsZXRlSW5wdXQucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fQ29tcGF0aWJpbGl0eVBhZ2UucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fQ29udGV4dHVhbE1lbnUucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fRXJyb3JNZXNzYWdlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX0ZpbGVEcm9wVGFyZ2V0LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX0ZpbGVQYW5lbC5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19HZW5lcmljRHJvcGRvd25NZW51LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX0hvbWVQYWdlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX0xhcmdlTG9hZGVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX0xlZnRQYW5lbC5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19NYWluU3BsaXQucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fTWF0cml4Q2hhdC5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19Ob25VcmdlbnRUb2FzdENvbnRhaW5lci5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19QaWN0dXJlSW5QaWN0dXJlRHJhZ2dlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19RdWlja1NldHRpbmdzQnV0dG9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX1JpZ2h0UGFuZWwucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fUm9vbVZpZXcucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fU2VhcmNoQm94LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX1NwYWNlSGllcmFyY2h5LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX1NwYWNlUGFuZWwucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fU3BhY2VQaWxsQnV0dG9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX1NwYWNlUm9vbVZpZXcucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fU3BsYXNoUGFnZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19UYWJiZWRWaWV3LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX1RocmVhZHNBY3Rpdml0eUNlbnRyZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19Ub2FzdENvbnRhaW5lci5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19VcGxvYWRCYXIucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fVmlld1NvdXJjZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL2F1dGgvX0NvbXBsZXRlU2VjdXJpdHkucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9hdXRoL19Db25maXJtU2Vzc2lvbkxvY2tUaGVmdFZpZXcucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9hdXRoL19Mb2dpbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL2F1dGgvX0xvZ2luU3BsYXNoVmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL2F1dGgvX01vYmlsZVJlZ2lzdHJhdGlvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL2F1dGgvX1JlZ2lzdHJhdGlvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL2F1dGgvX1Nlc3Npb25Mb2NrU3RvbGVuVmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL2F1dGgvX1NldHVwRW5jcnlwdGlvbkJvZHkucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9ndWVzdC9fR3Vlc3RPbmJvYXJkaW5nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F1ZGlvX21lc3NhZ2VzL19QbGF5YmFja0NvbnRhaW5lci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdWRpb19tZXNzYWdlcy9fU2Vla0Jhci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdWRpb19tZXNzYWdlcy9fV2F2ZWZvcm0ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXV0aC9fQXV0aEJvZHkucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXV0aC9fQXV0aEZvb3Rlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdXRoL19BdXRoSGVhZGVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F1dGgvX0F1dGhIZWFkZXJMb2dvLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F1dGgvX0F1dGhQYWdlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F1dGgvX0NvbXBsZXRlU2VjdXJpdHlCb2R5LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F1dGgvX0NvdW50cnlEcm9wZG93bi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdXRoL19EZWZhdWx0V2VsY29tZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdXRoL19JbnRlcmFjdGl2ZUF1dGhFbnRyeUNvbXBvbmVudHMucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXV0aC9fTGFuZ3VhZ2VTZWxlY3Rvci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdXRoL19Mb2dpbldpdGhRUi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdXRoL19QYXNzcGhyYXNlRmllbGQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXV0aC9fV2VsY29tZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdmF0YXJzL19CYXNlQXZhdGFyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F2YXRhcnMvX0RlY29yYXRlZFJvb21BdmF0YXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXZhdGFycy9fUm9vbUF2YXRhclZpZXcucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXZhdGFycy9fV2lkZ2V0QXZhdGFyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F2YXRhcnMvX1dpdGhQcmVzZW5jZUluZGljYXRvci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9iZXRhL19CZXRhQ2FyZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9jb250ZXh0X21lbnVzL19EZXZpY2VDb250ZXh0TWVudS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9jb250ZXh0X21lbnVzL19JY29uaXplZENvbnRleHRNZW51LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2NvbnRleHRfbWVudXMvX0xlZ2FjeUNhbGxDb250ZXh0TWVudS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19BZGRFeGlzdGluZ1RvU3BhY2VEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fQW5hbHl0aWNzTGVhcm5Nb3JlRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0J1Z1JlcG9ydERpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19DaGFuZ2Vsb2dEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fQ29tcG91bmREaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fQ29uZmlybUtleVN0b3JhZ2VPZmZEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fQ29uZmlybVNwYWNlVXNlckFjdGlvbkRpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19Db25maXJtVXNlckFjdGlvbkRpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19DcmVhdGVSb29tRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0NyZWF0ZVNlY3Rpb25EaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fQ3JlYXRlU3Vic3BhY2VEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fQ3J5cHRvLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0RlYWN0aXZhdGVBY2NvdW50RGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0RldnRvb2xzRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0V4aXRSb29tQ29uZmlybURpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19FeHBvcnREaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fRmVlZGJhY2tEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fRm9yd2FyZERpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19HZW5lcmljRmVhdHVyZUZlZWRiYWNrRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0luY29taW5nU2FzRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0ludml0ZURpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19JbnZpdGVQcm9ncmVzc0JvZHkucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fSm9pblJ1bGVEcm9wZG93bi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19MZWF2ZVNwYWNlRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0xvY2F0aW9uVmlld0RpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19Mb2dvdXREaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fTWFuYWdlUmVzdHJpY3RlZEpvaW5SdWxlRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX01lc3NhZ2VFZGl0SGlzdG9yeURpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19Nb2RhbFdpZGdldERpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19Qb2xsQ3JlYXRlRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1JlZ2lzdHJhdGlvbkVtYWlsUHJvbXB0RGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1JlbW92ZVNlY3Rpb25EaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fUmVwb3J0Um9vbURpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19Sb29tU2V0dGluZ3NEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fUm9vbVNldHRpbmdzRGlhbG9nQnJpZGdlcy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19Sb29tVXBncmFkZURpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19Sb29tVXBncmFkZVdhcm5pbmdEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fU2VydmVyT2ZmbGluZURpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19TZXJ2ZXJQaWNrZXJEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fU2V0RW1haWxEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fU2V0dGluZ3NEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fU2hhcmVEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fU2xhc2hDb21tYW5kSGVscERpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19TcGFjZVByZWZlcmVuY2VzRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1NwYWNlU2V0dGluZ3NEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fU3BvdGxpZ2h0RGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1Rlcm1zRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1VucGluQWxsRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1VwbG9hZENvbmZpcm1EaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fVXNlclNldHRpbmdzRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1ZlcmlmeUVNYWlsRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1dpZGdldENhcGFiaWxpdGllc1Byb21wdERpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL2ludml0ZS9fVW5rbm93bklkZW50aXR5VXNlcnNXYXJuaW5nRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3Mvc2VjdXJpdHkvX0FjY2Vzc1NlY3JldFN0b3JhZ2VEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9zZWN1cml0eS9fQ3JlYXRlQ3Jvc3NTaWduaW5nRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3Mvc2VjdXJpdHkvX0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9zZWN1cml0eS9fS2V5QmFja3VwRmFpbGVkRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3Mvc2VjdXJpdHkvX1Jlc3RvcmVLZXlCYWNrdXBEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlyZWN0b3J5L19OZXR3b3JrRHJvcGRvd24ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX0FjY2Vzc2libGVCdXR0b24ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX0NvcHlhYmxlVGV4dC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fRGVza3RvcENhcHR1cmVyU291cmNlUGlja2VyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19EaWFsUGFkQmFja3NwYWNlQnV0dG9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19Ecm9wZG93bi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fRWRpdGFibGVJdGVtTGlzdC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fRXJyb3JCb3VuZGFyeS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fRXh0ZXJuYWxMaW5rLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19GYWNlUGlsZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fRmllbGQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19JbWFnZVZpZXcucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX0luZm9Ub29sdGlwLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19JbmxpbmVTcGlubmVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19JbnRlcmFjdGl2ZVRvb2x0aXAucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX0ludml0ZVJlYXNvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fTGFiZWxsZWRDaGVja2JveC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fTGFuZ3VhZ2VEcm9wZG93bi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fTWluaUF2YXRhclVwbG9hZGVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19QaWxsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19Qb3dlclNlbGVjdG9yLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19Qcm9ncmVzc0Jhci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fUVJDb2RlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19SZXBseUNoYWluLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19SZXNpemVIYW5kbGUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1JpY2hUZXh0LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19Sb29tQWxpYXNGaWVsZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fU1NPQnV0dG9ucy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fU2VhcmNoV2FybmluZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fU2VydmVyUGlja2VyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19TZXR0aW5nc0Ryb3Bkb3duLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19TZXR0aW5nc0ZsYWcucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1NwaW5uZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1N0eWxlZFJhZGlvQnV0dG9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19TeW50YXhIaWdobGlnaHQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1RhZ0NvbXBvc2VyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19UZXh0V2l0aFRvb2x0aXAucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1RvZ2dsZVN3aXRjaC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fVmFsaWRhdGlvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9sb2NhdGlvbi9fTG9jYXRpb25QaWNrZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvbWVzc2FnZXMvX0NhbGxFdmVudC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9tZXNzYWdlcy9fQ3JlYXRlRXZlbnQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvbWVzc2FnZXMvX0Rpc2FtYmlndWF0ZWRQcm9maWxlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL21lc3NhZ2VzL19MZWdhY3lDYWxsRXZlbnQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvbWVzc2FnZXMvX01JbWFnZVJlcGx5Qm9keS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9tZXNzYWdlcy9fTUxvY2F0aW9uQm9keS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9tZXNzYWdlcy9fTVBvbGxCb2R5LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL21lc3NhZ2VzL19NU3RpY2tlckJvZHkucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvbWVzc2FnZXMvX01lc3NhZ2VBY3Rpb25CYXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvbWVzc2FnZXMvX1RleHR1YWxFdmVudC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9tZXNzYWdlcy9fVGhyZWFkQWN0aW9uQmFyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL21lc3NhZ2VzL19jb21tb25fQ3J5cHRvRXZlbnQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvcG9sbHMvcG9sbEhpc3RvcnkvX1BvbGxIaXN0b3J5LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3BvbGxzL3BvbGxIaXN0b3J5L19Qb2xsSGlzdG9yeUxpc3QucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvcmlnaHRfcGFuZWwvX0Jhc2VDYXJkLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3JpZ2h0X3BhbmVsL19FbXB0eVN0YXRlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3JpZ2h0X3BhbmVsL19FbmNyeXB0aW9uSW5mby5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yaWdodF9wYW5lbC9fRXh0ZW5zaW9uc0NhcmQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvcmlnaHRfcGFuZWwvX1Bpbm5lZE1lc3NhZ2VzQ2FyZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yaWdodF9wYW5lbC9fUm9vbVN1bW1hcnlDYXJkLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3JpZ2h0X3BhbmVsL19UaHJlYWRQYW5lbC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yaWdodF9wYW5lbC9fVGltZWxpbmVDYXJkLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3JpZ2h0X3BhbmVsL19Vc2VySW5mby5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yaWdodF9wYW5lbC9fVmVyaWZpY2F0aW9uUGFuZWwucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvcmlnaHRfcGFuZWwvX1dpZGdldENhcmQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbV9zZXR0aW5ncy9fQWxpYXNTZXR0aW5ncy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9Sb29tTGlzdFBhbmVsL19Sb29tTGlzdFBhbmVsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19BcHBzRHJhd2VyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19BdXRvY29tcGxldGUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX0F1eFBhbmVsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19CYXNpY01lc3NhZ2VDb21wb3Nlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fQ2FsbEd1ZXN0TGlua0J1dHRvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fRTJFSWNvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fRTJFSWNvblZpZXcucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX0VkaXRNZXNzYWdlQ29tcG9zZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX0Vtb2ppQnV0dG9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19FdmVudEJ1YmJsZVRpbGUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX0V2ZW50VGlsZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fSGlzdG9yeVRpbGUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX0lSQ0xheW91dC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fSW52aXRlZEljb25WaWV3LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19KdW1wVG9Cb3R0b21CdXR0b24ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX0xpdmVDb250ZW50U3VtbWFyeS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fTWVtYmVyTGlzdEhlYWRlclZpZXcucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX01lbWJlckxpc3RWaWV3LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19NZW1iZXJUaWxlVmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fTWVzc2FnZUNvbXBvc2VyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19NZXNzYWdlQ29tcG9zZXJGb3JtYXRCYXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX05ld1Jvb21JbnRyby5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fT3ZlcmZsb3dUaWxlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19QaW5uZWRFdmVudFRpbGUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1Bpbm5lZE1lc3NhZ2VCYW5uZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1ByZXNlbmNlSWNvblZpZXcucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1ByZXNlbmNlTGFiZWwucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1JlYWRSZWNlaXB0R3JvdXAucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1JlcGx5UHJldmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fUmVwbHlUaWxlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19Sb29tSGVhZGVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19Sb29tSW5mb0xpbmUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1Jvb21Lbm9ja3NCYXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1Jvb21QcmV2aWV3QmFyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19Sb29tUHJldmlld0NhcmQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1Jvb21TZWFyY2hBdXhQYW5lbC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fUm9vbVVwZ3JhZGVXYXJuaW5nQmFyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19TZW5kTWVzc2FnZUNvbXBvc2VyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19TdGlja2Vycy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fVGhpcmRQYXJ0eU1lbWJlckluZm8ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1RvcFVucmVhZE1lc3NhZ2VzQmFyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19Vc2VySWRlbnRpdHlXYXJuaW5nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19Wb2ljZVJlY29yZENvbXBvc2VyVGlsZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fV2hvSXNUeXBpbmdUaWxlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL3d5c2l3eWdfY29tcG9zZXIvX0VkaXRXeXNpd3lnQ29tcG9zZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvd3lzaXd5Z19jb21wb3Nlci9fU2VuZFd5c2l3eWdDb21wb3Nlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy93eXNpd3lnX2NvbXBvc2VyL2NvbXBvbmVudHMvX0VkaXRvci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy93eXNpd3lnX2NvbXBvc2VyL2NvbXBvbmVudHMvX0Zvcm1hdHRpbmdCdXR0b25zLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL3d5c2l3eWdfY29tcG9zZXIvY29tcG9uZW50cy9fTGlua01vZGFsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19BdmF0YXJTZXR0aW5nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19Gb250U2NhbGluZ1BhbmVsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19JbWFnZVNpemVQYW5lbC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9fSW50ZWdyYXRpb25NYW5hZ2VyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19Kb2luUnVsZVNldHRpbmdzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19LZXlib2FyZFNob3J0Y3V0LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19MYXlvdXRTd2l0Y2hlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9fTm90aWZpY2F0aW9uUHVzaGVyU2V0dGluZ3MucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX05vdGlmaWNhdGlvblNldHRpbmdzMi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9fTm90aWZpY2F0aW9ucy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9fUGhvbmVOdW1iZXJzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19Qb3dlckxldmVsU2VsZWN0b3IucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX1Jvb21Qcm9maWxlU2V0dGluZ3MucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX1NldEludGVncmF0aW9uTWFuYWdlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9fU2V0dGluZ3NGaWVsZHNldC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9fU2V0dGluZ3NIZWFkZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX1NldHRpbmdzU3ViaGVhZGVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19TcGVsbENoZWNrTGFuZ3VhZ2VzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19UaGVtZUNob2ljZVBhbmVsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19VcGRhdGVDaGVja0J1dHRvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9fVXNlclBlcnNvbmFsSW5mb1NldHRpbmdzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19Vc2VyUHJvZmlsZVNldHRpbmdzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL2VuY3J5cHRpb24vX0FkdmFuY2VkUGFuZWwucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvZW5jcnlwdGlvbi9fQ2hhbmdlUmVjb3ZlcnlLZXkucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvZW5jcnlwdGlvbi9fRW5jcnlwdGlvbkNhcmQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvZW5jcnlwdGlvbi9fRW5jcnlwdGlvbkNhcmRFbXBoYXNpc2VkQ29udGVudC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9lbmNyeXB0aW9uL19SZWNvdmVyeVBhbmVsT3V0T2ZTeW5jLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL2VuY3J5cHRpb24vX1Jlc2V0SWRlbnRpdHlQYW5lbC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy90YWJzL19TZXR0aW5nc0Jhbm5lci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy90YWJzL19TZXR0aW5nc0luZGVudC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy90YWJzL19TZXR0aW5nc1NlY3Rpb24ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvdGFicy9fU2V0dGluZ3NUYWIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvdGFicy9yb29tL19Ob3RpZmljYXRpb25TZXR0aW5nc1RhYi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy90YWJzL3Jvb20vX1Blb3BsZVJvb21TZXR0aW5nc1RhYi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy90YWJzL3Jvb20vX1JvbGVzUm9vbVNldHRpbmdzVGFiLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvcm9vbS9fU2VjdXJpdHlSb29tU2V0dGluZ3NUYWIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvdGFicy91c2VyL19BcHBlYXJhbmNlVXNlclNldHRpbmdzVGFiLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvdXNlci9fSGVscFVzZXJTZXR0aW5nc1RhYi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy90YWJzL3VzZXIvX0tleWJvYXJkVXNlclNldHRpbmdzVGFiLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvdXNlci9fTWVkaWFQcmV2aWV3QWNjb3VudFNldHRpbmdzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvdXNlci9fTWpvbG5pclVzZXJTZXR0aW5nc1RhYi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy90YWJzL3VzZXIvX1ByZWZlcmVuY2VzVXNlclNldHRpbmdzVGFiLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvdXNlci9fU2VjdXJpdHlVc2VyU2V0dGluZ3NUYWIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvdGFicy91c2VyL19TaWRlYmFyVXNlclNldHRpbmdzVGFiLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NwYWNlcy9fU3BhY2VCYXNpY1NldHRpbmdzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NwYWNlcy9fU3BhY2VDaGlsZHJlblBpY2tlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zcGFjZXMvX1NwYWNlQ3JlYXRlTWVudS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy90ZXJtcy9fSW5saW5lVGVybXNBZ3JlZW1lbnQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvdG9hc3RzL19BbmFseXRpY3NUb2FzdC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy90b2FzdHMvX0luY29taW5nQ2FsbFRvYXN0LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3RvYXN0cy9fSW5jb21pbmdMZWdhY3lDYWxsVG9hc3QucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvdG9hc3RzL19Ob25VcmdlbnRFY2hvRmFpbHVyZVRvYXN0LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3R5cG9ncmFwaHkvX0hlYWRpbmcucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvdmVyaWZpY2F0aW9uL19WZXJpZmljYXRpb25TaG93U2FzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3ZvaXAvTGVnYWN5Q2FsbFZpZXcvX0xlZ2FjeUNhbGxWaWV3QnV0dG9ucy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy92b2lwL19DYWxsRHVyYXRpb24ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvdm9pcC9fQ2FsbFZpZXcucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvdm9pcC9fRGlhbFBhZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy92b2lwL19EaWFsUGFkQ29udGV4dE1lbnUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvdm9pcC9fRGlhbFBhZE1vZGFsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3ZvaXAvX0xlZ2FjeUNhbGxWaWV3LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3ZvaXAvX0xlZ2FjeUNhbGxWaWV3Rm9yUm9vbS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy92b2lwL19MZWdhY3lDYWxsVmlld0hlYWRlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy92b2lwL19MZWdhY3lDYWxsVmlld1NpZGViYXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvdm9pcC9fVmlkZW9GZWVkLnBjc3NcIjtcbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi8qKlxuICogUmVhY3QgVHJhbnNpdGlvbiBHcm91cCBhbmltYXRpb25zIGFyZSBwcmVmaXhlZCB3aXRoICdteF9ydGctLScgc28gdGhhdCB3ZVxuICoga25vdyB0aGV5IHNob3VsZCBub3QgYmUgdXNlZCBhbnl3aGVyZSBvdXRzaWRlIG9mIFJlYWN0IFRyYW5zaXRpb24gR3JvdXBzLlxuKi9cblxuLm14X3J0Zy0tZmFkZS1lbnRlciB7XG4gICAgb3BhY2l0eTogMDtcbn1cbi5teF9ydGctLWZhZGUtZW50ZXItYWN0aXZlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMzAwbXMgZWFzZTtcbn1cbi5teF9ydGctLWZhZGUtZXhpdCB7XG4gICAgb3BhY2l0eTogMTtcbn1cbi5teF9ydGctLWZhZGUtZXhpdC1hY3RpdmUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcyBlYXNlO1xufVxuXG46cm9vdCB7XG4gICAgLS1ob3Zlci10cmFuc2l0aW9uOiAwLjA4cyBjdWJpYy1iZXppZXIoMC40NiwgMC4wMywgMC41MiwgMC45Nik7IC8qIHF1YWRyYXRpYyAqL1xufVxuXG5Aa2V5ZnJhbWVzIG14LS1hbmltLXB1bHNlIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIDUwJSB7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIG14X0RpYWxvZ19saWdodGJveF9iYWNrZ3JvdW5kX2tleWZyYW1lcyB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogJGxpZ2h0Ym94LWJhY2tncm91bmQtYmctb3BhY2l0eTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgbXhfSW1hZ2VWaWV3X3BhbmVsX2tleWZyYW1lcyB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbikge1xuICAgIEBrZXlmcmFtZXMgbXgtLWFuaW0tcHVsc2Uge1xuICAgICAgICAvKiBPdmVycmlkZSBhbGwga2V5ZnJhbWVzIGluIHJlZHVjZWQtbW90aW9uICovXG4gICAgfVxuXG4gICAgQGtleWZyYW1lcyBteF9EaWFsb2dfbGlnaHRib3hfYmFja2dyb3VuZF9rZXlmcmFtZXMge1xuICAgICAgICAvKiBPdmVycmlkZSBhbGwga2V5ZnJhbWVzIGluIHJlZHVjZWQtbW90aW9uICovXG4gICAgfVxuXG4gICAgQGtleWZyYW1lcyBteF9JbWFnZVZpZXdfcGFuZWxfa2V5ZnJhbWVzIHtcbiAgICAgICAgLyogT3ZlcnJpZGUgYWxsIGtleWZyYW1lcyBpbiByZWR1Y2VkLW1vdGlvbiAqL1xuICAgIH1cblxuICAgIC5teF9ydGctLWZhZGUtZW50ZXItYWN0aXZlIHtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG4gICAgLm14X3J0Zy0tZmFkZS1leGl0LWFjdGl2ZSB7XG4gICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTktMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DXG5Db3B5cmlnaHQgMjAxNy0yMDE5IE5ldyBWZWN0b3IgTHRkXG5Db3B5cmlnaHQgMjAxNyBWZWN0b3IgQ3JlYXRpb25zIEx0ZFxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuQGltcG9ydCBcIi4vX2ZvbnQtc2l6ZXMucGNzc1wiO1xuQGltcG9ydCBcIi4vX2FuaW1hdGlvbnMucGNzc1wiO1xuXG46cm9vdCB7XG4gICAgLS1jb250YWluZXItYm9yZGVyLXdpZHRoOiA4cHg7XG4gICAgLS1jb250YWluZXItZ2FwLXdpZHRoOiA4cHg7IC8qIG9ubHkgZXZlbiBudW1iZXJzIHNob3VsZCBiZSB1c2VkIGJlY2F1c2Ugb3RoZXJ3aXNlIHdlIGdldCAwLjVweCBtYXJnaW4gdmFsdWVzLiAqL1xuICAgIC0tdHJhbnNpdGlvbi1zaG9ydDogMC4xcztcbiAgICAtLXRyYW5zaXRpb24tc3RhbmRhcmQ6IDAuM3M7XG4gICAgLS1idXR0b25zLWRpYWxvZy1nYXAtcm93OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIC0tYnV0dG9ucy1kaWFsb2ctZ2FwLWNvbHVtbjogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAtLU1Cb2R5LWJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAtLUV2ZW50VGlsZUJ1YmJsZV9tYXJnaW4tYmxvY2s6IDEwcHg7XG4gICAgLS1NZXNzYWdlVGltZXN0YW1wLXdpZHRoOiA0NnB4OyAvKiA4ICsgMzAgKGF2YXRhcikgKyA4ICovXG5cbiAgICAvKiBFeHBlY3RlZCB6LWluZGV4ZXMgZm9yIGRpYWxvZ3M6XG4gICAgICAgIDQwMDAgLSBEZWZhdWx0IHdyYXBwZXIgaW5kZXhcbiAgICAgICAgNDAwOSAtIFN0YXRpYyBkaWFsb2cgYmFja2dyb3VuZFxuICAgICAgICA0MDEwIC0gU3RhdGljIGRpYWxvZyBpdHNlbGZcbiAgICAgICAgNDAxMSAtIFN0YW5kYXJkIGRpYWxvZyBiYWNrZ3JvdW5kXG4gICAgICAgIDQwMTIgLSBTdGFuZGFyZCBkaWFsb2cgaXRzZWxmXG5cbiAgICAgICBUaGVzZSBhcmUgc2V0IHVwIHN1Y2ggdGhhdCB0aGUgc3RhdGljIGRpYWxvZyBhbHdheXMgYXBwZWFyc1xuICAgICAgIHVuZGVybmVhdGggdGhlIHN0YW5kYXJkIGRpYWxvZ3MuXG4gICAgICovXG4gICAgLS1kaWFsb2ctekluZGV4LXdyYXBwZXItZGVmYXVsdDogNDAwMDtcbiAgICAtLWRpYWxvZy16SW5kZXgtc3RhdGljLWJhY2tncm91bmQ6IDQwMDk7XG4gICAgLS1kaWFsb2ctekluZGV4LXN0YXRpYzogY2FsYyh2YXIoLS1kaWFsb2ctekluZGV4LXN0YXRpYy1iYWNrZ3JvdW5kKSArIDEpOyAvKiA0MDEwICovXG4gICAgLS1kaWFsb2ctekluZGV4LXN0YW5kYXJkLWJhY2tncm91bmQ6IGNhbGModmFyKC0tZGlhbG9nLXpJbmRleC1zdGF0aWMpICsgMSk7IC8qIDQwMTEgKi9cbiAgICAtLWRpYWxvZy16SW5kZXgtc3RhbmRhcmQ6IGNhbGModmFyKC0tZGlhbG9nLXpJbmRleC1zdGFuZGFyZC1iYWNrZ3JvdW5kKSArIDEpOyAvKiA0MDEyICovXG59XG5cbiNtYXRyaXhjaGF0IHtcbiAgICAvKiBUaGlzIGlzIHJlcXVpcmVkIHRvIGVuc3VyZSBDb21wb3VuZCB0b29sdGlwcyBjb3JyZWN0bHkgZHJhdyB3aGVyZSB0aGV5IHNob3VsZCB3aXRoIHotaW5kZXg6IGF1dG8gKi9cbiAgICBjb250YWluOiBzdHJpY3Q7XG59XG4jbXhfQ29udGV4dHVhbE1lbnVfQ29udGFpbmVyLFxuI214X1BlcnNpc3RlZEVsZW1lbnRfY29udGFpbmVyLFxuI214X0RpYWxvZ19Db250YWluZXIsXG4jbXhfRGlhbG9nX1N0YXRpY0NvbnRhaW5lciB7XG4gICAgLyogVGhpcyBpcyByZXF1aXJlZCB0byBlbnN1cmUgQ29tcG91bmQgdG9vbHRpcHMgY29ycmVjdGx5IGRyYXcgd2hlcmUgdGhleSBzaG91bGQgd2l0aCB6LWluZGV4OiBhdXRvICovXG4gICAgaXNvbGF0aW9uOiBpc29sYXRlO1xufVxuXG4vKipcbiAqIERpc2FibGUgcG9pbnRlciBldmVudHMgaW5zaWRlIHRoZSBwZXJzaXN0ZW50RWxlbWVudCBjb250YWluZXIgd2hlbiB0aGUgcm9vbS1saXN0IGlzIGJlaW5nIHJlc2l6ZWQuXG4gKiBUaGlzIGlzIG5lY2Vzc2FyeSB0byBhdm9pZCB0aGUgcG9pbnRlciBldmVudHMgZnJvbSBiZWluZyBoaWphY2tlZCBieSB0aGUgY29udGVudCByZW5kZXJlZCBpbnNpZGVcbiAqIHRoYXQgZGl2LlxuICovXG46cm9vdDpoYXMoLm14X1NlcGFyYXRvcltkYXRhLXNlcGFyYXRvcj1cImFjdGl2ZVwiXSkgI214X1BlcnNpc3RlZEVsZW1lbnRfY29udGFpbmVyIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLyoqXG4gKiBXZSBuZWVkIHRvIGluY3JlYXNlIHRoZSBzcGVjaWZpY2l0eSBvZiB0aGUgc2VsZWN0b3IgdG8gb3ZlcnJpZGUgdGhlXG4gKiBjdXN0b20gcHJvcGVydHkgc2V0IGJ5IHRoZSBkZXNpZ24gdG9rZW5zIHBhY2thZ2VcbiAqL1xuW2NsYXNzXj1cImNwZC10aGVtZVwiXVtjbGFzc149XCJjcGQtdGhlbWVcIl0ge1xuICAgIC8qKlxuICAgICAqIFRoZSBkZXNpZ24gdG9rZW5zIHBhY2thZ2UgY3VycmVudGx5IGRvZXMgbm90IGV4cG9zZSB0aGUgZmFsbGJhY2sgZm9udHNcbiAgICAgKiBXZSB3YW50IHRvIGtlZXAgb24gcmUtdXNpbmcgYCRmb250LWZhbWlseWAgdG8gbm90IGJyZWFrIGN1c3RvbSB0aGVtZXNcbiAgICAgKiBhbmQgYmVjYXVzZSB3ZSBjYW4gdG8gdXNlIGBUd2Vtb2ppYCB0byBkaXNwbGF5IGVtb2ppIHJhdGhlciB0aGFuIHVzaW5nXG4gICAgICogc3lzdGVtIG9uZXNcbiAgICAgKi9cbiAgICAtLWNwZC1mb250LWZhbWlseS1zYW5zOiAkZm9udC1mYW1pbHk7XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbikge1xuICAgIDpyb290IHtcbiAgICAgICAgLS10cmFuc2l0aW9uLXNob3J0OiAwO1xuICAgICAgICAtLXRyYW5zaXRpb24tc3RhbmRhcmQ6IDA7XG4gICAgfVxufVxuXG5odG1sIHtcbiAgICAvKiBoYWNrIHRvIHN0b3Agb3ZlcnNjcm9sbCBib3VuY2Ugb24gT1NYIGFuZCBpT1MuXG4gICAgICAgTi5CLiBCcmVha3MgdGhpbmdzIHdoZW4gd2UgaGF2ZSBsZWdpdGltYXRlIGhvcml6b250YWwgb3ZlcnNjcm9sbCAqL1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIC8qIFN0b3Agc2ltaWxhciBvdmVyc2Nyb2xsIGJvdW5jZSBpbiBGaXJlZm94IE5pZ2h0bHkgZm9yIG1hY09TICovXG4gICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogbm9uZTtcbn1cblxuYm9keSB7XG4gICAgLyogIWltcG9ydGFudCBiZWNhdXNlIGNvbXBvdW5kIG92ZXJyaWRlcyB0aGVzZSBmb250IHNldHRpbmdzIGZvciBib2R5ICovXG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKSAhaW1wb3J0YW50O1xuICAgIGxldHRlci1zcGFjaW5nOiB2YXIoLS1jcGQtZm9udC1sZXR0ZXItc3BhY2luZy1ib2R5LW1kKSAhaW1wb3J0YW50O1xuICAgIC8qKlxuICAgICAqIFdlIHdhbnQgdG8gYXBwbHkgSW50ZXIgRHluYW1pYyBtZXRyaWNzIChodHRwczovL3JzbXMubWUvaW50ZXIvZHlubWV0cmljcy8pXG4gICAgICogV2UgbmVlZCB0byB0d2VhayB0aGUgYGxldHRlci1zcGFjaW5nYCBwcm9wZXJ0eSBhbmQgZG9pbmcgc28sIGRpc2FibGVzIGJ5XG4gICAgICogZGVmYXVsdCB0aGUgb3B0aW9uYWwgbGlnYXR1cmVzXG4gICAgICogYGZvbnQtZmVhdHVyZS1zZXR0aW5nc2AgYWxsb3dzIHVzIHRvIG92ZXJyaWRlIHRoaXMgYmVoYXZpb3VyIGFuZCBoYXZlIHRoZVxuICAgICAqIGNvcnJlY3QgbGlnYXR1cmVzIGFuZCB0aGUgcHJvcGVyIGR5bmFtaWMgbWV0cmljIHNwYWNpbmcuXG4gICAgICovXG4gICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOlxuICAgICAgICBcImtlcm5cIiAxLFxuICAgICAgICBcImxpZ2FcIiAxLFxuICAgICAgICBcImNhbHRcIiAxICFpbXBvcnRhbnQ7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBib3JkZXI6IDBweDtcbiAgICBtYXJnaW46IDBweDtcblxuICAgIC8qIG5lZWRlZCB0byBtYXRjaCB0aGUgZGVzaWducyBjb3JyZWN0bHkgb24gbWFjT1MgKi9cbiAgICAvKiBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3ZlY3Rvci1pbS9lbGVtZW50LXdlYi9pc3N1ZXMvMTE0MjUgKi9cbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG5wcmUsXG5jb2RlIHtcbiAgICBmb250LWZhbWlseTogJG1vbm9zcGFjZS1mb250LWZhbWlseTtcbiAgICBmb250LXNpemU6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLmVycm9yLFxuLndhcm5pbmcsXG4udGV4dC1lcnJvcixcbi50ZXh0LXdhcm5pbmcge1xuICAgIGNvbG9yOiAkYWxlcnQ7XG59XG5cbi50ZXh0LXN1Y2Nlc3Mge1xuICAgIGNvbG9yOiAkYWNjZW50O1xufVxuXG4udGV4dC1tdXRlZCB7XG4gICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbn1cblxuLnRleHQtcHJpbWFyeSB7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG59XG5cbi50ZXh0LXNlY29uZGFyeSB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbn1cblxuLm14X1ZlcmlmaWVkIHtcbiAgICBjb2xvcjogJGUyZS12ZXJpZmllZC1jb2xvcjtcbn1cblxuLm14X1VudHJ1c3RlZCB7XG4gICAgY29sb3I6ICRlMmUtd2FybmluZy1jb2xvcjtcbn1cblxuYiB7XG4gICAgLyogT24gRmlyZWZveCwgdGhlIGRlZmF1bHQgd2VpZ2h0IGZvciBgPGI+YCBpcyBgYm9sZGVyYCB3aGljaCByZXN1bHRzIGluIG5vIGJvbGQgKi9cbiAgICAvKiBlZmZlY3Qgc2luY2Ugd2Ugb25seSBoYXZlIHNwZWNpZmljIHdlaWdodHMgb2Ygb3VyIGZvbnRzIGF2YWlsYWJsZS4gKi9cbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyogS2VlcCB0aGUgbGVnYWN5IGxpbmsgY29sb3VyIHdpdGhvdXQgb3ZlcnJpZGluZyBDb21wb3VuZCBhbmNob3JzIG9yIHNoYXJlZCB0aW1lc3RhbXAgc3R5bGluZy4gKi9cbmE6d2hlcmUoOm5vdChbZGF0YS1raW5kXSk6bm90KC5teF9NZXNzYWdlVGltZXN0YW1wKSk6aG92ZXIsXG5hOndoZXJlKDpub3QoW2RhdGEta2luZF0pOm5vdCgubXhfTWVzc2FnZVRpbWVzdGFtcCkpOmxpbmssXG5hOndoZXJlKDpub3QoW2RhdGEta2luZF0pOm5vdCgubXhfTWVzc2FnZVRpbWVzdGFtcCkpOnZpc2l0ZWQge1xuICAgIGNvbG9yOiAkYWNjZW50LWFsdDtcbn1cblxuOm5vdCgubXhfbm9fdGV4dGlucHV0KTpub3QoLm14X3RleHRpbnB1dCk6bm90KC5teF9GaWVsZCkgPiBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbjpub3QoLm14X25vX3RleHRpbnB1dCk6bm90KC5teF90ZXh0aW5wdXQpOm5vdCgubXhfRmllbGQpID4gaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgcGFkZGluZzogOXB4O1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtc2VtaWJvbGQpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuaW5wdXRbdHlwZT1cInRleHRcIl0ubXhfdGV4dGlucHV0X2ljb24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdLm14X3RleHRpbnB1dF9pY29uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDM2cHg7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMHB4IGNlbnRlcjtcbn1cblxuLyogRklYTUUgVEhFTUUgLSBUaW50IGJ5IENTUyByYXRoZXIgdGhhbiByZWZlcmVuY2luZyBhIGR1cGxpY2F0ZSBhc3NldCAqL1xuaW5wdXRbdHlwZT1cInRleHRcIl0ubXhfdGV4dGlucHV0X2ljb24ubXhfdGV4dGlucHV0X3NlYXJjaCxcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ubXhfdGV4dGlucHV0X2ljb24ubXhfdGV4dGlucHV0X3NlYXJjaCB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiQHZlY3Rvci1pbS9jb21wb3VuZC1kZXNpZ24tdG9rZW5zL2ljb25zL3NlYXJjaC5zdmdcIik7XG59XG5cbi8qIGRvbnQgc2VhcmNoIFVJIGFzIG5vdCBhbGwgYnJvd3NlcnMgc3VwcG9ydCBpdCwgKi9cbi8qIHdlIGltcGxlbWVudCBpdCBvdXJzZWx2ZXMgd2hlcmUgbmVlZGVkIGluc3RlYWQgKi9cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIE92ZXJyaWRlIEZpcmVmb3gncyBVQSBzdHlsZSBzbyB3ZSBnZXQgYSBjb25zaXN0ZW50IGxvb2sgYWNyb3NzIGJyb3dzZXJzICovXG5pbnB1dDo6cGxhY2Vob2xkZXIsXG50ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICAgIG9wYWNpdHk6IGluaXRpYWw7XG59XG5cbmlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxudGV4dGFyZWEge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xufVxuXG4vKiBSZXF1aXJlZCBieSBGaXJlZm94ICovXG50ZXh0YXJlYSB7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG59XG5cbmlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzLFxudGV4dGFyZWE6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLyogVGhpcyBpcyB1c2VkIHRvIGhpZGUgdGhlIHN0YW5kYXJkIG91dGxpbmUgYWRkZWQgYnkgYnJvd3NlcnMgZm9yICovXG4vKiBhY2Nlc3NpYmxlIChmb2N1c2FibGUpIGNvbXBvbmVudHMuIE5vdCBpbnRlbmRlZCBmb3IgYnV0dG9ucywgYnV0ICovXG4vKiBzaG91bGQgYmUgdXNlZCBvbiB0aGluZ3MgbGlrZSBmb2N1c2FibGUgY29udGFpbmVycyB3aGVyZSB0aGUgb3V0bGluZSAqL1xuLyogaXMgdXN1YWxseSBub3QgaGVscGluZyBhbnlvbmUuICovXG4qOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG5cbnN1bW1hcnkge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLyogLm14X3RleHRpbnB1dCBpcyBhIGNvbnRhaW5lciBmb3IgYSB0ZXh0IGlucHV0ICovXG4vKiArIHNvbWUgb3RoZXIgY29udHJvbHMgbGlrZSBidXR0b25zLCAuLi4gKi9cbi8qIGl0IGhhcyB0aGUgYXBwZWFyYW5jZSBvZiBhIHRleHQgYm94IHNvIHRoZSBjb250cm9scyAqL1xuLyogYXBwZWFyIHRvIGJlIHBhcnQgb2YgdGhlIGlucHV0ICovXG5cbi5teF9EaWFsb2csXG4ubXhfTWF0cml4Q2hhdF93cmFwcGVyIHtcbiAgICAubXhfdGV4dGlucHV0ID4gaW5wdXRbdHlwZT1cInRleHRcIl0sXG4gICAgLm14X3RleHRpbnB1dCA+IGlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIH1cblxuICAgIDpub3QoLm14X3RleHRpbnB1dCk6bm90KC5teF9GaWVsZCk6bm90KC5teF9ub190ZXh0aW5wdXQpID4gaW5wdXRbdHlwZT1cInRleHRcIl0sXG4gICAgOm5vdCgubXhfdGV4dGlucHV0KTpub3QoLm14X0ZpZWxkKTpub3QoLm14X25vX3RleHRpbnB1dCkgPiBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuICAgIC5teF90ZXh0aW5wdXQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkaW5wdXQtZGFya2VyLWZnLWNvbG9yO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZWNvbmRhcnktaGFpcmxpbmUtY29sb3I7XG4gICAgICAgIC8qIHRoZXNlIHRoaW5ncyBzaG91bGQgcHJvYmFibHkgbm90IGJlIGRlZmluZWQgZ2xvYmFsbHkgKi9cbiAgICAgICAgbWFyZ2luOiA5cHg7XG4gICAgfVxuXG4gICAgLm14X3RleHRpbnB1dCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgOm5vdCgubXhfdGV4dGlucHV0KTpub3QoLm14X0ZpZWxkKTpub3QoLm14X25vX3RleHRpbnB1dCkgPiBpbnB1dFt0eXBlPVwidGV4dFwiXTo6cGxhY2Vob2xkZXIsXG4gICAgOm5vdCgubXhfdGV4dGlucHV0KTpub3QoLm14X0ZpZWxkKTpub3QoLm14X25vX3RleHRpbnB1dCkgPiBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjpwbGFjZWhvbGRlcixcbiAgICAubXhfdGV4dGlucHV0IGlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiAkaW5wdXQtcGxhY2Vob2xkZXI7XG4gICAgfVxufVxuXG4vKiBQcmV2ZW50IHVnbHkgZG90dGVkIGhpZ2hsaWdodCBhcm91bmQgc2VsZWN0ZWQgZWxlbWVudHMgaW4gRmlyZWZveCAqL1xuOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG59XG5cbi8qIFRoZXNlIGFyZSBtYWdpYyBjb25zdGFudHMgd2hpY2ggYXJlIGV4Y2x1ZGVkIGZyb20gdGludGluZywgdG8gbGV0IHRoZW1lcyAqL1xuLyogKHdoaWNoIG9ubHkgaGF2ZSBDU1MpIHRlbGwgdGhlIGFwcCB3aGF0IHRoZWlyIG5vbi10aW50ZWQgKi9cbi8qIGNvbG91cnNjaGVtZSBpcyBieSBpbnNwZWN0aW5nIHRoZSBzdHlsZXNoZWV0IERPTS4gKi9cbi8qIFRoZXkgYXJlIG5vdCB1c2VkIGZvciBsYXlvdXQhISAqL1xuI214X3RoZW1lX2FjY2VudENvbG9yIHtcbiAgICBjb2xvcjogJGFjY2VudDtcbn1cblxuI214X3RoZW1lX3NlY29uZGFyeUFjY2VudENvbG9yIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1hY2NlbnQtY29sb3I7XG59XG5cbi5teF9EaWFsb2dfd3JhcHBlciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IHZhcigtLWRpYWxvZy16SW5kZXgtd3JhcHBlci1kZWZhdWx0KTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5teF9EaWFsb2dfYm9yZGVyIHtcbiAgICB6LWluZGV4OiB2YXIoLS1kaWFsb2ctekluZGV4LXN0YW5kYXJkKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiBmaXQtY29udGVudDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIHZhcigtLWNwZC1zcGFjZS02eCkpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIC5teF9EaWFsb2dfbGlnaHRib3ggJiB7XG4gICAgICAgIC8qIFRoZSBsaWdodGJveCBpc24ndCBzbyBtdWNoIG9mIGEgZGlhbG9nIGFzIGEgZnVsbHNjcmVlbiBvdmVybGF5LiBXZVxuICAgICAgICBkb24ndCB3YW50IHRoZSBnbGFzcyBib3JkZXIuICovXG4gICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgIH1cbn1cblxuLm14X0RpYWxvZyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRsaWdodC1mZy1jb2xvcjtcbiAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS04eCkgdmFyKC0tY3BkLXNwYWNlLTEweCk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgLm14X0RpYWxvZ19zdGF0aWNXcmFwcGVyICYge1xuICAgICAgICB6LWluZGV4OiB2YXIoLS1kaWFsb2ctekluZGV4LXN0YXRpYyk7XG4gICAgICAgIGNvbnRhaW46IGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19saWdodGJveCAmIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAvKiBTdHlsZXMgY29waWVkL2luc3BpcmVkIGJ5IEdyb3VwTGF5b3V0LCBSZXBseVRpbGUsIGFuZCBFdmVudFRpbGUgdmFyaWFudHMuICovXG4gICAgLm1hcmtkb3duLWJvZHkge1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpICFpbXBvcnRhbnQ7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiB2YXIoLS1jcGQtZm9udC1sZXR0ZXItc3BhY2luZy1ib2R5LW1kKTtcbiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICAgICAgICBjb2xvcjogaW5oZXJpdDsgLyogaW5oZXJpdCB0aGUgY29sb3VyIGZyb20gdGhlIGRhcmsgb3IgbGlnaHQgdGhlbWUgYnkgZGVmYXVsdCAoYnV0IG5vdCBmb3IgY29kZSBibG9ja3MpICovXG5cbiAgICAgICAgcHJlLFxuICAgICAgICBjb2RlIHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkbW9ub3NwYWNlLWZvbnQtZmFtaWx5ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAvKiB0aGlzIHNlbGVjdG9yIHdyb25nbHkgYXBwbGllcyB0byBjb2RlIGJsb2NrcyB0b28gYnV0IHdlIHdpbGwgdW5zZXQgaXQgaW4gdGhlIG5leHQgb25lICovXG4gICAgICAgIGNvZGUge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOyAvKiBkb24ndCBjb2xsYXBzZSBzcGFjZXMgaW4gaW5saW5lIGNvZGUgYmxvY2tzICovXG4gICAgICAgIH1cblxuICAgICAgICBwcmUge1xuICAgICAgICAgICAgLyogaGF2ZSB0byB1c2Ugb3ZlcmxheSByYXRoZXIgdGhhbiBhdXRvIG90aGVyd2lzZSBMaW51eCBhbmQgV2luZG93cyAqL1xuICAgICAgICAgICAgLyogQ2hyb21lIGdldHMgdmVyeSBjb25mdXNlZCBhYm91dCB2ZXJ0aWNhbCBzcGFjaW5nOiAqL1xuICAgICAgICAgICAgLyogaHR0cHM6Ly9naXRodWIuY29tL3ZlY3Rvci1pbS92ZWN0b3Itd2ViL2lzc3Vlcy83NTQgKi9cbiAgICAgICAgICAgIG92ZXJmbG93LXg6IG92ZXJsYXk7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuXG4gICAgICAgICAgICAmOjotd2Via2l0LXNjcm9sbGJhci1jb3JuZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb2RlIHtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlOyAvKiB3ZSB3YW50IGNvZGUgYmxvY2tzIHRvIGJlIHNjcm9sbGFibGUgYW5kIG5vdCB3cmFwICovXG5cbiAgICAgICAgICAgICAgICA+ICoge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaDEsXG4gICAgICAgIGgyLFxuICAgICAgICBoMyxcbiAgICAgICAgaDQsXG4gICAgICAgIGg1LFxuICAgICAgICBoNiB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBNYWtlIGgxIGFuZCBoMiB0aGUgc2FtZSBzaXplIGFzIGgzLiAqL1xuICAgICAgICBoMSxcbiAgICAgICAgaDIge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmUgIWltcG9ydGFudDsgLyogb3ZlcnJpZGUgR0ZNICovXG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50LWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIGJsb2NrcXVvdGUge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAkYmxvY2txdW90ZS1iYXItY29sb3I7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfRGlhbG9nX2ZpeGVkV2lkdGgge1xuICAgIHdpZHRoOiA2MHZ3O1xuICAgIG1heC13aWR0aDogNzA0cHg7XG59XG5cbi5teF9EaWFsb2dfYmFja2dyb3VuZCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGlhbG9nLWJhY2tkcm9wLWNvbG9yO1xuICAgIHotaW5kZXg6IHZhcigtLWRpYWxvZy16SW5kZXgtc3RhbmRhcmQtYmFja2dyb3VuZCk7XG5cbiAgICAmLm14X0RpYWxvZ19zdGF0aWNCYWNrZ3JvdW5kIHtcbiAgICAgICAgei1pbmRleDogdmFyKC0tZGlhbG9nLXpJbmRleC1zdGF0aWMtYmFja2dyb3VuZCk7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ193cmFwcGVyV2l0aFN0YXRpY1VuZGVyICYge1xuICAgICAgICAvKiBSb3VnaGx5IGhhbGYgb2Ygd2hhdCBpdCB3b3VsZCBub3JtYWxseSBiZSAtIHdlIGRvbid0IHdhbnQgdG8gYmxhY2sgb3V0ICovXG4gICAgICAgIC8qIHRoZSBhcHAsIGp1c3QgbWFrZSBpdCBjbGVhciB0aGF0IHRoZSBkaWFsb2dzIGFyZSBzdGFja2VkLiAqL1xuICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19saWdodGJveCAmIHtcbiAgICAgICAgb3BhY2l0eTogJGxpZ2h0Ym94LWJhY2tncm91bmQtYmctb3BhY2l0eTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0Ym94LWJhY2tncm91bmQtYmctY29sb3I7XG4gICAgICAgIGFuaW1hdGlvbi1uYW1lOiBteF9EaWFsb2dfbGlnaHRib3hfYmFja2dyb3VuZF9rZXlmcmFtZXM7XG4gICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMzAwbXM7XG4gICAgfVxufVxuXG4ubXhfRGlhbG9nX3RpdGxlSW1hZ2Uge1xuICAgIHZlcnRpY2FsLWFsaWduOiBzdWI7XG4gICAgd2lkdGg6IDI1cHg7XG4gICAgaGVpZ2h0OiAyNXB4O1xuICAgIG1hcmdpbi1sZWZ0OiAtMnB4O1xuICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDJweDtcbn1cblxuLm14X0RpYWxvZ190aXRsZSB7XG4gICAgY29sb3I6ICRkaWFsb2ctdGl0bGUtZmctY29sb3I7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLWNwZC1mb250LWxldHRlci1zcGFjaW5nLWhlYWRpbmctbGcpO1xuXG4gICAgJi5kYW5nZXIge1xuICAgICAgICBjb2xvcjogJGFsZXJ0O1xuICAgIH1cbn1cblxuLm14X0RpYWxvZ19oZWFkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBhZGRpbmctaW5saW5lLWVuZDogMjBweDsgLyogUmVzZXJ2ZSByb29tIGZvciB0aGUgY2xvc2UgYnV0dG9uICovXG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgICYubXhfRGlhbG9nX2hlYWRlcldpdGhCdXR0b24gPiAubXhfRGlhbG9nX3RpdGxlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbn1cblxuQGRlZmluZS1taXhpbiBjdXN0b21pc2VkQ2FuY2VsQnV0dG9uIHtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtc2Vjb25kYXJ5KTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXByaW1hcnkpO1xuICAgIH1cblxuICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1zZWNvbmRhcnkpO1xuICAgIH1cbn1cblxuLm14X0RpYWxvZ19jYW5jZWxCdXR0b24ge1xuICAgIEBtaXhpbiBjdXN0b21pc2VkQ2FuY2VsQnV0dG9uO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG59XG5cbi5teF9EaWFsb2dfY29udGVudCB7XG4gICAgbWFyZ2luOiAyNHB4IDAgNjhweDtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cblxuLm14X0RpYWxvZ19idXR0b25zIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNXgpO1xuICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICAubXhfRGlhbG9nX2J1dHRvbnNfYWRkaXRpdmUge1xuICAgICAgICAvKiBUaGUgY29uc3VtZXIgaXMgcmVzcG9uc2libGUgZm9yIHBvc2l0aW9uaW5nIHRoZWlyIGVsZW1lbnRzLiAqL1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAubXhfRGlhbG9nX2J1dHRvbnNfcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICB0ZXh0LWFsaWduOiBpbml0aWFsO1xuICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBhdXRvO1xuXG4gICAgICAgIC8qIGRlZmF1bHQgZ2FwIGFtb25nIGVsZW1lbnRzICovXG4gICAgICAgIGNvbHVtbi1nYXA6IHZhcigtLWJ1dHRvbnMtZGlhbG9nLWdhcC1jb2x1bW4pO1xuICAgICAgICByb3ctZ2FwOiB2YXIoLS1idXR0b25zLWRpYWxvZy1nYXAtcm93KTtcblxuICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7IC8qIG92ZXJyaWRlIHRoZSBtYXJnaW4gc2V0dGluZ3MgKi9cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGRlZmluZS1taXhpbiBteF9EaWFsb2dCdXR0b24ge1xuICAgIC8qIGFsaWduIGltYWdlcyBpbiBidXR0b25zIChlZyBzcGlubmVycykgKi9cbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGJvcmRlcjogMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICBjb2xvcjogJGJ1dHRvbi1mZy1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXByaW1hcnktcmVzdCk7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgcGFkZGluZzogN3B4O1xuICAgIHBhZGRpbmctbGVmdDogMS41ZW07XG4gICAgcGFkZGluZy1yaWdodDogMS41ZW07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICY6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxufVxuXG4vKiBYWFg6IE91ciBidXR0b24gc3R5bGUgYXJlIGEgbWVzczogYnV0dG9ucyB0aGF0IGhhcHBlbiB0byBhcHBlYXIgaW4gZGlhbG9ncyBnZXQgc3BlY2lhbCBzdHlsZXMgYXBwbGllZFxuICogdG8gdGhlbSB0aGF0IG5vIGJ1dHRvbiBhbnl3aGVyZSBlbHNlIGluIHRoZSBhcHAgZ2V0cyBieSBkZWZhdWx0LiBJbiBwcmFjdGljZSwgYnV0dG9ucyBpbiBvdGhlciBwbGFjZXNcbiAqIGluIHRoZSBhcHAgbG9vayB0aGUgc2FtZSBieSBiZWluZyBBY2Nlc3NpYmxlQnV0dG9ucywgb3IgcG9zc2libHkgYnkgaGF2aW5nIGV4cGxpY3QgYnV0dG9uIGNsYXNzZXMuXG4gKiBXZSBzaG91bGQgZ28gdGhyb3VnaCBhbmQgaGF2ZSBvbmUgY29uc2lzdGVudCBzZXQgb2Ygc3R5bGVzIGZvciBidXR0b25zIHRocm91Z2hvdXQgdGhlIGFwcC5cbiAqIEZvciBub3csIEkgYW0gZHVwbGljYXRpbmcgdGhlIHNlbGVjdG9ycyBoZXJlIGZvciBteF9EaWFsb2cgYW5kIG14X0RpYWxvZ0J1dHRvbnMuXG4gKi9cbi5teF9EaWFsb2dcbiAgICBidXR0b246bm90KFxuICAgICAgICAubXhfRW5jcnlwdGlvblVzZXJTZXR0aW5nc1RhYiBidXR0b24sXG4gICAgICAgIC5teF9FbmNyeXB0aW9uQ2FyZCBidXR0b24sXG4gICAgICAgIC5teF9Vc2VyUHJvZmlsZVNldHRpbmdzIGJ1dHRvbixcbiAgICAgICAgLm14X1NoYXJlRGlhbG9nIGJ1dHRvbixcbiAgICAgICAgLm14X1VucGluQWxsRGlhbG9nIGJ1dHRvbixcbiAgICAgICAgLm14X1RoZW1lQ2hvaWNlUGFuZWxfQ3VzdG9tVGhlbWUgYnV0dG9uLFxuICAgICAgICAubXhfRGlhbG9nX25vbkRpYWxvZ0J1dHRvbixcbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24sXG4gICAgICAgIC5teF9JZGVudGl0eVNlcnZlclBpY2tlciBidXR0b24sXG4gICAgICAgIC5teF9BY2Nlc3NTZWNyZXRTdG9yYWdlRGlhbG9nIGJ1dHRvbixcbiAgICAgICAgLm14X0ludml0ZURpYWxvZ19zZWN0aW9uIGJ1dHRvbixcbiAgICAgICAgLm14X0ludml0ZURpYWxvZ19lZGl0b3IgYnV0dG9uLFxuICAgICAgICAubXhfVW5rbm93bklkZW50aXR5VXNlcnNXYXJuaW5nRGlhbG9nIGJ1dHRvbixcbiAgICAgICAgLm14X1RocmVhZEFjdGlvbkJhciBidXR0b24sXG4gICAgICAgIC5teF9IaXN0b3J5QWN0aW9uQmFyIGJ1dHRvbixcbiAgICAgICAgW2RhdGEta2luZF0sXG4gICAgICAgIFtjbGFzc3w9XCJtYXBsaWJyZWdsXCJdXG4gICAgKSxcbi5teF9EaWFsb2dfYnV0dG9ucyBidXR0b246bm90KC5teF9EaWFsb2dfbm9uRGlhbG9nQnV0dG9uLCAubXhfQWNjZXNzaWJsZUJ1dHRvbiwgW2RhdGEta2luZF0pLFxuLm14X0RpYWxvZyBpbnB1dFt0eXBlPVwic3VibWl0XCJdLFxuLm14X0RpYWxvZ19idXR0b25zIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgIEBtaXhpbiBteF9EaWFsb2dCdXR0b247XG4gICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWJ1dHRvbnMtZGlhbG9nLWdhcC1jb2x1bW4pO1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcblxuICAgIC8qIGZsaXAgY29sb3VycyBmb3IgdGhlIHNlY29uZGFyeSBvbmVzICovXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1zZWNvbmRhcnkpO1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbn1cblxuLm14X0RpYWxvZ1xuICAgIGJ1dHRvbjpub3QoXG4gICAgICAgIC5teF9EaWFsb2dfbm9uRGlhbG9nQnV0dG9uLFxuICAgICAgICBbY2xhc3N8PVwibWFwbGlicmVnbFwiXSxcbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24sXG4gICAgICAgIC5teF9Vc2VyUHJvZmlsZVNldHRpbmdzIGJ1dHRvbixcbiAgICAgICAgLm14X1RoZW1lQ2hvaWNlUGFuZWxfQ3VzdG9tVGhlbWUgYnV0dG9uLFxuICAgICAgICAubXhfVW5waW5BbGxEaWFsb2cgYnV0dG9uLFxuICAgICAgICAubXhfU2hhcmVEaWFsb2cgYnV0dG9uLFxuICAgICAgICAubXhfRW5jcnlwdGlvblVzZXJTZXR0aW5nc1RhYiBidXR0b24sXG4gICAgICAgIC5teF9Vbmtub3duSWRlbnRpdHlVc2Vyc1dhcm5pbmdEaWFsb2cgYnV0dG9uLFxuICAgICAgICBbZGF0YS1raW5kXVxuICAgICk6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG59XG5cbi5teF9EaWFsb2dcbiAgICBidXR0b246bm90KFxuICAgICAgICAubXhfRGlhbG9nX25vbkRpYWxvZ0J1dHRvbixcbiAgICAgICAgW2NsYXNzfD1cIm1hcGxpYnJlZ2xcIl0sXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uLFxuICAgICAgICAubXhfVXNlclByb2ZpbGVTZXR0aW5ncyBidXR0b24sXG4gICAgICAgIC5teF9UaGVtZUNob2ljZVBhbmVsX0N1c3RvbVRoZW1lIGJ1dHRvbixcbiAgICAgICAgLm14X1VucGluQWxsRGlhbG9nIGJ1dHRvbixcbiAgICAgICAgLm14X1NoYXJlRGlhbG9nIGJ1dHRvbixcbiAgICAgICAgLm14X0VuY3J5cHRpb25Vc2VyU2V0dGluZ3NUYWIgYnV0dG9uLFxuICAgICAgICAubXhfSW52aXRlRGlhbG9nX3NlY3Rpb24gYnV0dG9uLFxuICAgICAgICAubXhfSW52aXRlRGlhbG9nX2VkaXRvciBidXR0b24sXG4gICAgICAgIC5teF9Vbmtub3duSWRlbnRpdHlVc2Vyc1dhcm5pbmdEaWFsb2cgYnV0dG9uLFxuICAgICAgICBbZGF0YS1raW5kXVxuICAgICk6Zm9jdXMsXG4ubXhfRGlhbG9nIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06Zm9jdXMsXG4ubXhfRGlhbG9nX2J1dHRvbnMgYnV0dG9uOm5vdCgubXhfRGlhbG9nX25vbkRpYWxvZ0J1dHRvbiwgLm14X0FjY2Vzc2libGVCdXR0b24sIFtkYXRhLWtpbmRdKTpmb2N1cyxcbi5teF9EaWFsb2dfYnV0dG9ucyBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmZvY3VzIHtcbiAgICBmaWx0ZXI6IGJyaWdodG5lc3MoJGZvY3VzLWJyaWdodG5lc3MpO1xufVxuXG4ubXhfRGlhbG9nIGJ1dHRvbi5teF9EaWFsb2dfcHJpbWFyeTpub3QoLm14X0RpYWxvZ19ub25EaWFsb2dCdXR0b24sIFtjbGFzc3w9XCJtYXBsaWJyZWdsXCJdLCBbZGF0YS1raW5kXSksXG4ubXhfRGlhbG9nIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ubXhfRGlhbG9nX3ByaW1hcnksXG4ubXhfRGlhbG9nX2J1dHRvbnNcbiAgICBidXR0b246bm90KFxuICAgICAgICAubXhfRGlhbG9nX25vbkRpYWxvZ0J1dHRvbixcbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24sXG4gICAgICAgIC5jYW5jZWwsXG4gICAgICAgIC5teF9Vc2VyUHJvZmlsZVNldHRpbmdzIGJ1dHRvbixcbiAgICAgICAgLm14X1RoZW1lQ2hvaWNlUGFuZWxfQ3VzdG9tVGhlbWUgYnV0dG9uLFxuICAgICAgICAubXhfVW5waW5BbGxEaWFsb2cgYnV0dG9uLFxuICAgICAgICAubXhfU2hhcmVEaWFsb2cgYnV0dG9uLFxuICAgICAgICAubXhfRW5jcnlwdGlvblVzZXJTZXR0aW5nc1RhYiBidXR0b24sXG4gICAgICAgIC5teF9Vbmtub3duSWRlbnRpdHlVc2Vyc1dhcm5pbmdEaWFsb2cgYnV0dG9uLFxuICAgICAgICBbZGF0YS1raW5kXVxuICAgICksXG4ubXhfRGlhbG9nX2J1dHRvbnMgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXS5teF9EaWFsb2dfcHJpbWFyeSB7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LW9uLXNvbGlkLXByaW1hcnkpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tcHJpbWFyeS1yZXN0KTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tcHJpbWFyeS1yZXN0KTtcbiAgICBtaW4td2lkdGg6IDE1NnB4O1xufVxuXG4ubXhfRGlhbG9nIGJ1dHRvbi5kYW5nZXI6bm90KC5teF9EaWFsb2dfbm9uRGlhbG9nQnV0dG9uLCBbY2xhc3N8PVwibWFwbGlicmVnbFwiXSksXG4ubXhfRGlhbG9nIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0uZGFuZ2VyLFxuLm14X0RpYWxvZ19idXR0b25zXG4gICAgYnV0dG9uLmRhbmdlcjpub3QoXG4gICAgICAgIC5teF9EaWFsb2dfbm9uRGlhbG9nQnV0dG9uLFxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbixcbiAgICAgICAgLm14X1VzZXJQcm9maWxlU2V0dGluZ3MgYnV0dG9uLFxuICAgICAgICAubXhfVGhlbWVDaG9pY2VQYW5lbF9DdXN0b21UaGVtZSBidXR0b24sXG4gICAgICAgIC5teF9VbnBpbkFsbERpYWxvZyBidXR0b24sXG4gICAgICAgIC5teF9TaGFyZURpYWxvZyBidXR0b24sXG4gICAgICAgIC5teF9FbmNyeXB0aW9uVXNlclNldHRpbmdzVGFiIGJ1dHRvbixcbiAgICAgICAgLm14X1Vua25vd25JZGVudGl0eVVzZXJzV2FybmluZ0RpYWxvZyBidXR0b25cbiAgICApLFxuLm14X0RpYWxvZ19idXR0b25zIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0uZGFuZ2VyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY3JpdGljYWwtcHJpbWFyeSk7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggdmFyKC0tY3BkLWNvbG9yLWJnLWNyaXRpY2FsLXByaW1hcnkpO1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1vbi1zb2xpZC1wcmltYXJ5KTtcbn1cblxuLm14X0RpYWxvZyBidXR0b24ud2FybmluZzpub3QoLm14X0RpYWxvZ19ub25EaWFsb2dCdXR0b24sIFtjbGFzc3w9XCJtYXBsaWJyZWdsXCJdKSxcbi5teF9EaWFsb2cgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXS53YXJuaW5nIHtcbiAgICBib3JkZXI6IHNvbGlkIDFweCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWNyaXRpY2FsLXN1YnRsZSk7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LWNyaXRpY2FsLXByaW1hcnkpO1xufVxuXG4ubXhfRGlhbG9nXG4gICAgYnV0dG9uOm5vdChcbiAgICAgICAgLm14X0RpYWxvZ19ub25EaWFsb2dCdXR0b24sXG4gICAgICAgIFtjbGFzc3w9XCJtYXBsaWJyZWdsXCJdLFxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbixcbiAgICAgICAgLm14X1VzZXJQcm9maWxlU2V0dGluZ3MgYnV0dG9uLFxuICAgICAgICAubXhfVGhlbWVDaG9pY2VQYW5lbF9DdXN0b21UaGVtZSBidXR0b24sXG4gICAgICAgIC5teF9VbnBpbkFsbERpYWxvZyBidXR0b24sXG4gICAgICAgIC5teF9TaGFyZURpYWxvZyBidXR0b24sXG4gICAgICAgIC5teF9FbmNyeXB0aW9uVXNlclNldHRpbmdzVGFiIGJ1dHRvbixcbiAgICAgICAgLm14X1Vua25vd25JZGVudGl0eVVzZXJzV2FybmluZ0RpYWxvZyBidXR0b24sXG4gICAgICAgIFtkYXRhLWtpbmRdXG4gICAgKTpkaXNhYmxlZCxcbi5teF9EaWFsb2cgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpkaXNhYmxlZCxcbi5teF9EaWFsb2dfYnV0dG9ucyBidXR0b246bm90KC5teF9EaWFsb2dfbm9uRGlhbG9nQnV0dG9uLCAubXhfQWNjZXNzaWJsZUJ1dHRvbik6ZGlzYWJsZWQsXG4ubXhfRGlhbG9nX2J1dHRvbnMgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWZnLWNvbG9yO1xuICAgIGJvcmRlcjogc29saWQgMXB4ICRsaWdodC1mZy1jb2xvcjtcbiAgICBvcGFjaXR5OiAwLjc7XG59XG5cbi5teF9EaWFsb2dfYnV0dG9ucyBidXR0b24uY2FuY2VsIHtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtcHJpbWFyeSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1zZWNvbmRhcnktcmVzdCk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXNlY29uZGFyeSk7XG4gICAgbWluLXdpZHRoOiAxNTZweDtcbn1cblxuLyogU3Bpbm5lciBEaWFsb2cgb3ZlcmlkZSAqL1xuLm14X0RpYWxvZ193cmFwcGVyLm14X0RpYWxvZ19zcGlubmVyIHtcbiAgICAvKiBUaGlzIGlzIG5vdCBhIHJlYWwgZGlhbG9nLCBzbyB3ZSBzaG91bGRuJ3Qgc2hvdyBhIGdsYXNzIGJvcmRlciAqL1xuICAgIC5teF9EaWFsb2dfYm9yZGVyIHtcbiAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZyB7XG4gICAgICAgIGlubGluZS1zaXplOiBhdXRvO1xuICAgICAgICBibG9jay1zaXplOiBhdXRvO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIHBhZGRpbmc6IDhweDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcblxuICAgICAgICAvKiBEb24ndCBzaG93IHNjcm9sbC1iYXJzIG9uIHNwaW5uZXIgZGlhbG9ncyAqL1xuICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICB9XG59XG5cbi8qIFRPRE86IFJldmlldyBteF9HZW5lcmFsQnV0dG9uIHVzYWdlIHRvIHNlZSBpZiBpdCBjYW4gdXNlIGEgZGlmZmVyZW50IGNsYXNzICovXG4vKiBUaGVzZSBjbGFzc2VzIHdlcmUgYnJvdWdodCBpbiBmcm9tIHRoZSBvbGQgVXNlclNldHRpbmdzIGFuZCBhcmUgaW5jbHVkZWQgaGVyZSB0byBhdm9pZCAqL1xuLyogYnJlYWtpbmcgdGhlIGFwcC4gKi9cbi8qIFJlZjogaHR0cHM6Ly9naXRodWIuY29tL3ZlY3Rvci1pbS9lbGVtZW50LXdlYi9pc3N1ZXMvODQyMCAqL1xuLm14X0dlbmVyYWxCdXR0b24ge1xuICAgIEBtaXhpbiBteF9EaWFsb2dCdXR0b247XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIG1hcmdpbjogYXV0bztcbn1cblxuLm14X1RleHRJbnB1dERpYWxvZ19sYWJlbCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbn1cblxuLm14X1RleHRJbnB1dERpYWxvZ19pbnB1dCB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuICAgIHBhZGRpbmc6IDlweDtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbn1cblxuLm14X2J1dHRvbl9yb3cge1xuICAgIG1hcmdpbi10b3A6IDY5cHg7XG59XG5cbi8qIHVzZXJuYW1lIGNvbG9ycyAqL1xuLyogdXNlZCBieSBTZW5kZXJQcm9maWxlICYgUm9vbVByZXZpZXdCYXIgKi9cbi5teF9Vc2VybmFtZV9jb2xvcjEge1xuICAgIGNvbG9yOiAkdXNlcm5hbWUtdmFyaWFudDEtY29sb3I7XG59XG5cbi5teF9Vc2VybmFtZV9jb2xvcjIge1xuICAgIGNvbG9yOiAkdXNlcm5hbWUtdmFyaWFudDItY29sb3I7XG59XG5cbi5teF9Vc2VybmFtZV9jb2xvcjMge1xuICAgIGNvbG9yOiAkdXNlcm5hbWUtdmFyaWFudDMtY29sb3I7XG59XG5cbi5teF9Vc2VybmFtZV9jb2xvcjQge1xuICAgIGNvbG9yOiAkdXNlcm5hbWUtdmFyaWFudDQtY29sb3I7XG59XG5cbi5teF9Vc2VybmFtZV9jb2xvcjUge1xuICAgIGNvbG9yOiAkdXNlcm5hbWUtdmFyaWFudDUtY29sb3I7XG59XG5cbi5teF9Vc2VybmFtZV9jb2xvcjYge1xuICAgIGNvbG9yOiAkdXNlcm5hbWUtdmFyaWFudDYtY29sb3I7XG59XG5cbi5teF9BcHBXYXJuaW5nLFxuLm14X0FwcFBlcm1pc3Npb24ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbkBkZWZpbmUtbWl4aW4gUHJvZ3Jlc3NCYXJDb2xvdXIgJGNvbG91ciB7XG4gICAgY29sb3I6ICRjb2xvdXI7XG4gICAgJjo6LW1vei1wcm9ncmVzcy1iYXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3VyO1xuICAgIH1cbiAgICAmOjotd2Via2l0LXByb2dyZXNzLXZhbHVlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG91cjtcbiAgICB9XG59XG5cbkBkZWZpbmUtbWl4aW4gUHJvZ3Jlc3NCYXJCZ0NvbG91ciAkY29sb3VyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3VyO1xuICAgICY6Oi13ZWJraXQtcHJvZ3Jlc3MtYmFyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG91cjtcbiAgICB9XG59XG5cbkBkZWZpbmUtbWl4aW4gUHJvZ3Jlc3NCYXJCb3JkZXJSYWRpdXMgJHJhZGl1cyB7XG4gICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgICAmOjotbW96LXByb2dyZXNzLWJhciB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gICAgfVxuICAgICY6Oi13ZWJraXQtcHJvZ3Jlc3MtYmFyLFxuICAgICY6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICAgIH1cbn1cblxuQGRlZmluZS1taXhpbiB1bnJlYWwtZm9jdXMge1xuICAgIG91dGxpbmUtd2lkdGg6IDJweDtcbiAgICBvdXRsaW5lLXN0eWxlOiBzb2xpZDtcbiAgICBvdXRsaW5lLWNvbG9yOiBIaWdobGlnaHQ7XG5cbiAgICAvKiBXZWJLaXQgZ2V0cyBpdHMgbmF0aXZlIGZvY3VzIHN0eWxlcy4gKi9cbiAgICBAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMCkge1xuICAgICAgICBvdXRsaW5lLWNvbG9yOiAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG4gICAgICAgIG91dGxpbmUtc3R5bGU6IGF1dG87XG4gICAgfVxufVxuXG5AZGVmaW5lLW1peGluIExlZ2FjeUNhbGxCdXR0b24ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgIG1hcmdpbi1yaWdodDogMDtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgY29sb3I6ICRidXR0b24tZmctY29sb3I7XG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbn1cblxuQGRlZmluZS1taXhpbiBUaHJlYWRSZXBsaWVzQW1vdW50IHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tY3BkLXNwYWNlLTN4KSAwIHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbkBkZWZpbmUtbWl4aW4gVGhyZWFkU3VtbWFyeUljb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgY29sb3I6ICRpY29uLWJ1dHRvbi1jb2xvcjtcbn1cblxuQGRlZmluZS1taXhpbiBjb21wb3NlckJ1dHRvbkhpZ2hMaWdodCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1wcmltYXJ5KTtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tcHJpbWFyeSkgIWltcG9ydGFudDtcbn1cblxuQGRlZmluZS1taXhpbiBjb21wb3NlckJ1dHRvbiAkYm9yZGVyLXJhZGl1cywgJGhvdmVyLWNvbG9yLCAkaG92ZXItYmcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG5cbiAgICBzdmcge1xuICAgICAgICBjb2xvcjogJGljb24tYnV0dG9uLWNvbG9yO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaG92ZXItYmc7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGNvbG9yOiAkaG92ZXItY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9saW5lQ2xhbXAge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgLXdlYmtpdC1saW5lLWNsYW1wOiB2YXIoLS1teC1saW5lLWNsYW1wLCAxKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBMYXlvdXQgY29tcGF0aWJpbGl0eSBob29rIGZvciB0aW1lc3RhbXAgcGxhY2VtZW50IGluIGV4aXN0aW5nIGFwcC93ZWIgdGltZWxpbmUgc3VyZmFjZXMuICovXG4ubXhfTWVzc2FnZVRpbWVzdGFtcCB7XG4gICAgZGlzcGxheTogYmxvY2s7IC8qIGVuYWJsZSB0aGUgd2lkdGggc2V0dGluZyBiZWxvdyAqL1xuICAgIHdpZHRoOiB2YXIoLS1NZXNzYWdlVGltZXN0YW1wLXdpZHRoKTtcbn1cbiIsbnVsbCwiLyogQXV0by1nZW5lcmF0ZWQgYnkgc2NyaXB0cy9leHRyYWN0LWJyYW5kLWNvbG9ycy5weSBmcm9tIC9yb290L21ldG1ldC9oeWRyb2dlbi1odG1sL2xvZ28ucG5nIOKAlCBkbyBub3QgZWRpdCBieSBoYW5kLiAqL1xuOnJvb3Qge1xuICAgIC0tbWV0bWV0LWJyYW5kLXByaW1hcnk6ICMwMjhlOTE7XG4gICAgLS1tZXRtZXQtYnJhbmQtc2Vjb25kYXJ5OiAjM2FjNmNiO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0JlYWNvbkxpc3RJdGVtIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtM3gpIDA7XG5cbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHN5c3RlbTtcblxuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm14X0JlYWNvbkxpc3RJdGVtX2F2YXRhckljb24ge1xuICAgIGZsZXg6IDAgMDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgd2lkdGg6IDMycHg7XG59XG5cbi5teF9CZWFjb25MaXN0SXRlbV9hdmF0YXIge1xuICAgIGZsZXg6IDAgMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICRsb2NhdGlvbi1saXZlLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuLm14X0JlYWNvbkxpc3RJdGVtX2luZm8ge1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIHdpZHRoOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbn1cblxuLm14X0JlYWNvbkxpc3RJdGVtX3N0YXR1cyB7XG4gICAgLyogb3ZlcnJpZGUgYmVhY29uIHN0YXR1cyBwYWRkaW5nICovXG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAubXhfQmVhY29uU3RhdHVzX2xhYmVsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgfVxufVxuXG4ubXhfQmVhY29uTGlzdEl0ZW1fbGFzdFVwZGF0ZWQge1xuICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICBmb250LXNpemU6ICRmb250LTEwcHg7XG59XG5cbi5teF9CZWFjb25MaXN0SXRlbV9pbnRlcmFjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9CZWFjb25TdGF0dXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgIGNvbG9yOiB2YXIoLS1jb2xvcik7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xufVxuXG4ubXhfQmVhY29uU3RhdHVzX0xvYWRpbmcsXG4ubXhfQmVhY29uU3RhdHVzX1N0b3BwZWQge1xuICAgIC0tY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xufVxuXG4ubXhfQmVhY29uU3RhdHVzX0FjdGl2ZSxcbi5teF9CZWFjb25TdGF0dXNfRXJyb3Ige1xuICAgIC0tY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9CZWFjb25TdGF0dXNfaWNvbiB7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIHdpZHRoOiAzMnB4O1xuXG4gICAgZmxleDogMCAwIDMycHg7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuXG4ubXhfQmVhY29uU3RhdHVzX2Rlc2NyaXB0aW9uIHtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTE0cHg7XG5cbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLm14X0JlYWNvblN0YXR1c19kZXNjcmlwdGlvbl9zdGF0dXMge1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG59XG5cbi5teF9CZWFjb25TdGF0dXNfZXhwaXJ5VGltZSB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbn1cblxuLm14X0JlYWNvblN0YXR1c19sYWJlbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQmVhY29uU3RhdHVzVG9vbHRpcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNDJweDtcbiAgICBtYXgtd2lkdGg6IDE1MHB4O1xuICAgIGhlaWdodDogMzhweDtcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cblxuLm14X0JlYWNvblN0YXR1c1Rvb2x0aXBfaW5uZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6ICRtZW51LWJnLWNvbG9yO1xuICAgIGJveC1zaGFkb3c6IDRweCA0cHggMTJweCAwICRtZW51LWJveC1zaGFkb3ctY29sb3I7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQmVhY29uVmlld0RpYWxvZ193cmFwcGVyIC5teF9EaWFsb2cge1xuICAgIHBhZGRpbmc6IDBweDtcblxuICAgIC8qIFVuc2V0IGNvbnRhaW4gYW5kIHBvc2l0aW9uIHRvIGFsbG93IHRoZSBjbG9zZSBidXR0b25cbiAgICB0byBhcHBlYXIgb3V0c2lkZSB0aGUgZGlhbG9nICovXG4gICAgY29udGFpbjogdW5zZXQ7XG4gICAgcG9zaXRpb246IHVuc2V0O1xufVxuXG4ubXhfQmVhY29uVmlld0RpYWxvZyB7XG4gICAgLyogc3VidHJhY3QgMC41cHggdG8gcHJldmVudCBzaW5nbGUtcGl4ZWwgbWFyZ2luIGR1ZSB0byByb3VuZGluZyAqL1xuICAgIHdpZHRoOiBjYWxjKDgwdncgLSAwLjVweCk7XG4gICAgaGVpZ2h0OiBjYWxjKDgwdmggLSAwLjVweCk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIC8qIHNpZGViYXIgaXMgYWJzb2x1dGVseSBwb3NpdGlvbmVkIGluc2lkZSAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5teF9EaWFsb2dfaGVhZGVyIHtcbiAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgcG9zaXRpb246IHVuc2V0O1xuXG4gICAgICAgIC5teF9EaWFsb2dfdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9EaWFsb2dfY2FuY2VsQnV0dG9uIHtcbiAgICAgICAgICAgIHotaW5kZXg6IDQwMTA7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICByaWdodDogNXZ3O1xuICAgICAgICAgICAgdG9wOiA1dmg7XG4gICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkaWFsb2ctY2xvc2UtZXh0ZXJuYWwtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9CZWFjb25WaWV3RGlhbG9nX21hcCB7XG4gICAgd2lkdGg6IDgwdnc7XG4gICAgaGVpZ2h0OiA4MHZoO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cblxuLm14X0JlYWNvblZpZXdEaWFsb2dfbWFwRmFsbGJhY2tNZXNzYWdlIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS00eCk7XG59XG5cbi5teF9CZWFjb25WaWV3RGlhbG9nX3ZpZXdMaXN0QnV0dG9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgIGxlZnQ6IHZhcigtLWNwZC1zcGFjZS02eCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRGlhbG9nT3duQmVhY29uU3RhdHVzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuICAgIHdpZHRoOiAzMDBweDtcbiAgICBtYXJnaW4tbGVmdDogLTE1MHB4O1xuICAgIGxlZnQ6IDUwJTtcblxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGp1c3RpZnktY29udGVudDogc3RyZXRjaDtcblxuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3gtc2hhZG93OiA0cHggNHB4IDEycHggMCAkbWVudS1ib3gtc2hhZG93LWNvbG9yO1xuXG4gICAgcGFkZGluZzogMCB2YXIoLS1jcGQtc3BhY2UtM3gpO1xufVxuXG4ubXhfRGlhbG9nT3duQmVhY29uU3RhdHVzX2F2YXRhckljb24ge1xuICAgIGZsZXg6IDAgMDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgd2lkdGg6IDMycHg7XG4gICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMngpIDAgdmFyKC0tY3BkLXNwYWNlLTJ4KSAwO1xufVxuXG4ubXhfRGlhbG9nT3duQmVhY29uU3RhdHVzX2F2YXRhciB7XG4gICAgZmxleDogMCAwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICBib3JkZXI6IDJweCBzb2xpZCAkbG9jYXRpb24tbGl2ZS1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMngpIDAgdmFyKC0tY3BkLXNwYWNlLTJ4KSAwO1xufVxuXG4ubXhfRGlhbG9nT3duQmVhY29uU3RhdHVzX3N0YXR1cyB7XG4gICAgZmxleDogMSAxO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRGlhbG9nU2lkZWJhciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMjY1cHg7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS00eCk7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBib3gtc2hhZG93OiAwcHggNHB4IDRweCAkbWVudS1ib3gtc2hhZG93LWNvbG9yO1xuXG4gICAgLm14X0RpYWxvZ1NpZGViYXJfaGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgICAgIGZsZXg6IDAgMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTR4KTtcblxuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcblxuICAgICAgICAubXhfRGlhbG9nU2lkZWJhcl9jbG9zZUJ1dHRvbkljb24ge1xuICAgICAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ1NpZGViYXJfbGlzdCB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZmxleDogMSAxIDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICB9XG59XG5cbi5teF9EaWFsb2dTaWRlYmFyX25vUmVzdWx0cyB7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xlZnRQYW5lbExpdmVTaGFyZVdhcm5pbmcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQ7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMHB4O1xuXG4gICAgLyogcGFuZWwgYmFja2Ryb3BzIG92ZXJsYXkgdGhlIHdob2xlIHNpZGVwYW5lbCAqL1xuICAgIC8qIGdvIGFib3ZlIHRvIGdldCBob3ZlciBmb3IgdGl0bGUgKi9cbiAgICB6LWluZGV4OiAxO1xufVxuXG4ubXhfTGVmdFBhbmVsTGl2ZVNoYXJlV2FybmluZ19fZXJyb3Ige1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhbGVydDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9MaXZlVGltZVJlbWFpbmluZyB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfT3duQmVhY29uU3RhdHVzX2J1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9FdmVudFRpbGVbZGF0YS1sYXlvdXQ9XCJidWJibGVcIl0gLm14X093bkJlYWNvblN0YXR1c19idXR0b24ge1xuICAgIC8qIGFsaWduIHRvIHRvcCB0byBtYWtlIHJvb20gZm9yIHRpbWVzdGFtcCAqL1xuICAgIC8qIGluIGJ1YmJsZSB2aWV3ICovXG4gICAgYWxpZ24tc2VsZjogc3RhcnQ7XG59XG5cbi5teF9Pd25CZWFjb25TdGF0dXNfZGVzdHJ1Y3RpdmVCdXR0b24ge1xuICAgIC8qIG92ZXJyaWRlIGJ1dHRvbiBsaW5rX2lubGluZSBzdHlsZXMgKi9cbiAgICBjb2xvcjogJGFsZXJ0ICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCkgIWltcG9ydGFudDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TaGFyZUxhdGVzdExvY2F0aW9uX2ljb24ge1xuICAgIGhlaWdodDogMTNweDtcbiAgICB3aWR0aDogMTNweDtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xufVxuXG4vKiBkb3VibGUgY2xhc3MgdG8gYmUgbW9yZSBzcGVjaWZpYyB0aGFuIHRoZSBnZW5lcmFsIG14X0NvcHlhYmxlVGV4dCBDU1MgcnVsZSAqL1xuLm14X0NvcHlhYmxlVGV4dC5teF9TaGFyZUxhdGVzdExvY2F0aW9uX2NvcHkge1xuICAgIC8qIG92ZXJyaWRlIGNvcHlhYmxlIHRleHQgc3R5bGUgdG8gbWFrZSBjb21wYWN0ICovXG4gICAgLm14X0NvcHlhYmxlVGV4dF9jb3B5QnV0dG9uIHtcbiAgICAgICAgaGVpZ2h0OiAxM3B4O1xuICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTJ4KSAhaW1wb3J0YW50O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogLTFweDtcbiAgICAgICAgd2lkdGg6IDEzcHg7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIGhlaWdodDogMTNweDtcbiAgICAgICAgICAgIHdpZHRoOiAxM3B4O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1N0eWxlZExpdmVCZWFjb25JY29uIHtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3JkZXItd2lkdGg6IDJweDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRsb2NhdGlvbi1saXZlLWNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGxvY2F0aW9uLWxpdmUtY29sb3I7XG4gICAgcGFkZGluZzogMnB4O1xuICAgIC8qIGNvbG9ycyBpY29uICovXG4gICAgY29sb3I6IHdoaXRlO1xufVxuXG4ubXhfU3R5bGVkTGl2ZUJlYWNvbkljb24ubXhfU3R5bGVkTGl2ZUJlYWNvbkljb25fZXJyb3Ige1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhbGVydDtcbiAgICBib3JkZXItY29sb3I6ICRhbGVydDtcbn1cblxuLm14X1N0eWxlZExpdmVCZWFjb25JY29uLm14X1N0eWxlZExpdmVCZWFjb25JY29uX2lkbGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRxdWF0ZXJuYXJ5LWNvbnRlbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkcXVhdGVybmFyeS1jb250ZW50O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0tlYmFiQ29udGV4dE1lbnVfaWNvbiB7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIGNvbG9yOiAkaWNvbi1idXR0b24tY29sb3I7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUG9sbERldGFpbEhlYWRlciB7XG4gICAgLyogb3ZlcnJpZGUgYWNjZXNzaWJsZWJ1dHRvbiBzdHlsZSAqL1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweCAhaW1wb3J0YW50O1xufVxuXG4ubXhfUG9sbERldGFpbEhlYWRlcl9pY29uIHtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUG9sbExpc3RJdGVtIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLm14X1BvbGxMaXN0SXRlbV9jb250ZW50IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGp1c3RpZnktY29udGVudDogbGVmdDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gYXV0byBhdXRvO1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0bztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbn1cblxuLm14X1BvbGxMaXN0SXRlbV9pY29uIHtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgY29sb3I6ICRxdWF0ZXJuYXJ5LWNvbnRlbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuXG4ubXhfUG9sbExpc3RJdGVtX3F1ZXN0aW9uIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUG9sbExpc3RJdGVtRW5kZWQge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ubXhfUG9sbExpc3RJdGVtRW5kZWRfY29udGVudCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm14X1BvbGxMaXN0SXRlbUVuZGVkX3RpdGxlIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGp1c3RpZnktY29udGVudDogbGVmdDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbi1jb250ZW50IDFmciBtaW4tY29udGVudDtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG87XG59XG5cbi5teF9Qb2xsTGlzdEl0ZW1FbmRlZF9pY29uIHtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgY29sb3I6ICRxdWF0ZXJuYXJ5LWNvbnRlbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuXG4ubXhfUG9sbExpc3RJdGVtRW5kZWRfZGF0ZSB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9Qb2xsTGlzdEl0ZW1FbmRlZF9xdWVzdGlvbiB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4ubXhfUG9sbExpc3RJdGVtRW5kZWRfYW5zd2VycyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbn1cblxuLm14X1BvbGxMaXN0SXRlbUVuZGVkX3ZvdGVDb3VudCB7XG4gICAgLyogNnB4IHRvIG1hdGNoIFBvbGxPcHRpb24gcGFkZGluZyAqL1xuICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTJ4KSAwIDAgNnB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTktMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0FwcFBlcm1pc3Npb24ge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICB3aWR0aDogMTAwJTsgLyogbWFrZSBteF9BcHBQZXJtaXNzaW9uIGZpbGwgd2lkdGggb2YgbXhfQXBwVGlsZUJvZHkgc28gdGhhdCBzY3JvbGwgYmFyIGFwcGVhcnMgb24gdGhlIGVkZ2UgKi9cbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgLm14X0FwcFBlcm1pc3Npb25fYm9sZGVyLFxuICAgIC5teF9BcHBQZXJtaXNzaW9uX2NvbnRlbnRfYm9sZGVyIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgfVxuICAgIC5teF9BcHBQZXJtaXNzaW9uX2NvbnRlbnQge1xuICAgICAgICBtYXJnaW4tYmxvY2s6IGF1dG87IC8qIHBsYWNlIGF0IHRoZSBjZW50ZXIgKi9cblxuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICBtYXJnaW4tYmxvY2s6IDEycHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVGV4dFdpdGhUb29sdGlwX3RhcmdldC0taGVscEljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiAkZm9udC0xNHB4OyAvKiBhbGlnbiB3aXRoIGNoYXJhY3RlcnMgb24gdGhlIHNhbWUgbGluZSAqL1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgLm14X0ljb24ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgU3VndXJ1IEhpcmFoYXJhXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9BcHBXYXJuaW5nIHtcbiAgICBmb250LXNpemU6ICRmb250LTE2cHg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICBoNCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRmlsdGVyRHJvcGRvd24ge1xuICAgIC5teF9Ecm9wZG93bl9tZW51IHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgbGVmdDogdW5zZXQ7XG4gICAgICAgIHJpZ2h0OiBjYWxjKC0xICogdmFyKC0tY3BkLXNwYWNlLTN4KSk7XG4gICAgICAgIHdpZHRoOiAyMzJweDtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTN4KTtcblxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCAxcHggM3B4IHJnYigyMywgMjUsIDI4LCAwLjA1KTtcblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3lzdGVtO1xuXG4gICAgICAgIC5teF9Ecm9wZG93bl9vcHRpb25faGlnaGxpZ2h0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0Ryb3Bkb3duX2lucHV0IHtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF1aW5hcnktY29udGVudDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHF1aW5hcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Ecm9wZG93bl9hcnJvdyB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgfVxufVxuXG4ubXhfRmlsdGVyRHJvcGRvd25fb3B0aW9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpIDAgdmFyKC0tY3BkLXNwYWNlLTJ4KSB2YXIoLS1jcGQtc3BhY2UtNXgpO1xuXG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xufVxuXG4ubXhfRmlsdGVyRHJvcGRvd25fb3B0aW9uU2VsZWN0ZWRJY29uIHtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBsZWZ0OiAwO1xufVxuXG4ubXhfRmlsdGVyRHJvcGRvd25fb3B0aW9uTGFiZWwge1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubXhfRmlsdGVyRHJvcGRvd25fb3B0aW9uRGVzY3JpcHRpb24ge1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9GaWx0ZXJUYWJHcm91cCB7XG4gICAgLyogUmVzZXQgdGhlIGJyb3dzZXIgZGVmYXVsdCA8ZmllbGRzZXQ+IHN0eWxpbmcgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWlubGluZTogdW5zZXQ7XG4gICAgcGFkZGluZy1ibG9jazogdW5zZXQ7XG4gICAgcGFkZGluZy1pbmxpbmU6IHVuc2V0O1xuICAgIG1pbi1pbmxpbmUtc2l6ZTogdW5zZXQ7XG4gICAgYm9yZGVyOiBub25lO1xuXG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgbGFiZWwge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAmICsgc3BhbiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6Y2hlY2tlZCArIHNwYW4ge1xuICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgIC8qIHVuZGVybGluZSAqL1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxLjVweCAwIDAgY3VycmVudENvbG9yO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xlYXJuTW9yZV9idXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0VuYWJsZUxpdmVTaGFyZSB7XG4gICAgZmxleDogMSAxIDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS04eCkgdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLm14X0VuYWJsZUxpdmVTaGFyZV9oZWFkaW5nIHtcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbn1cblxuLm14X0VuYWJsZUxpdmVTaGFyZV9pY29uIHtcbiAgICBoZWlnaHQ6IDU4cHg7XG4gICAgd2lkdGg6IDU4cHg7XG59XG5cbi5teF9FbmFibGVMaXZlU2hhcmVfZGVzY3JpcHRpb24ge1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMHB4O1xufVxuXG4ubXhfRW5hYmxlTGl2ZVNoYXJlX2J1dHRvbiB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTh4KTtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTGl2ZUR1cmF0aW9uRHJvcGRvd24ge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS00eCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTG9jYXRpb25TaGFyZU1lbnUge1xuICAgIHdpZHRoOiAzNzVweDtcbiAgICBoZWlnaHQ6IDQ2MHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NYXBFcnJvciB7XG4gICAgcGFkZGluZzogMTAwcHggdmFyKC0tY3BkLXNwYWNlLTh4KSAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC0tbXgtbWFwLWVycm9yLWljb24tY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAtLW14LW1hcC1lcnJvci1pY29uLXNpemU6IDU4cHg7XG59XG5cbi5teF9NYXBFcnJvci5teF9NYXBFcnJvcl9pc01pbmltaXNlZCB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwYW5lbHM7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNnB4O1xuXG4gICAgLS1teC1tYXAtZXJyb3ItaWNvbi1jb2xvcjogJGFsZXJ0O1xuICAgIC0tbXgtbWFwLWVycm9yLWljb24tc2l6ZTogMjZweDtcblxuICAgIC5teF9NYXBFcnJvcl9tZXNzYWdlIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBtYXgtd2lkdGg6IDI3NXB4O1xuICAgIH1cblxuICAgIC5teF9NYXBFcnJvcl9oZWFkaW5nIHtcbiAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIC8qIG92ZXJyaWRlIGgzIGhlYWRpbmcgc2l6ZSAqL1xuICAgICAgICBmb250LXNpemU6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLm14X01hcEVycm9yX21lc3NhZ2Uge1xuICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTR4KSAwIHZhcigtLWNwZC1zcGFjZS04eCk7XG59XG5cbi5teF9NYXBFcnJvcl9oZWFkaW5nIHtcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbn1cblxuLm14X01hcEVycm9yX2ljb24ge1xuICAgIGhlaWdodDogdmFyKC0tbXgtbWFwLWVycm9yLWljb24tc2l6ZSk7XG4gICAgd2lkdGg6IHZhcigtLW14LW1hcC1lcnJvci1pY29uLXNpemUpO1xuICAgIGNvbG9yOiB2YXIoLS1teC1tYXAtZXJyb3ItaWNvbi1jb2xvcik7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTWFwRmFsbGJhY2sge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDA7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3lzdGVtO1xufVxuXG4ubXhfTWFwRmFsbGJhY2tfYmcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICBjb2xvcjogJHF1aW5hcnktY29udGVudDtcbiAgICB6LWluZGV4OiAtMTtcblxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ubXhfTWFwRmFsbGJhY2tfaWNvbiB7XG4gICAgd2lkdGg6IDY1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICBjb2xvcjogJHF1YXRlcm5hcnktY29udGVudDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NYXJrZXJfZGVmYXVsdENvbG9yIHtcbiAgICBjb2xvcjogJGFjY2VudDtcbn1cblxuLm14X01hcmtlcl9ib3JkZXIge1xuICAgIHdpZHRoOiA0MnB4O1xuICAgIGhlaWdodDogNDJweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwcHggM3B4IDVweCByZ2IoMCwgMCwgMCwgMC4yKSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgLyogY2FyZXQgZG93biAqL1xuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiA1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1yaWdodDogNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItdG9wOiA1cHggc29saWQgY3VycmVudENvbG9yO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogLTRweDtcbiAgICB9XG59XG5cbi5teF9NYXJrZXJfaWNvbiB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGhlaWdodDogMjBweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkNcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NoYXJlRGlhbG9nQnV0dG9ucyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMDtcbiAgICB0b3A6IDA7XG59XG5cbmJ1dHRvbi5teF9TaGFyZURpYWxvZ0J1dHRvbnNfYnV0dG9uIHtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgb3BhY2l0eTogMC44O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICYubGVmdCB7XG4gICAgICAgIGxlZnQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgfVxuXG4gICAgJi5yaWdodCB7XG4gICAgICAgIHJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIH1cbn1cblxuLm14X1NoYXJlRGlhbG9nQnV0dG9uc19idXR0b24taWNvbiB7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbjogMnB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NoYXJlVHlwZSB7XG4gICAgZmxleDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBwYWRkaW5nOiA2MHB4IHZhcigtLWNwZC1zcGFjZS0zeCkgdmFyKC0tY3BkLXNwYWNlLTh4KTtcblxuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuXG4gICAgLm14X1NoYXJlVHlwZV93cmFwcGVyX29wdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICByb3ctZ2FwOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcblxuICAgICAgICAubXhfU2hhcmVUeXBlX29wdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCkgdmFyKC0tY3BkLXNwYWNlLTV4KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG5cbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGFjY2VudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1NoYXJlVHlwZV9iYWRnZSB7XG4gICAgaGVpZ2h0OiA2MHB4O1xuICAgIHdpZHRoOiA2MHB4O1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS01eCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm9yZGVyOiAxNHB4IHNvbGlkICRhY2NlbnQ7XG4gICAgLyogY29sb3JzIGljb24gKi9cbiAgICBjb2xvcjogd2hpdGU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLm14X1NoYXJlVHlwZV9oZWFkaW5nIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTh4KTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5teF9TaGFyZVR5cGVfb3B0aW9uLWljb24ge1xuICAgIGhlaWdodDogNDBweDtcbiAgICB3aWR0aDogNDBweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICBmbGV4OiAwIDAgNDBweDtcbiAgICBib3JkZXItd2lkdGg6IDJweDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAgIC8qIExpdmUgaXMgc3R5bGVkIGJ5IFN0eWxlZExpdmVCZWFjb25JY29uICovXG5cbiAgICAmLk93biB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGFjY2VudDtcbiAgICB9XG5cbiAgICAmLlBpbiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGFjY2VudDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDtcbiAgICAgICAgcGFkZGluZzogN3B4O1xuICAgICAgICAvKiBjb2xvcnMgaWNvbiAqL1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1pvb21CdXR0b25zIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuICAgIHJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICByb3ctZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgLm14X1pvb21CdXR0b25zX2J1dHRvbiB7XG4gICAgICAgICRab29tQnV0dG9uc19idXR0b24tc2l6ZTogMjRweDtcblxuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBoZWlnaHQ6ICRab29tQnV0dG9uc19idXR0b24tc2l6ZTtcbiAgICAgICAgd2lkdGg6ICRab29tQnV0dG9uc19idXR0b24tc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCA0cHggMTJweCByZ2IoMCwgMCwgMCwgMC4yNSk7XG5cbiAgICAgICAgLm14X1pvb21CdXR0b25zX2ljb24ge1xuICAgICAgICAgICAgJFpvb21CdXR0b25zX2ljb24tc2l6ZTogMTJweDtcblxuICAgICAgICAgICAgaGVpZ2h0OiAkWm9vbUJ1dHRvbnNfaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRab29tQnV0dG9uc19pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NQmVhY29uQm9keSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMjIwcHg7XG4gICAgbWF4LXdpZHRoOiAzMjVweDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLU1Cb2R5LWJvcmRlci1yYWRpdXMpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5teF9NQmVhY29uQm9keS5teF9NQmVhY29uQm9keV93aXRob3V0TWFwIHtcbiAgICBoZWlnaHQ6IGF1dG87XG5cbiAgICAubXhfTUJlYWNvbkJvZHlfY2hpbiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxufVxuXG4ubXhfTUJlYWNvbkJvZHlfd2l0aG91dE1hcENvbnRlbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwYW5lbHM7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuXG4ubXhfTUJlYWNvbkJvZHlfd2l0aG91dE1hcEluZm9MYXN0VXBkYXRlZCB7XG4gICAgLyogNDhweCBsaW5lcyB1cCB3aXRoIGljb24gaW4gQmVhY29uU3RhdHVzICovXG4gICAgbWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLWNwZC1zcGFjZS0yeCkpO1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tY3BkLXNwYWNlLTJ4KSB2YXIoLS1jcGQtc3BhY2UtMngpIDQ4cHg7XG5cbiAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMHB4O1xufVxuXG4ubXhfTUJlYWNvbkJvZHlfbWFwIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMDsgLyoga2VlcHMgdGhlIGVudGlyZSBtYXAgdW5kZXIgdGhlIG1lc3NhZ2UgYWN0aW9uIGJhcnMgKi9cblxuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm14X01CZWFjb25Cb2R5X21hcEZhbGxiYWNrLFxuLm14X01CZWFjb25Cb2R5X21hcEVycm9yIHtcbiAgICAvKiBwdXNoZXMgc3Bpbm5lci9pY29uIHVwICovXG4gICAgLyogdG8gYXBwZWFyIG1vcmUgY2VudGVyZWQgd2l0aCB0aGUgZm9vdGVyICovXG4gICAgcGFkZGluZy1ib3R0b206IDUwcHggIWltcG9ydGFudDtcbn1cblxuLm14X01CZWFjb25Cb2R5X21hcEVycm9ySW50ZXJhY3RpdmUge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm14X01CZWFjb25Cb2R5X21hcEZhbGxiYWNrIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5teF9NQmVhY29uQm9keV9jaGluIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG4gICAgb3BhY2l0eTogMC44NTtcbn1cblxuLm14X0V2ZW50VGlsZVtkYXRhLWxheW91dD1cImJ1YmJsZVwiXSAubXhfRXZlbnRUaWxlX2xpbmUgLm14X01CZWFjb25Cb2R5IHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgd2lkdGg6IDQ1MHB4O1xufVxuXG4ubXhfUmVwbHlUaWxlIC5teF9NQmVhY29uQm9keSB7XG4gICAgLyogUHJldmVudCBjbGlja2luZyBhIGJlYWNvbiB3aXRoaW4gYSByZXBseSAqL1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01lZGlhUHJvY2Vzc2luZ0Vycm9yX0ljb24ge1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUG9sbE9wdGlvbiB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHF1aW5hcnktY29udGVudDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgcGFkZGluZzogNnB4IDEycHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG5cbiAgICAubXhfU3R5bGVkUmFkaW9CdXR0b25fY29udGVudCxcbiAgICAubXhfUG9sbE9wdGlvbl9lbmRlZE9wdGlvbiB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAycHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMHB4O1xuICAgIH1cblxuICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9zcGFjZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLm14X1BvbGxPcHRpb24sXG4vKiBsYWJlbCBoYXMgY3Vyc29yOiBkZWZhdWx0IGluIHVzZXItYWdlbnQgc3R5bGVzaGVldCAqL1xuLyogb3ZlcnJpZGUgKi9cbi5teF9Qb2xsT3B0aW9uX2xpdmUtb3B0aW9uIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5teF9Qb2xsT3B0aW9uX2NvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4ubXhfUG9sbE9wdGlvbl9vcHRpb25Wb3RlQ291bnQge1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5teF9Qb2xsT3B0aW9uX3dpbm5lckljb24ge1xuICAgIGhlaWdodDogMTJweDtcbiAgICB3aWR0aDogMTJweDtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tYWNjZW50LXRlcnRpYXJ5KTtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLm14X1BvbGxPcHRpb25fY2hlY2tlZCB7XG4gICAgLm14X1BvbGxPcHRpb25fcG9wdWxhcml0eUJhY2tncm91bmQge1xuICAgICAgICAubXhfUG9sbE9wdGlvbl9wb3B1bGFyaXR5QW1vdW50IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXByaW1hcnkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogb3ZlcnJpZGUgY2hlY2tlZCByYWRpbyBidXR0b24gc3R5bGluZyB0byBzaG93IGNoZWNrbWFyayBpbnN0ZWFkICovXG4gICAgLm14X1N0eWxlZFJhZGlvQnV0dG9uX2NoZWNrZWQge1xuICAgICAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCArIGRpdiB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXByaW1hcnkpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tcHJpbWFyeSk7XG5cbiAgICAgICAgICAgIGRpdiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1vbi1zb2xpZC1wcmltYXJ5KTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEycHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAtMnB4O1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9Qb2xsT3B0aW9uX2VuZGVkLm14X1BvbGxPcHRpb25fY2hlY2tlZCB7XG4gICAgLm14X1BvbGxPcHRpb25fcG9wdWxhcml0eUJhY2tncm91bmQge1xuICAgICAgICAubXhfUG9sbE9wdGlvbl9wb3B1bGFyaXR5QW1vdW50IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLWFjY2VudC10ZXJ0aWFyeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBvdmVycmlkZSBjaGVja2VkIHJhZGlvIGJ1dHRvbiBzdHlsaW5nIHRvIHNob3cgY2hlY2ttYXJrIGluc3RlYWQgKi9cbiAgICAubXhfU3R5bGVkUmFkaW9CdXR0b25fY2hlY2tlZCB7XG4gICAgICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkICsgZGl2IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tYWNjZW50LXRlcnRpYXJ5KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLWFjY2VudC10ZXJ0aWFyeSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIG9wdGlvbnMgbm90IGFjdGlvbmFibGUgaW4gdGhlc2Ugc3RhdGVzICovXG4ubXhfUG9sbE9wdGlvbl9jaGVja2VkLFxuLm14X1BvbGxPcHRpb25fZW5kZWQge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ubXhfUG9sbE9wdGlvbl9wb3B1bGFyaXR5QmFja2dyb3VuZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3lzdGVtO1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAubXhfUG9sbE9wdGlvbl9wb3B1bGFyaXR5QW1vdW50IHtcbiAgICAgICAgd2lkdGg6IDAlO1xuICAgICAgICBoZWlnaHQ6IDhweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1wcmltYXJ5KTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyNCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuQ29weXJpZ2h0IDIwMTkgTmV3IFZlY3RvciBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLypcbiAqIFRoZXNlIHVzZWQgdG8gbGl2ZSBpbiBHZW5lcmFsIFVzZXIgU2V0dGluZ3MuIFRoZXNlIGNvbXBvbmVudHMgYXJlIGhvcnJpYmx5IGR1cGxpY2F0aXZlXG4gKiBidXQgc2hhcmUgdGhlIHNhbWUgc3R5bGVzLiBGb3Igbm93IEknbSBwdXR0aW5nIHRoZW0gaGVyZSBzbyBJIGNhbiByZW5hbWVkIHRoZSBnZW5lcmFsXG4gKiB0YWIgc2Vuc2libHkgYW5kIGJlZm9yZSBJIGNhbiByZWZhY3RvciB0aGVzZSBjb21wb25lbnRzLlxuICovXG5cbi5teF9BZGRSZW1vdmVUaHJlZXBpZHNfZXhpc3Rpbmcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLm14X0FkZFJlbW92ZVRocmVlcGlkc19leGlzdGluZ19hZGRyZXNzLFxuLm14X0FkZFJlbW92ZVRocmVlcGlkc19leGlzdGluZ19wcm9tcHRUZXh0IHtcbiAgICBmbGV4OiAxO1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbn1cblxuLm14X0FkZFJlbW92ZVRocmVlcGlkc19leGlzdGluZ19idXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG5cbi5teF9FbWFpbEFkZHJlc3Nlc1Bob25lTnVtYmVyc192ZXJpZnkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5teF9FbWFpbEFkZHJlc3Nlc1Bob25lTnVtYmVyc19leGlzdGluZ19idXR0b24ge1xuICAgIGp1c3RpZnktY29udGVudDogcmlnaHQ7XG59XG5cbi5teF9FbWFpbEFkZHJlc3Nlc1Bob25lTnVtYmVyc192ZXJpZnlfaW5zdHJ1Y3Rpb25zIHtcbiAgICBmbGV4OiAxO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0N1cnJlbnREZXZpY2VTZWN0aW9uX2RldmljZURldGFpbHMge1xuICAgIC8qIGFsaWduIHdpdGggdGV4dCBvZiBzZXNzaW9uIHRpbGUgKi9cbiAgICBtYXJnaW4tbGVmdDogNTZweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EZXZpY2VEZXRhaWxIZWFkaW5nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5teF9EZXZpY2VEZXRhaWxIZWFkaW5nX3JlbmFtZUN0YSB7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5teF9EZXZpY2VEZXRhaWxIZWFkaW5nX3JlbmFtZUZvcm0ge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIGp1c3RpZnktY29udGVudDogbGVmdDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEwMCU7XG59XG5cbi5teF9EZXZpY2VEZXRhaWxIZWFkaW5nX3JlbmFtZUZvcm1CdXR0b25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgLm14X1NwaW5uZXIge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgZmxleC1ncm93OiAwO1xuICAgIH1cbn1cblxuLm14X0RldmljZURldGFpbEhlYWRpbmdfcmVuYW1lRm9ybUlucHV0IHtcbiAgICAvKiBvdmVycmlkZSBmaWVsZCBzdHlsZXMgKi9cbiAgICBtYXJnaW46IDAgMCB2YXIoLS1jcGQtc3BhY2UtMXgpIDAgIWltcG9ydGFudDtcbn1cblxuLm14X0RldmljZURldGFpbEhlYWRpbmdfcmVuYW1lRm9ybUhlYWRpbmcge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLm14X0RldmljZURldGFpbEhlYWRpbmdfcmVuYW1lRm9ybUVycm9yIHtcbiAgICBjb2xvcjogJGFsZXJ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRGV2aWNlRGV0YWlscyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9EZXZpY2VEZXRhaWxzX3NlY3Rpb24ge1xuICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNXgpO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS01eCk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG5cbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGxlZnQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxMDAlO1xuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxufVxuXG4ubXhfRGV2aWNlRGV0YWlsc19zZWN0aW9uSGVhZGluZyB7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgLm14X0RldmljZURldGFpbHNfc2VjdGlvblN1YmhlYWRpbmcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTRweDtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICB9XG59XG5cbi5teF9EZXZpY2VEZXRhaWxzX21ldGFkYXRhVGFibGUge1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcblxuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG5cbiAgICB0aCB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuXG4gICAgdGQge1xuICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICB9XG5cbiAgICAubXhEZXZpY2VEZXRhaWxzX21ldGFkYXRhTGFiZWwge1xuICAgICAgICB3aWR0aDogMTYwcHg7XG4gICAgfVxuXG4gICAgLm14RGV2aWNlRGV0YWlsc19tZXRhZGF0YVZhbHVlIHtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgfVxufVxuXG4ubXhfRGV2aWNlRGV0YWlsc19zaWduT3V0QnV0dG9uQ29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xufVxuXG4ubXhfRGV2aWNlRGV0YWlsc19wdXNoTm90aWZpY2F0aW9ucyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgLm14X1RvZ2dsZVN3aXRjaCB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRGV2aWNlRXhwYW5kRGV0YWlsc0J1dHRvbiB7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIHdpZHRoOiAzMnB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGNvbG9yOiAkaWNvbi1idXR0b24tY29sb3I7XG5cbiAgICAtLWljb24tdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcXVpbmFyeS1jb250ZW50O1xuICAgIH1cbn1cblxuLm14X0RldmljZUV4cGFuZERldGFpbHNCdXR0b24ubXhfRGV2aWNlRXhwYW5kRGV0YWlsc0J1dHRvbl9leHBhbmRlZCB7XG4gICAgLS1pY29uLXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuXG4gICAgYmFja2dyb3VuZDogJHN5c3RlbTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcXVpbmFyeS1jb250ZW50O1xuICAgIH1cbn1cblxuLm14X0RldmljZUV4cGFuZERldGFpbHNCdXR0b25faWNvbiB7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIHdpZHRoOiAyNHB4O1xuXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG4gICAgdHJhbnNmb3JtOiB2YXIoLS1pY29uLXRyYW5zZm9ybSk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0RldmljZVNlY3VyaXR5Q2FyZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuXG4gICAgYm9yZGVyOiAxcHggc29saWQgJHF1aW5hcnktY29udGVudDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG5cbi5teF9EZXZpY2VTZWN1cml0eUNhcmRfaWNvbiB7XG4gICAgZmxleDogMCAwIDQwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG5cbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgd2lkdGg6IDQwcHg7XG5cbiAgICBjb2xvcjogdmFyKC0taWNvbi1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvcik7XG5cbiAgICAmLlZlcmlmaWVkIHtcbiAgICAgICAgLS1pY29uLWNvbG9yOiAkZTJlLXZlcmlmaWVkLWNvbG9yO1xuICAgICAgICAtLWJhY2tncm91bmQtY29sb3I6ICRlMmUtdmVyaWZpZWQtY29sb3ItbGlnaHQ7XG4gICAgfVxuXG4gICAgJi5VbnZlcmlmaWVkIHtcbiAgICAgICAgLS1pY29uLWNvbG9yOiAkZTJlLXdhcm5pbmctY29sb3I7XG4gICAgICAgIC0tYmFja2dyb3VuZC1jb2xvcjogJGUyZS13YXJuaW5nLWNvbG9yLWxpZ2h0O1xuICAgIH1cblxuICAgICYuSW5hY3RpdmUge1xuICAgICAgICAtLWljb24tY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgLS1iYWNrZ3JvdW5kLWNvbG9yOiAkcGFuZWxzO1xuICAgIH1cbn1cblxuLm14X0RldmljZVNlY3VyaXR5Q2FyZF9jb250ZW50IHtcbiAgICBmbGV4OiAxIDE7XG59XG4ubXhfRGV2aWNlU2VjdXJpdHlDYXJkX2hlYWRpbmcge1xuICAgIG1hcmdpbjogMCAwIHZhcigtLWNwZC1zcGFjZS0xeCkgMDtcbn1cbi5teF9EZXZpY2VTZWN1cml0eUNhcmRfZGVzY3JpcHRpb24ge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9EZXZpY2VTZWN1cml0eUNhcmRfYWN0aW9ucyB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EZXZpY2VUaWxlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLm14X0RldmljZVRpbGVfaW50ZXJhY3RpdmUge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm14X0RldmljZVRpbGVfaW5mbyB7XG4gICAgZmxleDogMSAxIDA7XG59XG5cbi5teF9EZXZpY2VUaWxlX21ldGFkYXRhIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbn1cblxuLm14X0RldmljZVRpbGVfaW5hY3RpdmVJY29uIHtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5teF9EZXZpY2VUaWxlX2FjdGlvbnMge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRGV2aWNlVHlwZUljb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgLyogY3JlYXRlcyBzcGFjZSBmb3IgdmVyaWZpY2F0aW9uIGljb24gdG8gb3ZlcmxhcCAqL1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tY3BkLXNwYWNlLTJ4KSB2YXIoLS1jcGQtc3BhY2UtMngpIDA7XG59XG5cbi5teF9EZXZpY2VUeXBlSWNvbl9kZXZpY2VJY29uV3JhcHBlciB7XG4gICAgLS1iYWNrZ3JvdW5kLWNvbG9yOiAkcGFuZWxzO1xuICAgIC0taWNvbi1jb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICBib3JkZXI6IHZhcigtLWNwZC1zcGFjZS0yeCkgc29saWQgdmFyKC0tYmFja2dyb3VuZC1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGNvbG9yOiB2YXIoLS1pY29uLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yKTtcbn1cblxuLm14X0RldmljZVR5cGVJY29uX3NlbGVjdGVkIC5teF9EZXZpY2VUeXBlSWNvbl9kZXZpY2VJY29uV3JhcHBlciB7XG4gICAgLS1iYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIC0taWNvbi1jb2xvcjogJGJhY2tncm91bmQ7XG59XG5cbi5teF9EZXZpY2VUeXBlSWNvbl9kZXZpY2VJY29uIHtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgd2lkdGg6IDI0cHg7XG59XG5cbi5teF9EZXZpY2VUeXBlSWNvbl92ZXJpZmljYXRpb25JY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGhlaWdodDogMjRweDtcbiAgICB3aWR0aDogMjRweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG5cbiAgICBib3JkZXI6IDFweCBzb2xpZCAkcXVpbmFyeS1jb250ZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcblxuICAgIGNvbG9yOiB2YXIoLS12LWljb24tY29sb3IpO1xuXG4gICAgJi52ZXJpZmllZCB7XG4gICAgICAgIC0tdi1pY29uLWNvbG9yOiAkZTJlLXZlcmlmaWVkLWNvbG9yO1xuICAgIH1cblxuICAgICYudW52ZXJpZmllZCB7XG4gICAgICAgIC0tdi1pY29uLWNvbG9yOiAkZTJlLXdhcm5pbmctY29sb3I7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0ZpbHRlcmVkRGV2aWNlTGlzdCB7XG4gICAgLm14X0Ryb3Bkb3duIHtcbiAgICAgICAgZmxleDogMSAwIDgwcHg7XG4gICAgfVxufVxuXG4ubXhfRmlsdGVyZWREZXZpY2VMaXN0X2xpc3Qge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMCB2YXIoLS1jcGQtc3BhY2UtNHgpO1xufVxuXG4ubXhfRmlsdGVyZWREZXZpY2VMaXN0X2xpc3RJdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5teF9GaWx0ZXJlZERldmljZUxpc3Rfc2VjdXJpdHlDYXJkIHtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xufVxuXG4ubXhfRmlsdGVyZWREZXZpY2VMaXN0X25vUmVzdWx0cyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS04eCk7XG59XG5cbi5teF9GaWx0ZXJlZERldmljZUxpc3RfaGVhZGVyQnV0dG9uIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICAvKiBvdmVycmlkZSBpbmxpbmUgYnV0dG9uIHN0eWxpbmcgKi9cbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9GaWx0ZXJlZERldmljZUxpc3RfZGV2aWNlRGV0YWlscyB7XG4gICAgLyogYWxpZ24gd2l0aCB0ZXh0IG9mIHNlc3Npb24gdGlsZSAqL1xuICAgIG1hcmdpbi1sZWZ0OiA4OHB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0ZpbHRlcmVkRGV2aWNlTGlzdEhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgcGFkZGluZzogMCB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS04eCk7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFuZWxzO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgLyogSGlnaGVyIHNwZWNpZmljaXR5IHNlbGVjdG9yIHRvIG92ZXJyaWRlIHRoZSBmbGV4LXN0YXJ0IHZhbHVlICovXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b24ubXhfQWNjZXNzaWJsZUJ1dHRvbl9oYXNLaW5kIHtcbiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIH1cbn1cblxuLm14X0ZpbHRlcmVkRGV2aWNlTGlzdEhlYWRlcl9sYWJlbCB7XG4gICAgZmxleDogMSAxIDEwMCU7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2VjdXJpdHlSZWNvbW1lbmRhdGlvbnNfc3BhY2luZyB7XG4gICAgaGVpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0LDIwMjUgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2VsZWN0YWJsZURldmljZVRpbGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ubXhfU2VsZWN0YWJsZURldmljZVRpbGVfY2hlY2tib3gge1xuICAgIGZsZXg6IDEgMDtcblxuICAgID4gZGl2IHtcbiAgICAgICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgIH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNSBOZXcgVmVjdG9yIEx0ZC5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X0tleVN0b3JhZ2VQYW5lbF90b2dnbGVSb3cge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2V0dGluZ3NTdWJzZWN0aW9uIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgJi5teF9TZXR0aW5nc1N1YnNlY3Rpb25fbmV3VWkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgfVxuXG4gICAgKltyb2xlPVwic2VwYXJhdG9yXCJdIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBnYXAgYmV0d2VlbiBzdWJzZWN0aW9ucyBpcyAzMnB4IGFuZCBpbnNpZGUgdGhlIHN1YnNlY3Rpb24gaXMgMjRweC5cbiAgICAgICAgICogVGhlIHNlcGFyYXRvciBzZXBhcmF0ZXMgdGhlIHN1YnNlY3Rpb25zLCBzbyBpdCBzaG91bGQgaGF2ZSB0aGUgc2FtZSBnYXAgYXMgdGhlIHN1YnNlY3Rpb25zLlxuICAgICAgICAgKiBXZSBhZGQgMTJweCBhbmQgdGhlIHNlcGFyYXRvciBzcGFjaW5nICg4cHgpIHRvIHRoZSB0b3AgbWFyZ2luIHRvIG1ha2UgdGhlIHNlcGFyYXRvciB2aXN1YWxseSBjZW50ZXJlZCBiZXR3ZWVuIHRoZSBzdWJzZWN0aW9ucy5cbiAgICAgICAgICogIWltcG9ydGFudCBiZWNhdXNlIGl0J3Mgb3ZlcnJpZGluZyBjb21wb3VuZCBtYXJnaW4uXG4gICAgICAgICAqL1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNXgpICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4ubXhfU2V0dGluZ3NTdWJzZWN0aW9uX2Rlc2NyaXB0aW9uIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuXG4ubXhfU2V0dGluZ3NTdWJzZWN0aW9uX3RleHQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbn1cblxuLm14X1NldHRpbmdzU3Vic2VjdGlvbl9jb250ZW50IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAvKiBzZXR0aW5nIG1pbndpZHRoIDAgbWFrZXMgY29sdW1ucyBkZWZpbml0ZWx5IHNpemVkIGZpeGluZyBob3Jpem9udGFsIG92ZXJmbG93ICovXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKTtcbiAgICBqdXN0aWZ5LWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS02eCk7XG5cbiAgICBzdW1tYXJ5IHtcbiAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgfVxuICAgIGRldGFpbHNbb3Blbl0ge1xuICAgICAgICBzdW1tYXJ5IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X1NldHRpbmdzU3Vic2VjdGlvbl9jb250ZW50U3RyZXRjaCB7XG4gICAgICAgIGp1c3RpZnktaXRlbXM6IHN0cmV0Y2g7XG4gICAgfVxuXG4gICAgJi5teF9TZXR0aW5nc1N1YnNlY3Rpb25fbm9IZWFkaW5nIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gICAgJi5teF9TZXR0aW5nc1N1YnNlY3Rpb25fY29udGVudF9uZXdVaSB7XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICAubXhfU2V0dGluZ3NTdWJzZWN0aW9uX2Ryb3Bkb3duIHtcbiAgICAgICAgbWluLXdpZHRoOiAzNjBweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2V0dGluZ3NTdWJzZWN0aW9uSGVhZGluZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuXG4ubXhfU2V0dGluZ3NTdWJzZWN0aW9uSGVhZGluZ19oZWFkaW5nIHtcbiAgICBmbGV4OiAxIDEgMTAwJTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9RdWlja1RoZW1lU3dpdGNoZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIC5teF9Ecm9wZG93biB7XG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBoZWlnaHQ6IG1pbi1jb250ZW50O1xuICAgIH1cblxuICAgIC5teF9Ecm9wZG93bl9tZW51IHtcbiAgICAgICAgLyogUXVpY2sgc2V0dGluZ3MgbGl2ZXMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgd2luZG93LCBzbyBhIG1lbnUgZHJvcHBpbmcgZG93bndhcmRzIHdvdWxkIHJ1blxuICAgICAgICAgICBvZmYgdGhlIGJvdHRvbSBvZiB0aGUgdmlld3BvcnQuIE9wZW4gaXQgdXB3YXJkcywgd2hlcmUgdGhlcmUgaXMgcm9vbSBmb3IgZXZlcnkgdGhlbWUuICovXG4gICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgYm90dG9tOiAxMDAlO1xuICAgIH1cbn1cblxuLm14X1F1aWNrVGhlbWVTd2l0Y2hlcl9oZWFkaW5nIHtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDA7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ2FwdGlvbiB7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgJi5teF9DYXB0aW9uX2Vycm9yIHtcbiAgICAgICAgY29sb3I6ICRhbGVydDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKlxuICogQ29tcG91bmQgaWNvblxuXG4gKiB7QGxpbmsgaHR0cHM6Ly93d3cuZmlnbWEuY29tL2ZpbGUvWDRYVEg5aVMyS0dKMndGS0Rxa3llZH1cbiAqL1xuXG4ubXhfSWNvbiB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLm14X0ljb25fYWNjZW50IHtcbiAgICBjb2xvcjogJGFjY2VudDtcbn1cblxuLm14X0ljb25fYmctYWNjZW50LWxpZ2h0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50LTMwMDtcbn1cblxuLm14X0ljb25fYWxlcnQge1xuICAgIGNvbG9yOiAkYWxlcnQ7XG59XG5cbi5teF9JY29uX2NpcmNsZS00MCB7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBmbGV4OiAwIDAgNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgcGFkZGluZzogMCAxMnB4O1xuICAgIHdpZHRoOiA0MHB4O1xufVxuXG4ubXhfSWNvbl84IHtcbiAgICBmbGV4OiAwIDAgOHB4O1xuICAgIGhlaWdodDogOHB4O1xuICAgIHdpZHRoOiA4cHg7XG59XG5cbi5teF9JY29uXzEwIHtcbiAgICBmbGV4OiAwIDAgMTBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgd2lkdGg6IDEwcHg7XG59XG5cbi5teF9JY29uXzEyIHtcbiAgICBmbGV4OiAwIDAgMTJweDtcbiAgICBoZWlnaHQ6IDEycHg7XG4gICAgd2lkdGg6IDEycHg7XG59XG5cbi5teF9JY29uXzE2IHtcbiAgICBmbGV4OiAwIDAgMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgd2lkdGg6IDE2cHg7XG59XG5cbi5teF9JY29uXzI0IHtcbiAgICBmbGV4OiAwIDAgMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgd2lkdGg6IDI0cHg7XG59XG5cbi5teF9JY29uXzMyIHtcbiAgICBmbGV4OiAwIDAgMzJweDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgd2lkdGg6IDMycHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU3VjY2Vzc0RpYWxvZyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgLm14X0ljb24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIH1cblxuICAgIC5teF9EaWFsb2dfaGVhZGVyIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAubXhfRGlhbG9nX3RpdGxlIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC5teF9EaWFsb2dfY29udGVudCB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIG1hcmdpbjogMCAwIHZhcigtLWNwZC1zcGFjZS0xMHgpO1xuICAgIH1cblxuICAgIC5teF9EaWFsb2dfYnV0dG9ucyB7XG4gICAgICAgIC5teF9EaWFsb2dfYnV0dG9uc19yb3cge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgICAgIGJ1dHRvbi5teF9EaWFsb2dfcHJpbWFyeSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMzI4cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTgtMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLyogbWFrZSBhbnkgc2Nyb2xsYmFyIGdyZXkgYW5kIHRoaW4gKi9cbmh0bWwge1xuICAgIHNjcm9sbGJhci1jb2xvcjogJHNjcm9sbGJhci10aHVtYi1jb2xvciB0cmFuc3BhcmVudDtcbn1cbi8qIHNjcm9sbGJhci13aWR0aCBpcyBub3QgaW5oZXJpdGVkIChidXQgLWNvbG9yIGlzLCB3aHk/ISksICovXG4vKiBzbyBkZWNsYXJlIGl0IG9uIGV2ZXJ5IGVsZW1lbnQgKi9cbioge1xuICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjtcbn1cblxuOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgd2lkdGg6IDZweDtcbiAgICBoZWlnaHQ6IDZweDtcbn1cblxuOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzY3JvbGxiYXItdGh1bWItY29sb3I7XG59XG5cbi8qIG1ha2UgYXV0by1oaWRlIHNjcm9sbGJhcnMgbm90IHRyYW5zcGFyZW50IGFnYWluIG9uIGhvdmVyICovXG4ubXhfQXV0b0hpZGVTY3JvbGxiYXI6aG92ZXIge1xuICAgIHNjcm9sbGJhci1jb2xvcjogJHNjcm9sbGJhci10aHVtYi1jb2xvciB0cmFuc3BhcmVudDtcblxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNjcm9sbGJhci10aHVtYi1jb2xvcjtcbiAgICB9XG59XG5cbi8qIG1ha2Ugc2Nyb2xsYmFycyB0cmFuc3BhcmVudCBmb3IgYXV0b2hpZGUgc2Nyb2xsYmFycyAqL1xuLm14X0F1dG9IaWRlU2Nyb2xsYmFyIHtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBvdmVyZmxvdy15OiBvdmVybGF5OyAvKiB3aGVyZSBzdXBwb3J0ZWQgKi9cbiAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IC1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtcblxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICBzY3JvbGxiYXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0F1dG9jb21wbGV0ZUlucHV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5teF9BdXRvY29tcGxldGVJbnB1dF9zZWFyY2hfaWNvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgZmlsbDogJHNlY29uZGFyeS1jb250ZW50O1xufVxuXG4ubXhfQXV0b2NvbXBsZXRlSW5wdXRfZWRpdG9yIHtcbiAgICBmbGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGlucHV0LWJvcmRlci1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMjVzO1xuXG4gICAgPiBpbnB1dCB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1pbi13aWR0aDogNDAlO1xuICAgICAgICByZXNpemU6IG5vbmU7XG4gICAgICAgIC8qIGAhaW1wb3J0YW50YCBpcyByZXF1aXJlZCB0byBieXBhc3MgZ2xvYmFsIGlucHV0IHN0eWxlcy4gKi9cbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCkgOXB4O1xuICAgICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQgIWltcG9ydGFudDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9BdXRvY29tcGxldGVJbnB1dF9lZGl0b3ItLWZvY3VzZWQge1xuICAgIGJvcmRlci1jb2xvcjogJGxpbmtzO1xufVxuXG4ubXhfQXV0b2NvbXBsZXRlSW5wdXRfZWRpdG9yLS1oYXMtc3VnZ2VzdGlvbnMge1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG59XG5cbi5teF9BdXRvY29tcGxldGVJbnB1dF9lZGl0b3Jfc2VsZWN0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuXG4ubXhfQXV0b2NvbXBsZXRlSW5wdXRfZWRpdG9yX3NlbGVjdGlvbl9waWxsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdXNlcm5hbWUtdmFyaWFudDEtY29sb3I7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xufVxuXG4ubXhfQXV0b2NvbXBsZXRlSW5wdXRfZWRpdG9yX3NlbGVjdGlvbl9yZW1vdmVfYnV0dG9uIHN2ZyB7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLm14X0F1dG9jb21wbGV0ZUlucHV0X21hdGNoZXMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRsaW5rcztcbiAgICBib3JkZXItdG9wLWNvbG9yOiAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xuICAgIHotaW5kZXg6IDEwMDA7XG59XG5cbi5teF9BdXRvY29tcGxldGVJbnB1dF9zdWdnZXN0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICA+ICoge1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF1aW5hcnktY29udGVudDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xuICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xuICAgIH1cbn1cblxuLm14X0F1dG9jb21wbGV0ZUlucHV0X3N1Z2dlc3Rpb24tLXNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xuICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xuICAgIH1cbn1cblxuLm14X0F1dG9jb21wbGV0ZUlucHV0X3N1Z2dlc3Rpb25fdGl0bGUge1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cblxuLm14X0F1dG9jb21wbGV0ZUlucHV0X3N1Z2dlc3Rpb25fZGVzY3JpcHRpb24ge1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xufVxuIiwiLm14X0NvbXBhdGliaWxpdHlQYWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U1NTtcbn1cblxuLm14X0NvbXBhdGliaWxpdHlQYWdlX2JveCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICB3aWR0aDogNTAwcHg7XG4gICAgaGVpZ2h0OiAzMDBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZDtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmY2M7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0NvbnRleHR1YWxNZW51X3dyYXBwZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiA1MDAwO1xufVxuXG4ubXhfQ29udGV4dHVhbE1lbnVfYmFja2dyb3VuZCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4ubXhfQ29udGV4dHVhbE1lbnUge1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYm94LXNoYWRvdzogMHB4IDRweCAyNHB4IHJnYigwLCAwLCAwLCAwLjEpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG4gICAgYm9yZGVyOiB2YXIoLS1jcGQtYm9yZGVyLXdpZHRoLTEpIHNvbGlkIHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtc2Vjb25kYXJ5KTtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogNTAwMTtcbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG59XG5cbi5teF9Db250ZXh0dWFsTWVudV9yaWdodCB7XG4gICAgcmlnaHQ6IDE2cHg7XG59XG5cbi5teF9Db250ZXh0dWFsTWVudS5teF9Db250ZXh0dWFsTWVudV93aXRoQ2hldnJvbl9yaWdodCB7XG4gICAgcmlnaHQ6IDhweDtcbn1cblxuLm14X0NvbnRleHR1YWxNZW51X2NoZXZyb25fcmlnaHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogLThweDtcbiAgICB0b3A6IDBweDtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLXRvcDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1sZWZ0OiA4cHggc29saWQgJG1lbnUtYmctY29sb3I7XG4gICAgYm9yZGVyLWJvdHRvbTogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4ubXhfQ29udGV4dHVhbE1lbnVfbGVmdCB7XG4gICAgbGVmdDogMDtcbn1cblxuLm14X0NvbnRleHR1YWxNZW51Lm14X0NvbnRleHR1YWxNZW51X3dpdGhDaGV2cm9uX2xlZnQge1xuICAgIGxlZnQ6IDhweDtcbn1cblxuLm14X0NvbnRleHR1YWxNZW51X2NoZXZyb25fbGVmdCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IC04cHg7XG4gICAgdG9wOiAwcHg7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci10b3A6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQ6IDhweCBzb2xpZCAkbWVudS1iZy1jb2xvcjtcbiAgICBib3JkZXItYm90dG9tOiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbi5teF9Db250ZXh0dWFsTWVudV90b3Age1xuICAgIHRvcDogMDtcbn1cblxuLm14X0NvbnRleHR1YWxNZW51Lm14X0NvbnRleHR1YWxNZW51X3dpdGhDaGV2cm9uX3RvcCB7XG4gICAgdG9wOiA4cHg7XG59XG5cbi5teF9Db250ZXh0dWFsTWVudV9jaGV2cm9uX3RvcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDBweDtcbiAgICB0b3A6IC04cHg7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1sZWZ0OiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogOHB4IHNvbGlkICRtZW51LWJnLWNvbG9yO1xuICAgIGJvcmRlci1yaWdodDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4ubXhfQ29udGV4dHVhbE1lbnVfYm90dG9tIHtcbiAgICBib3R0b206IDA7XG59XG5cbi5teF9Db250ZXh0dWFsTWVudS5teF9Db250ZXh0dWFsTWVudV93aXRoQ2hldnJvbl9ib3R0b20ge1xuICAgIGJvdHRvbTogOHB4O1xufVxuXG4ubXhfQ29udGV4dHVhbE1lbnVfY2hldnJvbl9ib3R0b20ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwcHg7XG4gICAgYm90dG9tOiAtOHB4O1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItbGVmdDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3A6IDhweCBzb2xpZCAkbWVudS1iZy1jb2xvcjtcbiAgICBib3JkZXItcmlnaHQ6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLm14X0NvbnRleHR1YWxNZW51X3JpZ2h0QWxpZ25lZCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbn1cblxuLm14X0NvbnRleHR1YWxNZW51X2JvdHRvbUFsaWduZWQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRXJyb3JNZXNzYWdlIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcbiAgICBtaW4taGVpZ2h0OiAyLjRlbTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbkBrZXlmcmFtZXMgbXhfRmlsZURyb3BUYXJnZXRfYW5pbWF0aW9uIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAwLjk1O1xuICAgIH1cbn1cblxuLm14X0ZpbGVEcm9wVGFyZ2V0IHtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgZm9udC1zaXplOiAkZm9udC0xOHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgb3BhY2l0eTogMC45NTtcblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAzMDAwO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBhbmltYXRpb246IG14X0ZpbGVEcm9wVGFyZ2V0X2FuaW1hdGlvbjtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDAuNXM7XG59XG5cbkBrZXlmcmFtZXMgbXhfRmlsZURyb3BUYXJnZXRfaW1hZ2VfYW5pbWF0aW9uIHtcbiAgICBmcm9tIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG4gICAgfVxufVxuXG4ubXhfRmlsZURyb3BUYXJnZXRfaW1hZ2Uge1xuICAgIHdpZHRoOiAzMnB4O1xuICAgIGFuaW1hdGlvbjogbXhfRmlsZURyb3BUYXJnZXRfaW1hZ2VfYW5pbWF0aW9uO1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMC41cztcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0ZpbGVQYW5lbCB7XG4gICAgb3JkZXI6IDI7XG4gICAgZmxleDogMSAxIDA7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgLm14X1Jvb21WaWV3X21lc3NhZ2VMaXN0V3JhcHBlciB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cblxuICAgIC5teF9Sb29tVmlld19NZXNzYWdlTGlzdCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgfVxuXG4gICAgLyogRklYTUU6IHJhdGhlciB0aGFuIGhhdmluZyBFdmVudFRpbGUncyBkZWZhdWx0IENTUyBiZSBmb3IgTWVzc2FnZVBhbmVsLFxuICAgd2Ugc2hvdWxkIG1ha2UgRXZlbnRUaWxlIGEgYmFzZSBDU1MgY2xhc3MgYW5kIGN1c3RvbWlzZSBpdCBzcGVjaWZpY2FsbHlcbiAgIGZvciB1c2FnZSBpbiB7TWVzc2FnZSxGaWxlLE5vdGlmaWNhdGlvbn1QYW5lbC4gKi9cblxuICAgIC8qIE92ZXJyaWRlcyBmb3IgdGhlIGF0dGFjaG1lbnQgYm9keSB0aWxlcyAqL1xuICAgIC5teF9FdmVudFRpbGUge1xuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcblxuICAgICAgICAmICsgLm14X0V2ZW50VGlsZSB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWdyYXktNDAwKTtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X01GaWxlQm9keSBbZGF0YS10eXBlPVwiZG93bmxvYWRcIl0ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9JbWFnZUJvZHkge1xuICAgICAgICAgICAgZ2FwOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogYW5jaG9yIGxpbmsgYXMgd3JhcHBlciAqL1xuICAgICAgICAubXhfRXZlbnRUaWxlX3NlbmRlckRldGFpbHNMaW5rIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9zZW5kZXJEZXRhaWxzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0ycHg7XG4gICAgICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICAgICAubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGUge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGV2ZW50LXRpbWVzdGFtcC1jb2xvcjsgLyogZm9yIGVsbGlwc2lzLiBDb2xvciBvZiBkaXNwbGF5TmFtZSBhbmQgbXhpZCBpcyBpbmhlcml0ZWQgKi9cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfTWVzc2FnZVRpbWVzdGFtcCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAwO1xuICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9idXR0b24ge1xuICAgIHBhZGRpbmc6IDNweCA0cHggM3B4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcblxuICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG59XG5cbi5teF9HZW5lcmljRHJvcGRvd25NZW51X2J1dHRvbjpob3Zlcixcbi5teF9HZW5lcmljRHJvcGRvd25NZW51X2J1dHRvblthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXSB7XG4gICAgYmFja2dyb3VuZDogJHF1aW5hcnktY29udGVudDtcbn1cblxuLm14X0NvbnRleHR1YWxNZW51X3dyYXBwZXIubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV93cmFwcGVyIHtcbiAgICAubXhfQ29udGV4dHVhbE1lbnUge1xuICAgICAgICBwb3NpdGlvbjogaW5pdGlhbDtcblxuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcblxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiKDIzLCAyNSwgMjgsIDAuMDUpO1xuICAgIH1cblxuICAgIC5teF9Db250ZXh0dWFsTWVudV9jaGV2cm9uX3RvcCB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHJpZ2h0OiAyMnB4O1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBib3JkZXI6IGluaGVyaXQ7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkbWVudS1iZy1jb2xvcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMXB4O1xuICAgICAgICAgICAgbGVmdDogLThweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9HZW5lcmljRHJvcGRvd25NZW51X2RpdmlkZXIge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogNHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDE5cHg7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkcXVpbmFyeS1jb250ZW50O1xuICAgIH1cblxuICAgIC5teF9HZW5lcmljRHJvcGRvd25NZW51X09wdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMTBweCAyMHB4IDEwcHggMzBweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgID4gLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfT3B0aW9uLS1sYWJlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcblxuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICBzcGFuOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9PcHRpb24tLWhlYWRlciA+IC5teF9HZW5lcmljRHJvcGRvd25NZW51X09wdGlvbi0tbGFiZWwgc3BhbjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfT3B0aW9uLS1pdGVtIHtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtZW51LXNlbGVjdGVkLWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9PcHRpb24tLWNoZWNrSWNvbiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMjJweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTcgVmVjdG9yIENyZWF0aW9ucyBMdGRcbkNvcHlyaWdodCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Ib21lUGFnZSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiBtaW4oMTAwJSAtIDUwcHgsIDk2MHB4KTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgY29udGFpbmVyLXR5cGU6IGlubGluZS1zaXplO1xuICAgIGNvbnRhaW5lci1uYW1lOiBob21lcGFnZTtcbn1cblxuLm14X0hvbWVQYWdlX2RlZmF1bHQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIGltZyB7XG4gICAgICAgIGhlaWdodDogNDhweDtcbiAgICB9XG5cbiAgICBoMSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMzJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzc1O1xuICAgIH1cblxuICAgIGgyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xOHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjVweDtcbiAgICAgICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbiAgICB9XG5cbiAgICAubXhfTWluaUF2YXRhclVwbG9hZGVyIHtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgfVxuXG4gICAgLm14X0hvbWVQYWdlX2RlZmF1bHRfYnV0dG9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gICAgICAgIGdhcDogNXB4IDQwcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tdG9wOiA4MHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgZ2FwOiAxM3B4O1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIHdpZHRoOiAxNjBweDtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEzMnB4O1xuICAgICAgICAgICAgcGFkZGluZzogOHB4IDE1cHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMHB4O1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7IC8qIG9uIGFsbCB0aGVtZXMgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQ7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7IC8qIG9uIGFsbCB0aGVtZXMgKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250YWluZXIgaG9tZXBhZ2UgKG1heC13aWR0aDogNTU5cHgpIHtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuXG4gICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xuXG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xhcmdlTG9hZGVyIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAubXhfU3Bpbm5lciB7XG4gICAgICAgIGZsZXg6IHVuc2V0O1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMycHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDMzdmg7XG4gICAgfVxuXG4gICAgLm14X0xhcmdlTG9hZGVyX3RleHQge1xuICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBwYWRkaW5nOiAwIDE2cHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NYXRyaXhDaGF0LS13aXRoLWF2YXRhciB7XG4gICAgLm14X0xlZnRQYW5lbCxcbiAgICAubXhfTGVmdFBhbmVsIC5teF9MZWZ0UGFuZWxfcm9vbUxpc3RDb250YWluZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG59XG5cbi5teF9MZWZ0UGFuZWxfb3V0ZXJXcmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubXhfTGVmdFBhbmVsX3dyYXBwZXIsXG4ubXhfTGVmdFBhbmVsIHtcbiAgICAtLWNvbGxhcHNlZFdpZHRoOiA2OHB4O1xufVxuXG4ubXhfTGVmdFBhbmVsX3BhbmVsIHtcbiAgICAubXhfTGVmdFBhbmVsX291dGVyV3JhcHBlciB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cblxuICAgIC5teF9MZWZ0UGFuZWxfd3JhcHBlci0tdXNlciB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cblxuLm14X0xlZnRQYW5lbF93cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleDogMTtcbiAgICBoZWlnaHQ6IDEwMCU7IC8qIGVuc3VyZSBzcGFjZSBwYW5lbCBpcyBzdGlsbCBzY3JvbGxhYmxlIHdpdGggYW4gb3V0ZXIgd3JhcHBlciAqL1xuXG4gICAgLm14X0xlZnRQYW5lbF93cmFwcGVyLS11c2VyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAvKiBGb3IgZW5oYW5jZWQgdmlzaWJpbGl0eSB1bmRlciBjb250cmFzdCBjb250cm9sICovXG4gICAgICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuICAgICAgICAmW2RhdGEtY29sbGFwc2VkXSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IHZhcigtLWNvbGxhcHNlZFdpZHRoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0xlZnRQYW5lbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcbiAgICAvKiBUaGUgcm9vbSBsaXN0IGlzIG5vdCBkZXNpZ25lZCB0byBiZSBjb2xsYXBzZWQgdG8ganVzdCBpY29ucy4gKi9cbiAgICAvKiAyMjQgKyA2OChzcGFjZXMgYmFyKSB3YXMgZGVlbWVkIGJ5IGRlc2lnbiB0byBiZSBhIGdvb2QgbWluaW11bSBmb3IgdGhlIGxlZnQgcGFuZWwuICovXG4gICAgLS1jb2xsYXBzZWRXaWR0aDogMjI0cHg7XG5cbiAgICAvKiBDcmVhdGUgYSByb3ctYmFzZWQgZmxleGJveCBmb3IgdGhlIHNwYWNlIHBhbmVsIGFuZCB0aGUgcm9vbSBsaXN0ICovXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBjb250YWluOiBjb250ZW50O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIC5teF9MZWZ0UGFuZWxfcm9vbUxpc3RDb250YWluZXIge1xuICAgICAgICBmbGV4OiAxIDAgMDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAvKiBDcmVhdGUgYW5vdGhlciBmbGV4Ym94ICh0aGlzIHRpbWUgYSBjb2x1bW4pIGZvciB0aGUgcm9vbSBsaXN0IGNvbXBvbmVudHMgKi9cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICAvKiBUaGVzZSBzdHlsZXMgb3ZlcnJpZGUgdGhlIGRlZmF1bHRzIGZvciB0aGUgbWluaW1pemVkICg2NnB4KSBsYXlvdXQgKi9cbiAgICAmLm14X0xlZnRQYW5lbF9taW5pbWl6ZWQge1xuICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIG1pbi13aWR0aDogdW5zZXQ7XG4gICAgICAgIHdpZHRoOiB1bnNldCAhaW1wb3J0YW50O1xuXG4gICAgICAgIC5teF9MZWZ0UGFuZWxfcm9vbUxpc3RDb250YWluZXIge1xuICAgICAgICAgICAgd2lkdGg6IHZhcigtLWNvbGxhcHNlZFdpZHRoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuI2xlZnQtcGFuZWwgLm14X0xlZnRQYW5lbF93cmFwcGVyLS11c2VyIHtcbiAgICAvKlxuICAgICAqIERpc2FibGUgYmFja2dyb3VuZCB3aGVuIHVzaW5nIHRoZSBuZXcgcm9vbSBsaXN0LlxuICAgICAqIFRoaXMgYmFja2dyb3VuZCBzb21ldGltZXMgc2hvd3Mgd2hlbiB0aGUgcGFuZWwgaXMgcmVzaXplZCBhbmQgaXQgbG9va3MgbGlrZSBhIHRoaWNrZXIgYm9yZGVyLlxuICAgICAqL1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01haW5TcGxpdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLm14X01haW5TcGxpdCA+IC5teF9SaWdodFBhbmVsX1Jlc2l6ZVdyYXBwZXIge1xuICAgICY6aG92ZXIgLm14X1Jlc2l6ZUhhbmRsZS0taG9yaXpvbnRhbDo6YmVmb3JlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTUwJSwgLTUwJSk7XG5cbiAgICAgICAgaGVpZ2h0OiA2NHB4OyAvKiB0byBtYXRjaCB3aWR0aCBvZiB0aGUgb25lcyBvbiByb29tbGlzdCAqL1xuICAgICAgICB3aWR0aDogNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG5cbiAgICAgICAgY29udGVudDogXCJcIjtcblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICBvcGFjaXR5OiAwLjg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01hdHJpeENoYXRfc3BsYXNoIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ubXhfTWF0cml4Q2hhdF93cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ubXhfTWF0cml4VG9vbGJhciB7XG4gICAgb3JkZXI6IDE7XG5cbiAgICBoZWlnaHQ6IDQwcHg7XG59XG5cbi5teF9NYXRyaXhDaGF0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIGZsZXg6IDE7XG4gICAgbWluLWhlaWdodDogMDtcbn1cblxuLyogbm90IHRoZSBsZWZ0IHBhbmVsLCBhbmQgbm90IHRoZSByZXNpemUgaGFuZGxlLCBzbyB0aGUgcm9vbXZpZXcgYW5kIGZyaWVuZHMgKi9cbi5teF9NYXRyaXhDaGF0ID4gOm5vdCgubXhfTGVmdFBhbmVsKTpub3QoLm14X1NwYWNlUGFuZWwpOm5vdCgubXhfUmVzaXplSGFuZGxlKTpub3QoLm14X0xlZnRQYW5lbF9vdXRlcldyYXBwZXIpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcblxuICAgIGZsZXg6IDEgMSAwO1xuICAgIG1pbi13aWR0aDogMDtcblxuICAgIC8qIFRvIGZpeCBodHRwczovL2dpdGh1Yi5jb20vdmVjdG9yLWltL2VsZW1lbnQtd2ViL2lzc3Vlcy8zMjk4IHdoZXJlIFNhZmFyaVxuICAgICAgIG5lZWRlZCBoZWlnaHQgMTAwJSBhbGwgdGhlIHdheSBkb3duIHRvIHRoZSBIb21lUGFnZS4gSGVpZ2h0IGRvZXMgbm90XG4gICAgICAgaGF2ZSB0byBiZSBhdXRvLCBlbXBpcmljYWxseS5cbiAgICAqL1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLm14X01hdHJpeENoYXQgPiAubXhfUmVzaXplSGFuZGxlLS1ob3Jpem9udGFsOmhvdmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuXG4gICAgICAgIGhlaWdodDogNjRweDsgLyogdG8gbWF0Y2ggd2lkdGggb2YgdGhlIG9uZXMgb24gcm9vbWxpc3QgKi9cbiAgICAgICAgd2lkdGg6IDRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuXG4gICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTm9uVXJnZW50VG9hc3RDb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDMwcHg7XG4gICAgbGVmdDogMjhweDtcbiAgICB6LWluZGV4OiAxMDE7IC8qIHNhbWUgbGV2ZWwgYXMgb3RoZXIgdG9hc3RzICovXG5cbiAgICAubXhfTm9uVXJnZW50VG9hc3RDb250YWluZXJfdG9hc3Qge1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgd2lkdGg6IDMyMHB4O1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEzcHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDhweDtcblxuICAgICAgICAvKiBXZSBkb24ndCB1c2UgdmFyaWFibGVzIG9uIHRoZSBjb2xvdXJzIGJlY2F1c2Ugd2Ugd2FudCBpdCB0byBiZSB0aGUgc2FtZSAqL1xuICAgICAgICAvKiBpbiBhbGwgdGhlbWVzLiAqL1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTcxOTFjO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjYgRWxlbWVudCBDcmVhdGlvbnMgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUGljdHVyZUluUGljdHVyZURyYWdnZXIge1xuICAgIGN1cnNvcjogZ3JhYjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICBsZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgLyogRGlzcGxheSBhYm92ZSBhbnkgd2lkZ2V0IGVsZW1lbnRzICovXG4gICAgei1pbmRleDogMTAyO1xufVxuXG4ubXhfUGljdHVyZUluUGljdHVyZURyYWdnZXI6YWN0aXZlIHtcbiAgICBjdXJzb3I6IGdyYWJiaW5nO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0LDIwMjUgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUXVpY2tTZXR0aW5nc0J1dHRvbiB7XG4gICAgLyogIWltcG9ydGFudCBvdmVycmlkZSBjb21wb3VuZCAqL1xuICAgIGJvcmRlci1yYWRpdXM6IDhweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMTJweCBhdXRvIDEycHg7XG5cbiAgICBzdmcge1xuICAgICAgICBmaWxsOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgJjpub3QoLmV4cGFuZGVkKTpob3ZlciB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBvdmVycmlkZSBjb21wb3VuZCBkZWZhdWx0IGJhY2tncm91bmQgY29sb3Igd2hlbiBob3ZlcmVkXG4gICAgICAgICAqIHNob3VsZCBkaXNhcHBlYXIgd2hlbiB0aGUgc3BhY2UgcGFuZWwgd2lsbCBiZSBtaWdyYXRlZCB0byBjb21wb3VuZFxuICAgICAgICAgKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF1YXRlcm5hcnktY29udGVudCAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgZmlsbDogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuZXhwYW5kZWQge1xuICAgICAgICAvKipcbiAgICAgICAgICogb3ZlcnJpZGUgY29tcG91bmQgZGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIHdoZW4gaG92ZXJlZFxuICAgICAgICAgKiBzaG91bGQgZGlzYXBwZWFyIHdoZW4gdGhlIHNwYWNlIHBhbmVsIHdpbGwgYmUgbWlncmF0ZWQgdG8gY29tcG91bmRcbiAgICAgICAgICovXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgLyogYWxpZ24gd2l0aCBzZXR0aW5ncyBpY29uICovXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyMXB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIG1vZGlmeSBpbnRlcm5hbCBjc3Mgb2YgdGhlIGNvbXBvdW5kIGNvbXBvbmVudFxuICAgICAgICAgKiBkaXJ0eSBidXQgd2UgbmVlZCB0byBhZGQgdGhlIGxhYmVsIGludG8gdGhlIGluZGljYXRvciBpY29uIGJ1dHRvblxuICAgICAgICAgKiovXG4gICAgICAgICYgPiBkaXYge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgLyogYWxpZ24gd2l0aCBzZXR0aW5ncyBsYWJlbCAqL1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNHB4O1xuICAgICAgICAgICAgLyogcmVxdWlyZWQgdG8gc2V0IHRoZSBpY29uIHdpZHRoIHdoZW4gaW50byBhIGZsZXggY29udGFpbmVyICovXG4gICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJiAubXhfUXVpY2tTZXR0aW5nc0J1dHRvbl9sYWJlbCB7XG4gICAgICAgICAgICAvKiAhaW1wb3J0YW50IG92ZXJyaWRlIGNvbXBvdW5kICAqL1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfUXVpY2tTZXR0aW5nc0J1dHRvbl9Db250ZXh0TWVudVdyYXBwZXIgLm14X0NvbnRleHR1YWxNZW51IHtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICBtaW4td2lkdGg6IDIwMHB4O1xuICAgIGNvbnRhaW46IHVuc2V0OyAvKiBsZXQgdGhlIGRyb3Bkb3duIHBhaW50IGJleW9uZCB0aGUgY29udGV4dCBtZW51ICovXG5cbiAgICA+IGRpdiA+IGgyIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICBtYXJnaW46IDAgMCAxNnB4O1xuICAgIH1cblxuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2hhc0tpbmQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgIH1cblxuICAgID4gZGl2ID4gaDQge1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgIG1hcmdpbjogMjBweCAwIDEycHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICAubXhfUXVpY2tTZXR0aW5nc0J1dHRvbl9tb3JlT3B0aW9uc0J1dHRvbiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtN3gpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtcHJpbWFyeSk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICB9XG5cbiAgICAubXhfUXVpY2tTZXR0aW5nc0J1dHRvbl9vcHRpb24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICAvKiBDb3JyZWN0bHkgbGluZSB1cCBpY29ucyBhbmQgdGV4dC4gKi9cbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUXVpY2tUaGVtZVN3aXRjaGVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICB9XG59XG5cbi5teF9RdWlja1NldHRpbmdzQnV0dG9uX2ljb24ge1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGhlaWdodDogMThweDtcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgIG1hcmdpbi1ib3R0b206IGF1dG87XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1JpZ2h0UGFuZWwge1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJHNlcGFyYXRvcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBjb250YWluOiBzdHJpY3Q7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcblxuICAgIC5teF9Sb29tVmlld19NZXNzYWdlTGlzdCB7XG4gICAgICAgIHBhZGRpbmc6IDE0cHggMThweDsgLyogdG9wIGFuZCBib3R0b20gaXMgNHB4IHNtYWxsZXIgdG8gYmFsYW5jZSB3aXRoIHRoZSBwYWRkaW5nIHNldCBhYm92ZSAqL1xuICAgIH1cbn1cblxuLm14X1JpZ2h0UGFuZWwgLm14X01lbWJlckxpc3QsXG4ubXhfUmlnaHRQYW5lbCAubXhfTWVtYmVySW5mbyB7XG4gICAgb3JkZXI6IDI7XG4gICAgZmxleDogMSAxIDA7XG59XG5cbi5teF9SaWdodFBhbmVsIC5teF9Sb29tVmlld19tZXNzYWdlUGFuZWxTcGlubmVyIHtcbiAgICBvcmRlcjogMjtcbiAgICBtYXJnaW46IGF1dG87XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG46cm9vdCB7XG4gICAgLS1Sb29tVmlld19NZXNzYWdlTGlzdC1wYWRkaW5nOiAxOHB4O1xufVxuXG4ubXhfTGVmdFBhbmVsX3BhbmVsIHtcbiAgICAubXhfUm9vbVZpZXdfd3JhcHBlciB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG59XG5cbi5teF9Sb29tVmlld193cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleDogMTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgLyogQ29udGFpbiB0aGUgYW1vdW50IG9mIGxheWVycyByZW5kZXJlZCBieSBjb25zdHJhaW5pbmcgd2hhdCBhY3R1YWxseSBuZWVkcyByZS1sYXllcmluZyB2aWEgY3NzICovXG4gICAgY29udGFpbjogc3RyaWN0O1xufVxuXG4ubXhfUm9vbVZpZXcge1xuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleDogMTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAubXhfTWFpblNwbGl0IHtcbiAgICAgICAgZmxleDogMSAxIDA7XG4gICAgfVxuXG4gICAgLm14X01lc3NhZ2VDb21wb3NlciB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAycHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxZW07XG4gICAgfVxufVxuXG4ubXhfUm9vbVZpZXdfYXV4UGFuZWxfaGlkZGVuSGlnaGxpZ2h0cyB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRwcmltYXJ5LWhhaXJsaW5lLWNvbG9yO1xuICAgIHBhZGRpbmc6IDEwcHggMjZweDtcbiAgICBjb2xvcjogJGFsZXJ0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm14X1Jvb21WaWV3X21lc3NhZ2VQYW5lbCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBvdmVyZmxvdy1hbmNob3I6IG5vbmU7XG59XG5cbi5teF9Sb29tVmlld19tZXNzYWdlUGFuZWxTZWFyY2hTcGlubmVyIHtcbiAgICBmbGV4OiAxO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9yZXMvaW1nL3R5cGluZy1pbmRpY2F0b3ItMnguZ2lmXCIpO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciAzNjdweDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDI1cHg7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBzdmcge1xuICAgICAgICBjb2xvcjogJGluZm8tcGxpbnRoLWZnLWNvbG9yO1xuICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMjg2cHg7XG4gICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gMjVweCk7XG4gICAgfVxufVxuXG4ubXhfUm9vbVZpZXdfYm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGNvbnRhaW5lci10eXBlOiBzaXplO1xuICAgIGNvbnRhaW5lci1uYW1lOiByb29tdmlldztcblxuICAgIC5teF9Sb29tVmlld19tZXNzYWdlUGFuZWwsXG4gICAgLm14X1Jvb21WaWV3X21lc3NhZ2VQYW5lbFNwaW5uZXIsXG4gICAgLm14X1Jvb21WaWV3X21lc3NhZ2VQYW5lbFNlYXJjaFNwaW5uZXIge1xuICAgICAgICBvcmRlcjogMjtcbiAgICB9XG5cbiAgICAubXhfUm9vbVZpZXdfdGltZWxpbmUge1xuICAgICAgICAvKiBvZmZzZXQgcGFyZW50IGZvciBteF9Sb29tVmlld190b3BVbnJlYWRNZXNzYWdlc0JhciAgKi9cbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbn1cblxuLyogUmVzdG9yZSB0aGUgZ2FwIGJldHdlZW4gdGhlIHRpbWVsaW5lIGFuZCB0aGUgcmlnaHQgcGFuZWwgb25seSB3aGVuIHRoZSBwYW5lbCBpcyBvcGVuLlxuICAgV2l0aG91dCB0aGlzLCB0aGUgc2Nyb2xsYmFyIG9uIG14X1Jvb21WaWV3X21lc3NhZ2VQYW5lbCB3b3VsZCBzaXQgNCBweCBhd2F5IGZyb20gdGhlXG4gICB2aWV3cG9ydCBlZGdlIGluIEZpcmVmb3ggKHdoaWNoIGRvZXMgbm90IHN1cHBvcnQgb3ZlcmZsb3c6b3ZlcmxheSkuICovXG4ubXhfTWFpblNwbGl0OmhhcygubXhfUmlnaHRQYW5lbF9SZXNpemVXcmFwcGVyKSAubXhfUm9vbVZpZXdfdGltZWxpbmUge1xuICAgIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1jb250YWluZXItZ2FwLXdpZHRoKSAvIDIpO1xufVxuXG4ubXhfUm9vbVZpZXdfc3RhdHVzQXJlYSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxleDogMCAwIGF1dG87XG5cbiAgICBtYXgtaGVpZ2h0OiAwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgei1pbmRleDogMTAwMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1vdXQ7XG59XG5cbi5teF9Sb29tVmlld19zdGF0dXNBcmVhX2V4cGFuZGVkIHtcbiAgICBtYXgtaGVpZ2h0OiAxMDBweDtcbn1cblxuLm14X1Jvb21WaWV3X3N0YXR1c0FyZWFCb3gge1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xufVxuXG4ubXhfUm9vbVZpZXdfc3RhdHVzQXJlYUJveF9saW5lIHtcbiAgICBtYXJnaW4tbGVmdDogNjVweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHByaW1hcnktaGFpcmxpbmUtY29sb3I7XG4gICAgaGVpZ2h0OiAxcHg7XG59XG5cbi5teF9Sb29tVmlld19tZXNzYWdlTGlzdFdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm14X1Jvb21WaWV3X3NlYXJjaFJlc3VsdHNQYW5lbCB7XG4gICAgLm14X1Jvb21WaWV3X21lc3NhZ2VMaXN0V3JhcHBlciB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblxuICAgICAgICA+IC5teF9Sb29tVmlld19NZXNzYWdlTGlzdCA+IGxpID4gb2wge1xuICAgICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxufVxuXG4ubXhfUm9vbVZpZXdfZW1wdHkge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTNweDtcbiAgICBwYWRkaW5nOiAwIDI0cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAzMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiA4MHB4OyAvKiB2aXN1YWxseSBjZW50ZXIgdGhlIGNvbnRlbnQgKGludGVudGlvbmFsIG9mZnNldCkgKi9cbn1cblxuLm14X1Jvb21WaWV3X01lc3NhZ2VMaXN0IHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgcGFkZGluZzogdmFyKC0tUm9vbVZpZXdfTWVzc2FnZUxpc3QtcGFkZGluZyk7IC8qIG14X1Byb2ZpbGVSZXNpemVyIGRlcGVuZHMgb24gdGhpcyB2YWx1ZSAqL1xuICAgIG1hcmdpbjogMDtcbiAgICAvKiBuZWVkZWQgYXMgbWluLWhlaWdodCBpcyBzZXQgdG8gY2xpZW50SGVpZ2h0IGluIFNjcm9sbFBhbmVsXG4gICAgdG8gcHJldmVudCBzaHJpbmtpbmcgd2hlbiBXaG9Jc1R5cGluZ1RpbGUgaXMgaGlkZGVuICovXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIGxpIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuXG4gICAgLm14X1Njcm9sbFBhbmVsICYge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgY29udGVudC12aXNpYmlsaXR5OiBhdXRvO1xuICAgICAgICBjb250YWluLWludHJpbnNpYy1zaXplOiA1MHB4O1xuICAgIH1cblxuICAgIC5teF9Sb29tVmlldy0tbG9jYWwgLm14X1Njcm9sbFBhbmVsICYge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG59XG5cbi5teF9Sb29tVmlld19pbkNhbGwge1xuICAgIC5teF9Sb29tVmlld19zdGF0dXNBcmVhQm94X2xpbmUge1xuICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgaGVpZ2h0OiAwcHg7XG4gICAgfVxuXG4gICAgLm14X01lc3NhZ2VDb21wb3Nlcl93cmFwcGVyIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMnB4IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZy10b3A6IDFweDtcbiAgICB9XG59XG5cbi5teF9NYXRyaXhDaGF0X3VzZUNvbXBhY3RMYXlvdXQge1xuICAgIC5teF9Sb29tVmlld19NZXNzYWdlTGlzdCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcblxuICAgICAgICBoMiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA2cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUm9vbVZpZXdfc3RhdHVzQXJlYUJveCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQycHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NlYXJjaEJveCB7XG4gICAgZmxleDogMSAxIDA7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1pbi1oZWlnaHQ6IDM2cHg7IC8qIHRvIGF2b2lkIGp1bXBpbmcgd2hlbiB0aGUgWCB0byBjbGVhciBzaG93cy9oaWRlcyAqL1xuXG4gICAgJi5teF9TZWFyY2hCb3hfYmx1cnJlZDpub3QoOmhvdmVyKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC5teF9TZWFyY2hCb3hfY2xvc2VCdXR0b24ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIHBhZGRpbmc6IDlweDtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tc2Vjb25kYXJ5KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCwyMDI1IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NwYWNlUm9vbVZpZXdfbGFuZGluZyB7XG4gICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rIHtcbiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIH1cblxuICAgIC5teF9TZWFyY2hCb3gge1xuICAgICAgICBtYXJnaW46IDI0cHggMCAxNnB4O1xuICAgIH1cblxuICAgIC5teF9TcGFjZUhpZXJhcmNoeV9ub1Jlc3VsdHMge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSGllcmFyY2h5X2xpc3RIZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWZsb3c6IHdyYXA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcblxuICAgICAgICAubXhfU3BhY2VIaWVyYXJjaHlfbGlzdEhlYWRlcl9oZWFkZXIge1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDE7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcGFjZUhpZXJhcmNoeV9saXN0SGVhZGVyX2J1dHRvbnMge1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDI7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICAgICAgbWluLWhlaWdodDogMzJweDtcblxuICAgICAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDRweCAxMnB4O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2Rhbmdlcl9vdXRsaW5lLFxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnlfb3V0bGluZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAzcHggMTJweDsgLyogdG8gYWNjb3VudCBmb3IgdGhlIDFweCBib3JkZXIgKi9cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TcGFjZUhpZXJhcmNoeV9lcnJvciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE4cHg7XG4gICAgICAgIG1hcmdpbjogMjBweCBhdXRvIDEycHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiQHZlY3Rvci1pbS9jb21wb3VuZC1kZXNpZ24tdG9rZW5zL2ljb25zL2Vycm9yLXNvbGlkLnN2Z1wiKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSGllcmFyY2h5X3Jvb21Db3VudCB7XG4gICAgICAgID4gaDMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE4cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjJweDtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgPiBzcGFuIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VIaWVyYXJjaHlfc3Vic3BhY2VfdG9nZ2xlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAtMXB4O1xuICAgICAgICB0b3A6IDEwcHg7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfU3BhY2VIaWVyYXJjaHlfc3Vic3BhY2VfdG9nZ2xlX3Nob3duIHN2ZyB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TcGFjZUhpZXJhcmNoeV9zdWJzcGFjZV9jaGlsZHJlbiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICAgIH1cblxuICAgIC5teF9TcGFjZUhpZXJhcmNoeV9saXN0IHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgIGxpLm14X1NwYWNlSGllcmFyY2h5X3Jvb21UaWxlV3JhcHBlciB7XG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICAgICAgICAgICAubXhfU3BhY2VIaWVyYXJjaHlfcm9vbVRpbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgICAgIGdhcDogNnB4IDEycHg7XG5cbiAgICAgICAgICAgICAgICAubXhfU3BhY2VIaWVyYXJjaHlfcm9vbVRpbGVfaXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xOHB4O1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDIwcHggYXV0bztcbiAgICAgICAgICAgICAgICAgICAgZ2FwOiA2cHggOHB4O1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBmbGV4OiAxOyAvKiB3cmFwIGFjdGlvbiBidXR0b25zICovXG5cbiAgICAgICAgICAgICAgICAgICAgLm14X1NwYWNlSGllcmFyY2h5X3Jvb21UaWxlX2F2YXRhciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLm14X1NwYWNlSGllcmFyY2h5X3Jvb21UaWxlX25hbWUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLm14X0luZm9Ub29sdGlwLFxuICAgICAgICAgICAgICAgICAgICAgICAgLm14X1NwYWNlSGllcmFyY2h5X3Jvb21UaWxlX2pvaW5lZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLm14X0luZm9Ub29sdGlwIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5teF9TcGFjZUhpZXJhcmNoeV9yb29tVGlsZV9qb2luZWQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5teF9TcGFjZUhpZXJhcmNoeV9yb29tVGlsZV9pbmZvIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAyO1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMThweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1NwYWNlSGllcmFyY2h5X2FjdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBjb2x1bW4tZ2FwOiAxMnB4O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDRweCAxNnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9kYW5nZXJfb3V0bGluZSxcbiAgICAgICAgICAgICAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5X291dGxpbmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogM3B4IDE2cHg7IC8qIHRvIGFjY291bnQgZm9yIHRoZSAxcHggYm9yZGVyICovXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICY6Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNwYWNlUGFuZWwtYmctY29sb3I7XG5cbiAgICAgICAgICAgICAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYubXhfU3BhY2VIaWVyYXJjaHlfam9pbmluZyB7XG4gICAgICAgICAgICAgICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA0cHggMThweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TcGFjZUhpZXJhcmNoeV9yb29tVGlsZSxcbiAgICAubXhfU3BhY2VIaWVyYXJjaHlfc3Vic3BhY2VfY2hpbGRyZW4ge1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzcGFjZVBhbmVsLWJnLWNvbG9yO1xuICAgICAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDZweDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TcGFjZUhpZXJhcmNoeV9hY3Rpb25zIHtcbiAgICAgICAgLm14X1NwYWNlSGllcmFyY2h5X2FjdGlvbnNUZXh0IHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICA+IGhyIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE0MSwgMTUxLCAxNjUsIDAuMik7XG4gICAgICAgIG1hcmdpbjogMjBweCAwO1xuICAgIH1cblxuICAgIC5teF9TcGFjZUhpZXJhcmNoeV9jcmVhdGVSb29tIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMTZweCBhdXRvIDA7XG4gICAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU3BhY2VQYW5lbCB7XG4gICAgLS1hY3RpdmVCYWNrZ3JvdW5kLWNvbG9yOiAkcGFuZWwtYWN0aW9ucztcbiAgICAtLWFjdGl2ZUJvcmRlci1jb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAtLWFjdGl2ZUJvcmRlci10cmFuc3BhcmVudC1nYXA6IDFweDtcbiAgICAtLWd1dHRlclNpemU6IDE0cHg7XG4gICAgLS1oZWlnaHQtbmVzdGVkOiAyNHB4O1xuICAgIC0taGVpZ2h0LXRvcExldmVsOiAzMnB4O1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXByaW1hcnkpO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAvKiBGaXggZm9yIHRoZSBibHVycmVkIGF2YXRhci1iYWNrZ3JvdW5kICovXG4gICAgei1pbmRleDogMTtcblxuICAgIC8qIEZvciBlbmhhbmNlZCB2aXNpYmlsaXR5IHVuZGVyIGNvbnRyYXN0IGNvbnRyb2wgKi9cbiAgICBvdXRsaW5lOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgICAvKiBDcmVhdGUgYW5vdGhlciBmbGV4Ym94IHNvIHRoZSBQYW5lbCBmaWxscyB0aGUgY29udGFpbmVyICovXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgJi5jb2xsYXBzZWQge1xuICAgICAgICB3aWR0aDogNjhweDtcbiAgICB9XG5cbiAgICAubXhfU3BhY2VQYW5lbF90b2dnbGVDb2xsYXBzZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgdG9wOiAxOXB4OyAvKiB2LWFsaWduIHdpdGggYXZhdGFyICovXG4gICAgICAgIHJpZ2h0OiAtOHB4O1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgICAgICAgIC8qIFNsaWdodCBhbGlnbm1lbnQgdHdlYWsgdG8gY2VudGVyIHRoZSBhc3NldCAqL1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDFweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KC5leHBhbmRlZCkge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuZXhwYW5kZWQgc3ZnIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgICAgICAvKiBTbGlnaHQgYWxpZ25tZW50IHR3ZWFrIHRvIGNlbnRlciB0aGUgYXNzZXQgKi9cbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpob3ZlciAubXhfU3BhY2VQYW5lbF90b2dnbGVDb2xsYXBzZSxcbiAgICAubXhfU3BhY2VQYW5lbF90b2dnbGVDb2xsYXBzZTpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgLyogRm9yIGVuaGFuY2VkIHZpc2liaWxpdHkgdW5kZXIgY29udHJhc3QgY29udHJvbCAqL1xuICAgICAgICBvdXRsaW5lOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLm14X1NwYWNlQnV0dG9uX3RvZ2dsZUNvbGxhcHNlIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC5teF9TcGFjZUl0ZW1fZHJhZ2dpbmcge1xuICAgICAgICAubXhfU3BhY2VCdXR0b25fdG9nZ2xlQ29sbGFwc2Uge1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBmbGV4LWZsb3c6IHdyYXA7XG5cbiAgICAgICAgJi5teF9TcGFjZUl0ZW1fbmFycm93IHtcbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGJhc2VsaW5lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSXRlbS5jb2xsYXBzZWQge1xuICAgICAgICAmID4gLm14X1NwYWNlQnV0dG9uID4gLm14X1NwYWNlQnV0dG9uX3RvZ2dsZUNvbGxhcHNlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtMTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYgPiAubXhfU3BhY2VUcmVlTGV2ZWwge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TcGFjZUl0ZW1fbmV3IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIC5teF9TcGFjZUl0ZW06bm90KC5oYXNTdWJTcGFjZXMpID4gLm14X1NwYWNlQnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWd1dHRlclNpemUpO1xuICAgICAgICBtaW4td2lkdGg6IDQwcHg7XG4gICAgfVxuXG4gICAgLm14X1NwYWNlQnV0dG9uIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiA0cHggNHB4IDRweCAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgLyogT3ZlcnJpZGUgdGhlIHVubGF5ZXJlZCBjdXJzb3I6IGdyYWI7IHJ1bGUgZnJvbSByZWFjdC1iZWF1dGlmdWwtZG5kICovXG4gICAgICAgIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xuXG4gICAgICAgICYubXhfU3BhY2VCdXR0b25fYWN0aXZlIHtcbiAgICAgICAgICAgICY6bm90KC5teF9TcGFjZUJ1dHRvbl9uYXJyb3cpIC5teF9TcGFjZUJ1dHRvbl9zZWxlY3Rpb25XcmFwcGVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY3RpdmVCYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5teF9TcGFjZUJ1dHRvbl9uYXJyb3cgLm14X1NwYWNlQnV0dG9uX3NlbGVjdGlvbldyYXBwZXIge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWFjdGl2ZUJvcmRlci10cmFuc3BhcmVudC1nYXApO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogM3B4IHZhcigtLWFjdGl2ZUJvcmRlci1jb2xvcikgc29saWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BhY2VCdXR0b25fc2VsZWN0aW9uV3JhcHBlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgICAgICAgcGFkZGluZzogNHB4O1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDMycHgpO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9TcGFjZUJ1dHRvbl9uYXJyb3cgLm14X1NwYWNlQnV0dG9uX3NlbGVjdGlvbldyYXBwZXIge1xuICAgICAgICAgICAgZmxleDogaW5pdGlhbDtcbiAgICAgICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NwYWNlQnV0dG9uX25hbWUge1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NwYWNlQnV0dG9uX3RvZ2dsZUNvbGxhcHNlIHtcbiAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1ndXR0ZXJTaXplKTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMTBweCAwO1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIC8qIFJlLWFsaWduIHdpdGggcGFyZW50ICovXG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0zcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BhY2VCdXR0b25faWNvbiB7XG4gICAgICAgICAgICAvKiBDYWxjdWxhdGUgaGVpZ2h0IGV4Y2x1ZGluZyBwYWRkaW5nIHRvIGFsbG93IHN2ZyB0byBpbmhlcml0ICovXG4gICAgICAgICAgICB3aWR0aDogY2FsYyh2YXIoLS1oZWlnaHQtdG9wTGV2ZWwpIC0gMTRweCk7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGModmFyKC0taGVpZ2h0LXRvcExldmVsKSAtIDE0cHgpO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiA3cHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFuZWwtYWN0aW9ucztcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfU3BhY2VCdXR0b25fbmV3IC5teF9TcGFjZUJ1dHRvbl9pY29uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0OyAvKiBUT0RPIHRyYW5zaXRpb24gKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfU3BhY2VCdXR0b25fbmV3Q2FuY2VsIC5teF9TcGFjZUJ1dHRvbl9pY29uIHN2ZyB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BhY2VCdXR0b25fbWVudUJ1dHRvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0wLTV4KTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IGF1dG87XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDRweDtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VUcmVlTGV2ZWwge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBtYXgtd2lkdGg6IDI1MHB4O1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcblxuICAgICAgICAubXhfU3BhY2VUcmVlTGV2ZWwge1xuICAgICAgICAgICAgLyogSW5kZW50IHN1YnNwYWNlcyAqL1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlQnV0dG9uX2F2YXRhcldyYXBwZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIH1cblxuICAgIC5teF9TcGFjZVBhbmVsX2JhZGdlQ29udGFpbmVyIHtcbiAgICAgICAgLyogQ3JlYXRlIGEgZmxleGJveCB0byBtYWtlIGFsaWduaW5nIGRvdCBiYWRnZXMgZWFzaWVyICovXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IC0zcHg7XG4gICAgICAgIHRvcDogLTNweDtcblxuICAgICAgICAubXhfU3BhY2VQYW5lbF9ub3RpZmljYXRpb25CYWRnZSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMnB4OyAvKiBjZW50ZXJpbmcgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgICAgIH1cblxuICAgICAgICBbZGF0YS1iYWRnZS10eXBlPVwiZG90XCJdIHtcbiAgICAgICAgICAgIC8qIG1ha2UgdGhlIHNtYWxsZXIgZG90IG9jY3VweSB0aGUgc2FtZSB3aWR0aCBmb3IgY2VudGVyaW5nICovXG4gICAgICAgICAgICBtYXJnaW46IDAgLTFweCAwIDA7XG4gICAgICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAkc3BhY2VQYW5lbC1iZy1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIFtkYXRhLWJhZGdlLXR5cGU9XCJiYWRnZV8yY2hhclwiXSxcbiAgICAgICAgW2RhdGEtYmFkZ2UtdHlwZT1cImJhZGdlXzNjaGFyXCJdIHtcbiAgICAgICAgICAgIG1hcmdpbjogLTVweCAtNXB4IDAgMDtcbiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRzcGFjZVBhbmVsLWJnLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlQnV0dG9uOmhvdmVyLFxuICAgIC5teF9TcGFjZUJ1dHRvbjpmb2N1cy13aXRoaW4sXG4gICAgLm14X1NwYWNlQnV0dG9uX2hhc01lbnVPcGVuIHtcbiAgICAgICAgJjpub3QoLm14X1NwYWNlQnV0dG9uX25hcnJvdyk6bm90KC5teF9TcGFjZUJ1dHRvbl9pbnZpdGUpIC5teF9TcGFjZUJ1dHRvbl9tZW51QnV0dG9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSXRlbTpub3QoLm14X1NwYWNlSXRlbV9uZXcpIHtcbiAgICAgICAgLm14X1NwYWNlQnV0dG9uOmhvdmVyLFxuICAgICAgICAubXhfU3BhY2VCdXR0b246Zm9jdXMtd2l0aGluLFxuICAgICAgICAubXhfU3BhY2VCdXR0b25faGFzTWVudU9wZW4ge1xuICAgICAgICAgICAgJjpub3QoLm14X1NwYWNlQnV0dG9uX25hcnJvdyk6bm90KC5teF9TcGFjZUJ1dHRvbl9pbnZpdGUpIC5teF9TcGFjZUJ1dHRvbl9uYW1lIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDU2cHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogcm9vdCBzcGFjZSBidXR0b25zIGFyZSBiaWdnZXIgYW5kIG5vdCBpbmRlbnRlZCAqL1xuICAgICYgPiAubXhfQXV0b0hpZGVTY3JvbGxiYXIge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBwYWRkaW5nOiAwIDAgMTZweCAwO1xuICAgICAgICBzY3JvbGxiYXItZ3V0dGVyOiBzdGFibGU7XG5cbiAgICAgICAgJi5teF9JbmRpY2F0b3JTY3JvbGxiYXJfdG9wT3ZlcmZsb3cge1xuICAgICAgICAgICAgbWFzay1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgdHJhbnNwYXJlbnQsIGJsYWNrIDE2cHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9JbmRpY2F0b3JTY3JvbGxiYXJfYm90dG9tT3ZlcmZsb3cge1xuICAgICAgICAgICAgbWFzay1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgIHRvIHRvcCxcbiAgICAgICAgICAgICAgICB0cmFuc3BhcmVudCxcbiAgICAgICAgICAgICAgICByZ2IoMjU1LCAyNTUsIDI1NSwgMzAlKSA0cHgsXG4gICAgICAgICAgICAgICAgcmdiKDI1NSwgMjU1LCAyNTUsIDU1JSkgOHB4LFxuICAgICAgICAgICAgICAgIHJnYigyNTUsIDI1NSwgMjU1LCA3NSUpIDEycHgsXG4gICAgICAgICAgICAgICAgYmxhY2sgMTZweFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfSW5kaWNhdG9yU2Nyb2xsYmFyX3RvcE92ZXJmbG93Lm14X0luZGljYXRvclNjcm9sbGJhcl9ib3R0b21PdmVyZmxvdyB7XG4gICAgICAgICAgICAvKiBUaGlzIHN0YWNrcyB0d28gZ3JhZGllbnRzIG9uIHRvcCBvZiBvbmUgYW5vdGhlciwgd2hpY2ggbGV0cyB1c1xuICAgICAgICAgICAgICAgaGF2ZSBhIGZpeGVkIHBpeGVsIG9mZnNldCBmcm9tIGJvdGggdG9wIGFuZCBib3R0b20gZm9yIHRoZSBjb2xvdXIgc3RvcHMuXG4gICAgICAgICAgICAgICBOb3RlIHRoZSB0b3AgZmFkZSBpcyBtdWNoIHNtYWxsZXIgYmVjYXVzZSB0aGUgc3BhY2VzIHN0YXJ0IGNsb3NlIHRvIHRoZSB0b3AsXG4gICAgICAgICAgICAgICBzbyBvdGhlcndpc2UgYSBsYXJnZSBncmFkaWVudCBzdWRkZW5seSBhcHBlYXJzIHdoZW4geW91IHNjcm9sbCBkb3duLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBtYXNrLWltYWdlOlxuICAgICAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHRyYW5zcGFyZW50LCBibGFjayAxNnB4KSxcbiAgICAgICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIHRvcCxcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQsXG4gICAgICAgICAgICAgICAgICAgIHJnYigyNTUsIDI1NSwgMjU1LCAzMCUpIDRweCxcbiAgICAgICAgICAgICAgICAgICAgcmdiKDI1NSwgMjU1LCAyNTUsIDU1JSkgOHB4LFxuICAgICAgICAgICAgICAgICAgICByZ2IoMjU1LCAyNTUsIDI1NSwgNzUlKSAxMnB4LFxuICAgICAgICAgICAgICAgICAgICBibGFjayAxNnB4XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1hc2stcG9zaXRpb246XG4gICAgICAgICAgICAgICAgMCUgMCUsXG4gICAgICAgICAgICAgICAgMCUgMTAwJTtcbiAgICAgICAgICAgIG1hc2stc2l6ZTpcbiAgICAgICAgICAgICAgICBjYWxjKDEwMCUgLSAxMHB4KSA1MCUsXG4gICAgICAgICAgICAgICAgY2FsYygxMDAlIC0gMTBweCkgNTAlO1xuICAgICAgICAgICAgbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1NwYWNlUGFuZWxfY29udGV4dE1lbnUge1xuICAgIG1heC13aWR0aDogMzYwcHg7XG5cbiAgICAubXhfU3BhY2VQYW5lbF9jb250ZXh0TWVudV9oZWFkZXIge1xuICAgICAgICBtYXJnaW46IDEycHggMTZweCAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMThweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgLm14X1NwYWNlUGFuZWxfY29udGV4dE1lbnVfc2VwYXJhdG9yTGFiZWwge1xuICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTEycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIH1cbn1cblxuLm14X1NwYWNlUGFuZWxfc2hhcmVQdWJsaWNTcGFjZSB7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4ubXhfU3BhY2VQYW5lbF9Ub29sdGlwX0tleWJvYXJkU2hvcnRjdXQge1xuICAgIGtiZCB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjUgRWxlbWVudCBDcmVhdGlvbnMgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU3BhY2VQaWxsQnV0dG9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMTZweCAzMnB4IDE2cHggNzJweDtcbiAgICB3aWR0aDogNDMycHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGlucHV0LWJvcmRlci1jb2xvcjtcbiAgICBmb250LXNpemU6ICRmb250LTE3cHg7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgbWFyZ2luOiAyMHB4IDA7XG5cbiAgICA+IGRpdiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIH1cblxuICAgIHN2ZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgbGVmdDogMjJweDtcbiAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tcHJpbWFyeS1yZXN0KTtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXByaW1hcnkpO1xuICAgICAgICB9XG5cbiAgICAgICAgPiBzcGFuIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NwYWNlUm9vbVZpZXcge1xuICAgIC0taW5uZXJXaWR0aDogNDI4cHg7XG5cbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIGZsZXg6IDE7XG5cbiAgICAubXhfTWFpblNwbGl0ID4gZGl2OmZpcnN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZzogODBweCA2MHB4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICAgICAgaDEge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0yNHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcGFjZVJvb21WaWV3X2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgICAgICAgICAgIG1heC13aWR0aDogdmFyKC0taW5uZXJXaWR0aCk7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQWRkRXhpc3RpbmdUb1NwYWNlIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogdmFyKC0taW5uZXJXaWR0aCk7XG5cbiAgICAgICAgICAgIC5teF9BZGRFeGlzdGluZ1RvU3BhY2VfY29udGVudCB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMzYwcHgpO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDQwMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NwYWNlUm9vbVZpZXdfYnV0dG9ucyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDQ0cHg7XG4gICAgICAgICAgICB3aWR0aDogdmFyKC0taW5uZXJXaWR0aCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsgLyogYnV0dG9uIGFsaWdubWVudCByaWdodCAqL1xuXG4gICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9oYXNLaW5kIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA4cHggMjJweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTZweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaW5wdXQubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lOyAvKiBvdmVycmlkZSBkZWZhdWx0IHN0eWxlcyAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0ZpZWxkIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogdmFyKC0taW5uZXJXaWR0aCk7XG5cbiAgICAgICAgICAgICYgKyAubXhfRmllbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDI4cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BhY2VSb29tVmlld19lcnJvclRleHQge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b25fZGlzYWJsZWQge1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TcGFjZVJvb21WaWV3X2xhbmRpbmcge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG5cbiAgICAgICAgLm14X1NwYWNlUm9vbVZpZXdfbGFuZGluZ19oZWFkZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgICAgICAgICAgLm14X0Jhc2VBdmF0YXIge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA4MHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NwYWNlUm9vbVZpZXdfbGFuZGluZ19uYW1lIHtcbiAgICAgICAgICAgIG1hcmdpbjogMjRweCAwIDE2cHg7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgICAgICAgICA+IHNwYW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1mbG93OiBjb2x1bW47XG4gICAgICAgICAgICAgICAgZ2FwOiAxMnB4IDA7XG5cbiAgICAgICAgICAgICAgICBoMSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1NwYWNlUm9vbVZpZXdfbGFuZGluZ19pbnZpdGVyIHtcbiAgICAgICAgICAgICAgICAubXhfQmFzZUF2YXRhciB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcGFjZVJvb21WaWV3X2xhbmRpbmdfaW5mb0JhciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuXG4gICAgICAgICAgICAubXhfU3BhY2VSb29tVmlld19sYW5kaW5nX2luZm9CYXJfaW50ZXJhY3RpdmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZ2FwOiAxMnB4IDEycHg7XG5cbiAgICAgICAgICAgICAgICAubXhfRmFjZVBpbGUge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgLyogRm9yIGVuaGFuY2VkIHZpc2liaWxpdHkgdW5kZXIgY29udHJhc3QgY29udHJvbCAqL1xuICAgICAgICAgICAgICAgICAgICBvdXRsaW5lOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1NwYWNlUm9vbVZpZXdfbGFuZGluZ19pbnZpdGVCdXR0b24sXG4gICAgICAgICAgICAgICAgLm14X1NwYWNlUm9vbVZpZXdfbGFuZGluZ19zZXR0aW5nc0J1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1NwYWNlUm9vbVZpZXdfbGFuZGluZ19pbnZpdGVCdXR0b24ge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA0cHggMThweCA0cHggNDBweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBtaW4tY29udGVudDtcblxuICAgICAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogOHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tb24tc29saWQtcHJpbWFyeSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfU3BhY2VSb29tVmlld19sYW5kaW5nX3NldHRpbmdzQnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjRweDtcblxuICAgICAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NwYWNlUm9vbVZpZXdfbGFuZGluZ190b3BpYyB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICAgICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TZWFyY2hCb3gge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgMjBweDtcbiAgICAgICAgICAgIGZsZXg6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VSb29tVmlld19pbnZpdGVUZWFtbWF0ZXMge1xuICAgICAgICAubXhfU3BhY2VSb29tVmlld19pbnZpdGVUZWFtbWF0ZXNfYnV0dG9ucyB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMjhweDtcblxuICAgICAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAzMnB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4OyAvKiB0byBjZW50ZXIgaWNvbnMgKi9cbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtcHJpbWFyeSk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cbiAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXByaW1hcnkpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgKyAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAzMnB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TcGxhc2hQYWdlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgICAgICAgICAgICA1My44NSUgNjYuNzUlIGF0IDg3LjU1JSAwJSxcbiAgICAgICAgICAgICAgICBoc2woMjUwZGVnLCA3NiUsIDcxJSwgMC4yNjEpIDAlLFxuICAgICAgICAgICAgICAgIGhzbCgyNTBkZWcsIDEwMCUsIDg4JSwgMCkgMTAwJVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudCg0MS45MyUgNDEuOTMlIGF0IDAlIDAlLCBoc2woMjIyZGVnLCAyOSUsIDIwJSwgMC4yOCkgMCUsIGhzbCgyNTBkZWcsIDEwMCUsIDg4JSwgMCkgMTAwJSksXG4gICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoMTAwJSAxMDAlIGF0IDAlIDAlLCBoc2woMjUwZGVnLCAxMDAlLCA4OCUsIDAuMTc0KSAwJSwgaHNsKDBkZWcsIDEwMCUsIDg2JSwgMCkgMTAwJSksXG4gICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoMTA2LjM1JSA5Ni4yNiUgYXQgMTAwJSAwJSwgaHNsKDI1MGRlZywgMTAwJSwgODglLCAwLjQpIDAlLCBoc2woMTY3ZGVnLCA3NiUsIDgyJSwgMCkgMTAwJSk7XG4gICAgICAgIC8qIGJsdXIgdG8gcmVkdWNlIGNvbG9yIGJhbmRpbmcgaXNzdWVzIGR1ZSB0byBhbHBoYS1ibGVuZGluZyBtdWx0aXBsZSBncmFkaWVudHMgKi9cbiAgICAgICAgZmlsdGVyOiBibHVyKDhweCk7XG4gICAgICAgIGluc2V0OiAtOXB4O1xuICAgICAgICBtYXNrOlxuICAgICAgICAgICAgLyogbWFzayB0byBkaXRoZXIgcmVzdWx0aW5nIGNvbWJpbmVkIGdyYWRpZW50ICovXG4gICAgICAgICAgICB1cmwoXCIvcmVzL2ltZy9ub2lzZS5wbmdcIiksXG4gICAgICAgICAgICAvKiBncmFkaWVudCB0byBhcHBseSBkaWZmZXJlbnQgYW1vdW50cyBvZiBkaXRoZXJpbmcgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBncmFkaWVudCAqL1xuICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgIHRvIGJvdHRvbSxcbiAgICAgICAgICAgICAgICAvKiAxMCUgZGl0aGVyaW5nIGF0IHRoZSB0b3AgKi8gcmdiKDAsIDAsIDAsIDAuOSkgMjAlLFxuICAgICAgICAgICAgICAgIC8qIDgwJSBkaXRoZXJpbmcgYXQgdGhlIGJvdHRvbSAqLyByZ2IoMCwgMCwgMCwgMC4yKSAxMDAlXG4gICAgICAgICAgICApO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxOSBOZXcgVmVjdG9yIEx0ZFxuQ29weXJpZ2h0IDIwMTcgVHJhdmlzIFJhbHN0b25cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1RhYmJlZFZpZXcge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwIDAgMCB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBpbnNldDogMDtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG59XG5cbi5teF9UYWJiZWRWaWV3X3RhYnNPbkxlZnQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgLm14X1RhYmJlZFZpZXdfdGFiTGFiZWxzIHtcbiAgICAgICAgd2lkdGg6IDIyMHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDIyMHB4O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIG1hcmdpbjogMDsgLyogUmVtb3ZlIHRoZSBkZWZhdWx0IHZhbHVlICovXG4gICAgICAgIHBhZGRpbmc6IDA7IC8qIFJlbW92ZSB0aGUgZGVmYXVsdCB2YWx1ZSAqL1xuICAgIH1cblxuICAgIC5teF9UYWJiZWRWaWV3X3RhYlBhbmVsIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDI4MHB4OyAvKiAyMjBweCBzaWRlYmFyICsgNjBweCBwYWRkaW5nICovXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuXG4gICAgLm14X1RhYmJlZFZpZXdfdGFiTGFiZWw6aG92ZXIsXG4gICAgLm14X1RhYmJlZFZpZXdfdGFiTGFiZWxfYWN0aXZlIHtcbiAgICAgICAgY29sb3I6ICR0YWItbGFiZWwtYWN0aXZlLWZnLWNvbG9yO1xuICAgIH1cblxuICAgIC5teF9UYWJiZWRWaWV3X3RhYkxhYmVsX2FjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtc2Vjb25kYXJ5KTtcbiAgICAgICAgLyogRm9yIGVuaGFuY2VkIHZpc2liaWxpdHkgdW5kZXIgY29udHJhc3QgY29udHJvbCAqL1xuICAgICAgICBvdXRsaW5lOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgfVxufVxuXG4ubXhfVGFiYmVkVmlld190YWJzT25Ub3Age1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAubXhfVGFiYmVkVmlld190YWJMYWJlbHMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgfVxuXG4gICAgLm14X1RhYmJlZFZpZXdfdGFiTGFiZWwge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDBweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogNTJweDtcblxuICAgICAgICAubXhfVGFiYmVkVmlld190YWJMYWJlbF90ZXh0IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9UYWJiZWRWaWV3X3RhYlBhbmVsIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG5cbiAgICAubXhfVGFiYmVkVmlld190YWJMYWJlbF9hY3RpdmUge1xuICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICAgICAgLm14X1RhYmJlZFZpZXdfdGFiTGFiZWxfdGV4dCB7XG4gICAgICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1RhYmJlZFZpZXdfdGFiTGFiZWxzIHtcbiAgICBjb2xvcjogJHRhYi1sYWJlbC1mZy1jb2xvcjtcbn1cblxuLm14X1RhYmJlZFZpZXdfdGFiTGFiZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBhZGRpbmctYmxvY2s6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLWNwZC1zcGFjZS0zeCkgdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1pbi1ibG9jay1zaXplOiA0MHB4O1xuICAgIG1pbi1pbmxpbmUtc2l6ZTogNDBweDtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtbWVkaXVtKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgICAgY29sb3IgMC4xcyxcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvciAwLjFzO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgIH1cbn1cblxuLm14X1RhYmJlZFZpZXdfdGFiTGFiZWxfdGV4dCB7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLm14X1RhYmJlZFZpZXdfdGFiUGFuZWwge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1pbi1oZWlnaHQ6IDA7IC8qIGZpcmVmb3ggKi9cbn1cblxuLm14X1RhYmJlZFZpZXdfdGFiUGFuZWxDb250ZW50IHtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgbWluLWhlaWdodDogMDsgLyogZmlyZWZveCAqL1xufVxuXG4vKiBIaWRlIHRoZSBsYWJlbHMgb24gdGFicywgc2hvd2luZyBvbmx5IHRoZSBpY29ucywgb24gbmFycm93IHZpZXdwb3J0cy4gKi9cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAubXhfVGFiYmVkVmlld190YWJzT25MZWZ0Lm14X1RhYmJlZFZpZXdfcmVzcG9uc2l2ZSB7XG4gICAgICAgIC5teF9UYWJiZWRWaWV3X3RhYkxhYmVsX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAubXhfVGFiYmVkVmlld190YWJQYW5lbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogNzJweDsgLyogNDBweCBzaWRlYmFyICsgMzJweCBwYWRkaW5nICovXG4gICAgICAgIH1cbiAgICAgICAgLm14X1RhYmJlZFZpZXdfdGFiTGFiZWxzIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG4gICAgICAgIC5teF9UYWJiZWRWaWV3X3RhYkxhYmVsIHtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAwIDA7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuICogQ29weXJpZ2h0IDIwMjQgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X1RocmVhZHNBY3Rpdml0eUNlbnRyZV9jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5teF9UaHJlYWRzQWN0aXZpdHlDZW50cmVCdXR0b24ge1xuICAgIC8qICFpbXBvcnRhbnQgb3ZlcnJpZGUgY29tcG91bmQgKi9cbiAgICBib3JkZXItcmFkaXVzOiA4cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDE4cHggYXV0byBhdXRvIGF1dG87XG5cbiAgICAmLmV4cGFuZGVkIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIG92ZXJyaWRlIGNvbXBvdW5kIGRlZmF1bHQgYmFja2dyb3VuZCBjb2xvciB3aGVuIGhvdmVyZWRcbiAgICAgICAgICogc2hvdWxkIGRpc2FwcGVhciB3aGVuIHRoZSBzcGFjZSBwYW5lbCB3aWxsIGJlIG1pZ3JhdGVkIHRvIGNvbXBvdW5kXG4gICAgICAgICAqL1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuXG4gICAgICAgIC8qIGFsaWduIHdpdGggc2V0dGluZ3MgaWNvbiAqL1xuICAgICAgICBtYXJnaW4tbGVmdDogMjFweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBtb2RpZnkgaW50ZXJuYWwgY3NzIG9mIHRoZSBjb21wb3VuZCBjb21wb25lbnRcbiAgICAgICAgICogZGlydHkgYnV0IHdlIG5lZWQgdG8gYWRkIHRoZSBgVGhyZWFkc2AgbGFiZWwgaW50byB0aGUgaW5kaWNhdG9yIGljb24gYnV0dG9uXG4gICAgICAgICAqKi9cbiAgICAgICAgJiA+IGRpdiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBpbmxpbmUtc2l6ZTogOHB4O1xuICAgICAgICAgICAgICAgIGJsb2NrLXNpemU6IDhweDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAxN3B4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJiAubXhfVGhyZWFkc0FjdGl2aXR5Q2VudHJlQnV0dG9uX0ljb24ge1xuICAgICAgICAgICAgLyogYWxpZ24gd2l0aCBzZXR0aW5ncyBsYWJlbCAqL1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNHB4O1xuICAgICAgICAgICAgLyogcmVxdWlyZWQgdG8gc2V0IHRoZSBpY29uIHdpZHRoIHdoZW4gaW50byBhIGZsZXggY29udGFpbmVyICovXG4gICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJiAubXhfVGhyZWFkc0FjdGl2aXR5Q2VudHJlQnV0dG9uX1RleHQge1xuICAgICAgICAgICAgLyogIWltcG9ydGFudCBvdmVycmlkZSBjb21wb3VuZCAgKi9cbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5leHBhbmRlZCkge1xuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmhvdmVyIC5teF9UaHJlYWRzQWN0aXZpdHlDZW50cmVCdXR0b25fSWNvbiB7XG4gICAgICAgICAgICAvKiAhaW1wb3J0YW50IG92ZXJyaWRlIGNvbXBvdW5kICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXVhdGVybmFyeS1jb250ZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBmaWxsOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJiAubXhfVGhyZWFkc0FjdGl2aXR5Q2VudHJlQnV0dG9uX0ljb24ge1xuICAgICAgICBmaWxsOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgfVxufVxuXG4ubXhfVGhyZWFkc0FjdGl2aXR5Q2VudHJlX3Jvd3Mge1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAvKiBMZXQgc29tZSBzcGFjZSBhdCB0aGUgdG9wIGFuZCB0aGUgYm90dG9tIG9mIHRoZSBwb3AtdXAgKi9cbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjAwcHgpO1xuXG4gICAgLm14X1RocmVhZHNBY3Rpdml0eUNlbnRyZVJvdyB7XG4gICAgICAgIGhlaWdodDogNDhweDtcblxuICAgICAgICAvKiBNYWtlIHRoZSBsYWJlbCBvZiB0aGUgTWVudUl0ZW0gc3RheSBvbiBvbmUgbGluZSBhbmQgdHJ1bmNhdGUgd2l0aCBlbGxpcHNpcyBpZiBuZWVkZWQgKi9cbiAgICAgICAgJiA+IHNwYW4ge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIC8qIEFyYml0cmFyeSBzaXplLCBrZWVwIHRoZSBUQUMgYXMgdGhlIHdhbnRlZCB3aWR0aCAqL1xuICAgICAgICAgICAgd2lkdGg6IDIwMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLyogSGlkZSB0aGUgbm90aWZpY2F0aW9uIGJhZGdlIG9uIGhvdmVyIOKAlCBjb21wb3VuZCdzIGBuYXYtaGludCB+ICpgIHJ1bGUgd291bGQgbm9ybWFsbHlcbiAgICAgICAgICogZG8gdGhpcywgYnV0IHRoZSBhcHAtd2ViIENTUyBsYXllciBvdmVycmlkZXMgY29tcG91bmQtd2ViIHJlZ2FyZGxlc3Mgb2Ygc3BlY2lmaWNpdHkuICovXG4gICAgICAgICY6aG92ZXIgLm14X1RocmVhZHNBY3Rpdml0eUNlbnRyZV9ub3RpZmljYXRpb25CYWRnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfVGhyZWFkc0FjdGl2aXR5Q2VudHJlX2VtcHR5Q2FwdGlvbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI2IEVsZW1lbnQgQ3JlYXRpb25zIEx0ZC5cbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTktMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVG9hc3RDb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEycHg7XG4gICAgbGVmdDogNjJweDtcbiAgICB6LWluZGV4OiAxMDE7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmciAyOHB4IDhweDtcblxuICAgICYubXhfVG9hc3RDb250YWluZXJfc3RhY2tlZDo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgbWFyZ2luOiAwIHZhcigtLWNwZC1zcGFjZS0xLTV4KTtcbiAgICAgICAgZ3JpZC1yb3c6IDIgLyAtMTtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzeXN0ZW07XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCA0cHggMjBweCByZ2IoMCwgMCwgMCwgMC41KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICB9XG5cbiAgICAubXhfVG9hc3RfdG9hc3Qge1xuICAgICAgICBncmlkLXJvdzogMSAvIDM7XG4gICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDRweCAyNHB4IHJnYigwLCAwLCAwLCAwLjEpO1xuICAgICAgICBib3JkZXI6IHZhcigtLWNwZC1ib3JkZXItd2lkdGgtMSkgc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1zZWNvbmRhcnkpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDIwcHggMWZyIGF1dG87XG4gICAgICAgIGNvbHVtbi1nYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIHJvdy1nYXA6IDRweDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogY2FsYyh2YXIoLS1jcGQtc3BhY2UtNXgpIC0gdmFyKC0tY3BkLWJvcmRlci13aWR0aC0xKSk7XG5cbiAgICAgICAgJi5teF9Ub2FzdF9oYXNJY29uIHtcbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfVG9hc3RfdGl0bGUge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfVG9hc3RfY2xvc2VidXR0b24ge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6bm90KC5teF9Ub2FzdF9oYXNJY29uKSAubXhfVG9hc3RfdGl0bGUge1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9Ub2FzdF90aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGNvbHVtbi1nYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAgICAgICAgIGgyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1sZy1zZW1pYm9sZCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1RvYXN0X2JvZHkge1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICAgICAgICAgIGdyaWQtcm93OiAyO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1RvYXN0X2J1dHRvbnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICBjb2x1bW4tZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA5NnB4O1xuICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVG9hc3RfZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyNzJweDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTF4KSAwIDExcHggMDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVG9hc3RfZGV2aWNlSUQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgLCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9VcGxvYWRCYXIge1xuICAgIC8qIGxpbmUgdXAgd2l0aCB0aGUgc2hpZWxkIGFyZWEgaW4gdGhlIGNvbXBvc2VyICovXG4gICAgcGFkZGluZzogNXB4IDIxcHggMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGU6XG4gICAgICAgIFwiaWNvbiAgICAgZmlsZW5hbWUgY2FuY2VsXCIgYXV0b1xuICAgICAgICBcInByb2dyZXNzIHByb2dyZXNzIHByb2dyZXNzXCIgYXV0b1xuICAgICAgICAvIG1pbi1jb250ZW50IGF1dG8gbWluLWNvbnRlbnQ7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMS01eCk7XG5cbiAgICAmID4gc3ZnIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBpY29uO1xuICAgICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgICBjb2xvcjogJG11dGVkLWZnLWNvbG9yO1xuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLm14X1VwbG9hZEJhcl9maWxlbmFtZSB7XG4gICAgICAgIGdyaWQtYXJlYTogZmlsZW5hbWU7XG4gICAgICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgIC5teF9VcGxvYWRCYXJfY2FuY2VsIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBjYW5jZWw7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAubXhfUHJvZ3Jlc3NCYXIge1xuICAgICAgICBncmlkLWFyZWE6IHByb2dyZXNzO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbi5teF9UaHJlYWRWaWV3IHtcbiAgICAubXhfVXBsb2FkQmFyIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9WaWV3U291cmNlIHtcbiAgICBwcmUge1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgIHBhZGRpbmc6IDAuNWVtIDFlbTtcbiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICAgIH1cblxuICAgIC5teF9WaWV3U291cmNlX2hlYWRlciB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcblxuICAgICAgICAubXhfQ29weWFibGVUZXh0IHtcbiAgICAgICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9WaWV3U291cmNlX2hlYWRpbmcge1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE3cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgIH1cblxuICAgIC5teF9WaWV3U291cmNlX2RldGFpbHMge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgIH1cblxuICAgIC5teF9Db3B5YWJsZVRleHRfYm9yZGVyIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0NvbXBsZXRlU2VjdXJpdHlfaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5teF9FMkVJY29uLm14X0NvbXBsZXRlU2VjdXJpdHlfaGVhZGVySWNvbiB7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLm14X0UyRUljb24ubXhfQ29tcGxldGVTZWN1cml0eV9oZXJvSWNvbiB7XG4gICAgd2lkdGg6IDEyOHB4O1xuICAgIGhlaWdodDogMTI4cHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5teF9Db21wbGV0ZVNlY3VyaXR5X3NraXAge1xuICAgIEBtaXhpbiBjdXN0b21pc2VkQ2FuY2VsQnV0dG9uO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMjRweDtcbn1cblxuLm14X0NvbXBsZXRlU2VjdXJpdHlfYm9keSB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xufVxuXG4ubXhfQ29tcGxldGVTZWN1cml0eV93YWl0aW5nIHtcbiAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9Db21wbGV0ZVNlY3VyaXR5X2FjdGlvblJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIG1hcmdpbi10b3A6ICRmb250LTI4cHg7XG5cbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDE4cHg7XG5cbiAgICAgICAgJi53YXJuaW5nIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOS0yMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Db25maXJtU2Vzc2lvbkxvY2tUaGVmdFZpZXcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5teF9Db25maXJtU2Vzc2lvbkxvY2tUaGVmdFZpZXdfYm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1heC13aWR0aDogNDAwcHg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xvZ2luX3N1Ym1pdCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xufVxuXG4ubXhfTG9naW5fbG9hZGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMnB4O1xuICAgIGxlZnQ6IDhweDtcbn1cblxuLm14X0xvZ2luX2xvYWRlciAubXhfU3Bpbm5lciB7XG4gICAgZGlzcGxheTogaW5saW5lO1xufVxuXG4ubXhfTG9naW5fbG9hZGVyIC5teF9TcGlubmVyIGltZyB7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xufVxuXG4ubXhfTG9naW5fZXJyb3Ige1xuICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbn1cblxuLm14X0xvZ2luX2Vycm9yLm14X0xvZ2luX3NlcnZlckVycm9yIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi5teF9Mb2dpbl9lcnJvci5teF9Mb2dpbl9zZXJ2ZXJFcnJvci5teF9Mb2dpbl9zZXJ2ZXJFcnJvck5vbkZhdGFsIHtcbiAgICBjb2xvcjogI2ZmOGQxMzsgLyogT25seSB1c2VkIGhlcmUgKi9cbn1cblxuLm14X0xvZ2luX3R5cGVfY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY29sb3I6ICRhdXRocGFnZS1wcmltYXJ5LWNvbG9yO1xuXG4gICAgLm14X0ZpZWxkIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cblxuLm14X0xvZ2luX3R5cGVfbGFiZWwge1xuICAgIGZsZXg6IDE7XG59XG5cbi5teF9Mb2dpbl91bmRlcmxpbmVkU2VydmVyTmFtZSB7XG4gICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgJGFjY2VudDtcbn1cblxuZGl2Lm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rLm14X0xvZ2luX2ZvcmdvdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMjRweDtcblxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9kaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxufVxuXG4ubXhfTG9naW5fc3Bpbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxNHB4O1xufVxuXG4ubXhfTG9naW5fZnVsbFdpZHRoQnV0dG9uIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTUtMjAyNCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTG9naW5TcGxhc2hWaWV3X21pZ3JhdGlvblByb2dyZXNzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIC5teF9Qcm9ncmVzc0JhciB7XG4gICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICB3aWR0aDogNjAwcHg7XG5cbiAgICAgICAgQG1peGluIFByb2dyZXNzQmFyQm9yZGVyUmFkaXVzIDhweDtcbiAgICB9XG59XG5cbi5teF9Mb2dpblNwbGFzaFZpZXdfc3BsYXNoQnV0dG9ucyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDMwcHg7XG59XG5cbi5teF9Mb2dpblNwbGFzaFZpZXdfc3luY0Vycm9yIHtcbiAgICBjb2xvcjogJGFjY2VudC1mZy1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGYyYThiOyAvKiBPbmx5IHVzZWQgaGVyZSAqL1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBwYWRkaW5nOiAzMHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwMHB4O1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Nb2JpbGVSZWdpc3Rlcl9ib2R5IHtcbiAgICBwYWRkaW5nOiAzMnB4O1xuICAgIGhlaWdodDogMTAwdmg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1JlZ2lzdGVyX21haW5Db250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC1ncm93OiAxO1xuICAgIG1pbi1oZWlnaHQ6IDI3MHB4O1xuXG4gICAgcCB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgICAgIGNvbG9yOiAkYXV0aHBhZ2UtcHJpbWFyeS1jb2xvcjtcblxuICAgICAgICAmLnNlY29uZGFyeSB7XG4gICAgICAgICAgICBjb2xvcjogJGF1dGhwYWdlLXNlY29uZGFyeS1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgID4gaW1nOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgIH1cblxuICAgIC5teF9Mb2dpbl9zdWJtaXQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cblxuLyogTWVkaXVtIHJhdGhlciB0aGFuIHRoZSBib2xkIGV2ZXJ5IG90aGVyIGF1dGggZXJyb3IgdXNlczogdGhpcyBvbmUgc2l0cyBkaXJlY3RseSBhYm92ZSB0aGUgYnV0dG9uIGl0XG4gICBpcyBkaXNhYmxpbmcsIGFuZCBkb2VzIG5vdCBuZWVkIHRvIHNob3V0IG92ZXIgaXQuIFNjb3BlZCBzbyB0aGUgbG9naW4gZXJyb3JzIGtlZXAgdGhlaXIgd2VpZ2h0LiAqL1xuLm14X0xvZ2luX2Vycm9yLm14X1JlZ2lzdHJhdGlvbl9yYXRlTGltaXRFcnJvciB7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1tZWRpdW0pO1xufVxuXG4ubXhfUmVnaXN0ZXJfZm9vdGVyQWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBwYWRkaW5nLXRvcDogMTZweDtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2IoMTQxLCAxNTEsIDE2NSwgMC4yKTtcblxuICAgID4gKiB7XG4gICAgICAgIGZsZXgtYmFzaXM6IGNvbnRlbnQ7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Nlc3Npb25Mb2NrU3RvbGVuVmlldyB7XG4gICAgaDEge1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0zMnB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgaDIge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMjRweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXR1cEVuY3J5cHRpb25Cb2R5IHtcbiAgICB3aWR0aDogNjAwcHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IChDKSAyMDI2IE1ldE1ldFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfR3Vlc3RPbmJvYXJkaW5nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ubXhfR3Vlc3RPbmJvYXJkaW5nX2NhcmQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXgtd2lkdGg6IDM2MHB4O1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ubXhfR3Vlc3RPbmJvYXJkaW5nX2xvZ28ge1xuICAgIHdpZHRoOiA4OHB4O1xuICAgIGhlaWdodDogODhweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xufVxuXG4ubXhfR3Vlc3RPbmJvYXJkaW5nX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDIycHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzFhMWExYTtcbiAgICBtYXJnaW46IDAgMCA4cHggMDtcbn1cblxuLm14X0d1ZXN0T25ib2FyZGluZ19kZXNjcmlwdGlvbiB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGNvbG9yOiAjNmY2ZjZmO1xuICAgIG1hcmdpbjogMCAwIDI4cHggMDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xufVxuXG4ubXhfR3Vlc3RPbmJvYXJkaW5nX2FjdGlvbnMge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEycHg7XG59XG5cbi5teF9HdWVzdE9uYm9hcmRpbmdfcHJpbWFyeUJ1dHRvbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMTRweCAyNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWV0bWV0LWJyYW5kLXByaW1hcnkpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm14X0d1ZXN0T25ib2FyZGluZ19wcmltYXJ5QnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZXRtZXQtYnJhbmQtc2Vjb25kYXJ5KTtcbn1cblxuLm14X0d1ZXN0T25ib2FyZGluZ19za2lwIHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGNvbG9yOiAjOWE5YTlhO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5teF9HdWVzdE9uYm9hcmRpbmdfZmFsbGJhY2sge1xuICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogIzQ0NDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4ubXhfR3Vlc3RPbmJvYXJkaW5nT3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGluc2V0OiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigwIDAgMCAvIDU1JSk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTV2aDtcbiAgICB6LWluZGV4OiA1MDAwO1xufVxuXG4ubXhfR3Vlc3RPbmJvYXJkaW5nT3ZlcmxheV90ZXh0IHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm14X0d1ZXN0T25ib2FyZGluZ092ZXJsYXlfYXJyb3cge1xuICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICBhbmltYXRpb246IG14X0d1ZXN0T25ib2FyZGluZ092ZXJsYXlfYm91bmNlIDFzIGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIG14X0d1ZXN0T25ib2FyZGluZ092ZXJsYXlfYm91bmNlIHtcbiAgICAwJSxcbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIH1cblxuICAgIDUwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KTtcbiAgICB9XG59XG5cbi5teF9HdWVzdENvbm5lY3Rpbmdfc3Bpbm5lciB7XG4gICAgd2lkdGg6IDMycHg7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIGJvcmRlcjogM3B4IHNvbGlkIHZhcigtLW1ldG1ldC1icmFuZC1zZWNvbmRhcnkpO1xuICAgIGJvcmRlci10b3AtY29sb3I6IHZhcigtLW1ldG1ldC1icmFuZC1wcmltYXJ5KTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYW5pbWF0aW9uOiBteF9HdWVzdENvbm5lY3Rpbmdfc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xufVxuXG5Aa2V5ZnJhbWVzIG14X0d1ZXN0Q29ubmVjdGluZ19zcGluIHtcbiAgICB0byB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEsIDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLyogRGV2IG5vdGU6IHRoZXJlJ3Mgbm8gYWN0dWFsIGNvbXBvbmVudCBjYWxsZWQgPFBsYXliYWNrQ29udGFpbmVyIC8+LiBUaGVzZSBjbGFzc2VzICovXG4vKiBhcmUgc2hhcmVkIGFtb25nc3QgbXVsdGlwbGUgdm9pY2UgbWVzc2FnZSBjb21wb25lbnRzLiAqL1xuXG4vKiBDb250YWluZXIgZm9yIGxpdmUgcmVjb3JkaW5nIGFuZCBwbGF5YmFjayBjb250cm9scyAqL1xuLm14X1ZvaWNlTWVzc2FnZVByaW1hcnlDb250YWluZXIge1xuICAgIC8qIE1hdGNoIG14X01lZGlhQm9keSBzcGFjaW5nLCBvZmZzZXR0aW5nIHRoZSB3YXZlZm9ybSdzIDFweCBpbnRlcm5hbCByaWdodCBwYWRkaW5nLiAqL1xuICAgIHBhZGRpbmc6IDZweCAxMXB4IDZweCAxMnB4O1xuXG4gICAgLyogQ2hlYXQgYXQgYWxpZ25tZW50IGEgYml0ICovXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgY29udGFpbjogY29udGVudDtcblxuICAgIC5teF9XYXZlZm9ybSxcbiAgICAubXhfUmVjb3JkaW5nUGxheWJhY2tfdGltZWxpbmVMYXlvdXRNaWRkbGUge1xuICAgICAgICBtaW4td2lkdGg6IDA7IC8qIFByZXZlbnQgYSBibG93b3V0ICovXG4gICAgfVxuXG4gICAgLyogV2F2ZWZvcm1zIGFyZSBwcmVzZW50IGluIGxpdmUgcmVjb3JkaW5nIG9ubHkgKi9cbiAgICAubXhfV2F2ZWZvcm0ge1xuICAgICAgICAvKiBkZWZhdWx0LCBvdmVycmlkZGVuIGluIEpTICovXG4gICAgICAgIC0tYmFySGVpZ2h0OiAxO1xuICAgICAgICAubXhfV2F2ZWZvcm1fYmFyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdWF0ZXJuYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWShtYXgoMC4wNSwgdmFyKC0tYmFySGVpZ2h0KSkpO1xuXG4gICAgICAgICAgICAmLm14X1dhdmVmb3JtX2Jhcl8xMDBwY3Qge1xuICAgICAgICAgICAgICAgIC8qIFNtYWxsIGFuaW1hdGlvbiB0byByZW1vdmUgdGhlIG1lY2hhbmljYWwgZmVlbCBvZiBwcm9ncmVzcyAqL1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMjUwbXMgZWFzZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfQ2xvY2sge1xuICAgICAgICB3aWR0aDogJGZvbnQtNDJweDsgLyogd2UncmUgbm90IHVzaW5nIGEgbW9ub3NwYWNlIGZvbnQsIHNvIGZha2UgaXQgKi9cbiAgICAgICAgbWluLXdpZHRoOiAkZm9udC00MnB4OyAvKiBmb3JjZSBzZW5zaWJsZSBsYXlvdXRzIGluIGF3a3dhcmQgZmxleGJveGVzIChmaWxlIHBhbmVsLCBmb3IgZXhhbXBsZSkgKi9cbiAgICAgICAgcGFkZGluZy1yaWdodDogNnB4OyAvKiB3aXRoIHRoZSBmaXhlZCB3aWR0aCB0aGlzIGVuZHMgdXAgYXMgYSB2aXN1YWwgOHB4IG1vc3Qgb2YgdGhlIHRpbWUsIGFzIGludGVuZGVkLiAqL1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDhweDsgLyogaXNvbGF0ZSBmcm9tIHJlY29yZGluZyBjaXJjbGUgLyBwbGF5IGNvbnRyb2wgKi9cbiAgICB9XG5cbiAgICAubXhfUmVjb3JkaW5nUGxheWJhY2tfdGltZWxpbmVMYXlvdXRNaWRkbGUge1xuICAgICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGhlaWdodDogMzBweDsgLyogc2FtZSBoZWlnaHQgYXMgbXhfV2F2ZWZvcm0sIG5lZWRlZCBmb3IgYXV0b21hdGljIHZlcnRpY2FsIGNlbnRlcmluZyAqL1xuXG4gICAgICAgIC5teF9XYXZlZm9ybSB7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NlZWtCYXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgICAgIHRvcDogLTJweDsgLyogdmlzdWFsbHkgdmVydGljYWxseSBjZW50ZXJlZCAqL1xuXG4gICAgICAgICAgICAvKiBIaWRlIHRoZSBoYWlybGluZSBwcm9ncmVzcyBiYXIgc2luY2Ugd2UncmUgYXQgMTAwJSBoZWlnaHQuIE5lZWQgdG8gaGF2ZSBkaXN0aW5jdCBydWxlcyAqL1xuICAgICAgICAgICAgLyogYmVjYXVzZSBDU1MgaXMgd2VpcmQuICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjo6LW1vei1yYW5nZS1wcm9ncmVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogTWFrZSB0aGUgdGh1bWIgZWFzaWVyIHRvIHNlZS4gTGlrZSB0aGUgU2Vla0JhciBvcmlnaW5hbCBzdHlsZXMsIHRoZXNlIG5lZWQgdG8gYmUgKi9cbiAgICAgICAgICAgIC8qIGRpc3RpbmN0LiBXZSBtYWtlIGl0IHRyYW5zcGFyZW50IHNvIGl0IGRvZXNuJ3Qgc2hvdyB1cCBvbiB0aGUgVUksIGJ1dCBhbHNvIGxhcmdlciAqL1xuICAgICAgICAgICAgLyogc28gaXQncyBlYXNpZXIgdG8gZ3JhYiBieSBtb3VzZSB1c2VycyBpbiBzb21lIGJyb3dzZXJzLiBNb3N0IGJyb3dzZXJzIGxldCB0aGUgdXNlciAqL1xuICAgICAgICAgICAgLyogbW92ZSBhbmQgZHJhZyB0aGUgdGh1bWIgcmVnYXJkbGVzcyBvZiBoaXR0aW5nIHRoZSB0aHVtYiwgaG93ZXZlci4gKi9cbiAgICAgICAgICAgICY6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKiBGb3IgdGltZWxpbmUtcmVuZGVyZWQgcGxheWJhY2ssIHRoZSBjbG9jayBpcyBvbiB0aGUgb3RoZXIgc2lkZSBvZiB0aGUgd2F2ZWZvcm0uICovXG4gICAgICAgICYgKyAubXhfQ2xvY2sge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICAgICAgICAgIC8qIFRha2UgdGhlIHBhZGRpbmcgb2ZmIHRoZSBjbG9jayBiZWNhdXNlIGl0J3MgYWNjb3VudGVkIGZvciBieSB0aGUgYHRpbWVsaW5lTGF5b3V0TWlkZGxlYCAqL1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi8qIENTUyBpbnNwaXJhdGlvbiBmcm9tOiAqL1xuLyogKiBodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2hvd3RvL2hvd3RvX2pzX3Jhbmdlc2xpZGVyLmFzcCAqL1xuLyogKiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMjgyODM4MDYgKi9cbi8qICogaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9zdHlsaW5nLWNyb3NzLWJyb3dzZXItY29tcGF0aWJsZS1yYW5nZS1pbnB1dHMtY3NzLyAqL1xuXG4ubXhfU2Vla0JhciB7XG4gICAgLyogZGVmYXVsdCwgb3ZlcnJpZGRlbiBpbiBKUyAqL1xuICAgIC0tZmlsbFRvOiAxO1xuXG4gICAgLyogRGV2IG5vdGU6IHdlIGRlbGliZXJhdGVseSBkbyBub3QgaGF2ZSB0aGUgLW1zLXRyYWNrIChhbmQgZnJpZW5kcykgc2VsZWN0b3JzIGJlY2F1c2Ugd2UgZG9uJ3QgKi9cbiAgICAvKiBuZWVkIHRvIHN1cHBvcnQgSUUuICovXG5cbiAgICBhcHBlYXJhbmNlOiBub25lOyAvKiBkZWZhdWx0IHN0eWxlIG92ZXJyaWRlICovXG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBiYWNrZ3JvdW5kOiAkcXVhdGVybmFyeS1jb250ZW50O1xuICAgIG91dGxpbmU6IG5vbmU7IC8qIHJlbW92ZSBibHVlIHNlbGVjdGlvbiBib3JkZXIgKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIGZvciBiZWZvcmUrYWZ0ZXIgcHNldWRvIGVsZW1lbnRzIGxhdGVyIG9uICovXG5cbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7IC8qIGRlZmF1bHQgc3R5bGUgb3ZlcnJpZGUgKi9cblxuICAgICAgICAvKiBEZXYgbm90ZTogVGhpcyBuZWVkcyB0byBiZSBkdXBsaWNhdGVkIHdpdGggdGhlIC1tb3otcmFuZ2UtdGh1bWIgc2VsZWN0b3IgKi9cbiAgICAgICAgLyogYmVjYXVzZSBvdGhlcndpc2UgRWRnZSAod2Via2l0KSB3aWxsIGZhaWwgdG8gc2VlIHRoZSBzdHlsZXMgYW5kIGp1c3QgcmVmdXNlICovXG4gICAgICAgIC8qIHRvIGFwcGx5IHRoZW0uICovXG4gICAgICAgIHdpZHRoOiA4cHg7XG4gICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJjo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICAgIHdpZHRoOiA4cHg7XG4gICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgLyogRmlyZWZveCBhZGRzIGEgYm9yZGVyIG9uIHRoZSB0aHVtYiAqL1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxuXG4gICAgLyogVGhpcyBpcyBmb3Igd2Via2l0IHN1cHBvcnQsIGJ1dCB3ZSBjYW4ndCBsaW1pdCB0aGUgZnVuY3Rpb25hbGl0eSBvZiBpdCB0byBqdXN0IHdlYmtpdCAqL1xuICAgIC8qIGJyb3dzZXJzLiBGaXJlZm94IHJlc3BvbmRzIHRvIHdlYmtpdC1wcmVmaXhlZCB2YWx1ZXMgbm93LCB3aGljaCBtZWFucyB3ZSBjYW4ndCB1c2UgbWVkaWEgKi9cbiAgICAvKiBvciBzdXBwb3J0IHF1ZXJpZXMgdG8gc2VsZWN0aXZlbHkgYXBwbHkgdGhlIHJ1bGUuIEFuIHVwc2lkZSBpcyB0aGF0IHRoaXMgQ1NTIGRvZXNuJ3Qgd29yayAqL1xuICAgIC8qIGluIGZpcmVmb3gsIHNvIGl0J3MganVzdCB3YXN0ZWQgQ1BVL0dQVSB0aW1lLiAqL1xuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIC8qIDo6YmVmb3JlIHRvIGVuc3VyZSBpdCBlbmRzIHVwIHVuZGVyIHRoZSB0aHVtYiAqL1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGVydGlhcnktY29udGVudDtcblxuICAgICAgICAvKiBBYnNvbHV0ZSBwb3NpdGlvbmluZyB0byBlbnN1cmUgaXQgb3ZlcmxhcHMgd2l0aCB0aGUgZXhpc3RpbmcgYmFyICovXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuXG4gICAgICAgIC8qIFNpemluZyB0byBtYXRjaCB0aGUgYmFyICovXG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDFweDtcblxuICAgICAgICAvKiBBbmQgZmluYWxseSBkeW5hbWljIHdpZHRoIHdpdGhvdXQgb3Zlcmx5IGh1cnRpbmcgdGhlIHJlbmRlcmluZyBlbmdpbmUuICovXG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMTAwJTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgodmFyKC0tZmlsbFRvKSk7XG4gICAgfVxuXG4gICAgLyogVGhpcyBpcyBmaXJlZm94J3MgYnVpbHQtaW4gc3VwcG9ydCBmb3IgdGhlIGFib3ZlLCB3aXRoIDEwMCUgbGVzcyBoYWNrcy4gKi9cbiAgICAmOjotbW96LXJhbmdlLXByb2dyZXNzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgIH1cblxuICAgICY6ZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgfVxuXG4gICAgLyogSW5jcmVhc2UgY2xpY2thYmxlIGFyZWEgZm9yIHRoZSBzbGlkZXIgKGFwcHJveGltYXRlbHkgc2FtZSBzaXplIGFzIGJyb3dzZXIgZGVmYXVsdCkgKi9cbiAgICAvKiBXZSBkbyBpdCB0aGlzIHdheSB0byBrZWVwIHRoZSBzYW1lIHBhZGRpbmcgYW5kIG1hcmdpbnMgb2YgdGhlIGVsZW1lbnQsIGF2b2lkaW5nIG1hcmdpbiBtYXRoLiAqL1xuICAgIC8qIFNvdXJjZTogaHR0cHM6Ly9mcm9udC1iYWNrLmNvbS9leHBhbmQtY2xpY2thYmxlLWFyZWFzLWZvci1hLWJldHRlci10b3VjaC1leHBlcmllbmNlLyAqL1xuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IC02cHg7XG4gICAgICAgIGJvdHRvbTogLTZweDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1dhdmVmb3JtIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAzMHB4OyAvKiB0YWxsZXN0IGJhciBjYW4gb25seSBiZSAzMHB4ICovXG4gICAgdG9wOiAxcHg7IC8qIGJlY2F1c2Ugb2Ygb3VyIGJvcmRlciB0cmljayAoc2VlIGJlbG93KSwgd2UncmUgb2ZmIGJ5IDFweCBvZiBhbGlnbnRtZW50ICovXG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIHNvIHRoZSBiYXJzIGdyb3cgZnJvbSB0aGUgbWlkZGxlICovXG5cbiAgICBvdmVyZmxvdzogaGlkZGVuOyAvKiB0aGlzIGlzIGNoZWFwZXIgdGhhbiBhIGBtYXgtaGVpZ2h0OiBjYWxjKDEwMCUgLSA0cHgpYCBpbiB0aGUgYmFyJ3MgQ1NTLiAqL1xuXG4gICAgLyogQSBiYXIgaXMgbWVhbnQgdG8gYmUgYSAyeDIgY2lyY2xlIHdoZW4gYXQgemVybyBoZWlnaHQsIGFuZCBvdGhlcndpc2UgYSAycHggd2lkZSBsaW5lICovXG4gICAgLyogd2l0aCByb3VuZGVkIGNhcHMuICovXG4gICAgLm14X1dhdmVmb3JtX2JhciB7XG4gICAgICAgIHdpZHRoOiAwOyAvKiAwcHggd2lkdGggbWVhbnMgd2UnbGwgZW5kIHVwIHVzaW5nIHRoZSBib3JkZXIgYXMgb3VyIHdpZHRoICovXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyAvKiB0cmFuc3BhcmVudCBtZWFucyB3ZSdsbCB1c2UgdGhlIGJhY2tncm91bmQgY29sb3VyICovXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsgLyogcm91bmRlZCBlbmQgY2FwcywgYmFzZWQgb24gdGhlIGJvcmRlciAqL1xuICAgICAgICBtaW4taGVpZ2h0OiAwOyAvKiBsaWtlIHRoZSB3aWR0aCwgd2UnbGwgcmVseSBvbiB0aGUgYm9yZGVyIHRvIGdpdmUgdXMgaGVpZ2h0ICovXG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7IC8qIHRoaXMgbWFrZXMgdGhlIGBoZWlnaHQ6IDQyJWAgd29yayBvbiB0aGUgZWxlbWVudCAqL1xuICAgICAgICBtYXJnaW4tbGVmdDogMXB4OyAvKiB3ZSB3YW50IDJweCBiZXR3ZWVuIGVhY2ggYmFyLCBzbyAxcHggb24gZWl0aGVyIHNpZGUgZm9yIGJhbGFuY2UgKi9cbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcHg7XG5cbiAgICAgICAgLyogYmFja2dyb3VuZCBjb2xvciBpcyBoYW5kbGVkIGJ5IHRoZSBwYXJlbnQgY29tcG9uZW50cyAqL1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxOSBOZXcgVmVjdG9yIEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQXV0aEJvZHkge1xuICAgIHdpZHRoOiA1MDBweDtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgY29sb3I6ICRhdXRocGFnZS1zZWNvbmRhcnktY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyLXJhZGl1czogMCB2YXIoLS1jcGQtc3BhY2UtNngpIHZhcigtLWNwZC1zcGFjZS02eCkgMDtcbiAgICBwYWRkaW5nOiAyNXB4IDYwcHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIHN0cm9uZyB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIH1cblxuICAgICYubXhfQXV0aEJvZHlfZmxleCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuXG4gICAgaDEge1xuICAgICAgICBmb250LXNpemU6ICRmb250LTI0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICBjb2xvcjogJGF1dGhwYWdlLXByaW1hcnktY29sb3I7XG4gICAgfVxuXG4gICAgaDIge1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXNlbWlib2xkKTtcbiAgICAgICAgY29sb3I6ICRhdXRocGFnZS1zZWNvbmRhcnktY29sb3I7XG4gICAgfVxuXG4gICAgaDIubXhfQXV0aEJvZHlfY2VudGVyZWQge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgYTpsaW5rLFxuICAgIGE6aG92ZXIsXG4gICAgYTp2aXNpdGVkIHtcbiAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICBmaWVsZHNldCB7XG4gICAgICAgIC8qIFJlc2V0IHRoZSBicm93c2VyIGRlZmF1bHQgPGZpZWxkc2V0PiBzdHlsaW5nICovXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4taW5saW5lOiB1bnNldDtcbiAgICAgICAgcGFkZGluZy1ibG9jazogdW5zZXQ7XG4gICAgICAgIHBhZGRpbmctaW5saW5lOiB1bnNldDtcbiAgICAgICAgbWluLWlubGluZS1zaXplOiB1bnNldDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cblxuICAgIC5teF9BdXRoQm9keV9pY29uIHtcbiAgICAgICAgd2lkdGg6IDQ0cHg7XG4gICAgICAgIGhlaWdodDogNDRweDtcbiAgICB9XG5cbiAgICAubXhfQXV0aEJvZHlfbG9ja0ljb24ge1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgIHdpZHRoOiAzMnB4O1xuICAgIH1cblxuICAgIC5teF9BdXRoQm9keV90ZXh0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTEyeCk7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4gICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdIHtcbiAgICAgICAgY29sb3I6ICRhdXRocGFnZS1wcmltYXJ5LWNvbG9yO1xuICAgIH1cblxuICAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0ZpZWxkIGxhYmVsIHtcbiAgICAgICAgY29sb3I6ICRhdXRocGFnZS1zZWNvbmRhcnktY29sb3I7XG4gICAgfVxuXG4gICAgLm14X0ZpZWxkIGlucHV0LFxuICAgIC5teF9GaWVsZCBzZWxlY3Qge1xuICAgICAgICBjb2xvcjogJGF1dGhwYWdlLXByaW1hcnktY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgIC5teF9GaWVsZF9sYWJlbEFsd2F5c1RvcExlZnQgbGFiZWwsXG4gICAgLm14X0ZpZWxkIHNlbGVjdCArIGxhYmVsIC8qIEFsd2F5cyBzaG93IGEgc2VsZWN0J3MgbGFiZWwgb24gdG9wIHRvIG5vdCBjb2xsaWRlIHdpdGggdGhlIHZhbHVlICovLFxuICAgIC5teF9GaWVsZCBpbnB1dDpmb2N1cyArIGxhYmVsLFxuICAgIC5teF9GaWVsZCBpbnB1dDpub3QoOnBsYWNlaG9sZGVyLXNob3duKSArIGxhYmVsLFxuICAgIC5teF9GaWVsZCB0ZXh0YXJlYTpmb2N1cyArIGxhYmVsLFxuICAgIC5teF9GaWVsZCB0ZXh0YXJlYTpub3QoOnBsYWNlaG9sZGVyLXNob3duKSArIGxhYmVsIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgaW5wdXQuZXJyb3Ige1xuICAgICAgICBjb2xvcjogJGFsZXJ0O1xuICAgIH1cblxuICAgIC5teF9Mb2dpbl9zdWJtaXQge1xuICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgfVxuXG4gICAgLm14X0Vycm9yTWVzc2FnZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICB9XG5cbiAgICAubXhfRmllbGQgaW5wdXQge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cblxuICAgIC5teF9GaWVsZF9zZWxlY3Q6OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhdXRocGFnZS1wcmltYXJ5LWNvbG9yO1xuICAgIH1cblxuICAgIC5teF9Ecm9wZG93biB7XG4gICAgICAgIGNvbG9yOiAkYXV0aHBhZ2UtcHJpbWFyeS1jb2xvcjtcbiAgICB9XG5cbiAgICAubXhfRHJvcGRvd25fYXJyb3cge1xuICAgICAgICBjb2xvcjogJGF1dGhwYWdlLXByaW1hcnktY29sb3I7XG4gICAgfVxuXG4gICAgLm14X0Ryb3Bkb3duX21lbnUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcblxuICAgICAgICAubXhfRHJvcGRvd25fb3B0aW9uX2hpZ2hsaWdodCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXV0aHBhZ2UtZm9jdXMtYmctY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIHNwZWNpYWxpc2F0aW9uIGZvciBwYXNzd29yZCByZXNldCB2aWV3cyAqL1xuLm14X0F1dGhCb2R5Lm14X0F1dGhCb2R5X2ZvcmdvdC1wYXNzd29yZCB7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBwYWRkaW5nOiA1MHB4IDMycHg7XG4gICAgbWluLWhlaWdodDogNjAwcHg7XG5cbiAgICBoMSB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTZ4KSAwO1xuICAgIH1cblxuICAgIC5teF9BdXRoQm9keV9idXR0b24tY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLm14X0xvZ2luX3N1Ym1pdCB7XG4gICAgICAgIG1hcmdpbjogMCAwIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgfVxuXG4gICAgLm14X0F1dGhCb2R5X3RleHQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9BdXRoQm9keV9zaWduLWluLWluc3RlYWQtYnV0dG9uIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgfVxuXG4gICAgLm14X0F1dGhCb2R5X2ZpZWxkUm93IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICB9XG5cbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbi5teF9BY2Nlc3NpYmxlQnV0dG9uX2hhc0tpbmQge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICY6ZGlzYWJsZWQge1xuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfQXV0aEJvZHlfZGlkLW5vdC1yZWNlaXZlIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9BdXRoQm9keV9yZXNlbmQtYnV0dG9uIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBjb2xvcjogJGFjY2VudDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzeXN0ZW07XG4gICAgfVxufVxuXG4ubXhfQXV0aEJvZHlfZW1haWxQcm9tcHRJY29uIHtcbiAgICB3aWR0aDogNTdweDtcbn1cblxuLm14X0F1dGhCb2R5X2VtYWlsUHJvbXB0SWNvbi0tc2hpZnRlZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogLTE3cHg7IC8qIFByZXZlbnQgbGF5b3V0IGp1bXAgYnkgcmVsYXRpdmUgcG9zaXRpb25pbmcuICovXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTE3cHg7IC8qIFRoaXMgaWNvbiBpcyBoaWdoZXIgdGhhbiB0aGUgb3RoZXIgaWNvbnMuIFNoaWZ0IHVwIHRvIHByZXZlbnQgaWNvbiBqdW1waW5nLiAqL1xuICAgIHdpZHRoOiA1N3B4O1xufVxuXG4ubXhfQXV0aEJvZHlfZmllbGRSb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLm14X0F1dGhCb2R5X2ZpZWxkUm93ID4gLm14X0ZpZWxkIHtcbiAgICBtYXJnaW46IDAgNXB4O1xufVxuXG4ubXhfQXV0aEJvZHlfZmllbGRSb3cgPiAubXhfRmllbGQ6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4ubXhfQXV0aEJvZHlfZmllbGRSb3cgPiAubXhfRmllbGQ6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuXG4ubXhfQXV0aEJvZHlfcGFkZGVkRm9vdGVyIHtcbiAgICBoZWlnaHQ6IDgwcHg7IC8qIGhlaWdodCBvZiB0aGUgc3VibWl0IGJ1dHRvbiArIHJlZ2lzdGVyIGxpbmsgKi9cbiAgICBwYWRkaW5nLXRvcDogMjhweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAubXhfQXV0aEJvZHlfcGFkZGVkRm9vdGVyX3RpdGxlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcblxuICAgICAgICAubXhfSW5saW5lU3Bpbm5lciBzdmcge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHN1YjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0F1dGhCb2R5X3BhZGRlZEZvb3Rlcl9zdWJ0aXRsZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE0cHg7XG4gICAgfVxufVxuXG4ubXhfQXV0aEJvZHlfY2hhbmdlRmxvdyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgPiBhIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgfVxufVxuXG4ubXhfU1NPQnV0dG9ucyArIC5teF9BdXRoQm9keV9jaGFuZ2VGbG93IHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xufVxuXG4ubXhfQXV0aEJvZHlfc3Bpbm5lciB7XG4gICAgbWFyZ2luOiAxZW0gMDtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xuICAgIC5teF9BdXRoQm9keSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIG1heC13aWR0aDogNTAwcHg7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9BdXRoRm9vdGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICBvcGFjaXR5OiAwLjcyO1xuICAgIHBhZGRpbmc6IDIwcHggMDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQocmdiKDAsIDAsIDAsIDApLCByZ2IoMCwgMCwgMCwgMC44KSk7XG59XG5cbi5teF9BdXRoRm9vdGVyIGE6bGluayxcbi5teF9BdXRoRm9vdGVyIGE6aG92ZXIsXG4ubXhfQXV0aEZvb3RlciBhOnZpc2l0ZWQge1xuICAgIGNvbG9yOiAkYWNjZW50LWZnLWNvbG9yO1xuICAgIG1hcmdpbjogMCAyMnB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9BdXRoSGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgd2lkdGg6IDIwNnB4O1xuICAgIHBhZGRpbmc6IDI1cHggMjVweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gICAgLm14X0F1dGhIZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQXV0aEhlYWRlckxvZ28ge1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgZmxleDogMTtcbiAgICBwYWRkaW5nOiAwIDI1cHg7XG59XG5cbi5teF9BdXRoSGVhZGVyTG9nbyBpbWcge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gICAgLm14X0F1dGhIZWFkZXJMb2dvIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0F1dGhQYWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXV0aHBhZ2UtYmctY29sb3I7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cblxuLm14X0F1dGhQYWdlX21vZGFsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbjogMTAwcHggYXV0byBhdXRvO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGF1dGhwYWdlLW1vZGFsLWJnLWNvbG9yO1xuXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LWhlaWdodDogNzY4cHgpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNTBweDtcbiAgICB9XG5cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgJi5teF9BdXRoUGFnZV9tb2RhbF93aXRoQmx1ciB7XG4gICAgICAgIC8qIEFwcGx5IGEgYmx1cnJlZCBzaGFkb3cgYXJvdW5kIHRoZSBtb2RhbCAqL1xuICAgICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggMCByZ2IoMCwgMCwgMCwgMC4zMyk7XG5cbiAgICAgICAgLm14X0F1dGhQYWdlX21vZGFsQ29udGVudCB7XG4gICAgICAgICAgICAvKiBNYWtlIHRoZSBtb2RhbCdzIGJhY2tncm91bmQgc2VtaXRyYW5zcGFyZW50ICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXV0aHBhZ2UtbW9kYWwtY29udGVudC13aXRoLWJsdXItYmctY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuQ29weXJpZ2h0IDIwMTkgTmV3IFZlY3RvciBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0NvbXBsZXRlU2VjdXJpdHlCb2R5IHtcbiAgICBjb2xvcjogJGF1dGhwYWdlLXByaW1hcnktY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBwYWRkaW5nOiAyMHB4IDIwcHggNjBweCAyMHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICBoMiB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMjRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgaDMge1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXNlbWlib2xkKTtcbiAgICB9XG5cbiAgICBhOmxpbmssXG4gICAgYTpob3ZlcixcbiAgICBhOnZpc2l0ZWQge1xuICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ291bnRyeURyb3Bkb3duIC5teF9Ecm9wZG93bl9pbnB1dCAubXhfRHJvcGRvd25fb3B0aW9uIHtcbiAgICBwYWRkaW5nOiAwIDNweDtcbn1cblxuLm14X0NvdW50cnlEcm9wZG93biAubXhfRHJvcGRvd25fYXJyb3cge1xuICAgIHBhZGRpbmctcmlnaHQ6IDNweDtcbn1cblxuLm14X0NvdW50cnlEcm9wZG93bl9zaG9ydE9wdGlvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5teF9Db3VudHJ5RHJvcGRvd25fb3B0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjYgRWxlbWVudCBDcmVhdGlvbnMgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRGVmYXVsdFdlbGNvbWUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC5teF9EZWZhdWx0V2VsY29tZV9sb2dvIGltZyB7XG4gICAgICAgIGhlaWdodDogNDhweDtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgfVxuXG4gICAgaDEge1xuICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS00eCkgMCB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICB9XG5cbiAgICAubXhfRGVmYXVsdFdlbGNvbWVfYnV0dG9ucyB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTZ4KSAwIHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLXNlcGFyYXRvci1wcmltYXJ5KTtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIHdpZHRoOiAzODBweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9XZWxjb21lUGFnZV9yZWdpc3RyYXRpb25EaXNhYmxlZCB7XG4gICAgLm14X0RlZmF1bHRXZWxjb21lX2J1dHRvbnNfcmVnaXN0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxNyBWZWN0b3IgQ3JlYXRpb25zIEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSW50ZXJhY3RpdmVBdXRoRW50cnlDb21wb25lbnRzIHtcbiAgICAubXhfSW50ZXJhY3RpdmVBdXRoRW50cnlDb21wb25lbnRzX3Rlcm1zU3VibWl0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogcHJldmVudCBvdmVyZmxvd2luZyAqL1xuICAgIH1cbn1cblxuLm14X0ludGVyYWN0aXZlQXV0aEVudHJ5Q29tcG9uZW50c19tc2lzZG5XcmFwcGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5teF9JbnRlcmFjdGl2ZUF1dGhFbnRyeUNvbXBvbmVudHNfbXNpc2RuRW50cnkge1xuICAgIGZvbnQtc2l6ZTogMjAwJTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkc3Ryb25nLWlucHV0LWJvcmRlci1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgd2lkdGg6IDZlbTtcbn1cblxuLm14X0ludGVyYWN0aXZlQXV0aEVudHJ5Q29tcG9uZW50c19tc2lzZG5FbnRyeTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGFjY2VudDtcbn1cblxuLm14X0ludGVyYWN0aXZlQXV0aEVudHJ5Q29tcG9uZW50c19tc2lzZG5TdWJtaXQge1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi8qIFhYWDogVGhpcyBzaG91bGQgYmUgYSBjb21tb24gYnV0dG9uIGNsYXNzICovXG4ubXhfSW50ZXJhY3RpdmVBdXRoRW50cnlDb21wb25lbnRzX21zaXNkblN1Ym1pdDpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWZnLWNvbG9yO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLm14X0ludGVyYWN0aXZlQXV0aEVudHJ5Q29tcG9uZW50c190ZXJtc1BvbGljeSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ubXhfSW50ZXJhY3RpdmVBdXRoRW50cnlDb21wb25lbnRzX3Bhc3N3b3JkU2VjdGlvbiB7XG4gICAgd2lkdGg6IDMwMHB4O1xufVxuXG4ubXhfSW50ZXJhY3RpdmVBdXRoRW50cnlDb21wb25lbnRzX3Nzb19idXR0b25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgIH1cbn1cblxuLm14X0ludGVyYWN0aXZlQXV0aEVudHJ5Q29tcG9uZW50c19lbWFpbFdyYXBwZXIge1xuICAgIC8qIFwiUmVzZW5kXCIgYnV0dG9uL2xpbmsgKi9cbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmtfaW5saW5lIHtcbiAgICAgICAgLyogV2UgbmVlZCB0aGlzIHRvIGJlIGFuIGlubGluZS1ibG9jayBzbyBwb3NpdGlvbmluZyB3b3JrcyBjb3JyZWN0bHkgKi9cbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgLyogU3Bpbm5lciBhcyBlbmQgYWRvcm5tZW50IG9mIHRoZSBcInJlc2VuZFwiIGJ1dHRvbi9saW5rICovXG4gICAgICAgIC5teF9TcGlubmVyIHtcbiAgICAgICAgICAgIC8qIFNwaW5uZXJzIGFyZSB1c3VhbGx5IGJsb2NrIGVsZW1lbnRzLCBidXQgd2UgbmVlZCBpdCBhcyBpbmxpbmUgZWxlbWVudCAqL1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgICAgICAgICAgIC8qIFNwaW5uZXJzIGJ5IGRlZmF1bHQgZmlsbCBhbGwgYXZhaWxhYmxlIHdpZHRoLCBidXQgd2UgZG9uJ3Qgd2FudCB0aGF0ICovXG4gICAgICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICAgICAgLyogV2UgbmVlZCB0byBjZW50ZXIgdGhlIHNwaW5uZXIgcmVsYXRpdmUgdG8gdGhlIGJ1dHRvbi9saW5rICovXG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0F1dGhCb2R5X2xhbmd1YWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLm14X0F1dGhCb2R5X2xhbmd1YWdlIC5teF9Ecm9wZG93bl9pbnB1dCB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtc2VtaWJvbGQpO1xuICAgIGNvbG9yOiAkYXV0aHBhZ2UtbGFuZy1jb2xvcjtcbiAgICB3aWR0aDogYXV0bztcbn1cblxuLm14X0F1dGhCb2R5X2xhbmd1YWdlIC5teF9Ecm9wZG93bl9hcnJvdyB7XG4gICAgY29sb3I6ICRhdXRocGFnZS1sYW5nLWNvbG9yO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xvZ2luV2l0aFFSU2VjdGlvbiBwIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS00eCk7XG59XG5cbi5teF9Mb2dpbldpdGhRUlNlY3Rpb24ge1xuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfcHJpbWFyeSArIHAge1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICB9XG59XG5cbi5teF9Mb2dpbldpdGhRUlNlY3Rpb24gLm14X0FjY2Vzc2libGVCdXR0b24gc3ZnIHtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG59XG5cbi5teF9Mb2dpbldpdGhRUl9kaWFsb2cgLm14X0RpYWxvZyB7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTEyeCkgdmFyKC0tY3BkLXNwYWNlLTEyeCkgdmFyKC0tY3BkLXNwYWNlLTEweCk7XG5cbiAgICAubXhfTG9naW5XaXRoUVIge1xuICAgICAgICB3aWR0aDogNTAwcHg7XG4gICAgfVxufVxuXG4ubXhfTG9naW5XaXRoUVIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtaW4taGVpZ2h0OiA1MDBweDtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuXG4gICAgaDEge1xuICAgICAgICBmb250LXNpemU6ICRmb250LTI0cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgaDIge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgIH1cblxuICAgIC5teF9Mb2dpbldpdGhRUl9xcldyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtN3gpIDA7XG5cbiAgICAgICAgLm14X1NwaW5uZXIge1xuICAgICAgICAgICAgLyogTWF0Y2ggdGhlIHNpemUgb2YgdGhlIFFSIGNvZGUgdG8gcHJldmVudCBqdW1wcyAqL1xuICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDtcbiAgICAgICAgICAgIHdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Mb2dpbldpdGhRUl9jb25maXJtYXRpb25EaWdpdHMge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTEyeCkgYXV0bztcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMjRweDtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X0xvZ2luV2l0aFFSX2NvbmZpcm1hdGlvbkFsZXJ0IHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHF1YXRlcm5hcnktY29udGVudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTG9naW5XaXRoUVJfc2VwYXJhdG9yIHtcbiAgICAgICAgbWFyZ2luOiAxZW0gMDtcbiAgICB9XG5cbiAgICBvbCB7XG4gICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lOyAvKiBsaXN0IG1hcmtlcnMgZG8gbm90IHN1cHBvcnQgdGhlIG91dGxpbmVkIG51bWJlciBzdHlsaW5nIHdlIG5lZWQgKi9cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS03eCk7XG4gICAgICAgICAgICBjb2xvcjogMXB4IHNvbGlkICRpbnB1dC1wbGFjZWhvbGRlcjtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGluaXRpYWw7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBDaXJjbGVkIG51bWJlciBsaXN0IGl0ZW0gbWFya2VyICovXG4gICAgICAgIGxpOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogY291bnRlcihsaXN0LWl0ZW0pO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkaW5wdXQtcGxhY2Vob2xkZXI7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbGFiZWxbZm9yPVwibXhfTG9naW5XaXRoUVJfY2hlY2tDb2RlXCJdIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgIH1cblxuICAgIC5teF9Mb2dpbldpdGhRUl9jaGVja0NvZGVfaW5wdXQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICB0ZXh0LWFsaWduOiBpbml0aWFsO1xuXG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgIC8qIFdvcmthcm91bmQgZm9yIG9uZSBvZiB0aGUgaW5wdXQgcnVsZXMgaW4gX2NvbW1vbi5wY3NzIGJlaW5nIG5vdCBzcGVjaWZpYyBlbm91Z2ggKi9cbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogY2FsYyg0MHB4IC8gMiAtICgxY2ggLyAyKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTG9naW5XaXRoUVJfaGVhZGluZyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAubXhfTG9naW5XaXRoUVJfQmFja0J1dHRvbiB7XG4gICAgICAgIGhlaWdodDogdmFyKC0tY3BkLXNwYWNlLTd4KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tY3BkLXNwYWNlLTd4KTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1zZWNvbmRhcnkpO1xuICAgICAgICBzdmcge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0xvZ2luV2l0aFFSX2JyZWFkY3J1bWJzIHtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xM3B4O1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIH1cblxuICAgIC5teF9Mb2dpbldpdGhRUl9tYWluIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS04eCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTG9naW5XaXRoUVJfYnV0dG9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICB3aWR0aDogMzAwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1FSQ29kZSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cblxuICAgIC5teF9Mb2dpbldpdGhRUl9zcGlubmVyIHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbiRQYXNzcGhyYXNlU3RyZW5ndGhIaWdoOiAkYWNjZW50O1xuJFBhc3NwaHJhc2VTdHJlbmd0aE1lZGl1bTogJHVzZXJuYW1lLXZhcmlhbnQ1LWNvbG9yO1xuJFBhc3NwaHJhc2VTdHJlbmd0aExvdzogJGFsZXJ0O1xuXG5wcm9ncmVzcy5teF9QYXNzcGhyYXNlRmllbGRfcHJvZ3Jlc3Mge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGhlaWdodDogNHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xMHB4O1xuICAgIGxlZnQ6IDA7XG5cbiAgICBAbWl4aW4gUHJvZ3Jlc3NCYXJCb3JkZXJSYWRpdXMgXCIycHhcIjtcbiAgICBAbWl4aW4gUHJvZ3Jlc3NCYXJDb2xvdXIgJFBhc3NwaHJhc2VTdHJlbmd0aExvdztcbiAgICAmW3ZhbHVlPVwiMlwiXSxcbiAgICAmW3ZhbHVlPVwiM1wiXSB7XG4gICAgICAgIEBtaXhpbiBQcm9ncmVzc0JhckNvbG91ciAkUGFzc3BocmFzZVN0cmVuZ3RoTWVkaXVtO1xuICAgIH1cbiAgICAmW3ZhbHVlPVwiNFwiXSB7XG4gICAgICAgIEBtaXhpbiBQcm9ncmVzc0JhckNvbG91ciAkUGFzc3BocmFzZVN0cmVuZ3RoSGlnaDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1dlbGNvbWUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMTF4KSB2YXIoLS1jcGQtc3BhY2UtMTJ4KSB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuXG4gICAgJi5teF9XZWxjb21lUGFnZV9yZWdpc3RyYXRpb25EaXNhYmxlZCB7XG4gICAgICAgIC5teF9CdXR0b25DcmVhdGVBY2NvdW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9XZWxjb21lIC5teF9BdXRoQm9keV9sYW5ndWFnZSB7XG4gICAgd2lkdGg6IDE2MHB4O1xuICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTF4KSAwO1xufVxuXG4vKiBJbnZlcnQgaW1hZ2UgY29sb3VycyBpbiBkYXJrIG1vZGUuICovXG4uY3BkLXRoZW1lLWRhcmsgLm14X1dlbGNvbWVQYWdlX2xvZ28ge1xuICAgIGZpbHRlcjogaW52ZXJ0KDEpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuYnV0dG9uLm14X0Jhc2VBdmF0YXIge1xuICAgIC8qIDxidXR0b24+IGlzIGEgZm9ybSBlbGVtZW50IGFuZCBieSBkZWZhdWx0IGl0IHVzZXMgdGhlIHVzZXIgYWdlbnQgKGJyb3dzZXIpIHN0eWxpbmcuXG4gICAgICAgV2Ugd2FudCBpdCB0byBpbmhlcml0IHRoZSBmb250LWZhbWlseSBhbmQgbGluZS1oZWlnaHQgZnJvbSBpdHMgcGFyZW50LlxuICAgICAqL1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0RlY29yYXRlZFJvb21BdmF0YXIsXG4ubXhfRXh0cmFUaWxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY29udGFpbjogY29udGVudDtcbiAgICBsaW5lLWhlaWdodDogMDtcblxuICAgICYubXhfRGVjb3JhdGVkUm9vbUF2YXRhcl9jdXRvdXQgLm14X0Jhc2VBdmF0YXIge1xuICAgICAgICBtYXNrLWltYWdlOiB1cmwoXCIvcmVzL2ltZy9lbGVtZW50LWljb25zL3Jvb21saXN0L2RlY29yYXRlZC1hdmF0YXItbWFzay5zdmdcIik7XG4gICAgICAgIG1hc2stcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgbWFzay1zaXplOiBjb250YWluO1xuICAgICAgICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIH1cblxuICAgIC5teF9EZWNvcmF0ZWRSb29tQXZhdGFyX2ljb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIC8qIHRoZSBmb2xsb3dpbmcgcGVyY2VudGFnZSBiYXNlZCBzaXppbmdzIGFyZSB0byBtYXRjaCB0aGUgc2NhbGFibGUgc3ZnIG1hc2sgZm9yIHRoZSBjdXRvdXQgKi9cbiAgICAgICAgYm90dG9tOiA2LjI1JTsgLyogMnB4IGZvciBhIDMyeDMyIGF2YXRhciAqL1xuICAgICAgICByaWdodDogNi4yNSU7XG4gICAgICAgIHdpZHRoOiAyNSU7IC8qIDhweCBmb3IgYSAzMngzMiBhdmF0YXIgKi9cbiAgICAgICAgaGVpZ2h0OiAyNSU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0RlY29yYXRlZFJvb21BdmF0YXJfaWNvbl9nbG9iZSBzdmcge1xuICAgICAgICAvKiBPdmVyc2l6ZSB0aGUgaWNvbiB0byBhY2NvdW50IGZvciB0aGUgZGVhZCBzcGFjZSBhcm91bmQgdGhlIGljb24gd2l0aGluIHRoZSBjYW52YXMgKi9cbiAgICAgICAgd2lkdGg6IDEyMCU7XG4gICAgICAgIGhlaWdodDogMTIwJTtcbiAgICAgICAgbWFyZ2luOiAtMTAlO1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIH1cblxuICAgIC5teF9EZWNvcmF0ZWRSb29tQXZhdGFyX2ljb25fb2ZmbGluZTo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByZXNlbmNlLW9mZmxpbmU7XG4gICAgfVxuXG4gICAgLm14X0RlY29yYXRlZFJvb21BdmF0YXJfaWNvbl9vbmxpbmU6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQ7XG4gICAgfVxuXG4gICAgLm14X0RlY29yYXRlZFJvb21BdmF0YXJfaWNvbl9hd2F5OjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJlc2VuY2UtYXdheTtcbiAgICB9XG5cbiAgICAubXhfRGVjb3JhdGVkUm9vbUF2YXRhcl9pY29uX2J1c3k6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmVzZW5jZS1idXN5O1xuICAgIH1cblxuICAgIC5teF9EZWNvcmF0ZWRSb29tQXZhdGFyX25vdGlmaWNhdGlvbkJhZGdlLFxuICAgIC5teF9Sb29tVGlsZV9iYWRnZUNvbnRhaW5lciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgICB3aWR0aDogMThweDtcbiAgICB9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMjUgTmV3IFZlY3RvciBMdGQuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG4gKiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuICovXG5cbi5teF9Sb29tQXZhdGFyVmlldyB7XG4gICAgLS1yb29tLWF2YXRhci1zaXplOiAzMnB4O1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLyogS2VlcCB0aGUgY29udGFpbmVyIHRvIHRoZSBzYW1lIHNpemUgdGhhbiB0aGUgYXZhdGFyICovXG4gICAgaW5saW5lLXNpemU6IHZhcigtLXJvb20tYXZhdGFyLXNpemUpO1xuICAgIGJsb2NrLXNpemU6IHZhcigtLXJvb20tYXZhdGFyLXNpemUpO1xuXG4gICAgLm14X1Jvb21BdmF0YXJWaWV3X1Jvb21BdmF0YXIge1xuICAgICAgICBtYXNrLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgIG1hc2stc2l6ZTogY29udGFpbjtcbiAgICAgICAgbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgLm14X1Jvb21BdmF0YXJWaWV3X1Jvb21BdmF0YXJfaWNvbiB7XG4gICAgICAgIG1hc2staW1hZ2U6IHVybChcIi9yZXMvaW1nL2VsZW1lbnQtaWNvbnMvcm9vbWxpc3Qvcm9vbS1hdmF0YXItdmlldy1pY29uLW1hc2suc3ZnXCIpO1xuICAgIH1cblxuICAgIC5teF9Sb29tQXZhdGFyVmlld19Sb29tQXZhdGFyX3ByZXNlbmNlIHtcbiAgICAgICAgbWFzay1pbWFnZTogdXJsKFwiL3Jlcy9pbWcvZWxlbWVudC1pY29ucy9yb29tbGlzdC9yb29tLWF2YXRhci12aWV3LXByZXNlbmNlLW1hc2suc3ZnXCIpO1xuICAgIH1cblxuICAgIC5teF9Sb29tQXZhdGFyVmlld19pY29uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgIC8qIFBsYWNlIGhhbGYgdGhlIGljb24gaW5zaWRlIHRoZSBhdmF0YXIgKi9cbiAgICAgICAgLyogQXZhdGFyIHNpemUgLSAoaWNvbiBzaXplICgxNnB4KSAvIDIpICovXG4gICAgICAgIGxlZnQ6IGNhbGMoKHZhcigtLXJvb20tYXZhdGFyLXNpemUpIC0gOHB4KSk7XG4gICAgICAgIGJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTAtNXgpO1xuICAgIH1cblxuICAgIC5teF9Sb29tQXZhdGFyVmlld19QcmVzZW5jZURlY29yYXRpb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgLyogUGxhY2UgaGFsZiB0aGUgaWNvbiBpbnNpZGUgdGhlIGF2YXRhciAqL1xuICAgICAgICAvKiBBdmF0YXIgc2l6ZSAtIChpY29uIHNpemUgKDhweCkgLyAyKSAqL1xuICAgICAgICBsZWZ0OiBjYWxjKCh2YXIoLS1yb29tLWF2YXRhci1zaXplKSAtIDRweCkpO1xuICAgICAgICBib3R0b206IHZhcigtLWNwZC1zcGFjZS0wLTV4KTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfV2lkZ2V0QXZhdGFyIHtcbiAgICAvKiAhaW1wb3J0YW50IG92ZXJyaWRlIGNvbXBvdW5kIGF2YXRhciAqL1xuICAgIGJvcmRlci1yYWRpdXM6IDRweCAhaW1wb3J0YW50O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjQgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1dpdGhQcmVzZW5jZUluZGljYXRvciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGNvbnRhaW46IGNvbnRlbnQ7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG5cbiAgICAubXhfV2l0aFByZXNlbmNlSW5kaWNhdG9yX2ljb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwcHg7XG4gICAgICAgIGJvdHRvbTogMnB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9CZXRhQ2FyZCB7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFuZWxzO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICAubXhfQmV0YUNhcmRfY29sdW1ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogd3JhcDtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNXgpO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAubXhfQmV0YUNhcmRfY29sdW1uc19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBmbGV4OiAxO1xuXG4gICAgICAgICAgICAubXhfQmV0YUNhcmRfdGl0bGUge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMThweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjJweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0xeCkgMCAxNHB4O1xuXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGNvbHVtbi1nYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9CZXRhQ2FyZF9jYXB0aW9uIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTIwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9CZXRhQ2FyZF9idXR0b25zIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlO1xuICAgICAgICAgICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS01eCkgYXV0byAwO1xuXG4gICAgICAgICAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA3cHggNDBweDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IC8qIHRleHQgbWlnaHQgb3ZlcmZsb3cgKi9cblxuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcmRlcjogMjsgLyogUGxhY2UgZmVlZGJhY2sgYnV0dG9uIHRvcCBhbmQgcmlnaHQgKi9cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0JldGFDYXJkX3JlZnJlc2hXYXJuaW5nIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTBweDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9CZXRhQ2FyZF9mYXEge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS01eCk7XG4gICAgICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS14cy1yZWd1bGFyKTtcblxuICAgICAgICAgICAgICAgID4gaDQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0zeCkgMCAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgID4gcCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQmV0YUNhcmRfY29sdW1uc19pbWFnZV93cmFwcGVyIHtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0byAwO1xuXG4gICAgICAgICAgICAubXhfQmV0YUNhcmRfY29sdW1uc19pbWFnZSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAzMDBweDtcbiAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfQmV0YUNhcmRfcmVsYXRlZFNldHRpbmdzIHtcbiAgICAgICAgLm14X1NldHRpbmdzRmxhZyB7XG4gICAgICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS00eCkgMCAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcblxuICAgICAgICAgICAgLm14X1NldHRpbmdzRmxhZ19taWNyb2NvcHkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0JldGFDYXJkX2JldGFQaWxsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50LWFsdDtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMXgpIDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIGxpbmUtaGVpZ2h0OiAxNXB4O1xuICAgIGNvbG9yOiAkYnV0dG9uLXByaW1hcnktZmctY29sb3I7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcbiAgICB3b3JkLWJyZWFrOiBrZWVwLWFsbDsgLyogYXZvaWQgbXVsdGlwbGUgbGluZXMgb24gQ0pLIGxhbmd1YWdlICovXG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRGV2aWNlQ29udGV4dE1lbnUge1xuICAgIG1heC13aWR0aDogMjUycHg7XG5cbiAgICAubXhfSWNvbml6ZWRDb250ZXh0TWVudV9sYWJlbCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwLTIwMjMgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLyogQSBjb250ZXh0IG1lbnUgdGhhdCBsYXJnZWx5IGZpdHMgdGhlIHwgW2ljb25dICAgIFtsYWJlbF0gfCBmb3JtYXQuICovXG4ubXhfSWNvbml6ZWRDb250ZXh0TWVudSB7XG4gICAgbWluLXdpZHRoOiAxNDZweDtcbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgLyogb3ZlcnJpZGUgZGVmYXVsdCB1bCBzdHlsZXMgKi9cbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgIC5teF9JY29uaXplZENvbnRleHRNZW51X29wdGlvbkxpc3Qge1xuICAgICAgICAmID4gKiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0ljb25pemVkQ29udGV4dE1lbnVfb3B0aW9uTGlzdF9sYWJlbCB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHRoZSBub3RGaXJzdCBjbGFzcyBpcyBmb3IgY2FzZXMgd2hlcmUgdGhlIG9wdGlvbkxpc3QgbWlnaHQgYmUgdW5kZXIgYSBoZWFkZXIgb2Ygc29ydHMuICovXG4gICAgICAgICY6bnRoLWNoaWxkKG4gKyAyKSxcbiAgICAgICAgLm14X0ljb25pemVkQ29udGV4dE1lbnVfb3B0aW9uTGlzdF9ub3RGaXJzdCB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiB2YXIoLS1jcGQtYm9yZGVyLXdpZHRoLTEpIHNvbGlkIHZhcigtLWNwZC1jb2xvci1ncmF5LTQwMCk7XG4gICAgICAgIH1cblxuICAgICAgICAvKiByb3VuZCB0aGUgdG9wIGNvcm5lcnMgb2YgdGhlIHRvcCBidXR0b24gZm9yIHRoZSBob3ZlciBlZmZlY3QgdG8gYmUgYm91bmRlZCAqL1xuICAgICAgICAmOmZpcnN0LWNoaWxkIC5teF9JY29uaXplZENvbnRleHRNZW51X2l0ZW06Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4IDhweCAwIDA7IC8qIHJhZGl1cyBtYXRjaGVzIC5teF9Db250ZXh0dWFsTWVudSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgLyogcm91bmQgdGhlIGJvdHRvbSBjb3JuZXJzIG9mIHRoZSBib3R0b20gYnV0dG9uIGZvciB0aGUgaG92ZXIgZWZmZWN0IHRvIGJlIGJvdW5kZWQgKi9cbiAgICAgICAgJjpsYXN0LWNoaWxkIC5teF9JY29uaXplZENvbnRleHRNZW51X2l0ZW06bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAgOHB4IDhweDsgLyogcmFkaXVzIG1hdGNoZXMgLm14X0NvbnRleHR1YWxNZW51ICovXG4gICAgICAgIH1cblxuICAgICAgICAvKiByb3VuZCBhbGwgY29ybmVycyBvZiB0aGUgb25seSBidXR0b24gZm9yIHRoZSBob3ZlciBlZmZlY3QgdG8gYmUgYm91bmRlZCAqL1xuICAgICAgICAmOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQgLm14X0ljb25pemVkQ29udGV4dE1lbnVfaXRlbTpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsgLyogcmFkaXVzIG1hdGNoZXMgLm14X0NvbnRleHR1YWxNZW51ICovXG4gICAgICAgIH1cblxuICAgICAgICAubXhfSWNvbml6ZWRDb250ZXh0TWVudV9pdGVtIHtcbiAgICAgICAgICAgIC8qIHBhZCB0aGUgaW5zaWRlIG9mIHRoZSBidXR0b24gc28gdGhhdCB0aGUgaG92ZXIgYmFja2dyb3VuZCBpcyBwYWRkZWQgdG9vICovXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMTJweDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuXG4gICAgICAgICAgICAvKiBDcmVhdGUgYSBmbGV4Ym94IHRvIG1vcmUgZWFzaWx5IGRlZmluZSB0aGUgbGlzdCBpdGVtcyAqL1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tc2Vjb25kYXJ5LWhvdmVyZWQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzcGFuLm14X0ljb25pemVkQ29udGV4dE1lbnVfbGFiZWwge1xuICAgICAgICAgICAgICAgIC8qIGxhYmVscyAqL1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGZsZXg6IDE7XG5cbiAgICAgICAgICAgICAgICAvKiBFbGxpcHNpemUgYW55IHRleHQgb3ZlcmZsb3cgKi9cbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuXG4gICAgICAgICAgICAgICAgJiArIC5teF9JY29uaXplZENvbnRleHRNZW51X2xhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxNHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0JldGFDYXJkX2JldGFQaWxsIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTZweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9JY29uaXplZENvbnRleHRNZW51X29wdGlvbkxpc3RfcmVkIHtcbiAgICAgICAgLm14X0ljb25pemVkQ29udGV4dE1lbnVfaXRlbSB7XG4gICAgICAgICAgICBjb2xvcjogJGFsZXJ0ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLWNyaXRpY2FsLXByaW1hcnkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0ljb25pemVkQ29udGV4dE1lbnVfb3B0aW9uX3JlZCB7XG4gICAgICAgIGNvbG9yOiAkYWxlcnQgIWltcG9ydGFudDtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgY29sb3I6ICRhbGVydDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9JY29uaXplZENvbnRleHRNZW51X2FjdGl2ZSB7XG4gICAgICAgICYubXhfSWNvbml6ZWRDb250ZXh0TWVudV9pdGVtLFxuICAgICAgICAubXhfSWNvbml6ZWRDb250ZXh0TWVudV9pdGVtIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0ljb25pemVkQ29udGV4dE1lbnVfY29tcGFjdCB7XG4gICAgICAgIC5teF9JY29uaXplZENvbnRleHRNZW51X29wdGlvbkxpc3QgPiAqIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxNnB4IDhweCAxMnB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3ZnLm14X0ljb25pemVkQ29udGV4dE1lbnVfY2hlY2tlZCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC01cHg7XG4gICAgfVxuXG4gICAgLm14X0ljb25pemVkQ29udGV4dE1lbnVfc3VibGFiZWwge1xuICAgICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgIH1cbn1cblxuLm14X0ljb25pemVkQ29udGV4dE1lbnVfaXRlbS5teF9JY29uaXplZENvbnRleHRNZW51X2l0ZW1EZXN0cnVjdGl2ZSB7XG4gICAgY29sb3I6ICRhbGVydCAhaW1wb3J0YW50O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDIwLTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9MZWdhY3lDYWxsQ29udGV4dE1lbnVfaXRlbSB7XG4gICAgd2lkdGg6IDIwNXB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgdmVydGljYWwtYWxpZ246IGNlbnRlcjtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCwyMDI1IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0FkZEV4aXN0aW5nVG9TcGFjZURpYWxvZ193cmFwcGVyIHtcbiAgICAubXhfRGlhbG9nIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG59XG5cbi5teF9BZGRFeGlzdGluZ1RvU3BhY2Uge1xuICAgIC5teF9TZWFyY2hCb3gge1xuICAgICAgICAvKiBUbyBtYXRjaCB0aGUgc3BhY2UgYXJvdW5kIHRoZSB0aXRsZSAqL1xuICAgICAgICBtYXJnaW46IDAgMCAxNXB4IDA7XG4gICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICB9XG5cbiAgICAubXhfQWRkRXhpc3RpbmdUb1NwYWNlX2NvbnRlbnQge1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgfVxuXG4gICAgLm14X0FkZEV4aXN0aW5nVG9TcGFjZV9ub1Jlc3VsdHMge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICB9XG5cbiAgICAubXhfQWRkRXhpc3RpbmdUb1NwYWNlX3NlY3Rpb24ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG5cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHByb3ZpZGVzIHNwYWNlIGZvciBzY3JvbGxiYXIgc28gdGhhdCBjaGVja2JveCBhbmQgc2Nyb2xsYmFyIGRvIG5vdCBjb2xsaWRlICovXG4gICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICAgICAgfVxuXG4gICAgICAgID4gaDMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmsge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfQWRkRXhpc3RpbmdUb1NwYWNlX2Zvb3RlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG5cbiAgICAgICAgPiBzcGFuIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcblxuICAgICAgICAgICAgLm14X1Byb2dyZXNzQmFyIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDhweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgICAgIEBtaXhpbiBQcm9ncmVzc0JhckJvcmRlclJhZGl1cyA4cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9BZGRFeGlzdGluZ1RvU3BhY2VEaWFsb2dfcHJvZ3Jlc3NUZXh0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA+ICoge1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQWRkRXhpc3RpbmdUb1NwYWNlX2Vycm9yIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTJweDtcblxuICAgICAgICAgICAgPiBpbWcge1xuICAgICAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0FkZEV4aXN0aW5nVG9TcGFjZV9lcnJvckhlYWRpbmcge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMThweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGFsZXJ0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfQWRkRXhpc3RpbmdUb1NwYWNlX2Vycm9yQ2FwdGlvbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfcHJpbWFyeSB7XG4gICAgICAgICAgICBwYWRkaW5nOiA4cHggMzZweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BZGRFeGlzdGluZ1RvU3BhY2VEaWFsb2dfcmV0cnlCdXR0b24gc3ZnIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9BZGRFeGlzdGluZ1RvU3BhY2VEaWFsb2cge1xuICAgIHdpZHRoOiA0ODBweDtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBoZWlnaHQ6IDgwdmg7XG5cbiAgICAubXhfQWRkRXhpc3RpbmdUb1NwYWNlIHtcbiAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgfVxufVxuXG4ubXhfU3Vic3BhY2VTZWxlY3RvciB7XG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgbWFyZ2luOiBhdXRvIDE2cHggYXV0byA1cHg7XG4gICAgfVxuXG4gICAgPiBkaXYge1xuICAgICAgICA+IGgxIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xOHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTIycHg7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRHJvcGRvd25faW5wdXQge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG5cbiAgICAgICAgPiAubXhfRHJvcGRvd25fb3B0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIGZsZXg6IHVuc2V0O1xuICAgICAgICAgICAgaGVpZ2h0OiB1bnNldDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcblxuICAgICAgICAgICAgLm14X0Jhc2VBdmF0YXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3Vic3BhY2VTZWxlY3Rvcl9kcm9wZG93bk9wdGlvbkFjdGl2ZSB7XG4gICAgICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDI0cHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TdWJzcGFjZVNlbGVjdG9yX29ubHlTcGFjZSB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgfVxufVxuXG4ubXhfQWRkRXhpc3RpbmdUb1NwYWNlX2VudHJ5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG5cbiAgICBmb3JtIHtcbiAgICAgICAgLyogQWxpZ24gY2hlY2tib3hlcy4gKi9cbiAgICAgICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogYXV0bztcbiAgICB9XG5cbiAgICAvKiB3ZSBjYW4ndCB0YXJnZXQgLm14X0Jhc2VBdmF0YXIgaGVyZSBhcyBpdCdsbCBicmVhayB0aGUgZGVjb3JhdGVkIGF2YXRhciBzdHlsaW5nICovXG4gICAgLm14X0RlY29yYXRlZFJvb21BdmF0YXIge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gICAgfVxuXG4gICAgLm14X0FkZEV4aXN0aW5nVG9TcGFjZV9lbnRyeV9uYW1lIHtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9BbmFseXRpY3NMZWFybk1vcmVEaWFsb2cge1xuICAgIG1heC13aWR0aDogNTAwcHg7XG4gICAgLm14X0FuYWx5dGljc0xlYXJuTW9yZV9pbWFnZV9ob2xkZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvcmVzL2ltZy9lbGVtZW50LXNoaW55LnN2Z1wiKTtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHRvcDtcbiAgICAgICAgaGVpZ2h0OiAxMTJweDtcbiAgICAgICAgcGFkZGluZzogMjBweCAwcHg7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIH1cblxuICAgIC5teF9BbmFseXRpY3NMZWFybk1vcmVfY29weSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbWVudS1ib3JkZXItY29sb3I7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIH1cblxuICAgIGEge1xuICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIC5teF9BbmFseXRpY3NMZWFybk1vcmVfYnVsbGV0cyB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMHB4O1xuICAgIH1cblxuICAgIC5teF9BbmFseXRpY3NMZWFybk1vcmVfYnVsbGV0cyBsaSB7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMnB4IDAgMCAzMnB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHdpZHRoOiAyNnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyNnB4O1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGNvbG9yOiAjMGRiZDhiO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0J1Z1JlcG9ydERpYWxvZyB7XG4gICAgLm14X0J1Z1JlcG9ydERpYWxvZ19kb3dubG9hZCB7XG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGluayB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDE4cHg7IC8qIFNwYWNlIGJldHdlZW4gXCJEb3dubG9hZGluZyBsb2dzLi4uXCIgKi9cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE2IEF2aXJhbCBEYXNndXB0YVxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ2hhbmdlbG9nRGlhbG9nX2NvbnRlbnQge1xuICAgIG1heC1oZWlnaHQ6IDMwMHB4O1xuICAgIG92ZXJmbG93OiBhdXRvO1xufVxuXG4ubXhfQ2hhbmdlbG9nRGlhbG9nX2xpIHtcbiAgICBwYWRkaW5nOiAwLjJlbTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBERVYgTk9URTogVGhpcyBzdHlsZXNoZWV0IGNvdmVycyBkaWFsb2dzIGxpc3RlZCBieSB0aGUgY29tcG91bmQsIGluY2x1ZGluZyAqL1xuLyogb3ZlciBtdWx0aXBsZSBSZWFjdCBjb21wb25lbnRzLiBUaGUgYWN0dWFsIGlubmVyIGNvbnRlbnRzIG9mIHRoZSBkaWFsb2cgc2hvdWxkICovXG4vKiBiZSBpbiB0aGVpciByZXNwZWN0aXZlIHN0eWxlc2hlZXRzLiAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyogT3ZlcnJpZGUgbGVnYWN5L2RlZmF1bHQgc3R5bGVzIGZvciBkaWFsb2dzICovXG4ubXhfRGlhbG9nX3dyYXBwZXIubXhfQ29tcG91bmREaWFsb2cgLm14X0RpYWxvZyB7XG4gICAgcGFkZGluZzogMDsgLyogd2UnbGwgbWFuYWdlIGl0IG91cnNlbHZlcyAqL1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xufVxuXG4ubXhfQ29tcG91bmREaWFsb2cge1xuICAgIC5teF9EaWFsb2cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgIC5teF9Db21wb3VuZERpYWxvZ19oZWFkZXIge1xuICAgICAgICBwYWRkaW5nOiAzMnB4IDMycHggMTZweCAzMnB4O1xuXG4gICAgICAgIGgxIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0yNHB4O1xuICAgICAgICAgICAgbWFyZ2luOiAwOyAvKiBtYW5hZ2VkIGJ5IGhlYWRlciBjbGFzcyAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0NvbXBvdW5kRGlhbG9nX2NhbmNlbEJ1dHRvbiB7XG4gICAgICAgIEBtaXhpbiBjdXN0b21pc2VkQ2FuY2VsQnV0dG9uO1xuICAgICAgICAvKiBBbGlnbiB3aXRoIGNvcm5lciByYWRpdXMgb2YgZGlhbG9nICovXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICByaWdodDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICB9XG5cbiAgICAubXhfQ29tcG91bmREaWFsb2dfZm9ybSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgfVxuXG4gICAgLm14X0NvbXBvdW5kRGlhbG9nX2NvbnRlbnQge1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgcGFkZGluZzogOHB4IDMycHg7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgfVxuXG4gICAgLm14X0NvbXBvdW5kRGlhbG9nX2Zvb3RlciB7XG4gICAgICAgIHBhZGRpbmc6IDIwcHggMzJweDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDI0cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9TY3JvbGxhYmxlQmFzZURpYWxvZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgd2lkdGg6IDU0NHB4OyAvKiBmaXhlZCAqL1xuICAgIGhlaWdodDogNTE2cHg7IC8qIGZpeGVkICovXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgbWF4LWhlaWdodDogODAlO1xuXG4gICAgLm14X0NvbXBvdW5kRGlhbG9nX2Zvb3RlciB7XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCAtNHB4IDRweCByZ2IoMCwgMCwgMCwgMC4wNSk7IC8qIGhhcmRjb2RlZCBjb2xvdXIgZm9yIGJvdGggdGhlbWVzICovXG4gICAgICAgIHotaW5kZXg6IDE7IC8qIG5lZWRlZCB0byBtYWtlIGZvb3RlciAmIHNoYWRvdyBhcHBlYXIgYWJvdmUgZGlhbG9nIGNvbnRlbnQgKi9cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjUgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Db25maXJtS2V5U3RvcmFnZU9mZkRpYWxvZyB7XG4gICAgLm14X0RpYWxvZ19ib3JkZXIge1xuICAgICAgICB3aWR0aDogNjAwcHg7XG4gICAgfVxuXG4gICAgLm14X0VuY3J5cHRpb25DYXJkIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Db25maXJtU3BhY2VVc2VyQWN0aW9uRGlhbG9nX3dyYXBwZXIge1xuICAgIC5teF9EaWFsb2cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBwYWRkaW5nOiAyNHB4IDMycHg7XG4gICAgfVxufVxuXG4ubXhfQ29uZmlybVNwYWNlVXNlckFjdGlvbkRpYWxvZyB7XG4gICAgd2lkdGg6IDQ0MHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBoZWlnaHQ6IDUyMHB4O1xuXG4gICAgLm14X0RpYWxvZ19jb250ZW50IHtcbiAgICAgICAgbWFyZ2luOiAxMnB4IDA7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICB9XG5cbiAgICAubXhfQ29uZmlybVVzZXJBY3Rpb25EaWFsb2dfcmVhc29uRmllbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIH1cblxuICAgIC5teF9Db25maXJtU3BhY2VVc2VyQWN0aW9uRGlhbG9nX3dhcm5pbmcge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIHBhZGRpbmc6IDEycHggOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGVyLXBhbmVsLWJnLWNvbG9yO1xuXG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IC00cHg7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0xLTV4KTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNyBWZWN0b3IgQ3JlYXRpb25zIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0NvbmZpcm1Vc2VyQWN0aW9uRGlhbG9nIC5teF9EaWFsb2dfY29udGVudCAubXhfQ29uZmlybVVzZXJBY3Rpb25EaWFsb2dfdXNlciB7XG4gICAgbWluLWhlaWdodDogNDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xufVxuXG4ubXhfQ29uZmlybVVzZXJBY3Rpb25EaWFsb2dfYXZhdGFyIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG59XG5cbi5teF9Db25maXJtVXNlckFjdGlvbkRpYWxvZ19uYW1lIHtcbiAgICBwYWRkaW5nLXRvcDogMnB4O1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMThweDtcbn1cblxuLm14X0NvbmZpcm1Vc2VyQWN0aW9uRGlhbG9nX3VzZXJJZCB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xM3B4O1xufVxuXG4ubXhfQ29uZmlybVVzZXJBY3Rpb25EaWFsb2dfcmVhc29uRmllbGQge1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNyBNaWNoYWVsIFRlbGF0eW5za2kgPDd0M2NoZ3V5QGdtYWlsLmNvbT5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0NyZWF0ZVJvb21EaWFsb2dfZGV0YWlscyB7XG4gICAgbWFyZ2luLXRvcDogMTVweDtcblxuICAgIC5teF9DcmVhdGVSb29tRGlhbG9nX2RldGFpbHNfc3VtbWFyeSB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcblxuICAgICAgICAvKiBsaXN0LXN0eWxlIGRvZXNuJ3QgZG8gaXQgZm9yIHdlYmtpdCAqL1xuICAgICAgICAmOjotd2Via2l0LWRldGFpbHMtbWFya2VyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgID4gZGl2IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIG1hcmdpbjogNXB4IDA7XG5cbiAgICAgICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0NyZWF0ZVJvb21EaWFsb2dfbGFiZWwge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDEycHg7XG59XG5cbi5teF9DcmVhdGVSb29tRGlhbG9nX2lucHV0X2NvbnRhaW5lciB7XG4gICAgcGFkZGluZy1yaWdodDogMjBweDtcbn1cblxuLm14X0NyZWF0ZVJvb21EaWFsb2dfaW5wdXQge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGlucHV0LWJvcmRlci1jb2xvcjtcbiAgICBwYWRkaW5nOiA5cHg7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5teF9DcmVhdGVSb29tRGlhbG9nX2FsaWFzQ29udGFpbmVyIHtcbiAgICAvKiBuZWVkZWQgdG8gbWFrZSB0aGUgYWxpYXMgZmllbGQgb25seSBncm93IGFzIHdpZGUgYXMgbmVlZGVkIGFzIG9wcG9zZWQgdG8gZnVsbCB3aWR0aCAqL1xuICAgIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5teF9DcmVhdGVSb29tRGlhbG9nIHtcbiAgICAmLm14X0RpYWxvZ19maXhlZFdpZHRoIHtcbiAgICAgICAgd2lkdGg6IDQ1MHB4O1xuICAgIH1cblxuICAgIC5teF9EaWFsb2dfY29udGVudCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gICAgfVxuXG4gICAgcCxcbiAgICAubXhfRmllbGRfaW5wdXQgbGFiZWwge1xuICAgICAgICBjb2xvcjogJG11dGVkLWZnLWNvbG9yO1xuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc0ZsYWcge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc0ZsYWdfbGFiZWwge1xuICAgICAgICBmbGV4OiAxIDEgMDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICB9XG5cbiAgICAubXhfVG9nZ2xlU3dpdGNoIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgIH1cblxuICAgIC5teF9EaWFsb2dfY29udGVudCA+IC5teF9TZXR0aW5nc0ZsYWcge1xuICAgICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgIH1cblxuICAgIC5teF9GaWVsZCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICBmb3JtIHtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgICBtYXJnaW46IDAgODVweCAwIDA7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICB9XG59XG5cbi5teF9DcmVhdGVSb29tRGlhbG9nX2xhYmVsbGVkQ2hlY2tib3gge1xuICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNiBFbGVtZW50IENyZWF0aW9ucyBMdGQuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG4gKiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuICovXG5cbi5teF9DcmVhdGVTZWN0aW9uRGlhbG9nIHtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtcHJpbWFyeSk7XG5cbiAgICAubXhfQ3JlYXRlU2VjdGlvbkRpYWxvZ190aXRsZSB7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgICYubXhfRGlhbG9nX2ZpeGVkV2lkdGgge1xuICAgICAgICAvKiA1NzZweCBjb21pbmcgZnJvbSBGaWdtYSBhbmQgcmVtb3ZlIGV4dGVybmFsIHBhZGRpbmcgKi9cbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDU3NnB4IC0gdmFyKC0tY3BkLXNwYWNlLTIweCkpO1xuICAgIH1cblxuICAgIC5teF9EaWFsb2dfaGVhZGVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ3JlYXRlU3Vic3BhY2VEaWFsb2dfd3JhcHBlciB7XG4gICAgLm14X0RpYWxvZyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxufVxuXG4ubXhfQ3JlYXRlU3Vic3BhY2VEaWFsb2cge1xuICAgIHdpZHRoOiA0ODBweDtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgbWluLWhlaWdodDogMDtcblxuICAgIC5teF9DcmVhdGVTdWJzcGFjZURpYWxvZ19jb250ZW50IHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuXG4gICAgICAgIC5teF9DcmVhdGVTdWJzcGFjZURpYWxvZ19iZXRhTm90aWNlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItcGFuZWwtYmctY29sb3I7XG5cbiAgICAgICAgICAgIC5teF9CZXRhQ2FyZF9iZXRhUGlsbCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9Kb2luUnVsZURyb3Bkb3duICsgcCB7XG4gICAgICAgICAgICBjb2xvcjogJG11dGVkLWZnLWNvbG9yO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0NyZWF0ZVN1YnNwYWNlRGlhbG9nX2Zvb3RlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG5cbiAgICAgICAgLm14X0NyZWF0ZVN1YnNwYWNlRGlhbG9nX2Zvb3Rlcl9wcm9tcHQge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgICAgICAgICA+ICoge1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnkge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiA4cHggMzZweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNSBOZXcgVmVjdG9yIEx0ZC5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X0NyeXB0byB7XG4gICAgdGFibGUge1xuICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS00eCkgMDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgYm9yZGVyLXNwYWNpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCkgMDtcblxuICAgICAgICB0aGVhZCB7XG4gICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1oZWFkaW5nLXNtLXNlbWlib2xkKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOC0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRGVhY3RpdmF0ZUFjY291bnREaWFsb2cgLm14X0RpYWxvZ19jb250ZW50IHtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xufVxuXG4ubXhfRGVhY3RpdmF0ZUFjY291bnREaWFsb2cgLm14X0RlYWN0aXZhdGVBY2NvdW50RGlhbG9nX2lucHV0X3NlY3Rpb24gLm14X0ZpZWxkIHtcbiAgICB3aWR0aDogMzAwcHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNyBNaWNoYWVsIFRlbGF0eW5za2kgPDd0M2NoZ3V5QGdtYWlsLmNvbT5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0RldnRvb2xzRGlhbG9nX3dyYXBwZXIge1xuICAgIC5teF9EaWFsb2cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgIC5teF9EaWFsb2dfZml4ZWRXaWR0aCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgLm14X0RpYWxvZ19idXR0b25zIGJ1dHRvbiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0RldlRvb2xzX3RvZ2dsZUZvcm0ge1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgfVxufVxuXG4ubXhfRGV2VG9vbHNfdG9vbEhlYWRpbmcge1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWhlYWRpbmctc20tc2VtaWJvbGQpO1xufVxuXG4ubXhfRGV2VG9vbHNfY29udGVudCB7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAvKiBHaXZlIHJvb20gZm9yIGZvY3VzIG91dGxpbmVzICovXG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLWNwZC1zcGFjZS0wLTV4KTtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogdmFyKC0tY3BkLXNwYWNlLTAtNXgpO1xufVxuXG4ubXhfRGV2VG9vbHNfUm9vbVN0YXRlRXhwbG9yZXJfcXVlcnkge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5teF9EZXZUb29sc19idXR0b24ge1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHggIWltcG9ydGFudDtcbn1cblxuLm14X0RldlRvb2xzX1Jvb21TdGF0ZUV4cGxvcmVyX2J1dHRvbl9oYXNTcGFjZXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4ubXhfRGV2VG9vbHNfYnV0dG9uLm14X0RldlRvb2xzX1Jvb21TdGF0ZUV4cGxvcmVyX2J1dHRvbl9lbXB0eVN0cmluZyB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4ubXhfRGV2VG9vbHNfbGFiZWxfbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5teF9EZXZUb29sc19sYWJlbF9yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4ubXhfRGV2VG9vbHNfbGFiZWxfYm90dG9tIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U1ZTVlNTtcbn1cblxuLm14X0RldlRvb2xzX2lucHV0Um93IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG59XG5cbi5teF9EZXZUb29sc19pbnB1dExhYmVsQ2VsbCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xufVxuXG4ubXhfRGV2VG9vbHNfdGV4dGFyZWEge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICBtYXgtd2lkdGg6IDY4NHB4O1xuICAgIG1pbi1oZWlnaHQ6IDI1MHB4O1xuICAgIHBhZGRpbmc6IDEwcHg7XG59XG5cbi5teF9EZXZUb29sc19ldmVudFR5cGVTdGF0ZUtleUdyb3VwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLm14X0RldlRvb2xzX2NvbnRlbnQgLm14X0ZpZWxkX2lucHV0OmZpcnN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi1yaWdodDogNDJweDtcbn1cblxuLm14X0RldlRvb2xzX1ZlcmlmaWNhdGlvblJlcXVlc3Qge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIHBhZGRpbmc6IDFweCA1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgIGZvbnQtZmFtaWx5OiAkbW9ub3NwYWNlLWZvbnQtZmFtaWx5O1xuXG4gICAgZGwge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1heC1jb250ZW50IGF1dG87XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICBkZCB7XG4gICAgICAgIGdyaWQtY29sdW1uLXN0YXJ0OiAyO1xuICAgIH1cblxuICAgIGRkOmVtcHR5IHtcbiAgICAgICAgY29sb3I6ICM2NjY2NjY7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiKGVtcHR5KVwiO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZHQge1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDE7XG4gICAgfVxuXG4gICAgZHQ6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCI6XCI7XG4gICAgfVxufVxuXG4ubXhfRGV2VG9vbHNfU2V0dGluZ3NFeHBsb3JlciB7XG4gICAgdGFibGUge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcblxuICAgICAgICB0aCB7XG4gICAgICAgICAgICAvKiBDb2xvdXIgY2hvaWNlOiBmaXJzdCBvbmUgYXV0b2NvbXBsZXRlIGdhdmUgbWUuICovXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGFjY2VudDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICB0ZCxcbiAgICAgICAgdGgge1xuICAgICAgICAgICAgd2lkdGg6IDM2MHB4OyAvKiBcImZlZWxzIHJpZ2h0XCIgbnVtYmVyICovXG5cbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICB0ZCArIHRkLFxuICAgICAgICB0aCArIHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgdHI6aG92ZXIge1xuICAgICAgICAgICAgLyogQ29sb3VyIGNob2ljZTogZmlyc3Qgb25lIGF1dG9jb21wbGV0ZSBnYXZlIG1lLiAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9EZXZUb29sc19TZXR0aW5nc0V4cGxvcmVyX211dGFibGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50O1xuICAgIH1cblxuICAgIC5teF9EZXZUb29sc19TZXR0aW5nc0V4cGxvcmVyX2ltbXV0YWJsZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhbGVydDtcbiAgICB9XG5cbiAgICAubXhfRGV2VG9vbHNfU2V0dGluZ3NFeHBsb3Jlcl9lZGl0IHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG4gICAgfVxuXG4gICAgLm14X0RldlRvb2xzX1NldHRpbmdzRXhwbG9yZXJfd2FybmluZyB7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRhbGVydDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBwYWRkaW5nOiA0cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICB9XG59XG5cbi5teF9EZXZUb29sc19TZXR0aW5nc0V4cGxvcmVyX3NldHRpbmcge1xuICAgIC8qIG92ZXJyaWRlIGRlZmF1bHQgbGluayBidXR0b24gY29sb3IgKi9cbiAgICAvKiBhcyBpdCBpcyB0aGUgc2FtZSBhcyB0aGUgYmFja2dyb3VuZCBoaWdobGlnaHQgKi9cbiAgICAvKiB1c2VkIG9uIGZvY3VzICovXG4gICAgY29sb3I6ICRsaW5rcyAhaW1wb3J0YW50O1xufVxuXG4ubXhfRGV2VG9vbHNfc3RpY2t5X2V4cGxvcmVyIHtcbiAgICB0YWJsZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgICAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuXG4gICAgICAgIHRoIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aCN1c2VyX2hlYWRlciB7XG4gICAgICAgICAgICB3aWR0aDogMzUlO1xuICAgICAgICB9XG4gICAgICAgIHRoI3N0aWNreV9rZXlfaGVhZGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIH1cbiAgICAgICAgdGgjZXhwaXJlc19pbl9oZWFkZXIge1xuICAgICAgICAgICAgd2lkdGg6IDE1JTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IHZhcigtLWNwZC1ib3JkZXItd2lkdGgtMSkgc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1wcmltYXJ5KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgdHI6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXNlY29uZGFyeS1ob3ZlcmVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tY3BkLWJvcmRlci13aWR0aC0yKSBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWZvY3VzZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGQge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCkgdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRkLnJlbWFpbmluZ190aW1lX2NvbHVtbiB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgKEMpIDIwMjYgTWV0TWV0XG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi8qIFwiSEFQQU5BXCIgKHN0YXkpIGlzIHRoZSBwcm9taW5lbnQsIGRlZmF1bHQgb3B0aW9uOyBcIk5ESVlPXCIgKGxlYXZlKSBzdGF5cyBzbWFsbCBhbmQgb3V0bGluZWQg4oCUXG4gICBhIGRlbGliZXJhdGUgcmV0ZW50aW9uIG51ZGdlLCBtYXRjaGluZyB0aGUgZ3Vlc3Qtb25ib2FyZGluZyBicmFuZCBjb2xvcnMuICovXG4ubXhfRXhpdFJvb21Db25maXJtRGlhbG9nX3N0YXlCdXR0b24ubXhfRGlhbG9nX3ByaW1hcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1ldG1ldC1icmFuZC1wcmltYXJ5KTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLW1ldG1ldC1icmFuZC1wcmltYXJ5KTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6ICRmb250LTE2cHg7XG4gICAgcGFkZGluZzogMTBweCAyNHB4O1xufVxuXG4ubXhfRXhpdFJvb21Db25maXJtRGlhbG9nX2V4aXRCdXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1ldG1ldC1icmFuZC1zZWNvbmRhcnkpO1xuICAgIGNvbG9yOiB2YXIoLS1tZXRtZXQtYnJhbmQtc2Vjb25kYXJ5KTtcbiAgICBmb250LXNpemU6ICRmb250LTEzcHg7XG4gICAgcGFkZGluZzogNHB4IDEycHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQsMjAyNSBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9FeHBvcnREaWFsb2cge1xuICAgIC5teF9FeHBvcnREaWFsb2dfc3ViaGVhZGluZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTZweDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgbWFyZ2luLXRvcDogMThweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICB9XG5cbiAgICAmLm14X0V4cG9ydERpYWxvZ19FeHBvcnRpbmcge1xuICAgICAgICAubXhfRXhwb3J0RGlhbG9nX29wdGlvbnMge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRmllbGRfc2VsZWN0OjpiZWZvcmUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbiBpbnB1dFt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCArIGRpdiA+IGRpdiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkaW5mby1wbGludGgtZmctY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3R5bGVkUmFkaW9CdXR0b24gaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBkaXYge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB1bnNldDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9GaWVsZF92YWxpZC5teF9GaWVsZCBsYWJlbCxcbiAgICAgICAgLm14X0ZpZWxkX3ZhbGlkLm14X0ZpZWxkOmZvY3VzLXdpdGhpbiBsYWJlbCB7XG4gICAgICAgICAgICBjb2xvcjogdW5zZXQ7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRmllbGRfdmFsaWQubXhfRmllbGQsXG4gICAgICAgIC5teF9GaWVsZF92YWxpZC5teF9GaWVsZDpmb2N1cy13aXRoaW4ge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0V4cG9ydERpYWxvZ19wcm9ncmVzcyB7XG4gICAgICAgIC5teF9EaWFsb2dfYnV0dG9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiB1bnNldDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NwaW5uZXIge1xuICAgICAgICAgICAgd2lkdGg6IHVuc2V0O1xuICAgICAgICAgICAgaGVpZ2h0OiB1bnNldDtcbiAgICAgICAgICAgIGZsZXg6IHVuc2V0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAubXhfU3R5bGVkUmFkaW9CdXR0b24gPiAubXhfU3R5bGVkUmFkaW9CdXR0b25fY29udGVudCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIH1cblxuICAgIC5teF9GaWVsZCB7XG4gICAgICAgIHdpZHRoOiAyNTZweDtcbiAgICB9XG5cbiAgICAubXhfRmllbGRfcG9zdGZpeCB7XG4gICAgICAgIHBhZGRpbmc6IDlweCAxMHB4O1xuICAgIH1cbn1cblxuLm14X0V4cG9ydERpYWxvZ19hdHRhY2htZW50cy1jaGVja2JveCB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9GZWVkYmFja0RpYWxvZyB7XG4gICAgaHIge1xuICAgICAgICBtYXJnaW46IDI0cHggMDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuICAgIH1cblxuICAgIC5teF9EaWFsb2dfY29udGVudCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG5cbiAgICAgICAgPiBoMiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0ZlZWRiYWNrRGlhbG9nX3NlY3Rpb24ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmc6IDEycHggNTJweCAxMnB4IDY4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHF1aW5hcnktY29udGVudDtcblxuICAgICAgICAmICsgLm14X0ZlZWRiYWNrRGlhbG9nX3NlY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgICAgfVxuXG4gICAgICAgID4gaDMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xOHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTIycHg7XG4gICAgICAgIH1cblxuICAgICAgICA+IHAge1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICAgICAgbWFyZ2luOiA4cHggMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0ZlZWRiYWNrRGlhbG9nX3NlY3Rpb25fbWljcm9jb3B5IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgYSxcbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgJiA+IHN2ZyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAxNnB4O1xuICAgICAgICAgICAgdG9wOiAxMnB4O1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGljb24tYnV0dG9uLWNvbG9yO1xuICAgICAgICAgICAgY29sb3I6ICRhdmF0YXItaW5pdGlhbC1jb2xvcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9GZWVkYmFja0RpYWxvZ19yYXRlQXBwIHtcbiAgICAgICAgLm14X1N0eWxlZFJhZGlvQnV0dG9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICAgICAgICBmb250LXNpemUgMXMsXG4gICAgICAgICAgICAgICAgYm9yZGVyIDAuNXM7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgZGl2IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfU3R5bGVkUmFkaW9CdXR0b25fY29udGVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGljb24tYnV0dG9uLWNvbG9yO1xuICAgICAgICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDVweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1N0eWxlZFJhZGlvQnV0dG9uX3NwYWNlciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJiArIC5teF9TdHlsZWRSYWRpb0J1dHRvbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3R5bGVkUmFkaW9CdXR0b25fY2hlY2tlZCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tcHJpbWFyeS1yZXN0KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFJvYmluIFRvd25zZW5kIDxyb2JpbkByb2Jpbi50b3duPlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRm9yd2FyZERpYWxvZyB7XG4gICAgd2lkdGg6IDUyMHB4O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIGhlaWdodDogODB2aDtcblxuICAgID4gaDMge1xuICAgICAgICBtYXJnaW46IDAgMCA2cHg7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgIH1cblxuICAgID4gLm14X0ZvcndhcmREaWFsb2dfcHJldmlldyB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDMwJTtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZVtkYXRhLWxheW91dD1cImJ1YmJsZVwiXSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgZGl2IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogV2hlbiBmb3J3YXJkaW5nIG1lc3NhZ2VzIGZyb20gZW5jcnlwdGVkIHJvb21zLCBFdmVudFRpbGUgd2lsbCBjb21wbGFpbiAqL1xuICAgICAgICAvKiB0aGF0IG91ciBwcmV2aWV3IGlzIHVuZW5jcnlwdGVkLCB3aGljaCBkb2Vzbid0IGFjdHVhbGx5IG1hdHRlciAqL1xuICAgICAgICAvKiBXZSBhbHNvIGhpZGUgZG93bmxvYWQgbGlua3MgdG8gbm90IGVuY291cmFnZSB1c2VycyB0byB0cnkgaW50ZXJhY3RpbmcgKi9cbiAgICAgICAgLm14X0V2ZW50VGlsZV9tc2dPcHRpb24sXG4gICAgICAgIC5teF9FdmVudFRpbGVfZTJlSWNvbixcbiAgICAgICAgLm14X01GaWxlQm9keSBbZGF0YS10eXBlPVwiZG93bmxvYWRcIl0ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgID4gaHIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGlucHV0LWJvcmRlci1jb2xvcjtcbiAgICAgICAgbWFyZ2luOiAxMnB4IDA7XG4gICAgfVxuXG4gICAgPiAubXhfRm9yd2FyZExpc3Qge1xuICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAubXhfU2VhcmNoQm94IHtcbiAgICAgICAgICAgIC8qIFRvIG1hdGNoIHRoZSBzcGFjZSBhcm91bmQgdGhlIHRpdGxlICovXG4gICAgICAgICAgICBtYXJnaW46IDAgMCAxNXB4IDA7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG5cbiAgICAgICAgICAgICY6bm90KDpmb2N1cy13aXRoaW4pICsgLm14X0ZvcndhcmRMaXN0X2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIC8qIEluaGliaXQgdGhlIHN0eWxpbmcgaWYgZm9jdXMgaXMgbm90IHdpdGhpbiB0aGUgaW5wdXQgd2hpY2ggaGFuZGxlcyBrZXlib2FyZCBhY2Nlc3NpYmlsaXR5ICovXG4gICAgICAgICAgICAgICAgLS1teF9Gb3J3YXJkTGlzdF9lbnRyeV9zZWxlY3RlZEJnQ29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0ZvcndhcmRMaXN0X2NvbnRlbnQge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0ZvcndhcmRMaXN0X25vUmVzdWx0cyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRm9yd2FyZExpc3RfcmVzdWx0cyB7XG4gICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfRm9yd2FyZExpc3RfcmVzdWx0c0xpc3Qge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0ZvcndhcmRMaXN0X2VudHJ5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogNnB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJi5teF9Gb3J3YXJkTGlzdF9lbnRyeV9hY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1teF9Gb3J3YXJkTGlzdF9lbnRyeV9zZWxlY3RlZEJnQ29sb3IsICRzcGFjZVBhbmVsLWJnLWNvbG9yKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfRm9yd2FyZExpc3Rfcm9vbUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuXG4gICAgICAgICAgICAgICAgICAgIC5teF9EZWNvcmF0ZWRSb29tQXZhdGFyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5teF9Gb3J3YXJkTGlzdF9lbnRyeV9uYW1lLFxuICAgICAgICAgICAgICAgICAgICAubXhfRm9yd2FyZExpc3RfZW50cnlfZGV0YWlsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5teF9Gb3J3YXJkTGlzdF9lbnRyeV9uYW1lIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5teF9Gb3J3YXJkTGlzdF9lbnRyeV9kZXRhaWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9Gb3J3YXJkTGlzdF9zZW5kQnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTJweDtcblxuICAgICAgICAgICAgICAgICAgICAmOm5vdCgubXhfRm9yd2FyZExpc3RfY2FuU2VuZCkgLm14X0ZvcndhcmRMaXN0X3NlbmRMYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvKiBIaWRlIHRoZSBcIlNlbmRcIiBsYWJlbCB3aGlsZSBwcmVzZXJ2aW5nIGJ1dHRvbiBzaXplICovXG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmID4gc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAubXhfRm9yd2FyZERpYWxvZ19ub3RpZmljYXRpb25CYWRnZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvKiBNYXRjaCB0aGUgZmFpbGVkIHRvIHNlbmQgaW5kaWNhdG9yJ3MgY29sb3Igd2l0aCB0aGUgZGlzYWJsZWQgYnV0dG9uICovXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uLWRhbmdlci1kaXNhYmxlZC1mZy1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9HZW5lcmljRmVhdHVyZUZlZWRiYWNrRGlhbG9nIHtcbiAgICAubXhfR2VuZXJpY0ZlYXR1cmVGZWVkYmFja0RpYWxvZ19zdWJoZWFkaW5nIHtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSW5jb21pbmdTYXNEaWFsb2dfb3Bwb25lbnRQcm9maWxlX2ltYWdlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5teF9JbmNvbWluZ1Nhc0RpYWxvZ19vcHBvbmVudFByb2ZpbGUgaDIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5LCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9JbnZpdGVEaWFsb2dfZmxleFdyYXBwZXIgLm14X0RpYWxvZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4ubXhfSW52aXRlRGlhbG9nX3RyYW5zZmVyV3JhcHBlciAubXhfRGlhbG9nIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbn1cblxuLm14X0ludml0ZURpYWxvZ19hZGRyZXNzQmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgLyogUmlnaHQgbWFyZ2luIGZvciB0aGUgZGVzaWduLiBXZSBjb3VsZCBhcHBseSB0aGlzIHRvIHRoZSB3aG9sZSBkaWFsb2csIGJ1dCB0aGVuIHRoZSBzY3JvbGxiYXIgKi9cbiAgICAvKiBmb3IgdGhlIHVzZXIgc2VjdGlvbiBnZXRzIHdlaXJkLiAqL1xuICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTJ4KSA0NXB4IDAgMDtcblxuICAgIC5teF9JbnZpdGVEaWFsb2dfZWRpdG9yIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0wLTV4KTtcbiAgICB9XG5cbiAgICAubXhfSW52aXRlRGlhbG9nX2dvQnV0dG9uIHtcbiAgICAgICAgbWluLXdpZHRoOiA4NnB4O1xuICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAxMHB4O1xuICAgICAgICBoZWlnaHQ6IDQxcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNXB4O1xuICAgIH1cbn1cblxuLm14X0ludml0ZURpYWxvZ19zZWN0aW9uIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTF4KTtcblxuICAgIC5teF9JbnZpdGVEaWFsb2dfc2VjdGlvbl9zaG93TW9yZSB7XG4gICAgICAgIG1hcmdpbjogN3B4IDE4cHg7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbn1cblxuLm14X0ludml0ZURpYWxvZ19zZWN0aW9uX2hpZGRlbl9zdWdnZXN0aW9uc19kaXNjbGFpbWVyIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpIDAgdmFyKC0tY3BkLXNwYWNlLTR4KSAwO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG5cbiAgICA+IHNwYW4ge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgfVxuXG4gICAgPiBwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cblxuLm14X0ludml0ZURpYWxvZ19mb290ZXIge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuXG4gICAgPiBoMyB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTN4KSAwO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgIC5teF9Db3B5YWJsZVRleHQubXhfQ29weWFibGVUZXh0X2JvcmRlciB7XG4gICAgICAgIHdpZHRoOiB1bnNldDsgLyogZnVsbCB3aWR0aCAqL1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgID4gYSB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0ludml0ZURpYWxvZ19vdGhlciB7XG4gICAgLyogUHJldmVudCB0aGUgZGlhbG9nIGZyb20ganVtcGluZyBhcm91bmQgcmFuZG9tbHkgd2hlbiBlbGVtZW50cyBjaGFuZ2UuICovXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGhlaWdodDogNjAwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIGgyIHtcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgIC5teF9JbnZpdGVEaWFsb2dfYWRkcmVzc0JhciB7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAwO1xuICAgIH1cblxuICAgIC5teF9JbnZpdGVEaWFsb2dfdXNlclNlY3Rpb25zIHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcblxuICAgICAgICAubXhfSW52aXRlRGlhbG9nX3NlY3Rpb24ge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9JbnZpdGVEaWFsb2dfY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLm14X0ludml0ZVByb2dyZXNzQm9keSB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0xMngpO1xuICAgIH1cbn1cblxuLm14X0ludml0ZURpYWxvZ190cmFuc2ZlciB7XG4gICAgd2lkdGg6IGF1dG87XG5cbiAgICAubXhfSW52aXRlRGlhbG9nX2NvbnRlbnQge1xuICAgICAgICB3aWR0aDogNDk2cHg7XG4gICAgICAgIGhlaWdodDogNDMwcHg7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuXG4gICAgICAgIC5teF9UYWJiZWRWaWV3IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDE7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xuXG4gICAgICAgICAgICAubXhfVGFiYmVkVmlld190YWJQYW5lbCB7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAgICAgICAgIC5teF9UYWJiZWRWaWV3X3RhYlBhbmVsQ29udGVudCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0ludml0ZURpYWxvZ19hZGRyZXNzQmFyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICB9XG59XG5cbi5teF9JbnZpdGVEaWFsb2dfdXNlclNlY3Rpb25zIHtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHBhZGRpbmc6IDAgNDVweCB2YXIoLS1jcGQtc3BhY2UtMXgpIDA7XG59XG5cbi5teF9JbnZpdGVEaWFsb2dfaGVscFRleHQge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLm14X0ludml0ZURpYWxvZ19kaWFsUGFkIHtcbiAgICB3aWR0aDogMjI0cHg7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICBtYXJnaW4taW5saW5lOiBhdXRvO1xuXG4gICAgLm14X0ludml0ZURpYWxvZ19kaWFsUGFkRmllbGQge1xuICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgICBib3JkZXItaW5saW5lOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBib3JkZXItY29sb3I6ICRxdWF0ZXJuYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgJjpmb2N1cy13aXRoaW4ge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYWNjZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9GaWVsZF9wb3N0Zml4IHtcbiAgICAgICAgICAgIC8qIFJlbW92ZSBib3JkZXIgc2VwYXJhdG9yIGJldHdlZW4gcG9zdGZpeCBhbmQgZmllbGQgY29udGVudCAqL1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRGlhbFBhZCB7XG4gICAgICAgIHJvdy1nYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIGNvbHVtbi1nYXA6IDQ4cHg7XG4gICAgICAgIG1hcmdpbi1pbmxpbmU6IGF1dG87XG4gICAgfVxufVxuXG4ubXhfSW52aXRlRGlhbG9nX3RyYW5zZmVyQ29uc3VsdENvbm5lY3Qge1xuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIC8qIFRoaXMgd2FudHMgYSBkcm9wIHNoYWRvdyB0aGUgZnVsbCB3aWR0aCBvZiB0aGUgZGlhbG9nLCBzbyB1c2UgbmVnYXRpdmUgbWFyZ2luIHRvIG1ha2UgaXQgZnVsbCB3aWR0aCxcbiAgICAgKiB0aGVuIGNvbXBlbnNhdGUgd2l0aCBwYWRkaW5nXG4gICAgICovXG4gICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgbWFyZ2luLWlubGluZTogY2FsYygtMSAqIHZhcigtLWNwZC1zcGFjZS02eCkpO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkcXVpbmFyeS1jb250ZW50O1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5teF9JbnZpdGVEaWFsb2dfdHJhbnNmZXJDb25zdWx0Q29ubmVjdF9wdXNoUmlnaHQge1xuICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG59XG5cbi5teF9JbnZpdGVEaWFsb2dfdGlsZSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICYubXhfSW52aXRlRGlhbG9nX3RpbGUtLWludml0ZXJFcnJvciB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWF4LWNvbnRlbnQgYXV0bzsgLyogbWF4LWNvbnRlbnQgPSBhdmF0YXIgd2lkdGggKi9cbiAgICB9XG5cbiAgICAqIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAubXhfSW52aXRlRGlhbG9nX3RpbGVfYXZhdGFyU3RhY2sge1xuICAgICAgICB3aWR0aDogMzZweDtcbiAgICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZ3JpZC1yb3ctc3RhcnQ6IDE7XG4gICAgICAgIGdyaWQtY29sdW1uLXN0YXJ0OiAxO1xuXG4gICAgICAgICYgPiAqIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfSW52aXRlRGlhbG9nX3RpbGVfbmFtZVN0YWNrIHtcbiAgICAgICAgZ3JpZC1yb3ctc3RhcnQ6IDE7XG4gICAgICAgIGdyaWQtY29sdW1uLXN0YXJ0OiAyO1xuXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uO1xuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICAgICAgZ2FwOiAycHggMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAubXhfSW52aXRlRGlhbG9nX3RpbGVfbmFtZVN0YWNrX25hbWUsXG4gICAgICAgIC5teF9JbnZpdGVEaWFsb2dfdGlsZV9uYW1lU3RhY2tfdXNlcklkIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfSW52aXRlRGlhbG9nX3RpbGVfbmFtZVN0YWNrX25hbWUge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9JbnZpdGVEaWFsb2dfdGlsZV9uYW1lU3RhY2tfdXNlcklkIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9JbnZpdGVEaWFsb2dfbXVsdGlJbnZpdGVyRXJyb3JXcmFwcGVyIC5teF9EaWFsb2cge1xuICAgIHdpZHRoOiA2MDBweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAubXhfRGlhbG9nX2ZpeGVkV2lkdGgge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG59XG5cbi5teF9JbnZpdGVEaWFsb2dfbXVsdGlJbnZpdGVyRXJyb3Ige1xuICAgID4gaDQge1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICB9XG5cbiAgICAubXhfSW52aXRlRGlhbG9nX211bHRpSW52aXRlckVycm9yX2dyb3VwIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0ludml0ZURpYWxvZ19tdWx0aUludml0ZXJFcnJvcl9yZWFzb24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tY3BkLWZvbnQtc2l6ZS1ib2R5LW1kKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LWNyaXRpY2FsLXByaW1hcnkpO1xuICAgIH1cbn1cblxuLm14X0ludml0ZURpYWxvZ19pZGVudGl0eVNlcnZlciB7XG4gICAgbWFyZ2luLXRvcDogMWVtO1xufVxuXG4ubXhfSW52aXRlRGlhbG9nX29uZVRocmVlcGlkIHtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMngpIDA7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjUgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9JbnZpdGVQcm9ncmVzc0JvZHkge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LWxnLXJlZ3VsYXIpO1xuXG4gICAgaDEge1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtcHJpbWFyeSk7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWhlYWRpbmctc20tc2VtaWJvbGQpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Kb2luUnVsZURyb3Bkb3duIHtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcblxuICAgIC5teF9Ecm9wZG93bl9vcHRpb24ge1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMzJweDtcbiAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICBtaW4taGVpZ2h0OiAzMnB4O1xuXG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tY3BkLXNwYWNlLTEtNXgpO1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiAtMnB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTEtNXgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLm14X0pvaW5SdWxlRHJvcGRvd25fa25vY2s6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0pvaW5SdWxlRHJvcGRvd25faWNvbiB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogNnB4O1xuICAgICAgICB0b3A6IDhweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTGVhdmVTcGFjZURpYWxvZ193cmFwcGVyIHtcbiAgICAubXhfRGlhbG9nIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgcGFkZGluZzogMjRweCAzMnB4O1xuXG4gICAgICAgIC5teF9MZWF2ZVNwYWNlRGlhbG9nIHtcbiAgICAgICAgICAgIHdpZHRoOiA0NDBweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgICAgICBoZWlnaHQ6IDUyMHB4O1xuXG4gICAgICAgICAgICAubXhfRGlhbG9nX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgICAgICAgICAgICAgIC5teF9MZWF2ZVNwYWNlRGlhbG9nX3NlY3Rpb25fd2FybmluZyB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAxMnB4IDAgMDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTJweCA4cHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItcGFuZWwtYmctY29sb3I7XG5cbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcblxuICAgICAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPiBwIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xvY2F0aW9uVmlld0RpYWxvZ193cmFwcGVyIC5teF9EaWFsb2cge1xuICAgIHBhZGRpbmc6IDBweDtcbn1cblxuLm14X0xvY2F0aW9uVmlld0RpYWxvZyB7XG4gICAgLyogc3VidHJhY3QgMC41cHggdG8gcHJldmVudCBzaW5nbGUtcGl4ZWwgbWFyZ2luIGR1ZSB0byByb3VuZGluZyAqL1xuICAgIHdpZHRoOiBjYWxjKDgwdncgLSAwLjVweCk7XG4gICAgaGVpZ2h0OiBjYWxjKDgwdmggLSAwLjVweCk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIC5teF9EaWFsb2dfaGVhZGVyIHtcbiAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgcG9zaXRpb246IHVuc2V0O1xuXG4gICAgICAgIC5teF9EaWFsb2dfdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9EaWFsb2dfY2FuY2VsQnV0dG9uIHtcbiAgICAgICAgei1pbmRleDogNDAxMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICB0b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgfVxufVxuXG4ubXhfTG9jYXRpb25WaWV3RGlhbG9nX21hcCB7XG4gICAgd2lkdGg6IDgwdnc7XG4gICAgaGVpZ2h0OiA4MHZoO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIE1hbmFuIFNhZGFuYSA8bWFuYW5jb2Rlcy5kZXZAZ21haWwuY29tPlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTG9nb3V0RGlhbG9nIHtcbiAgICB3aWR0aDogMjZyZW07XG5cbiAgICAubXhfRW5jcnlwdGlvbkNhcmQge1xuICAgICAgICBnYXA6IDA7XG4gICAgICAgIGgyIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICAgICAgfVxuICAgICAgICAubXhfRW5jcnlwdGlvbkNhcmRfZW1waGFzaXNlZENvbnRlbnQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0xMngpO1xuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0LDIwMjUgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTWFuYWdlUmVzdHJpY3RlZEpvaW5SdWxlRGlhbG9nX3dyYXBwZXIge1xuICAgIC5teF9EaWFsb2cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbn1cblxuLm14X01hbmFnZVJlc3RyaWN0ZWRKb2luUnVsZURpYWxvZyB7XG4gICAgd2lkdGg6IDQ4MHB4O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIGhlaWdodDogNjB2aDtcblxuICAgIC5teF9TZWFyY2hCb3gge1xuICAgICAgICAvKiBUbyBtYXRjaCB0aGUgc3BhY2UgYXJvdW5kIHRoZSB0aXRsZSAqL1xuICAgICAgICBtYXJnaW46IDAgMCAxNXB4IDA7XG4gICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICB9XG5cbiAgICAubXhfTWFuYWdlUmVzdHJpY3RlZEpvaW5SdWxlRGlhbG9nX2NvbnRlbnQge1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgfVxuXG4gICAgLm14X01hbmFnZVJlc3RyaWN0ZWRKb2luUnVsZURpYWxvZ19ub1Jlc3VsdHMge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICB9XG5cbiAgICAubXhfTWFuYWdlUmVzdHJpY3RlZEpvaW5SdWxlRGlhbG9nX3NlY3Rpb24ge1xuICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgICAgIH1cblxuICAgICAgICA+IGgzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X01hbmFnZVJlc3RyaWN0ZWRKb2luUnVsZURpYWxvZ19lbnRyeSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTJweDtcblxuICAgICAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X01hbmFnZVJlc3RyaWN0ZWRKb2luUnVsZURpYWxvZ19lbnRyeV9uYW1lIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgOHB4O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfTWFuYWdlUmVzdHJpY3RlZEpvaW5SdWxlRGlhbG9nX2VudHJ5X2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9NYW5hZ2VSZXN0cmljdGVkSm9pblJ1bGVEaWFsb2dfc2VjdGlvbl9zcGFjZXMge1xuICAgICAgICAubXhfQmFzZUF2YXRhciB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTWFuYWdlUmVzdHJpY3RlZEpvaW5SdWxlRGlhbG9nX3NlY3Rpb25faW5mbyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBtYXJnaW46IDEycHggMDtcbiAgICAgICAgcGFkZGluZzogOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGVyLXBhbmVsLWJnLWNvbG9yO1xuXG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBtYXJnaW46IDAgdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9NYW5hZ2VSZXN0cmljdGVkSm9pblJ1bGVEaWFsb2dfZm9vdGVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcblxuICAgICAgICAubXhfTWFuYWdlUmVzdHJpY3RlZEpvaW5SdWxlRGlhbG9nX2Zvb3Rlcl9idXR0b25zIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAgICAgICAgICYgKyAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAyNHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NZXNzYWdlRWRpdEhpc3RvcnlEaWFsb2cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXgtaGVpZ2h0OiA2MHZoO1xufVxuXG4ubXhfTWVzc2FnZUVkaXRIaXN0b3J5RGlhbG9nX3Njcm9sbFBhbmVsIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbn1cblxuLm14X01lc3NhZ2VFZGl0SGlzdG9yeURpYWxvZ19lcnJvciB7XG4gICAgY29sb3I6ICRhbGVydDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5teF9NZXNzYWdlRWRpdEhpc3RvcnlEaWFsb2dfZWRpdHMge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG5cbiAgICAubXhfRWRpdEhpc3RvcnlNZXNzYWdlX2Vtb3RlU2VuZGVyIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIHNwYW4ubXhfRWRpdEhpc3RvcnlNZXNzYWdlX2RlbGV0aW9uLFxuICAgIHNwYW4ubXhfRWRpdEhpc3RvcnlNZXNzYWdlX2luc2VydGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDBweCAycHg7XG4gICAgfVxuXG4gICAgLm14X0VkaXRIaXN0b3J5TWVzc2FnZV9kZWxldGlvbiB7XG4gICAgICAgIGNvbG9yOiByZ2IoMjU1LCA3NiwgODUpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCA3NiwgODUsIDAuMSk7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgIH1cblxuICAgIC5teF9FZGl0SGlzdG9yeU1lc3NhZ2VfaW5zZXJ0aW9uIHtcbiAgICAgICAgY29sb3I6IHJnYigyNiwgMTY5LCAxMjMpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjYsIDE2OSwgMTIzLCAwLjEpO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG5cbiAgICAvKiBFbXVsYXRlIG14X0V2ZW50VGlsZVtkYXRhLWxheW91dD1cImdyb3VwXCJdICovXG4gICAgLm14X0V2ZW50VGlsZSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuXG4gICAgICAgIC5teF9NZXNzYWdlVGltZXN0YW1wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLUV2ZW50VGlsZV9ncm91cF9saW5lLXNwYWNpbmctYmxvY2stc3RhcnQpO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLUV2ZW50VGlsZV9ncm91cF9saW5lLXNwYWNpbmctYmxvY2stZW5kKTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tRXZlbnRUaWxlX2dyb3VwX2xpbmUtc3BhY2luZy1pbmxpbmUtc3RhcnQpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLUV2ZW50VGlsZV9ncm91cF9saW5lLWxpbmUtaGVpZ2h0KTtcblxuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9jb250ZW50IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogLTFweDtcbiAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgIGxlZnQ6IC0xMHB4O1xuICAgICAgICAgICAgcmlnaHQ6IC0xMHB4O1xuICAgICAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGV2ZW50YnViYmxlLWJnLWhvdmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0hpc3RvcnlBY3Rpb25CYXIge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLm14X0hpc3RvcnlBY3Rpb25CYXIgW2RhdGEtcHJlc2VudGF0aW9uPVwibGFiZWxcIl0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMjRweCAhaW1wb3J0YW50O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Nb2RhbFdpZGdldERpYWxvZyB7XG4gICAgLm14X01vZGFsV2lkZ2V0RGlhbG9nX3dhcm5pbmcge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuXG4gICAgICAgID4gaW1nIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Nb2RhbFdpZGdldERpYWxvZ19idXR0b25zIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uICsgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmcmFtZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDQ1MHB4O1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUG9sbENyZWF0ZURpYWxvZyB7XG4gICAgLm14X1BvbGxDcmVhdGVEaWFsb2dfYnVzeSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvdmVybGF5LWJhY2tncm91bmQ7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuXG4gICAgaDIge1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuXG4gICAgICAgICY6bnRoLWNoaWxkKG4gKyAyKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X1BvbGxDcmVhdGVEaWFsb2dfb3B0aW9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLXRvcDogMTFweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsgLyogMTFweCBmcm9tIHRoZSB0b3Agd2lsbCBjb2xsYXBzZSwgc28gdGhpcyBjcmVhdGVzIGEgMTZweCBnYXAgYmV0d2VlbiBvcHRpb25zICovXG5cbiAgICAgICAgLm14X0ZpZWxkIHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUG9sbENyZWF0ZURpYWxvZ19yZW1vdmVPcHRpb24ge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0wLTV4KTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUG9sbENyZWF0ZURpYWxvZ19hZGRPcHRpb24ge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4OyAvKiBhcmJpdHJhcnkgdG8gY3JlYXRlIHNjcm9sbGFibGUgYXJlYSB1bmRlciB0aGUgcG9sbCAqL1xuICAgIH1cblxuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2Rpc2FibGVkIHtcbiAgICAgICAgb3BhY2l0eTogMC40O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9SZWdpc3RyYXRpb25FbWFpbFByb21wdERpYWxvZyB7XG4gICAgd2lkdGg6IDQxN3B4O1xuXG4gICAgLm14X0RpYWxvZ19jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgIH1cblxuICAgIC5teF9EaWFsb2dfcHJpbWFyeSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNiBFbGVtZW50IENyZWF0aW9ucyBMdGQuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG4gKiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuICovXG5cbi5teF9SZW1vdmVTZWN0aW9uRGlhbG9nIHtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtcHJpbWFyeSk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjUgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9SZXBvcnRSb29tRGlhbG9nLFxuLm14X0RlY2xpbmVBbmRCbG9ja0ludml0ZURpYWxvZyB7XG4gICAgdGV4dGFyZWEge1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXByaW1hcnkpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0zeCkgdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICB9XG5cbiAgICAvKlxuICAgICAgV29ya2Fyb3VuZCB0byBmaXggbGFiZWxzIGFwcGVhcmluZyB3aXRoIHRoZSB3cm9uZyBjb2xvci5cblxuICAgICAgLm14X0RpYWxvZyAoaW4gcmVzL2Nzcy9fY29tbW9uLnBjc3MpIHJlZGVmaW5lcyB0aGUgYm9keSBjb2xvclxuICAgICAgYXMgJGxpZ2h0LWZnLWNvbG9yIHJhdGhlciB0aGFuIHRoZSBzdGFuZGFyZCBwcmltYXJ5IGNvbG9yLlxuXG4gICAgICBUaGlzIGZvcmNlcyB0aGUgY29sb3VyIHRvIG1hdGNoIHRoZSBDb21wb3VuZCBzdHlsZSwgYnV0XG4gICAgICBpbiB0aGUgZnV0dXJlIHRoZSBEaWFsb2dzIHNob3VsZCBub3QgZm9yY2UgYSBjb2xvci5cbiAgICAqL1xuICAgIGZvcm0gbGFiZWwge1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtcHJpbWFyeSk7XG4gICAgfVxufVxuXG4ubXhfRGVjbGluZUFuZEJsb2NrSW52aXRlRGlhbG9nIHtcbiAgICBkaXZbYXJpYS1kaXNhYmxlZD1cInRydWVcIl0gPiBsYWJlbCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc0ZsYWdfbGFiZWwge1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtcHJpbWFyeSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbVNldHRpbmdzRGlhbG9nIC5teF9EaWFsb2dfdGl0bGUge1xuICAgIC1tcy10ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZy1yaWdodDogODBweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Sb29tU2V0dGluZ3NEaWFsb2dfQnJpZGdlTGlzdCB7XG4gICAgcGFkZGluZzogMDtcblxuICAgIGxpIHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuXG4gICAgICAgICYubXhfUm9vbVNldHRpbmdzRGlhbG9nX0JyaWRnZUxpc3RfbGlzdEl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAgICAgICAgIC8qIGJvcmRlci1zdHlsZSBhcm91bmQgZWFjaCBicmlkZ2UgbGlzdCBpdGVtICovXG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IDFweCAxcHg7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRwcmltYXJ5LWhhaXJsaW5lLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcblxuICAgICAgICAgICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19jb2x1bW5faWNvbiB7XG4gICAgICAgICAgICAgICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19wcm90b2NvbEljb24sXG4gICAgICAgICAgICAgICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19wcm90b2NvbEljb24gc3BhbixcbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX25vUHJvdG9jb2xJY29uIHtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkaW5wdXQtZGFya2VyLWJnLWNvbG9yO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2dfbm9Qcm90b2NvbEljb24sXG4gICAgICAgICAgICAgICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19wcm90b2NvbEljb24gaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2dfbm9Qcm90b2NvbEljb24ge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNDhweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkaW5wdXQtZGFya2VyLWJnLWNvbG9yO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2dfcHJvdG9jb2xJY29uIHtcbiAgICAgICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci13aWR0aDogMXB4IDFweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHByaW1hcnktaGFpcmxpbmUtY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvcnJlY3QgbGV0dGVyIHBsYWNlbWVudCAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19jb2x1bW5fZGF0YSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiA4NSU7XG5cbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX2NvbHVtbl9kYXRhX2RldGFpbHMsXG4gICAgICAgICAgICAgICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19jb2x1bW5fZGF0YV9tZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX2NvbHVtbl9kYXRhX21ldGFkYXRhIGxpLFxuICAgICAgICAgICAgICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2dfY29sdW1uX2RhdGFfcHJvdG9jb2xOYW1lIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX2NvbHVtbl9kYXRhX2RldGFpbHMsXG4gICAgICAgICAgICAgICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19jb2x1bW5fZGF0YV9tZXRhZGF0YSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19jb2x1bW5fZGF0YV9tZXRhZGF0YSBsaSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19jb2x1bW5fZGF0YV9wcm90b2NvbE5hbWUge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2dfd29ya3NwYWNlX2NoYW5uZWxfZGV0YWlscyB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcblxuICAgICAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX2NoYW5uZWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogNXB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19tZXRhZGF0YSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOC0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbVVwZ3JhZGVEaWFsb2cge1xuICAgIHBhZGRpbmctcmlnaHQ6IDcwcHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOS0yMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Sb29tVXBncmFkZVdhcm5pbmdEaWFsb2cge1xuICAgIG1heC13aWR0aDogMzh2dztcbiAgICB3aWR0aDogMzh2dztcblxuICAgIC5teF9Sb29tVXBncmFkZVdhcm5pbmdEaWFsb2dfcHJvZ3Jlc3Mge1xuICAgICAgICAubXhfUHJvZ3Jlc3NCYXIge1xuICAgICAgICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgQG1peGluIFByb2dyZXNzQmFyQm9yZGVyUmFkaXVzIDhweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9Sb29tVXBncmFkZVdhcm5pbmdEaWFsb2dfcHJvZ3Jlc3NUZXh0IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9Sb29tVXBncmFkZVdhcm5pbmdEaWFsb2cgLm14X1NldHRpbmdzRmxhZyB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcblxuICAgIC5teF9Ub2dnbGVTd2l0Y2gge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG5cbiAgICAubXhfU2V0dGluZ3NGbGFnX2xhYmVsIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXJ2ZXJPZmZsaW5lRGlhbG9nIHtcbiAgICAubXhfU2VydmVyT2ZmbGluZURpYWxvZ19jb250ZW50IHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogODVweDtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgaHIge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgb3BhY2l0eTogMC4xO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDE2cHg7XG5cbiAgICAgICAgICAgIGxpOm50aC1jaGlsZChuICsgMikge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU2VydmVyT2ZmbGluZURpYWxvZ19jb250ZW50X2NvbnRleHQge1xuICAgICAgICAgICAgLm14X1NlcnZlck9mZmxpbmVEaWFsb2dfY29udGVudF9jb250ZXh0X3RpbWVzdGFtcCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMTVweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJG11dGVkLWZnLWNvbG9yO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4OyAvKiBzYW1lIGFzIGF2YXRhciAqL1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9TZXJ2ZXJPZmZsaW5lRGlhbG9nX2NvbnRlbnRfY29udGV4dF90aW1lbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNTVweCk7IC8qIDExNXB4IHRpbWVzdGFtcCB3aWR0aCArIDQwcHggcmlnaHQgbWFyZ2luICovXG5cbiAgICAgICAgICAgICAgICAubXhfU2VydmVyT2ZmbGluZURpYWxvZ19jb250ZW50X2NvbnRleHRfdGltZWxpbmVfaGVhZGVyIHtcbiAgICAgICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9TZXJ2ZXJPZmZsaW5lRGlhbG9nX2NvbnRlbnRfY29udGV4dF90eG4ge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDtcblxuICAgICAgICAgICAgICAgICAgICAubXhfU2VydmVyT2ZmbGluZURpYWxvZ19jb250ZW50X2NvbnRleHRfdHhuX2Rlc2Mge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEwMHB4KTsgLyogMTAwcHggaXMgYW4gYXJiaXRyYXJ5IG1hcmdpbiBmb3IgdGhlIGJ1dHRvbiAqL1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NlcnZlclBpY2tlckRpYWxvZyB7XG4gICAgd2lkdGg6IDQ2OHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAubXhfRGlhbG9nX2NvbnRlbnQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgID4gcCB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcblxuICAgICAgICAgICAgbWFyZ2luOiAxNnB4IDA7XG5cbiAgICAgICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAyNHB4IDI0cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICA+IGgyIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIG1hcmdpbjogMTZweCAwIDE2cHggOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgPiBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TZXJ2ZXJQaWNrZXJEaWFsb2dfb3RoZXJIb21lc2VydmVyUmFkaW8ge1xuICAgICAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBkaXYge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU2VydmVyUGlja2VyRGlhbG9nX290aGVySG9tZXNlcnZlciB7XG4gICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHVuc2V0O1xuXG4gICAgICAgID4gaW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgPiBsYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfcHJpbWFyeSB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAyNnB4KTtcbiAgICAgICAgbWFyZ2luOiAwIDhweDtcbiAgICAgICAgcGFkZGluZzogMTVweCAxOHB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE3IFZlY3RvciBDcmVhdGlvbnMgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXRFbWFpbERpYWxvZ19lbWFpbF9pbnB1dCB7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRpbnB1dC1ib3JkZXItY29sb3I7XG4gICAgcGFkZGluZzogOXB4O1xuICAgIGNvbG9yOiAkaW5wdXQtZmctY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMjgwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLm14X1NldEVtYWlsRGlhbG9nX2VtYWlsX2lucHV0OmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGFjY2VudDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKiBOb3QgYWN0dWFsbHkgYSBjb21wb25lbnQgYnV0IHRoaW5ncyBzaGFyZWQgYnkgc2V0dGluZ3MgY29tcG9uZW50cyAqL1xuLm14X1VzZXJTZXR0aW5nc0RpYWxvZyxcbi5teF9Sb29tU2V0dGluZ3NEaWFsb2csXG4ubXhfU3BhY2VTZXR0aW5nc0RpYWxvZyxcbi5teF9TcGFjZVByZWZlcmVuY2VzRGlhbG9nIHtcbiAgICB3aWR0aDogOTB2dztcbiAgICBtYXgtd2lkdGg6IDk4MHB4O1xuICAgIC8qIHNldCB0aGUgaGVpZ2h0IHRvbyBzaW5jZSB0YWJiZWQgdmlldyBzY3JvbGxzIGl0c2VsZi4gKi9cbiAgICBoZWlnaHQ6IDgwdmg7XG5cbiAgICAubXhfVGFiYmVkVmlldyB7XG4gICAgICAgIHRvcDogOTBweDtcbiAgICB9XG5cbiAgICAubXhfVGFiYmVkVmlldyAubXhfU2V0dGluZ3NUYWIge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBtaW4td2lkdGg6IDU4MHB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMDBweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAvKiBQdXQgc29tZSBwYWRkaW5nIG9uIHRoZSBib3R0b20gdG8gYXZvaWQgdGhlIHNldHRpbmdzIHRhYiBmcm9tICovXG4gICAgICAgIC8qIGNvbGxpZGluZyBoYXJzaGx5IHdpdGggdGhlIGRpYWxvZyB3aGVuIHNjcm9sbGVkIGRvd24uICovXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxMDBweDtcbiAgICB9XG5cbiAgICAubXhfU2V0dGluZ3NEaWFsb2dfdGFiTGFiZWxzQWxlcnQ6OmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB3aWR0aDogOHB4O1xuICAgICAgICBoZWlnaHQ6IDhweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tY3JpdGljYWwtcHJpbWFyeSk7XG4gICAgICAgIGNsaXAtcGF0aDogY2lyY2xlKDRweCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgfVxufVxuXG4vKiBPbiBuYXJyb3cgdmlld3BvcnRzLCB0aGUgdGFiIGxhYmVscyBhcmUgaGlkZGVuLCBzbyB3ZSBuZWVkIHRvIHNoaWZ0IHRoZSBpbmRpY2F0b3Igc28gaXQgaXNuJ3Qgb3ZlciB0aGUgdGFiIGljb24uICovXG5AbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgLm14X1VzZXJTZXR0aW5nc0RpYWxvZyxcbiAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nLFxuICAgIC5teF9TcGFjZVNldHRpbmdzRGlhbG9nLFxuICAgIC5teF9TcGFjZVByZWZlcmVuY2VzRGlhbG9nIHtcbiAgICAgICAgLm14X1NldHRpbmdzRGlhbG9nX3RhYkxhYmVsc0FsZXJ0OjphZnRlciB7XG4gICAgICAgICAgICByaWdodDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgIHRvcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOC0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2hhcmVEaWFsb2cge1xuICAgIC8qIFZhbHVlIGZyb20gZmlnbWEgZGVzaWduICovXG4gICAgd2lkdGg6IDQxNnB4O1xuXG4gICAgLm14X0RpYWxvZ19oZWFkZXIge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgICAgIC8qIE92ZXJyaWRlIGRpYWxvZyBoZWFkZXIgcGFkZGluZyB0byBhYmxlIHRvIGNlbnRlciBpdCAqL1xuICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDA7XG4gICAgfVxuXG4gICAgLm14X1NoYXJlRGlhbG9nX2NvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgLm14X1NoYXJlRGlhbG9nX3RvcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tc2VtaWJvbGQpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1tZWRpdW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NoYXJlRGlhbG9nX3NvY2lhbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA0OHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogNDhweDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA5OXB4O1xuICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2xhc2hDb21tYW5kSGVscERpYWxvZyAubXhfU2xhc2hDb21tYW5kSGVscERpYWxvZ19oZWFkZXJSb3cgaDIge1xuICAgIG1hcmdpbi1ib3R0b206IDJweDtcbn1cblxuLm14X1NsYXNoQ29tbWFuZEhlbHBEaWFsb2cgLm14X0RpYWxvZ19jb250ZW50IHtcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDM0cHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU3BhY2VQcmVmZXJlbmNlc0RpYWxvZyB7XG4gICAgd2lkdGg6IDcwMHB4O1xuICAgIGhlaWdodDogNDAwcHg7XG5cbiAgICA+IGg0IHtcbiAgICAgICAgbWFyZ2luOiAtMTJweCAwIDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X1RhYmJlZFZpZXcge1xuICAgICAgICB0b3A6IDgwcHg7XG5cbiAgICAgICAgLm14X1NldHRpbmdzVGFiIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogdW5zZXQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU3BhY2VTZXR0aW5nc0RpYWxvZyB7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG5cbiAgICAubXhfU3BhY2VTZXR0aW5nc19lcnJvclRleHQge1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgY29sb3I6ICRhbGVydDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjhweDtcbiAgICB9XG5cbiAgICAubXhfVG9nZ2xlU3dpdGNoIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBtYXJnaW4tbGVmdDogMTZweDtcbiAgICB9XG5cbiAgICAubXhfU2V0dGluZ3NUYWJfc2VjdGlvbiB7XG4gICAgICAgIC5teF9TZXR0aW5nc1RhYl9zZWN0aW9uX2NhcHRpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3R5bGVkUmFkaW9CdXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuXG4gICAgICAgICAgICAubXhfU3R5bGVkUmFkaW9CdXR0b25fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE4cHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYgKyBzcGFuIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE4cHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMjZweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TcGFjZVNldHRpbmdzRGlhbG9nX2J1dHRvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXJnaW4tdG9wOiA2NHB4O1xuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGluayB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2hhc0tpbmQge1xuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rIHtcbiAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgbWFyZ2luOiA3cHggMThweDtcblxuICAgICAgICAgICAgJi5teF9TZXR0aW5nc1RhYl9zaG93QWR2YW5jZWQge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMThweCAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Nwb3RsaWdodERpYWxvZ193cmFwcGVyIHtcbiAgICAubXhfRGlhbG9nX2JvcmRlciB7XG4gICAgICAgIC8qIERpc2FibGUgdGhlIGdsYXNzIGJvcmRlciBhcyB0aGlzIGRpYWxvZyB3YXNuJ3QgZGVzaWduZWQgd2l0aCBpdCBpbiBtaW5kICovXG4gICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgIH1cblxuICAgIC5teF9EaWFsb2cge1xuICAgICAgICAvKiAhaW1wb3J0YW50IGJlY2F1c2UgaXQncyBvdmVycmlkaW5nIGNvbXBvdW5kICAqL1xuICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogNjAlICFpbXBvcnRhbnQ7XG4gICAgICAgIG92ZXJmbG93LXk6IGluaXRpYWw7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgY29udGFpbjogdW5zZXQ7IC8qIG5lZWRlZCBmb3IgI214X1Nwb3RsaWdodERpYWxvZ19rZXlib2FyZFByb21wdCB0byBub3QgYmUgY3VsbGVkICovXG5cbiAgICAgICAgI214X1Nwb3RsaWdodERpYWxvZ19rZXlib2FyZFByb21wdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICAgICAgICB0b3A6IC02MHB4OyAvKiByZWxhdGl2ZSB0byB0aGUgdG9wIG9mIHRoZSBtb2RhbCAqL1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgICAgICAgICBrYmQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAycHggdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF1aW5hcnktY29udGVudDtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICAvKiBUbyBhdm9pZCBhbnkgc3R5bGluZyBpbmhlcmVudCB3aXRoIDxrYmQ+IGVsZW1lbnRzICovXG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfU3BvdGxpZ2h0RGlhbG9nIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgLm14X0RpYWxvZ19oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5teF9TcG90bGlnaHREaWFsb2dfc2VhcmNoQm94IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweCA4cHggMCAwO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtM3gpIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc3lzdGVtO1xuXG4gICAgICAgID4gLm14X1Nwb3RsaWdodERpYWxvZ19maWx0ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KSB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS0xeCkgMzdweDtcblxuICAgICAgICAgICAgPiBzdmcge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19maWx0ZXItLWNsb3NlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc3lzdGVtO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcblxuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgPiBpbnB1dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgfVxuXG4gICAgICAgID4gLm14X1NwaW5uZXIge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgd2lkdGg6IHVuc2V0O1xuICAgICAgICAgICAgaGVpZ2h0OiB1bnNldDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoOmZvY3VzLXdpdGhpbikgKyAjbXhfU3BvdGxpZ2h0RGlhbG9nX2NvbnRlbnQge1xuICAgICAgICAgICAgLyogSW5oaWJpdCB0aGUgc3R5bGluZyBpZiBmb2N1cyBpcyBub3Qgd2l0aGluIHRoZSBpbnB1dCB3aGljaCBoYW5kbGVzIGtleWJvYXJkIGFjY2Vzc2liaWxpdHkgKi9cbiAgICAgICAgICAgIC0tbXhfU3BvdGxpZ2h0RGlhbG9nX29wdGlvbl9zZWxlY3RlZEJnQ29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgICAgICAgICAvKiBIaWRlIHRoZSBlbnRlciBwcm9tcHQgYXMgaW4gdGhpcyBzdGF0ZSBwcmVzc2luZyBlbnRlciB3b3VsZCBub3QgYWN0dWF0ZSB0aGF0IG9wdGlvbiAqL1xuICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19lbnRlclByb21wdCB7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgI214X1Nwb3RsaWdodERpYWxvZ19jb250ZW50IHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuXG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3NlY3Rpb24ge1xuICAgICAgICAgICAgPiBoNCxcbiAgICAgICAgICAgID4gLm14X1Nwb3RsaWdodERpYWxvZ19zZWN0aW9uSGVhZGVyID4gaDQge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiBoNCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19zZWN0aW9uSGVhZGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX29wdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmICsgLm14X1Nwb3RsaWdodERpYWxvZ19zZWN0aW9uIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19vcHRpb24ge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJlthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbXhfU3BvdGxpZ2h0RGlhbG9nX29wdGlvbl9zZWxlY3RlZEJnQ29sb3IsICRxdWluYXJ5LWNvbnRlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19yZWNlbnRseVZpZXdlZCB7XG4gICAgICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFweDsgLyogb2NjbHVkZSB0aGUgMXB4IHZpc2libGUgb2YgdGhlIHZlcnkgbmV4dCB0aWxlIHRvIHByZXZlbnQgaXQgbG9va2luZyBicm9rZW4gKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19vcHRpb24ge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogNThweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDU4cHg7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1OHB4O1xuICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICAgICAgLm14X0RlY29yYXRlZFJvb21BdmF0YXIge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgOXB4IHZhcigtLWNwZC1zcGFjZS0xeCk7IC8qIG1haW50YWluIGNlbnRlcmluZyAqL1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgKyAubXhfU3BvdGxpZ2h0RGlhbG9nX29wdGlvbiB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfcmVzdWx0cyxcbiAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19yZWNlbnRTZWFyY2hlcyxcbiAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19vdGhlclNlYXJjaGVzLFxuICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX2hpZGRlblJlc3VsdHMge1xuICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19vcHRpb24ge1xuICAgICAgICAgICAgICAgIC0tbXhfU3BvdGxpZ2h0RGlhbG9nX29wdGlvbl9zZWxlY3RlZEJnQ29sb3I6ICRzeXN0ZW07XG5cbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA2cHggdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19vcHRpb24tLWVuZEFkb3JubWVudCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5teF9TcG90bGlnaHREaWFsb2dfcmVzdWx0X211bHRpbGluZSB7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG4gICAgICAgICAgICAgICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xeCkgdmFyKC0tY3BkLXNwYWNlLTV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMnB4IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX2VudGVyUHJvbXB0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDlweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfcmVzdWx0X25hbWUge1xuICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgID4gLm14X1Nwb3RsaWdodERpYWxvZ19tZXRhc3BhY2VSZXN1bHQsXG4gICAgICAgICAgICAgICAgPiAubXhfRGVjb3JhdGVkUm9vbUF2YXRhcixcbiAgICAgICAgICAgICAgICA+IC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcblxuICAgICAgICAgICAgICAgICAgICAubXhfQmFzZUF2YXRhciB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfcmVzdWx0X3B1YmxpY1Jvb21EZXRhaWxzIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19yZXN1bHRfcHVibGljUm9vbUhlYWRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3Jlc3VsdF9wdWJsaWNSb29tTmFtZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3Jlc3VsdF9wdWJsaWNSb29tQWxpYXMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3Jlc3VsdF9wdWJsaWNSb29tRGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgICAgICAgICAgICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMztcbiAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX25vdGlmaWNhdGlvbkJhZGdlIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19vcHRpb24tLW1lbnUsXG4gICAgICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19vcHRpb24tLW5vdGlmaWNhdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMC01eCk7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHN2ZyxcbiAgICAgICAgICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICAgICAmW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdIHtcbiAgICAgICAgICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19vcHRpb24tLW1lbnUsXG4gICAgICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfb3B0aW9uLS1ub3RpZmljYXRpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLyogJHNlY29uZGFyeS1jb250ZW50LyR0ZXJ0aWFyeS1jb250ZW50IGRvIG5vdCBoYXZlIGVub3VnaCBjb250cmFzdCBhZ2FpbnN0XG4gICAgICAgICAgICAgICAgICAgICAgIHRoZSBob3ZlciBiYWNrZ3JvdW5kICgkcXVpbmFyeS1jb250ZW50KSB0byBtZWV0IFdDQUcgQUEgKDQuNToxKS4gKi9cbiAgICAgICAgICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19yZXN1bHRfcHVibGljUm9vbURldGFpbHMge1xuICAgICAgICAgICAgICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19yZXN1bHRfcHVibGljUm9vbUhlYWRlciAubXhfU3BvdGxpZ2h0RGlhbG9nX3Jlc3VsdF9wdWJsaWNSb29tQWxpYXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3Jlc3VsdF9wdWJsaWNSb29tRGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJlthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSAubXhfU3BvdGxpZ2h0RGlhbG9nX2VudGVyUHJvbXB0IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfaW52aXRlTGluayxcbiAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19jcmVhdGVSb29tIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAgICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDNweCB2YXIoLS1jcGQtc3BhY2UtMngpIDNweCB2YXIoLS1jcGQtc3BhY2UtN3gpO1xuXG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXByaW1hcnkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfb3RoZXJTZWFyY2hlcyB7XG4gICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX29wdGlvbiB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfb3RoZXJTZWFyY2hlc19tZXNzYWdlU2VhcmNoVGV4dCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19yZXN1bHRfZGV0YWlscyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19yZWNlbnRTZWFyY2hlcyA+IGg0ID4gLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfZW50ZXJQcm9tcHQge1xuICAgICAgICAgICAgcGFkZGluZzogMnB4IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICAvKiBUbyBhdm9pZCBhbnkgc3R5bGluZyBpbmhlcmVudCB3aXRoIDxrYmQ+IGVsZW1lbnRzICovXG4gICAgICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfbWV0YXNwYWNlUmVzdWx0IHN2ZyB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKlxuICogVG8gYXZvaWQgdmlzdWFsIGdsaXRjaGluZyBvZiB0d28gbW9kYWxzIHN0YWNraW5nIGJyaWVmbHksIHdlIGN1c3RvbWlzZSB0aGVcbiAqIHRlcm1zIGRpYWxvZyBzaXppbmcgd2hlbiBpdCB3aWxsIGFwcGVhciBmb3IgdGhlIGludGVncmF0aW9uIG1hbmFnZXIgc28gdGhhdFxuICogaXQgZ2V0cyB0aGUgc2FtZSBiYXNpYyBzaXplIGFzIHRoZSBJTSdzIG93biBtb2RhbC5cbiAqL1xuLm14X1Rlcm1zRGlhbG9nX2ZvckludGVncmF0aW9uTWFuYWdlciAubXhfRGlhbG9nX2JvcmRlciB7XG4gICAgd2lkdGg6IDYwJTtcbiAgICBoZWlnaHQ6IDcwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ubXhfVGVybXNEaWFsb2dfdGVybXNUYWJsZUhlYWRlciB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLm14X1Rlcm1zRGlhbG9nX3Rlcm1zVGFibGUge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLm14X1Rlcm1zRGlhbG9nX3NlcnZpY2UsXG4ubXhfVGVybXNEaWFsb2dfc3VtbWFyeSB7XG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbiAqIENvcHlyaWdodCAyMDI0IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG4gKiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuICovXG5cbi5teF9VbnBpbkFsbERpYWxvZyB7XG4gICAgLyogMzk2IGlzIGNvbWluZyBmcm9tIGZpZ21hIGFuZCB3ZSByZW1vdmUgdGhlIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmdzIG9mIHRoZSBkaWFsb2cgKi9cbiAgICB3aWR0aDogY2FsYygzOTZweCAtICh2YXIoLS1jcGQtc3BhY2UtMTB4KSAqIDIpKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgIC5teF9VbnBpbkFsbERpYWxvZ190aXRsZSB7XG4gICAgICAgIC8qIE92ZXJyaWRlIHRoZSBkZWZhdWx0IGhlYWRpbmcgc3R5bGUgKi9cbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtaGVhZGluZy1zbS1zZW1pYm9sZCkgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICB9XG5cbiAgICAubXhfVW5waW5BbGxEaWFsb2dfYnV0dG9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtOHgpIHZhcigtLWNwZC1zcGFjZS0yeCkgMCB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVXBsb2FkQ29uZmlybURpYWxvZ19maWxlSWNvbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG5cbi5teF9VcGxvYWRDb25maXJtRGlhbG9nX3ByZXZpZXdPdXRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubXhfVXBsb2FkQ29uZmlybURpYWxvZ19wcmV2aWV3SW5uZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4ubXhfVXBsb2FkQ29uZmlybURpYWxvZ19pbWFnZVByZXZpZXcge1xuICAgIG1heC1oZWlnaHQ6IDMwMHB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGRpYWxvZy1jbG9zZS1mZy1jb2xvcjtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2V0dGluZ3NEaWFsb2dfdG9hc3RDb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IHZhcigtLWNwZC1zcGFjZS0xMHgpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5teF9Vc2VyU2V0dGluZ3NEaWFsb2dfdGl0bGUge1xuICAgIC8qIE92ZXJyaWRlIGRlZmF1bHQgZGlhbG9nIGZvbnQgc3R5bGUgKi9cbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1oZWFkaW5nLW1kLXJlZ3VsYXIpICFpbXBvcnRhbnQ7XG5cbiAgICAubXhfVXNlclNldHRpbmdzRGlhbG9nX3RpdGxlX3N0cm9uZyB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWhlYWRpbmctbWQtc2VtaWJvbGQpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9WZXJpZnlFTWFpbERpYWxvZyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHRvcDogMzAwcHg7XG5cbiAgICAubXhfRGlhbG9nIHtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS02eCkgdmFyKC0tY3BkLXNwYWNlLTZ4KSB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIC8qICFpbXBvcnRhbnQgb3ZlcnJpZGUgY29tcG91bmQgICovXG4gICAgICAgIHdpZHRoOiA0ODVweCAhaW1wb3J0YW50O1xuXG4gICAgICAgIGgxIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMjRweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1ZlcmlmeUVNYWlsRGlhbG9nX3RleHQtbGlnaHQge1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0F1dGhCb2R5X2RpZC1ub3QtcmVjZWl2ZSB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRGlhbG9nX2NhbmNlbEJ1dHRvbiB7XG4gICAgICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCwyMDI1IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1dpZGdldENhcGFiaWxpdGllc1Byb21wdERpYWxvZyB7XG4gICAgLnRleHQtbXV0ZWQge1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICB9XG5cbiAgICAubXhfV2lkZ2V0Q2FwYWJpbGl0aWVzUHJvbXB0RGlhbG9nX2NhcCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19idXR0b25zIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNDBweDsgLyogZG91YmxlIG5vcm1hbCAqL1xuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc0ZsYWcge1xuICAgICAgICBsaW5lLWhlaWdodDogY2FsYygkZm9udC0xNHB4ICsgN3B4ICsgN3B4KTsgLyogN3B4IHRvcCAmIGJvdHRvbSBwYWRkaW5nICovXG4gICAgICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcblxuICAgICAgICAubXhfVG9nZ2xlU3dpdGNoIHtcbiAgICAgICAgICAgIC8qIGRvd25zaXplIHRoZSBzd2l0Y2ggKyBiYWxsICovXG4gICAgICAgICAgICB3aWR0aDogJGZvbnQtMzJweDtcbiAgICAgICAgICAgIGhlaWdodDogJGZvbnQtMTVweDtcblxuICAgICAgICAgICAgJi5teF9Ub2dnbGVTd2l0Y2hfb24gPiAubXhfVG9nZ2xlU3dpdGNoX2JhbGwge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoMTAwJSAtICRmb250LTE1cHgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfVG9nZ2xlU3dpdGNoX2JhbGwge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbiBDb3B5cmlnaHQgMjAyNiBFbGVtZW50IENyZWF0aW9ucyBMdGQuXG5cbiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Vua25vd25JZGVudGl0eVVzZXJzV2FybmluZ0RpYWxvZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGhlaWdodDogNjAwcHg7IC8qIENvbnNpc3RlbmN5IHdpdGggSW52aXRlRGlhbG9nICovXG59XG5cbi5teF9Vbmtub3duSWRlbnRpdHlVc2Vyc1dhcm5pbmdEaWFsb2dfaGVhZGVyQ29udGFpbmVyIHtcbiAgICAvKiBDZW50cmUgdGhlIFBhZ2VIZWFkZXIgY29tcG9uZW50IGhvcml6b250YWxseSAqL1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAvKiBTdHlsaW5nIGZvciB0aGUgcmVndWxhciB0ZXh0IGluc2lkZSB0aGUgaGVhZGVyICovXG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1sZy1yZWd1bGFyKTtcblxuICAgIC8qIFNwYWNlIGJlZm9yZSB0aGUgbGlzdCAqL1xuICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xufVxuXG4ubXhfVW5rbm93bklkZW50aXR5VXNlcnNXYXJuaW5nRGlhbG9nX3VzZXJMaXN0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdzogYXV0bztcblxuICAgIC8qIEZpbGwgYXZhaWxhYmxlIHZlcnRpY2FsIHNwYWNlLCBidXQgZG9uJ3QgYWxsb3cgaXQgdG8gc2hyaW5rIHRvIGxlc3MgdGhhbiA2MHB4IChhYm91dCB0aGUgaGVpZ2h0IG9mIGEgc2luZ2xlIHRpbGUpICovXG4gICAgZmxleDogMSAwIDYwcHg7XG5cbiAgICAvKiBSZW1vdmUgYnJvd3NlciBkZWZhdWx0IHVsIHBhZGRpbmcvbWFyZ2luICovXG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5teF9Vbmtub3duSWRlbnRpdHlVc2Vyc1dhcm5pbmdEaWFsb2dfYnV0dG9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG5cbiAgICA+IGJ1dHRvbiB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTgsIDIwMTkgLCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9BY2Nlc3NTZWNyZXRTdG9yYWdlRGlhbG9nIHtcbiAgICAmLm14X0VuY3J5cHRpb25DYXJkIHtcbiAgICAgICAgLyogb3ZlcnJpZGUgc29tZSBzdHlsZXMgdGhhdCB3ZSBkb24ndCBuZWVkICovXG4gICAgICAgIGJvcmRlcjogMHB4IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICB9XG5cbiAgICAubXhfQWNjZXNzU2VjcmV0U3RvcmFnZURpYWxvZ19wcmltYXJ5Q29udGFpbmVyIHtcbiAgICAgICAgLm14X0FjY2Vzc1NlY3JldFN0b3JhZ2VEaWFsb2dfcmVjb3ZlcnlLZXlFbnRyeSB7XG4gICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICAqIEZyb20gZmlnbWE6IGh0dHBzOi8vd3d3LmZpZ21hLmNvbS9kZXNpZ24vWm9kQkx0R25LbVJUR0pvNVNHTG5IMy9FUi0xMzctLUV4Y2x1ZGluZy1JbnNlY3VyZS1EZXZpY2VzP25vZGUtaWQ9MTAyLTQzNzI5JnQ9UW1ld0VOVWQ3ZjZUbXc5VS0xXG4gICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICB3aWR0aDogNDQ4cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA3MHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDlweDtcbiAgICAgICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXNlbWlib2xkKTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQWNjZXNzU2VjcmV0U3RvcmFnZURpYWxvZ19yZWNvdmVyeUtleUZlZWRiYWNrIHtcbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICAgIG1hc2stc2l6ZTogMjBweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogNXB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLm14X0FjY2Vzc1NlY3JldFN0b3JhZ2VEaWFsb2dfcmVjb3ZlcnlLZXlGZWVkYmFjay0taW52YWxpZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRhbGVydDtcblxuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0VuY3J5cHRpb25DYXJkX2J1dHRvbnMge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMjB4KTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ3JlYXRlQ3Jvc3NTaWduaW5nRGlhbG9nIHtcbiAgICAvKiBXaHkgeW91IGFzaz8gQmVjYXVzZSBDb21wbGV0ZVNlY3VyaXR5Qm9keSBpcyA2MDBweCBzbyB0aGlzIGlzIHRoZSB3aWR0aCAqL1xuICAgIC8qIHdlIGVuZCB1cCB3aGVuIGluIHRoZXJlLCBidXQgd2hlbiBpbiBvdXIgb3duIGRpYWxvZyB3ZSBzZXQgb3VyIG93biB3aWR0aCAqL1xuICAgIC8qIHNvIG5lZWQgdG8gZml4IGl0IHRvIHNvbWV0aGluZyBzZW5zaWJsZSBhcyBvdGhlcndpc2Ugd2UnZCBlbmQgdXAgZWl0aGVyICovXG4gICAgLyogcmVhbGx5IHdpZGUgb3IgcmVhbGx5IG5hcnJvdyBkZXBlbmRpbmcgb24gdGhlIHBoYXNlLiBJIGJldCB5b3Ugd2lzaCB5b3UgKi9cbiAgICAvKiBuZXZlciBhc2tlZC4gKi9cbiAgICB3aWR0aDogNTYwcHg7XG5cbiAgICBkZXRhaWxzIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgbWFyZ2luOiAxZW0gMDsgLyogZW11bGF0ZSBwYXJhZ3JhcGggc3BhY2luZyBiZWNhdXNlIHdlIGNhbid0IHB1dCB0aGlzIGJ1dHRvbiBpbiBhIHBhcmFncmFwaCBkdWUgdG8gSFRNTCBydWxlcyAqL1xuICAgIH1cbn1cblxuLm14X0NyZWF0ZUNyb3NzU2lnbmluZ0RpYWxvZyAubXhfRGlhbG9nX3RpdGxlIHtcbiAgICAvKiBUT0RPOiBDb25zaWRlciBzZXR0aW5nIHRoaXMgZm9yIGFsbCBkaWFsb2cgdGl0bGVzLiAqL1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5LCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxOCBOZXcgVmVjdG9yIEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ3JlYXRlU2VjcmV0U3RvcmFnZURpYWxvZyB7XG4gICAgLyogV2h5IHlvdSBhc2s/IEJlY2F1c2UgQ29tcGxldGVTZWN1cml0eUJvZHkgaXMgNjAwcHggc28gdGhpcyBpcyB0aGUgd2lkdGggKi9cbiAgICAvKiB3ZSBlbmQgdXAgd2hlbiBpbiB0aGVyZSwgYnV0IHdoZW4gaW4gb3VyIG93biBkaWFsb2cgd2Ugc2V0IG91ciBvd24gd2lkdGggKi9cbiAgICAvKiBzbyBuZWVkIHRvIGZpeCBpdCB0byBzb21ldGhpbmcgc2Vuc2libGUgYXMgb3RoZXJ3aXNlIHdlJ2QgZW5kIHVwIGVpdGhlciAqL1xuICAgIC8qIHJlYWxseSB3aWRlIG9yIHJlYWxseSBuYXJyb3cgZGVwZW5kaW5nIG9uIHRoZSBwaGFzZS4gSSBiZXQgeW91IHdpc2ggeW91ICovXG4gICAgLyogbmV2ZXIgYXNrZWQuICovXG4gICAgd2lkdGg6IDU2MHB4O1xuXG4gICAgJi5teF9TdWNjZXNzRGlhbG9nIHtcbiAgICAgICAgcGFkZGluZzogNTZweDsgLyogODBweCBmcm9tIGRlc2lnbiAtIDI0cHggd3JhcHBlciBwYWRkaW5nICovXG5cbiAgICAgICAgLm14X0RpYWxvZ190aXRsZSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzRmxhZyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzRmxhZ19sYWJlbCB7XG4gICAgICAgIGZsZXg6IDEgMSAwO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIH1cblxuICAgIC5teF9Ub2dnbGVTd2l0Y2gge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gICAgfVxuXG4gICAgZGV0YWlscyAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbjogMWVtIDA7IC8qIGVtdWxhdGUgcGFyYWdyYXBoIHNwYWNpbmcgYmVjYXVzZSB3ZSBjYW4ndCBwdXQgdGhpcyBidXR0b24gaW4gYSBwYXJhZ3JhcGggZHVlIHRvIEhUTUwgcnVsZXMgKi9cbiAgICB9XG59XG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nIC5teF9EaWFsb2dfdGl0bGUge1xuICAgIC8qIFRPRE86IENvbnNpZGVyIHNldHRpbmcgdGhpcyBmb3IgYWxsIGRpYWxvZyB0aXRsZXMuICovXG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuXG4ubXhfQ3JlYXRlU2VjcmV0U3RvcmFnZURpYWxvZ19jZW50ZXJlZFRpdGxlLFxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2dfY2VudGVyZWRCb2R5IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX3ByaW1hcnlDb250YWluZXIge1xuICAgIC8qIEZJWE1FOiBwbGludGggY29sb3VyIGluIG5ldyB0aGVtZShzKS4gYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDsgKi9cbiAgICBwYWRkaW5nLXRvcDogMjBweDtcblxuICAgICYubXhfQ3JlYXRlU2VjcmV0U3RvcmFnZURpYWxvZ19yZWNvdmVyeUtleVByaW1hcnljb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG59XG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX3ByaW1hcnlDb250YWluZXI6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubXhfQ3JlYXRlU2VjcmV0U3RvcmFnZURpYWxvZ19wcmltYXJ5Q29udGFpbmVyIC5teF9TdHlsZWRSYWRpb0J1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICBwYWRkaW5nOiAxMXB4O1xufVxuXG4ubXhfQ3JlYXRlU2VjcmV0U3RvcmFnZURpYWxvZ19vcHRpb25UaXRsZSB7XG4gICAgY29sb3I6ICRkaWFsb2ctdGl0bGUtZmctY29sb3I7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgZm9udC1zaXplOiAkZm9udC0xOHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xufVxuXG4ubXhfQ3JlYXRlU2VjcmV0U3RvcmFnZURpYWxvZ19wYXNzUGhyYXNlQ29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xufVxuXG4ubXhfRmllbGQubXhfQ3JlYXRlU2VjcmV0U3RvcmFnZURpYWxvZ19wYXNzUGhyYXNlRmllbGQge1xuICAgIG1hcmdpbi10b3A6IDBweDtcbn1cblxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2dfcGFzc1BocmFzZU1hdGNoIHtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG59XG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX3JlY292ZXJ5S2V5Q29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX3JlY292ZXJ5S2V5IHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMjBweDtcbiAgICBjb2xvcjogJGluZm8tcGxpbnRoLWZnLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbmZvLXBsaW50aC1iZy1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgd29yZC1zcGFjaW5nOiAxZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcblxuICAgIGNvZGUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiAzMHJlbTtcbiAgICB9XG59XG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX3JlY292ZXJ5S2V5QnV0dG9ucyB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMTZweDtcbn1cblxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2dfcmVjb3ZlcnlLZXlCdXR0b25zX2NvcHlCdG4ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX3JlY292ZXJ5S2V5QnV0dG9ucyAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX2NvbnRpbnVlU3Bpbm5lciB7XG4gICAgbWFyZ2luLXRvcDogMzNweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2dfY29udGludWVTcGlubmVyIGltZyB7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE4LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9LZXlCYWNrdXBGYWlsZWREaWFsb2cgLm14X0RpYWxvZ190aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzJweDtcbn1cblxuLm14X0tleUJhY2t1cEZhaWxlZERpYWxvZ190aXRsZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG5cbiAgICBzdmcge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiAtMnB4O1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICB9XG59XG5cbi5teF9LZXlCYWNrdXBGYWlsZWREaWFsb2cgLm14X0RpYWxvZ19idXR0b25zIHtcbiAgICBtYXJnaW4tdG9wOiAzNnB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTkgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE4IE5ldyBWZWN0b3IgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9SZXN0b3JlS2V5QmFja3VwRGlhbG9nX2tleVN0YXR1cyB7XG4gICAgaGVpZ2h0OiAzMHB4O1xufVxuXG4ubXhfUmVzdG9yZUtleUJhY2t1cERpYWxvZ19wcmltYXJ5Q29udGFpbmVyIHtcbiAgICAvKiBGSVhNRTogcGxpbnRoIGNvbG91ciBpbiBuZXcgdGhlbWUocykuIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQ7ICovXG4gICAgcGFkZGluZzogMjBweDtcbn1cblxuLm14X1Jlc3RvcmVLZXlCYWNrdXBEaWFsb2dfcGFzc1BocmFzZUlucHV0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBwYWRkaW5nOiA5cHg7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1zZW1pYm9sZCk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cbn1cblxuLm14X1Jlc3RvcmVLZXlCYWNrdXBEaWFsb2dfcGFzc1BocmFzZUlucHV0LFxuLm14X1Jlc3RvcmVLZXlCYWNrdXBEaWFsb2dfcmVjb3ZlcnlLZXlJbnB1dCB7XG4gICAgd2lkdGg6IDMwMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRhY2NlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIHBhZGRpbmc6IDEwcHg7XG59XG5cbi5teF9SZXN0b3JlS2V5QmFja3VwRGlhbG9nX2NvbnRlbnQgPiBkaXYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgbWluLWhlaWdodDogMTEwcHg7IC8qIEVtcGlyaWNhbGx5IG1lYXN1cmVkICovXG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTmV0d29ya0Ryb3Bkb3duX3dyYXBwZXIgLm14X0NvbnRleHR1YWxNZW51IHtcbiAgICAubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9PcHRpb24ge1xuICAgICAgICAmLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfT3B0aW9uLS1oZWFkZXIge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTYwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfT3B0aW9uLS1pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0xeCk7XG5cbiAgICAgICAgICAgID4gLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfT3B0aW9uLS1sYWJlbCBzcGFuOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgPiAubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9PcHRpb24tLWxhYmVsIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgICAgICAgICBhbGlnbi1jb250ZW50OiBiYXNlbGluZTtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuXG4gICAgICAgICAgICBzcGFuOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfZGl2aWRlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0xeCk7XG5cbiAgICAgICAgJiArIC5teF9HZW5lcmljRHJvcGRvd25NZW51X09wdGlvbiAubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9PcHRpb24tLWxhYmVsIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X05ldHdvcmtEcm9wZG93bl9yZW1vdmVTZXJ2ZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIHBhZGRpbmc6IDFweDtcbiAgICBiYWNrZ3JvdW5kOiAkcXVpbmFyeS1jb250ZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgIHN2ZyB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgfVxufVxuXG4ubXhfTmV0d29ya0Ryb3Bkb3duX2RpYWxvZyAubXhfRGlhbG9nIHtcbiAgICB3aWR0aDogNDV2dztcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE3IFZlY3RvciBDcmVhdGlvbnMgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOndoZXJlKGJ1dHRvbikge1xuICAgICAgICAvKiBDbGVhciBkZWZhdWx0IGJ1dHRvbiBzdHlsaW5nICovXG4gICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgfVxuXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2Rpc2FibGVkIHtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9pY29uX3ByaW1hcnksXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2ljb25fcHJpbWFyeV9vdXRsaW5lLFxuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5LFxuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5X291dGxpbmUsXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnlfc20sXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmssXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmtfYWNjZW50LFxuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rX2lubGluZSxcbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfZGFuZ2VyX2lubGluZSxcbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfY29udGVudF9pbmxpbmUsXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmtfc20ge1xuICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2hhc0tpbmQge1xuICAgICAgICBwYWRkaW5nOiA3cHggMThweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtc2VtaWJvbGQpO1xuICAgICAgICBib3JkZXI6IG5vbmU7IC8qIG92ZXJyaWRlIGRlZmF1bHQgPGJ1dHRvbiAvPiBzdHlsZXMgKi9cbiAgICAgICAgd29yZC1icmVhazoga2VlcC1hbGw7IC8qIHByZXZlbnQgYnV0dG9uIHRleHQgaW4gQ2hpbmVzZS9KYXBhbmVzZS9Lb3JlYW4gKENKSykgZnJvbSBiZWluZyBjb2xsYXBzZWQgKi9cbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5X3NtLFxuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9kYW5nZXJfc20sXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmtfc20ge1xuICAgICAgICAgICAgcGFkZGluZzogNXB4IDEycHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5X3NtIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1vbi1zb2xpZC1wcmltYXJ5KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tcHJpbWFyeS1yZXN0KTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tcHJpbWFyeS1yZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2Rhbmdlcl9zbSB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtb24tc29saWQtcHJpbWFyeSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY3JpdGljYWwtcHJpbWFyeSk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYmctY3JpdGljYWwtcHJpbWFyeSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rX3NtIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9pY29uLFxuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9pY29uX3ByaW1hcnksXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2ljb25fcHJpbWFyeV9vdXRsaW5lIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgICAgICB3aWR0aDogMzJweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2ljb25fcHJpbWFyeSxcbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9pY29uX3ByaW1hcnlfb3V0bGluZSxcbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5LFxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnlfb3V0bGluZSxcbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9zZWNvbmRhcnkge1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICB9XG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9pY29uX3ByaW1hcnksXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfcHJpbWFyeSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tcHJpbWFyeS1yZXN0KTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LW9uLXNvbGlkLXByaW1hcnkpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXByaW1hcnktcmVzdCk7XG4gICAgfVxuXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfaWNvbl9wcmltYXJ5X291dGxpbmUsXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfcHJpbWFyeV9vdXRsaW5lIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1zZWNvbmRhcnkpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfc2Vjb25kYXJ5IHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9kYW5nZXIge1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtb24tc29saWQtcHJpbWFyeSk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jcml0aWNhbC1wcmltYXJ5KTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJnLWNyaXRpY2FsLXByaW1hcnkpO1xuXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtb24tc29saWQtcHJpbWFyeSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY3JpdGljYWwtcHJpbWFyeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9kYW5nZXJfb3V0bGluZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1jcml0aWNhbC1wcmltYXJ5KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1ib3JkZXItY3JpdGljYWwtc3VidGxlKTtcblxuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LWRpc2FibGVkKTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1kaXNhYmxlZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9kYW5nZXJfc20ge1xuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LWRpc2FibGVkKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtcHJpbWFyeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rLFxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmtfaW5saW5lLFxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2Rhbmdlcl9pbmxpbmUsXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfY29udGVudF9pbmxpbmUge1xuICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGluayxcbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rX2lubGluZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9kYW5nZXJfaW5saW5lIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LWNyaXRpY2FsLXByaW1hcnkpO1xuICAgIH1cblxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2NvbnRlbnRfaW5saW5lIHtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGlua19pbmxpbmUsXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfZGFuZ2VyX2lubGluZSxcbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9jb250ZW50X2lubGluZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5Db3B5cmlnaHQgMjAxOSBOZXcgVmVjdG9yIEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ29weWFibGVUZXh0IHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAmLm14X0NvcHlhYmxlVGV4dF9ib3JkZXIge1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICBib3JkZXI6IHNvbGlkIDFweCAkbGlnaHQtZmctY29sb3I7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgfVxuXG4gICAgLm14X0NvcHlhYmxlVGV4dF9jb3B5QnV0dG9uIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAvKiBJZiB0aGUgY29weSBidXR0b24gaXMgdXNlZCB3aXRoaW4gYSBzY3JvbGxhYmxlIGRpdiwgbWFrZSBpdCBzdGljayB0byB0aGUgcmlnaHQgd2hpbGUgc2Nyb2xsaW5nICovXG4gICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBjb2xvcjogJG1lc3NhZ2UtYWN0aW9uLWJhci1mZy1jb2xvcjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfZGVza3RvcENhcHR1cmVyU291cmNlUGlja2VyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLm14X2Rlc2t0b3BDYXB0dXJlclNvdXJjZVBpY2tlcl90YWIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgaGVpZ2h0OiA1MDBweDtcbiAgICAgICAgb3ZlcmZsb3c6IG92ZXJsYXk7XG5cbiAgICAgICAgLm14X2Rlc2t0b3BDYXB0dXJlclNvdXJjZVBpY2tlcl9zb3VyY2Uge1xuICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICAgICAubXhfZGVza3RvcENhcHR1cmVyU291cmNlUGlja2VyX3NvdXJjZV90aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogNHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDJweDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgICAgICAgICAgICAgJi5teF9kZXNrdG9wQ2FwdHVyZXJTb3VyY2VQaWNrZXJfc291cmNlX3RodW1ibmFpbF9zZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfZGVza3RvcENhcHR1cmVyU291cmNlUGlja2VyX3NvdXJjZV9uYW1lIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgNHB4O1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EaWFsUGFkQmFja3NwYWNlQnV0dG9uIHtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KTtcblxuICAgIHN2ZyB7XG4gICAgICAgIGNvbG9yOiAjOGQ5N2E1O1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTcgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0Ryb3Bkb3duIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9Ecm9wZG93bl9kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC4zO1xufVxuXG4ubXhfRHJvcGRvd25faW5wdXQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtc2Vjb25kYXJ5KTtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ubXhfRHJvcGRvd25faW5wdXQubXhfQWNjZXNzaWJsZUJ1dHRvbl9kaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLm14X0Ryb3Bkb3duX2lucHV0OmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICRhY2NlbnQtYWx0O1xufVxuXG4vKiBEaXNhYmxlIGRyb3Bkb3duIGhpZ2hsaWdodCBvbiBmb2N1cyAqL1xuLm14X0Ryb3Bkb3duX2lucHV0Lm14X0FjY2Vzc2libGVCdXR0b246Zm9jdXMge1xuICAgIGZpbHRlcjogbm9uZTtcbn1cblxuc3ZnLm14X0Ryb3Bkb3duX2Fycm93IHtcbiAgICB3aWR0aDogMThweDtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9Ecm9wZG93bl9vcHRpb24ge1xuICAgIGhlaWdodDogMzVweDtcbiAgICBsaW5lLWhlaWdodDogJGZvbnQtMzVweDtcbiAgICAvKiBPdmVyd3JpdGVzIHRoZSBkZWZhdWx0IHBhZGRpbmcgZm9yIGFueSBsaSBlbGVtZW50cyAqL1xuICAgIHBhZGRpbmc6IDAgOHB4O1xufVxuXG4ubXhfRHJvcGRvd25faW5wdXQgPiAubXhfRHJvcGRvd25fb3B0aW9uIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZmxleDogMTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ubXhfRHJvcGRvd25fb3B0aW9uIGRpdiB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ubXhfRHJvcGRvd25fb3B0aW9uIGltZyxcbi5teF9Ecm9wZG93bl9vcHRpb24gLm14X0Ryb3Bkb3duX29wdGlvbl9lbW9qaSB7XG4gICAgbWFyZ2luOiA1cHg7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLm14X0Ryb3Bkb3duX29wdGlvbl9lbW9qaSB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNnB4O1xufVxuXG5pbnB1dC5teF9Ecm9wZG93bl9vcHRpb24sXG5pbnB1dC5teF9Ecm9wZG93bl9vcHRpb246Zm9jdXMge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIC8qIFhYWDogaGFjayB0byBwcmV2ZW50IHRleHQgYm94IGJlaW5nIHRvbyBiaWcgYW5kIHB1c2hpbmcgKi9cbiAgICAvKiBpdHMgcGFyZW50IG91dCAvIG92ZXJsYXBwaW5nIHRoZSBkcm9wZG93biBhcnJvdy4gT25seSByZWFsbHkgKi9cbiAgICAvKiB3b3JrcyBpbiB0aGUgQ291bnRyeSBkcm9wZG93bi4gKi9cbiAgICB3aWR0aDogNjAlO1xufVxuXG4ubXhfRHJvcGRvd25fbWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IC0xcHg7XG4gICAgcmlnaHQ6IC0xcHg7XG4gICAgdG9wOiAxMDAlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDBweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGFjY2VudC1hbHQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgbWF4LWhlaWdodDogMjAwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLm14X0Ryb3Bkb3duX21lbnUgLm14X0Ryb3Bkb3duX29wdGlvbiB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDM1cHg7XG59XG5cbnVsLm14X0Ryb3Bkb3duX21lbnUgbGkubXhfRHJvcGRvd25fb3B0aW9uIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4ubXhfRHJvcGRvd25fbWVudSAubXhfRHJvcGRvd25fb3B0aW9uX2hpZ2hsaWdodCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGZvY3VzLWJnLWNvbG9yO1xufVxuXG4ubXhfRHJvcGRvd25fc2VhcmNoUHJvbXB0IHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE3LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9FZGl0YWJsZUl0ZW1MaXN0IHtcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5teF9FZGl0YWJsZUl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4ubXhfRWRpdGFibGVJdGVtX2RlbGV0ZSB7XG4gICAgQG1peGluIGN1c3RvbWlzZWRDYW5jZWxCdXR0b247XG4gICAgb3JkZXI6IDM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB3aWR0aDogMjhweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgbWFzay1zaXplOiAxMDAlO1xufVxuXG4ubXhfRWRpdGFibGVJdGVtX2VtYWlsIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ubXhfRWRpdGFibGVJdGVtX3Byb21wdFRleHQge1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICBvcmRlcjogMjtcbn1cblxuLm14X0VkaXRhYmxlSXRlbV9jb25maXJtQnRuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cblxuLm14X0VkaXRhYmxlSXRlbV9pdGVtIHtcbiAgICBmbGV4OiBhdXRvIDEgMDtcbiAgICBvcmRlcjogMTtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMjhweCk7IC8qIGxlYXZlIHNwYWNlIGZvciB0aGUgcmVtb3ZlIGJ1dHRvbiAqL1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLm14X0VkaXRhYmxlSXRlbUxpc3RfbGFiZWwge1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9FcnJvckJvdW5kYXJ5IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4ubXhfRXJyb3JCb3VuZGFyeV9ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0V4dGVybmFsTGluayB7XG4gICAgY29sb3I6ICRsaW5rcztcbn1cblxuLm14X0V4dGVybmFsTGlua19pY29uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6ICRmb250LTExcHg7XG4gICAgaGVpZ2h0OiAkZm9udC0xMXB4O1xuICAgIG1hcmdpbi1sZWZ0OiAwLjNyZW07XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9GYWNlUGlsZV9tb3JlIHtcbiAgICAvKiBOZWVkZWQgdG8gY2FsY3VsYXRlIHRoZSBvZmZzZXQgb24gdGhlIGZhY2UgcGlsZSAqL1xuICAgIC0tY3BkLWF2YXRhci1zaXplOiAyOHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgIHdpZHRoOiAyOHB4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHBhbmVscztcbiAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHotaW5kZXg6IDE7XG4gICAgLyogRm9yIGVuaGFuY2VkIHZpc2liaWxpdHkgdW5kZXIgY29udHJhc3QgY29udHJvbCAqL1xuICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLm14X0ZhY2VQaWxlX3N1bW1hcnkge1xuICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi8qIFRPRE86IENvbnNpZGVyIHVuaWZ5aW5nIHdpdGggZ2VuZXJhbCBpbnB1dCBzdHlsZXMgaW4gX2xpZ2h0LnBjc3MgKi9cblxuLm14X0ZpZWxkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDFlbSAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4yNXM7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1zZWNvbmRhcnkpO1xufVxuXG4ubXhfRmllbGRfcHJlZml4IHtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXNlY29uZGFyeSk7XG59XG5cbi5teF9GaWVsZF9wb3N0Zml4IHtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtc2Vjb25kYXJ5KTtcbn1cblxuLm14X0ZpZWxkIGlucHV0LFxuLm14X0ZpZWxkIHNlbGVjdCxcbi5teF9GaWVsZCB0ZXh0YXJlYSB7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgLyogRXZlbiB3aXRob3V0IGEgYm9yZGVyIGhlcmUsIHdlIHN0aWxsIG5lZWQgdGhpcyBhdm9pZCBvdmVybGFwcGluZyB0aGUgcm91bmRlZCAqL1xuICAgIC8qIGNvcm5lcnMgb24gdGhlIGZpZWxkIGFib3ZlLiAqL1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwYWRkaW5nOiA4cHggOXB4O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4ubXhfRmllbGQgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG59XG5cbi5teF9GaWVsZCBzZWxlY3Qge1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5teF9GaWVsZF9zZWxlY3RfY2hldnJvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICByaWdodDogNHB4O1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGhlaWdodDogMThweDtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICB6LWluZGV4OiAxO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ubXhfRmllbGQ6Zm9jdXMtd2l0aGluIHtcbiAgICBib3JkZXItY29sb3I6ICRhY2NlbnQtYWx0O1xufVxuXG4ubXhfRmllbGQgaW5wdXQ6Zm9jdXMsXG4ubXhfRmllbGQgc2VsZWN0OmZvY3VzLFxuLm14X0ZpZWxkIHRleHRhcmVhOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwO1xufVxuXG4ubXhfRmllbGQgaW5wdXQ6OnBsYWNlaG9sZGVyLFxuLm14X0ZpZWxkIHRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4yNXMgZWFzZS1pbiAwcztcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5teF9GaWVsZCBpbnB1dDpwbGFjZWhvbGRlci1zaG93bjpmb2N1czo6cGxhY2Vob2xkZXIsXG4ubXhfRmllbGQgdGV4dGFyZWE6cGxhY2Vob2xkZXItc2hvd246Zm9jdXM6OnBsYWNlaG9sZGVyLFxuLm14X0ZpZWxkLm14X0ZpZWxkX3BsYWNlaG9sZGVySXNIaW50IGlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4yNXMgZWFzZS1pbiAwLjFzO1xuICAgIGNvbG9yOiAkaW5mby1wbGludGgtZmctY29sb3I7XG59XG5cbi5teF9GaWVsZCBsYWJlbCB7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgICAgZm9udC1zaXplIDAuMjVzIGVhc2Utb3V0IDAuMXMsXG4gICAgICAgIGNvbG9yIDAuMjVzIGVhc2Utb3V0IDAuMXMsXG4gICAgICAgIHRyYW5zZm9ybSAwLjI1cyBlYXNlLW91dCAwLjFzLFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0IDAuMXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDBweDtcbiAgICBtYXJnaW46IDdweCA4cHg7XG4gICAgcGFkZGluZzogMnB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBBbGxvdyBjbGlja3MgdG8gZmFsbCB0aHJvdWdoIHRvIHRoZSBpbnB1dCAqL1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOyAvKiAxMDAlIG9mIHBhcmVudCBtaW51cyBtYXJnaW4gYW5kIHBhZGRpbmcgKi9cbn1cblxuLm14X0ZpZWxkX2xhYmVsQWx3YXlzVG9wTGVmdCBsYWJlbCxcbi5teF9GaWVsZCBzZWxlY3QgKyBsYWJlbCAvKiBBbHdheXMgc2hvdyBhIHNlbGVjdCdzIGxhYmVsIG9uIHRvcCB0byBub3QgY29sbGlkZSB3aXRoIHRoZSB2YWx1ZSAqLyxcbi5teF9GaWVsZCBpbnB1dDpmb2N1cyArIGxhYmVsLFxuLm14X0ZpZWxkIGlucHV0Om5vdCg6cGxhY2Vob2xkZXItc2hvd24pICsgbGFiZWwsXG4ubXhfRmllbGQgdGV4dGFyZWE6Zm9jdXMgKyBsYWJlbCxcbi5teF9GaWVsZCB0ZXh0YXJlYTpub3QoOnBsYWNlaG9sZGVyLXNob3duKSArIGxhYmVsIHtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgICBmb250LXNpemUgMC4yNXMgZWFzZS1vdXQgMHMsXG4gICAgICAgIGNvbG9yIDAuMjVzIGVhc2Utb3V0IDBzLFxuICAgICAgICB0cmFuc2Zvcm0gMC4yNXMgZWFzZS1vdXQgMHMsXG4gICAgICAgIGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQgMHM7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMHB4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTNweCk7XG4gICAgcGFkZGluZzogMCAycHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7XG59XG5cbi5teF9GaWVsZCBpbnB1dDpmb2N1cyArIGxhYmVsLFxuLm14X0ZpZWxkIHNlbGVjdDpmb2N1cyArIGxhYmVsLFxuLm14X0ZpZWxkIHRleHRhcmVhOmZvY3VzICsgbGFiZWwge1xuICAgIGNvbG9yOiAkYWNjZW50LWFsdDtcbn1cblxuLm14X0ZpZWxkIHNlbGVjdDpkaXNhYmxlZCxcbi5teF9GaWVsZCBzZWxlY3Q6ZGlzYWJsZWQgKyBsYWJlbCxcbi5teF9GaWVsZCBpbnB1dDpkaXNhYmxlZCxcbi5teF9GaWVsZCBpbnB1dDpkaXNhYmxlZCArIGxhYmVsLFxuLm14X0ZpZWxkIHRleHRhcmVhOmRpc2FibGVkLFxuLm14X0ZpZWxkIHRleHRhcmVhOmRpc2FibGVkICsgbGFiZWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkaW5mby1wbGludGgtZmctY29sb3I7XG59XG5cbi5teF9GaWVsZF92YWxpZCB7XG4gICAgJi5teF9GaWVsZCxcbiAgICAmLm14X0ZpZWxkOmZvY3VzLXdpdGhpbiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGFjY2VudDtcbiAgICB9XG5cbiAgICAmLm14X0ZpZWxkIGxhYmVsLFxuICAgICYubXhfRmllbGQ6Zm9jdXMtd2l0aGluIGxhYmVsIHtcbiAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgfVxufVxuXG4ubXhfRmllbGRfaW52YWxpZCB7XG4gICAgJi5teF9GaWVsZCxcbiAgICAmLm14X0ZpZWxkOmZvY3VzLXdpdGhpbiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGFsZXJ0O1xuICAgIH1cblxuICAgICYubXhfRmllbGQgbGFiZWwsXG4gICAgJi5teF9GaWVsZDpmb2N1cy13aXRoaW4gbGFiZWwge1xuICAgICAgICBjb2xvcjogJGFsZXJ0O1xuICAgIH1cbn1cblxuLyogQ3VzdG9taXNlIG90aGVyIGNvbXBvbmVudHMgd2hlbiBwbGFjZWQgaW5zaWRlIGEgRmllbGQgKi9cblxuLm14X0ZpZWxkIC5teF9Ecm9wZG93bl9pbnB1dCB7XG4gICAgYm9yZGVyOiBpbml0aWFsO1xuICAgIGJvcmRlci1yYWRpdXM6IGluaXRpYWw7XG59XG5cbi5teF9GaWVsZCAubXhfQ291bnRyeURyb3Bkb3duIHtcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV9hdmF0YXJzIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIH1cblxuICAgIC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV9zcGFjZXIge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHByaW1hcnktaGFpcmxpbmUtY29sb3I7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA2M3B4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMzBweDsgLyogVE9ETzogVXNlIGEgdmFyaWFibGUgKi9cblxuICAgICAgICAubXhfSVJDTGF5b3V0ICYge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV90b2dnbGUge1xuICAgICAgICAvKiBXZSByZXVzZSBhIHRpdGxlIGNhc2VkIHRyYW5zbGF0aW9uICovXG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG4gICAgfVxuXG4gICAgJltkYXRhLWxheW91dD1cImlyY1wiXSxcbiAgICAmW2RhdGEtbGF5b3V0PVwiZ3JvdXBcIl0ge1xuICAgICAgICAubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlfdG9nZ2xlIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmU6IDAgMTBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZbZGF0YS1sYXlvdXQ9XCJncm91cFwiXSB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgfVxuXG4gICAgJltkYXRhLWxheW91dD1cImJ1YmJsZVwiXSB7XG4gICAgICAgIC0tbWF4V2lkdGg6IDcwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tYXZhdGFyU2l6ZSkgKyB2YXIoLS1ndXR0ZXJTaXplKSk7XG5cbiAgICAgICAgLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X3RvZ2dsZSB7XG4gICAgICAgICAgICBtYXJnaW4tYmxvY2s6IDA7XG5cbiAgICAgICAgICAgICZbYXJpYS1leHBhbmRlZD1cImZhbHNlXCJdIHtcbiAgICAgICAgICAgICAgICBvcmRlcjogOTsgLyogVE9ETzogUmVtb3ZlICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZbYXJpYS1leHBhbmRlZD1cInRydWVcIl0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87IC8qIHJlZHVjZSBjbGlja2FibGUgYXJlYSAqL1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1FdmVudFRpbGVfYnViYmxlLW1hcmdpbi1pbmxpbmUtZW5kKTsgLyogYXMgdGhlIHBhcmVudCBoYXMgemVybyBtYXJnaW4gKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV9zcGFjZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1leHBhbmRlZD1cImZhbHNlXCJdIHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBjb2x1bW4tZ2FwOiA1cHg7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBpZGVhbGx5IHdlJ2QgdXNlIGRpc3BsYXk9Y29udGVudHMgaGVyZSBmb3IgdGhlIGxheW91dCB0byBhbGwgd29yayByZWdhcmRsZXNzIG9mIHRoZSAqRUxTIGJ1dCAqL1xuICAgICAgICAvKiB0aGF0IGJyZWFrcyBTY3JvbGxQYW5lbCdzIHJlbGlhbmNlIHVwb24gb2Zmc2V0VG9wIHNvIHdlIGhhdmUgdG8gaGF2ZSBhIGJpdCBtb3JlIGZpbmVzc2UuICovXG4gICAgICAgICZbZGF0YS1leHBhbmRlZD1cInRydWVcIl0ge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9NYXRyaXhDaGF0X3VzZUNvbXBhY3RMYXlvdXQgJiB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTNweDtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcblxuICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlfc3BhY2VyIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM3NTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9UZXh0dWFsRXZlbnQubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlfc3VtbWFyeSB7XG4gICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogTWFrZSBhbGwgc3RhdGUgZXZlbnRzIG9uZSBvcmRlciBzbWFsbGVyIHRoYW4gdGhlIG90aGVyIGV2ZW50cyAqL1xuICAgIC5teF9FdmVudFRpbGUge1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIH1cbn1cblxuLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X3Vuc3R5bGVkTGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4ubXhfVGV4dHVhbEV2ZW50Lm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X3N1bW1hcnkge1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV9hdmF0YXJzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTEycHg7XG5cbiAgICAubXhfQmFzZUF2YXRhciB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTRweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbiRidXR0b24tc2l6ZTogMzJweDtcbiRidXR0b24tZ2FwOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuXG46cm9vdCB7XG4gICAgLS1pbWFnZS12aWV3LXBhbmVsLWhlaWdodDogNjhweDtcbn1cblxuLm14X0ltYWdlVmlldyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLm14X0ltYWdlVmlld19pbWFnZV93cmFwcGVyIHtcbiAgICBwb2ludGVyLWV2ZW50czogaW5pdGlhbDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5teF9JbWFnZVZpZXdfaW1hZ2Uge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuXG4gICAgJi5teF9JbWFnZVZpZXdfaW1hZ2VfYW5pbWF0aW5nIHtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UgMHM7XG4gICAgfVxuXG4gICAgJi5teF9JbWFnZVZpZXdfaW1hZ2VfYW5pbWF0aW5nTG9hZGluZyB7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAzMDBtcyBlYXNlIDBzO1xuICAgIH1cbn1cblxuLm14X0ltYWdlVmlld19wYW5lbCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiB2YXIoLS1pbWFnZS12aWV3LXBhbmVsLWhlaWdodCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBhbmltYXRpb24tbmFtZTogbXhfSW1hZ2VWaWV3X3BhbmVsX2tleWZyYW1lcztcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDMwMG1zO1xufVxuXG4ubXhfSW1hZ2VWaWV3X2luZm9fd3JhcHBlciB7XG4gICAgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7XG4gICAgcGFkZGluZy1sZWZ0OiAzMnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGNvbG9yOiAkbGlnaHRib3gtZmctY29sb3I7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGZsZXgtYmFzaXM6IDA7XG59XG5cbi5teF9JbWFnZVZpZXdfaW5mbyB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLm14X0ltYWdlVmlld19pbmZvX3NlbmRlciB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5teF9JbWFnZVZpZXdfdGl0bGUge1xuICAgIGNvbG9yOiAkbGlnaHRib3gtZmctY29sb3I7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm14X0ltYWdlVmlld190b29sYmFyIHtcbiAgICAtLWljb24tc2l6ZTogMjRweDtcblxuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7XG4gICAgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZ2FwOiAkYnV0dG9uLWdhcDtcbn1cblxuLm14X0ltYWdlVmlld19idXR0b24ge1xuICAgIHBhZGRpbmc6IGNhbGMoKCRidXR0b24tc2l6ZSAtIHZhcigtLWljb24tc2l6ZSkpIC8gMik7XG4gICAgd2lkdGg6IHZhcigtLWljb24tc2l6ZSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1pY29uLXNpemUpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbG9yOiAkaWNvbi1idXR0b24tY29sb3I7XG4gICAgfVxufVxuXG4ubXhfSW1hZ2VWaWV3X2J1dHRvbl9tb3JlIHtcbiAgICAtLWljb24tc2l6ZTogMjhweDtcbn1cblxuLm14X0ltYWdlVmlld19idXR0b25fY2xvc2Uge1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogIzIxMjYyYzsgLyogc2FtZSBvbiBhbGwgdGhlbWVzICovXG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbikge1xuICAgIC5teF9JbWFnZVZpZXdfaW1hZ2VfYW5pbWF0aW5nIHtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5teF9JbWFnZVZpZXdfaW1hZ2VfYW5pbWF0aW5nTG9hZGluZyB7XG4gICAgICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSW5mb1Rvb2x0aXBfaWNvbiB7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgIHN2ZyB7XG4gICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgfVxufVxuXG4ubXhfSW5mb1Rvb2x0aXBfaWNvbjo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxNy0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSW5saW5lU3Bpbm5lciB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgbWFyZ2luOiAwcHggNnB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogLTNweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5LTIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0ludGVyYWN0aXZlVG9vbHRpcF93cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogMzk5OTtcbn1cblxuLm14X0ludGVyYWN0aXZlVG9vbHRpcCB7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiA1MDAxO1xuICAgIGJveC1zaGFkb3c6XG4gICAgICAgIDAgMjRweCA4cHggcmdiKDE3IDE3IDI2IC8gNCUpLFxuICAgICAgICAwIDhweCAzMnB4IHJnYigxNyAxNyAyNiAvIDQlKTtcbn1cblxuLm14X0ludGVyYWN0aXZlVG9vbHRpcC5teF9JbnRlcmFjdGl2ZVRvb2x0aXBfd2l0aENoZXZyb25fdG9wIHtcbiAgICB0b3A6IDEwcHg7IC8qIDhweCBjaGV2cm9uICsgMnB4IHNwYWNpbmcgKi9cbn1cblxuLm14X0ludGVyYWN0aXZlVG9vbHRpcC5teF9JbnRlcmFjdGl2ZVRvb2x0aXBfd2l0aENoZXZyb25fbGVmdCB7XG4gICAgbGVmdDogMTBweDsgLyogOHB4IGNoZXZyb24gKyAycHggc3BhY2luZyAqL1xufVxuXG4ubXhfSW50ZXJhY3RpdmVUb29sdGlwLm14X0ludGVyYWN0aXZlVG9vbHRpcF93aXRoQ2hldnJvbl9yaWdodCB7XG4gICAgcmlnaHQ6IDEwcHg7IC8qIDhweCBjaGV2cm9uICsgMnB4IHNwYWNpbmcgKi9cbn1cblxuLm14X0ludGVyYWN0aXZlVG9vbHRpcC5teF9JbnRlcmFjdGl2ZVRvb2x0aXBfd2l0aENoZXZyb25fYm90dG9tIHtcbiAgICBib3R0b206IDEwcHg7IC8qIDhweCBjaGV2cm9uICsgMnB4IHNwYWNpbmcgKi9cbn1cblxuLm14X0ludGVyYWN0aXZlVG9vbHRpcF9jaGV2cm9uX3RvcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gOHB4KTtcbiAgICB0b3A6IC04cHg7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1sZWZ0OiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogOHB4IHNvbGlkICRiYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1yaWdodDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4vKiBBZGFwdGVkIGZyb20gaHR0cHM6Ly9jb2R5aG91c2UuY28vYmxvZy9wb3N0L2Nzcy1yb3VuZGVkLXRyaWFuZ2xlcy13aXRoLWNsaXAtcGF0aCAqL1xuLyogYnkgU2ViYXN0aWFubyBHdWVycmllcm8gKEBndWVycmllcm9fc2UpICovXG5Ac3VwcG9ydHMgKGNsaXAtcGF0aDogcG9seWdvbigwJSAwJSwgMTAwJSAxMDAlLCAwJSAxMDAlKSkge1xuICAgIC5teF9JbnRlcmFjdGl2ZVRvb2x0aXBfY2hldnJvbl90b3Age1xuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGNsaXAtcGF0aDogcG9seWdvbigwJSAwJSwgMTAwJSAxMDAlLCAwJSAxMDAlKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDAgM3B4O1xuICAgICAgICB0b3A6IGNhbGMoLThweCAvIDEuNDE0KTsgLyogc3FydCgyKSBiZWNhdXNlIG9mIHJvdGF0aW9uICovXG4gICAgfVxufVxuXG4ubXhfSW50ZXJhY3RpdmVUb29sdGlwX2NoZXZyb25fYm90dG9tIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogY2FsYyg1MCUgLSA4cHgpO1xuICAgIGJvdHRvbTogLThweDtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLWxlZnQ6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItdG9wOiA4cHggc29saWQgJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyLXJpZ2h0OiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbi8qIEFkYXB0ZWQgZnJvbSBodHRwczovL2NvZHlob3VzZS5jby9ibG9nL3Bvc3QvY3NzLXJvdW5kZWQtdHJpYW5nbGVzLXdpdGgtY2xpcC1wYXRoICovXG4vKiBieSBTZWJhc3RpYW5vIEd1ZXJyaWVybyAoQGd1ZXJyaWVyb19zZSkgKi9cbkBzdXBwb3J0cyAoY2xpcC1wYXRoOiBwb2x5Z29uKDAlIDAlLCAxMDAlIDEwMCUsIDAlIDEwMCUpKSB7XG4gICAgLm14X0ludGVyYWN0aXZlVG9vbHRpcF9jaGV2cm9uX2JvdHRvbSB7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAlIDAlLCAxMDAlIDEwMCUsIDAlIDEwMCUpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAzcHg7XG4gICAgICAgIGJvdHRvbTogY2FsYygtOHB4IC8gMS40MTQpOyAvKiBzcXJ0KDIpIGJlY2F1c2Ugb2Ygcm90YXRpb24gKi9cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSW52aXRlUmVhc29uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuXG4gICAgLm14X0ludml0ZVJlYXNvbl9yZWFzb24ge1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cblxuICAgIC5teF9JbnZpdGVSZWFzb25fdmlldyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfSW52aXRlUmVhc29uX2hpZGRlbiB7XG4gICAgLm14X0ludml0ZVJlYXNvbl9yZWFzb24ge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLm14X0ludml0ZVJlYXNvbl92aWV3IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQsMjAyNSBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9MYWJlbGxlZENoZWNrYm94IHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xhbmd1YWdlRHJvcGRvd24ge1xuICAgIC5teF9Ecm9wZG93bl9vcHRpb24gPiBkaXYge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTWluaUF2YXRhclVwbG9hZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IG1pbi1jb250ZW50O1xuXG4gICAgLm14X01pbmlBdmF0YXJVcGxvYWRlcl9pbmRpY2F0b3Ige1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgcGFkZGluZzogNXB4O1xuXG4gICAgICAgIHJpZ2h0OiAtNnB4O1xuICAgICAgICBib3R0b206IC02cHg7XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAgICAgICBsaW5lLWhlaWdodDogMDtcblxuICAgICAgICAubXhfTWluaUF2YXRhclVwbG9hZGVyX2NhbWVyYUljb24ge1xuICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfTWluaUF2YXRhclVwbG9hZGVyX2lucHV0IHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUGlsbCB7XG4gICAgcGFkZGluZzogJGZvbnQtMXB4IDAuNGVtICRmb250LTFweCAwLjRlbTtcbiAgICBsaW5lLWhlaWdodDogJGZvbnQtMTdweDtcbiAgICBib3JkZXItcmFkaXVzOiAkZm9udC0xNnB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtb24tc29saWQtcHJpbWFyeSkgIWltcG9ydGFudDsgLyogVG8gb3ZlcnJpZGUgLm1hcmtkb3duLWJvZHkgKi9cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGlsbC1iZy1jb2xvciAhaW1wb3J0YW50OyAvKiBUbyBvdmVycmlkZSAubWFya2Rvd24tYm9keSAqL1xuICAgIC8qIEZvciBlbmhhbmNlZCB2aXNpYmlsaXR5IHVuZGVyIGNvbnRyYXN0IGNvbnRyb2wgKi9cbiAgICBvdXRsaW5lOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgICA+ICoge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAmLm14X1VzZXJQaWxsX21lLFxuICAgICYubXhfQXRSb29tUGlsbCxcbiAgICAmLm14X0tleXdvcmRQaWxsIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNyaXRpY2FsLXByaW1hcnkpICFpbXBvcnRhbnQ7IC8qIFRvIG92ZXJyaWRlIC5tYXJrZG93bi1ib2R5ICovXG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwaWxsLWhvdmVyLWJnLWNvbG9yICFpbXBvcnRhbnQ7IC8qIFRvIG92ZXJyaWRlIC5tYXJrZG93bi1ib2R5ICovXG4gICAgfVxuXG4gICAgJjphY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGlsbC1wcmVzcy1iZy1jb2xvciAhaW1wb3J0YW50OyAvKiBUbyBvdmVycmlkZSAubWFya2Rvd24tYm9keSAqL1xuICAgIH1cblxuICAgICYubXhfVXNlclBpbGxfbWU6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoXG4gICAgICAgICAgICAtLWNwZC1jb2xvci1iZy1jcml0aWNhbC1ob3ZlcmVkXG4gICAgICAgICkgIWltcG9ydGFudDsgLyogVG8gb3ZlcnJpZGUgLm1hcmtkb3duLWJvZHkgfCBzYW1lIG9uIGJvdGggdGhlbWVzICovXG4gICAgfVxuXG4gICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmRpY2F0ZSBjbGlja2FiaWxpdHkgKi9cbiAgICAmLm14X0F0Um9vbVBpbGw6aG92ZXIsXG4gICAgJi5teF9LZXl3b3JkUGlsbDpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jcml0aWNhbC1wcmltYXJ5KSAhaW1wb3J0YW50OyAvKiBUbyBvdmVycmlkZSAubWFya2Rvd24tYm9keSAqL1xuICAgICAgICBjdXJzb3I6IHVuc2V0O1xuICAgIH1cblxuICAgICY6OmJlZm9yZSxcbiAgICAubXhfQmFzZUF2YXRhciB7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IC0wLjNlbTsgLyogT3RoZXJ3aXNlIHRoZSBnYXAgaXMgdG9vIGxhcmdlICovXG4gICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAwLjJlbTtcbiAgICAgICAgbWluLXdpZHRoOiAkZm9udC0xNnB4OyAvKiBlbnN1cmUgdGhlIGF2YXRhciBpcyBub3QgY29tcHJlc3NlZCAqL1xuICAgICAgICB1c2VyLXNlbGVjdDogdGV4dDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICB9XG5cbiAgICAubXhfUGlsbF90ZXh0IHtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAubXhfUGlsbF91c2VyU3RhdHVzIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuXG4gICAgLyogUGlsbHMgd2l0aCB1c2VyIHN0YXR1cyBhcmUgZmxleCBzbyB0aGUgc3RhdHVzIGVtb2ppIHN0YXlzIHZpc2libGUgaWYgdGhlXG4gICAgICAgZGlzcGxheSBuYW1lIGdldHMgdHJ1bmNhdGVkLiAqL1xuICAgICYubXhfUGlsbF93aXRoU3RhdHVzIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgYSYge1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7IC8qIFRvIG92ZXJyaWRlIC5tYXJrZG93bi1ib2R5ICovXG4gICAgfVxuXG4gICAgLm14X1BpbGxfTGlua0ljb24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGluay1leHRlcm5hbDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIHBhZGRpbmc6IDFweDtcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB9XG5cbiAgICAubXhfUGlsbF9Vc2VySWNvbiB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgfVxuXG4gICAgJi5teF9TcGFjZVBpbGwge1xuICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA4cHg7XG4gICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDhweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA0cHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Qb3dlclNlbGVjdG9yIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLm14X1Bvd2VyU2VsZWN0b3IgLm14X0ZpZWxkIHNlbGVjdCxcbi5teF9Qb3dlclNlbGVjdG9yIC5teF9GaWVsZCBpbnB1dCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwLCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbnByb2dyZXNzLm14X1Byb2dyZXNzQmFyIHtcbiAgICBoZWlnaHQ6IDZweDtcbiAgICB3aWR0aDogNjBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiB2YXIoLS1jcGQtYm9yZGVyLXdpZHRoLTEpIHNvbGlkIHZhcigtLWNwZC1jb2xvci1ncmF5LTQwMCk7XG5cbiAgICBAbWl4aW4gUHJvZ3Jlc3NCYXJCb3JkZXJSYWRpdXMgNnB4O1xuICAgIEBtaXhpbiBQcm9ncmVzc0JhckNvbG91ciB2YXIoLS1jcGQtY29sb3ItaWNvbi1hY2NlbnQtdGVydGlhcnkpO1xuICAgIEBtaXhpbiBQcm9ncmVzc0JhckJnQ29sb3VyICRwcm9ncmVzc2Jhci1iZy1jb2xvcjtcbiAgICAmOjotd2Via2l0LXByb2dyZXNzLXZhbHVlIHtcbiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMXM7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1FSQ29kZSB7XG4gICAgaW1nIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE4IFZlY3RvciBDcmVhdGlvbnMgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9SZXBseUNoYWluIHtcbiAgICBtYXJnaW46IDA7IC8qIFJlc2V0IGRlZmF1bHQgYmxvY2txdW90ZSBtYXJnaW4gKi9cbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCB2YXIoLS11c2VybmFtZS1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuXG4gICAgLm14X1JlcGx5Q2hhaW5fc2hvdyB7XG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmtfaW5saW5lIHtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IC8qIEVuZm9yY2UgJ0luIHJlcGx5IHRvJyB0byBiZSBhIHNpbmdsZSBsaW5lICovXG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgZWFzZSAwLjE1cztcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtcmVndWxhcik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5teF9SZXBseUNoYWluX2NvbG9yMSB7XG4gICAgICAgIC0tdXNlcm5hbWUtY29sb3I6ICR1c2VybmFtZS12YXJpYW50MS1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm14X1JlcGx5Q2hhaW5fY29sb3IyIHtcbiAgICAgICAgLS11c2VybmFtZS1jb2xvcjogJHVzZXJuYW1lLXZhcmlhbnQyLWNvbG9yO1xuICAgIH1cblxuICAgICYubXhfUmVwbHlDaGFpbl9jb2xvcjMge1xuICAgICAgICAtLXVzZXJuYW1lLWNvbG9yOiAkdXNlcm5hbWUtdmFyaWFudDMtY29sb3I7XG4gICAgfVxuXG4gICAgJi5teF9SZXBseUNoYWluX2NvbG9yNCB7XG4gICAgICAgIC0tdXNlcm5hbWUtY29sb3I6ICR1c2VybmFtZS12YXJpYW50NC1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm14X1JlcGx5Q2hhaW5fY29sb3I1IHtcbiAgICAgICAgLS11c2VybmFtZS1jb2xvcjogJHVzZXJuYW1lLXZhcmlhbnQ1LWNvbG9yO1xuICAgIH1cblxuICAgICYubXhfUmVwbHlDaGFpbl9jb2xvcjYge1xuICAgICAgICAtLXVzZXJuYW1lLWNvbG9yOiAkdXNlcm5hbWUtdmFyaWFudDYtY29sb3I7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE4LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9SZXNpemVIYW5kbGUge1xuICAgIGN1cnNvcjogcm93LXJlc2l6ZTtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB6LWluZGV4OiAxMDA7XG5cbiAgICAmLm14X1Jlc2l6ZUhhbmRsZS0taG9yaXpvbnRhbCB7XG4gICAgICAgIG1hcmdpbjogMCAtNXB4O1xuICAgICAgICBwYWRkaW5nOiAwIDVweDtcbiAgICAgICAgY3Vyc29yOiBjb2wtcmVzaXplO1xuXG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X1Jlc2l6ZUhhbmRsZS0tdmVydGljYWwge1xuICAgICAgICBtYXJnaW46IC01cHggMDtcbiAgICAgICAgcGFkZGluZzogNXB4IDA7XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKiBYWFg6IGJsZXVyZ2gsIHdoYXQgaXMgdGhpcz8gVGhlc2UgY2xhc3NlcyB0b3RhbGx5IGJyZWFrIHRoZSBjb21wb25lbnQgKi9cbi8qIG5hbWluZyBzY2hlbWU7IGl0J3MgY29tcGxldGVseSB1bmNsZWFyIHdoZXJlIG9yIGhvdyB0aGV5J3JlIGJlaW5nIHVzZWQgKi9cbi8qIC0tTWF0dGhldyAqL1xuXG4ubXhfTWFya2Rvd25fQk9MRCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5teF9NYXJrZG93bl9JVEFMSUMge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAvKlxuICAgIC8vIGludGVyZXN0aW5nbHksICpub3QqIHVzaW5nIHRoZSBleHBsaWNpdCBpdGFsaWMgZm9udFxuICAgIC8vIHZhcmlhbnQgc2VlbXMgeWllbGQgYmV0dGVyIHJlc3VsdHMuXG5cbiAgICAvLyBjb21wZW5zYXRlIGZvciBOdW5pdG8gaXRhbGljcyBiZWluZyB0ZXJyaWJsZVxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZm9udHMvaXNzdWVzLzE3MlxuICAgIHRyYW5zZm9ybTogc2tld1goLTE0ZGVnKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgKi9cbn1cblxuLm14X01hcmtkb3duX0NPREUge1xuICAgIHBhZGRpbmc6IDAuMmVtIDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogODUlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRydGUtY29kZS1iZy1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG5cbi5teF9NYXJrZG93bl9IUiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYmFja2dyb3VuZDogJHJ0ZS1iZy1jb2xvcjtcbn1cblxuLm14X01hcmtkb3duX1NUUklLRVRIUk9VR0gge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xufVxuXG4ubXhfRW1vamkge1xuICAgIC8qIFNob3VsZCBiZSAxLjhyZW0gZm9yIG91ciBkZWZhdWx0IG1lc3NhZ2UgYm9kaWVzLCBhbmQgc2NhbGUgd2l0aCB0aGUgKi9cbiAgICAvKiBzdXJyb3VuZGluZyB0ZXh0ICovXG4gICAgZm9udC1zaXplOiBtYXgoJGZvbnQtMThweCwgMWVtKTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTkgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Jvb21BbGlhc0ZpZWxkIHtcbiAgICAvKiBpZiBwYXJlbnQgaXMgYSBmbGV4IGNvbnRhaW5lciwgdGhpcyBhbGxvd3MgdGhlICovXG4gICAgLyogd2lkdGggdG8gYmUgYXMgd2lkZSBhcyBuZWVkZWQsIGFuZCBub3QgMTAwJSAqL1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgIGlucHV0IHtcbiAgICAgICAgd2lkdGg6IDE1MHB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgY29sb3I6ICRpbmZvLXBsaW50aC1mZy1jb2xvcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICB9XG5cbiAgICAubXhfRmllbGRfcHJlZml4LFxuICAgIC5teF9GaWVsZF9wb3N0Zml4IHtcbiAgICAgICAgY29sb3I6ICRpbmZvLXBsaW50aC1mZy1jb2xvcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIHBhZGRpbmc6IDlweCAxMHB4O1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG5cbiAgICAubXhfRmllbGRfcG9zdGZpeCB7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAvKiB0aGlzIGFsbG93cyB0aGUgZG9tYWluIG5hbWUgdG8gc2hvdyAqL1xuICAgICAgICAvKiBhcyBsb25nIGFzIGl0IGRvZXNuJ3QgbWFrZSB0aGUgaW5wdXQgc2hyaW5rICovXG4gICAgICAgIC8qIGlmIGl0J3MgdG9vIGJpZywgaXQgc2hvd3MgYW4gZWxsaXBzaXMgKi9cbiAgICAgICAgLyogMTgwOiAyOCBmb3IgcHJlZml4LCAxNTIgZm9yIGlucHV0ICovXG4gICAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMTgwcHgpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TU09CdXR0b25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgIC5teF9TU09CdXR0b25zX3JvdyArIC5teF9TU09CdXR0b25zX3JvdyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgfVxuXG4gICAgLm14X1NTT0J1dHRvbiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICBzdmcsXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiA4cHg7XG4gICAgICAgICAgICB0b3A6IDRweDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1wcmltYXJ5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TU09CdXR0b25fbWluaSB7XG4gICAgICAgIHN2ZyxcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIC8qIDMwcHggcGFyZW50LCAyNHB4IHNlbGYgKi9cbiAgICAgICAgICAgIHBhZGRpbmc6IDNweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiB1bnNldDtcbiAgICAgICAgfVxuXG4gICAgICAgICYgKyAubXhfU1NPQnV0dG9uX21pbmkge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2VhcmNoV2FybmluZyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDAgMTZweDtcblxuICAgID4gKiB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgPiBpbWcge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2VydmVyUGlja2VyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2IoMTQxLCAxNTEsIDE2NSwgMC4yKTtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBtaW4tY29udGVudDtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gYXV0byBhdXRvO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG5cbiAgICA+IGgyIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIG1hcmdpbjogMCAwIDIwcHg7XG4gICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICBncmlkLXJvdzogMTtcbiAgICB9XG5cbiAgICAubXhfU2VydmVyUGlja2VyX2hlbHAge1xuICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tdG9wOiAtMnB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0ycHg7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgY29sb3I6ICRpY29uLWJ1dHRvbi1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TZXJ2ZXJQaWNrZXJfc2VydmVyIHtcbiAgICAgICAgY29sb3I6ICRhdXRocGFnZS1wcmltYXJ5LWNvbG9yO1xuICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgZ3JpZC1yb3c6IDI7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICB9XG5cbiAgICAubXhfU2VydmVyUGlja2VyX2NoYW5nZSB7XG4gICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICBncmlkLXJvdzogMjtcbiAgICB9XG5cbiAgICAubXhfU2VydmVyUGlja2VyX2Rlc2Mge1xuICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAyO1xuICAgICAgICBncmlkLXJvdzogMztcbiAgICB9XG59XG5cbi5teF9TZXJ2ZXJQaWNrZXJfaGVscERpYWxvZyB7XG4gICAgLm14X0RpYWxvZ19jb250ZW50IHtcbiAgICAgICAgd2lkdGg6IDQ1NnB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNSBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NldHRpbmdzRHJvcGRvd24ge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAubXhfU2V0dGluZ3NEcm9wZG93bl9sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0xeCkgMDtcbiAgICB9XG5cbiAgICAubXhfRHJvcGRvd25faW5wdXQge1xuICAgICAgICB3aWR0aDogMzYwcHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NldHRpbmdzRmxhZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAubXhfVG9nZ2xlU3dpdGNoIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuXG4gICAgJi5teF9TZXR0aW5nc0ZsYWdfdG9nZ2xlSW5Gcm9udCB7XG4gICAgICAgIC5teF9Ub2dnbGVTd2l0Y2gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NldHRpbmdzRmxhZ19sYWJlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfU2V0dGluZ3NGbGFnX2xhYmVsIHtcbiAgICBmbGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgIHBhZGRpbmctdG9wOiA0cHg7XG59XG5cbi5teF9TZXR0aW5nc0ZsYWdfbWljcm9jb3B5IHtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgLyogU3VwcG9ydCBjb2RlL3ByZSBlbGVtZW50cyBpbiBzZXR0aW5ncyBmbGFnIGRlc2NyaXB0aW9ucyAqL1xuICAgIHByZSxcbiAgICBjb2RlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRtb25vc3BhY2UtZm9udC1mYW1pbHkgIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJ0ZS1jb2RlLWJnLWNvbG9yO1xuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc1RhYl9taWNyb2NvcHlfd2FybmluZzo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCLimqDvuI8gXCI7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NwaW5uZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZmxleDogMTtcbn1cblxuLm14X01hdHJpeENoYXRfbWlkZGxlUGFuZWwgLm14X1NwaW5uZXIge1xuICAgIGhlaWdodDogYXV0bztcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi8qKlxuKiBUaGlzIGNvbXBvbmVudCBleHBlY3RzIHRoZSBwYXJlbnQgdG8gc3BlY2lmeSBhIHBvc2l0aXZlIHBhZGRpbmcgYW5kXG4qIHdpZHRoXG4qL1xuXG4ubXhfU3R5bGVkUmFkaW9CdXR0b24ge1xuICAgICRyYWRpby1jaXJjbGUtY29sb3I6IHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtcHJpbWFyeSk7XG4gICAgJGFjdGl2ZS1yYWRpby1jaXJjbGUtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY2NlbnQtcmVzdCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgZmxleC1ncm93OiAxO1xuXG4gICAgPiAubXhfU3R5bGVkUmFkaW9CdXR0b25fY29udGVudCB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcblxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIH1cblxuICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9zcGFjZXIge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgZmxleC1ncm93OiAwO1xuXG4gICAgICAgIGhlaWdodDogJGZvbnQtMTZweDtcbiAgICAgICAgd2lkdGg6ICRmb250LTE2cHg7XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICAgICAgLyogUmVtb3ZlIHRoZSBPUydzIHJlcHJlc2VudGF0aW9uICovXG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICArIGRpdiB7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcblxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIGhlaWdodDogJGZvbnQtMTZweDtcbiAgICAgICAgICAgIHdpZHRoOiAkZm9udC0xNnB4O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDJweDsgLyogRm9yIHRoZSBoaWdobGlnaHQgb24gZm9jdXMgKi9cblxuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHJhZGlvLWNpcmNsZS1jb2xvcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRmb250LTE2cHg7XG5cbiAgICAgICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkZm9udC04cHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICRmb250LThweDtcblxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRmb250LThweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICAmICsgZGl2IHtcbiAgICAgICAgICAgICAgICBAbWl4aW4gdW5yZWFsLWZvY3VzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICYgKyBkaXYge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGFjdGl2ZS1yYWRpby1jaXJjbGUtY29sb3I7XG5cbiAgICAgICAgICAgICAgICAmID4gZGl2IHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGFjdGl2ZS1yYWRpby1jaXJjbGUtY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIC8qIEZvciBlbmhhbmNlZCB2aXNpYmlsaXR5IHVuZGVyIGNvbnRyYXN0IGNvbnRyb2wgKi9cbiAgICAgICAgICAgICAgICAgICAgb3V0bGluZTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6ZGlzYWJsZWQge1xuICAgICAgICAgICAgJiArIGRpdixcbiAgICAgICAgICAgICYgKyBkaXYgKyBzcGFuIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJiArIGRpdiB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcmFkaW8tY2lyY2xlLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpjaGVja2VkOmRpc2FibGVkIHtcbiAgICAgICAgICAgICYgKyBkaXYgPiBkaXYge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRyYWRpby1jaXJjbGUtY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3R5bGVkUmFkaW9CdXR0b25faW5uZXJMYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiA0cHg7XG4gICAgfVxufVxuXG4ubXhfU3R5bGVkUmFkaW9CdXR0b25fb3V0bGluZWQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRpbnB1dC1kYXJrZXItYmctY29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuXG4ubXhfU3R5bGVkUmFkaW9CdXR0b25fY2hlY2tlZCB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWNjZW50LXJlc3QpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTcgTWljaGFlbCBUZWxhdHluc2tpIDw3dDNjaGd1eUBnbWFpbC5jb20+XG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TeW50YXhIaWdobGlnaHQge1xuICAgIC8qIGluaGliaXQgaGxqcyBzdHlsaW5nICovXG4gICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAkbGlnaHQtZmctY29sb3IgIWltcG9ydGFudDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9UYWdDb21wb3NlciB7XG4gICAgLm14X1RhZ0NvbXBvc2VyX2lucHV0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDcwcHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDhweDsgLyogb3ZlcnJpZGUgZnJvbSBidXR0b24gc3R5bGVzICovXG4gICAgICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOyAvKiBvdmVycmlkZSBkZWZhdWx0IHNldHRpbmdzdGFiIHN0eWxlICovXG4gICAgICAgIH1cblxuICAgICAgICAubXhfRmllbGQsXG4gICAgICAgIC5teF9GaWVsZCBpbnB1dCxcbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgLyogU28gdGhleSBsb29rIHJlbGF0ZWQgdG8gZWFjaCBvdGhlciBieSBmZWVsaW5nIHRoZSBzYW1lICovXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfVGFnQ29tcG9zZXJfdGFncyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgbWFyZ2luLXRvcDogMTJweDsgLyogdGhpcyBwbHVzIDEycHggZnJvbSB0aGUgdGFncyBtYWtlcyAyNHB4IGZyb20gdGhlIGlucHV0ICovXG4gICAgfVxuXG4gICAgLm14X1RhZyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICB9XG59XG5cbi5teF9UYWcge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcblxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuXG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgYmFja2dyb3VuZDogJHF1aW5hcnktY29udGVudDtcblxuICAgID4gc3ZnOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgd2lkdGg6IDFlbTtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjI1KTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5teF9UYWdfZGVsZXRlIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxLjA2NjY2NmVtOyAvKiAxNnB4OyAqL1xuICAgICAgICBoZWlnaHQ6IDEuMDY2NjY2ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzeXN0ZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cbi5teF9UZXh0V2l0aFRvb2x0aXBfdGFyZ2V0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi5teF9UZXh0V2l0aFRvb2x0aXBfdG9vbHRpcCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVG9nZ2xlU3dpdGNoIHtcbiAgICAtLVRvZ2dsZVN3aXRjaC1taW4td2lkdGg6ICRmb250LTQ0cHg7XG5cbiAgICB0cmFuc2l0aW9uOlxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZS1vdXQgMC4xcyxcbiAgICAgICAgYm9yZGVyLWNvbG9yIDAuMnMgZWFzZS1vdXQgMC4xcztcblxuICAgIHdpZHRoOiAkZm9udC00NHB4O1xuICAgIGhlaWdodDogJGZvbnQtMjBweDtcbiAgICBib3JkZXItcmFkaXVzOiAxLjVyZW07XG4gICAgcGFkZGluZzogMnB4O1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kaXNhYmxlZCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1kaXNhYmxlZCk7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICYubXhfVG9nZ2xlU3dpdGNoX2VuYWJsZWQge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG4gICAgICAgIGJvcmRlcjogdmFyKC0tY3BkLWJvcmRlci13aWR0aC0xKSBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXByaW1hcnkpO1xuXG4gICAgICAgICYubXhfVG9nZ2xlU3dpdGNoX29uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY2NlbnQtcmVzdCk7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY2NlbnQtcmVzdCk7XG4gICAgICAgIH1cblxuICAgICAgICA+IC5teF9Ub2dnbGVTd2l0Y2hfYmFsbCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1zZWNvbmRhcnkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5teF9Ub2dnbGVTd2l0Y2hfb24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXByaW1hcnktZGlzYWJsZWQpO1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tcHJpbWFyeS1kaXNhYmxlZCk7XG5cbiAgICAgICAgPiAubXhfVG9nZ2xlU3dpdGNoX2JhbGwge1xuICAgICAgICAgICAgbGVmdDogY2FsYygxMDAlIC0gJGZvbnQtMjBweCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1vbi1zb2xpZC1wcmltYXJ5KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1RvZ2dsZVN3aXRjaF9iYWxsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6ICRmb250LTIwcHg7XG4gICAgaGVpZ2h0OiAkZm9udC0yMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6ICRmb250LTIwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LWRpc2FibGVkKTtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgICBsZWZ0IDAuMTVzIGVhc2Utb3V0IDAuMXMsXG4gICAgICAgIGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZS1vdXQgMC4xcztcbiAgICBsZWZ0OiAwO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9WYWxpZGF0aW9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWF4LXdpZHRoOiAyMDBweDtcbn1cblxuLm14X1ZhbGlkYXRpb25fZGV0YWlscyB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIG1hcmdpbjogMDtcbn1cblxuLm14X1ZhbGlkYXRpb25fZGVzY3JpcHRpb24gKyAubXhfVmFsaWRhdGlvbl9kZXRhaWxzIHtcbiAgICBtYXJnaW46IDFlbSAwIDA7XG59XG5cbi5teF9WYWxpZGF0aW9uX2RldGFpbCB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbi1ib3R0b206IDAuNWVtO1xuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICBzdmcge1xuICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcbiAgICB9XG5cbiAgICAmLm14X1ZhbGlkYXRpb25fdmFsaWQge1xuICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICB9XG5cbiAgICAmLm14X1ZhbGlkYXRpb25faW52YWxpZCB7XG4gICAgICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQ1xuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTG9jYXRpb25QaWNrZXIge1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcblxuICAgIGhlaWdodDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgLyogd2hlbiB0aGVyZSBhcmUgZXJyb3JzIGxvYWRpbmcgdGhlIG1hcCAqL1xuICAgIC8qIHRoZSBjYW52YXMgaXMgc3RpbGwgaW5zZXJ0ZWQgKi9cbiAgICAvKiBhbmQgY2FuIG92ZXJsYXAgZXJyb3IgbWVzc2FnZS9jbG9zZSBidXR0b25zICovXG4gICAgLyogaGlkZSBpdCAqL1xuICAgICYubXhfTG9jYXRpb25QaWNrZXJfaGFzRXJyb3Ige1xuICAgICAgICAubWFwbGlicmVnbC1jYW52YXMtY29udGFpbmVyLFxuICAgICAgICAubWFwbGlicmVnbC1jb250cm9sLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI214X0xvY2F0aW9uUGlja2VyX21hcCB7XG4gICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IGluaGVyaXQ7XG4gICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBpbmhlcml0O1xuICAgICAgICBmbGV4OiAxO1xuXG4gICAgICAgIC5tYXBsaWJyZWdsLWN0cmwubWFwbGlicmVnbC1jdHJsLWdyb3VwLFxuICAgICAgICAubWFwbGlicmVnbC1jdHJsLm1hcGxpYnJlZ2wtY3RybC1hdHRyaWIge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hcGxpYnJlZ2wtY3RybC5tYXBsaWJyZWdsLWN0cmwtZ3JvdXAge1xuICAgICAgICAgICAgLyogcGxhY2UgYmVsb3cgdGhlIGNsb3NlIGJ1dHRvbiAqL1xuICAgICAgICAgICAgLyogcGFkZGluZy0xNiArIDI0cHggY2xvc2UgYnV0dG9uICsgcGFkZGluZy0xMCAqL1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXBsaWJyZWdsLXVzZXItbG9jYXRpb24tYWNjdXJhY3ktY2lyY2xlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAubWFwbGlicmVnbC11c2VyLWxvY2F0aW9uLWRvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0xvY2F0aW9uUGlja2VyX2Zvb3RlciB7XG4gICAgICAgIGZsZXg6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0cmV0Y2g7XG5cbiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogaW5oZXJpdDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IGluaGVyaXQ7XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhlYWRlci1wYW5lbC1iZy1jb2xvcjtcbiAgICB9XG59XG5cbi5teF9Mb2NhdGlvblBpY2tlcl9waW5UZXh0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGhlaWdodDogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgIHNwYW4ge1xuICAgICAgICBib3gtc2hhZG93OiAwcHggNHB4IDE1cHggcmdiKDAsIDAsIDAsIDAuMTUpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcblxuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgfVxufVxuXG4ubXhfTG9jYXRpb25QaWNrZXJfc3VibWl0QnV0dG9uIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQ4cHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ2FsbEV2ZW50X3dyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5teF9DYWxsRXZlbnQge1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtaW4taGVpZ2h0OiA2MHB4O1xuICAgIG1heC13aWR0aDogNjAwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHN5c3RlbTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgID4gLm14X0Jhc2VBdmF0YXIsXG4gICAgPiAubXhfSWNvbiB7XG4gICAgICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgfVxuXG4gICAgPiAubXhfSWNvbiB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTF4KSAwO1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIH1cblxuICAgIC5teF9MaXZlQ29udGVudFN1bW1hcnkge1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgfVxuXG4gICAgLS1mYWNlcGlsZS1iYWNrZ3JvdW5kOiAkc3lzdGVtO1xufVxuXG4ubXhfQ2FsbEV2ZW50X3RpdGxlIHtcbiAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7IC8qIGluIHB4IHRvIG1hdGNoIHRoZSBhdmF0YXIgKi9cbn1cblxuLm14X0NhbGxFdmVudF9pbmFjdGl2ZSAubXhfQ2FsbEV2ZW50X3RpdGxlIHN2ZyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuXG4ubXhfQ2FsbEV2ZW50X2FjdGl2ZSAubXhfQ2FsbEV2ZW50X3RpdGxlIHtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbn1cblxuLm14X0NhbGxFdmVudF9jb2x1bW5zIHtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi5teF9UaW1lbGluZUNhcmQgLm14X0NhbGxFdmVudF9jb2x1bW5zIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cblxuLm14X0NhbGxFdmVudF9kZXRhaWxzIHtcbiAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA2cHg7XG59XG5cbi5teF9DYWxsRXZlbnRfYnV0dG9uIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1pbi13aWR0aDogMTIwcHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOC0yMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9FdmVudFRpbGVCdWJibGUubXhfQ3JlYXRlRXZlbnQge1xuICAgIG1hcmdpbjogdmFyKC0tRXZlbnRUaWxlQnViYmxlX21hcmdpbi1ibG9jaykgYXV0bztcblxuICAgIHN2ZyB7XG4gICAgICAgIGNvbG9yOiAkaGVhZGVyLXBhbmVsLXRleHQtcHJpbWFyeS1jb2xvcjtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKiogRGlzYW1iaWd1YXRlZCBwcm9maWxlIG5lZWRzIHRvIGhhdmUgYSBkaWZmZXJlbnQgbGF5b3V0IGluIHRoZSBtZW1iZXIgdGlsZSAqL1xuLm14X01lbWJlclRpbGVWaWV3IC5teF9EaXNhbWJpZ3VhdGVkUHJvZmlsZSB7XG4gICAgLyogTmFtZSBhbmQgdGhlIHVzZXIgc3RhdHVzIGVtb2ppIHNoYXJlIHRoZSBmaXJzdCByb3cgKHdpdGggdGhlIG5hbWUgdHJ1bmNhdGluZyBhbmQgdGhlIGVtb2ppIGFsd2F5cyB2aXNpYmxlKVxuICAgICAgIERpc2FtYmlndWF0ZWQgTVhJRCBnZXRzIGEgZnVsbCByb3cgYmVsb3cuICovXG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbi1jb250ZW50IDFmcjtcblxuICAgIC5teF9EaXNhbWJpZ3VhdGVkUHJvZmlsZV91c2VyU3RhdHVzIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tY3BkLXNwYWNlLTAtNXgpO1xuICAgIH1cblxuICAgIC5teF9EaXNhbWJpZ3VhdGVkUHJvZmlsZV9teGlkIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMDtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgc3Bhbjpub3QoLm14X0Rpc2FtYmlndWF0ZWRQcm9maWxlX214aWQpIHtcbiAgICAgICAgLyoqXG4gICAgICAgIEluIGEgbWVtYmVyIHRpbGUsIHRoaXMgc3BhbiBlbGVtZW50IGlzIGEgZ3JpZCBjaGlsZCBhbmQgc29cbiAgICAgICAgd2UgbmVlZCB0aGUgZm9sbG93aW5nIGZvciB0ZXh0IG92ZXJmbG93IHRvIHdvcmsuXG4gICAgICAgICoqL1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9MZWdhY3lDYWxsRXZlbnRfd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5teF9MZWdhY3lDYWxsRXZlbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpIDA7XG5cbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0xeCkgMDtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1wYW5lbC1iZy1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICB3aWR0aDogNjUlO1xuICAgICAgICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuXG4gICAgICAgIC5teF9MZWdhY3lDYWxsRXZlbnRfaWNvbkJ1dHRvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9MZWdhY3lDYWxsRXZlbnRfaW5mbyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgIC5teF9MZWdhY3lDYWxsRXZlbnRfaW5mb19iYXNpYyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDsgLyogVG8gbWF0Y2ggbXhfTGVnYWN5Q2FsbEV2ZW50ICovXG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMDtcblxuICAgICAgICAgICAgICAgIC5teF9MZWdhY3lDYWxsRXZlbnRfc2VuZGVyIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0xeCk7XG5cbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudF90eXBlIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfTGVnYWN5Q2FsbEV2ZW50X2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtM3gpOyAvKiBTZWUgbXhfSW5jb21pbmdMZWdhY3lDYWxsVG9hc3RfYnV0dG9ucyAqL1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogNDJweDsgLyogYXZhdGFyICgzMnB4KSArIG14X0xlZ2FjeUNhbGxFdmVudF9pbmZvX2Jhc2ljIG1hcmdpbiAoMTBweCkgKi9cbiAgICAgICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IGZpdC1jb250ZW50O1xuXG4gICAgICAgICAgICAubXhfTGVnYWN5Q2FsbEV2ZW50X2NvbnRlbnRfYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBAbWl4aW4gTGVnYWN5Q2FsbEJ1dHRvbjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfTGVnYWN5Q2FsbEV2ZW50X2NvbnRlbnRfdG9vbHRpcCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0xlZ2FjeUNhbGxFdmVudF9uYXJyb3cge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiB1bnNldDtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTF4KSB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICAgICAgaGVpZ2h0OiB1bnNldDtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMjkwcHg7XG5cbiAgICAgICAgICAgIC5teF9MZWdhY3lDYWxsRXZlbnRfaWNvbkJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDEycHg7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDEycHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9MZWdhY3lDYWxsRXZlbnRfaW5mbyB7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0xlZ2FjeUNhbGxFdmVudF90eXBlX2ljb24ge1xuICAgIGhlaWdodDogMTZweDtcbiAgICB3aWR0aDogMTZweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IC0ycHg7XG5cbiAgICBzdmcge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICB9XG59XG5cbi5teF9FdmVudFRpbGVbZGF0YS1sYXlvdXQ9XCJidWJibGVcIl0ge1xuICAgIC5teF9FdmVudFRpbGVfZTJlSWNvbiArIC5teF9MZWdhY3lDYWxsRXZlbnRfd3JhcHBlciB7XG4gICAgICAgIC5teF9MZWdhY3lDYWxsRXZlbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAvKiA1cHggKGdhcCkgKyAxNHB4IChlMmUgaWNvbiBzaXplICogbWFzay1zaXplKSArIDlweCAobWFyZ2luLWxlZnQgb2YgZTJlIGljb24pICovXG4gICAgICAgICAgICByaWdodDogY2FsYyg1cHggKyAxNHB4ICsgOXB4KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0V2ZW50VGlsZV9sZWZ0QWxpZ25lZEJ1YmJsZSB7XG4gICAgLm14X0xlZ2FjeUNhbGxFdmVudF93cmFwcGVyIHtcbiAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudCB7XG4gICAgICAgICAgICAmLm14X0xlZ2FjeUNhbGxFdmVudF9uYXJyb3cge1xuICAgICAgICAgICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KSB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfSVJDTGF5b3V0IHtcbiAgICAubXhfTGVnYWN5Q2FsbEV2ZW50X3dyYXBwZXIge1xuICAgICAgICAubXhfTGVnYWN5Q2FsbEV2ZW50IHtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLWNwZC1zcGFjZS0xeCk7IC8qIGRpc3BsYXkgZ3JlZW4gbGluZSAqL1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVHVsaXIgQXNva2FuIDx0dWxpckBtYXVuaXVtLm5ldD5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01JbWFnZVJlcGx5Qm9keSxcbi5teF9NU3RpY2tlckJvZHlfd3JhcHBlciB7XG4gICAgLm14X01JbWFnZUJvZHlfYmFubmVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgIGxlZnQ6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLU1Cb2R5LWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgbWF4LXdpZHRoOiBtaW4oMTAwJSwgMzUwcHgpO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsIDAsIDAsIDAuNik7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIH1cblxuICAgIC5teF9NSW1hZ2VCb2R5X3BsYWNlaG9sZGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuXG4gICAgICAgIC5teF9CbHVyaGFzaCA+IGNhbnZhcyB7XG4gICAgICAgICAgICBhbmltYXRpb246IG14LS1hbmltLXB1bHNlIDEuNzVzIGluZmluaXRlIGN1YmljLWJlemllcigwLjQsIDAsIDAuNiwgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTUltYWdlQm9keV90aHVtYm5haWxfY29udGFpbmVyIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tTUJvZHktYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGNvbnRhaW46IHBhaW50O1xuICAgIH1cblxuICAgIC5teF9NSW1hZ2VCb2R5X3RodW1ibmFpbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5teF9NSW1hZ2VCb2R5X2dpZkxhYmVsIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgIGxlZnQ6IDE0cHg7XG4gICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAkaW1hZ2Vib2R5LWdpZmxhYmVsO1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkaW1hZ2Vib2R5LWdpZmxhYmVsLWJvcmRlcjtcbiAgICAgICAgY29sb3I6ICRpbWFnZWJvZHktZ2lmbGFiZWwtY29sb3I7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbn1cblxuLm14X01JbWFnZVJlcGx5Qm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBjb2x1bW4tZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuXG4gICAgLm14X01JbWFnZUJvZHlfdGh1bWJuYWlsX2NvbnRhaW5lciB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1pbi13aWR0aDogMDsgLyogUHJldmVudCBhIGJsb3dvdXQgKi9cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTUxvY2F0aW9uQm9keSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgLm14X01Mb2NhdGlvbkJvZHlfbWFwIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB3aWR0aDogNDUwcHg7XG4gICAgICAgIGhlaWdodDogMzAwcHg7XG4gICAgICAgIHotaW5kZXg6IDA7IC8qIGtlZXBzIHRoZSBlbnRpcmUgbWFwIHVuZGVyIHRoZSBtZXNzYWdlIGFjdGlvbiBiYXIgKi9cblxuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1NQm9keS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbn1cblxuLyogSW4gdGhlIHRpbWVsaW5lLCB3ZSBmaXQgdGhlIHdpZHRoIG9mIHRoZSBjb250YWluZXIgKi9cbi5teF9FdmVudFRpbGVfbGluZSAubXhfTUxvY2F0aW9uQm9keSAubXhfTUxvY2F0aW9uQm9keV9tYXAge1xuICAgIG1heC13aWR0aDogNDUwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5teF9FdmVudFRpbGVbZGF0YS1sYXlvdXQ9XCJidWJibGVcIl0gLm14X0V2ZW50VGlsZV9saW5lIC5teF9NTG9jYXRpb25Cb2R5IC5teF9NTG9jYXRpb25Cb2R5X21hcCB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHdpZHRoOiA0NTBweDtcbn1cblxuLm14X0Rpc2FtYmlndWF0ZWRQcm9maWxlIH4gLm14X01Mb2NhdGlvbkJvZHkge1xuICAgIG1hcmdpbi10b3A6IDZweDsgLyogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vbWF0cml4LW9yZy9tYXRyaXgtcmVhY3Qtc2RrL3B1bGwvODQ0MiAqL1xufVxuXG4ubXhfUmVwbHlUaWxlIC5teF9NTG9jYXRpb25Cb2R5IHtcbiAgICAvKiBQcmV2ZW50IGNsaWNraW5nIGEgbG9jYXRpb24gd2l0aGluIGEgcmVwbHkgKi9cbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbiRwb2xsLW1heC13aWR0aDogNTUwcHg7XG5cbi5teF9NUG9sbEJvZHkge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgbWluLXdpZHRoOiAwOyAvKiBPdmVycmlkZSBmaWVsZHNldCBkZWZhdWx0IG1pbi13aWR0aDogbWluLWNvbnRlbnQgKi9cbiAgICB3aWR0aDogMTAwJTsgLyogRW5zdXJlIGZpZWxkc2V0IHRha2VzIGZ1bGwgYXZhaWxhYmxlIHdpZHRoICovXG4gICAgYm9yZGVyOiBub25lOyAvKiBSZW1vdmUgZGVmYXVsdCBmaWVsZHNldCBib3JkZXIgKi9cbiAgICBwYWRkaW5nOiAwOyAvKiBSZW1vdmUgZGVmYXVsdCBmaWVsZHNldCBwYWRkaW5nICovXG4gICAgbWFyZ2luLWlubGluZTogdW5zZXQ7IC8qIFJlbW92ZSBkZWZhdWx0IGZpZWxkc2V0IG1hcmdpbiAqL1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogUHJlc2VydmUgdGhlIGZpZWxkc2V0IGRpc3BsYXkgdmFsdWUgd2UgdXNlZCB0byBzZXQgZ2xvYmFsbHkgKi9cblxuICAgIGxlZ2VuZCB7XG4gICAgICAgIHBhZGRpbmctaW5saW5lOiB1bnNldDsgLyogUmVtb3ZlIGRlZmF1bHQgbGVnZW5kIHBhZGRpbmcgKi9cbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiB2YXIoLS1jcGQtZm9udC1sZXR0ZXItc3BhY2luZy1oZWFkaW5nLWxnKTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1wcmltYXJ5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9NUG9sbEJvZHlfZWRpdGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcm9vbXRvcGljLWNvbG9yO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X01Qb2xsQm9keV90b3RhbFZvdGVzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGlubGluZTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuXG4gICAgICAgIC5teF9TcGlubmVyIHtcbiAgICAgICAgICAgIGZsZXg6IDA7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogUHJldmVudCBjbGlja2luZyBhIHBvbGwgd2l0aGluIGEgcmVwbHkgKi9cbi5teF9SZXBseVRpbGUgLm14X01Qb2xsQm9keSB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5teF9NUG9sbEJvZHlfYWxsT3B0aW9ucyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBtYXgtd2lkdGg6ICRwb2xsLW1heC13aWR0aDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOC0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTVN0aWNrZXJCb2R5X3dyYXBwZXIge1xuICAgIHBhZGRpbmc6IDEycHggMHB4O1xufVxuXG4ubXhfTVN0aWNrZXJCb2R5X2hpZGRlbiB7XG4gICAgbWF4LXdpZHRoOiAyMjBweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgLyogVG8gY2VudGVyIHRoZSB0ZXh0IGluIHRoZSBtaWRkbGUgb2YgdGhlIGZyYW1lICovXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4ubXhfTVN0aWNrZXJCb2R5X3BsYWNlaG9sZGVyIHtcbiAgICAvKiBjZW50ZXJpbmcgKi9cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogY2FsYyg1MCUgLSA0MHB4KTtcbiAgICB0b3A6IGNhbGMoNTAlIC0gNDBweCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NZXNzYWdlQWN0aW9uQmFyIHtcbiAgICAtLU1lc3NhZ2VBY3Rpb25CYXItc2l6ZS1idXR0b246IDI4cHg7XG4gICAgLS1NZXNzYWdlQWN0aW9uQmFyLXNpemUtbWFyZ2luOiAzcHg7XG5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBjYWxjKFxuICAgICAgICAtMSAqXG4gICAgICAgICAgICAodmFyKC0tTWVzc2FnZUFjdGlvbkJhci1zaXplLWJ1dHRvbikgKyAyICogKHZhcigtLU1lc3NhZ2VBY3Rpb25CYXItc2l6ZS1tYXJnaW4pICsgdmFyKC0tY3BkLWJvcmRlci13aWR0aC0xKSkpXG4gICAgKTtcbiAgICByaWdodDogOHB4O1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC8qIEVuc3VyZSB0aGUgYWN0aW9uIGJhciBhcHBlYXJzIGFib3ZlIG90aGVyIHRoaW5ncyBsaWtlIHRoZSByZWFkIG1hcmtlciAqL1xuICAgIC8qIGFuZCBzZW5kZXIgYXZhdGFyIChmb3Igc21hbGwgc2NyZWVucykgKi9cbiAgICB6LWluZGV4OiAxMDtcblxuICAgIC8qIEFkZHMgYSBwcmV2aW91cyBldmVudCBzYWZlIGFyZWEgc28gdGhhdCB5b3UgY2FuJ3QgYWNjaWRlbnRhbGx5IGhvdmVyIHRoZSAqL1xuICAgIC8qIHByZXZpb3VzIGV2ZW50IHdoaWxlIHRyeWluZyB0byBtb3VzZSBpbnRvIHRoZSBhY3Rpb24gYmFyIG9yIGZyb20gdGhlICovXG4gICAgLyogcmVhY3QgYnV0dG9uIHRvIGl0cyB0b29sdGlwLiAqL1xuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgLyogdG9vbHRpcCBzYWZlIG1vdXNpbmcgYXJlYSArIHRvb2x0aXAgb3ZlcmhhbmcgKyAqL1xuICAgICAgICAvKiBhY3Rpb24gYmFyICsgYWN0aW9uIGJhciBvZmZzZXQgZnJvbSBldmVudCAqL1xuICAgICAgICB3aWR0aDogY2FsYygxMHB4ICsgNDhweCArIDEwMCUgKyA4cHgpO1xuICAgICAgICAvKiBzYWZlIGFyZWEgKyBhY3Rpb24gYmFyICovXG4gICAgICAgIGhlaWdodDogY2FsYygyMHB4ICsgMTAwJSk7XG4gICAgICAgIHRvcDogLTEycHg7XG4gICAgICAgIGxlZnQ6IC01OHB4O1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgY3Vyc29yOiBpbml0aWFsO1xuXG4gICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGluZS1sZW5ndGggKi9cbiAgICAgICAgLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5W2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdXG4gICAgICAgICAgICAubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlfdG9nZ2xlXG4gICAgICAgICAgICB+IC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV91bnN0eWxlZExpc3RcbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfaW5mbzpmaXJzdC1vZi10eXBlXG4gICAgICAgICAgICAmIHtcbiAgICAgICAgICAgIC8qIGltcHJvdmUgY2xpY2thYmlsaXR5IG9mIFwiY29sbGFwc2VcIiBsaW5rIGJ1dHRvbiBvbiBidWJibGUgbGF5b3V0IGJ5IHJlZHVjaW5nIHdpZHRoIGFuZCBoZWlnaHQgdmFsdWVzICovXG4gICAgICAgICAgICAvKiBteF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV90b2dnbGUgfjogdG8gYXBwbHkgcnVsZXMgdG8gYWN0aW9uIGJhciB3aGVuIFwiY29sbGFwc2VcIiBidXR0b24gaXMgYXZhaWxhYmxlICovXG4gICAgICAgICAgICAvKiBteF9FdmVudFRpbGVfaW5mbzpmaXJzdC1vZi10eXBlOiB0byBhcHBseSBydWxlcyB0byB0aGUgaW5mbyBldmVudCB0aWxlIGp1c3QgdW5kZXIgXCJjb2xsYXBzZVwiIGJ1dHRvbiAqL1xuICAgICAgICAgICAgLyogVE9ETzogdXNlIGEgbmV3IGNsYXNzIG5hbWUgaW5zdGVhZCAqL1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9pbmZvIC5teF9WaWV3U291cmNlRXZlbnQgfiAmIHtcbiAgICAgICAgICAgIC8qIGltcHJvdmUgY2xpY2thYmlsaXR5IG9mIHZpZXcgc291cmNlIGV2ZW50IHRvZ2dsZSBidXR0b24gYnkgcmVtb3ZpbmcgdmVydGljYWwgc2FmZSBhcmVhICovXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVGV4dHVhbEJvZHlfdXJsUHJldmlld3Mge1xuICAgIC8qIExldCBzaGFyZWQtY29tcG9uZW50cyBvd24gcHJldmlldyBsaW5rIGNvbG91cnMgaW5zdGVhZCBvZiB0aGUgYXBwLXdpZGUgYW5jaG9yIGNvbG91ci4gKi9cbiAgICBhOndoZXJlKDpub3QoW2RhdGEta2luZF0pKTpob3ZlcixcbiAgICBhOndoZXJlKDpub3QoW2RhdGEta2luZF0pKTpsaW5rLFxuICAgIGE6d2hlcmUoOm5vdChbZGF0YS1raW5kXSkpOnZpc2l0ZWQge1xuICAgICAgICBjb2xvcjogcmV2ZXJ0LWxheWVyO1xuICAgIH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNiBFbGVtZW50IENyZWF0aW9ucyBMdGQuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG4gKiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuICovXG5cbi5teF9UaHJlYWRBY3Rpb25CYXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgdG9wOiBjYWxjKC0xICogKDI4cHggKyAyICogKDNweCArIHZhcigtLWNwZC1ib3JkZXItd2lkdGgtMSkpKSk7XG4gICAgcmlnaHQ6IDhweDtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAvKiBFbnN1cmUgdGhlIGFjdGlvbiBiYXIgYXBwZWFycyBhYm92ZSBvdGhlciB0aGluZ3MgbGlrZSB0aGUgcmVhZCBtYXJrZXIgKi9cbiAgICAvKiBhbmQgc2VuZGVyIGF2YXRhciAoZm9yIHNtYWxsIHNjcmVlbnMpICovXG4gICAgei1pbmRleDogMTA7XG5cbiAgICAvKiBBZGRzIGEgcHJldmlvdXMgZXZlbnQgc2FmZSBhcmVhIHNvIHRoYXQgeW91IGNhbid0IGFjY2lkZW50YWxseSBob3ZlciB0aGUgKi9cbiAgICAvKiBwcmV2aW91cyBldmVudCB3aGlsZSB0cnlpbmcgdG8gbW91c2UgaW50byB0aGUgYWN0aW9uIGJhciBvciBmcm9tIHRoZSAqL1xuICAgIC8qIHJlYWN0IGJ1dHRvbiB0byBpdHMgdG9vbHRpcC4gKi9cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIC8qIHRvb2x0aXAgc2FmZSBtb3VzaW5nIGFyZWEgKyB0b29sdGlwIG92ZXJoYW5nICsgKi9cbiAgICAgICAgLyogYWN0aW9uIGJhciArIGFjdGlvbiBiYXIgb2Zmc2V0IGZyb20gZXZlbnQgKi9cbiAgICAgICAgd2lkdGg6IGNhbGMoMTBweCArIDQ4cHggKyAxMDAlICsgOHB4KTtcbiAgICAgICAgLyogc2FmZSBhcmVhICsgYWN0aW9uIGJhciAqL1xuICAgICAgICBoZWlnaHQ6IGNhbGMoMjBweCArIDEwMCUpO1xuICAgICAgICB0b3A6IC0xMnB4O1xuICAgICAgICBsZWZ0OiAtNThweDtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgIGN1cnNvcjogaW5pdGlhbDtcblxuICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxpbmUtbGVuZ3RoICovXG4gICAgICAgIC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeVtkYXRhLWxheW91dD1cImJ1YmJsZVwiXVxuICAgICAgICAgICAgLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X3RvZ2dsZVxuICAgICAgICAgICAgfiAubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlfdW5zdHlsZWRMaXN0XG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2luZm86Zmlyc3Qtb2YtdHlwZVxuICAgICAgICAgICAgJiB7XG4gICAgICAgICAgICAvKiBpbXByb3ZlIGNsaWNrYWJpbGl0eSBvZiBcImNvbGxhcHNlXCIgbGluayBidXR0b24gb24gYnViYmxlIGxheW91dCBieSByZWR1Y2luZyB3aWR0aCBhbmQgaGVpZ2h0IHZhbHVlcyAqL1xuICAgICAgICAgICAgLyogbXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlfdG9nZ2xlIH46IHRvIGFwcGx5IHJ1bGVzIHRvIGFjdGlvbiBiYXIgd2hlbiBcImNvbGxhcHNlXCIgYnV0dG9uIGlzIGF2YWlsYWJsZSAqL1xuICAgICAgICAgICAgLyogbXhfRXZlbnRUaWxlX2luZm86Zmlyc3Qtb2YtdHlwZTogdG8gYXBwbHkgcnVsZXMgdG8gdGhlIGluZm8gZXZlbnQgdGlsZSBqdXN0IHVuZGVyIFwiY29sbGFwc2VcIiBidXR0b24gKi9cbiAgICAgICAgICAgIC8qIFRPRE86IHVzZSBhIG5ldyBjbGFzcyBuYW1lIGluc3RlYWQgKi9cbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfaW5mbyAubXhfVmlld1NvdXJjZUV2ZW50IH4gJiB7XG4gICAgICAgICAgICAvKiBpbXByb3ZlIGNsaWNrYWJpbGl0eSBvZiB2aWV3IHNvdXJjZSBldmVudCB0b2dnbGUgYnV0dG9uIGJ5IHJlbW92aW5nIHZlcnRpY2FsIHNhZmUgYXJlYSAqL1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTksIDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0V2ZW50VGlsZUJ1YmJsZS5teF9jcnlwdG9FdmVudCB7XG4gICAgbWFyZ2luOiB2YXIoLS1FdmVudFRpbGVCdWJibGVfbWFyZ2luLWJsb2NrKSBhdXRvO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1BvbGxIaXN0b3J5X2NvbnRlbnQge1xuICAgIGhlaWdodDogNjAwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5teF9Qb2xsSGlzdG9yeV9oZWFkZXIubXhfSGVhZGluZ19oMiB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Qb2xsSGlzdG9yeUxpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xufVxuXG4ubXhfUG9sbEhpc3RvcnlMaXN0X2xpc3Qge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luLWJsb2NrOiAwO1xuICAgIHBhZGRpbmctaW5saW5lOiAwO1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS01eCk7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTE2eCk7XG4gICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtOHgpIDA7XG5cbiAgICAmLm14X1BvbGxIaXN0b3J5TGlzdF9saXN0X0VOREVEIHtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuICAgIH1cbn1cblxuLm14X1BvbGxIaXN0b3J5TGlzdF9ub1Jlc3VsdHMge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tY3BkLXNwYWNlLTE2eCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcblxuICAgIC5teF9Qb2xsSGlzdG9yeUxpc3RfbG9hZE1vcmVQb2xscyB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgfVxufVxuXG4ubXhfUG9sbEhpc3RvcnlMaXN0X2xvYWRpbmcge1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgLyogY2VudGVyIGluIGFsbCBmcmVlIHNwYWNlXG4gICAgd2hlbiB0aGVyZSBhcmUgbm8gcmVzdWx0cyAqL1xuICAgICYubXhfUG9sbEhpc3RvcnlMaXN0X25vUmVzdWx0c1lldCB7XG4gICAgICAgIG1hcmdpbjogYXV0byBhdXRvO1xuICAgIH1cbn1cblxuLm14X1BvbGxIaXN0b3J5TGlzdF9sb2FkTW9yZVBvbGxzIHtcbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQmFzZUNhcmQge1xuICAgIC0tQmFzZUNhcmRfRXZlbnRUaWxlX2xpbmUtcGFkZGluZy1ibG9jazogMnB4O1xuICAgIC0tQmFzZUNhcmRfRXZlbnRUaWxlLXNwYWNpbmctaW5saW5lOiAzNnB4O1xuICAgIC0tQmFzZUNhcmRfaGVhZGVyLWJ1dHRvbi1zaXplOiAyOHB4O1xuXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleDogMTtcbiAgICBmb250LXNpemU6IHZhcigtLWNwZC1mb250LXNpemUtYm9keS1tZCk7XG5cbiAgICAubXhfQmFzZUNhcmRfaGVhZGVyIHtcbiAgICAgICAgaGVpZ2h0OiA2NHB4O1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAvKiBjaGFuZ2luZyB0aGUgY29sb3IgZnJvbSAkc2VwYXJhdG9yIHRvIHRyYW5zcGFyZW50IGFzIGl0IGlzXG4gICAgICAgICAgIHRoZSBiZXN0IHZpc3VhbCBvdXRwdXQgZHVyaW5nIHRoZSB0cmFuc2l0aW9uIHBlcmlvZC4gVGhpcyB3aWxsIGJlXG4gICAgICAgICAgIHJlaW50cm9kdWNlZCBhdCBhIGxhdGVyIHN0YWdlLiAqL1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgYm9yZGVyLWJsb2NrLWVuZDogdmFyKC0tY3BkLWJvcmRlci13aWR0aC0xKSBzb2xpZCAkc2VwYXJhdG9yO1xuXG4gICAgICAgIC5teF9CYXNlQ2FyZF9oZWFkZXJfc3BhY2VyIHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIH1cblxuICAgICAgICA+IGgyIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCA0NHB4O1xuICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1zZW1pYm9sZCk7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0Jhc2VDYXJkX2hlYWRlcl90aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICAgIGZsZXg6IDE7XG5cbiAgICAgICAgICAgIC5teF9CYXNlQ2FyZF9oZWFkZXJfdGl0bGVfaGVhZGluZyB7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtbWVkaXVtKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0Jhc2VDYXJkX2hlYWRlcl90aXRsZV9idXR0b24tLW9wdGlvbiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKHZhcigtLUJhc2VDYXJkX2hlYWRlci1idXR0b24tc2l6ZSkgLSA0cHgpO1xuICAgICAgICAgICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1CYXNlQ2FyZF9oZWFkZXItYnV0dG9uLXNpemUpIC0gNHB4KTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAycHg7XG5cbiAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9BdXRvSGlkZVNjcm9sbGJhciB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZTtcbiAgICB9XG5cbiAgICAubXhfQmFzZUNhcmRfZm9vdGVyIHtcbiAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9zZWNvbmRhcnkge1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxNDEsIDE1MSwgMTY1LCAwLjIpO1xuICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1zZW1pYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9kaXNhYmxlZCB7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfQ29udGV4dHVhbE1lbnVfd3JhcHBlci5teF9CYXNlQ2FyZF9oZWFkZXJfdGl0bGUge1xuICAgIC5teF9Db250ZXh0dWFsTWVudSB7XG4gICAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuXG4gICAgICAgIHNwYW46Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcblxuICAgICAgICBib3JkZXI6IHZhcigtLWNwZC1ib3JkZXItd2lkdGgtMSkgc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1zZWNvbmRhcnkpO1xuICAgICAgICBib3gtc2hhZG93OiAwcHggNHB4IDI0cHggcmdiKDAsIDAsIDAsIDAuMSk7XG4gICAgfVxuXG4gICAgLm14X0NvbnRleHR1YWxNZW51X2NoZXZyb25fdG9wIHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IDIycHg7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtc2Vjb25kYXJ5KTtcblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgYm9yZGVyOiBpbmhlcml0O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMXB4O1xuICAgICAgICAgICAgbGVmdDogLThweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDI0IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9FbXB0eVN0YXRlIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiA1NnB4O1xuICAgICAgICBoZWlnaHQ6IDU2cHg7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBhbmVsLWFjdGlvbnM7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgLyogQmxvb20gdXNpbmcgbWFnaWMgbnVtYmVycyBkaXJlY3RseSBvdXQgb2YgRmlnbWEgKi9cbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgd2lkdGg6IDY0MnB4O1xuICAgICAgICBoZWlnaHQ6IDc3NXB4O1xuICAgICAgICByaWdodDogLTI1My43N3B4O1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudCg0OS45NSUgNDkuOTUlIGF0IDUwJSA1MCUsIHJnYigxMywgMTg5LCAxMzksIDAuMTIpIDAlLCByZ2IoMTgsIDExNSwgMjM1LCAwKSAxMDAlKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTg5LjY5ZGVnKTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRW5jcnlwdGlvbkluZm9fc3Bpbm5lciB7XG4gICAgLm14X1NwaW5uZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAyNXB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIH1cblxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDI0IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9FeHRlbnNpb25zQ2FyZCB7XG4gICAgLS1jcGQtc2VwYXJhdG9yLXNwYWNpbmc6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgLS1BZGRFeHRlbnNpb24tb3ZlcmxhcDogLTc2cHg7XG4gICAgLm14X0F1dG9IaWRlU2Nyb2xsYmFyIHtcbiAgICAgICAgcGFkZGluZzogMCB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgICAgIC8qIFN0eWxpbmcgZm9yIHRoZSBcIkFkZCBleHRlbnNpb25zXCIgYnV0dG9uICovXG4gICAgICAgICYgPiBidXR0b24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRXh0ZW5zaW9uc0NhcmRfY29udGFpbmVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS01eCkgdmFyKC0tY3BkLXNwYWNlLTR4KSAwO1xuICAgIH1cblxuICAgIC5teF9FeHRlbnNpb25zQ2FyZF9CdXR0b24ge1xuICAgICAgICAvKiB0aGlzIGJ1dHRvbiBpcyBzcGVjaWFsIHNvIHdlIGhhdmUgdG8gb3ZlcnJpZGUgc29tZSBvZiB0aGUgb3JpZ2luYWwgc3R5bGluZyAqL1xuICAgICAgICAvKiBhcyB3ZSB3aWxsIGJlIGFwcGx5aW5nIGl0IGluIGl0cyBjaGlsZHJlbiAqL1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIC5teF9XaWRnZXRBdmF0YXIge1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXh0ZW5zaW9uc0NhcmRfaWNvbl9hcHAge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KSB2YXIoLS1jcGQtc3BhY2UtMTJ4KSB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXh0ZW5zaW9uc0NhcmRfYXBwX3BpblRvZ2dsZSxcbiAgICAgICAgLm14X0V4dGVuc2lvbnNDYXJkX2FwcF9vcHRpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTsgLyogdG8gZ2l2ZSBiaWdnZXIgaW50ZXJhY3RpdmUgem9uZSAqL1xuICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtM3gpIHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkaWNvbi1idXR0b24tY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgICAgICAgICB0b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7IC8qIGVxdWFsIHRvIHBhZGRpbmctdG9wIG9mIHBhcmVudCAqL1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTQxLCAxNTEsIDE2NSwgMC4xKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXh0ZW5zaW9uc0NhcmRfYXBwX3BpblRvZ2dsZSB7XG4gICAgICAgICAgICByaWdodDogOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V4dGVuc2lvbnNDYXJkX2FwcF9vcHRpb25zIHtcbiAgICAgICAgICAgIHJpZ2h0OiAzMnB4OyAvKiAyNCArIDggKi9cbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfRXh0ZW5zaW9uc0NhcmRfQnV0dG9uX3Bpbm5lZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC4yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfRXh0ZW5zaW9uc0NhcmRfYXBwX3BpblRvZ2dsZSBzdmcge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IHVuc2V0O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpOyAvKiByZS1hbGlnbiBiYXNlZCBvbiB0aGUgaGVpZ2h0IGNoYW5nZSAqL1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIHBhc3MgdGhyb3VnaCB0byB0aGUgcmVhbCBidXR0b24gKi9cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIFNldCBsYXlvdXQgZm9yIGV2ZXJ5b25lIGJ1dHRvbiAqL1xuICAgIGFbZGF0YS1raW5kPVwicHJpbWFyeVwiXSB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0xMHgpO1xuICAgIH1cblxuICAgIC5teF9FbXB0eVN0YXRlOjpiZWZvcmUge1xuICAgICAgICAvKiBPdmVybGFwIHRoZSBBZGQgZXh0ZW5zaW9ucyBidXR0b24gKi9cbiAgICAgICAgdG9wOiB2YXIoLS1BZGRFeHRlbnNpb24tb3ZlcmxhcCk7XG4gICAgfVxuXG4gICAgLm14X0VtcHR5U3RhdGUge1xuICAgICAgICAvKiBTdG9wIGVtcHR5IHN0YXRlIHNjcm9sbGluZyAqL1xuICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIHZhcigtLUFkZEV4dGVuc2lvbi1vdmVybGFwKSk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Bpbm5lZE1lc3NhZ2VzQ2FyZCB7XG4gICAgLS11bnBpbi1oZWlnaHQ6IDc2cHg7XG5cbiAgICAubXhfUGlubmVkTWVzc2FnZXNDYXJkX3dyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICAgICAgLm14X1Bpbm5lZE1lc3NhZ2VzQ2FyZF9TZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWluLWhlaWdodDogMXB4O1xuICAgICAgICAgICAgLyogT3ZlcnJpZGUgZGVmYXVsdCBjb21wb3VuZCB2YWx1ZSAqL1xuICAgICAgICAgICAgbWFyZ2luLWJsb2NrOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1Bpbm5lZE1lc3NhZ2VzQ2FyZF93cmFwcGVyX3VucGluX2FsbCB7XG4gICAgICAgIC8qIFJlbW92ZSB0aGUgdW5waW4gYWxsIGJ1dHRvbiBoZWlnaHQgYW5kIHRoZSB0b3AgYW5kIGJvdHRvbSBwYWRkaW5nICAqL1xuICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIHZhcigtLXVucGluLWhlaWdodCkgLSBjYWxjKHZhcigtLWNwZC1zcGFjZS00eCkgKiAyKSk7XG4gICAgfVxuXG4gICAgLm14X1Bpbm5lZE1lc3NhZ2VzQ2FyZF91bnBpbiB7XG4gICAgICAgIC8qIE1ha2UgaXQgZmxvYXQgYXQgdGhlIGJvdHRvbSBvZiB0aGUgdW5waW4gcGFuZWwgKi9cbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXVucGluLWhlaWdodCk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBib3gtc2hhZG93OiAwIDRweCAyNHB4IDAgcmdiKDI3LCAyOSwgMzQsIDAuMSk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG4gICAgfVxuXG4gICAgLm14X0V2ZW50VGlsZV9ib2R5IHtcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQsIDIwMjUgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbVN1bW1hcnlDYXJkIHtcbiAgICAtLWNwZC1zZXBhcmF0b3ItaW5zZXQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgLS1jcGQtc2VwYXJhdG9yLXNwYWNpbmc6IHZhcigtLWNwZC1zcGFjZS00eCk7XG5cbiAgICAubXhfUm9vbVN1bW1hcnlDYXJkX2NvbnRhaW5lciB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtNXgpIHZhcigtLWNwZC1zcGFjZS00eCkgMDtcbiAgICB9XG5cbiAgICAubXhfUm9vbVN1bW1hcnlDYXJkX3Jvb21OYW1lLFxuICAgIC5teF9Sb29tU3VtbWFyeUNhcmRfYWxpYXMge1xuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLm14X1Jvb21TdW1tYXJ5Q2FyZF9hbGlhcyB7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIH1cblxuICAgIC5teF9Sb29tU3VtbWFyeUNhcmRfdG9waWMge1xuICAgICAgICBwYWRkaW5nOiAwIDEycHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuXG4gICAgICAgIC5teF9Sb29tU3VtbWFyeUNhcmRfdG9waWNfYm94IHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Jvb21TdW1tYXJ5Q2FyZF90b3BpY19jb250YWluZXIge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Jvb21TdW1tYXJ5Q2FyZF90b3BpY19lZGl0IHtcbiAgICAgICAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9Sb29tU3VtbWFyeUNhcmRfdG9waWNfY2hldnJvbiB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcztcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfUm9vbVN1bW1hcnlDYXJkX3RvcGljX2NvbGxhcHNlZCB7XG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgICAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAgICAgICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9Sb29tU3VtbWFyeUNhcmRfdG9waWNfY2hldnJvbiB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGluayB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTNweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgfVxufVxuXG4ubXhfUm9vbVN1bW1hcnlDYXJkX2JhZGdlcyB7XG4gICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtNHgpIDA7XG59XG5cbi5teF9Sb29tU3VtbWFyeUNhcmRfc2VhcmNoIHtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgbWluLXdpZHRoOiAwO1xuXG4gICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IHVuc2V0OyAvKiBvdmVycmlkZSBfY29tbW9uLnBjc3Mgd2hpY2ggaW5oaWJpdHMgdGhpcyAqL1xuICAgIH1cbn1cblxuLm14X1Jvb21TdW1tYXJ5Q2FyZF9yb29tTmFtZSB7XG4gICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtM3gpIDAgdmFyKC0tY3BkLXNwYWNlLTF4KTtcbn1cblxuLm14X1Jvb21TdW1tYXJ5Q2FyZF9ib3R0b21PcHRpb25zIHtcbiAgICBtYXJnaW46IDAgMCB2YXIoLS1jcGQtc3BhY2UtOHgpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEtMjAyNCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVGhyZWFkUGFuZWwge1xuICAgIGhlaWdodDogMTAwcHg7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG5cbiAgICAubXhfVGhyZWFkUGFuZWxIZWFkZXIge1xuICAgICAgICBoZWlnaHQ6IDY0cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItZ3JheS00MDApO1xuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVGhyZWFkUGFuZWxfdmVydGljYWxfc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItZ3JheS00MDApO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1RocmVhZFBhbmVsX2Ryb3Bkb3duIHtcbiAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgICAgICAgICBwYWRkaW5nOiAzcHggdmFyKC0tY3BkLXNwYWNlLTF4KSAzcHggdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICZbYXJpYS1leHBhbmRlZD1cInRydWVcIl0ge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfQXV0b0hpZGVTY3JvbGxiYXIsXG4gICAgLm14X1Jvb21WaWV3X21lc3NhZ2VQYW5lbFNwaW5uZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDA7XG4gICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDsgLyogc2V0IGdhcCBiZXR3ZWVuIHRoZSB0aHJlYWQgdGlsZSBhbmQgdGhlIHJpZ2h0IGJvcmRlciAqL1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgLm14X0V2ZW50VGlsZVtkYXRhLWxheW91dD1cImdyb3VwXCJdIHtcbiAgICAgICAgLm14X01lc3NhZ2VBY3Rpb25CYXIge1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IC0zNnB4OyAvKiAycHggYWJvdmUgRXZlbnRUaWxlICovXG4gICAgICAgICAgICB6LWluZGV4OiAxMDsgLyogU2VlIF9FdmVudFRpbGUucGNzcyAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogRm9yIHN0eWxlIHJ1bGVzIG9mIEV2ZW50VGlsZSBpbiBhIHRocmVhZCwgc2VlIF9FdmVudFRpbGUucGNzcyAqL1xuICAgICYubXhfVGhyZWFkVmlldyB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgLm14X1RocmVhZFZpZXdfdGltZWxpbmVQYW5lbFdyYXBwZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMDsgLyogZG9uJ3QgZGlzcGxhY2UgdGhlIGNvbXBvc2VyICovXG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICAgICAgICAgIC5teF9GaWxlRHJvcFRhcmdldCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X01lc3NhZ2VDb21wb3Nlcl9zZW5kTWVzc2FnZSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBNYWtlIHVzZSBvZiB0aGUgc3BhY2UgYWJvdmUgdGhlIGNvbXBvc2VyIGJ1dHRvbnMgdG9vICovXG4gICAgICAgIC5teF9BdXRvY29tcGxldGUge1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDE0MHB4KTtcbiAgICAgICAgfVxuICAgICAgICAmLm14X1RocmVhZFZpZXdfbmFycm93IC5teF9BdXRvY29tcGxldGUge1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDEwOHB4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Sb29tVmlld19tZXNzYWdlUGFuZWwge1xuICAgICAgICAmLm14X1Jvb21WaWV3X21lc3NhZ2VMaXN0V3JhcHBlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9Sb29tVmlld19tZXNzYWdlTGlzdFdyYXBwZXIge1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDZweCk7IC8qIDhweCAtIDJweCAqL1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Jvb21WaWV3X2VtcHR5IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1Jvb21WaWV3X01lc3NhZ2VMaXN0IHtcbiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgY29udGVudC12aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cblxuICAgIC5teF9FdmVudFRpbGUsXG4gICAgLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5IHtcbiAgICAgICAgLyogQWNjb3VudCBmb3Igc2Nyb2xsYmFyIHdoZW4gaG92ZXJpbmcgKi9cbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG5cbiAgICAgICAgLm14X1RpbWVsaW5lU2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0V2ZW50VGlsZV9jbGFtcDpob3ZlciB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xuICAgICAgICBwYWRkaW5nOiAwIDhweDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG5cbiAgICAubXhfQmFzZUNhcmRfZm9vdGVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6IDJweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogOHB4O1xuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGlua19pbmxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0NvbnRleHR1YWxNZW51X3dyYXBwZXIge1xuICAgIC5teF9UaHJlYWRQYW5lbF9IZWFkZXJfRmlsdGVyT3B0aW9uSXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHggMTBweCAzMHB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZXZlbnQtc2VsZWN0ZWQtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmW2FyaWEtY2hlY2tlZD1cInRydWVcIl0ge1xuICAgICAgICAgICAgc3BhbjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0yMHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMnB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTJweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAxNHB4O1xuICAgICAgICAgICAgICAgIGxlZnQ6IDEwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxLCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9UaW1lbGluZUNhcmQge1xuICAgIC5teF9UaW1lbGluZUNhcmRfdGltZWxpbmUge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIG9mZnNldCBwYXJlbnQgZm9yIGp1bXAgdG8gYm90dG9tIGJ1dHRvbiAqL1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgfVxuXG4gICAgLm14X05ld1Jvb21JbnRybyB7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLUJhc2VDYXJkX0V2ZW50VGlsZS1zcGFjaW5nLWlubGluZSk7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1CYXNlQ2FyZF9FdmVudFRpbGUtc3BhY2luZy1pbmxpbmUpO1xuICAgIH1cblxuICAgIC5teF9FdmVudFRpbGVfY29udGVudCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlIHtcbiAgICAgICAgLm14X1RocmVhZFN1bW1hcnkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTFweDtcblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAtMTZweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJG1lc3NhZ2UtYWN0aW9uLWJhci1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmW2RhdGEtbGF5b3V0PVwiaXJjXCJdLFxuICAgICAgICAmW2RhdGEtbGF5b3V0PVwiZ3JvdXBcIl0ge1xuICAgICAgICAgICAgLS1UaW1lbGluZUNhcmRfUmVhZFJlY2VpcHRHcm91cC1pbnNldC1ibG9jay1zdGFydDogLTZweDtcbiAgICAgICAgICAgIC0tRXZlbnRUaWxlX2dyb3VwX2xpbmUtc3BhY2luZy1pbmxpbmUtc3RhcnQ6IHZhcigtLUJhc2VDYXJkX0V2ZW50VGlsZS1zcGFjaW5nLWlubGluZSk7XG5cbiAgICAgICAgICAgICYubXhfRXZlbnRUaWxlX2luZm8gLm14X0V2ZW50VGlsZV9saW5lLFxuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1CYXNlQ2FyZF9FdmVudFRpbGVfbGluZS1wYWRkaW5nLWJsb2NrKSB2YXIoLS1CYXNlQ2FyZF9FdmVudFRpbGUtc3BhY2luZy1pbmxpbmUpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogdmFyKC0tTWVzc2FnZVRpbWVzdGFtcC13aWR0aCk7IC8qIGVuc3VyZSB0aW1lc3RhbXAgaXMgbm90IGhpZGRlbiAqL1xuXG4gICAgICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9lMmVJY29uIHtcbiAgICAgICAgICAgICAgICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5teF9FdmVudFRpbGVfaW5mbyB7XG4gICAgICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9hdmF0YXIge1xuICAgICAgICAgICAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDE4cHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLyogSW5mbyBldmVudHMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgc2l6ZSBhcyBzdGF0ZSBldmVudHMsIHRob3NlXG4gICAgICAgICAgICAgICAgICogYXJlIHVzdWFsbHkgd3JhcHBlZCBpbiBhIGdlbmVyaWMgZXZlbnQgbGlzdCBzdW1tYXJ5ICovXG4gICAgICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9hdmF0YXIge1xuICAgICAgICAgICAgICAgIGluc2V0LWlubGluZS1zdGFydDogLTNweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9tc2dPcHRpb24ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAwO1xuXG4gICAgICAgICAgICAgICAgLm14X1JlYWRSZWNlaXB0R3JvdXAge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IHZhcigtLVRpbWVsaW5lQ2FyZF9SZWFkUmVjZWlwdEdyb3VwLWluc2V0LWJsb2NrLXN0YXJ0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9EaXNhbWJpZ3VhdGVkUHJvZmlsZSxcbiAgICAgICAgICAgIC5teF9UaHJlYWRTdW1tYXJ5IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1CYXNlQ2FyZF9FdmVudFRpbGUtc3BhY2luZy1pbmxpbmUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGUge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tQmFzZUNhcmRfRXZlbnRUaWxlLXNwYWNpbmctaW5saW5lKSk7IC8qIGluc3RlYWQgb2YgJGxlZnQtZ3V0dGVyICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9SZXBseVRpbGUgLm14X0Rpc2FtYmlndWF0ZWRQcm9maWxlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogdW5zZXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9NZXNzYWdlVGltZXN0YW1wIHtcbiAgICAgICAgICAgICAgICBpbnNldC1pbmxpbmU6IGF1dG8gMDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9SZWFjdGlvbnNSb3cge1xuICAgICAgICAgICAgICAgIC8qIFNlZTogdmFyKC0tVGhyZWFkVmlld19ncm91cF9zcGFjaW5nLWVuZCkgZm9yIFJlYWN0aW9uc1JvdyBvbiBfRXZlbnRUaWxlLnBjc3MgKi9cbiAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1RocmVhZFN1bW1hcnkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAwO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogbWluKGNhbGMoMTAwJSAtIDM2cHgpLCA2MDBweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmW2RhdGEtbGF5b3V0PVwiaXJjXCJdIHtcbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfYXZhdGFyLFxuICAgICAgICAgICAgLm14X01lc3NhZ2VUaW1lc3RhbXAge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1sYXlvdXQ9XCJncm91cFwiXSB7XG4gICAgICAgICAgICAvKiBSZWFkIHJlY2VpcHQgZ3JvdXAgb24gY29tcGFjdCBtb2Rlcm4gbGF5b3V0ICovXG4gICAgICAgICAgICAvKiBUaGlzIGlzIHJlcXVpcmVkIGJlY2F1c2UgbXhfVGltZWxpbmVDYXJkIGlzIGEgY2hpbGQgZWxlbWVudCB3cmFwcGVkIGJ5IG14X01hdHJpeENoYXRfdXNlQ29tcGFjdExheW91dCwgKi9cbiAgICAgICAgICAgIC8qIHdoaWNoIHNwZWNpZmllcyB0aGUgZGVmYXVsdCBwb3NpdGlvbiBvZiBteF9SZWFkUmVjZWlwdEdyb3VwIG9uIGNvbXBhY3QgbW9kZXJuIGxheW91dC4gKi9cbiAgICAgICAgICAgIC5teF9NYXRyaXhDaGF0X3VzZUNvbXBhY3RMYXlvdXQgJiAubXhfUmVhZFJlY2VpcHRHcm91cCB7XG4gICAgICAgICAgICAgICAgdG9wOiB2YXIoLS1UaW1lbGluZUNhcmRfUmVhZFJlY2VpcHRHcm91cC1pbnNldC1ibG9jay1zdGFydCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmW2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgei1pbmRleDogYXV0bzsgLyogZW5hYmxlIGJhY2tncm91bmQgY29sb3Igb24gaG92ZXIgKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5teF9FdmVudFRpbGVfaW5mbyAubXhfTWVzc2FnZUFjdGlvbkJhciB7XG4gICAgICAgICAgICAgICAgLyogMXB4OiBib3JkZXIgd2lkdGggKi9cbiAgICAgICAgICAgICAgICBpbnNldC1pbmxpbmUtZW5kOiBjYWxjKHZhcigtLWNvbnRhaW5lci1nYXAtd2lkdGgpICsgMXB4KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1JlYWN0aW9uc1JvdyB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBkaXNwbGF5IG9uIGhvdmVyICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTGVnYWN5Q2FsbEV2ZW50X3dyYXBwZXIge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBhdXRvIDVweDtcbiAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudCB7XG4gICAgICAgICAgICBtYXJnaW46IDRweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeSB7XG4gICAgICAgICZbZGF0YS1sYXlvdXQ9XCJpcmNcIl0sXG4gICAgICAgICZbZGF0YS1sYXlvdXQ9XCJncm91cFwiXSB7XG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUsXG4gICAgICAgICAgICAubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlfdW5zdHlsZWRMaXN0ID4gLm14X0V2ZW50VGlsZV9pbmZvIC5teF9FdmVudFRpbGVfYXZhdGFyIH4gLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0tQmFzZUNhcmRfRXZlbnRUaWxlLXNwYWNpbmctaW5saW5lKTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IHZhcigtLU1lc3NhZ2VUaW1lc3RhbXAtd2lkdGgpOyAvKiBlbnN1cmUgdGltZXN0YW1wIGlzIG5vdCBoaWRkZW4gKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9XaG9Jc1R5cGluZ1RpbGUge1xuICAgICAgICBtYXJnaW4tbGVmdDogLTEycHg7IC8qIHVuZG8gcGFkZGluZyBvbiB0aGUgbWVzc2FnZSBsaXN0ICovXG4gICAgfVxuXG4gICAgLm14X1dob0lzVHlwaW5nVGlsZV9hdmF0YXJzIHtcbiAgICAgICAgZmxleC1iYXNpczogNDhweDsgLyogMTIgKHBhZGRpbmcgb24gbWVzc2FnZSBsaXN0KSArIDM2IChwYWRkaW5nIG9uIGV2ZW50IGxpbmVzKSAqL1xuICAgIH1cblxuICAgIC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV91bnN0eWxlZExpc3QsIC8qIFJSIG5leHQgdG8gYSBtZXNzYWdlIG9uIHRoZSBldmVudCBsaXN0IHN1bW1hcnkgKi9cbiAgICAubXhfUm9vbVZpZXdfTWVzc2FnZUxpc3Qge1xuICAgICAgICAvKiBSUiBuZXh0IHRvIGEgbWVzc2FnZSBvbiB0aGUgbWVzc3NnZSBsaXN0ICovXG4gICAgICAgIC5teF9FdmVudFRpbGVbZGF0YS1sYXlvdXQ9XCJidWJibGVcIl0ge1xuICAgICAgICAgICAgLm14X1JlYWRSZWNlaXB0R3JvdXAge1xuICAgICAgICAgICAgICAgIC8qIDZweDogc2Nyb2xsIGJhciB3aWR0aCAobWFnaWMgbnVtYmVyKSAqL1xuICAgICAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBkZWNsYXJhdGlvbi1jb2xvbi1zcGFjZS1hZnRlciAqL1xuICAgICAgICAgICAgICAgIGluc2V0LWlubGluZS1lbmQ6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgIC0xICogdmFyKC0tUmVhZFJlY2VpcHRHcm91cF9FdmVudEJ1YmJsZVRpbGUtc3BhY2luZy1lbmQpICsgdmFyKC0tY29udGFpbmVyLWdhcC13aWR0aCkgKyA2cHhcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLm14X0V2ZW50VGlsZV9pbmZvIHtcbiAgICAgICAgICAgICAgICAubXhfUmVhZFJlY2VpcHRHcm91cCB7XG4gICAgICAgICAgICAgICAgICAgIGluc2V0LWlubGluZS1lbmQ6IC00cHg7IC8qIGFsaWduIHdpdGggUlIgb3V0c2lkZSBvZiBpbmZvIHRpbGUgKi9cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1VzZXJJbmZvLm14X0Jhc2VDYXJkIHtcbiAgICAvKiBVc2VySW5mbyBoYXMgYSBjaXJjdWxhciBpbWFnZSBhdCB0aGUgdG9wIHNvIGl0IGZpdHMgYmV0d2VlbiB0aGUgYmFjayAmIGNsb3NlIGJ1dHRvbnMgKi9cbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tY3BkLWZvbnQtc2l6ZS1ib2R5LXNtKTtcblxuICAgIC5teF9Vc2VySW5mb19jb250YWluZXIge1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpIDAgdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgbWFyZ2luOiAwIHZhcigtLWNwZC1zcGFjZS00eCk7XG5cbiAgICAgICAgJiArIC5teF9Vc2VySW5mb19jb250YWluZXIge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXBhcmF0b3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfVXNlckluZm9fbWVtYmVyRGV0YWlsc0NvbnRhaW5lciB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICB9XG5cbiAgICAubXhfUm9vbVRpbGVfdGl0bGVDb250YWluZXIge1xuICAgICAgICB3aWR0aDogMTU0cHg7XG4gICAgfVxuXG4gICAgLm14X1Jvb21UaWxlX2JhZGdlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAubXhfUm9vbVRpbGVfdGl0bGUge1xuICAgICAgICB3aWR0aDogMTYwcHg7XG4gICAgfVxuXG4gICAgLm14X1VzZXJJbmZvX2F2YXRhciB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTEyeCkgdmFyKC0tY3BkLXNwYWNlLTR4KSAwIHZhcigtLWNwZC1zcGFjZS00eCk7XG5cbiAgICAgICAgLm14X1VzZXJJbmZvX2F2YXRhcl90cmFuc2l0aW9uIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTIwcHg7XG4gICAgICAgICAgICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAwLjVzO1xuXG4gICAgICAgICAgICAubXhfQmFzZUF2YXRhciB7XG4gICAgICAgICAgICAgICAgLyogT3ZlcnJpZGUgdGhlIGNhbGN1bGF0ZWQgZm9udC1zaXplIHNvIHRoYXQgdGhlIGxldHRlciBpc24ndCB0aW55ICovXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiA0cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfQmFzZUF2YXRhcixcbiAgICAgICAgICAgIC5teF9CYXNlQXZhdGFyIGltZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaDIge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtc2VtaWJvbGQpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMXgpIDA7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIG1hcmdpbjogNXB4IDA7XG4gICAgfVxuXG4gICAgLm14X1VzZXJJbmZvX2hlYWRlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS04eCk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC5teF9Vc2VySW5mb19wcm9maWxlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuXG4gICAgICAgIGgxIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMjBweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1VzZXJJbmZvX3Byb2ZpbGVfbmFtZSB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAzMHB4O1xuXG4gICAgICAgICAgICAvKiBsaW1pdCB0byAyIGxpbmVzLCBzaG93IGFuIGVsbGlwc2lzIGlmIGl0IG92ZXJmbG93cyAqL1xuICAgICAgICAgICAgLyogdGhpcyBsb29rcyB3ZWJraXQgc3BlY2lmaWMgYnV0IGlzIHN1cHBvcnRlZCBieSBGaXJlZm94IDY4KyAqL1xuICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuXG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVXNlckluZm9fcHJvZmlsZV9teGlkIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1VzZXJJbmZvX3Byb2ZpbGVTdGF0dXMge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1VzZXJJbmZvX3RpbWV6b25lIHtcbiAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqIE92ZXJyaWRlcyBmb3IgdGhlIGNvcHkgdG8gY2xpcGJvYXJkIGJ1dHRvbiAqKi9cbiAgICAgICAgLm14X0NvcHlhYmxlVGV4dCB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0NvcHlhYmxlVGV4dF9jb3B5QnV0dG9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogdW5zZXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfVXNlckluZm9fdGltZXpvbmUge1xuICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0xeCkgMDtcbiAgICB9XG5cbiAgICAubXhfUHJlc2VuY2VMYWJlbCB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgLm14X1VzZXJJbmZvX3ZlcmlmaWNhdGlvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIGhlaWdodDogMzZweDtcblxuICAgICAgICAubXhfVXNlckluZm9fdmVyaWZpZWRfYmFkZ2Uge1xuICAgICAgICAgICAgbWluLXdpZHRoOiA2OHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuXG4gICAgICAgICAgICAubXhfVXNlckluZm9fdmVyaWZpZWRfaWNvbiB7XG4gICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9Vc2VySW5mb192ZXJpZmllZF9sYWJlbCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1VzZXJJbmZvX3ZlcmlmaWNhdGlvbl91bmF2YWlsYWJsZSB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Vc2VySW5mb19tZW1iZXJEZXRhaWxzIHtcbiAgICAgICAgLm14X1VzZXJJbmZvX3Byb2ZpbGVGaWVsZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICBtYXJnaW46IDZweCAwO1xuXG4gICAgICAgICAgICAubXhfVXNlckluZm9fcm9sZURlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgLyogdHJ5IHRvIG1ha2UgaXQgdGhlIHNhbWUgaGVpZ2h0IGFzIHRoZSBkcm9wZG93biAqL1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMTFweCAwIDEycHggMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0ZpZWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfVXNlckluZm9fZmllbGQge1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTZweDtcbiAgICB9XG5cbiAgICAubXhfVXNlckluZm9fc3RhdHVzTWVzc2FnZSB7XG4gICAgICAgICRzdGF0dXNOdW1iZXJPZkxpbmVzOiAzO1xuXG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTFweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDFyZW07XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDFyZW0gKiAkc3RhdHVzTnVtYmVyT2ZMaW5lcyk7XG4gICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogJHN0YXR1c051bWJlck9mTGluZXM7XG4gICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgfVxuXG4gICAgLm14X0F1dG9IaWRlU2Nyb2xsYmFyIHtcbiAgICAgICAgZmxleDogMSAxIDA7XG4gICAgfVxuXG4gICAgJi5teF9Vc2VySW5mb19zbWFsbEF2YXRhciB7XG4gICAgICAgIC5teF9Vc2VySW5mb19hdmF0YXIge1xuICAgICAgICAgICAgLm14X1VzZXJJbmZvX2F2YXRhcl90cmFuc2l0aW9uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDcycHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgICAgICAgICAvKiBPdmVycmlkZSB0aGUgY2FsY3VsYXRlZCBmb250LXNpemUgc28gdGhhdCB0aGUgbGV0dGVyIGlzbid0IHRpbnkgKi9cbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVmVyaWZpY2F0aW9uUGFuZWxfdmVyaWZpZWRfc2VjdGlvbixcbi5teF9WZXJpZmljYXRpb25QYW5lbF9yZWNpcHJvY2F0ZV9zZWN0aW9uIHtcbiAgICAvKiBjZW50ZXIgdGhlIGJpZyBzaGllbGQgaWNvbiAqL1xuICAgIC5teF9FMkVJY29uIHtcbiAgICAgICAgLyogT3ZlcnJpZGUgZ2VuZXJhbCB1c2VyIGluZm8gbWFyZ2luICovXG4gICAgICAgIG1hcmdpbjogMjBweCBhdXRvICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4ubXhfVXNlckluZm8ubXhfQmFzZUNhcmQge1xuICAgIC5teF9Vc2VySW5mb19jb250YWluZXI6bm90KC5teF9Vc2VySW5mb19zZXBhcmF0b3IpIHtcbiAgICAgICAgPiBkaXYgPiBwIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1ZlcmlmaWNhdGlvblBhbmVsX3ZlcmlmeUJ5RW1vamlCdXR0b24sXG4gICAgICAgIC5teF9Vc2VySW5mb193aWRlQnV0dG9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FbmNyeXB0aW9uSW5mb19zcGlubmVyLFxuICAgICAgICAubXhfVmVyaWZpY2F0aW9uU2hvd1NhcyB7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3Bpbm5lcixcbiAgICAgICAgLm14X1ZlcmlmaWNhdGlvblNob3dTYXMge1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9WZXJpZmljYXRpb25QYW5lbF9xckNvZGUge1xuICAgICAgICBwYWRkaW5nOiA0cHggNHB4IDAgNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgLyogT3ZlcnJpZGUgZ2VuZXJhbCB1c2VyIGluZm8gbWFyZ2luICovXG4gICAgICAgIG1hcmdpbjogMCBhdXRvICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgY2FudmFzIHtcbiAgICAgICAgICAgIC8qIG92ZXJyaWRlIGhlaWdodCBhbmQgd2lkdGggd2hpY2ggYXJlIHNldCBvbiB0aGUgZWxlbWVudCBkaXJlY3RseSAqL1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyNDBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9WZXJpZmljYXRpb25QYW5lbF9yZWNpcHJvY2F0ZV9zZWN0aW9uIHtcbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAxMHB4IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIFNwZWNpYWwgY2FzZSBzdHlsaW5nIGZvciBFbmNyeXB0aW9uUGFuZWwgaW4gYSBNb2RhbCBkaWFsb2cgKi9cbi5teF9EaWFsb2csXG4ubXhfQ29tcGxldGVTZWN1cml0eV9ib2R5IHtcbiAgICAubXhfVmVyaWZpY2F0aW9uUGFuZWxfUVJQaGFzZV9zdGFydE9wdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgPiAubXhfVmVyaWZpY2F0aW9uUGFuZWxfUVJQaGFzZV9iZXR3ZWVuVGV4dCB7XG4gICAgICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1ZlcmlmaWNhdGlvblBhbmVsX1FSUGhhc2Vfc3RhcnRPcHRpb24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhlYWRlci1wYW5lbC1iZy1jb2xvcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzEwcHg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICAgICAgICAgIGNhbnZhcyxcbiAgICAgICAgICAgIC5teF9WZXJpZmljYXRpb25QYW5lbF9RUlBoYXNlX25vUVIge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyMjBweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjIwcHggIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA+IHAge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1ZlcmlmaWNhdGlvblBhbmVsX1FSUGhhc2VfaGVscFRleHQge1xuICAgICAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAzMHB4IDA7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogRW5jcnlwdGlvblBhbmVsIHdoZW4gdmVyaWZpY2F0aW9uIGlzIGRvbmUgKi9cbiAgICAubXhfVmVyaWZpY2F0aW9uUGFuZWxfdmVyaWZpZWRfc2VjdGlvbiB7XG4gICAgICAgIC8qIHJpZ2h0IGFsaWduIHRoZSBcIkdvdCBpdFwiIGJ1dHRvbiAqL1xuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfVmVyaWZpY2F0aW9uUGFuZWxfcmVjaXByb2NhdGVfc2VjdGlvbiB7XG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgcGFkZGluZzogN3B4IDQwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVmVyaWZpY2F0aW9uUGFuZWxfcmVjaXByb2NhdGVCdXR0b25zIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9XaWRnZXRDYXJkIHtcbiAgICAubXhfQXBwVGlsZUZ1bGxXaWR0aCB7XG4gICAgICAgIG1heC13aWR0aDogdW5zZXQ7XG4gICAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQWxpYXNTZXR0aW5nc19sb2NhbEFkZHJlc3NlcyB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcblxuICAgIC8qIGxpc3Qtc3R5bGUgZG9lc24ndCBkbyBpdCBmb3Igd2Via2l0ICovXG4gICAgJjo6LXdlYmtpdC1kZXRhaWxzLW1hcmtlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI1IE5ldyBWZWN0b3IgTHRkLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG4ubXhfUm9vbUxpc3RQYW5lbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0FwcHNEcmF3ZXIge1xuICAgIC0tbWluV2lkdGg6IDI0MHB4OyAvKiBUT0RPIHRoaXMgc2hvdWxkIGJlIDMwMHB4IGJ1dCB0aGF0J3MgdG9vIGxhcmdlICovXG5cbiAgICBtYXJnaW46IHZhcigtLWNvbnRhaW5lci1nYXAtd2lkdGgpO1xuICAgIC8qIFRoZSBsZWZ0IHNpZGUgZ2FwIGlzIGZ1bGx5IGhhbmRsZWQgYnkgdGhpcyBtYXJnaW4uIFRvIHByb2hpYml0IGJsZWVkaW5nIG9uIHdlYmtpdCBicm93c2VyLiAqL1xuICAgIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1jb250YWluZXItZ2FwLXdpZHRoKSAvIDIpO1xuICAgIG1hcmdpbi1ib3R0b206IDA7IC8qIE5vIGJvdHRvbSBtYXJnaW4gZm9yIHRoZSBjb3JyZWN0IGdhcCB0byB0aGUgQ2FsbFZpZXcgYmVsb3cuICovXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGZsZXgtZ3JvdzogMTtcblxuICAgIC5teF9BcHBzRHJhd2VyX3Jlc2l6ZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jb250YWluZXItZ2FwLXdpZHRoKTtcbiAgICB9XG5cbiAgICAubXhfQXBwc0RyYXdlcl9yZXNpemVyX2NvbnRhaW5lciB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgLm14X0FwcHNEcmF3ZXJfcmVzaXplcl9jb250YWluZXJfaGFuZGxlIHtcbiAgICAgICAgICAgIGN1cnNvcjogbnMtcmVzaXplO1xuXG4gICAgICAgICAgICAvKiBPdmVycmlkZSBzdHlsZXMgZnJvbSBsaWJyYXJ5LCBtYWtpbmcgdGhlIHdob2xlIGFyZWEgdGhlIHRhcmdldCBhcmVhICovXG4gICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgIC8qIFRoaXMgaXMgcG9zaXRpb25lZCBkaXJlY3RseSBiZWxvdyBmcmFtZSAqL1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiA1MCUgIWltcG9ydGFudDsgLyogb3ZlcnJpZGUgZnJvbSBsaWJyYXJ5ICovXG5cbiAgICAgICAgICAgIC8qIFdlIHRoZW4gcmVuZGVyIHRoZSBwaWxsIGhhbmRsZSBpbiBhbiA6OmFmdGVyIHRvIGtlZXAgaXQgaW4gdGhlIGhhbmRsZSdzICovXG4gICAgICAgICAgICAvKiBhcmVhIHdpdGhvdXQgYmVpbmcgYSBtYXNzaXZlIGxpbmUgYWNyb3NzIHRoZSBzY3JlZW4gKi9cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG5cbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDRweDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG5cbiAgICAgICAgICAgICAgICAvKiBUb2dldGhlciwgdGhlc2UgbWFrZSB0aGUgYmFyIDY0cHggd2lkZSAqL1xuICAgICAgICAgICAgICAgIC8qIFRoZXNlIGFyZSBhbHNvIG92ZXJyaWRkZW4gZnJvbSB0aGUgbGlicmFyeSAqL1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gMzJweCk7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IGNhbGMoNTAlIC0gMzJweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgLm14X0FwcHNEcmF3ZXJfcmVzaXplcl9jb250YWluZXJfaGFuZGxlOjphZnRlciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Jlc2l6ZUhhbmRsZS0taG9yaXpvbnRhbDo6YmVmb3JlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDNweDtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG5cbiAgICAgICAgICAgIGhlaWdodDogNjRweDsgLyogdG8gbWF0Y2ggd2lkdGggb2YgdGhlIG9uZXMgb24gcm9vbWxpc3QgKi9cbiAgICAgICAgICAgIHdpZHRoOiA0cHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG5cbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG5cbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfQXBwVGlsZSB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIG1pbi13aWR0aDogdmFyKC0tbWluV2lkdGgpO1xuICAgIH1cblxuICAgICYubXhfQXBwc0RyYXdlci0tbWF4aW1pc2VkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY29udGFpbmVyLWdhcC13aWR0aCk7XG4gICAgfVxuXG4gICAgJi5teF9BcHBzRHJhd2VyLS1yZXNpemluZyAubXhfQXBwVGlsZV9wZXJzaXN0ZWRXcmFwcGVyIHtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICB9XG5cbiAgICAmLm14X0FwcHNEcmF3ZXItLTJhcHBzIC5teF9BcHBUaWxlIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcblxuICAgICAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICB3aWR0aDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbWluLXdpZHRoOiB2YXIoLS1taW5XaWR0aCkgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLm14X0FwcHNEcmF3ZXItLTNhcHBzIC5teF9BcHBUaWxlIHtcbiAgICAgICAgd2lkdGg6IDMzJTtcblxuICAgICAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICB3aWR0aDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbWluLXdpZHRoOiB2YXIoLS1taW5XaWR0aCkgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0FwcHNDb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxleDogMTtcbiAgICBtaW4taGVpZ2h0OiAwO1xuXG4gICAgLm14X0FwcFRpbGU6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiB2YXIoLS1jb250YWluZXItYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweCAwIDAgMTBweDtcbiAgICB9XG4gICAgLm14X0FwcFRpbGU6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiB2YXIoLS1jb250YWluZXItYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAxMHB4IDEwcHggMDtcbiAgICB9XG5cbiAgICAubXhfUmVzaXplSGFuZGxlLS1ob3Jpem9udGFsIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfQXBwVGlsZSB7XG4gICAgYm9yZGVyOiB2YXIoLS1jb250YWluZXItYm9yZGVyLXdpZHRoKSBzb2xpZCAkd2lkZ2V0LW1lbnUtYmFyLWJnLWNvbG9yO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aWRnZXQtbWVudS1iYXItYmctY29sb3I7XG59XG5cbi5teF9BcHBUaWxlRnVsbFdpZHRoIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyAvKiB0byBvdmVycmlkZSB0aGUgaW5saW5lIHN0eWxlIHNldCBieSB0aGUgcmVzaXplciAqL1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogdmFyKC0tY29udGFpbmVyLWJvcmRlci13aWR0aCkgc29saWQgJHdpZGdldC1tZW51LWJhci1iZy1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aWRnZXQtbWVudS1iYXItYmctY29sb3I7XG59XG5cbi5teF9BcHBUaWxlX21pbmkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5teF9BcHBUaWxlIC5teF9BcHBUaWxlX3BlcnNpc3RlZFdyYXBwZXIsXG4ubXhfQXBwVGlsZUZ1bGxXaWR0aCAubXhfQXBwVGlsZV9wZXJzaXN0ZWRXcmFwcGVyLFxuLm14X0FwcFRpbGVfbWluaSAubXhfQXBwVGlsZV9wZXJzaXN0ZWRXcmFwcGVyIHtcbiAgICBmbGV4OiAxO1xufVxuXG4ubXhfQXBwVGlsZV9wZXJzaXN0ZWRXcmFwcGVyIGRpdiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ubXhfQXBwVGlsZU1lbnVCYXIge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdpZGdldC1tZW51LWJhci1iZy1jb2xvcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy10b3A6IDNweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNnB4O1xuXG4gICAgLm14X0FwcFRpbGVNZW51QmFyX3RpdGxlIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXG4gICAgICAgIC5teF9XaWRnZXRBdmF0YXIge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgaDEge1xuICAgICAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogOXB4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9BcHBUaWxlTWVudUJhcl93aWRnZXRzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAubXhfQXBwVGlsZU1lbnVCYXJfd2lkZ2V0c19idXR0b24ge1xuICAgICAgICAgICAgLS1zaXplOiAyNHB4OyAvKiBTaXplIG9mIHRoZSBidXR0b24uIEl0cyBoZWlnaHQgYW5kIHdpZHRoIHZhbHVlcyBzaG91bGQgYmUgc2FtZSAqL1xuXG4gICAgICAgICAgICBtYXJnaW46IDAgNHB4O1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplKTtcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1zaXplKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXI6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUpO1xuICAgICAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1zaXplKTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFuZWwtYWN0aW9ucztcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9JY29uIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJG11dGVkLWZnLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBSdWxlcyBhZGRlZCB0byB0aGlzIHNlbGVjdG9yIHN0eWxlIGFwcFRpbGVCb2R5IGdlbmVyYWxseSAqL1xuLm14X0FwcFRpbGVCb2R5IHtcbiAgICAvKiBBcHBseSB0byBldmVyeSB2YXJpYW50IG9mIGFwcFRpbGVCb2R5ICovXG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuXG4gICAgLyogY29uc3QgbG9hZGluZ0VsZW1lbnQgKi9cbiAgICAvKiBOb3RlIHRoZSBsb2FkaW5nIHNwaW5uZXIgYW5kIHRoZSBtZXNzYWdlIG5leHQgdG8gaXQgYXJlIG5vdCBhbHdheXMgaW5jbHVkZWQgaW4gbXhfQXBwVGlsZUJvZHktLWxvYWRpbmcgKi9cbiAgICAubXhfQXBwVGlsZUJvZHlfZmFkZUluU3Bpbm5lciB7XG4gICAgICAgIC8qIHBsYWNlIHNwaW5uZXIgYW5kIHRoZSBtZXNzYWdlIGF0IHRoZSBjZW50ZXIgb2YgbXhfQXBwVGlsZUJvZHkgKi9cbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBmb250LXdlaWdodDogYm9sZDsgLyogbWVzc2FnZSBuZXh0IHRvIHRoZSBzcGlubmVyICovXG4gICAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJhY2t3YXJkcztcbiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAyMDBtcztcbiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiA1MDBtcztcbiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IG14X0FwcFRpbGVCb2R5X2ZhZGVJblNwaW5uZXJBbmltYXRpb247XG4gICAgfVxuXG4gICAgJi5teF9BcHBUaWxlQm9keS0tbGFyZ2UsXG4gICAgJi5teF9BcHBUaWxlQm9keS0tbWluaSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgaWZyYW1lIHtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5teF9BcHBUaWxlQm9keS0tbGFyZ2Uge1xuICAgICAgICAtLUFwcFRpbGVCb2R5LWhlaWdodDogMTAwJTtcblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2lkZ2V0LWJvZHktYmctY29sb3I7XG5cbiAgICAgICAgaWZyYW1lIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0FwcFRpbGVCb2R5LS1sb2FkaW5nIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgIC8qIG1hdGNoIGJnIG9mIGJvcmRlciBzbyB0aGF0IHRoZSBjdXQgY29ybmVycyBoYXZlIHRoZSByaWdodCBmaWxsICovXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aWRnZXQtYm9keS1iZy1jb2xvciAhaW1wb3J0YW50O1xuXG4gICAgICAgIGlmcmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5teF9BcHBUaWxlQm9keS0tY2FsbCB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICB9XG4gICAgJi5teF9BcHBUaWxlQm9keS0tY2FsbC5teF9BcHBUaWxlQm9keS0tbWluaSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICB9XG59XG5cbi8qIGFwcFRpbGVCb2R5IGlzIGVtYmVkZGVkIHRvIFBlcnNpc3RlZEVsZW1lbnQgb3V0c2lkZSBvZiBteF9BcHBUaWxlLFxuICAgc28gcnVsZXMgdG8gc3R5bGUgYXBwVGlsZUJvZHkgZ2VuZXJhbGx5IHNob3VsZCBub3QgYmUgaW5jbHVkZWQgaGVyZS4gKi9cbi5teF9BcHBUaWxlIC5teF9BcHBUaWxlQm9keS0tbGFyZ2UsXG4ubXhfQXBwVGlsZUZ1bGxXaWR0aCAubXhfQXBwVGlsZUJvZHktLWxhcmdlLFxuLm14X0FwcFRpbGVfbWluaSAubXhfQXBwVGlsZUJvZHktLW1pbmkge1xuICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICBmbGV4OiAxO1xufVxuXG5Aa2V5ZnJhbWVzIG14X0FwcFRpbGVCb2R5X2ZhZGVJblNwaW5uZXJBbmltYXRpb24ge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuIiwiLm14X0F1dG9jb21wbGV0ZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICB6LWluZGV4OiAxMDAxO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRwcmltYXJ5LWhhaXJsaW5lLWNvbG9yO1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4IDhweCAwIDA7XG4gICAgb3ZlcmZsb3c6IGNsaXA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGJveC1zaGFkb3c6IDBweCAtMTZweCAzMnB4ICRjb21wb3Nlci1zaGFkb3ctY29sb3I7XG59XG5cbi5teF9BdXRvY29tcGxldGVfUHJvdmlkZXJTZWN0aW9uIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHByaW1hcnktaGFpcmxpbmUtY29sb3I7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi8qIGEgXCJibG9ja1wiIGNvbXBsZXRpb24gdGFrZXMgdXAgYSB3aG9sZSBsaW5lICovXG4ubXhfQXV0b2NvbXBsZXRlX0NvbXBsZXRpb25fYmxvY2sge1xuICAgIG1pbi1oZWlnaHQ6IDM0cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgcGFkZGluZzogMCAxMnB4O1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xufVxuXG4ubXhfQXV0b2NvbXBsZXRlX0NvbXBsZXRpb25fYmxvY2sgKiB7XG4gICAgbWFyZ2luOiAwIDNweDtcbn1cblxuLm14X0F1dG9jb21wbGV0ZV9Db21wbGV0aW9uX3BpbGwge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm9yZGVyLXJhZGl1czogMnJlbTtcbiAgICBoZWlnaHQ6ICRmb250LTM0cHg7XG4gICAgcGFkZGluZzogMC40cmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9BdXRvY29tcGxldGVfQ29tcGxldGlvbl9waWxsID4gKiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjNyZW07XG59XG5cbi8qIHN0eWxpbmcgZm9yIGNvbW1vbiBjb21wbGV0aW9uIGVsZW1lbnRzICovXG4ubXhfQXV0b2NvbXBsZXRlX0NvbXBsZXRpb25fc3VidGl0bGUge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBmbGV4OiAxO1xufVxuXG4ubXhfQXV0b2NvbXBsZXRlX0NvbXBsZXRpb25fZGVzY3JpcHRpb24ge1xuICAgIGNvbG9yOiBncmF5O1xuICAgIG1pbi13aWR0aDogMTUwcHg7XG59XG5cbi5teF9BdXRvY29tcGxldGVfQ29tcGxldGlvbl9jb250YWluZXJfcGlsbCB7XG4gICAgbWFyZ2luOiAxMnB4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG5cbkBjb250YWluZXIgcm9vbXZpZXcgKGhlaWdodCA+PSAwcHgpIHtcbiAgICAubXhfQXV0b2NvbXBsZXRlX0NvbXBsZXRpb25fY29udGFpbmVyX3BpbGwge1xuICAgICAgICBtYXgtaGVpZ2h0OiA0MGNxaDtcbiAgICB9XG59XG5cbi5teF9BdXRvY29tcGxldGVfQ29tcGxldGlvbl9jb250YWluZXJfdHJ1bmNhdGUge1xuICAgIC5teF9BdXRvY29tcGxldGVfQ29tcGxldGlvbl90aXRsZSxcbiAgICAubXhfQXV0b2NvbXBsZXRlX0NvbXBsZXRpb25fc3VidGl0bGUsXG4gICAgLm14X0F1dG9jb21wbGV0ZV9Db21wbGV0aW9uX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgLyogRWxsaXBzaXMgZm9yIGxvbmcgbmFtZXMvc3VidGl0bGVzL2Rlc2NyaXB0aW9ucyAqL1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB9XG59XG5cbi5teF9BdXRvY29tcGxldGVfQ29tcGxldGlvbi5zZWxlY3RlZCxcbi5teF9BdXRvY29tcGxldGVfQ29tcGxldGlvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHNlbGVjdGVkLWNvbG9yO1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG5cbi5teF9BdXRvY29tcGxldGVfcHJvdmlkZXJfbmFtZSB7XG4gICAgbWFyZ2luOiAxMnB4O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgb3BhY2l0eTogMC40O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE4LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9BdXhQYW5lbCB7XG4gICAgbWluLXdpZHRoOiAwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwcHggYXV0bztcblxuICAgIG92ZXJmbG93OiBhdXRvO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQmFzaWNNZXNzYWdlQ29tcG9zZXIge1xuICAgIC8qIFRoZXNlIGFyZSBzZXQgaW4gSmF2YXNjcmlwdCAqL1xuICAgIC0tYXZhdGFyLWxldHRlcjogXCJcIjtcbiAgICAtLWF2YXRhci1iYWNrZ3JvdW5kOiB1bnNldDtcbiAgICAtLWF2YXRhci1jb2xvcjogdW5zZXQ7XG4gICAgLS1wbGFjZWhvbGRlcjogXCJcIjtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5teF9CYXNpY01lc3NhZ2VDb21wb3Nlcl9pbnB1dEVtcHR5ID4gOmZpcnN0LWNoaWxkOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiB2YXIoLS1wbGFjZWhvbGRlcik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIHZpc3VhbGJlbGwge1xuICAgICAgICBmcm9tIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR2aXN1YWwtYmVsbC1iZy1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgICB0byB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfQmFzaWNNZXNzYWdlQ29tcG9zZXJfaW5wdXRfZXJyb3Ige1xuICAgICAgICBhbmltYXRpb246IDAuMnMgdmlzdWFsYmVsbDtcbiAgICB9XG5cbiAgICAubXhfQmFzaWNNZXNzYWdlQ29tcG9zZXJfaW5wdXQge1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgIC8qIEZvcmNlIGNhcmV0IG5vZGVzIHRvIGJlIHNlbGVjdGVkIGluIGZ1bGwgc28gdGhhdCB0aGV5IGNhbiBiZSAqL1xuICAgICAgICAvKiBuYXZpZ2F0ZWQgdGhyb3VnaCBpbiBhIHNpbmdsZSBrZXlwcmVzcyAqL1xuICAgICAgICAuY2FyZXROb2RlIHtcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBhbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0Jhc2ljTWVzc2FnZUNvbXBvc2VyX2lucHV0X3Nob3VsZFNob3dQaWxsQXZhdGFyIHtcbiAgICAgICAgICAgIHNwYW4ubXhfVXNlclBpbGwsXG4gICAgICAgICAgICBzcGFuLm14X1Jvb21QaWxsLFxuICAgICAgICAgICAgc3Bhbi5teF9TcGFjZVBpbGwge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IGFsbDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiB1bnNldDsgLyogV2UgZG9uJ3Qgd2FudCBpbmRpY2F0ZSBjbGlja2FiaWxpdHkgKi9cbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgLyogV2UgZG9uJ3Qgd2FudCBpbmRpY2F0ZSBjbGlja2FiaWxpdHkgfCBUbyBvdmVycmlkZSB0aGUgb3ZlcnJpZGluZyBvZiAubWFya2Rvd24tYm9keSAqL1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGlsbC1iZy1jb2xvciAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8qIGF2YXRhciBwc3VlZG8gZWxlbWVudCAqL1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogdmFyKC0tYXZhdGFyLWxldHRlcik7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAkZm9udC0xNnB4O1xuICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6ICRmb250LTE2cHg7IC8qIGVuc3VyZSB0aGUgYXZhdGFyIGlzIG5vdCBjb21wcmVzc2VkICovXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJGZvbnQtMTZweDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDAuMjRyZW07XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWF2YXRhci1iYWNrZ3JvdW5kKSwgJGJhY2tncm91bmQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1hdmF0YXItY29sb3IsICRhdmF0YXItaW5pdGlhbC1jb2xvcik7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogJGZvbnQtMTZweDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGZvbnQtMTZweDtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTZweDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMC00cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9CYXNpY01lc3NhZ2VDb21wb3Nlcl9pbnB1dF9kaXNhYmxlZCB7XG4gICAgICAgICAgICAvKiBJZ25vcmUgYWxsIHVzZXIgaW5wdXQgdG8gYXZvaWQgYWNjaWRlbnRhbGx5IHRyaWdnZXJpbmcgdGhlIGNvbXBvc2VyICovXG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9CYXNpY01lc3NhZ2VDb21wb3Nlcl9BdXRvQ29tcGxldGVXcmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgfVxufVxuIiwiLm14X0pvaW5SdWxlRGlhbG9nIHtcbiAgICAubXhfSm9pblJ1bGVEaWFsb2dCdXR0b25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY29sdW1uLWdhcDogNXB4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0UyRUljb24ge1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBtYXJnaW46IDAgOXB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuXG4ubXhfRTJFSWNvbi5teF9FMkVJY29uX2lubGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRTJFSWNvblZpZXcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLm14X0UyRUljb25WaWV3X3dhcm5pbmcge1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1jcml0aWNhbC1wcmltYXJ5KTtcbn1cblxuLm14X0UyRUljb25WaWV3X3ZlcmlmaWVkIHtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tc3VjY2Vzcy1wcmltYXJ5KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTkgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0VkaXRNZXNzYWdlQ29tcG9zZXIge1xuICAgIC0tRWRpdE1lc3NhZ2VDb21wb3Nlci1wYWRkaW5nLWlubGluZTogM3B4O1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1heC13aWR0aDogMTAwJTsgLyogZGlzYWJsZSBvdmVyZmxvdyAqL1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGdhcDogNXB4O1xuICAgIHBhZGRpbmc6IDNweCB2YXIoLS1FZGl0TWVzc2FnZUNvbXBvc2VyLXBhZGRpbmctaW5saW5lKTtcblxuICAgIC5teF9CYXNpY01lc3NhZ2VDb21wb3Nlcl9pbnB1dCB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggJHByaW1hcnktaGFpcmxpbmUtY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgICAgICAgcGFkZGluZzogM3B4IDZweDtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1wcmltYXJ5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9FZGl0TWVzc2FnZUNvbXBvc2VyX2J1dHRvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwLXJldmVyc2U7IC8qIGRpc3BsYXkgXCJTYXZlXCIgb3ZlciBcIkNhbmNlbFwiICovXG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGdhcDogNXB4O1xuICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBhdXRvO1xuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMDBweDsgLyogbWFnaWMgbnVtYmVyIHRvIGFsaWduIHRoZSBlZGdlIG9mIHRoZSBidXR0b24gd2l0aCB0aGUgaW5wdXQgYXJlYSAqL1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0Vtb2ppQnV0dG9uIHtcbiAgICBAbWl4aW4gY29tcG9zZXJCdXR0b24gNTAlLCB2YXIoLS1jcGQtY29sb3ItaWNvbi1zZWNvbmRhcnkpLCB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXNlY29uZGFyeSk7XG59XG5cbi5teF9FbW9qaUJ1dHRvbl9oaWdobGlnaHQge1xuICAgIEBtaXhpbiBjb21wb3NlckJ1dHRvbkhpZ2hMaWdodDtcbn1cblxuLm14X01lc3NhZ2VDb21wb3Nlcl93eXNpd3lnIHtcbiAgICAubXhfRW1vamlCdXR0b24ge1xuICAgICAgICBAbWl4aW4gY29tcG9zZXJCdXR0b24gNXB4LCAkdGVydGlhcnktY29udGVudCwgJHBhbmVscztcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbVZpZXdfYm9keVtkYXRhLWxheW91dD1cImJ1YmJsZVwiXSB7XG4gICAgLm14X1Jvb21WaWV3X3RpbWVsaW5lLFxuICAgIC5teF9Sb29tVmlld19zdGF0dXNBcmVhLFxuICAgIC5teF9NZXNzYWdlQ29tcG9zZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cbn1cblxuLm14X0V2ZW50VGlsZVtkYXRhLWxheW91dD1cImJ1YmJsZVwiXSxcbi5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeVtkYXRhLWxheW91dD1cImJ1YmJsZVwiXSB7XG4gICAgLS1hdmF0YXJTaXplOiAzMnB4O1xuICAgIC0tZ3V0dGVyU2l6ZTogMTFweDtcbiAgICAtLWNvcm5lclJhZGl1czogMTJweDtcbiAgICAtLW1heFdpZHRoOiA3MCU7XG5cbiAgICAvKiBGb3IgYm90aCBldmVudCB0aWxlIGFuZCBldmVudCBsaXN0IHN1bW1hcnkgKi9cbiAgICAtLUV2ZW50VGlsZV9idWJibGUtbWFyZ2luLWlubGluZS1zdGFydDogNDlweDtcbiAgICAtLUV2ZW50VGlsZV9idWJibGUtbWFyZ2luLWlubGluZS1lbmQ6IDYwcHg7XG5cbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1FdmVudFRpbGVfYnViYmxlLW1hcmdpbi1pbmxpbmUtc3RhcnQpO1xuICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1FdmVudFRpbGVfYnViYmxlLW1hcmdpbi1pbmxpbmUtZW5kKTtcbn1cblxuLm14X0V2ZW50VGlsZVtkYXRhLWxheW91dD1cImJ1YmJsZVwiXSB7XG4gICAgLS1FdmVudFRpbGVfYnViYmxlX2xpbmUtbWFyZ2luLWlubGluZS1zdGFydDogLTlweDtcbiAgICAtLUV2ZW50VGlsZV9idWJibGVfbGluZS1tYXJnaW4taW5saW5lLWVuZDogLTEycHg7XG4gICAgLS1FdmVudFRpbGVfYnViYmxlX2dhcC1pbmxpbmU6IDVweDtcblxuICAgIC5teF9NZXNzYWdlVGltZXN0YW1wIHtcbiAgICAgICAgd2lkdGg6IHVuc2V0OyAvKiBDYW5jZWwgdGhlIGRlZmF1bHQgd2lkdGggKi9cbiAgICAgICAgbWF4LXdpZHRoOiA4MHB4O1xuICAgIH1cblxuICAgIC5teF9UaHJlYWRTdW1tYXJ5IHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlX2NvbnRlbnQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgJjpub3QoLm14X0V2ZW50VGlsZV9pbmZvKSAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBib3JkZXI6IDRweCBzb2xpZCAkYmFja2dyb3VuZDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNnB4O1xuICAgICAgICB6LWluZGV4OiA5O1xuICAgICAgICBpbWcge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICRiYWNrZ3JvdW5kO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5teF9FdmVudFRpbGVfaGlnaGxpZ2h0IHtcbiAgICAgICAgLm14X0V2ZW50VGlsZV9hdmF0YXIge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkZXZlbnQtaGlnaGxpZ2h0LWJnLWNvbG9yO1xuICAgICAgICB9XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZXZlbnQtaGlnaGxpZ2h0LWJnLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIC5teF9FdmVudFRpbGVfYXZhdGFyIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGV2ZW50YnViYmxlLWJnLWhvdmVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogRm9yIHJlcGxpZXMgKi9cbiAgICAubXhfRXZlbnRUaWxlIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IC0xcHg7XG4gICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgbGVmdDogY2FsYygtMSAqIHZhcigtLUV2ZW50VGlsZV9idWJibGUtbWFyZ2luLWlubGluZS1zdGFydCkpO1xuICAgICAgICByaWdodDogY2FsYygtMSAqIHZhcigtLUV2ZW50VGlsZV9idWJibGUtbWFyZ2luLWlubGluZS1lbmQpKTtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICYubXhfRXZlbnRUaWxlX3NlbGVjdGVkIHtcbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRldmVudGJ1YmJsZS1iZy1ob3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfYXZhdGFyIHtcbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICRldmVudGJ1YmJsZS1iZy1ob3ZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIFBvc2l0aW9uIHRoZSBtYWluIGV2ZW50IHNlbmRlcjsgcmVwbHkgc2VuZGVycyBvd24gdGhlaXIgYWxpZ25tZW50LiAqL1xuICAgID4gLm14X0Rpc2FtYmlndWF0ZWRQcm9maWxlLFxuICAgIC5teF9FdmVudFRpbGVfc2VuZGVyRGV0YWlscyA+IC5teF9EaXNhbWJpZ3VhdGVkUHJvZmlsZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaW5zZXQtYmxvY2stc3RhcnQ6IC0ycHg7XG4gICAgICAgIGluc2V0LWlubGluZS1zdGFydDogMnB4O1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgfVxuXG4gICAgLm14X01lc3NhZ2VBY3Rpb25CYXIge1xuICAgICAgICB0b3A6IC0yOHB4O1xuICAgICAgICB6LWluZGV4OiA5OyAvKiBhYm92ZSB0aGUgYXZhdGFyICovXG4gICAgfVxuXG4gICAgLm14X01lZGlhQm9keSB7XG4gICAgICAgIC8qIGxlYXZlIHNwYWNlIGZvciB0aGUgdGltZXN0YW1wICovXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAubXhfSW1hZ2VCb2R5IHtcbiAgICAgICAgLm14X0ltYWdlQm9keV9jb250YWluZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiBjYWxjKDEuOHJlbSArIHZhcigtLWd1dHRlclNpemUpICsgdmFyKC0tZ3V0dGVyU2l6ZSkpO1xuICAgICAgICAgICAgbWluLXdpZHRoOiBjYWxjKDEuOHJlbSArIHZhcigtLWd1dHRlclNpemUpICsgdmFyKC0tZ3V0dGVyU2l6ZSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0xlZ2FjeUNhbGxFdmVudCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgICAgICBib3JkZXItY29sb3I6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X0V2ZW50VGlsZV9mb290ZXIge1xuICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0xLTV4KSAwO1xuICAgICAgICBtYXJnaW4taW5saW5lOiB2YXIoLS1FdmVudFRpbGVfYnViYmxlX2xpbmUtbWFyZ2luLWlubGluZS1zdGFydCkgdmFyKC0tRXZlbnRUaWxlX2J1YmJsZV9saW5lLW1hcmdpbi1pbmxpbmUtZW5kKTtcbiAgICB9XG5cbiAgICAmW2RhdGEtc2VsZj1cImZhbHNlXCJdIHtcbiAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1jb3JuZXJSYWRpdXMpO1xuXG4gICAgICAgICAgICAubXhfSW1hZ2VCb2R5IC5teF9JbWFnZUJvZHlfY29udGFpbmVyLFxuICAgICAgICAgICAgLm14X0ltYWdlQm9keTo6YmVmb3JlLFxuICAgICAgICAgICAgLm14X01WaWRlb0JvZHkgLm14X01WaWRlb0JvZHlfY29udGFpbmVyLFxuICAgICAgICAgICAgLm14X01lZGlhQm9keSxcbiAgICAgICAgICAgIC5teF9NTG9jYXRpb25Cb2R5X21hcCxcbiAgICAgICAgICAgIC5teF9NQmVhY29uQm9keSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLWNvcm5lclJhZGl1cykgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfYXZhdGFyIHtcbiAgICAgICAgICAgIGxlZnQ6IC0zNnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X01lc3NhZ2VBY3Rpb25CYXIge1xuICAgICAgICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiBjYWxjKFxuICAgICAgICAgICAgICAgIDEwMCUgLSB2YXIoLS1NZXNzYWdlQWN0aW9uQmFyLXNpemUtYnV0dG9uKSAtIDIgKiB2YXIoLS1NZXNzYWdlQWN0aW9uQmFyLXNpemUtbWFyZ2luKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJpZ2h0OiBpbml0aWFsOyAvKiBSZXNldCB0aGUgZGVmYXVsdCB2YWx1ZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1RocmVhZFN1bW1hcnkge1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogY2FsYygtMSAqIHZhcigtLWd1dHRlclNpemUpKTtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1JlYWN0aW9uc1JvdyxcbiAgICAgICAgLm14X0V2ZW50VGlsZV9mb290ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG5cbiAgICAgICAgLS1iYWNrZ3JvdW5kQ29sb3I6ICRldmVudGJ1YmJsZS1vdGhlcnMtYmc7XG4gICAgfVxuXG4gICAgJltkYXRhLXNlbGY9XCJ0cnVlXCJdIHtcbiAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1jb3JuZXJSYWRpdXMpO1xuXG4gICAgICAgICAgICAubXhfSW1hZ2VCb2R5IC5teF9JbWFnZUJvZHlfY29udGFpbmVyLFxuICAgICAgICAgICAgLm14X0ltYWdlQm9keTo6YmVmb3JlLFxuICAgICAgICAgICAgLm14X01WaWRlb0JvZHkgLm14X01WaWRlb0JvZHlfY29udGFpbmVyLFxuICAgICAgICAgICAgLm14X01lZGlhQm9keSxcbiAgICAgICAgICAgIC5teF9NTG9jYXRpb25Cb2R5X21hcCxcbiAgICAgICAgICAgIC5teF9NQmVhY29uQm9keSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKC0tY29ybmVyUmFkaXVzKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9zdGlja2VyIHtcbiAgICAgICAgICAgIC8qIGFsaWduIHRpbWVzdGFtcCB3aXRoIHRob3NlIGluc2lkZSBidWJibGVzICovXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDMycHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVGhyZWFkU3VtbWFyeSB7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IGNhbGMoLTEgKiB2YXIoLS1ndXR0ZXJTaXplKSk7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9SZXBseVRpbGUgLm14X0Rpc2FtYmlndWF0ZWRQcm9maWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9mb290ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9SZWFjdGlvbnNSb3cge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgb3JkZXI6IC0xOyAvKiBNb3ZpbmcgdGhlIFwiYWRkIHJlYWN0aW9uIGJ1dHRvblwiIGJlZm9yZSB0aGUgcmVhY3Rpb25zICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgICAgICB0b3A6IC0xOXB4OyAvKiBoZWlnaHQgb2YgdGhlIHNlbmRlciBibG9jayAqL1xuICAgICAgICAgICAgcmlnaHQ6IC0zOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X01lZGlhQm9keSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZXZlbnRidWJibGUtc2VsZi1iZztcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9NZXNzYWdlQWN0aW9uQmFyIHtcbiAgICAgICAgICAgIGluc2V0LWlubGluZS1lbmQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAtLWJhY2tncm91bmRDb2xvcjogJGV2ZW50YnViYmxlLXNlbGYtYmc7XG4gICAgfVxuXG4gICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgLS1FdmVudEJ1YmJsZVRpbGVfbGluZS1tYXgtd2lkdGg6IDcwJTtcblxuICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgICAgIG1heC13aWR0aDogdmFyKC0tRXZlbnRCdWJibGVUaWxlX2xpbmUtbWF4LXdpZHRoKTsgLyogQWxpZ24gbWVzc2FnZSBidWJibGUgYW5kIGRpc3BsYXlOYW1lICovXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xOHB4OyAvKiBmaXhlZCBsaW5lIGhlaWdodCB0byBwcmV2ZW50IGVtb2ppIGZyb20gYmVpbmcgdGFsbGVyIHRoYW4gdGV4dCAqL1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogNXB4IHZhcigtLUV2ZW50VGlsZV9idWJibGVfZ2FwLWlubGluZSk7XG4gICAgICAgIG1hcmdpbi1ibG9jazogMDtcbiAgICAgICAgbWFyZ2luLWlubGluZTogdmFyKC0tRXZlbnRUaWxlX2J1YmJsZV9saW5lLW1hcmdpbi1pbmxpbmUtc3RhcnQpIHZhcigtLUV2ZW50VGlsZV9idWJibGVfbGluZS1tYXJnaW4taW5saW5lLWVuZCk7XG4gICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWNvcm5lclJhZGl1cyk7XG4gICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1jb3JuZXJSYWRpdXMpO1xuXG4gICAgICAgIC8qIHRoZSBzZWxlY3RvciBoZXJlIGlzIHF1aXRlIHdlaXJkIGJlY2F1c2UgdGltZXN0YW1wcyBjYW4gYXBwZWFyIGxpbmtlZCAmIHVubGlua2VkIGFuZCBpbiBkaWZmZXJlbnQgcGxhY2VzICovXG4gICAgICAgIC8qIGluIHRoZSBET00gZGVwZW5kaW5nIG9uIHRoZSBzcGVjaWZpYyByZW5kZXJpbmcgY29udGV4dCAqL1xuICAgICAgICA+IGEsIC8qIGxpbmtlZCB0aW1lc3RhbXAgZWxlbWVudCAqL1xuICAgICAgICAubXhfTWVzc2FnZUFjdGlvbkJhciArIC5teF9NZXNzYWdlVGltZXN0YW1wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDRweCA4cHg7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6IDM7IC8qIGFib3ZlIG1lZGlhIGFuZCBsb2NhdGlvbiBzaGFyZSBtYXBzICovXG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0V2ZW50VGlsZV9tZWRpYUxpbmUge1xuICAgICAgICAgICAgLyogVE9ETzogVXNlIGEgY29tbW9uIGNsYXNzIG5hbWUgaW5zdGVhZCAqL1xuICAgICAgICAgICAgLm14X01GaWxlQm9keSxcbiAgICAgICAgICAgIC5teF9NQXVkaW9Cb2R5IHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7IC8qIGF2b2lkIG92ZXJmbG93ICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9NVm9pY2VNZXNzYWdlQm9keSB7XG4gICAgICAgICAgICAgICAgLyogYWxsb3cgdGhlIGV2ZW50IHRvIGJlIGNvbGxhcHNlZCwgdGhpcyBjYXVzZXMgdGhlIHdhdmVmb3JtIHRvIGdldCBjcm9wcGVkICovXG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiB3ZSBwdXQgdGhlIHRpbWVzdGFtcHMgZm9yIG1lZGlhIChvdGhlciB0aGFuIHN0aWNrZXJzKSBhdG9wIHRoZSBtZWRpYSAqL1xuICAgICAgICAgICAgJi5teF9FdmVudFRpbGVfaW1hZ2Uge1xuICAgICAgICAgICAgICAgIC5teF9NZXNzYWdlVGltZXN0YW1wIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tTUJvZHktYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICAgICAgICAgIC8qIEhhcmRjb2RlZCBjb2xvdXJzIGJlY2F1c2UgaXQncyB0aGUgc2FtZSBvbiBhbGwgdGhlbWVzICovXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigwLCAwLCAwLCAwLjYpO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMHB4IDRweCAwcHggNHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfRXZlbnRUaWxlX3N0aWNrZXIge1xuICAgICAgICAgICAgPiBhLCAvKiBsaW5rZWQgdGltZXN0YW1wIGVsZW1lbnQgKi9cbiAgICAgICAgICAgIC5teF9NZXNzYWdlQWN0aW9uQmFyICsgLm14X01lc3NhZ2VUaW1lc3RhbXAge1xuICAgICAgICAgICAgICAgIC8qIHBvc2l0aW9uIHRpbWVzdGFtcHMgZm9yIHN0aWNrZXJzIHRvIHRoZSByaWdodCBvZiB0aGUgdW4tYnViYmxlZCBzdGlja2VyICovXG4gICAgICAgICAgICAgICAgcmlnaHQ6IHVuc2V0O1xuICAgICAgICAgICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9NU3RpY2tlckJvZHlfd3JhcHBlciB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9JbWFnZUJvZHkge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBub2luc3BlY3Rpb24gQ3NzUmVwbGFjZVdpdGhTaG9ydGhhbmRTYWZlbHkgKi9cbiAgICAgICAgLm14X0ltYWdlQm9keSAubXhfSW1hZ2VCb2R5X2NvbnRhaW5lcixcbiAgICAgICAgLm14X01WaWRlb0JvZHkgLm14X01WaWRlb0JvZHlfY29udGFpbmVyLFxuICAgICAgICAubXhfTWVkaWFCb2R5IHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHVuc2V0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFyKC0tY29ybmVyUmFkaXVzKTtcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1jb3JuZXJSYWRpdXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9lMmVJY29uIHtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOyAvKiBrZWVwIGl0IGF0IGZ1bGwgc2l6ZSAqL1xuXG4gICAgICAgICAgICAvKiBLZWVwIGhlaWdodCBlcXVhbCB0byB0ZXh0IGZvciBzaGllbGQgYWxpZ25tZW50LCBhZGRpdGlvbmFsIDJweCBiZWNhdXNlIG9mIDFweCBwYWRkaW5nIG9uIHRleHQgKi9cbiAgICAgICAgICAgIGhlaWdodDogY2FsYygkZm9udC0xOHB4ICsgMnB4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5teF9FdmVudFRpbGVfbm9CdWJibGUpOm5vdCgubXhfRXZlbnRUaWxlX2FsaWduZWRCZXR3ZWVuQnViYmxlcylcbiAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lOm5vdCgubXhfRXZlbnRUaWxlX21lZGlhTGluZSkge1xuICAgICAgICAvKiBtYWtlIHRoZSB0b3AgYW5kIGJvdHRvbSBwYWRkaW5nIDFweCBzbWFsbGVyIHNvIHRoYXQgd2UgY2FuIHBhZFxuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9jb250ZW50IGJ5IDFweCAqL1xuICAgICAgICAvKiB0byBhdm9pZCBhbnRpLXphbGdvIGN1dHRpbmcgb2ZmIG91ciBsYXJnZXIgdGhhbiB0ZXh0IGVtb2ppcy4gKi9cbiAgICAgICAgcGFkZGluZzogY2FsYyh2YXIoLS1ndXR0ZXJTaXplKSAtIDFweCk7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDYwcHg7IC8qIHNwYWNlIGZvciB0aGUgdGltZXN0YW1wICovXG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmRDb2xvcik7XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfRXZlbnRUaWxlX2NvbnRpbnVhdGlvbltkYXRhLXNlbGY9XCJmYWxzZVwiXSAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXG4gICAgICAgIC5teF9JbWFnZUJvZHkgLm14X0ltYWdlQm9keV9jb250YWluZXIsXG4gICAgICAgIC5teF9NVmlkZW9Cb2R5IC5teF9NVmlkZW9Cb2R5X2NvbnRhaW5lcixcbiAgICAgICAgLm14X0ltYWdlQm9keTo6YmVmb3JlLFxuICAgICAgICAubXhfTWVkaWFCb2R5LFxuICAgICAgICAubXhfTUxvY2F0aW9uQm9keV9tYXAsXG4gICAgICAgIC5teF9NQmVhY29uQm9keSB7XG4gICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgICB9XG4gICAgfVxuICAgICYubXhfRXZlbnRUaWxlX2xhc3RJblNlY3Rpb25bZGF0YS1zZWxmPVwiZmFsc2VcIl0gLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKC0tY29ybmVyUmFkaXVzKTtcblxuICAgICAgICAubXhfSW1hZ2VCb2R5IC5teF9JbWFnZUJvZHlfY29udGFpbmVyLFxuICAgICAgICAubXhfTVZpZGVvQm9keSAubXhfTVZpZGVvQm9keV9jb250YWluZXIsXG4gICAgICAgIC5teF9JbWFnZUJvZHk6OmJlZm9yZSxcbiAgICAgICAgLm14X01lZGlhQm9keSxcbiAgICAgICAgLm14X01Mb2NhdGlvbkJvZHlfbWFwLFxuICAgICAgICAubXhfTUJlYWNvbkJvZHkge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKC0tY29ybmVyUmFkaXVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfRXZlbnRUaWxlX2NvbnRpbnVhdGlvbltkYXRhLXNlbGY9XCJ0cnVlXCJdIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXG4gICAgICAgIC5teF9JbWFnZUJvZHkgLm14X0ltYWdlQm9keV9jb250YWluZXIsXG4gICAgICAgIC5teF9NVmlkZW9Cb2R5IC5teF9NVmlkZW9Cb2R5X2NvbnRhaW5lcixcbiAgICAgICAgLm14X0ltYWdlQm9keTo6YmVmb3JlLFxuICAgICAgICAubXhfTWVkaWFCb2R5LFxuICAgICAgICAubXhfTUxvY2F0aW9uQm9keV9tYXAsXG4gICAgICAgIC5teF9NQmVhY29uQm9keSB7XG4gICAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLm14X0V2ZW50VGlsZV9sYXN0SW5TZWN0aW9uW2RhdGEtc2VsZj1cInRydWVcIl0gLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLWNvcm5lclJhZGl1cyk7XG5cbiAgICAgICAgLm14X0ltYWdlQm9keSAubXhfSW1hZ2VCb2R5X2NvbnRhaW5lcixcbiAgICAgICAgLm14X01WaWRlb0JvZHkgLm14X01WaWRlb0JvZHlfY29udGFpbmVyLFxuICAgICAgICAubXhfSW1hZ2VCb2R5OjpiZWZvcmUsXG4gICAgICAgIC5teF9NZWRpYUJvZHksXG4gICAgICAgIC5teF9NTG9jYXRpb25Cb2R5X21hcCxcbiAgICAgICAgLm14X01CZWFjb25Cb2R5IHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1jb3JuZXJSYWRpdXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5teF9FdmVudFRpbGVfbm9TZW5kZXIge1xuICAgICAgICAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgICAgICB0b3A6IC0xOXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJltkYXRhLWhhcy1yZXBseT1cInRydWVcIl0ge1xuICAgICAgICA+IC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1JlcGx5Q2hhaW4ge1xuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9yZXBseSB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA5MCU7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICA+IGEsIC8qIGxpbmtlZCB0aW1lc3RhbXAgZWxlbWVudCAqL1xuICAgICAgICAgICAgICAgIC5teF9NZXNzYWdlQWN0aW9uQmFyICsgLm14X01lc3NhZ2VUaW1lc3RhbXAge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGdhcDogdmFyKC0tZ3V0dGVyU2l6ZSk7XG4gICAgICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9hdmF0YXIge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGUge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9NUG9sbEJvZHkge1xuICAgICAgICB3aWR0aDogNTUwcHg7IC8qIHRvIHByZXZlbnQgdGltZXN0YW1wIG92ZXJsYXBwaW5nIHN1bW1hcnkgdGV4dCAqL1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7IC8qIHByZXZlbnQgb3ZlcmZsb3dpbmcgYSByZXBseSB0aWxlICovXG5cbiAgICAgICAgLm14X01Qb2xsQm9keV90b3RhbFZvdGVzIHtcbiAgICAgICAgICAgIC8qIGFsaWduIHN1bW1hcnkgdGV4dCB3aXRoIGNvcm5lciB0aW1lc3RhbXAgKi9cbiAgICAgICAgICAgIHBhZGRpbmc6IDRweCAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5teF9FdmVudFRpbGVfYmFkIHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyogU3BlY2lhbCBsYXlvdXQgc2NlbmFyaW8gZm9yIFwiVW5hYmxlIFRvIERlY3J5cHQgKFVURClcIiBldmVudHMgKi9cbiAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlOlxuICAgICAgICAgICAgICAgIFwicmVwbHkgcmVwbHlcIiBhdXRvXG4gICAgICAgICAgICAgICAgXCJzaGllbGQgYm9keVwiIGF1dG9cbiAgICAgICAgICAgICAgICAvIGF1dG8gMWZyO1xuXG4gICAgICAgICAgICAubXhfVW5rbm93bkJvZHksXG4gICAgICAgICAgICAubXhfUmVwbHlDaGFpbl93cmFwcGVyLFxuICAgICAgICAgICAgLm14X1ZpZXdTb3VyY2VFdmVudCB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAwOyAvKiBQcmV2ZW50IGEgZ3JpZCBibG93b3V0ICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfZTJlSWNvbiB7XG4gICAgICAgICAgICAgICAgZ3JpZC1hcmVhOiBzaGllbGQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBhdXRvO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfVW5rbm93bkJvZHksXG4gICAgICAgICAgICAubXhfRGVjcnlwdGlvbkZhaWx1cmVCb2R5IHtcbiAgICAgICAgICAgICAgICBncmlkLWFyZWE6IGJvZHk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9SZXBseUNoYWluX3dyYXBwZXIge1xuICAgICAgICAgICAgICAgIGdyaWQtYXJlYTogcmVwbHk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0V2ZW50VGlsZV9pbmZvIHtcbiAgICAgICAgICAgIC8qIFwiVW5hYmxlIFRvIERlY3J5cHRcIiBsYXlvdXQgZm9yIGhpZGRlbiBldmVudHMgKi9cbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICAgICAgZ2FwOiAwIDlweDsgLyogOXB4OiBtYXJnaW4gdmFsdWUgb2YgRTJFIGljb24gKi9cbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGU6XG4gICAgICAgICAgICAgICAgICAgIFwic2hpZWxkIHNvdXJjZVwiIGF1dG9cbiAgICAgICAgICAgICAgICAgICAgLyBhdXRvIDFmcjtcblxuICAgICAgICAgICAgICAgIC5teF9WaWV3U291cmNlRXZlbnQge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWFyZWE6IHNvdXJjZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTGVnYWN5Q2FsbEV2ZW50X3dyYXBwZXIsXG4gICAgLm14X0NhbGxFdmVudF93cmFwcGVyIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJi5teF9FdmVudFRpbGVfYWxpZ25lZEJldHdlZW5CdWJibGVzIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogY2FsYyhcbiAgICAgICAgICAgIHZhcigtLUV2ZW50VGlsZV9idWJibGUtbWFyZ2luLWlubGluZS1zdGFydCkgKyB2YXIoLS1FdmVudFRpbGVfYnViYmxlX2xpbmUtbWFyZ2luLWlubGluZS1zdGFydClcbiAgICAgICAgKTtcbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IGNhbGMoXG4gICAgICAgICAgICB2YXIoLS1FdmVudFRpbGVfYnViYmxlLW1hcmdpbi1pbmxpbmUtZW5kKSArIHZhcigtLUV2ZW50VGlsZV9idWJibGVfbGluZS1tYXJnaW4taW5saW5lLWVuZClcbiAgICAgICAgKTtcblxuICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9FdmVudFRpbGUubXhfRXZlbnRUaWxlX25vQnViYmxlW2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdIHtcbiAgICAtLWJhY2tncm91bmRDb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAubXhfRXZlbnRUaWxlX2xpbmUubXhfRXZlbnRUaWxlX2Vtb3RlIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogNjBweDsgLyogYWxpZ24gd2l0aCBidWJibGVzIHRleHQgKi9cbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuXG4gICAgICAgID4gYSB7XG4gICAgICAgICAgICAvKiBsaW5rZWQgdGltZXN0YW1wIGVsZW1lbnQgKi9cbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvdHRvbTogdW5zZXQ7XG4gICAgICAgICAgICB0b3A6IHVuc2V0O1xuICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsOyAvKiB1bmRvIGl0YWxpYyBhYm92ZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X01FbW90ZUJvZHkge1xuICAgICAgICAgICAgcGFkZGluZzogNHB4IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9FdmVudFRpbGUubXhfRXZlbnRUaWxlX2J1YmJsZUNvbnRhaW5lcltkYXRhLWxheW91dD1cImJ1YmJsZVwiXSxcbi5teF9FdmVudFRpbGUubXhfRXZlbnRUaWxlX2xlZnRBbGlnbmVkQnViYmxlW2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdIHtcbiAgICAubXhfRXZlbnRUaWxlX2xpbmUgPiBhIHtcbiAgICAgICAgLyogaGlkZSB0aGlzIHRpbWVzdGFtcCBhcyB0aGUgdGlsZSB3aWxsIHJlbmRlciBpdHMgb3duICovXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4ubXhfRXZlbnRUaWxlLm14X0V2ZW50VGlsZV9idWJibGVDb250YWluZXJbZGF0YS1sYXlvdXQ9XCJidWJibGVcIl0sXG4ubXhfRXZlbnRUaWxlLm14X0V2ZW50VGlsZV9sZWZ0QWxpZ25lZEJ1YmJsZVtkYXRhLWxheW91dD1cImJ1YmJsZVwiXSxcbi5teF9FdmVudFRpbGUubXhfRXZlbnRUaWxlX2luZm9bZGF0YS1sYXlvdXQ9XCJidWJibGVcIl0ge1xuICAgIHBhZGRpbmc6IDVweCAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cbiAgICAubXhfRXZlbnRUaWxlX2xpbmUsXG4gICAgLm14X0V2ZW50VGlsZV9pbmZvIHtcbiAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICAvKiBQcmVzZXJ2ZSBhbGlnbm1lbnQgd2l0aCBsZWZ0IGVkZ2Ugb2YgdGV4dCBpbiBidWJibGVzICovXG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG59XG5cbi5teF9FdmVudFRpbGUubXhfRXZlbnRUaWxlX2J1YmJsZUNvbnRhaW5lcltkYXRhLWxheW91dD1cImJ1YmJsZVwiXSxcbi5teF9FdmVudFRpbGUubXhfRXZlbnRUaWxlX2xlZnRBbGlnbmVkQnViYmxlW2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdLFxuLm14X0V2ZW50VGlsZS5teF9FdmVudFRpbGVfaW5mb1tkYXRhLWxheW91dD1cImJ1YmJsZVwiXSxcbi5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeVtkYXRhLWxheW91dD1cImJ1YmJsZVwiXVtkYXRhLWV4cGFuZGVkPVwiZmFsc2VcIl0ge1xuICAgIC0tYmFja2dyb3VuZENvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAtLWd1dHRlclNpemU6IDA7XG5cbiAgICAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIG9yZGVyOiAtMTtcbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLUV2ZW50VGlsZV9idWJibGVfZ2FwLWlubGluZSk7IC8qIFNhbWUgc3BhY2luZyBiZXR3ZWVuIEUyRSBpY29uIGFuZCBhIGhpZGRlbiBldmVudCAqL1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlX2UyZUljb24ge1xuICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwOyAvKiBteF9FdmVudFRpbGVfYXZhdGFyIGhhcyBtYXJnaW4taW5saW5lLWVuZCwgc28gbWFyZ2luIGlzIG5vdCBuZWVkZWQgaGVyZSAqL1xuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgPiBhLCAvKiBsaW5rZWQgdGltZXN0YW1wIGVsZW1lbnQgKi9cbiAgICAgICAgLm14X01lc3NhZ2VBY3Rpb25CYXIgKyAubXhfTWVzc2FnZVRpbWVzdGFtcCB7XG4gICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgIGxlZnQ6IC03N3B4O1xuICAgICAgICAgICAgYm90dG9tOiB1bnNldDtcbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcblxuICAgICAgICAgICAgLm14X01lc3NhZ2VUaW1lc3RhbXAsXG4gICAgICAgICAgICAmLm14X01lc3NhZ2VUaW1lc3RhbXAge1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeVtkYXRhLWxheW91dD1cImJ1YmJsZVwiXSB7XG4gICAgLm14X0V2ZW50VGlsZS5teF9FdmVudFRpbGVfaW5mbyAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAvKiBBdm9pZCBvdmVyZmxvdyBvZiBldmVudCBpbmZvIGJ5IGNhbmNlbGxpbmcgd2lkdGggc2V0dGluZ3MgKi9cbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC8qIGluY3JlYXNlIG1hcmdpbiBiZXR3ZWVuIEVMUyBhbmQgdGhlIG5leHQgRXZlbnQgdG8gbm90IGhhdmUgb3VyIHVzZXIgYXZhdGFyIG92ZXJsYXAgdGhlIGV4cGFuZC9jb2xsYXBzZSBidXR0b24gKi9cbiAgICAmW2RhdGEtZXhwYW5kZWQ9XCJmYWxzZVwiXSArIC5teF9FdmVudFRpbGVbZGF0YS1sYXlvdXQ9XCJidWJibGVcIl1bZGF0YS1zZWxmPVwidHJ1ZVwiXSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgfVxuXG4gICAgJltkYXRhLWV4cGFuZGVkPVwidHJ1ZVwiXSAubXhfRXZlbnRUaWxlX2luZm8ge1xuICAgICAgICBwYWRkaW5nOiAycHggMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuXG4gICAgICAgIC5teF9NZXNzYWdlQWN0aW9uQmFyIHtcbiAgICAgICAgICAgIC8qIFJlc2V0IC5teF9FdmVudFRpbGVbZGF0YS1sYXlvdXQ9XCJidWJibGVcIl1bZGF0YS1zZWxmPVwiZmFsc2VcIl0gLm14X01lc3NhZ2VBY3Rpb25CYXIgKi9cbiAgICAgICAgICAgIGluc2V0LWlubGluZS1zdGFydDogaW5pdGlhbDtcbiAgICAgICAgICAgIGluc2V0LWlubGluZS1lbmQ6IDQ4cHg7IC8qIGFsaWduIHdpdGggdGhhdCBvZiByaWdodC1jb2x1bW4gYnViYmxlcyAqL1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1JlYWRSZWNlaXB0R3JvdXAge1xuICAgICAgICAgICAgLyogbWF0Y2ggYWxpZ25tZW50IHRvIFJScyBvZiBjaGF0IGJ1YmJsZXMgKi9cbiAgICAgICAgICAgIGluc2V0LWlubGluZS1lbmQ6IGNhbGMoLTEgKiB2YXIoLS1SZWFkUmVjZWlwdEdyb3VwX0V2ZW50QnViYmxlVGlsZS1zcGFjaW5nLWVuZCkgKyA2MHB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBpbnNldC1pbmxpbmUtZW5kOiAwOyAvKiBtYXRjaCBhbGlnbm1lbnQgb2YgdGhlIGhvdmVyIGJhY2tncm91bmQgdG8gdGhhdCBvZiBjaGF0IGJ1YmJsZXMgKi9cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0V2ZW50VGlsZV90aWxlRXJyb3JbZGF0YS1sYXlvdXQ9XCJidWJibGVcIl0gLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyAvKiByZXN0b3JlIHRoZSBjZW50ZXJpbmcgKi9cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwLCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4kbGVmdC1ndXR0ZXI6IDY0cHg7XG5cbi5teF9FdmVudFRpbGUge1xuICAgIC0tRXZlbnRUaWxlX2NvbnRlbnQtbWFyZ2luLWlubGluZS1lbmQ6IDM0cHg7XG4gICAgLS1FdmVudFRpbGVfZ3JvdXBfbGluZS1zcGFjaW5nLWJsb2NrLXN0YXJ0OiAxcHg7XG4gICAgLS1FdmVudFRpbGVfZ3JvdXBfbGluZS1zcGFjaW5nLWJsb2NrLWVuZDogM3B4O1xuICAgIC0tRXZlbnRUaWxlX2dyb3VwX2xpbmUtc3BhY2luZy1pbmxpbmUtc3RhcnQ6ICRsZWZ0LWd1dHRlcjtcbiAgICAtLUV2ZW50VGlsZV9ncm91cF9saW5lLWxpbmUtaGVpZ2h0OiAkZm9udC0yMnB4O1xuICAgIC0tRXZlbnRUaWxlX1RocmVhZFN1bW1hcnktbGluZS1oZWlnaHQ6IGNhbGMoMiAqICRmb250LTEycHgpO1xuXG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGNsZWFyOiBib3RoOyAvKiBUT0RPOiBjaGVjayBpZiB0aGlzIGlzIG5lY2Vzc2FyeSAqL1xuICAgIHBhZGRpbmctdG9wOiAxOHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICYubXhfRXZlbnRUaWxlX2luZm8ge1xuICAgICAgICBmb250LXNpemU6IHZhcigtLWNwZC1mb250LXNpemUtYm9keS1zbSk7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X0V2ZW50VGlsZV9hdmF0YXIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIH1cblxuICAgIC5teF9FdmVudFRpbGVfYm9keSB7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgfVxuXG4gICAgLm14X1JlYWRSZWNlaXB0R3JvdXBfY29udGFpbmVyIHN2ZyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXRlcnRpYXJ5KTtcbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlX2NvbnRlbnQge1xuICAgICAgICAmLm14X0VkaXRNZXNzYWdlQ29tcG9zZXIsXG4gICAgICAgICYubXhfRWRpdFd5c2l3eWdDb21wb3NlciB7XG4gICAgICAgICAgICAvKiBNYWtlIHN1cmUgdGhlIGZvcm1hdHRpbmcgYmFyIGlzIHZpc2libGUgKi9cbiAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0V2ZW50VGlsZV9zZWFyY2hIaWdobGlnaHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50O1xuICAgICAgICBjb2xvcjogJGFjY2VudC1mZy1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICBwYWRkaW5nLWlubGluZTogMnB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50O1xuICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQtZmctY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTWVzc2FnZVRpbWVzdGFtcF9sYXRlSWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICAgIHRvcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgfVxuXG4gICAgLm14X0V2ZW50VGlsZUJ1YmJsZSB7XG4gICAgICAgIG1hcmdpbi1ibG9jazogdmFyKC0tRXZlbnRUaWxlQnViYmxlX21hcmdpbi1ibG9jayk7XG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XG4gICAgfVxuXG4gICAgLm14X0ltYWdlQm9keSB7XG4gICAgICAgIC5teF9JbWFnZUJvZHlfY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyAvKiBvbiBldmVyeSBsYXlvdXQgKi9cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9SZWFjdGlvbnNSb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWZsb3c6IHdyYXA7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICB9XG5cbiAgICAubXhfUmVwbHlDaGFpbi0tZXhwYW5kZWQge1xuICAgICAgICAubXhfRXZlbnRUaWxlX2JvZHkge1xuICAgICAgICAgICAgLyogIWltcG9ydGFudCBuZWVkZWQgdG8gb3ZlcnJpZGUgLm14X1JlcGx5VGlsZSAubXhfRXZlbnRUaWxlX2NvbnRlbnQgLm14X0V2ZW50VGlsZV9ib2R5ICovXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9jb2xsYXBzZWRDb2RlQmxvY2sge1xuICAgICAgICAgICAgLyogIWltcG9ydGFudCBuZWVkZWQgZHVlIHRvIC5teF9SZXBseVRpbGUgLm14X0V2ZW50VGlsZV9jb250ZW50IC5teF9FdmVudFRpbGVfcHJlX2NvbnRhaW5lciA+IHByZSAqL1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Sb29tVmlld19zZWFyY2hSZXN1bHRzUGFuZWwgJiB7XG4gICAgICAgICYubXhfRXZlbnRUaWxlX2NvbnRleHR1YWwge1xuICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5teF9FdmVudFRpbGVfYnViYmxlQ29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMTAwcHg7XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gMztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDsgLyogb3ZlcnJpZGUgZGVmYXVsdCBwYWRkaW5nIG9mIG14X0V2ZW50VGlsZV9saW5lIHNvIHRoYXQgd2UgY2FuIGJlIGNlbnRlcmVkICovXG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX21zZ09wdGlvbiB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgICAgICAvKiBUbyBhdm9pZCBidWJibGUgZXZlbnRzIGJlaW5nIGhpZ2hsaWdodGVkICovXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5teF9FdmVudFRpbGVfaXNFZGl0aW5nIC5teF9NZXNzYWdlVGltZXN0YW1wIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cblxuICAgICZbZGF0YS1sYXlvdXQ9XCJpcmNcIl0sXG4gICAgJltkYXRhLWxheW91dD1cImdyb3VwXCJdIHtcbiAgICAgICAgLS1zZWxlY3RlZC1tZXNzYWdlLWJvcmRlci13aWR0aDogNHB4O1xuXG4gICAgICAgIC8qIFRPRE86IGFkanVzdCB0aGUgdmFsdWVzIGZvciBJUkMgbGF5b3V0ICovXG4gICAgICAgIC0tRXZlbnRUaWxlLWJveC1zaGFkb3ctb2Zmc2V0LXg6IGNhbGMoNTBweCArIHZhcigtLXNlbGVjdGVkLW1lc3NhZ2UtYm9yZGVyLXdpZHRoKSk7XG4gICAgICAgIC0tRXZlbnRUaWxlLWJveC1zaGFkb3ctc3ByZWFkLXJhZGl1czogLTUwcHg7XG4gICAgICAgIC5teF9FdmVudFRpbGVfZTJlSWNvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfSW1hZ2VCb2R5IHtcbiAgICAgICAgICAgIC5teF9JbWFnZUJvZHlfY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogJGZvbnQtNDRweDtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6ICRmb250LTQ0cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUsXG4gICAgICAgIC5teF9FdmVudFRpbGVfcmVwbHkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9yZXBseSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX21zZ09wdGlvbiB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiA5MHB4O1xuXG4gICAgICAgICAgICAvKiBIYWNrIHRvIHN0b3AgdGhlIGhlaWdodCBvZiB0aGlzIHB1c2hpbmcgdGhlIG1lc3NhZ2VzIGFwYXJ0LlxuICAgICAgICAgICAgICAgUmVwbGFjZXMgbWFyZ2luLXRvcDogLTZweC4gVGhpcyBpbnRlcmFjdHMgYmV0dGVyIHdpdGggYSByZWFkXG4gICAgICAgICAgICAgICBtYXJrZXIgYmVpbmcgaW4gYmV0d2Vlbi4gQ29udGVudCBvdmVyZmxvd3MuICovXG4gICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfRXZlbnRUaWxlX2hpZ2hsaWdodCxcbiAgICAgICAgJi5teF9FdmVudFRpbGVfaGlnaGxpZ2h0IC5tYXJrZG93bi1ib2R5IHtcbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGV2ZW50LWhpZ2hsaWdodC1iZy1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZTpmb2N1cy13aXRoaW4sXG4gICAgICAgICYubXhfRXZlbnRUaWxlX2FjdGlvbkJhckZvY3VzZWQsXG4gICAgICAgICYubXhfRXZlbnRUaWxlX2lzRWRpdGluZyxcbiAgICAgICAgJi5teF9FdmVudFRpbGVfc2VsZWN0ZWQge1xuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZXZlbnQtc2VsZWN0ZWQtY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKiB0aGlzIGlzIHVzZWQgZm9yIHRoZSB0aWxlIGZvciB0aGUgZXZlbnQgd2hpY2ggaXMgc2VsZWN0ZWQgdmlhIHRoZSBVUkwuICovXG4gICAgICAgICYubXhfRXZlbnRUaWxlX2lzRWRpdGluZyxcbiAgICAgICAgJi5teF9FdmVudFRpbGVfc2VsZWN0ZWQge1xuICAgICAgICAgICAgPiAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgICAgIC8qIFRPRE86IHVsdGltYXRlbHkgd2UgcHJvYmFibHkgd2FudCBzb21lIHRyYW5zaXRpb24gb24gaGVyZS4gKi9cbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCB2YXIoLS1FdmVudFRpbGUtYm94LXNoYWRvdy1vZmZzZXQteCkgMCAwIHZhcigtLUV2ZW50VGlsZS1ib3gtc2hhZG93LXNwcmVhZC1yYWRpdXMpXG4gICAgICAgICAgICAgICAgICAgIHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tcHJpbWFyeS1yZXN0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfRXZlbnRUaWxlX2luZm8ge1xuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9lMmVJY29uIHtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0V2ZW50VGlsZV9jb250aW51YXRpb24gLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRldmVudC1zZWxlY3RlZC1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZbZGF0YS1sYXlvdXQ9XCJidWJibGVcIl0sXG4gICAgJltkYXRhLWxheW91dD1cImdyb3VwXCJdIHtcbiAgICAgICAgLm14X0V2ZW50VGlsZUJ1YmJsZSB7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1JlcGx5Q2hhaW4ge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZbZGF0YS1sYXlvdXQ9XCJpcmNcIl0ge1xuICAgICAgICAtLUV2ZW50VGlsZV9pcmNfbGluZS1wYWRkaW5nLWJsb2NrOiAxcHg7XG5cbiAgICAgICAgLyogYWRkIC0tcmlnaHQtcGFkZGluZyB2YWx1ZSBvZiBNZXNzYWdlVGltZXN0YW1wIG9ubHkgKi9cbiAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGRlY2xhcmF0aW9uLWNvbG9uLXNwYWNlLWFmdGVyICovXG4gICAgICAgIC0tRXZlbnRUaWxlX2lyY19saW5lX2luZm8tbWFyZ2luLWlubGluZS1zdGFydDogY2FsYyhcbiAgICAgICAgICAgIHZhcigtLW5hbWUtd2lkdGgpICsgdmFyKC0taWNvbi13aWR0aCkgKyAxICogdmFyKC0tcmlnaHQtcGFkZGluZylcbiAgICAgICAgKTtcblxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG5cbiAgICAgICAgLm14X01lc3NhZ2VUaW1lc3RhbXAge1xuICAgICAgICAgICAgbWluLXdpZHRoOiB2YXIoLS1NZXNzYWdlVGltZXN0YW1wLXdpZHRoKTsgLyogZW5zdXJlIHNwYWNlIGZvciBFdmVudFRpbGUgd2l0aG91dCB0aW1lc3RhbXAgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgPiAqOm5vdCgubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGUpIHtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1yaWdodC1wYWRkaW5nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfYXZhdGFyLFxuICAgICAgICAubXhfRXZlbnRUaWxlX2UyZUljb24ge1xuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1pcmMtbGluZS1oZWlnaHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9hdmF0YXIsXG4gICAgICAgIC5teF9FdmVudFRpbGVfZTJlSWNvbixcbiAgICAgICAgLm14X0V2ZW50VGlsZV9tc2dPcHRpb24ge1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgICAgICBvcmRlcjogMTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICAvKiBOZWVkIHRvIHVzZSBpbXBvcnRhbnQgdG8gb3ZlcnJpZGUgdGhlIGpzIGNhbGN1bGF0ZWQgdmFsdWVzLiAqL1xuICAgICAgICAgICAgPiAubXhfQmFzZUF2YXRhcixcbiAgICAgICAgICAgID4gLm14X0Jhc2VBdmF0YXIgPiAqIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEwcHggIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogY2FsYygkZm9udC0xNXB4IC0gMnB4KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9lMmVJY29uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9lMmVJY29uIHtcbiAgICAgICAgICAgICAgICAvKiBhZGQgYSAxcHggcGFkZGluZyB0b3AgYW5kIGJvdHRvbSBiZWNhdXNlIG91ciBsYXJnZXJcbiAgICAgICAgICAgICAgICBlbW9qaSBmb250IG90aGVyd2lzZSBnZXRzIGNyb3BwZWQgYnkgYW50aS16YWxnbyAqL1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLUV2ZW50VGlsZV9pcmNfbGluZS1wYWRkaW5nLWJsb2NrKSAwO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1JlcGx5VGlsZSB7XG4gICAgICAgICAgICAgICAgLm14X01UZXh0Qm9keSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OyAvKiBFbmFibGUgLXdlYmtpdC1saW5lLWNsYW1wICovXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lLFxuICAgICAgICAubXhfRXZlbnRUaWxlX3JlcGx5IHtcbiAgICAgICAgICAgIG9yZGVyOiAzO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfcmVwbHkge1xuICAgICAgICAgICAgb3JkZXI6IDQ7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX21zZ09wdGlvbiB7XG4gICAgICAgICAgICBvcmRlcjogNTtcblxuICAgICAgICAgICAgLm14X1JlYWRSZWNlaXB0R3JvdXAge1xuICAgICAgICAgICAgICAgIGluc2V0LWJsb2NrLXN0YXJ0OiAtMC4zcmVtOyAvKiAodmFyKC0taXJjLWxpbmUtaGVpZ2h0KSAtIGF2YXRhciBoZWlnaHQpIC8gMiAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1JlcGx5Q2hhaW4ge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0VkaXRNZXNzYWdlQ29tcG9zZXJfYnV0dG9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlQnViYmxlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGxlZnQ6IHZhcigtLUV2ZW50VGlsZV9pcmNfbGluZV9pbmZvLW1hcmdpbi1pbmxpbmUtc3RhcnQpO1xuXG4gICAgICAgICAgICAmLm14X2NyeXB0b0V2ZW50IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiB1bnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9SZXBseVRpbGUgLm14X0V2ZW50VGlsZUJ1YmJsZSB7XG4gICAgICAgICAgICBsZWZ0OiB1bnNldDsgLyogQ2FuY2VsIHRoZSB2YWx1ZSBzcGVjaWZpZWQgYWJvdmUgZm9yIHRoZSB0aWxlIGluc2lkZSBSZXBseVRpbGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfRXZlbnRUaWxlX2lzRWRpdGluZyA+IC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICAubXhfRWRpdE1lc3NhZ2VDb21wb3NlciB7XG4gICAgICAgICAgICAgICAgLyogYWRkIHNwYWNlIGZvciB0aGUgc3Ryb2tlIG9uIGJveC1zaGFkb3cgKi9cbiAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogY2FsYyhcbiAgICAgICAgICAgICAgICAgICAgdmFyKC0tc2VsZWN0ZWQtbWVzc2FnZS1ib3JkZXItd2lkdGgpICsgdmFyKC0tRWRpdE1lc3NhZ2VDb21wb3Nlci1wYWRkaW5nLWlubGluZSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9FdmVudFRpbGVfaW5mbyB7XG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgICAgICAgICAgbGVmdDogdmFyKC0tRXZlbnRUaWxlX2lyY19saW5lX2luZm8tbWFyZ2luLWlubGluZS1zdGFydCk7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tcmlnaHQtcGFkZGluZyk7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ibG9jazogdmFyKC0tRXZlbnRUaWxlX2lyY19saW5lLXBhZGRpbmctYmxvY2spO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLUV2ZW50VGlsZV9pcmNfbGluZV9pbmZvLW1hcmdpbi1pbmxpbmUtc3RhcnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9FdmVudFRpbGVfZW1vdGUge1xuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9hdmF0YXIge1xuICAgICAgICAgICAgICAgIC8qIGFkZCAtLXJpZ2h0LXBhZGRpbmcgdmFsdWUgb2YgTWVzc2FnZVRpbWVzdGFtcCBvbmx5ICovXG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tbmFtZS13aWR0aCkgKyB2YXIoLS1pY29uLXdpZHRoKSArIDEgKiB2YXIoLS1yaWdodC1wYWRkaW5nKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2Zvb3RlciB7XG4gICAgICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0xLTV4KSAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJltkYXRhLWxheW91dD1cImdyb3VwXCJdIHtcbiAgICAgICAgLm14X0V2ZW50VGlsZV9hdmF0YXIge1xuICAgICAgICAgICAgdG9wOiAxNHB4O1xuICAgICAgICAgICAgbGVmdDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfbGluZSxcbiAgICAgICAgLm14X0V2ZW50VGlsZV9yZXBseSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0tRXZlbnRUaWxlX2dyb3VwX2xpbmUtc3BhY2luZy1ibG9jay1zdGFydCk7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tRXZlbnRUaWxlX2dyb3VwX2xpbmUtc3BhY2luZy1ibG9jay1lbmQpO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1FdmVudFRpbGVfZ3JvdXBfbGluZS1zcGFjaW5nLWlubGluZS1zdGFydCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tRXZlbnRUaWxlX2dyb3VwX2xpbmUtbGluZS1oZWlnaHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9lMmVJY29uIHtcbiAgICAgICAgICAgIGluc2V0OiAwIDAgMCA0NHB4O1xuXG4gICAgICAgICAgICAvKiBLZWVwIGhlaWdodCBlcXVhbCB0byB0ZXh0IGZvciBhbGlnbm1lbnQgKi9cbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tRXZlbnRUaWxlX2dyb3VwX2xpbmUtbGluZS1oZWlnaHQpO1xuICAgICAgICAgICAgbWFyZ2luOiAxcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX21zZ09wdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMTBweDtcblxuICAgICAgICAgICAgLm14X1JlYWRSZWNlaXB0R3JvdXAge1xuICAgICAgICAgICAgICAgIC8qIFRoaXMgYWxpZ25zIHRoZSBhdmF0YXIgd2l0aCB0aGUgbGFzdCBsaW5lIG9mIHRoZSAqL1xuICAgICAgICAgICAgICAgIC8qIG1lc3NhZ2UuIFdlIHdhbnQgdG8gbW92ZSBpdCBvbmUgbGluZSB1cCAqL1xuICAgICAgICAgICAgICAgIC8qIFNlZSAubXhfRXZlbnRUaWxlW2RhdGEtbGF5b3V0PWdyb3VwXSAubXhfRXZlbnRUaWxlX2xpbmUgaW4gX0V2ZW50VGlsZS5zY3NzICovXG4gICAgICAgICAgICAgICAgaW5zZXQtYmxvY2stc3RhcnQ6IGNhbGMoLSRmb250LTIycHggLSAzcHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X01lc3NhZ2VUaW1lc3RhbXAge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9UaHJlYWRTdW1tYXJ5LFxuICAgICAgICAubXhfVGhyZWFkU3VtbWFyeV9pY29uIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkbGVmdC1ndXR0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2Zvb3RlciB7XG4gICAgICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0xeCkgdmFyKC0tRXZlbnRUaWxlX2dyb3VwX2xpbmUtc3BhY2luZy1pbmxpbmUtc3RhcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgPiAubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGUge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTIwcHg7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAkbGVmdC1ndXR0ZXI7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtICRsZWZ0LWd1dHRlcik7XG4gICAgICAgIH1cblxuICAgICAgICA+IC5teF9FdmVudFRpbGVfYXZhdGFyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDk7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUm9vbVZpZXdfdGltZWxpbmVfcnJfZW5hYmxlZCAmIHtcbiAgICAgICAgICAgICRpbmxpbmUtZW5kLW1hcmdpbjogODBweDtcblxuICAgICAgICAgICAgLm14X1RocmVhZFN1bW1hcnksXG4gICAgICAgICAgICAubXhfVGhyZWFkU3VtbWFyeV9pY29uLFxuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRpbmxpbmUtZW5kLW1hcmdpbjtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAkZm9udC0xNHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfVGhyZWFkU3VtbWFyeSB7XG4gICAgICAgICAgICAgICAgLyogbGVhdmUgc3BhY2Ugb24gYm90aCBsZWZ0ICYgcmlnaHQgZ3V0dGVycyAqL1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogbWluKGNhbGMoMTAwJSAtICRsZWZ0LWd1dHRlciAtICRpbmxpbmUtZW5kLW1hcmdpbiksIDYwMHB4KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogb24gRUxTIHdlIG5lZWQgdGhlIG1hcmdpbiB0byBhbGxvdyBpbnRlcmFjdGlvbiB3aXRoIHRoZSBleHBhbmQvY29sbGFwc2UgYnV0dG9uICovXG4gICAgICAgICAgICAvKiB3aGljaCBpcyBub3JtYWxseSBpbiB0aGUgUlIgZ3V0dGVyICovXG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0V2ZW50VGlsZV9jb250aW51YXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0V2ZW50VGlsZV9pbmZvIHtcbiAgICAgICAgICAgICRzcGFjaW5nLWJsb2NrLXN0YXJ0OiAzcHg7XG4gICAgICAgICAgICAkc3BhY2luZy1ibG9jay1lbmQ6IDJweDtcblxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG5cbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfYXZhdGFyLFxuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9lMmVJY29uIHtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgICAgICBtYXJnaW46ICRzcGFjaW5nLWJsb2NrLXN0YXJ0IDAgJHNwYWNpbmctYmxvY2stZW5kO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgICAgICAgICAgdG9wOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgIGluc2V0LWlubGluZS1zdGFydDogJGxlZnQtZ3V0dGVyO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTRweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiAkc3BhY2luZy1ibG9jay1zdGFydCAkc3BhY2luZy1ibG9jay1lbmQ7XG4gICAgICAgICAgICAgICAgLyogMjBweDogYXZhdGFyIGFyZWEgKi9cbiAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogY2FsYyh2YXIoLS1FdmVudFRpbGVfZ3JvdXBfbGluZS1zcGFjaW5nLWlubGluZS1zdGFydCkgKyAyMHB4KTtcblxuICAgICAgICAgICAgICAgIC5teF9NZXNzYWdlVGltZXN0YW1wIHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5teF9FdmVudFRpbGVfc2VsZWN0ZWQgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgICAgICAvKiBUT0RPOiBjaGVjayBpZiB0aGlzIHdvdWxkIGJlIG5lY2Vzc2FyeTsgKi9cbiAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogY2FsYyh2YXIoLS1FdmVudFRpbGVfZ3JvdXBfbGluZS1zcGFjaW5nLWlubGluZS1zdGFydCkgKyAyMHB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZbZGF0YS1sYXlvdXQ9XCJidWJibGVcIl0ge1xuICAgICAgICAvKiBPdGhlciBoYWxmIG9mIHRoZSBndXR0ZXIgaXMgcHJvdmlkZWQgYnkgbWFyZ2luLWJvdHRvbSBvbiB0aGUgbGFzdCB0aWxlXG4gICAgICAgIG9mIHRoZSBzZWN0aW9uICovXG4gICAgICAgIG1hcmdpbi10b3A6IGNhbGModmFyKC0tZ3V0dGVyU2l6ZSkgLyAyKTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLUV2ZW50VGlsZV9idWJibGUtbWFyZ2luLWlubGluZS1zdGFydCk7XG5cbiAgICAgICAgLyogUmVzZXQgZGVmYXVsdCB2YWx1ZXMuIFRPRE86IHJlbW92ZSAqL1xuICAgICAgICBtYXgtd2lkdGg6IHVuc2V0O1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcblxuICAgICAgICAubXhfRXZlbnRUaWxlX21zZ09wdGlvbiB7XG4gICAgICAgICAgICAubXhfUmVhZFJlY2VpcHRHcm91cCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGluc2V0LWJsb2NrLXN0YXJ0OiBhdXRvO1xuXG4gICAgICAgICAgICAgICAgLyogYXMgY2xvc2UgdG8gcmlnaHQgZ3V0dGVyIHdpdGhvdXQgY2xpcHBpbmcgYXMgcG9zc2libGUgKi9cbiAgICAgICAgICAgICAgICBpbnNldC1pbmxpbmUtZW5kOiBjYWxjKC0xICogdmFyKC0tUmVhZFJlY2VpcHRHcm91cF9FdmVudEJ1YmJsZVRpbGUtc3BhY2luZy1lbmQpKTtcblxuICAgICAgICAgICAgICAgIC8qIChFdmVudFRpbGVMaW5lLmxpbmUtaGVpZ2h0IC0gUmVhZFJlY2VpcHRHcm91cC5oZWlnaHQpIC8gMiAqL1xuICAgICAgICAgICAgICAgIC8qIHRoaXMgY2VudGVycyB0aGUgUmVhZFJlY2VpcHRHcm91cCBpZiB3ZeKAmXZlIGdvdCBhIHNpbmdsZSBsaW5lICovXG4gICAgICAgICAgICAgICAgaW5zZXQtYmxvY2stZW5kOiBjYWxjKCgkZm9udC0xOHB4IC0gMjRweCkgLyAyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAubXhfRXZlbnRUaWxlQnViYmxlIHtcbiAgICAgICAgICAgIC8qIFRpbWVzdGFtcHMgYXJlIGluc2lkZSB0aGUgdGlsZSwgc28gdGhlIHdpZHRoIGNhbiBiZSBsZXNzIGNvbnN0cmFpbmVkICovXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDYwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9FdmVudFRpbGVfY29udGludWF0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgICAgfVxuICAgICAgICAmLm14X0V2ZW50VGlsZV9sYXN0SW5TZWN0aW9uIHtcbiAgICAgICAgICAgIC8qIE90aGVyIGhhbGYgb2YgdGhlIGd1dHRlciBpcyBwcm92aWRlZCBieSBtYXJnaW4tdG9wIG9uIHRoZSBmaXJzdFxuICAgICAgICAgICAgdGlsZSBvZiB0aGUgc2VjdGlvbiAqL1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1ndXR0ZXJTaXplKSAvIDIpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnkge1xuICAgICZbZGF0YS1sYXlvdXQ9XCJpcmNcIl0sXG4gICAgJltkYXRhLWxheW91dD1cImdyb3VwXCJdIHtcbiAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lIC5teF9SZWRhY3RlZEJvZHkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7IC8qIHJlbW92ZSBzcGFjaW5nIGJldHdlZW4gbGluZXMgKi9cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZbZGF0YS1sYXlvdXQ9XCJpcmNcIl0ge1xuICAgICAgICAvKiBBcHBseSBvbmx5IGNvbGxhcHNlZCBldmVudHMgYmxvY2sgKi9cbiAgICAgICAgPiAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgLyogYWRkIC0tcmlnaHQtcGFkZGluZyB2YWx1ZSBvZiBNZXNzYWdlVGltZXN0YW1wIGFuZCBhdmF0YXIgb25seSAqL1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGRlY2xhcmF0aW9uLWNvbG9uLXNwYWNlLWFmdGVyICovXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoXG4gICAgICAgICAgICAgICAgdmFyKC0tbmFtZS13aWR0aCkgKyB2YXIoLS1pY29uLXdpZHRoKSArIHZhcigtLU1lc3NhZ2VUaW1lc3RhbXAtd2lkdGgpICsgMiAqIHZhcigtLXJpZ2h0LXBhZGRpbmcpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJltkYXRhLWxheW91dD1cImdyb3VwXCJdIHtcbiAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGxlZnQtZ3V0dGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X3Vuc3R5bGVkTGlzdCA+IC5teF9FdmVudFRpbGVfaW5mbyAubXhfRXZlbnRUaWxlX2F2YXRhciB+IC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICAvKiBvdmVycmlkZSBwYWRkaW5nLWxlZnQgJGxlZnQtZ3V0dGVyICovXG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogY2FsYyh2YXIoLS1FdmVudFRpbGVfZ3JvdXBfbGluZS1zcGFjaW5nLWlubGluZS1zdGFydCkgKyAyMHB4KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0V2ZW50VGlsZV9jb250ZW50IHtcbiAgICAvKlxuICAgIGFsbCB0aGUgb3ZlcmZsb3cteTogaGlkZGVuOyBhcmUgdG8gdHJhcCBaYWxnb3MgLVxuICAgIGJ1dCB0aGV5IGludHJvZHVjZSBhbiBpbXBsaWNpdCBvdmVyZmxvdy14OiBhdXRvLlxuICAgIHNvIG1ha2UgdGhhdCBleHBsaWNpdGx5IGhpZGRlbiB0b28gdG8gYXZvaWQgcmFuZG9tXG4gICAgaG9yaXpvbnRhbCBzY3JvbGxiYXJzIG9jY2FzaW9uYWxseSBhcHBlYXJpbmcsIGxpa2UgaW5cbiAgICBodHRwczovL2dpdGh1Yi5jb20vdmVjdG9yLWltL3ZlY3Rvci13ZWIvaXNzdWVzLzExNTRcbiAgICAqL1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1FdmVudFRpbGVfY29udGVudC1tYXJnaW4taW5saW5lLWVuZCk7XG5cbiAgICAubWFya2Rvd24tYm9keSB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcikgIWltcG9ydGFudDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLWNwZC1mb250LWxldHRlci1zcGFjaW5nLWJvZHktbWQpO1xuICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0OyAvKiBpbmhlcml0IHRoZSBjb2xvdXIgZnJvbSB0aGUgZGFyayBvciBsaWdodCB0aGVtZSBieSBkZWZhdWx0IChidXQgbm90IGZvciBjb2RlIGJsb2NrcykgKi9cbiAgICAgICAgZmxleDogMTtcblxuICAgICAgICBwcmUsXG4gICAgICAgIGNvZGUge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRtb25vc3BhY2UtZm9udC1mYW1pbHkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzeXN0ZW07XG4gICAgICAgIH1cblxuICAgICAgICBjb2RlOm5vdChwcmUgKikge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGlubGluZWNvZGUtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRpbmxpbmVjb2RlLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICAgIC8qIFRoZSBob3Jpem9udGFsIHBhZGRpbmcgaXMgYWRkZWQgYnkgZ2l0aHViLW1hcmtkb3duLWNzcyAubWFya2Rvd24tYm9keSAqL1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTAtNXgpIDA7XG4gICAgICAgICAgICAvKiBBdm9pZCBpbmxpbmUgY29kZSBibG9ja3MgdG8gYmUgc3RpY2tlZCB3aGVuIG9uIG11bHRpcGxlIGxpbmVzICovXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjJweDtcbiAgICAgICAgICAgIC8qIEF2b2lkIHRoZSBib3JkZXIgdG8gYmUgZ2x1ZWQgdG8gdGhlIG90aGVyIHdvcmRzICovXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0wLTV4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvZGUge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOyAvKiBkb24ndCBjb2xsYXBzZSBzcGFjZXMgaW4gaW5saW5lIGNvZGUgYmxvY2tzICovXG4gICAgICAgIH1cblxuICAgICAgICBwcmUge1xuICAgICAgICAgICAgLyogaGF2ZSB0byB1c2Ugb3ZlcmxheSByYXRoZXIgdGhhbiBhdXRvIG90aGVyd2lzZSBMaW51eCBhbmQgV2luZG93cyAqL1xuICAgICAgICAgICAgLyogQ2hyb21lIGdldHMgdmVyeSBjb25mdXNlZCBhYm91dCB2ZXJ0aWNhbCBzcGFjaW5nOiAqL1xuICAgICAgICAgICAgLyogaHR0cHM6Ly9naXRodWIuY29tL3ZlY3Rvci1pbS92ZWN0b3Itd2ViL2lzc3Vlcy83NTQgKi9cbiAgICAgICAgICAgIG92ZXJmbG93LXg6IG92ZXJsYXk7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuXG4gICAgICAgICAgICAmOjotd2Via2l0LXNjcm9sbGJhci1jb3JuZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkcXVpbmFyeS1jb250ZW50O1xuXG4gICAgICAgICAgICBjb2RlIHtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlOyAvKiB3ZSB3YW50IGNvZGUgYmxvY2tzIHRvIGJlIHNjcm9sbGFibGUgYW5kIG5vdCB3cmFwICovXG5cbiAgICAgICAgICAgICAgICA+ICoge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaDEsXG4gICAgICAgIGgyLFxuICAgICAgICBoMyxcbiAgICAgICAgaDQsXG4gICAgICAgIGg1LFxuICAgICAgICBoNiB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBNYWtlIGgxIGFuZCBoMiB0aGUgc2FtZSBzaXplIGFzIGgzLiAqL1xuICAgICAgICBoMSxcbiAgICAgICAgaDIge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmUgIWltcG9ydGFudDsgLyogb3ZlcnJpZGUgR0ZNICovXG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50LWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIGJsb2NrcXVvdGUge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAkYmxvY2txdW90ZS1iYXItY29sb3I7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLypcbiAgICAgICAgLy8gYWN0dWFsbHksIHJlbW92aW5nIHRoZSBJdGFsaWMgVFRGIHByb3ZpZGVzXG4gICAgICAgIC8vIGJldHRlciByZXN1bHRzIHNlZW1pbmdseVxuXG4gICAgICAgIC8vIGNvbXBlbnNhdGUgZm9yIE51bml0byBpdGFsaWNzIGJlaW5nIHRlcnJpYmxlXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZm9udHMvaXNzdWVzLzE3MjZcbiAgICAgICAgZW0ge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBza2V3WCgtMTRkZWcpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICAgICovXG5cbiAgICAgICAgLyogU3VwcG9ydCBhcmJpdHJhcmlseSBsYXJnZSBtYXJrZXIgbnVtYmVycyAqL1xuICAgICAgICBvbCB7XG4gICAgICAgICAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMC41ZW07XG4gICAgICAgIH1cblxuICAgICAgICAvKiBPdmVycmlkZSBuZXN0ZWQgbGlzdHMgYmVpbmcgbG93ZXItcm9tYW4gKi9cbiAgICAgICAgb2wgb2wsXG4gICAgICAgIHVsIG9sIHtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogcmV2ZXJ0O1xuICAgICAgICB9XG5cbiAgICAgICAgLyogTWFrZSBsaXN0IHR5cGUgZGlzYyB0byBtYXRjaCByaWNoIHRleHQgZWRpdG9yICovXG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIG92ZXJyaWRlIHN0eWxlcyBmcm9tIHRoZSBiYXNlIG1hcmtkb3duIENTUyB0aGF0IHB1dCBtYXJrZG93biBjb250ZW50IG9uIGl0cyBvd24gbGluZSxcbiAgICAgICAgICAgYXMgdGhpcyBpc24ndCB3aGF0IHdlIHdhbnQgZm9yIHJpY2h0ZXh0IGVtb3RlIGNvbnRlbnQuXG4gICAgICAgICAqL1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIFNwb2lsZXIgc3R1ZmYgKi9cbi5teF9FdmVudFRpbGVfc3BvaWxlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgLyogY2xlYXIgYnV0dG9uIHN0eWxlcyAqL1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XG5cbiAgICAubXhfRXZlbnRUaWxlX3Nwb2lsZXJfcmVhc29uIHtcbiAgICAgICAgY29sb3I6ICRldmVudC10aW1lc3RhbXAtY29sb3I7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTFweDtcbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlX3Nwb2lsZXJfY29udGVudCB7XG4gICAgICAgIGZpbHRlcjogYmx1cig1cHgpIHNhdHVyYXRlKDAuMSkgc2VwaWEoMSk7XG4gICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNXM7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgICYudmlzaWJsZSA+IC5teF9FdmVudFRpbGVfc3BvaWxlcl9jb250ZW50IHtcbiAgICAgICAgZmlsdGVyOiBub25lO1xuICAgICAgICB1c2VyLXNlbGVjdDogYXV0bztcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgfVxufVxuXG4ubXhfRXZlbnRUaWxlX2JpZ0Vtb2ppIHtcbiAgICBmb250LXNpemU6IDQ4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDU3cHg7XG5cbiAgICAubXhfRW1vamkge1xuICAgICAgICBmb250LXNpemU6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5teF9FdmVudFRpbGVfZTJlSWNvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMTRweDtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIHN2ZyB7XG4gICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbn1cblxuLm14X0V2ZW50VGlsZV9ib2R5IHtcbiAgICBhOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuXG4gICAgcHJlIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZTpob3ZlciAmLFxuICAgICAgICAubXhfRXZlbnRUaWxlOmZvY3VzLXZpc2libGU6Zm9jdXMtd2l0aGluICYge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBzZWxlY3RvciB3cm9uZ2x5IGFwcGxpZXMgdG8gcGlsbCBhdmF0YXJzIGJ1dCB0aG9zZSBoYXZlIGV4cGxpY2l0IHdpZHRoL2hlaWdodCBwYXNzZWQgYXQgYSBoaWdoZXIgc3BlY2lmaWNpdHkgKi9cbiAgICAmLm1hcmtkb3duLWJvZHkgaW1nIHtcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgb2JqZWN0LXBvc2l0aW9uOiBsZWZ0IHRvcDtcblxuICAgICAgICAvKiBPdmVycmlkZSB0aGUgZGVmYXVsdCBjb2xvcnMgb2YgdGhlICdnaXRodWItbWFya2Rvd24tY3NzJyBsaWJyYXJ5XG4gICAgICAgICgjZmZmIGZvciBsaWdodCB0aGVtZSwgIzAwMCBmb3IgZGFyayB0aGVtZSkgdG8gbWF0Y2ggdGhlIGluaGVyaXRlZCB0aGVtZSAqL1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLm14X0V2ZW50VGlsZV9jbGFtcCAmIHtcbiAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgfVxuXG4gICAgLm14X0V2ZW50VGlsZV9wcmVfY29udGFpbmVyIHtcbiAgICAgICAgLyogRm9yIGNvcnJlY3QgcG9zaXRpb25pbmcgb2YgX2NvcHlCdXR0b24gKFNlZSBUZXh0dWFsQm9keSkgKi9cbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIC8qIEVtb2ppIGFyZSBlbmxhcmdlZCBpbiBwcm9zZSwgYnV0IGEgY29kZSBibG9jaydzIGxpbmUgbnVtYmVycyBhcmUgb25lIGZpeGVkLWhlaWdodCBibG9ja1xuICAgICAgICAgICBwZXIgbGluZSBhbmQgY2Fubm90IGZvbGxvdyBhIGxpbmUgdGhhdCBhbiBlbmxhcmdlZCBlbW9qaSBoYXMgbWFkZSB0YWxsZXIuICovXG4gICAgICAgIC5teF9FbW9qaSB7XG4gICAgICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzLXdpdGhpbixcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2J1dHRvbiB7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfY29sbGFwc2VkQ29kZUJsb2NrIHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwdmg7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogSW5zZXJ0ZWQgYWRqYWNlbnQgdG8gPHByZT4gYmxvY2tzLCAoU2VlIFRleHR1YWxCb2R5KSAqL1xuICAgICAgICAubXhfRXZlbnRUaWxlX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICByaWdodDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi5teF9FdmVudFRpbGVfYnV0dG9uQm90dG9tIHtcbiAgICAgICAgICAgICAgICB0b3A6IDMzcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkbWVzc2FnZS1hY3Rpb24tYmFyLWZnLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfRXZlbnRUaWxlX2xpbmVOdW1iZXJzIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDAgMC41ZW0gMCAtMS41ZW07XG4gICAgY29sb3I6IGdyYXk7XG5cbiAgICAmIHNwYW4ge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMWVtO1xuICAgIH1cbn1cblxuLm14X0V2ZW50VGlsZV9idXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5teF9FdmVudFRpbGVfdGlsZUVycm9yIHtcbiAgICBjb2xvcjogcmVkO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC8qIFJlbW92ZSBzb21lIG9mIHRoZSBkZWZhdWx0IHRpbGUgcGFkZGluZyBzbyB0aGF0IHRoZSBlcnJvciBpcyBjZW50ZXJlZCAqL1xuICAgIG1hcmdpbi1yaWdodDogMDtcblxuICAgIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KSB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgfVxufVxuXG4ubXhfRXZlbnRUaWxlOmhvdmVyIC5teF9UaHJlYWRBY3Rpb25CYXIsXG4ubXhfRXZlbnRUaWxlLm14X0V2ZW50VGlsZV9hY3Rpb25CYXJGb2N1c2VkIC5teF9UaHJlYWRBY3Rpb25CYXIsXG5bZGF0YS13aGF0aW5wdXQ9XCJrZXlib2FyZFwiXSAubXhfRXZlbnRUaWxlOmZvY3VzLXdpdGhpbiAubXhfVGhyZWFkQWN0aW9uQmFyLFxuLm14X0V2ZW50VGlsZTpmb2N1cy12aXNpYmxlOmZvY3VzLXdpdGhpbiAubXhfVGhyZWFkQWN0aW9uQmFyIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4ubXhfRXZlbnRUaWxlW2RhdGEtc2hhcGU9XCJUaHJlYWRzTGlzdFwiXSxcbi5teF9FdmVudFRpbGVbZGF0YS1zaGFwZT1cIk5vdGlmaWNhdGlvblwiXSB7XG4gICAgLS10b3BPZmZzZXQ6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgLS1sZWZ0T2Zmc2V0OiA0OHB4O1xuICAgICRib3JkZXJSYWRpdXM6IDhweDtcbiAgICAkcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAkaHJIZWlnaHQ6IDFweDtcbiAgICAkbm90aWZpY2F0aW9uLWRvdC1zaXplOiA4cHg7IC8qIG5vdGlmaWNhdGlvbiBkb3QgbmV4dCB0byB0aGUgdGltZXN0YW1wICovXG5cbiAgICBtYXJnaW46IGNhbGModmFyKC0tdG9wT2Zmc2V0KSArICRockhlaWdodCkgMCB2YXIoLS10b3BPZmZzZXQpOyAvKiBpbmNsdWRlIHRoZSBoZWlnaHQgb2YgaG9yaXpvbnRhbCBsaW5lICovXG4gICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlclJhZGl1cztcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAmOjphZnRlcixcbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICAkaW5zZXQtYmxvY2stc3RhcnQ6IGF1dG87XG4gICAgICAgICRpbnNldC1pbmxpbmUtZW5kOiBjYWxjKC0xICogdmFyKC0tY3BkLXNwYWNlLTJ4KSk7XG4gICAgICAgICRpbnNldC1ibG9jay1lbmQ6IGNhbGMoLTEgKiB2YXIoLS10b3BPZmZzZXQpIC0gJGhySGVpZ2h0KTsgLyogZXhjbHVkZSB0aGUgaGVpZ2h0IG9mIGhvcml6b250YWwgbGluZSAqL1xuICAgICAgICAkaW5zZXQtaW5saW5lLXN0YXJ0OiBjYWxjKHZhcigtLWxlZnRPZmZzZXQpICsgJHBhZGRpbmcpO1xuICAgICAgICBpbnNldDogJGluc2V0LWJsb2NrLXN0YXJ0ICRpbnNldC1pbmxpbmUtZW5kICRpbnNldC1ibG9jay1lbmQgJGluc2V0LWlubGluZS1zdGFydDtcblxuICAgICAgICBoZWlnaHQ6ICRockhlaWdodDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF1aW5hcnktY29udGVudDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIGRpc2FibGUgdGhlIG1lc3NhZ2UgYWN0aW9uIGJhciBvbiBob3ZlciAqL1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogZW5zdXJlcyB0aGUgdGl0bGUgZm9yIHRoZSBzZW5kZXIgbmFtZSBjYW4gYmUgY29ycmVjdGx5IGRpc3BsYXllZCAqL1xuICAgIH1cblxuICAgICZbZGF0YS1ub3RpZmljYXRpb249XCJ0b3RhbFwiXTo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJvb20taWNvbi11bnJlYWQtY29sb3I7XG4gICAgfVxuXG4gICAgJltkYXRhLW5vdGlmaWNhdGlvbj1cImhpZ2hsaWdodFwiXTo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFsZXJ0O1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IHVuc2V0O1xuICAgICAgICB9XG5cbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgIGluc2V0OiAkcGFkZGluZyBhdXRvIGF1dG8gJHBhZGRpbmc7XG4gICAgfVxuXG4gICAgLm14X0V2ZW50VGlsZV9kZXRhaWxzIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZmxleDogMTtcblxuICAgICAgICAubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGVfZGlzcGxheU5hbWUsXG4gICAgICAgIC5teF9EaXNhbWJpZ3VhdGVkUHJvZmlsZV9teGlkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0Rpc2FtYmlndWF0ZWRQcm9maWxlX2Rpc3BsYXlOYW1lIHtcbiAgICAgICAgICAgIGZsZXg6IG5vbmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGVfbXhpZCB7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0tbGVmdE9mZnNldCk7XG4gICAgfVxuXG4gICAgLm14X01lc3NhZ2VUaW1lc3RhbXAge1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgIHdpZHRoOiB1bnNldDsgLyogQ2FuY2VsIHRoZSBkZWZhdWx0IHdpZHRoICovXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47IC8qIGVuc3VyZSBjb3JyZWN0IG92ZXJmbG93IGJlaGF2aW9yICovXG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87IC8qIHRvIGVuc3VyZSBpdCdzIGVuZC1hbGlnbmVkIGV2ZW4gaWYgaXQncyB0aGUgb25seSBlbGVtZW50IG9mIGl0cyBwYXJlbnQgKi9cbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBhbmVscztcbiAgICB9XG5cbiAgICAvKiBUaHJlYWRzTGlzdCBoYXMgYWx3YXlzIGdyb3VwIGxheW91dCAqL1xuICAgICZbZGF0YS1sYXlvdXQ9XCJncm91cFwiXTpob3ZlciB7XG4gICAgICAgIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTsgLyogZG9uJ3Qgc2hvdyB0aGUgdmVyaWZpY2F0aW9uIGxlZnQgc3Ryb2tlIGluIHRoZSB0aHJlYWQgbGlzdCAqL1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfRXZlbnRUaWxlW2RhdGEtc2hhcGU9XCJUaHJlYWRzTGlzdFwiXSB7XG4gICAgLm14X1RocmVhZFBhbmVsX3JlcGxpZXMge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG5cbiAgICAgICAgPiBzdmcge1xuICAgICAgICAgICAgQG1peGluIFRocmVhZFN1bW1hcnlJY29uO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1RocmVhZFBhbmVsX3JlcGxpZXNfYW1vdW50IHtcbiAgICAgICAgICAgIEBtaXhpbiBUaHJlYWRSZXBsaWVzQW1vdW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfVGhyZWFkU3VtbWFyeV9pY29uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgPiBzdmcge1xuICAgICAgICBAbWl4aW4gVGhyZWFkU3VtbWFyeUljb247XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICBtYXJnaW4tdG9wOiAtMnB4O1xuICAgIH1cblxuICAgIGEmIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB9XG59XG5cbi8qIEZvciBzdHlsZSBydWxlcyBvZiBUaHJlYWRWaWV3LCBzZWUgX1RocmVhZFBhbmVsLnBjc3MgKi9cbi5teF9UaHJlYWRWaWV3IHtcbiAgICAtLVRocmVhZFZpZXdfZ3JvdXBfc3BhY2luZy1zdGFydDogNTZweDsgLyogNTZweDogNjRweCAtIDhweCAocGFkZGluZykgKi9cbiAgICAtLVRocmVhZFZpZXdfZ3JvdXBfc3BhY2luZy1lbmQ6IDhweDsgLyogc2FtZSBhcyBwYWRkaW5nICovXG5cbiAgICAubXhfRXZlbnRUaWxlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAubXhfRXZlbnRUaWxlX3Jvb21OYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBoYW5kbGluZyBmb3IgaGlkZGVuIGV2ZW50cyAoZS5nIHJlYWN0aW9ucykgaW4gdGhlIHRocmVhZCB2aWV3ICovXG4gICAgICAgICYubXhfRXZlbnRUaWxlX2luZm8ge1xuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9hdmF0YXIge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAvKiBBbGlnbiB3aXRoIGhpZGRlbiBldmVudCBjb250ZW50ICovXG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0ycHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5teF9FdmVudFRpbGVfc2VsZWN0ZWQgLm14X0V2ZW50VGlsZV9saW5lLFxuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgICAgICAkbGluZS1oZWlnaHQ6ICRmb250LTEycHg7XG5cbiAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuXG4gICAgICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9jb250ZW50LFxuICAgICAgICAgICAgICAgIC5teF9SZWRhY3RlZEJvZHkge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkbGluZS1oZWlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmW2RhdGEtbGF5b3V0PVwiaXJjXCJdLFxuICAgICAgICAgICAgJltkYXRhLWxheW91dD1cImdyb3VwXCJdIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcblxuICAgICAgICAgICAgICAgIC5teF9FdmVudFRpbGVfYXZhdGFyIHtcbiAgICAgICAgICAgICAgICAgICAgLyogMTRweDogYXZhdGFyIHdpZHRoLCA0cHg6IGFsaWduIHdpdGggdGV4dCAqL1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKHZhcigtLU1lc3NhZ2VUaW1lc3RhbXAtd2lkdGgpICsgMTRweCAtIDRweCk7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDk7IC8qIHBvc2l0aW9uIGFib3ZlIHRoZSBob3ZlciBzdHlsaW5nICovXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X01lc3NhZ2VUaW1lc3RhbXAge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDJweDsgLyogQWxpZ24gd2l0aCBhdmF0YXIgKi9cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLm14X0V2ZW50VGlsZV9zZWxlY3RlZCAubXhfRXZlbnRUaWxlX2xpbmUsXG4gICAgICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9jb250ZW50LFxuICAgICAgICAgICAgICAgICAgICAubXhfUmVkYWN0ZWRCb2R5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDE0cHg6IGF2YXRhciB3aWR0aCwgNnB4OiAyMHB4IC0gMTRweCAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogY2FsYygxNHB4ICsgNnB4KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJltkYXRhLWxheW91dD1cImJ1YmJsZVwiXSB7XG4gICAgICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9hdmF0YXIge1xuICAgICAgICAgICAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5teF9FdmVudFRpbGVfc2VsZWN0ZWQgLm14X0V2ZW50VGlsZV9saW5lLFxuICAgICAgICAgICAgICAgIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICAgICAgICAgIC5teF9FdmVudFRpbGVfY29udGVudCxcbiAgICAgICAgICAgICAgICAgICAgLm14X1JlZGFjdGVkQm9keSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBjYWxjKHZhcigtLVRocmVhZFZpZXdfZ3JvdXBfc3BhY2luZy1zdGFydCkgKyAxNHB4ICsgNnB4KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1sYXlvdXQ9XCJpcmNcIl0sXG4gICAgICAgICZbZGF0YS1sYXlvdXQ9XCJncm91cFwiXSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUsXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2Zvb3RlciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLVRocmVhZFZpZXdfZ3JvdXBfc3BhY2luZy1lbmQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYmxvY2s6IHZhcigtLUJhc2VDYXJkX0V2ZW50VGlsZV9saW5lLXBhZGRpbmctYmxvY2spO1xuXG4gICAgICAgICAgICAgICAgLyogQWRkIHBhZGRpbmcgdG8gYWxpZ24gbWVzc2FnZSB0ZXh0IHdpdGggc3VtbWFyeSB0ZXh0ICovXG4gICAgICAgICAgICAgICAgLyogU2VlOiAubXhfRXZlbnRUaWxlW2RhdGEtbGF5b3V0PVwiZ3JvdXBcIl0gLm14X0V2ZW50VGlsZV9saW5lICovXG4gICAgICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLVRocmVhZFZpZXdfZ3JvdXBfc3BhY2luZy1zdGFydCk7XG5cbiAgICAgICAgICAgICAgICAubXhfRXZlbnRUaWxlX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgICAgICAmLm14X0VkaXRNZXNzYWdlQ29tcG9zZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7IC8qIGFsaWduIHN0YXJ0IG9mIGZpcnN0IGxldHRlciB3aXRoIHRoYXQgb2YgdGhlIGV2ZW50IGJvZHkgKi9cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9mb290ZXIge1xuICAgICAgICAgICAgICAgIC8qIEFsaWduIHdpdGggbWVzc2FnZSB0ZXh0IGFuZCBzdW1tYXJ5IHRleHQgKi9cbiAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1UaHJlYWRWaWV3X2dyb3VwX3NwYWNpbmctc3RhcnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLm14X0V2ZW50VGlsZV9jb250aW51YXRpb24ge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYmxvY2stc3RhcnQ6IDA7IC8qIENhbmNlbCBwYWRkaW5nLWJsb2NrLXN0YXJ0ICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmW2RhdGEtbGF5b3V0PVwiZ3JvdXBcIl0ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfc2VuZGVyRGV0YWlscyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTsgLyogZ2FwIGJldHdlZW4gdGhlIGF2YXRhciBhbmQgdGhlIHNlbmRlciBJRCAqL1xuICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogdW5zZXQ7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgICAgICAubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogOHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X01lc3NhZ2VUaW1lc3RhbXAge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgLyogZm9yIElSQyBsYXlvdXQgKi9cbiAgICAgICAgICAgICAgICB0b3A6IDJweDsgLyogQWxpZ24gd2l0aCBteF9FdmVudFRpbGVfY29udGVudCAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJltkYXRhLWxheW91dD1cImJ1YmJsZVwiXSB7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lOiB2YXIoLS1CYXNlQ2FyZF9FdmVudFRpbGUtc3BhY2luZy1pbmxpbmUpO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGluc2V0LWlubGluZTogY2FsYygtMSAqIHZhcigtLUJhc2VDYXJkX0V2ZW50VGlsZS1zcGFjaW5nLWlubGluZSkpO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IGF1dG87IC8qIGVuYWJsZSBiYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9SZWFjdGlvbnNSb3cge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogZGlzcGxheSBvbiBob3ZlciAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUubXhfRXZlbnRUaWxlX21lZGlhTGluZSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ibG9jazogMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMDtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IHZhcigtLUV2ZW50QnViYmxlVGlsZV9saW5lLW1heC13aWR0aCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZbZGF0YS1zZWxmPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lLm14X0V2ZW50VGlsZV9tZWRpYUxpbmUge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgdmFyKC0tRXZlbnRUaWxlX2J1YmJsZV9saW5lLW1hcmdpbi1pbmxpbmUtZW5kKSAwIDA7IC8qIGFsaWduIHdpdGggbm9ybWFsIG1lc3NhZ2VzICovXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5IHtcbiAgICAgICAgJltkYXRhLWxheW91dD1cImlyY1wiXSxcbiAgICAgICAgJltkYXRhLWxheW91dD1cImdyb3VwXCJdIHtcbiAgICAgICAgICAgID4gLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0tVGhyZWFkVmlld19ncm91cF9zcGFjaW5nLXN0YXJ0KTsgLyogYWxpZ24gc3VtbWFyeSB0ZXh0IHdpdGggbWVzc2FnZSB0ZXh0ICovXG4gICAgICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiB2YXIoLS1UaHJlYWRWaWV3X2dyb3VwX3NwYWNpbmctZW5kKTsgLyogYWxpZ24gc3VtbWFyeSB0ZXh0IHdpdGggbWVzc2FnZSB0ZXh0ICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIENhc2NhZGluZyAtIGNvbXBhY3QgbW9kZXJuIGxheW91dCBvbiB0aGUgbWFpbiB0aW1lbGluZSBhbmQgdGhlIHJpZ2h0IHBhbmVsICovXG4ubXhfTWF0cml4Q2hhdF91c2VDb21wYWN0TGF5b3V0IHtcbiAgICAubXhfRXZlbnRUaWxlW2RhdGEtbGF5b3V0PVwiZ3JvdXBcIl0ge1xuICAgICAgICAtLU1hdHJpeENoYXRfdXNlQ29tcGFjdExheW91dF9ncm91cC1wYWRkaW5nLXRvcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgLS1NYXRyaXhDaGF0X3VzZUNvbXBhY3RMYXlvdXQtdG9wLWF2YXRhcjogMnB4O1xuICAgICAgICAtLU1hdHJpeENoYXRfdXNlQ29tcGFjdExheW91dF9saW5lLXNwYWNpbmctYmxvY2s6IDBweDtcblxuICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0tTWF0cml4Q2hhdF91c2VDb21wYWN0TGF5b3V0X2dyb3VwLXBhZGRpbmctdG9wKTtcblxuICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUsXG4gICAgICAgIC5teF9FdmVudFRpbGVfcmVwbHkge1xuICAgICAgICAgICAgcGFkZGluZy1ibG9jazogdmFyKC0tTWF0cml4Q2hhdF91c2VDb21wYWN0TGF5b3V0X2xpbmUtc3BhY2luZy1ibG9jayk7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUmVwbHlDaGFpbiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9FdmVudFRpbGVfaW5mbyB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDsgLyogc2FtZSBhcyB0aGUgcGFkZGluZyBmb3Igbm9uLWNvbXBhY3QgLm14X0V2ZW50VGlsZS5teF9FdmVudFRpbGVfaW5mbyAqL1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xM3B4O1xuXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2UyZUljb24sXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ibG9jazogdmFyKC0tTWF0cml4Q2hhdF91c2VDb21wYWN0TGF5b3V0X2xpbmUtc3BhY2luZy1ibG9jayk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfbGluZSxcbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfcmVwbHkge1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9FdmVudFRpbGVfZW1vdGUge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7IC8qIGFkZCBhIGJpdCBtb3JlIHNwYWNlIGZvciBlbW90ZXMgc28gdGhhdCBhdmF0YXJzIGRvbid0IGNvbGxpZGUgKi9cblxuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9hdmF0YXIge1xuICAgICAgICAgICAgICAgIHRvcDogdmFyKC0tTWF0cml4Q2hhdF91c2VDb21wYWN0TGF5b3V0LXRvcC1hdmF0YXIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUsXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX3JlcGx5IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMXB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLm14X0V2ZW50VGlsZV9jb250aW51YXRpb24ge1xuICAgICAgICAgICAgICAgIC5teF9FdmVudFRpbGVfbGluZSxcbiAgICAgICAgICAgICAgICAubXhfRXZlbnRUaWxlX3JlcGx5IHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLU1hdHJpeENoYXRfdXNlQ29tcGFjdExheW91dF9saW5lLXNwYWNpbmctYmxvY2spO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qIENhc2NhZGluZyAtIGFwcGx5IHplcm8gcGFkZGluZyB0byBldmVyeSBlbGVtZW50IGluY2x1ZGluZyBteF9FdmVudFRpbGVfZW1vdGUgKi9cbiAgICAgICAgJi5teF9FdmVudFRpbGVfY29udGludWF0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiB2YXIoLS1NYXRyaXhDaGF0X3VzZUNvbXBhY3RMYXlvdXRfbGluZS1zcGFjaW5nLWJsb2NrKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfYXZhdGFyIHtcbiAgICAgICAgICAgIHRvcDogdmFyKC0tTWF0cml4Q2hhdF91c2VDb21wYWN0TGF5b3V0LXRvcC1hdmF0YXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9lMmVJY29uIHtcbiAgICAgICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9tc2dPcHRpb24ge1xuICAgICAgICAgICAgLm14X1JlYWRSZWNlaXB0R3JvdXAge1xuICAgICAgICAgICAgICAgIC8qIFRoaXMgYWxpZ25zIHRoZSBhdmF0YXIgd2l0aCB0aGUgbGFzdCBsaW5lIG9mIHRoZSAqL1xuICAgICAgICAgICAgICAgIC8qIG1lc3NhZ2UuIFdlIHdhbnQgdG8gbW92ZSBpdCBvbmUgbGluZSB1cCAtIDJyZW0gKi9cbiAgICAgICAgICAgICAgICBpbnNldC1ibG9jay1zdGFydDogLTJyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2NvbnRlbnQgLm1hcmtkb3duLWJvZHkge1xuICAgICAgICAgICAgcCxcbiAgICAgICAgICAgIHVsLFxuICAgICAgICAgICAgb2wsXG4gICAgICAgICAgICBkbCxcbiAgICAgICAgICAgIGJsb2NrcXVvdGUsXG4gICAgICAgICAgICBwcmUsXG4gICAgICAgICAgICB0YWJsZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTF4KTsgLyogMS80IG9mIHRoZSBub24tY29tcGFjdCBtYXJnaW4tYm90dG9tICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9FdmVudFRpbGVfZGV0YWlscyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogc3RyZXRjaDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWxlZnRPZmZzZXQpO1xuICAgIC5teF9FdmVudFRpbGVfdHJ1bmNhdGVkIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxufVxuXG4ubXhfRXZlbnRUaWxlX2Zvb3RlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLyogTWVkaWEgcXVlcnkgZm9yIG1vYmlsZSBVSSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xuICAgIC5teF9FdmVudFRpbGVfY29udGVudCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBSb2JpbiBUb3duc2VuZCA8cm9iaW5Acm9iaW4udG93bj5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0V2ZW50VGlsZUJ1YmJsZS5teF9IaXN0b3J5VGlsZSB7XG4gICAgbWFyZ2luOiB2YXIoLS1FdmVudFRpbGVCdWJibGVfbWFyZ2luLWJsb2NrKSBhdXRvO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgY29sb3I6ICRoZWFkZXItcGFuZWwtdGV4dC1wcmltYXJ5LWNvbG9yO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbjpyb290IHtcbiAgICAtLWlyYy1saW5lLWhlaWdodDogJGZvbnQtMThweDtcbn1cblxuLm14X0lSQ0xheW91dCB7XG4gICAgLS1uYW1lLXdpZHRoOiA4MHB4OyAvKiBjZi4gaXJjRGlzcGxheU5hbWVXaWR0aCBvbiBTZXR0aW5ncy50c3ggKi9cbiAgICAtLWV2ZW50LXRpbGUtaXJjLW5hbWUtd2lkdGg6IHZhcigtLW5hbWUtd2lkdGgpO1xuICAgIC0taWNvbi13aWR0aDogMTRweDtcbiAgICAtLWxpbmUtaGVpZ2h0OiB2YXIoLS1pcmMtbGluZS1oZWlnaHQpO1xuICAgIC0tcmlnaHQtcGFkZGluZzogNXB4O1xuXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0KSAhaW1wb3J0YW50O1xuXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAubXhfTmV3Um9vbUludHJvIHtcbiAgICAgICAgPiBoMiB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogaW5pdGlhbDsgLyogQ2FuY2VsIHZhcigtLWlyYy1saW5lLWhlaWdodCkgKi9cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9SZXBseUNoYWluIHtcbiAgICAgICAgLm14X0Rpc2FtYmlndWF0ZWRQcm9maWxlIHtcbiAgICAgICAgICAgIHdpZHRoOiB1bnNldDtcbiAgICAgICAgICAgIG9yZGVyOiB1bnNldDtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiB1bnNldDsgLyogVW5zZXQgZmxleC1zaHJpbmsgdG8gcHJldmVudCBsb25nIGRpc3BsYXkgbmFtZSBibG93b3V0ICovXG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2Vtb3RlIHtcbiAgICAgICAgICAgID4gLm14X0V2ZW50VGlsZV9hdmF0YXIge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBpbml0aWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X01lc3NhZ2VUaW1lc3RhbXAge1xuICAgICAgICAgICAgd2lkdGg6IGluaXRpYWw7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogYWRkaW5nIHRoZSBpY29uIGJhY2sgaW4gdGhlIGRvY3VtZW50IGZsb3dcbiAgICAgICAgICogaWYgaXQncyBub3QgcHJlc2VudCwgdGhlcmUncyBubyB1bndhbnRlZCB3YXN0ZWQgc3BhY2VcbiAgICAgICAgICovXG4gICAgICAgIC5teF9FdmVudFRpbGVfZTJlSWNvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvcmRlcjogLTE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUHJvZmlsZVJlc2l6ZXIge1xuICAgICAgICAtLXJlc2l6ZXItd2lkdGg6IDE1cHg7XG4gICAgICAgIC0tcmVzaXplci1hMTF5OiAzcHg7IC8qIE1hZ2ljIG51bWJlciwgdG8gYmUgcmVwbGFjZWQgd2l0aCBzb21ldGhpbmcgbW9yZSBwcm9wZXIgZnJvbSB0aGUgcGVyc3BlY3RpdmUgb2YgYTExeSAqL1xuXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogdmFyKC0tcmVzaXplci13aWR0aCk7XG4gICAgICAgIGN1cnNvcjogY29sLXJlc2l6ZTtcbiAgICAgICAgei1pbmRleDogMTAwO1xuXG4gICAgICAgIC8qIEFkZCB3aWR0aCBvZiBldmVyeSBlbGVtZW50IHJlbmRlcmVkIGJlZm9yZSB0aGUgcmVzaXplciAoaW5jbHVkaW5nIHBhZGRpbmcgZm9yIHRoZSBhdmF0YXIgYW5kIHRoZSBkaXNwbGF5XG4gICAgICAgICAgIG5hbWUpLCBzdWJ0cmFjdGluZyB0aGUgcmVzaXplciB3aWR0aCBpdHNlbGYgdG8gcHJldmVudCB0aGUgcmVzaXplciBmcm9tIG92ZXJsYXBwaW5nIHRoZSB0ZXh0IGFuZCBtb3ZpbmdcbiAgICAgICAgICAgdGhlIHJlc2l6ZXIgYSBiaXQgdG8gdGhlIGxlZnQgdG8gbWFrZSBpdCBlYXNpZXIgdG8gYXZvaWQgc2VsZWN0aW5nIHRoZSByZXNpemVyIHdoZW4gaGlnaGxpZ2h0aW5nIHRleHQuXG4gICAgICAgICAgIFBsZWFzZSBub3RlIHRoYXQgTWVzc2FnZVRpbWVzdGFtcCBkb2VzIG5vdCBoYXZlIGlubGluZSBwYWRkaW5nLiAqL1xuICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IGNhbGMoXG4gICAgICAgICAgICB2YXIoLS1Sb29tVmlld19NZXNzYWdlTGlzdC1wYWRkaW5nKSArIHZhcigtLU1lc3NhZ2VUaW1lc3RhbXAtd2lkdGgpICsgdmFyKC0taWNvbi13aWR0aCkgK1xuICAgICAgICAgICAgICAgIHZhcigtLXJpZ2h0LXBhZGRpbmcpICsgdmFyKC0tbmFtZS13aWR0aCkgKyB2YXIoLS1yaWdodC1wYWRkaW5nKSAtIHZhcigtLXJlc2l6ZXItd2lkdGgpIC1cbiAgICAgICAgICAgICAgICB2YXIoLS1yZXNpemVyLWExMXkpXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI1IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSW52aXRlZEljb25WaWV3IHtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tdGVydGlhcnkpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9KdW1wVG9Cb3R0b21CdXR0b24ge1xuICAgIHotaW5kZXg6IDEwMDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIC8qIDEyIGJlY2F1c2UgaGVpZ2h0IGlzIDUwIGJ1dCBidXR0b24gaXMgb25seSAzOCA9IDEyKyg1MC0zOCkgPSAyNCAqL1xuICAgIGJvdHRvbTogMTJweDtcbiAgICByaWdodDogMjRweDtcbiAgICB3aWR0aDogMzhweDtcbiAgICAvKiBnaXZlIGl0IGEgZml4ZWQgaGVpZ2h0IHNvIHRoZSBiYWRnZSBkb2Vzbid0IG1ha2UgKi9cbiAgICAvKiBpdCB0YWxsZXIgYW5kIHBvcCB1cHdhcmRzIHdoZW4gdmlzaWJsZSAqL1xuICAgIGhlaWdodDogNTBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5teF9KdW1wVG9Cb3R0b21CdXR0b25fYmFkZ2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0xMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAvKiB0byBiZSBhYmxlIHRvIGdldCBpdCBjZW50ZXJlZCAqL1xuICAgIC8qIHdpdGggdGV4dC1hbGlnbiBpbiBwYXJlbnQgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogMCA0cHg7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LW9uLXNvbGlkLXByaW1hcnkpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXNlY29uZGFyeSk7XG59XG5cbi5teF9KdW1wVG9Cb3R0b21CdXR0b25faGlnaGxpZ2h0IC5teF9KdW1wVG9Cb3R0b21CdXR0b25fYmFkZ2Uge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLWNyaXRpY2FsLXByaW1hcnkpO1xufVxuXG4ubXhfSnVtcFRvQm90dG9tQnV0dG9uX3Njcm9sbERvd24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDM4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyOiAxLjNweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItaWNvbi10ZXJ0aWFyeSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgcGFkZGluZzogN3B4IDhweCA3cHggNnB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tdGVydGlhcnkpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9MaXZlQ29udGVudFN1bW1hcnkge1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICAubXhfTGl2ZUNvbnRlbnRTdW1tYXJ5X3RleHQge1xuICAgICAgICBzdmcge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0xpdmVDb250ZW50U3VtbWFyeV90ZXh0X2FjdGl2ZSB7XG4gICAgICAgICAgICBjb2xvcjogJGFjY2VudDtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9MaXZlQ29udGVudFN1bW1hcnlfcGFydGljaXBhbnRzIHN2ZyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAycHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTWVtYmVyTGlzdEhlYWRlclZpZXcge1xuICAgIGJvcmRlci1ib3R0b206IHZhcigtLWNwZC1ib3JkZXItd2lkdGgtMSkgc29saWQgdmFyKC0tY3BkLWNvbG9yLWdyYXktNDAwKTtcbiAgICBtYXgtaGVpZ2h0OiAxMTJweDtcblxuICAgIC5teF9NZW1iZXJMaXN0SGVhZGVyVmlld19jb250YWluZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAubXhfTWVtYmVyTGlzdEhlYWRlclZpZXdfaW52aXRlX3NtYWxsIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICB9XG5cbiAgICAubXhfTWVtYmVyTGlzdEhlYWRlclZpZXdfaW52aXRlX2xhcmdlIHtcbiAgICAgICAgd2lkdGg6IDI4OHB4O1xuICAgICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgfVxuXG4gICAgLm14X01lbWJlckxpc3RIZWFkZXJWaWV3X2xhYmVsIHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTZ4KSAwIHZhcigtLWNwZC1zcGFjZS0yeCkgdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXNlbWlib2xkKTtcbiAgICB9XG5cbiAgICAubXhfTWVtYmVyTGlzdEhlYWRlclZpZXdfc2VhcmNoIHtcbiAgICAgICAgd2lkdGg6IDI0MHB4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01lbWJlckxpc3RWaWV3IHtcbiAgICBmbGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtaW4taGVpZ2h0OiAwO1xuXG4gICAgLm14X01lbWJlckxpc3RWaWV3X2NvbnRhaW5lciB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICAubXhfTWVtYmVyTGlzdFZpZXdfc2VwYXJhdG9yIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXByaW1hcnkpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01lbWJlclRpbGVWaWV3IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0zeCkgdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtM3gpIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBoZWlnaHQ6IDU2cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogdmFyKC0tY3BkLWJvcmRlci13aWR0aC0xKSBzb2xpZCB2YXIoLS1jcGQtY29sb3ItZ3JheS0zMDApO1xuXG4gICAgLm14X01lbWJlclRpbGVWaWV3X2xlZnQsXG4gICAgLm14X01lbWJlclRpbGVWaWV3X3JpZ2h0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIH1cblxuICAgIC5teF9NZW1iZXJUaWxlVmlld19sZWZ0IHtcbiAgICAgICAgZmxleC1iYXNpczogMjA5cHg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cblxuICAgIC5teF9NZW1iZXJUaWxlVmlld19uYW1lIHtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1tZWRpdW0pO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG5cbiAgICAgICAgLm14X0Rpc2FtYmlndWF0ZWRQcm9maWxlIHtcbiAgICAgICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTWVtYmVyVGlsZVZpZXdfdXNlckxhYmVsIHtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIH1cblxuICAgIC5teF9NZW1iZXJUaWxlVmlld19hdmF0YXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgfVxuXG4gICAgLm14X01lbWJlclRpbGVWaWV3X3ByZXNlbmNlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogLTJweDtcbiAgICAgICAgYm90dG9tOiAycHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE4LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX3dyYXBwZXIge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkcHJpbWFyeS1oYWlybGluZS1jb2xvcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1sZWZ0OiA0MnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7XG59XG5cbi5teF9NZXNzYWdlQ29tcG9zZXJfcmVwbGFjZWRfd3JhcHBlciB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX3JlcGxhY2VkX3ZhbGlnbiB7XG4gICAgaGVpZ2h0OiA2MHB4O1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLm14X01lc3NhZ2VDb21wb3Nlcl9yb29tUmVwbGFjZWRfaWNvbiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICB3aWR0aDogMzFweDtcbiAgICBoZWlnaHQ6IDMxcHg7XG59XG5cbi5teF9NZXNzYWdlQ29tcG9zZXJfcm9vbVJlcGxhY2VkX2hlYWRlciB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5teF9NZXNzYWdlQ29tcG9zZXJfcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLm14X01lc3NhZ2VDb21wb3Nlcl9hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG59XG5cbi5teF9NZXNzYWdlQ29tcG9zZXIge1xuICAgIC5teF9NZXNzYWdlQ29tcG9zZXJfYXZhdGFyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAyNnB4O1xuXG4gICAgICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX2UyZUljb25XcmFwcGVyIHtcbiAgICBoZWlnaHQ6IDEycHg7IC8qIE1hdGNoIHRoZSBoZWlnaHQgb2YgdGhlIEUyRSBpY29uIGZvciBhbGlnbm1lbnQgKi9cbiAgICB3aWR0aDogMTJweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMjBweDtcbiAgICB0b3A6IDIycHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyAvKiBDb3VudGVyYWN0IHRoZSBFMkVJY29uIGNsYXNzICovXG4gICAgbWFyZ2luLWxlZnQ6IDNweDsgLyogQ291bnRlcmFjdCB0aGUgRTJFSWNvbiBjbGFzcyAqL1xuXG4gICAgLm14X01lc3NhZ2VDb21wb3Nlcl9lMmVJY29uIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgIH1cbn1cblxuLm14X01lc3NhZ2VDb21wb3Nlcl9ub3Blcm1fZXJyb3Ige1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNjBweDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgY29sb3I6ICRpbmZvLXBsaW50aC1mZy1jb2xvcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5teF9NZXNzYWdlQ29tcG9zZXJfaW5wdXQge1xuICAgIGZsZXg6IDE7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWluLWhlaWdodDogNjBweDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcblxuICAgIHByZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRydGUtY29kZS1iZy1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgIH1cblxuICAgIHRleHRhcmVhIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwcHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDZweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgICAgICBib3JkZXI6IDBweDtcbiAgICAgICAgcmVzaXplOiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEyMHB4O1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICAvKiBoYWNrIGZvciBGRiBhcyB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgY3VzdG9tIHBsYWNlaG9sZGVyIHRleHQgaXMgYnJva2VuICovXG4gICAgICAgICY6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX2J1dHRvbl9oaWdobGlnaHQge1xuICAgIEBtaXhpbiBjb21wb3NlckJ1dHRvbkhpZ2hMaWdodDtcbn1cblxuLm14X01lc3NhZ2VDb21wb3Nlcl9idXR0b24ge1xuICAgIEBtaXhpbiBjb21wb3NlckJ1dHRvbiA1MCUsIHZhcigtLWNwZC1jb2xvci1pY29uLXByaW1hcnkpLCB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXByaW1hcnkpO1xuICAgIHBhZGRpbmc6IDNweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgd2lkdGg6IDIwcHg7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgJi5teF9NZXNzYWdlQ29tcG9zZXJfY2xvc2VCdXR0b25NZW51IHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1wcmltYXJ5KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1wcmltYXJ5KTtcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdmcge1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgIH1cbn1cbi5teF9NZXNzYWdlQ29tcG9zZXJfd3lzaXd5ZyB7XG4gICAgLm14X01lc3NhZ2VDb21wb3Nlcl93cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgICAgICBtYXJnaW4tdG9wOiA2cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgfVxuXG4gICAgLm14X01lc3NhZ2VDb21wb3Nlcl9yb3cge1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgfVxuXG4gICAgLm14X01lc3NhZ2VDb21wb3Nlcl9hY3Rpb25zIHtcbiAgICAgICAgLyogSGVpZ2h0IG9mIHRoZSBjb21wb3NlciBlZGl0b3IgKi9cbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgIH1cblxuICAgIC5teF9NZWRpYUJvZHkge1xuICAgICAgICBwYWRkaW5nLXRvcDogNHB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNHB4O1xuICAgIH1cblxuICAgIC5teF9NZXNzYWdlQ29tcG9zZXJfYnV0dG9uIHtcbiAgICAgICAgQG1peGluIGNvbXBvc2VyQnV0dG9uIDVweCwgJHRlcnRpYXJ5LWNvbnRlbnQsICRwYW5lbHM7XG5cbiAgICAgICAgJi5teF9NZXNzYWdlQ29tcG9zZXJfY2xvc2VCdXR0b25NZW51IHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYWNjZW50LTMwMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9NZXNzYWdlQ29tcG9zZXJfYnV0dG9uTWVudSB7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIHBhZGRpbmc6IDFweDtcblxuICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgfVxufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX3NlbmRNZXNzYWdlIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1hY2NlbnQtdGVydGlhcnkpO1xuICAgIGhlaWdodDogMTZweDtcbiAgICB3aWR0aDogMTZweDtcblxuICAgIHN2ZyB7XG4gICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG5cbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLW9uLXNvbGlkLXByaW1hcnkpO1xuICAgIH1cbn1cblxuLm14X01hdHJpeENoYXRfdXNlQ29tcGFjdExheW91dCB7XG4gICAgLm14X01lc3NhZ2VDb21wb3Nlcl9pbnB1dCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgfVxuXG4gICAgLm14X01lc3NhZ2VDb21wb3Nlcl9ub3Blcm1fZXJyb3Ige1xuICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgfVxufVxuXG4vKipcbiAqIFVuc3RhYmxlIGNvbXBhY3QgbW9kZVxuICovXG5cbi5teF9NZXNzYWdlQ29tcG9zZXIubXhfTWVzc2FnZUNvbXBvc2VyLS1jb21wYWN0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG5cbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyX3dyYXBwZXIge1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAyNXB4O1xuICAgIH1cblxuICAgIC5teF9NZXNzYWdlQ29tcG9zZXJfZTJlSWNvbldyYXBwZXIge1xuICAgICAgICBsZWZ0OiAwO1xuICAgIH1cblxuICAgICY6bm90KC5teF9NZXNzYWdlQ29tcG9zZXJfZTJlU3RhdHVzKSB7XG4gICAgICAgIC5teF9NZXNzYWdlQ29tcG9zZXJfd3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X01lc3NhZ2VDb21wb3Nlcl9idXR0b246bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG5cbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyX2UyZUljb24ge1xuICAgICAgICBsZWZ0OiAwO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NZXNzYWdlQ29tcG9zZXJGb3JtYXRCYXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgd2lkdGg6IGNhbGMoMzJweCAqIDYpO1xuICAgIGhlaWdodDogMzJweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBib3JkZXI6IHZhcigtLWNwZC1ib3JkZXItd2lkdGgtMSkgc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1kaXNhYmxlZCk7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLyogZXF1YWwgdG8gei1pbmRleCBvZiBteF9SZXBseVByZXZpZXcgYW5kIG14X1Jvb21WaWV3X3N0YXR1c0FyZWEgKDEwMDApICovXG4gICAgLyogYnV0IGFzIGl0IGFwcGVhcnMgYWZ0ZXIgdGhlbSBpbiB0aGUgRE9NLCB3aWxsIGFwcGVhciBvbiB0b3AuICovXG4gICAgei1pbmRleDogMTAwMDtcblxuICAgICYubXhfTWVzc2FnZUNvbXBvc2VyRm9ybWF0QmFyX3Nob3duIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgPiAqIHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbjogMnB4O1xuICAgIH1cblxuICAgIC5teF9NZXNzYWdlQ29tcG9zZXJGb3JtYXRCYXJfYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXNlY29uZGFyeSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXByaW1hcnkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyRm9ybWF0QmFyX2J1dHRvblRvb2x0aXAge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZm9udC1zaXplOiAkZm9udC0xM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIG1pbi13aWR0aDogNTRweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTmV3Um9vbUludHJvIHtcbiAgICBtYXJnaW46IDQwcHggMCA0OHB4IDY0cHg7XG5cbiAgICAubXhfTWluaUF2YXRhclVwbG9hZGVyX2hhc0F2YXRhcjpub3QoLm14X01pbmlBdmF0YXJVcGxvYWRlcl9idXN5KTpub3QoOmhvdmVyKSB7XG4gICAgICAgIC5teF9NaW5pQXZhdGFyVXBsb2FkZXJfaW5kaWNhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTmV3Um9vbUludHJvX2J1dHRvbnMge1xuICAgICAgICBtYXJnaW4tdG9wOiAyOHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWZsb3c6IHdyYXA7XG4gICAgICAgIGdhcDogMTRweCAxMnB4O1xuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbi1mZy1jb2xvcjtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgPiBoMiB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTZ4KSAwIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWhlYWRpbmctbWQtc2VtaWJvbGQpO1xuICAgIH1cblxuICAgID4gcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfT3ZlcmZsb3dUaWxlVmlldyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm14X092ZXJmbG93VGlsZVZpZXdfdGV4dCB7XG4gICAgZmxleDogMSAxIDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4ubXhfT3ZlcmZsb3dUaWxlVmlldzpob3ZlciB7XG4gICAgcGFkZGluZy1yaWdodDogMzBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIHRvIGtlZXAgdGhlIGNoZXZyb24gYWxpZ25lZCAqL1xuXG4gICAgLm14X092ZXJmbG93VGlsZVZpZXdfY2hldnJvbiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG59XG5cbi5teF9PdmVyZmxvd1RpbGVWaWV3X2NoZXZyb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IGNhbGMoNTAlIC0gMTJweCk7IC8qIGNlbnRlciAqL1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICBjb2xvcjogJGhlYWRlci1wYW5lbC10ZXh0LXByaW1hcnktY29sb3I7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLm14X092ZXJmbG93VGlsZVZpZXdfaWNvbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAzcHg7XG4gICAgcGFkZGluZy1yaWdodDogMTJweDtcbiAgICBwYWRkaW5nLXRvcDogNHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTcgVHJhdmlzIFJhbHN0b25cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Bpbm5lZEV2ZW50VGlsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICAubXhfUGlubmVkRXZlbnRUaWxlX3dyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgIC8qIFJlbW92ZSBhdmF0YXIgd2lkdGggYW5kIHNwYWNlIGJldHdlZW4gdGhlIGF2YXRhciBhbmQgdGhlIHdyYXBwZXIgKi9cbiAgICAgICAgLyogV2UgbmVlZCBpdCB0byBtYWtlIHRoZSBsb2NhdGlvbiBmaXQgKi9cbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLWNwZC1zcGFjZS00eCkgLSAzMnB4KTtcbiAgICAgICAgLyogUHJldmVudCBhIGxvbmcgc2VuZGVyIG5hbWUgdG8gb3ZlcmZsb3cgdGhlIHRpbGUgKi9cbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAubXhfUGlubmVkRXZlbnRUaWxlX3RvcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAgICAgLm14X1Bpbm5lZEV2ZW50VGlsZV9zZW5kZXIge1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXNlbWlib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9QaW5uZWRFdmVudFRpbGVfdGhyZWFkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgICAgIGZpbGw6IHZhcigtLWNwZC1jb2xvci1pY29uLXRlcnRpYXJ5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuICogQ29weXJpZ2h0IDIwMjQgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X1Bpbm5lZE1lc3NhZ2VCYW5uZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIC8qIDY0cHggPSA2M3B4ICsgMXB4IGZyb20gdGhlIGJvdHRvbSBib3JkZXIgKi9cbiAgICBoZWlnaHQ6IDYzcHg7XG4gICAgcGFkZGluZzogMCB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWdyYXktNDAwKTtcblxuICAgIC8qIEZyb20gZmlnbWEgKi9cbiAgICBib3gtc2hhZG93OiAwIHZhcigtLWNwZC1zcGFjZS0yeCkgdmFyKC0tY3BkLXNwYWNlLTZ4KSBjYWxjKHZhcigtLWNwZC1zcGFjZS0yeCkgKiAtMSkgcmdiKDI3LCAyOSwgMzQsIDAuMSk7XG5cbiAgICAubXhfUGlubmVkTWVzc2FnZUJhbm5lcl9tYWluIHtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgLm14X1Bpbm5lZE1lc3NhZ2VCYW5uZXJfY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZTpcbiAgICAgICAgICAgICAgICBcImluZGljYXRvcnMgcGluSWNvbiB0aXRsZVwiIGF1dG9cbiAgICAgICAgICAgICAgICBcImluZGljYXRvcnMgcGluSWNvbiBtZXNzYWdlXCIgYXV0bztcbiAgICAgICAgICAgIGNvbHVtbi1nYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUGlubmVkTWVzc2FnZUJhbm5lcl9JbmRpY2F0b3JzIHtcbiAgICAgICAgICAgIGdyaWQtYXJlYTogaW5kaWNhdG9ycztcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMC01eCk7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgIC5teF9QaW5uZWRNZXNzYWdlQmFubmVyX0luZGljYXRvciB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHZhcigtLWNwZC1zcGFjZS0wLTV4KTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItZ3JheS02MDApO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1Bpbm5lZE1lc3NhZ2VCYW5uZXJfSW5kaWNhdG9yLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLWFjY2VudC1wcmltYXJ5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1Bpbm5lZE1lc3NhZ2VCYW5uZXJfSW5kaWNhdG9yLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Bpbm5lZE1lc3NhZ2VCYW5uZXJfUGluSWNvbiB7XG4gICAgICAgICAgICBncmlkLWFyZWE6IHBpbkljb247XG4gICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgICBmaWxsOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1zZWNvbmRhcnktYWxwaGEpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Bpbm5lZE1lc3NhZ2VCYW5uZXJfdGl0bGUge1xuICAgICAgICAgICAgZ3JpZC1hcmVhOiB0aXRsZTtcbiAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtYWN0aW9uLWFjY2VudCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcblxuICAgICAgICAgICAgLm14X1Bpbm5lZE1lc3NhZ2VCYW5uZXJfdGl0bGVfY291bnRlciB7XG4gICAgICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1zZW1pYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUGlubmVkTWVzc2FnZUJhbm5lcl9tZXNzYWdlIHtcbiAgICAgICAgICAgIGdyaWQtYXJlYTogbWVzc2FnZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Bpbm5lZE1lc3NhZ2VCYW5uZXJfcmVkYWN0ZWRNZXNzYWdlIHtcbiAgICAgICAgICAgIGdyaWQtYXJlYTogbWVzc2FnZTtcbiAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1Bpbm5lZE1lc3NhZ2VCYW5uZXJfYWN0aW9ucyB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxufVxuXG4ubXhfUGlubmVkTWVzc2FnZUJhbm5lcltkYXRhLXNpbmdsZS1tZXNzYWdlPVwidHJ1ZVwiXSB7XG4gICAgLm14X1Bpbm5lZE1lc3NhZ2VCYW5uZXJfY29udGVudCB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGU6IFwiaW5kaWNhdG9ycyBwaW5JY29uIG1lc3NhZ2VcIiBhdXRvO1xuXG4gICAgICAgIC5teF9QaW5uZWRNZXNzYWdlQmFubmVyX21lc3NhZ2Uge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9QcmVzZW5jZUljb25WaWV3IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuXG4gICAgLm14X1ByZXNlbmNlSWNvblZpZXdfb25saW5lIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLWFjY2VudC1wcmltYXJ5KTtcbiAgICB9XG5cbiAgICAubXhfUHJlc2VuY2VJY29uVmlld19vZmZsaW5lLFxuICAgIC5teF9QcmVzZW5jZUljb25WaWV3X2RuZCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi10ZXJ0aWFyeSk7XG4gICAgfVxuXG4gICAgLm14X1ByZXNlbmNlSWNvblZpZXdfdW5hdmFpbGFibGUge1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tcXVhdGVybmFyeSk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1ByZXNlbmNlTGFiZWwge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTFweDtcbiAgICBvcGFjaXR5OiAwLjU7XG59XG5cbi5teF9QcmVzZW5jZUxhYmVsX29ubGluZSB7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXN1Y2Nlc3MtcHJpbWFyeSk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUmVhZFJlY2VpcHRHcm91cCB7XG4gICAgLS1SZWFkUmVjZWlwdEdyb3VwX0V2ZW50QnViYmxlVGlsZS1zcGFjaW5nLWVuZDogNzhweDtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgei1pbmRleDogMTtcblxuICAgIC5teF9SZWFkUmVjZWlwdEdyb3VwX2J1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZXZlbnQtc2VsZWN0ZWQtY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUmVhZFJlY2VpcHRHcm91cF9yZW1haW5kZXIge1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICBmb250LXNpemU6ICRmb250LTExcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNnB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICB9XG5cbiAgICAubXhfUmVhZFJlY2VpcHRHcm91cF9jb250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgLm14X0Jhc2VBdmF0YXIge1xuICAgICAgICAgICAgLyogQ29tcG91bmQgdXNlcyBhIGJvcmRlciBvbiBkZWZhdWx0IGF2YXRhcnMgYnV0IG5vIGJvcmRlciBvbiBhY3R1YWwgaW1hZ2VzLCB3ZSB3YW50IGEgYm9yZGVyIGluIGFsbCBjYXNlcyAqL1xuICAgICAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgLyogUmVzZXQgdGhlIGxpbmUgaGVpZ2h0IGFzIHdlIGFyZSBubyBsb25nZXIgYm94LXNpemluZyBib3JkZXItYm94LiAxNHB4IGJlY2F1c2UgYXZhdGFyIGlzIHNldCBhdCAxNHB4IGluIGNvbXBvbmVudCAqL1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB3aWxsLWNoYW5nZTogbGVmdCwgdG9wO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICAgICAgICBsZWZ0IHZhcigtLXRyYW5zaXRpb24tc2hvcnQpIGVhc2Utb3V0LFxuICAgICAgICAgICAgICAgIHRvcCB2YXIoLS10cmFuc2l0aW9uLXN0YW5kYXJkKSBlYXNlLW91dDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1JlYWRSZWNlaXB0R3JvdXBfcG9wdXAge1xuICAgIG1heC1oZWlnaHQ6IDMwMHB4O1xuICAgIHdpZHRoOiAyMjBweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNXB4O1xuXG4gICAgcmlnaHQ6IDA7XG5cbiAgICAmLm14X0NvbnRleHR1YWxNZW51X3RvcCB7XG4gICAgICAgIHRvcDogOHB4O1xuICAgIH1cblxuICAgICYubXhfQ29udGV4dHVhbE1lbnVfYm90dG9tIHtcbiAgICAgICAgYm90dG9tOiA4cHg7XG4gICAgfVxuXG4gICAgLm14X1JlYWRSZWNlaXB0R3JvdXBfdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxNXB4O1xuICAgICAgICBtYXJnaW46IDE2cHggMTZweCA4cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAvKiBzaG91bGRu4oCZdCBiZSBhY3R1YWxseSBmb2N1c2FibGUgKi9cbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAubXhfQXV0b0hpZGVTY3JvbGxiYXIge1xuICAgICAgICAubXhfUmVhZFJlY2VpcHRHcm91cF9wZXJzb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBwYWRkaW5nOiA0cHg7XG4gICAgICAgICAgICBtYXJnaW46IDAgMTJweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJG1lbnUtc2VsZWN0ZWQtY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfQmFzZUF2YXRhciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiA2cHggOHB4O1xuICAgICAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMDsgLyogTG9uZyBuYW1lcyBzaG91bGQgbm90IHNocmluayB0aGUgcGljdHVyZSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfUmVhZFJlY2VpcHRHcm91cF9uYW1lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAycHggMDtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1JlYWRSZWNlaXB0R3JvdXBfc2Vjb25kYXJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9SZWFkUmVjZWlwdEdyb3VwX3BlcnNvbi0tdG9vbHRpcCB7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOCBWZWN0b3IgQ3JlYXRpb25zIEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUmVwbHlQcmV2aWV3IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkcHJpbWFyeS1oYWlybGluZS1jb2xvcjtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIG1heC1oZWlnaHQ6IDUwdmg7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAubXhfUmVwbHlQcmV2aWV3X3NlY3Rpb24ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHByaW1hcnktaGFpcmxpbmUtY29sb3I7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uO1xuICAgICAgICByb3ctZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS0yeCkgMCAwO1xuXG4gICAgICAgIC5teF9SZXBseVByZXZpZXdfaGVhZGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBjb2x1bW4tZ2FwOiA4cHg7XG5cbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcblxuICAgICAgICAgICAgLm14X1JlcGx5UHJldmlld19oZWFkZXJfY2FuY2VsIHN2ZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfUm9vbVZpZXdfYm9keSB7XG4gICAgLm14X1JlcGx5UHJldmlldyB7XG4gICAgICAgIC8qIEFkZCBib3gtc2hhZG93IHRvIHRoZSByZXBseSBwcmV2aWV3IG9uIHRoZSBtYWluIChsZWZ0KSBwYW5lbCBvbmx5LiAqL1xuICAgICAgICAvKiBJdCBpcyBub3QgYWRkZWQgdG8gdGhlIHByZXZpZXcgb24gdGhlIChyaWdodCkgcGFuZWwgZm9yIHRocmVhZHMgYW5kIGEgY2hhdCB3aXRoIGEgbWF4aW1pemVkIHdpZGdldC4gKi9cbiAgICAgICAgYm94LXNoYWRvdzogMHB4IC0xNnB4IDMycHggJGNvbXBvc2VyLXNoYWRvdy1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4IDhweCAwIDA7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVHVsaXIgQXNva2FuIDx0dWxpckBtYXVuaXVtLm5ldD5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1JlcGx5VGlsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDJweCAwO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG5cbiAgICA+IGEge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlOlxuICAgICAgICAgICAgXCJzZW5kZXJcIiBhdXRvXG4gICAgICAgICAgICBcIm1lc3NhZ2VcIiBhdXRvXG4gICAgICAgICAgICAvIDEwMCU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgZWFzZSAwLjE1cztcbiAgICAgICAgZ2FwOiAycHg7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgLyogYXZvaWQgb3ZlcmZsb3cgd2l0aCB3aWRlIGNvbnRlbnQgKi9cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1JlZGFjdGVkQm9keSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xOHB4O1xuICAgIH1cblxuICAgIC5teF9SZWRhY3RlZEJvZHksXG4gICAgLm14X0hpZGRlbkJvZHkge1xuICAgICAgICBwYWRkaW5nOiA0cHggMCAycHggMjBweDtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgaGVpZ2h0OiAxM3B4O1xuICAgICAgICAgICAgd2lkdGg6IDEzcHg7XG4gICAgICAgICAgICB0b3A6IDNweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIFdlIGRvIHJlcGx5IHNpemUgbGltaXRpbmcgd2l0aCBDU1MgdG8gYXZvaWQgZHVwbGljYXRpbmcgdGhlIFRleHR1YWxCb2R5IGNvbXBvbmVudC4gKi9cbiAgICAubXhfRXZlbnRUaWxlX2NvbnRlbnQge1xuICAgICAgICBncmlkLWFyZWE6IG1lc3NhZ2U7XG4gICAgICAgICRyZXBseS1saW5lczogMjtcbiAgICAgICAgJGxpbmUtaGVpZ2h0OiAkZm9udC0xOHB4O1xuXG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAkcmVwbHktbGluZXM7XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9ib2R5Lm14X0V2ZW50VGlsZV9iaWdFbW9qaSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjJweCAhaW1wb3J0YW50OyAvKiBTYW1lIGFzIHZhcigtLUV2ZW50VGlsZV9ncm91cF9saW5lLWxpbmUtaGVpZ2h0KSAqL1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNHB4ICFpbXBvcnRhbnQ7IC8qIE92ZXJyaWRlIHRoZSBiaWcgZW1vamkgb3ZlcnJpZGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgIC8qIGluIG9yZGVyIHRvIGtlZXAgdGhlIG1lc3NhZ2Ugb24gdHdvIGxpbmVzLCB3ZSBuZWVkIHRvIG1ha2UgdGhlIGJvZHkgaW5saW5lICovXG4gICAgICAgIC5teF9FdmVudFRpbGVfYm9keSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBUaGUgYW5ub3RhdGlvbiB3cmFwcGVyIGlzIGZsZXggaW4gbm9ybWFsIHRpbWVsaW5lIG1lc3NhZ2VzLCBidXQgdGhhdCBzdG9wc1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXAgZnJvbSB0cmltbWluZyBsb25nIGVkaXRlZCBxdW90ZXMgZG93biB0byB0d28gbGluZXMuICovXG4gICAgICAgIFtkYXRhLXRleHR1YWwtYm9keS1hbm5vdGF0aW9uLXdyYXBwZXJdIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogSGlkZSBsaW5lIG51bWJlcnMgYW5kIGVkaXRlZCBpbmRpY2F0b3IgKi9cbiAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lTnVtYmVycyxcbiAgICAgICAgW2RhdGEtdGV4dHVhbC1ib2R5LWVkaXRlZC1tYXJrZXJdIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBIYWNrIHRvIGN1dCBjb250ZW50IGluIDxwcmU+IHRhZ3MgdG9vICovXG4gICAgICAgIC5teF9FdmVudFRpbGVfcHJlX2NvbnRhaW5lciA+IHByZSB7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAgICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogJHJlcGx5LWxpbmVzO1xuICAgICAgICAgICAgcGFkZGluZzogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hcmtkb3duLWJvZHkgYmxvY2txdW90ZSxcbiAgICAgICAgLm1hcmtkb3duLWJvZHkgZGwsXG4gICAgICAgIC5tYXJrZG93bi1ib2R5IG9sLFxuICAgICAgICAubWFya2Rvd24tYm9keSBwLFxuICAgICAgICAubWFya2Rvd24tYm9keSBwcmUsXG4gICAgICAgIC5tYXJrZG93bi1ib2R5IHRhYmxlLFxuICAgICAgICAubWFya2Rvd24tYm9keSB1bCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X1JlcGx5VGlsZV9pbmZvIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuXG4gICAgJi5teF9SZXBseVRpbGVfaW5saW5lID4gYSB7XG4gICAgICAgIC8qIFJlbmRlciByZXBsaWVzIHRvIGVtb3RlcyBpbmxpbmUgd2l0aCB0aGUgc2VuZGVyIGF2YXRhciAqL1xuICAgICAgICBncmlkLXRlbXBsYXRlOlxuICAgICAgICAgICAgXCJzZW5kZXIgICAgICAgIG1lc3NhZ2VcIiBhdXRvXG4gICAgICAgICAgICAvIG1heC1jb250ZW50IGF1dG87XG4gICAgICAgIGdhcDogNHB4OyAvKiBpbmNyZWFzZSBzcGFjaW5nICovXG4gICAgfVxuXG4gICAgLm14X1JlcGx5VGlsZV9zZW5kZXIge1xuICAgICAgICBncmlkLWFyZWE6IHNlbmRlcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA0cHg7XG5cbiAgICAgICAgLm14X0Rpc2FtYmlndWF0ZWRQcm9maWxlIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgICAgIC8qIFByZXZlbnQgY3J1c2hpbmcgYnkgdGhlIGZsZXhib3ggKi9cbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Jvb21IZWFkZXIge1xuICAgIGhlaWdodDogNjRweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tY3BkLXNwYWNlLTN4KSAwIGNhbGModmFyKC0tY3BkLXNwYWNlLTN4KSArIHZhcigtLWNwZC1zcGFjZS0xLTV4KSk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXBhcmF0b3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcblxuICAgIGJ1dHRvbjpoYXMoc3ZnLm14X1Jvb21IZWFkZXJfdG9nZ2xlZCkge1xuICAgICAgICAvKiBGb3IgZW5oYW5jZWQgdmlzaWJpbGl0eSB1bmRlciBjb250cmFzdCBjb250cm9sICovXG4gICAgICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB9XG59XG5cbi5teF9Sb29tSGVhZGVyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGVyLXBhbmVsLWJnLWhvdmVyO1xufVxuXG4ubXhfUm9vbUhlYWRlcl9pbmZvV3JhcHBlciB7XG4gICAgLyogdW5zZXQgYnV0dG9uIHN0eWxlcyAqL1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGJhY2tncm91bmQ6IHVuc2V0O1xuICAgIGJvcmRlcjogdW5zZXQ7XG4gICAgZmxleDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4ubXhfUm9vbUhlYWRlcl9pbmZvIHtcbiAgICAvKiBXZSB3YW50IHRoZSBzcGFjaW5nIHRvIGJlIDY0cHgsIDEzeCA9IDUycHggYnV0IHdlIGhhdmUgYSBmbGV4IGdhcCBvZlxuICAgICAgIDEycHggc2V0IG9uIHRoZSBmbGV4IGNvbnRhaW5lciwgd2hpY2ggc3VtcyB1cCB0byA2NCAqL1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0xM3gpO1xufVxuXG4ubXhfUm9vbUhlYWRlcl90cnVuY2F0ZWQge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgLXdlYmtpdC1saW5lLWNsYW1wOiAxO1xuXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5teF9Sb29tSGVhZGVyX2hlYWRpbmcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMS01eCk7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLm14X1Jvb21IZWFkZXJfaWNvbiB7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5teF9Sb29tSGVhZGVyIC5teF9GYWNlUGlsZSB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMS01eCk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tbWVkaXVtKTtcblxuICAgIC8qIFJvb21BdmF0YXIgZG9lc24ndCBwYXNzIGNsYXNzZXMgZG93biB0byBhdmF0YXJcbiAgICBTbyBzZXQgc3R5bGUgaGVyZVxuICAgIHVzaW5nIGRpdiBiZWNhdXNlIGNvbXBvdW5kIGNsYXNzZXMgYXJlIG5vdCBzdGFibGUgKi9cbiAgICA+IGRpdiB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1wcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm14X0ZhY2VQaWxlX3RvZ2dsZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jcGQtY29sb3ItYmctc3VjY2Vzcy1zdWJ0bGUpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtYWN0aW9uLWFjY2VudCk7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tc2VtaWJvbGQpO1xuICAgICAgICAvKiBGb3IgZW5oYW5jZWQgdmlzaWJpbGl0eSB1bmRlciBjb250cmFzdCBjb250cm9sICovXG4gICAgICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB9XG59XG5cbi5teF9Sb29tSGVhZGVyIC5teF9CYXNlQXZhdGFyIHtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLm14X1Jvb21IZWFkZXJfdmlkZW9DYWxsT3B0aW9uIHtcbiAgICAvKiBXb3JrYXJvdW5kIGZvciBodHRwczovL2dpdGh1Yi5jb20vZWxlbWVudC1ocS9jb21wb3VuZC9pc3N1ZXMvMzMxICovXG4gICAgbWluLXdpZHRoOiAyNDBweDtcbn1cblxuLm14X1Jvb21IZWFkZXIgLm14X1Jvb21IZWFkZXJfdG9nZ2xlZCB7XG4gICAgZmlsbDogdmFyKC0tY3BkLWNvbG9yLWljb24tYWNjZW50LXByaW1hcnkpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Jvb21JbmZvTGluZSB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICBzdmcge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IC0ycHg7XG4gICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICB9XG5cbiAgICAubXhfUm9vbUluZm9MaW5lX21lbWJlcnMge1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAgICAgICBmb250LXdlaWdodDogaW5oZXJpdDtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCLCt1wiOyAvKiB2aXN1YWwgc2VwYXJhdG9yICovXG4gICAgICAgICAgICBtYXJnaW46IDAgNnB4O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgTm9yZGVjayBJVCArIENvbnN1bHRpbmcgR21iSFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbUtub2Nrc0JhciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1zZWNvbmRhcnkpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KSB2YXIoLS1jcGQtc3BhY2UtNHgpO1xufVxuXG4ubXhfUm9vbUtub2Nrc0Jhcl9jb250ZW50IHtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgbWFyZ2luOiAwIHZhcigtLWNwZC1zcGFjZS0zeCk7XG59XG5cbi5teF9Sb29tS25vY2tzQmFyX3BhcmFncmFwaCB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBmb250LXNpemU6IHZhcigtLWNwZC1mb250LXNpemUtYm9keS1zbSk7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4ubXhfUm9vbUtub2Nrc0Jhcl9saW5rIHtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbn1cblxuLm14X1Jvb21Lbm9ja3NCYXJfYWN0aW9uLFxuLm14X1Jvb21Lbm9ja3NCYXJfYXZhdGFyIHtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5teF9Sb29tS25vY2tzQmFyX2FjdGlvbiArIC5teF9Sb29tS25vY2tzQmFyX2FjdGlvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG59XG5cbi5teF9Sb29tS25vY2tzQmFyX2F2YXRhciArIC5teF9Sb29tS25vY2tzQmFyX2F2YXRhciB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tY3BkLXNwYWNlLTR4KSAqIC0xKTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE1LTIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Jvb21QcmV2aWV3QmFyIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBoMyB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMThweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG5cbiAgICAgICAgJi5teF9Sb29tUHJldmlld0Jhcl9zcGlubmVyVGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaDMsXG4gICAgLm14X1Jvb21QcmV2aWV3QmFyX21lc3NhZ2UgcCB7XG4gICAgICAgIC8qIGJyZWFrLXdvcmQsIHdpdGggZmFsbGJhY2sgdG8gYnJlYWstYWxsLCB3aGljaCBpcyB3aWRlciBzdXBwb3J0ZWQgKi9cbiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgIH1cblxuICAgIC5teF9TcGlubmVyIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luOiAxMHB4IDEwcHggMTBweCAwO1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG5cbiAgICAubXhfUm9vbVByZXZpZXdCYXJfZm9vdGVyIHtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjBweDtcblxuICAgICAgICAubXhfU3Bpbm5lciB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfUm9vbVByZXZpZXdCYXJfYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLm14X1Jvb21QcmV2aWV3QmFyX21lc3NhZ2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG5cbiAgICBwIHtcbiAgICAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgICB9XG59XG5cbi5teF9Sb29tUHJldmlld0Jhcl9wYW5lbCB7XG4gICAgcGFkZGluZzogOHB4IDhweCA4cHggMjBweDtcblxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAubXhfUm9vbVByZXZpZXdCYXJfYWN0aW9ucyB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBwYWRkaW5nOiAzcHggOHB4O1xuXG4gICAgICAgICYgPiAqIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1Jvb21QcmV2aWV3QmFyX21lc3NhZ2Uge1xuICAgICAgICBmbGV4OiAxIDAgMDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICYgPiAqIHtcbiAgICAgICAgICAgIG1hcmdpbjogNHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBXaXRoIG1heGltaXNlZCB3aWRnZXRzLCB0aGUgcGFuZWwgZml0cyBpbiBiZXR0ZXIgd2hlbiByb3VuZGVkICovXG4ubXhfTWFpblNwbGl0X21heGltaXNlZFdpZGdldCAubXhfUm9vbVByZXZpZXdCYXJfcGFuZWwge1xuICAgIG1hcmdpbjogdmFyKC0tY29udGFpbmVyLWdhcC13aWR0aCk7XG4gICAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWNvbnRhaW5lci1nYXAtd2lkdGgpIC8gMik7IC8qIFNoYXJlZCB3aXRoIHJpZ2h0IHBhbmVsICovXG4gICAgbWFyZ2luLXRvcDogMDsgLyogQWxyZWFkeSBjb3ZlcmVkIGJ5IGFwcHMgZHJhd2VyICovXG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuXG4ubXhfUm9vbVByZXZpZXdCYXJfZGlhbG9nIHtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgYm94LXNpemluZzogY29udGVudDtcbiAgICB3aWR0aDogNDAwcHg7XG4gICAgLyogTWF0Y2hlcyB0aGUgcm9vbSBwcmV2aWV3IGNhcmQgdGhpcyBzdGFuZHMgaW4gcGxhY2Ugb2YsIGFuZCB0aGUgcGFuZWwgZm9ybSBvZiB0aGlzIHNhbWUgYmFyICovXG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcGFkZGluZzogMjBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAubXhfUm9vbVByZXZpZXdCYXJfbWVzc2FnZSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJiA+ICoge1xuICAgICAgICAgICAgbWFyZ2luOiA1cHggMCAyMHB4IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUm9vbVByZXZpZXdCYXJfYWN0aW9ucyB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDdweCA1MHB4OyAvKiBleHRyYSB3aWRlICovXG4gICAgICAgIH1cblxuICAgICAgICAmID4gKiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgICAgICB9XG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5IHtcbiAgICAgICAgICAgIC8qIHRvIGFjY291bnQgZm9yIHRoZSBwYWRkaW5nIG9mIHRoZSBwcmltYXJ5IGJ1dHRvbiB3aGljaCBjYXVzZXMgaW5jb25zaXN0ZW50IGxvb2sgYmV0d2VlbiAqL1xuICAgICAgICAgICAgLyogc3Vic2VxdWVudCBzZWNvbmRhcnkgKHRleHQpIGJ1dHRvbnMgKi9cbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDdweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbi5teF9Sb29tUHJldmlld0Jhcl9JbnZpdGUge1xuICAgIG1heC1oZWlnaHQ6IDEwMHZoO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuXG4ubXhfUm9vbVByZXZpZXdCYXJfSW52aXRlIGgzIHtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm14X1Jvb21QcmV2aWV3QmFyX2ludml0ZXIge1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xufVxuXG5hLm14X1Jvb21QcmV2aWV3QmFyX2ludml0ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm14X1Jvb21QcmV2aWV3QmFyX2ludml0ZXJfbXhpZCB7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG59XG5cbi5teF9Sb29tUHJldmlld0Jhcl9pY29uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7XG59XG5cbi5teF9Sb29tUHJldmlld0Jhcl9mdWxsV2lkdGgge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Jvb21QcmV2aWV3Q2FyZCB7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTh4KSB2YXIoLS1jcGQtc3BhY2UtNngpICFpbXBvcnRhbnQ7IC8qIE92ZXJyaWRlIFNwYWNlUm9vbVZpZXcncyBkZWZhdWx0IHBhZGRpbmcgKi9cbiAgICBtYXJnaW46IGF1dG87XG4gICAgZmxleC1ncm93OiAxO1xuICAgIG1heC13aWR0aDogNDgwcHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3lzdGVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcblxuICAgIC5teF9Sb29tUHJldmlld0NhcmRfbm90aWNlIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgaGVpZ2h0OiAxZW07XG4gICAgICAgICAgICB3aWR0aDogMWVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiAtMnB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1Jvb21QcmV2aWV3Q2FyZF9pbnZpdGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTV4KTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuXG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgICAgICAgICAubXhfUm9vbVByZXZpZXdDYXJkX2ludml0ZXJfbmFtZSB7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE4cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9Sb29tUHJldmlld0NhcmRfaW52aXRlcl9teGlkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1Jvb21QcmV2aWV3Q2FyZF9hdmF0YXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIC5teF9Sb29tUHJldmlld0NhcmRfdmlkZW8ge1xuICAgICAgICAgICAgd2lkdGg6IDIycHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDIycHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAxNHB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogY2FsYygoNTBweCArIDIgKiAzcHgpIC8gMik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHN5c3RlbTtcblxuICAgICAgICAgICAgbGVmdDogY2FsYygtNTBweCAvIDQgLSAzcHgpO1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbi1wcmltYXJ5LWZnLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyogWFhYIFJlbW92ZSB0aGlzIHdoZW4gdmlkZW8gcm9vbXMgbGVhdmUgYmV0YSAqL1xuICAgICAgICAubXhfQmV0YUNhcmRfYmV0YVBpbGwge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgaW5zZXQtYmxvY2stc3RhcnQ6IHZhcigtLWNwZC1zcGFjZS04eCk7XG4gICAgICAgICAgICBpbnNldC1pbmxpbmUtZW5kOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaDEubXhfUm9vbVByZXZpZXdDYXJkX25hbWUge1xuICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS00eCkgMCAhaW1wb3J0YW50OyAvKiBPdmVycmlkZSBTcGFjZVJvb21WaWV3J3MgZGVmYXVsdCBtYXJnaW5zICovXG4gICAgfVxuXG4gICAgLm14X1Jvb21QcmV2aWV3Q2FyZF90b3BpYyB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMnB4O1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNjBweDtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICB9XG5cbiAgICAubXhfRmFjZVBpbGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICAvKiBGb3IgZW5oYW5jZWQgdmlzaWJpbGl0eSB1bmRlciBjb250cmFzdCBjb250cm9sICovXG4gICAgICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuICAgICAgICA6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUm9vbVByZXZpZXdDYXJkX2pvaW5CdXR0b25zIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTV4KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNXgpO1xuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAxNHB4IDA7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyNCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbVNlYXJjaEF1eFBhbmVsIHtcbiAgICAvKiB1c2UgYG1pbi1oZWlnaHRgIHJhdGhlciB0aGFuIGhlaWdodCwgdG8gYWxsb3cgcm9vbSBmb3IgdGhlIHRleHQgdG8gd3JhcCBpZiB0aGUgd2luZG93IGlzIG5hcnJvdyAqL1xuICAgIG1pbi1oZWlnaHQ6IDg0cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMXB4IDA7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgIC5teF9Sb29tU2VhcmNoQXV4UGFuZWxfc3VtbWFyeSB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgZGlzcGxheTogaW5oZXJpdDsgLyogZmxleCAqL1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgPiBzdmcge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXNlY29uZGFyeSk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Jvb21TZWFyY2hBdXhQYW5lbF9zdW1tYXJ5X3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjJweDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TZWFyY2hXYXJuaW5nIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xM3B4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTIwcHg7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Sb29tU2VhcmNoQXV4UGFuZWxfYnV0dG9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGluaGVyaXQ7IC8qIGZsZXggKi9cbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTgtMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Jvb21VcGdyYWRlV2FybmluZ0JhciB7XG4gICAgbWF4LWhlaWdodDogMjM1cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGluZm8tcGxpbnRoLWJnLWNvbG9yO1xuICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgIG92ZXJmbG93OiBzY3JvbGw7XG59XG5cbi5teF9Sb29tVXBncmFkZVdhcm5pbmdCYXJfd3JhcHBlZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5teF9Sb29tVXBncmFkZVdhcm5pbmdCYXJfaGVhZGVyIHtcbiAgICBjb2xvcjogJGFsZXJ0O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4ubXhfUm9vbVVwZ3JhZGVXYXJuaW5nQmFyX2JvZHkge1xuICAgIGNvbG9yOiAkYWxlcnQ7XG59XG5cbi5teF9Sb29tVXBncmFkZVdhcm5pbmdCYXJfdXBncmFkZWxpbmsge1xuICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5teF9Sb29tVXBncmFkZVdhcm5pbmdCYXJfc21hbGwge1xuICAgIGNvbG9yOiAkaW5mby1wbGludGgtZmctY29sb3I7XG4gICAgZm9udC1zaXplOiA3MCU7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2VuZE1lc3NhZ2VDb21wb3NlciB7XG4gICAgZmxleDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICAvKiBmaXhlZCBsaW5lIGhlaWdodCB0byBwcmV2ZW50IGVtb2ppIGZyb20gYmVpbmcgdGFsbGVyIHRoYW4gdGV4dCAqL1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xOHB4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgIC8qIGRvbid0IGdyb3cgd2lkZXIgdGhhbiBhdmFpbGFibGUgc3BhY2UgKi9cbiAgICBtaW4td2lkdGg6IDA7XG5cbiAgICAubXhfQmFzaWNNZXNzYWdlQ29tcG9zZXIge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAvKiBtaW4taGVpZ2h0IGF0IHRoaXMgbGV2ZWwgc28gdGhlIG14X0Jhc2ljTWVzc2FnZUNvbXBvc2VyX2lucHV0ICovXG4gICAgICAgIC8qIHN0aWxsIHN0YXlzIHZlcnRpY2FsbHkgY2VudGVyZWQgd2hlbiBsZXNzIHRoYW4gNTVweC4gKi9cbiAgICAgICAgLyogV2UgYWxzbyBzZXQgdGhpcyB0byBlbnN1cmUgdGhlIHZvaWNlIG1lc3NhZ2UgcmVjb3JkaW5nIHdpZGdldCAqL1xuICAgICAgICAvKiBkb2Vzbid0IGNhdXNlIGEganVtcC4gKi9cbiAgICAgICAgbWluLWhlaWdodDogNTVweDtcblxuICAgICAgICAubXhfQmFzaWNNZXNzYWdlQ29tcG9zZXJfaW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZzogM3B4IDA7XG4gICAgICAgICAgICAvKiB0aGlzIHdpbGwgY2VudGVyIHRoZSBjb250ZW50ZWRpdGFibGUgKi9cbiAgICAgICAgICAgIC8qIGluIGl0J3MgcGFyZW50IHZlcnRpY2FsbHkgKi9cbiAgICAgICAgICAgIC8qIHdoaWxlIGtlZXBpbmcgdGhlIGF1dG9jb21wbGV0ZSBhdCB0aGUgdG9wICovXG4gICAgICAgICAgICAvKiBvZiB0aGUgY29tcG9zZXIuIFRoZSBwYXJlbnQgbmVlZHMgdG8gYmUgYSBmbGV4IGNvbnRhaW5lciBmb3IgdGhpcyB0byB3b3JrLiAqL1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvIDA7XG4gICAgICAgICAgICAvKiBtYXgtaGVpZ2h0IGF0IHRoaXMgbGV2ZWwgc28gYXV0b2NvbXBsZXRlIGRvZXNuJ3QgZ2V0IHNjcm9sbGVkIHRvbyAqL1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQwcHg7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLm14X1N0aWNrZXJzX2NvbnRlbnQge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5teF9TdGlja2Vyc19jb250ZW50X2NvbnRhaW5lciB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBoZWlnaHQ6IDMwMHB4O1xufVxuXG4jbXhfcGVyc2lzdGVkRWxlbWVudF9zdGlja2VyUGlja2VyIHtcbiAgICAubXhfQXBwVGlsZUZ1bGxXaWR0aCB7XG4gICAgICAgIGhlaWdodDogdW5zZXQ7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuXG4gICAgLm14X0FwcFRpbGVNZW51QmFyIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICBpZnJhbWUge1xuICAgICAgICAvKiBTdGlja2VyIHBpY2tlciBkZXBlbmRzIG9uIHRoZSBmaXhlZCBoZWlnaHQgcHJldmlvdXNseSB1c2VkIGZvciBhbGwgdGlsZXMgKi9cbiAgICAgICAgaGVpZ2h0OiAyODNweDsgLyogaGVpZ2h0IG9mIHRoZSBwb3BvdXQgbWludXMgdGhlIEFwcFRpbGUgbWVudSBiYXIgKi9cbiAgICB9XG59XG5cbi5teF9TdGlja2Vyc19jb250ZW50UGxhY2Vob2xkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5teF9TdGlja2Vyc19jb250ZW50UGxhY2Vob2xkZXIgcCB7XG4gICAgbWF4LXdpZHRoOiAyMDBweDtcbn1cblxuLm14X1N0aWNrZXJzX2FkZExpbmsge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICRhY2NlbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVGhpcmRQYXJ0eU1lbWJlckluZm8ge1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS00eCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVG9wVW5yZWFkTWVzc2FnZXNCYXIge1xuICAgIHotaW5kZXg6IDEwMDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMjRweDtcbiAgICByaWdodDogMjRweDtcbiAgICB3aWR0aDogMzhweDtcbn1cblxuLm14X1RvcFVucmVhZE1lc3NhZ2VzQmFyOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtOHB4O1xuICAgIGxlZnQ6IDExcHg7XG4gICAgd2lkdGg6IDRweDtcbiAgICBoZWlnaHQ6IDRweDtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG4gICAgYm9yZGVyOiA2cHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWljb24tYWNjZW50LXRlcnRpYXJ5KTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLm14X1RvcFVucmVhZE1lc3NhZ2VzQmFyX3Njcm9sbFVwIHtcbiAgICBoZWlnaHQ6IDM4cHg7XG4gICAgd2lkdGg6IDM4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTlweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGJvcmRlcjogMS4zcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWljb24tdGVydGlhcnkpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIHBhZGRpbmc6IDZweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXRlcnRpYXJ5KTtcbiAgICB9XG59XG5cbi5teF9Ub3BVbnJlYWRNZXNzYWdlc0Jhcl9tYXJrQXNSZWFkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMThweDtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyOiAxLjNweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItaWNvbi10ZXJ0aWFyeSk7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBtYXJnaW46IDVweCBhdXRvO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgcGFkZGluZzogMXB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tdGVydGlhcnkpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1VzZXJJZGVudGl0eVdhcm5pbmcge1xuICAgIC8qIDQycHggaXMgdGhlIHBhZGRpbmctbGVmdCBvZiAubXhfTWVzc2FnZUNvbXBvc2VyX3dyYXBwZXIgaW4gcmVzL2Nzcy92aWV3cy9yb29tcy9fTWVzc2FnZUNvbXBvc2VyLnBjc3MgKi9cbiAgICBtYXJnaW4tbGVmdDogY2FsYygtNDJweCArIHZhcigtLVJvb21WaWV3X01lc3NhZ2VMaXN0LXBhZGRpbmcpKTtcblxuICAgIC5teF9Vc2VySWRlbnRpdHlXYXJuaW5nX3JvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgLm14X0Jhc2VBdmF0YXIge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIH1cbiAgICAgICAgLm14X1VzZXJJZGVudGl0eVdhcm5pbmdfbWFpbiB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuICAgICAgICAubXhfVXNlcklkZW50aXR5V2FybmluZ19tYWluLmNyaXRpY2FsIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1jcml0aWNhbC1wcmltYXJ5KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi5teF9Vc2VySWRlbnRpdHlXYXJuaW5nLmNyaXRpY2FsIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCB2YXIoLS1jcGQtY29sb3ItcmVkLTEwMCkgMCUsIHZhcigtLWNwZC1jb2xvci10aGVtZS1iZykgMTAwJSk7XG59XG5cbi5teF9NZXNzYWdlQ29tcG9zZXIubXhfTWVzc2FnZUNvbXBvc2VyLS1jb21wYWN0ID4gLm14X1VzZXJJZGVudGl0eVdhcm5pbmcge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKC0yNXB4ICsgdmFyKC0tUm9vbVZpZXdfTWVzc2FnZUxpc3QtcGFkZGluZykpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1ZvaWNlUmVjb3JkQ29tcG9zZXJUaWxlX3N0b3Age1xuICAgIC8qIDIwcHggKyA0cHggcGFkZGluZyArIDJweCBib3JkZXIgbWFrZXMgdGhpcyBhIDMycHggc3F1YXJlIChhcyBpbnRlbmRlZCkgKi9cbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkdm9pY2UtcmVjb3JkLXN0b3AtYm9yZGVyLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDMycHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAycHg7IC8qIGJldHdlZW4gdXMgYW5kIHRoZSB3YXZlZm9ybSBjb21wb25lbnQgKi9cblxuICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIGNvbG9yOiAkdm9pY2UtcmVjb3JkLXN0b3Atc3ltYm9sLWNvbG9yO1xuICAgIH1cbn1cblxuLm14X1ZvaWNlUmVjb3JkQ29tcG9zZXJUaWxlX2RlbGV0ZSB7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgbWFyZ2luLXJpZ2h0OiAycHg7IC8qIGRpc3RhbmNlIGZyb20gbGVmdCBlZGdlIG9mIHdhdmVmb3JtIGNvbnRhaW5lciAoY29udGFpbmVyIGhhcyBzb21lIG1hcmdpbiB0b28pICovXG5cbiAgICBzdmcge1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICBjb2xvcjogJHZvaWNlLXJlY29yZC1pY29uLWNvbG9yO1xuICAgIH1cbn1cblxuLm14X1ZvaWNlUmVjb3JkQ29tcG9zZXJUaWxlX3VwbG9hZGluZ1N0YXRlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbn1cblxuLm14X1ZvaWNlUmVjb3JkQ29tcG9zZXJUaWxlX2ZhaWxlZFN0YXRlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDIxcHg7XG5cbiAgICAubXhfVm9pY2VSZWNvcmRDb21wb3NlclRpbGVfdXBsb2FkU3RhdGVfYmFkZ2Uge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbn1cblxuLm14X01lc3NhZ2VDb21wb3Nlcl9yb3cgLm14X1ZvaWNlTWVzc2FnZVByaW1hcnlDb250YWluZXIge1xuICAgIC8qIE5vdGU6IHJlbWFpbmluZyBjbGFzcyBwcm9wZXJ0aWVzIGFyZSBpbiB0aGUgUGxheWVyQ29udGFpbmVyIENTUy4gKi9cblxuICAgIC8qIGZpeGVkIGhlaWdodCB0byByZWR1Y2UgbGF5b3V0IGp1bXBzIHdpdGggdGhlIHBsYXkgYnV0dG9uIGFwcGVhcmluZyAqL1xuICAgIC8qIGh0dHBzOi8vZ2l0aHViLmNvbS92ZWN0b3ItaW0vZWxlbWVudC13ZWIvaXNzdWVzLzE4NDMxICovXG4gICAgaGVpZ2h0OiAzMnB4O1xuXG4gICAgbWFyZ2luOiA2cHg7IC8qIGZvcmNlIHRoZSBjb21wb3NlciBhcmVhIHRvIHB1dCBhIGd1dHRlciBhcm91bmQgdXMgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDZweDsgLyogaXNvbGF0ZSBmcm9tIHN0b3Avc2VuZCBidXR0b24gKi9cblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogaW1wb3J0YW50IGZvciB0aGUgbGl2ZSBjaXJjbGUgKi9cblxuICAgICYubXhfVm9pY2VSZWNvcmRDb21wb3NlclRpbGVfcmVjb3JkaW5nIHtcbiAgICAgICAgLyogV2UgYXJlIHB1dHRpbmcgdGhlIGNpcmNsZSBpbiB0aGlzIHBhZGRpbmcsIHNvIHdlIG5lZWQgKzEwcHggZnJvbSB0aGUgcmVndWxhciAqL1xuICAgICAgICAvKiBwYWRkaW5nIG9uIHRoZSBsZWZ0IHNpZGUuICovXG4gICAgICAgIHBhZGRpbmctbGVmdDogMjJweDtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiByZWNvcmRpbmctcHVsc2UgMnMgaW5maW5pdGU7XG5cbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdm9pY2UtcmVjb3JkLWxpdmUtY2lyY2xlLWNvbG9yO1xuICAgICAgICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAxMnB4OyAvKiAxMnB4IGZyb20gdGhlIGxlZnQgZWRnZSBmb3IgY29udGFpbmVyIHBhZGRpbmcgKi9cbiAgICAgICAgICAgIHRvcDogMTdweDsgLyogdmVydGljYWxseSBjZW50ZXIgKG1pZGRsZSBhbGlnbiB3aXRoIGNsb2NrKSAqL1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X01lc3NhZ2VDb21wb3Nlcl93eXNpd3lnIC5teF9Wb2ljZU1lc3NhZ2VQcmltYXJ5Q29udGFpbmVyIHtcbiAgICAmLm14X1ZvaWNlUmVjb3JkQ29tcG9zZXJUaWxlX3JlY29yZGluZyB7XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0b3A6IDE1cHg7IC8qIHZlcnRpY2FsbHkgY2VudGVyIChtaWRkbGUgYWxpZ24gd2l0aCBjbG9jaykgKi9cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogVGhlIGtleWZyYW1lcyBhcmUgc2xpZ2h0bHkgd2VpcmQgaGVyZSB0byBoZWxwIG1ha2UgYSByYW1waW5nL3B1bmNoIGVmZmVjdCAqL1xuLyogZm9yIHRoZSByZWNvcmRpbmcgZG90LiBXZSBzdGFydCBhbmQgZW5kIGF0IDEwMCUgb3BhY2l0eSB0byBoZWxwIG1ha2UgdGhlICovXG4vKiBkb3QgZmVlbCBhIGJpdCBsaWtlIGEgcmVhbCBsYW1wIHRoYXQgaXMgYmxpbmtpbmc6IHRoZSBhbmltYXRpb24gZW5kcyB1cCAqL1xuLyogc3BlbmRpbmcgYSBsb3Qgb2YgaXRzIHRpbWUgc2hvd2luZyBhIHN0ZWFkeSBzdGF0ZSB3aXRob3V0IGEgZmFkZSBlZmZlY3QuICovXG4vKiBUaGlzIGxhbXAgZWZmZWN0IGV4dGVuZHMgaW50byB3aHkgdGhlIDAlIG9wYWNpdHkga2V5ZnJhbWUgaXMgbm90IGluIHRoZSAqL1xuLyogbWlkcG9pbnQ6IGxhbXBzIHRha2UgbG9uZ2VyIHRvIHR1cm4gb2ZmIHRoYW4gdGhleSBkbyB0byB0dXJuIG9uLCBhbmQgdGhlICovXG4vKiBleHRyYSBmcmFtZXMgZ2l2ZSBpdCBhIGJpdCBvZiBhIHJlYWxpc3RpYyBwdW5jaCBmb3Igd2hlbiB0aGUgYW5pbWF0aW9uIGlzICovXG4vKiByYW1waW5nIGJhY2sgdXAgdG8gMTAwJSBvcGFjaXR5LiAqL1xuXG4vKiBUYXJnZXQgYW5pbWF0aW9uIHRpbWluZ3M6IHN0ZWFkeSBmb3IgMS41cywgZmFkZSBvdXQgZm9yIDAuM3MsIGZhZGUgaW4gZm9yIDAuMnMgKi9cbi8qIChpbnRlbmRlZCB0byBiZSB1c2VkIGluIGEgbG9vcCBmb3IgMnMgYW5pbWF0aW9uIHNwZWVkKSAqL1xuQGtleWZyYW1lcyByZWNvcmRpbmctcHVsc2Uge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgMzUlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gICAgNjUlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4gICAgLm14X1ZvaWNlTWVzc2FnZVByaW1hcnlDb250YWluZXIge1xuICAgICAgICBvdXRsaW5lOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE4LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9XaG9Jc1R5cGluZ1RpbGUge1xuICAgIG1hcmdpbi1sZWZ0OiAtMThweDsgLyogb2Zmc2V0IHBhZGRpbmcgZnJvbSBteF9Sb29tVmlld19NZXNzYWdlTGlzdCB0byBjZW50ZXIgYXZhdGFycyAqL1xuICAgIHBhZGRpbmctdG9wOiAxOHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLyogcG9zaXRpb24gdGhlIGluZGljYXRvciBpbiB0aGUgc2FtZSBwbGFjZSBob3Jpem9udGFsbHkgYXMgLm14X0V2ZW50VGlsZV9hdmF0YXIuICovXG4ubXhfV2hvSXNUeXBpbmdUaWxlX2F2YXRhcnMge1xuICAgIGZsZXg6IDAgMCA4MnB4OyAvKiAxOCAocGFkZGluZyBvbiBtZXNzYWdlIGxpc3QpICsgNjQgKHBhZGRpbmcgb24gZXZlbnQgbGluZXMpICovXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubXhfV2hvSXNUeXBpbmdUaWxlX2F2YXRhcnMgPiA6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1sZWZ0OiAtMTJweDtcbn1cblxuLm14X1dob0lzVHlwaW5nVGlsZV9hdmF0YXJzIC5teF9CYXNlQXZhdGFyIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmFkaXVzOiA0MHB4O1xufVxuXG4ubXhfV2hvSXNUeXBpbmdUaWxlX3JlbWFpbmluZ0F2YXRhclBsYWNlaG9sZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgZm9udC1zaXplOiAwLjhlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm14X1dob0lzVHlwaW5nVGlsZV9sYWJlbCB7XG4gICAgZmxleDogMTtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXNlbWlib2xkKTtcbiAgICBjb2xvcjogJHJvb210b3BpYy1jb2xvcjtcbn1cblxuLm14X1dob0lzVHlwaW5nVGlsZV9sYWJlbCA+IHNwYW4ge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9yZXMvaW1nL3R5cGluZy1pbmRpY2F0b3ItMnguZ2lmXCIpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMjVweDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGJvdHRvbTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubXhfTWF0cml4Q2hhdF91c2VDb21wYWN0TGF5b3V0IHtcbiAgICAubXhfV2hvSXNUeXBpbmdUaWxlIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDRweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRWRpdFd5c2l3eWdDb21wb3NlciB7XG4gICAgLS1FZGl0V3lzaXd5Z0NvbXBvc2VyLXBhZGRpbmctaW5saW5lOiAzcHg7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWF4LXdpZHRoOiAxMDAlOyAvKiBkaXNhYmxlIG92ZXJmbG93ICovXG4gICAgd2lkdGg6IGF1dG87XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogOHB4IHZhcigtLUVkaXRXeXNpd3lnQ29tcG9zZXItcGFkZGluZy1pbmxpbmUpO1xuXG4gICAgLm14X1d5c2l3eWdDb21wb3Nlcl9FZGl0b3JfY29udGVudCB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggJHByaW1hcnktaGFpcmxpbmUtY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgICAgICAgcGFkZGluZzogM3B4IDZweDtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGFjY2VudC00MDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRWRpdFd5c2l3eWdDb21wb3Nlcl9idXR0b25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcC1yZXZlcnNlOyAvKiBkaXNwbGF5IFwiU2F2ZVwiIG92ZXIgXCJDYW5jZWxcIiAqL1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBnYXA6IDVweDtcbiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogYXV0bztcblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTAwcHg7IC8qIG1hZ2ljIG51bWJlciB0byBhbGlnbiB0aGUgZWRnZSBvZiB0aGUgYnV0dG9uIHdpdGggdGhlIGlucHV0IGFyZWEgKi9cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Gb3JtYXR0aW5nQnV0dG9uc19CdXR0b24ge1xuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2VuZFd5c2l3eWdDb21wb3NlciB7XG4gICAgZmxleDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICAvKiBmaXhlZCBsaW5lIGhlaWdodCB0byBwcmV2ZW50IGVtb2ppIGZyb20gYmVpbmcgdGFsbGVyIHRoYW4gdGV4dCAqL1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xOHB4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1hcmdpbi1yaWdodDogMTNweDtcbiAgICBnYXA6IDhweDtcblxuICAgIC5teF9Gb3JtYXR0aW5nQnV0dG9ucyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICAgIH1cblxuICAgIC5teF9XeXNpd3lnQ29tcG9zZXJfRWRpdG9yIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHF1aW5hcnktY29udGVudDtcbiAgICAgICAgcGFkZGluZzogNnB4IDExcHggNnB4IDEycHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgZ2FwOiAxMHB4O1xuXG4gICAgICAgIC5teF9FMkVJY29uIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDdweCAwO1xuICAgICAgICAgICAgd2lkdGg6IDEycHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEycHg7XG4gICAgICAgIH1cblxuICAgICAgICAmW2RhdGEtaXMtZXhwYW5kZWQ9XCJ0cnVlXCJdIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG5cbiAgICAgICAgICAgIC5teF9XeXNpd3lnQ29tcG9zZXJfRWRpdG9yX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogM3B4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDNweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1pcy1leHBhbmRlZD1cImZhbHNlXCJdIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDQwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfV3lzaXd5Z0NvbXBvc2VyX0VkaXRvcl9jb250YWluZXIge1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMjJweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgICAgICAgICAgIC8qIGRvbid0IGdyb3cgd2lkZXIgdGhhbiBhdmFpbGFibGUgc3BhY2UgKi9cbiAgICAgICAgICAgIHdpZHRoOiAwO1xuXG4gICAgICAgICAgICAubXhfV3lzaXd5Z0NvbXBvc2VyX0VkaXRvcl9jb250ZW50IHtcbiAgICAgICAgICAgICAgICAvKiB0aGlzIHdpbGwgY2VudGVyIHRoZSBjb250ZW50ZWRpdGFibGUgKi9cbiAgICAgICAgICAgICAgICAvKiBpbiBpdCdzIHBhcmVudCB2ZXJ0aWNhbGx5ICovXG4gICAgICAgICAgICAgICAgLyogd2hpbGUga2VlcGluZyB0aGUgYXV0b2NvbXBsZXRlIGF0IHRoZSB0b3AgKi9cbiAgICAgICAgICAgICAgICAvKiBvZiB0aGUgY29tcG9zZXIuIFRoZSBwYXJlbnQgbmVlZHMgdG8gYmUgYSBmbGV4IGNvbnRhaW5lciBmb3IgdGhpcyB0byB3b3JrLiAqL1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0byAwO1xuICAgICAgICAgICAgICAgIC8qIHRoZSBsaW5lIGhlaWdodCBpcyAkZm9udC0yMnB4IChzZXQgaW4gX0VkaXRvci5wY3NzKSBhbmQgd2Ugd2FudCB0byBkaXNwbGF5IDE2IGxpbmVzICovXG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxNiAqICRmb250LTIycHgpO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9TZW5kV3lzaXd5Z0NvbXBvc2VyLWZvY3VzZWQge1xuICAgIC5teF9XeXNpd3lnQ29tcG9zZXJfRWRpdG9yIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkcXVhdGVybmFyeS1jb250ZW50O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9XeXNpd3lnQ29tcG9zZXJfRWRpdG9yX2NvbnRhaW5lciB7XG4gICAgLyogVGhlc2UgYXJlIHNldCBpbiBKYXZhc2NyaXB0ICovXG4gICAgLS1hdmF0YXItbGV0dGVyOiBcIlwiO1xuICAgIC0tYXZhdGFyLWJhY2tncm91bmQ6IHVuc2V0O1xuICAgIC0tcGxhY2Vob2xkZXI6IFwiXCI7XG5cbiAgICBAa2V5ZnJhbWVzIHZpc3VhbGJlbGwge1xuICAgICAgICBmcm9tIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR2aXN1YWwtYmVsbC1iZy1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgICB0byB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9XeXNpd3lnQ29tcG9zZXJfRWRpdG9yX2NvbnRlbnQge1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjJweDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAvKiBGb3JjZSBjYXJldCBub2RlcyB0byBiZSBzZWxlY3RlZCBpbiBmdWxsIHNvIHRoYXQgdGhleSBjYW4gYmUgKi9cbiAgICAgICAgLyogbmF2aWdhdGVkIHRocm91Z2ggaW4gYSBzaW5nbGUga2V5cHJlc3MgKi9cbiAgICAgICAgLmNhcmV0Tm9kZSB7XG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogd2UgYWx3YXlzIGhhdmUgYSA8YnIvPiB0YWcgYXQgdGhlIGVuZCBvZiB0aGUgaHRtbCwgd2UgbmVlZCBpdCB0byBiZSBwcmVzZW50IGF0IGZpcnN0IHRoZW4gaGlkZSBpdCBhcyBzb29uIGFzXG4gICAgICAgIHdlIGhhdmUgYW55IG90aGVyIGVsZW1lbnRzICovXG4gICAgICAgIGJyOm5vdCg6b25seS1jaGlsZCkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAvKiB0aGlzIG1heSBzZWVtIHJlZHVuZGFudCwgYnV0IHdlIG5lZWQgdG8gaGFuZGxlIHplcm8gY29udGVudCBmb3JtYXR0aW5nIHRhZ3MsIHdoaWNoIG9jY3VyIHdoZW4gd2Ugc3BsaXQgYVxuICAgICAgICAgICAgICAgZm9ybWF0dGluZyB0YWcgaW50byBwYXJhZ3JhcGhzICovXG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkZm9udC0yMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgdWwsXG4gICAgICAgIG9sIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLWNwZC1zcGFjZS03eCk7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBNYWtlIGxpc3QgdHlwZSBkaXNjIHRvIG1hdGNoIHJpY2ggdGV4dCBlZGl0b3IgKi9cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuICAgICAgICB9XG5cbiAgICAgICAgYmxvY2txdW90ZSB7XG4gICAgICAgICAgICBjb2xvcjogIzc3NztcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgJGJsb2NrcXVvdGUtYmFyLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgcGFkZGluZzogMCAxMHB4O1xuXG4gICAgICAgICAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IDA7XG4gICAgICAgICAgICBtYXJnaW4tYmxvY2stZW5kOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgPiBwcmUge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG5cbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KSB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5saW5lY29kZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGlubGluZWNvZGUtYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgY29kZTpub3QocHJlICopIHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkbW9ub3NwYWNlLWZvbnQtZmFtaWx5ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5saW5lY29kZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGlubGluZWNvZGUtYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTAtNXgpO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IHVuc2V0O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHVuc2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyogdGhpcyBzZWxlY3RvciByZXByZXNlbnRzIHdoYXQgd2lsbCBiZWNvbWUgYSBwaWxsXG4gICAgICAgIG5iIGRlc3BpdGUgdGhlcmUgYmVpbmcgbXhfVXNlclBpbGwgYW5kIG14X1Jvb21QaWxsIGNsYXNzZXMgYXBwZW5kZWQgdG8gdGhlc2UgcGlsbHNcbiAgICAgICAgaW4gdGhlIGN1cnJlbnQgY29tcG9zZXIsIHRoZXJlIGRvbid0IGFwcGVhciB0byBiZSBhbnkgc3R5bGVzIGFzc29jaWF0ZWQgd2l0aCB0aG9zZSBjbGFzc2VzXG4gICAgICAgIGluIHRoaXMgcmVwbyAqL1xuICAgICAgICBhW2RhdGEtbWVudGlvbi10eXBlXSB7XG4gICAgICAgICAgICAvKiBjb21iaW5lIG14X1BpbGwgZnJvbSBfUGlsbC5wY3NzICovXG4gICAgICAgICAgICBwYWRkaW5nOiAkZm9udC0xcHggMC40ZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTdweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRmb250LTE2cHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LW9uLXNvbGlkLXByaW1hcnkpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBpbGwtYmctY29sb3I7XG5cbiAgICAgICAgICAgIC8qIC4uLndpdGggdGhlIG92ZXJyaWRlcyBmcm9tIF9CYXNpY01lc3NhZ2VDb21wb3Nlci5wY3NzICovXG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogYWxsO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiB1bnNldDsgLyogV2UgZG9uJ3Qgd2FudCBpbmRpY2F0ZSBjbGlja2FiaWxpdHkgKi9cbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgICAgICAgLyogYXZhdGFyIHBzZXVkbyBlbGVtZW50ICovXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIC8qIEFmdGVyIGNvbnNvbGlkYXRpb24sIGFsbCBvZiB0aGUgc3R5bGluZyBmcm9tIF9QaWxsLnNjc3Mgd2FzIGJlaW5nIG92ZXJyaWRkZW4sXG4gICAgICAgICAgICAgICAgc28gdGFrZSB3aGF0IGlzIGluIF9CYXNpY01lc3NhZ2VDb21wb3Nlci5wY3NzIGFzIHRoZSBzdGFydGluZyBwb2ludCAqL1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBjb250ZW50OiB2YXIoLS1hdmF0YXItbGV0dGVyKTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hdmF0YXItYmFja2dyb3VuZCksICRiYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAgICAgd2lkdGg6ICRmb250LTE2cHg7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAkZm9udC0xNnB4OyAvKiBlbnN1cmUgdGhlIGF2YXRhciBpcyBub3QgY29tcHJlc3NlZCAqL1xuICAgICAgICAgICAgICAgIGhlaWdodDogJGZvbnQtMTZweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTZweDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICAgICAvKiBHZXQgdGhlIHBvc2l0aW9uaW5nIG9mIHRoZSBhdmF0YXIganVzdCByaWdodCBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aW1lbGluZSAqL1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IC0wLjRyZW07XG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDAuMjRyZW07XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IDAuMTJyZW07XG5cbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogJGZvbnQtMTZweDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkZm9udC0xNnB4O1xuXG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWF2YXRhci1jb2xvciwgJGF2YXRhci1pbml0aWFsLWNvbG9yKTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEwLTRweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9XeXNpd3lnQ29tcG9zZXJfRWRpdG9yX2NvbnRlbnRfcGxhY2Vob2xkZXI6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IHZhcigtLXBsYWNlaG9sZGVyKTtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgIH1cbn1cblxuLm14X1d5c2l3eWdDb21wb3Nlcl9BdXRvQ29tcGxldGVXcmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAvKiBEdWUgdG8gdGhlIGZhY3QgdGhhdCBlZGl0aW5nIGEgbWVzc2FnZSBub3cgaGFzIGEgbGFyZ2VyIGFtb3VudCBvZiBncmV5XG4gICAgY29sb3VyIGFib3ZlIGl0IChkdWUgdG8gdGhlIHJpY2ggdGV4dCBidXR0b25zIGFib3ZlIHRoZSBjb21wb3NlciksIHdlIG5lZWRcbiAgICB0byBnaXZlIHRoZSBhdXRvY29tcGxldGUgYSBiaXQgbW9yZSB2aXN1YWwgc2VwYXJhdGlvbiBieSB1c2luZyBhIGJvcmRlci5cbiAgICAqL1xuICAgID4gLm14X0F1dG9jb21wbGV0ZSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRm9ybWF0dGluZ0J1dHRvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogOHB4O1xuXG4gICAgLm14X0Zvcm1hdHRpbmdCdXR0b25zX0J1dHRvbiB7XG4gICAgICAgIC0tc2l6ZTogMjhweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUpO1xuICAgICAgICB3aWR0aDogdmFyKC0tc2l6ZSk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgfVxuXG4gICAgLm14X0Zvcm1hdHRpbmdCdXR0b25zX0J1dHRvbl9ob3ZlciB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHBhbmVscztcblxuICAgICAgICAgICAgLm14X0Zvcm1hdHRpbmdCdXR0b25zX0ljb24ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRm9ybWF0dGluZ0J1dHRvbnNfYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGFjY2VudC0zMDA7XG5cbiAgICAgICAgLm14X0Zvcm1hdHRpbmdCdXR0b25zX0ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRm9ybWF0dGluZ0J1dHRvbnNfZGlzYWJsZWQge1xuICAgICAgICAubXhfRm9ybWF0dGluZ0J1dHRvbnNfSWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHF1aW5hcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Gb3JtYXR0aW5nQnV0dG9uc19JY29uIHtcbiAgICAgICAgLS1zaXplOiAxNnB4O1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUpO1xuICAgICAgICB3aWR0aDogdmFyKC0tc2l6ZSk7XG4gICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICB9XG59XG5cbi5teF9Gb3JtYXR0aW5nQnV0dG9uc19Ub29sdGlwX0tleWJvYXJkU2hvcnRjdXQge1xuICAgIGtiZCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICAgICAgZm9udC1mYW1pbHk6IEludGVyLCBzYW5zLXNlcmlmO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9MaW5rTW9kYWwge1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS04eCk7XG4gICAgbWF4LXdpZHRoOiA2MDBweDtcbiAgICBoZWlnaHQ6IDM0MXB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgLm14X0xpbmtNb2RhbF9jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICBtYXJnaW4tdG9wOiA3cHg7XG5cbiAgICAgICAgLm14X0xpbmtNb2RhbF9GaWVsZCB7XG4gICAgICAgICAgICBmbGV4OiBpbml0aWFsO1xuICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0xpbmtNb2RhbF9idXR0b25zIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAubXhfRGlhbG9nX2J1dHRvbnMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5LCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9BdmF0YXJTZXR0aW5nX2F2YXRhciB7XG4gICAgd2lkdGg6IDEyMHB4O1xuICAgIG1pbi13aWR0aDogMTIwcHg7IC8qIHNvIGl0IGRvZXNuJ3QgZ2V0IGNydXNoZWQgYnkgdGhlIGZsZXhib3ggaW4gbGFuZ3VhZ2VzIHdpdGggbG9uZ2VyIHdvcmRzICovXG4gICAgaGVpZ2h0OiAxMjBweDtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJi5teF9BdmF0YXJTZXR0aW5nX2F2YXRhckRpc3BsYXk6aG92ZXIgLm14X0F2YXRhclNldHRpbmdfaG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICYgPiAqIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG5cbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfcHJpbWFyeSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICB9XG5cbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGlua19zbSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICYgPiBpbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMjBweDtcbiAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEyMHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIH1cblxuICAgIC5teF9BdmF0YXJTZXR0aW5nX3VwbG9hZEJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDMycHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG5cbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgdG9wOiAzcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfQXZhdGFyU2V0dGluZ191cGxvYWRCdXR0b246aG92ZXIsXG4gICAgLm14X0F2YXRhclNldHRpbmdfdXBsb2FkQnV0dG9uX2FjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtcHJpbWFyeSk7XG4gICAgfVxufVxuXG4ubXhfQXZhdGFyU2V0dGluZ19yZW1vdmVNZW51SXRlbSBzdmcsXG4ubXhfQXZhdGFyU2V0dGluZ19yZW1vdmVNZW51SXRlbSBzcGFuIHtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtY3JpdGljYWwtcHJpbWFyeSkgIWltcG9ydGFudDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Gb250U2NhbGluZ1BhbmVsX3ByZXZpZXcge1xuICAgIC0tRm9udFNjYWxpbmdQYW5lbF9wcmV2aWV3LXBhZGRpbmctYmxvY2s6IDlweDtcblxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBwYWRkaW5nOiAwIHZhcigtLWNwZC1zcGFjZS00eCkgdmFyKC0tRm9udFNjYWxpbmdQYW5lbF9wcmV2aWV3LXBhZGRpbmctYmxvY2spIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgZGlzcGxheTogZmxvdy1yb290O1xuXG4gICAgJi5teF9JUkNMYXlvdXQge1xuICAgICAgICBwYWRkaW5nLXRvcDogOXB4O1xuICAgIH1cblxuICAgIC5teF9FdmVudFRpbGVbZGF0YS1sYXlvdXQ9XCJidWJibGVcIl0ge1xuICAgICAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICAgIH1cblxuICAgIC5teF9FdmVudFRpbGVfbXNnT3B0aW9uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5teF9Gb250U2NhbGluZ1BhbmVsX0Ryb3Bkb3duIHtcbiAgICB3aWR0aDogMTIwcHg7XG4gICAgLyogT3ZlcnJpZGUgZGVmYXVsdCBteF9GaWVsZCBtYXJnaW4gKi9cbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMngpICFpbXBvcnRhbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSW1hZ2VTaXplUGFuZWxfcmFkaW9zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuXG4gICAgPiBsYWJlbCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNjhweDsgLyoga2VlcCB0aGUgYm94ZXMgc2VwYXJhdGUgKi9cbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC5teF9JbWFnZVNpemVQYW5lbF9zaXplIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICB3aWR0aDogMjIxcHg7XG4gICAgICAgIGhlaWdodDogMTQ4cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE0cHg7IC8qIG1vdmUgcmFkaW8gYnV0dG9uIGF3YXkgZnJvbSBib3R0b20gZWRnZSBhIGJpdCAqL1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9JbnRlZ3JhdGlvbk1hbmFnZXIge1xuICAgIC5teF9EaWFsb2dfYm9yZGVyIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgd2lkdGg6IDYwJTtcbiAgICAgICAgaGVpZ2h0OiA3MCU7XG4gICAgICAgIG1heC13aWR0aDogaW5pdGlhbDtcbiAgICAgICAgbWF4LWhlaWdodDogaW5pdGlhbDtcbiAgICB9XG5cbiAgICAubXhfRGlhbG9nIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICBpZnJhbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgaDMge1xuICAgICAgICBtYXJnaW4tYmxvY2s6IHZhcigtLWNwZC1zcGFjZS01eCk7XG4gICAgfVxuXG4gICAgLm14X0ludGVncmF0aW9uTWFuYWdlcl9sb2FkaW5nLFxuICAgIC5teF9JbnRlZ3JhdGlvbk1hbmFnZXJfZXJyb3Ige1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLm14X0ludGVncmF0aW9uTWFuYWdlcl9lcnJvciBoMyB7XG4gICAgICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0pvaW5SdWxlU2V0dGluZ3NfdXBncmFkZVJlcXVpcmVkIHtcbiAgICBtYXJnaW4tbGVmdDogMTZweDtcbiAgICBwYWRkaW5nOiA0cHggMTZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYWNjZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBjb2xvcjogJGFjY2VudDtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG59XG5cbi5teF9Kb2luUnVsZVNldHRpbmdzX3NwYWNlc1dpdGhBY2Nlc3Mge1xuICAgID4gaDQge1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG5cbiAgICA+IHNwYW4ge1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLW1lZGl1bSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4OyAvKiBtYXRjaGVzIGhlaWdodCBvZiBhdmF0YXIgZm9yIHYtYWxpZ24gKi9cbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJiArIHNwYW4ge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9Kb2luUnVsZVNldHRpbmdzX3JhZGlvQnV0dG9uIHtcbiAgICBwYWRkaW5nLXRvcDogMTZweDtcblxuICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgJi5teF9TdHlsZWRSYWRpb0J1dHRvbl9kaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG5cbiAgICAmLm14X1N0eWxlZFJhZGlvQnV0dG9uX2Rpc2FibGVkICsgc3BhbiB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG5cbiAgICAmICsgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDM0cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgJiArIC5teF9TdHlsZWRSYWRpb0J1dHRvbiB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHF1aW5hcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0pvaW5SdWxlU2V0dGluZ3NfbGFiZWxsZWRDaGVja2JveCB7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuXG4ubXhfSm9pblJ1bGVTZXR0aW5nc19yZWNvbW1lbmRlZCB7XG4gICAgY29sb3I6ICRhY2NlbnQtMTAwMDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9LZXlib2FyZFNob3J0Y3V0IHtcbiAgICBrYmQge1xuICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICAgIG1pbi13aWR0aDogMjBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRrYmQtYm9yZGVyLWNvbG9yO1xuICAgICAgICBib3gtc2hhZG93OiAwIDJweCAka2JkLWJvcmRlci1jb2xvcjtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuQ29weXJpZ2h0IDIwMjAsIDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xheW91dFN3aXRjaGVyX0xheW91dFNlbGVjdG9yIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgLyoqXG4gICAgICogVGhlIHNldHRpbmdzIGZvcm0gaGFzIGEgZGVmYXVsdCBnYXAgb2YgMTBweFxuICAgICAqIFdlIHdhbnQgdG8gaGF2ZSBhIGJpZ2dlciBnYXAgYmV0d2VlbiB0aGUgbGF5b3V0IG9wdGlvbnNcbiAgICAgKi9cbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCkgIWltcG9ydGFudDtcblxuICAgIC5teExheW91dFN3aXRjaGVyX0xheW91dFNlbGVjdG9yX0xheW91dFJhZGlvIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1wcmltYXJ5KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgICAgICAubXhMYXlvdXRTd2l0Y2hlcl9MYXlvdXRTZWxlY3Rvcl9MYXlvdXRSYWRpb19pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgKiAxMHB4XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGdhcDogY2FsYyh2YXIoLS1jcGQtc3BhY2UtMngpICsgdmFyKC0tY3BkLXNwYWNlLTAtNXgpKTtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAubXhMYXlvdXRTd2l0Y2hlcl9MYXlvdXRTZWxlY3Rvcl9MYXlvdXRSYWRpb19pbmxpbmUsXG4gICAgICAgIC5teExheW91dFN3aXRjaGVyX0xheW91dFNlbGVjdG9yX0xheW91dFJhZGlvX0V2ZW50VGlsZVByZXZpZXcge1xuICAgICAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIE92ZXJyaWRlIHRoZSBldmVudCB0aWxlIHN0eWxlIHRvIG1ha2UgaXQgZml0IGluIHRoZSBzZWxlY3RvclxuICAgICAgICAgKiBUd2VhayBhbHNvIGhvdmVyIHN0eWxlIGFuZCByZW1vdmUgYWN0aW9uIGJhclxuICAgICAgICAgKi9cbiAgICAgICAgLm14TGF5b3V0U3dpdGNoZXJfTGF5b3V0U2VsZWN0b3JfTGF5b3V0UmFkaW9fRXZlbnRUaWxlUHJldmlldyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgLm14X0V2ZW50VGlsZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogSGlkZSB0aGUgbWVzc2FnZSBvcHRpb25zIGFuZCBtZXNzYWdlIGFjdGlvbiBiYXIgaW4gdGhlIHByZXZpZXdcbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAubXhfRXZlbnRUaWxlX21zZ09wdGlvbixcbiAgICAgICAgICAgICAgICAubXhfTWVzc2FnZUFjdGlvbkJhciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9jb250ZW50IHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICZbZGF0YS1sYXlvdXQ9XCJncm91cFwiXSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IGNhbGModmFyKC0tY3BkLXNwYWNlLTN4KSAqIC0xKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBBZGQgbWFyZ2luIHRvIGNlbnRlciB0aGUgYnViYmxlXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgJltkYXRhLWxheW91dD1cImJ1YmJsZVwiXSB7XG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiBBZGQgdGhlIGxheW91dCBtYXJnaW4gYW5kIHRoZSBtYXJnaW4gdG8gdmVydGljYWxseSBjZW50ZXIgdGhlIGJ1YmJsZVxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAzNHB4O1xuICAgICAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmW2RhdGEtbGF5b3V0PVwiaXJjXCJdIC5teF9NZXNzYWdlVGltZXN0YW1wIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgLyogaGlkZSB0aGUgY29udGFpbmVyIHVzZWQgZm9yIHNwYWNpbmcgY29uc2lzdGVuY3kgKi9cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14TGF5b3V0U3dpdGNoZXJfTGF5b3V0U2VsZWN0b3JfTGF5b3V0UmFkaW9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1zZWNvbmRhcnkpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X05vdGlmaWNhdGlvblB1c2hlclNldHRpbmdzIHtcbiAgICAubXhfTm90aWZpY2F0aW9uUHVzaGVyU2V0dGluZ3NfZGVzY3JpcHRpb24ge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICB9XG5cbiAgICAubXhfTm90aWZpY2F0aW9uUHVzaGVyU2V0dGluZ3NfZGV0YWlsIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLTRweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2V0dGluZ3NUYWIgLm14X05vdGlmaWNhdGlvblNldHRpbmdzMiB7XG4gICAgLyogVGhlIGxhYnMgbm90aWNlIGJhbm5lciByZW5kZXJzIGRpcmVjdGx5IGJlbG93IHRoaXMsIHNvIGtlZXAgdGhlbSBhcGFydC4gV2hlbiBpdCBpcyBhYnNlbnRcbiAgICAgICB0aGUgbWFyZ2luIGNvbGxhcHNlcyB3aXRoIHRoZSBzZWN0aW9uJ3Mgb3duLCBsZWF2aW5nIHRoZSBzcGFjaW5nIGJlbG93IHVuY2hhbmdlZC4gKi9cbiAgICAubXhfTm90aWZpY2F0aW9uU2V0dGluZ3MyX2Vycm9yIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTR4KTtcblxuICAgICAgICAvKiBUaGUgYWxlcnQgbGF5cyBpdHMgYWN0aW9ucyBvdXQgYXQgZmxleC1iYXNpcyAwLCB3aGljaCB3b3VsZCBvdGhlcndpc2UgYnJlYWsgdGhlIGxhYmVsXG4gICAgICAgICAgIGFjcm9zcyBsaW5lcyByYXRoZXIgdGhhbiB3cmFwcGluZyBpdCBiZWxvdyB0aGUgbWVzc2FnZS4gKi9cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIENvbXBvdW5kIGRyb3BzIHRoZSBhY3Rpb24gb250byBpdHMgb3duIHJvdyBmb3IgYW55IGFsZXJ0IHVuZGVyIDYwMHB4LCB3aGljaCBsZWF2ZXMgdGhpc1xuICAgICAgICAgICBzaG9ydCBtZXNzYWdlIHNpdHRpbmcgYmVzaWRlIGEgbW9zdGx5IGVtcHR5IHNlY29uZCByb3cuIFdyYXAgb24gZGVtYW5kIGluc3RlYWQsIHNvIHRoZVxuICAgICAgICAgICBhY3Rpb24gb25seSBtb3ZlcyBiZWxvdyB0aGUgbWVzc2FnZSBvbmNlIHRoZSB0d28gZ2VudWluZWx5IHN0b3AgZml0dGluZyBzaWRlIGJ5IHNpZGUuXG4gICAgICAgICAgIFRoZSBjaGlsZHJlbiBhcmUgdGhlIGFsZXJ0J3MgY29udGVudCByb3cgYW5kIHRoZSBtZXNzYWdlIHdpdGhpbiBpdC4gKi9cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgICAgICAgICA+IGRpdjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgZmxleDogMSAxIGF1dG87XG5cbiAgICAgICAgICAgICAgICAvKiBDb21wb3VuZCB0aW50cyBvbmx5IHRoZSBpY29uIG9uIGEgY3JpdGljYWwgYWxlcnQgYW5kIGxlYXZlcyB0aGUgbWVzc2FnZSBpbiB0aGVcbiAgICAgICAgICAgICAgICAgICBkZWZhdWx0IHRleHQgY29sb3VyLCBzbyBzdGF0ZSBpdCBoZXJlIHRvIHJlYWQgbGlrZSB3YXJuaW5ncyBlbHNld2hlcmUuIFRoZSBhY3Rpb25cbiAgICAgICAgICAgICAgICAgICBpcyBhIHNpYmxpbmcgb2YgdGhpcyBlbGVtZW50IGFuZCBzbyBrZWVwcyBpdHMgb3duIGNvbG91ci4gKi9cbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtY3JpdGljYWwtcHJpbWFyeSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU2V0dGluZ3NTZWN0aW9uX3N1YlNlY3Rpb25zIHtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGdhcDogMzJweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICAubXhfU2V0dGluZ3NTdWJzZWN0aW9uX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcblxuICAgICAgICAubXhfU2V0dGluZ3NTdWJzZWN0aW9uX3RleHQge1xuICAgICAgICAgICAgLm14X05vdGlmaWNhdGlvblNldHRpbmdzMl9ub3RpZmljYXRpb25CYWRnZSB7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAycHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU2V0dGluZ3NTdWJzZWN0aW9uX2NvbnRlbnQge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIGp1c3RpZnktaXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3RyZXRjaDtcbiAgICB9XG5cbiAgICAubXhfU3R5bGVkUmFkaW9CdXR0b25fY29udGVudCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgfVxuXG4gICAgLm14X1RhZ0NvbXBvc2VyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcblxuICAgICAgICAmLm14X1RhZ0NvbXBvc2VyX2Rpc2FibGVkIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9UYWdDb21wb3Nlcl90YWdzIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgICAgICAgICBnYXA6IDhweDtcblxuICAgICAgICAgICAgLm14X1RhZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMThweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA2cHggMTJweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcGFuZWwtYWN0aW9ucztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICAgICAubXhfVGFnX2RlbGV0ZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24tc2VsZjogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNS0yMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Vc2VyTm90aWZTZXR0aW5nc19ncmlkIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgMTJweCk7IC8qICsxMnB4IHRvIGxpbmUgdXAgY2VudGVyIG9mICdOb2lzeScgY29sdW1uIHdpdGggdG9nZ2xlIHN3aXRjaGVzICovXG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gcmVwZWF0KDMsIDYycHgpO1xuICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXIgY2VudGVyO1xuICAgIGdhcDogOHB4O1xuXG4gICAgLyogT3ZlcnJpZGUgU3R5bGVkUmFkaW9CdXR0b24gZGVmYXVsdCBzdHlsZXMgKi9cbiAgICAubXhfU3R5bGVkUmFkaW9CdXR0b24ge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAubXhfU3R5bGVkUmFkaW9CdXR0b25fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1N0eWxlZFJhZGlvQnV0dG9uX3NwYWNlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogbGVmdCBhbGlnbiBzZWN0aW9uIGhlYWRpbmcgKi9cbiAgICAubXhfU2V0dGluZ3NTdWJzZWN0aW9uSGVhZGluZyB7XG4gICAgICAgIGp1c3RpZnktc2VsZjogc3RhcnQ7XG4gICAgfVxufVxuXG4ubXhfVXNlck5vdGlmU2V0dGluZ3NfZ3JpZFJvd0NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogY29udGVudHM7XG59XG5cbi5teF9Vc2VyTm90aWZTZXR0aW5nc19ncmlkUm93IHtcbiAgICBkaXNwbGF5OiBjb250ZW50cztcbn1cblxuLm14X1VzZXJOb3RpZlNldHRpbmdzX2dyaWRSb3dMYWJlbCB7XG4gICAgcGFkZGluZy1pbmxpbmU6IHVuc2V0OyAvKiBSZW1vdmUgZGVmYXVsdCBsZWdlbmQgcGFkZGluZyAqL1xuICAgIGp1c3RpZnktc2VsZjogc3RhcnQ7XG4gICAgLyogPGxlZ2VuZD4gZG9lcyBub3QgYWNjZXB0ICovXG4gICAgLyogZGlzcGxheTogaW5saW5lIHwgaW5saW5lLWJsb2NrICovXG4gICAgLyogZm9yY2UgaXQgaW5saW5lIHVzaW5nIGZsb2F0ICovXG4gICAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5teF9Vc2VyTm90aWZTZXR0aW5nc19ncmlkQ29sdW1uTGFiZWwge1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1zZW1pYm9sZCk7XG59XG4ubXhfVXNlck5vdGlmU2V0dGluZ3NfZ3JpZFJvd0Vycm9yIHtcbiAgICAvKiBvY2N1cHkgZnVsbCByb3cgKi9cbiAgICBncmlkLWNvbHVtbjogMS8tMTtcbiAgICBqdXN0aWZ5LXNlbGY6IHN0YXJ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDMwJTtcbiAgICAvKiBjb2xsYXBzZSBoYWxmIG9mIHRoZSBncmlkLWdhcCAqL1xuICAgIG1hcmdpbi10b3A6IGNhbGMoLTEgKiB2YXIoLS1jcGQtc3BhY2UtMXgpKTtcbn1cblxuLm14X1VzZXJOb3RpZlNldHRpbmdzX2Zsb2F0aW5nU2VjdGlvbiB7XG4gICAgbWFyZ2luLXRvcDogNDBweDtcblxuICAgICYgPiBkaXY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAvKiBzZWN0aW9uIGhlYWRlciAqL1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE4cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIH1cblxuICAgID4gdGFibGUge1xuICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgICAgICBib3JkZXItc3BhY2luZzogMDtcbiAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xuXG4gICAgICAgIHRyID4gdGQ6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgLyogSnVzdCBmb3IgYSBiaXQgb2Ygc3BhY2luZyAqL1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogOHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfVXNlck5vdGlmU2V0dGluZ3NfY2xlYXJOb3RpZnNCdXR0b24ge1xuICAgIG1hcmdpbi10b3A6IDhweDtcbn1cblxuLm14X1RhZ0NvbXBvc2VyIHtcbiAgICBtYXJnaW4tdG9wOiAzNXB4OyAvKiBsb3RzIG9mIGRpc3RhbmNlIGZyb20gdGhlIGxhc3QgbGluZSBvZiB0aGUgdGFibGUgKi9cbn1cblxuLm14X0FjY2Vzc2libGVCdXR0b24ubXhfTm90aWZpY2F0aW9uU291bmRfYnJvd3NlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9HZW5lcmFsVXNlclNldHRpbmdzVGFiX3NlY3Rpb24tLWRpc2NvdmVyeV9leGlzdGluZ192ZXJpZmljYXRpb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAubXhfRmllbGQge1xuICAgICAgICBtYXJnaW46IDAgMCAwIDFlbTtcbiAgICB9XG59XG5cbi5teF9QaG9uZU51bWJlcnNfaW5wdXQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLm14X1Bob25lTnVtYmVyc19pbnB1dCA+IC5teF9GaWVsZCB7XG4gICAgZmxleC1ncm93OiAxO1xufVxuXG4ubXhfUGhvbmVOdW1iZXJzX2NvdW50cnkge1xuICAgIHdpZHRoOiA4MHB4O1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuICogQ29weXJpZ2h0IDIwMjQgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X1Bvd2VyTGV2ZWxTZWxlY3Rvcl9CdXR0b24ge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSwgMjAyMCAsIDIwMjQgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Jvb21Qcm9maWxlU2V0dGluZ3Mge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkcXVpbmFyeS1jb250ZW50O1xuXG4gICAgLm14X1Jvb21Qcm9maWxlU2V0dGluZ3NfcHJvZmlsZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgLm14X1Jvb21Qcm9maWxlU2V0dGluZ3NfcHJvZmlsZV9jb250cm9scyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogNTRweDtcblxuICAgICAgICAgICAgLm14X0ZpZWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfUm9vbVByb2ZpbGVTZXR0aW5nc19wcm9maWxlX2NvbnRyb2xzX3RvcGljIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgICAgICAgICAgICAgJiA+IHRleHRhcmVhIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgICAgIHJlc2l6ZTogdmVydGljYWw7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5teF9Sb29tUHJvZmlsZVNldHRpbmdzX3Byb2ZpbGVfY29udHJvbHNfdG9waWMtLXJvb20gdGV4dGFyZWEge1xuICAgICAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiA0ZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfUm9vbVByb2ZpbGVTZXR0aW5nc19wcm9maWxlX2NvbnRyb2xzX3VzZXJJZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLWNwZC1zcGFjZS01eCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUm9vbVByb2ZpbGVTZXR0aW5nc19idXR0b25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4OyAvKiAxOHB4IGlzIGFscmVhZHkgYWNjb3VudGVkIGZvciBieSB0aGUgPHA+IGFib3ZlIHRoZSBidXR0b25zICovXG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS03eCk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTkgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NldEludGVncmF0aW9uTWFuYWdlciB7XG4gICAgLm14X1NldEludGVncmF0aW9uTWFuYWdlcl9oZWFkaW5nX21hbmFnZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGNvbHVtbi1nYXA6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgfVxuICAgIGZvcm0ge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXR0aW5nc0ZpZWxkc2V0IHtcbiAgICAvKiBSZXNldCB0aGUgYnJvd3NlciBkZWZhdWx0IDxmaWVsZHNldD4gc3R5bGluZyAqL1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4taW5saW5lOiB1bnNldDtcbiAgICBwYWRkaW5nLWJsb2NrOiB1bnNldDtcbiAgICBwYWRkaW5nLWlubGluZTogdW5zZXQ7XG4gICAgbWluLWlubGluZS1zaXplOiB1bnNldDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG5cbi5teF9TZXR0aW5nc0ZpZWxkc2V0X2xlZ2VuZCB7XG4gICAgLyogUmVzZXQgdGhlIGJyb3dzZXIgZGVmYXVsdCA8bGVnZW5kPiBzdHlsaW5nICovXG4gICAgcGFkZGluZy1pbmxpbmU6IHVuc2V0O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1oZWFkaW5nLW1kLXNlbWlib2xkKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG59XG5cbi5teF9TZXR0aW5nc0ZpZWxkc2V0X2Rlc2NyaXB0aW9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG5cbiAgICBwIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1NldHRpbmdzRmllbGRzZXRfY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X1NldHRpbmdzSGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIC8qIE92ZXJyaWRlIG1hcmdpbiBmcm9tIGNvbW1vbi5wY3NzICovXG4gICAgbWFyZ2luOiAwO1xuXG4gICAgPiBzcGFuIHtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1tZWRpdW0pO1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtYWN0aW9uLWFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5teF9TZXR0aW5nc0hlYWRlcl9yZWNvbW1lbmRlZDo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHdpZHRoOiA4cHg7XG4gICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1jcml0aWNhbC1wcmltYXJ5KTtcbiAgICAgICAgY2xpcC1wYXRoOiBjaXJjbGUoNHB4KTtcbiAgICB9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG4gKiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuICovXG5cbi5teF9TZXR0aW5nc1N1YmhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgID4gc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1tZWRpdW0pO1xuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc1N1YmhlYWRlcl9zdWNjZXNzIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXN1Y2Nlc3MtcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzU3ViaGVhZGVyX2Vycm9yIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LWNyaXRpY2FsLXByaW1hcnkpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0V4aXN0aW5nU3BlbGxDaGVja0xhbmd1YWdlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5teF9FeGlzdGluZ1NwZWxsQ2hlY2tMYW5ndWFnZV9sYW5ndWFnZSB7XG4gICAgZmxleDogMTtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG5cbi5teF9HZW5lcmFsVXNlclNldHRpbmdzVGFiX3NwZWxsQ2hlY2tMYW5ndWFnZUlucHV0IHtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1RoZW1lQ2hvaWNlUGFuZWxfVGhlbWVTZWxlY3RvcnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIC8qIE92ZXJyaWRlIGZvcm0gZGVmYXVsdCBzdHlsZSAqL1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCkgIWltcG9ydGFudDtcblxuICAgIC5teF9UaGVtZUNob2ljZVBhbmVsX3RoZW1lU2VsZWN0b3Ige1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXNlY29uZGFyeSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWNwZC1zcGFjZS0xLTV4KTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtNXgpIHZhcigtLWNwZC1zcGFjZS0zeCkgdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuXG4gICAgICAgICYubXhfVGhlbWVDaG9pY2VQYW5lbF90aGVtZVNlbGVjdG9yX2VuYWJsZWQge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXByaW1hcnkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9UaGVtZUNob2ljZVBhbmVsX3RoZW1lU2VsZWN0b3JfZGlzYWJsZWQge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWRpc2FibGVkKTtcblxuICAgICAgICAgICAgLm14X1RoZW1lQ2hvaWNlUGFuZWxfdGhlbWVTZWxlY3Rvcl9MYWJlbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LWRpc2FibGVkKTtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1RoZW1lQ2hvaWNlUGFuZWxfdGhlbWVTZWxlY3Rvcl9MYWJlbCB7XG4gICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXNlbWlib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KC5teF9UaGVtZUNob2ljZVBhbmVsX3RoZW1lU2VsZWN0b3JfZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIC5teF9UaGVtZUNob2ljZVBhbmVsX3RoZW1lU2VsZWN0b3JfTGFiZWwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9VcGRhdGVDaGVja0J1dHRvbl9zdW1tYXJ5IHtcbiAgICBtYXJnaW4tbGVmdDogMTZweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNiBFbGVtZW50IENyZWF0aW9ucyBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Vc2VyUGVyc29uYWxJbmZvU2V0dGluZ3Mge1xuICAgIGgyIHtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtNHgpIDA7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTksIDIwMjAgLCAyMDI0IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Vc2VyUHJvZmlsZVNldHRpbmdzIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHF1aW5hcnktY29udGVudDtcblxuICAgIGgyIHtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtNHgpIDA7XG4gICAgfVxuXG4gICAgLm14X1VzZXJQcm9maWxlU2V0dGluZ3NfcHJvZmlsZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgICAgIGdhcDogMTZweDtcblxuICAgICAgICAubXhfVXNlclByb2ZpbGVTZXR0aW5nc19wcm9maWxlX2Rpc3BsYXlOYW1lIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgZ2FwOiAwO1xuICAgICAgICB9XG4gICAgICAgIC5teF9Vc2VyUHJvZmlsZVNldHRpbmdzX3Byb2ZpbGVfbmFtZUFuZFN0YXR1cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGdhcDogMTZweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Vc2VyUHJvZmlsZVNldHRpbmdzX3Byb2ZpbGVfY29udHJvbHMge1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgfVxuXG4gICAgLm14X1VzZXJQcm9maWxlU2V0dGluZ3NfcHJvZmlsZV9jb250cm9sc191c2VySWQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgLm14X0NvcHlhYmxlVGV4dCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1VzZXJQcm9maWxlU2V0dGluZ3NfcHJvZmlsZV9jb250cm9sc191c2VySWRfbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgfVxuXG4gICAgLm14X1VzZXJQcm9maWxlU2V0dGluZ3NfcHJvZmlsZV9idXR0b25zIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTh4KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTh4KTtcbiAgICB9XG5cbiAgICAubXhfVXNlclByb2ZpbGVTZXR0aW5nc19hY2NvdW50bWFuYWdlSWNvbiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIC5teF9Vc2VyUHJvZmlsZVNldHRpbmdzX3Byb2ZpbGUge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDMwcHg7XG4gICAgfVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG4ubXhfRW5jcnlwdGlvbkRldGFpbHMsXG4ubXhfT3RoZXJTZXR0aW5ncyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIC8qICFpbXBvcnRhbnQgb3ZlcnJpZGUgY29tcG91bmQgZm9ybSAqL1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTZ4KSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcblxuICAgIC5teF9FbmNyeXB0aW9uRGV0YWlsc19zZXNzaW9uX3RpdGxlLFxuICAgIC5teF9PdGhlclNldHRpbmdzX3RpdGxlIHtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1sZy1zZW1pYm9sZCk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWdyYXktNDAwKTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG59XG5cbi5teF9FbmNyeXB0aW9uRGV0YWlscyB7XG4gICAgLm14X0VuY3J5cHRpb25EZXRhaWxzX3Nlc3Npb24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICA+IGRpdjpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItZ3JheS0yMDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0VuY3J5cHRpb25EZXRhaWxzX2J1dHRvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgfVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG4ubXhfQ2hhbmdlUmVjb3ZlcnlLZXkge1xuICAgIC5teF9JbmZvcm1hdGlvblBhbmVsX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5teF9DaGFuZ2VSZWNvdmVyeUtleV9Gb3JtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuXG4gICAgICAgIC5teF9DaGFuZ2VSZWNvdmVyeUtleV9mb290ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9LZXlQYW5lbCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGU6XG4gICAgICAgICAgICBcImhlYWRlciBidXR0b25cIiBhdXRvXG4gICAgICAgICAgICBcImNvbnRlbnQgYnV0dG9uXCIgYXV0byAvIDFmcjtcblxuICAgICAgICBjb2x1bW4tZ2FwOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICByb3ctZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgICBncmlkLWFyZWE6IGhlYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIGdyaWQtYXJlYTogY29udGVudDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG5cbiAgICAgICAgICAgIC5teF9LZXlQYW5lbF9rZXkge1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBcIkZpcmEgQ29kZVwiLCBtb25vc3BhY2U7XG4gICAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICAgKiBGcm9tIGZpZ21hIGh0dHBzOi8vd3d3LmZpZ21hLmNvbS9kZXNpZ24vcVRXUmZJdHBPM1JkQ2puVEtQdTRtTC9TZXR0aW5ncz9ub2RlLWlkPTM3NS03NzQ3MSZ0PXQ3bG96WXJTSTFBVlpaM1UtNFxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGhlaWdodDogNzBweDtcbiAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgZ3JpZC1hcmVhOiBidXR0b247XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tc2Vjb25kYXJ5LWFscGhhKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9LZXlGb3JtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuXG4gICAgICAgIC5teF9LZXlGb3JtX3Bhc3N3b3JkIHtcbiAgICAgICAgICAgID4gaW5wdXRbbmFtZT1cInJlY292ZXJ5S2V5XCJdIHtcbiAgICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgICAqIEZyb20gZmlnbWEgaHR0cHM6Ly93d3cuZmlnbWEuY29tL2Rlc2lnbi9xVFdSZkl0cE8zUmRDam5US1B1NG1ML1NldHRpbmdzP25vZGUtaWQ9Mzc1LTc3NTA2JnQ9ZDgyTmRSQkRvS3NVZTFDOS00XG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA3MHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0zeCkgdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtM3gpIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiB2YXIoLS1jcGQtYm9yZGVyLXdpZHRoLTEpIHNvbGlkO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gYnV0dG9uIHtcbiAgICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgICAqIFNlZSBmaWdtYSBodHRwczovL3d3dy5maWdtYS5jb20vZGVzaWduL3FUV1JmSXRwTzNSZENqblRLUHU0bUwvU2V0dGluZ3M/bm9kZS1pZD0zNzUtNzc1MDYmdD1kODJOZFJCRG9Lc1VlMUM5LTRcbiAgICAgICAgICAgICAgICAgKiBBdm9pZCBzdHJldGNoaW5nIHRoZSBoaWRlL3Nob3cgc3ltYm9sIHRvIHRoZSBoZWlnaHQgb2YgdGhlIGlucHV0LCBhbmQgY2VudHJlIGl0IHZlcnRpY2FsbHkuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyNC41cHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG4gKiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuICovXG5cbi5teF9FbmNyeXB0aW9uQ2FyZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTh4KTtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMTB4KTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIC8qIEZyb20gZmlnbWEgKi9cbiAgICBib3gtc2hhZG93OiAwIDEuMnB4IDIuNHB4IDAgcmdiKDI3LCAyOSwgMzQsIDAuMTUpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1ncmF5LTQwMCk7XG5cbiAgICAubXhfRW5jcnlwdGlvbkNhcmRfaGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgID4gaDIge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgPiBzcGFuIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogZXh0cmEgY2xhc3MgZm9yIHNwZWNpZnlpbmcgdGhhdCB3ZSBkb24ndCBuZWVkIGEgYm9yZGVyICovXG4gICAgJi5teF9FbmNyeXB0aW9uQ2FyZF9ub0JvcmRlciB7XG4gICAgICAgIGJvcmRlcjogMHB4IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICB9XG59XG5cbi5teF9FbmNyeXB0aW9uQ2FyZF9idXR0b25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG4ubXhfRW5jcnlwdGlvbkNhcmRfZW1waGFzaXNlZENvbnRlbnQge1xuICAgIHNwYW4ge1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLW1lZGl1bSk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMjUgTmV3IFZlY3RvciBMdGQuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG4gKiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuICovXG5cbi5teF9SZWNvdmVyeVBhbmVsT3V0T2ZTeW5jIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLyogUmVkIHRleHQgZm9yIHRoZSBcIkRvIG5vdCBjbG9zZSB0aGlzIHdpbmRvd1wiIHdhcm5pbmcgKi9cbi5teF9SZXNldElkZW50aXR5UGFuZWxfd2FybmluZyB7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LWNyaXRpY2FsLXByaW1hcnkpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NldHRpbmdzQmFubmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkc3lzdGVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgZ2FwOiAxMnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgLm14X1NldHRpbmdzQmFubmVyX2NvbnRlbnQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXR0aW5nc0luZGVudCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEycHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjMsIDIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXR0aW5nc1NlY3Rpb24ge1xuICAgIC0tU2V0dGluZ3NUYWJfc2VjdGlvbi1tYXJnaW4tYm90dG9tLXByZWZlcmVuY2VzLWxhYnM6IDMwcHg7XG4gICAgLS1TZXR0aW5nc1RhYl9oZWFkaW5nX250aF9jaGlsZC1tYXJnaW4tdG9wOiAzMHB4O1xuICAgIC0tU2V0dGluZ3NUYWJfdG9vbHRpcC1tYXgtd2lkdGg6IDIwcHg7IC8qIFNvIGl0IGZpdHMgaW4gdGhlIHNwYWNlIHByb3ZpZGVkIGJ5IHRoZSBwYWdlICovXG5cbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcblxuICAgIC8qIENvbXBvdW5kIGxpbmtzIGNhcnJ5IGRhdGEta2luZCBhbmQgcHJvdmlkZSB0aGVpciBvd24gY29sb3VyLiAqL1xuICAgIGE6bm90KFtkYXRhLWtpbmRdKSB7XG4gICAgICAgIGNvbG9yOiAkbGlua3M7XG4gICAgfVxuXG4gICAgJi5teF9TZXR0aW5nc1NlY3Rpb25fbmV3VWkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgICB9XG5cbiAgICAubXhfU2V0dGluZ3NTZWN0aW9uX2hlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgfVxufVxuXG4ubXhfU2V0dGluZ3NTZWN0aW9uX3N1YlNlY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcik7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuXG4gICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtNHgpIDA7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NldHRpbmdzVGFiIHtcbiAgICAtLVNldHRpbmdzVGFiX3Rvb2x0aXAtbWF4LXdpZHRoOiAxMjBweDsgLyogU28gaXQgZml0cyBpbiB0aGUgc3BhY2UgcHJvdmlkZWQgYnkgdGhlIHBhZ2UgKi9cblxuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuXG4gICAgLyogQ29tcG91bmQgbGlua3MgY2FycnkgZGF0YS1raW5kIGFuZCBwcm92aWRlIHRoZWlyIG93biBjb2xvdXIuICovXG4gICAgYTpub3QoW2RhdGEta2luZF0pIHtcbiAgICAgICAgY29sb3I6ICRsaW5rcztcbiAgICB9XG5cbiAgICBmb3JtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgfVxuXG4gICAgLyogbmV2ZXIgd2FudCBmdWxsIHdpZHRoIGJ1dHRvbnNcbiAgICBldmVudCB3aGVuIG90aGVyIGNvbnRlbnQgaXMgMTAwJSB3aWR0aCAqL1xuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICAgICAganVzdGlmeS1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgIH1cblxuICAgIC5teF9GaWVsZCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZmxleDogMTtcbiAgICB9XG59XG5cbi5teF9TZXR0aW5nc1RhYl93YXJuaW5nVGV4dCB7XG4gICAgY29sb3I6ICRhbGVydDtcbn1cblxuLm14X1NldHRpbmdzVGFiX3N1YnNlY3Rpb25UZXh0IHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBtYXJnaW4taW5saW5lLWVuZDogODBweDsgLyogQWxpZ24gd2l0aCB0aGUgcmVzdCBvZiB0aGUgdmlldyAqL1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgbWFyZ2luLWlubGluZS1zdGFydDogMDtcbn1cblxuLm14X1NldHRpbmdzVGFiX3NlY3Rpb24ge1xuICAgICRlbmQtZ3V0dGVyOiA4MHB4O1xuXG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcblxuICAgIC5teF9TZXR0aW5nc0ZsYWcge1xuICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogJGVuZC1ndXR0ZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG5cbiAgICAgICAgLm14X1NldHRpbmdzRmxhZ19sYWJlbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAkZm9udC00OHB4KTsgLyogRm9yY2Ugd29yZCB3cmFwIGluc3RlYWQgb2YgY29sbGlkaW5nIHdpdGggdGhlIHN3aXRjaCAqL1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9Ub2dnbGVTd2l0Y2gge1xuICAgICAgICAgICAgZmxvYXQ6IGlubGluZS1lbmQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICA+IHAge1xuICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogJGVuZC1ndXR0ZXI7XG4gICAgfVxuXG4gICAgJi5teF9TZXR0aW5nc1RhYl9zdWJzZWN0aW9uVGV4dCAubXhfU2V0dGluZ3NGbGFnIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDAgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5teF9TZXR0aW5nc1RhYl9zZWN0aW9ucyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS04eCk7XG5cbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Ob3RpZmljYXRpb25TZXR0aW5nc1RhYl9ub3RpZmljYXRpb25zU2VjdGlvbiB7XG4gICAgd2lkdGg6IDM2MHB4O1xuXG4gICAgLm14X1N0eWxlZFJhZGlvQnV0dG9uIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMThweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICBpbnB1dCArIGRpdiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfTm90aWZpY2F0aW9uU2V0dGluZ3NUYWJfbWljcm9Db3B5IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDMycHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmlucHV0W3R5cGU9XCJmaWxlXCJdLm14X05vdGlmaWNhdGlvblNvdW5kX3NvdW5kVXBsb2FkIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgTm9yZGVjayBJVCArIENvbnN1bHRpbmcgR21iSFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUGVvcGxlUm9vbVNldHRpbmdzVGFiX2tub2NrIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9QZW9wbGVSb29tU2V0dGluZ3NUYWJfY29udGVudCB7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIG1hcmdpbjogMCB2YXIoLS1jcGQtc3BhY2UtNHgpO1xufVxuXG4ubXhfUGVvcGxlUm9vbVNldHRpbmdzVGFiX2F2YXRhciB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLm14X1Blb3BsZVJvb21TZXR0aW5nc1RhYl9uYW1lIHtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbn1cblxuLm14X1Blb3BsZVJvb21TZXR0aW5nc1RhYl90aW1lc3RhbXAge1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG59XG5cbi5teF9QZW9wbGVSb29tU2V0dGluZ3NUYWJfdXNlcklkIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tY3BkLWZvbnQtc2l6ZS1ib2R5LXNtKTtcbn1cblxuLm14X1Blb3BsZVJvb21TZXR0aW5nc1RhYl9zZWVNb3JlT3JMZXNzIHtcbiAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0zeCkgMCAwO1xufVxuXG4ubXhfUGVvcGxlUm9vbVNldHRpbmdzVGFiX2FjdGlvbiB7XG4gICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICArIC5teF9QZW9wbGVSb29tU2V0dGluZ3NUYWJfYWN0aW9uIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgfVxufVxuXG4ubXhfUGVvcGxlUm9vbVNldHRpbmdzVGFiX3BhcmFncmFwaCB7XG4gICAgbWFyZ2luOiAwO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Sb2xlc1Jvb21TZXR0aW5nc1RhYl9iYW5uZWRMaXN0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4ubXhfUm9sZXNSb29tU2V0dGluZ3NUYWJfdW5iYW5CdG4ge1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NlY3VyaXR5Um9vbVNldHRpbmdzVGFiX2FkdmFuY2VkU2VjdGlvbiB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbn1cblxuLm14X1NlY3VyaXR5Um9vbVNldHRpbmdzVGFiX3dhcm5pbmcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBjb2x1bW4tZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgY29sb3I6ICNmZjAwNjQ7IC8qIE1hdGNoIGxlZ2FjeSBpY29uIGNvbG91ciB1bnRpbCByZWRlc2lnbiAqL1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwLCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9GaWVsZC5teF9BcHBlYXJhbmNlVXNlclNldHRpbmdzVGFiX2NoZWNrYm94Q29udHJvbGxlZEZpZWxkIHtcbiAgICB3aWR0aDogMjU2cHg7XG4gICAgLyogTGluZSB1cCB3aXRoIFNldHRpbmdzIGZpZWxkIHRvZ2dsZSBidXR0b24gKi9cbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuQ29weXJpZ2h0IDIwMTkgTmV3IFZlY3RvciBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0hlbHBVc2VyU2V0dGluZ3NUYWJfYWNjZXNzVG9rZW5EZXRhaWxzIHtcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfS2V5Ym9hcmRTaG9ydGN1dF9zaG9ydGN1dExpc3Qge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xufVxuXG4ubXhfS2V5Ym9hcmRTaG9ydGN1dF9zaG9ydGN1dFJvdyxcbi5teF9LZXlib2FyZFNob3J0Y3V0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ubXhfS2V5Ym9hcmRTaG9ydGN1dF9zaG9ydGN1dFJvdyB7XG4gICAgY29sdW1uLWdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cblxuLm14X0tleWJvYXJkU2hvcnRjdXQge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGNvbHVtbi1nYXA6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjUgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NZWRpYVByZXZpZXdBY2NvdW50U2V0dGluZ19SYWRpbyB7XG4gICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMXgpIDA7XG59XG5cbi5teF9NZWRpYVByZXZpZXdBY2NvdW50U2V0dGluZyB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbn1cblxuLm14X01lZGlhUHJldmlld0FjY291bnRTZXR0aW5nX1JhZGlvSGVscCB7XG4gICAgLyogIWltcG9ydGFudCBiZWNhdXNlIGl0J3Mgb3ZlcnJpZGluZyBjb21wb3VuZCBoZWxwIG1lc3NhZ2UgKi9cbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbn1cblxuLm14X01lZGlhUHJldmlld0FjY291bnRTZXR0aW5nX0Zvcm0ge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ubXhfTWVkaWFQcmV2aWV3QWNjb3VudFNldHRpbmdfVG9nZ2xlU3dpdGNoIHtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLW1lZGl1bSk7XG4gICAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLWNwZC1mb250LWxldHRlci1zcGFjaW5nLWJvZHktbWQpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTkgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01qb2xuaXJVc2VyU2V0dGluZ3NUYWJfbGlzdEl0ZW0ge1xuICAgIG1hcmdpbi1ib3R0b206IDJweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDI0IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxOSBOZXcgVmVjdG9yIEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUHJlZmVyZW5jZXNVc2VyU2V0dGluZ3NUYWJfc2VjdGlvbl9oaW50IHtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZWN1cml0eVVzZXJTZXR0aW5nc1RhYl9idWxrT3B0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGNvbHVtbi1nYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9TZWN1cml0eVVzZXJTZXR0aW5nc1RhYl9pZ25vcmVkVXNlcnMge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLm14X1NlY3VyaXR5VXNlclNldHRpbmdzVGFiX2lnbm9yZWRVc2VyIHtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xufVxuXG4ubXhfU2VjdXJpdHlVc2VyU2V0dGluZ3NUYWJfaWdub3JlZFVzZXIgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cblxuLm14X1NlY3VyaXR5VXNlclNldHRpbmdzVGFiX3dhcm5pbmcge1xuICAgIGNvbG9yOiAkYWxlcnQ7XG5cbiAgICBzdmcge1xuICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgfVxufVxuXG5mb3JtLm14X1NlY3VyaXR5VXNlclNldHRpbmdzVGFiX3Bvc3Rob2dTZWN0aW9uIHtcbiAgICAvKiBJbmhpYml0IGNvbXBvdW5kIHNwYWNpbmcgaGVyZSBhcyBpdCBjbGFzaGVzIHdpdGggcHJlLWNvbXBvdW5kIFVJICovXG4gICAgZGlzcGxheTogY29udGVudHMgIWltcG9ydGFudDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCwyMDI1IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NpZGViYXJVc2VyU2V0dGluZ3NUYWJfaG9tZUFsbFJvb21zQ2hlY2tib3gge1xuICAgIG1hcmdpbi1sZWZ0OiAyNHB4O1xuXG4gICAgJiArIGRpdiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0OHB4O1xuICAgIH1cbn1cblxuLm14X1NpZGViYXJVc2VyU2V0dGluZ3NUYWJfaWNvbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogYXV0bztcbn1cblxuLm14X1NpZGViYXJVc2VyU2V0dGluZ3NUYWJfY2hlY2tib3ggbGFiZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU3BhY2VCYXNpY1NldHRpbmdzIHtcbiAgICAubXhfRmllbGQge1xuICAgICAgICBtYXJnaW46IDI0cHggMDtcbiAgICB9XG5cbiAgICAubXhfU3BhY2VCYXNpY1NldHRpbmdzX2F2YXRhckNvbnRhaW5lciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1hcmdpbi10b3A6IDI0cHg7XG5cbiAgICAgICAgLm14X1NwYWNlQmFzaWNTZXR0aW5nc19hdmF0YXIge1xuICAgICAgICAgICAgaGVpZ2h0OiA4MHB4O1xuICAgICAgICAgICAgd2lkdGg6IDgwcHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMzBweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZmZmZjsgLyogd2hpdGUgaWNvbiBmaWxsICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICA+IGlucHV0W3R5cGU9XCJmaWxlXCJdIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICA+IC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG8gMThweDtcbiAgICAgICAgICAgIGNvbG9yOiAkbGlua3M7XG4gICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgPiAubXhfU3BhY2VCYXNpY1NldHRpbmdzX2F2YXRhcl9yZW1vdmUge1xuICAgICAgICAgICAgY29sb3I6ICRhbGVydDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2hhc0tpbmQge1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiBtaW4tY29udGVudDtcbiAgICB9XG5cbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9kaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NwYWNlQ2hpbGRyZW5QaWNrZXIge1xuICAgIG1hcmdpbjogMTZweCAwO1xuXG4gICAgLm14X1N0eWxlZFJhZGlvQnV0dG9uICsgLm14X1N0eWxlZFJhZGlvQnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICB9XG5cbiAgICAubXhfU2VhcmNoQm94IHtcbiAgICAgICAgLyogVG8gbWF0Y2ggdGhlIHNwYWNlIGFyb3VuZCB0aGUgdGl0bGUgKi9cbiAgICAgICAgbWFyZ2luOiAwIDAgMTVweCAwO1xuICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICB9XG5cbiAgICAubXhfU3BhY2VDaGlsZHJlblBpY2tlcl9ub1Jlc3VsdHMge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU3BhY2VDcmVhdGVNZW51X3dyYXBwZXIge1xuICAgIC8qIGJhY2tncm91bmQgYmx1ciBldmVyeXRoaW5nIGV4Y2VwdCBTcGFjZVBhbmVsICovXG4gICAgLm14X0NvbnRleHR1YWxNZW51X2JhY2tncm91bmQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGlhbG9nLWJhY2tkcm9wLWNvbG9yO1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgIGxlZnQ6IDY4cHg7XG4gICAgfVxuXG4gICAgLm14X0NvbnRleHR1YWxNZW51IHtcbiAgICAgICAgcGFkZGluZzogMjRweDtcbiAgICAgICAgd2lkdGg6IDQ4MHB4O1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgID4gaDIge1xuICAgICAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWhlYWRpbmctc20tc2VtaWJvbGQpO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMThweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gcCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BhY2VDcmVhdGVNZW51X2JhY2sge1xuICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMC01eCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFuZWwtYWN0aW9ucztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfcHJpbWFyeSB7XG4gICAgICAgICAgICBwYWRkaW5nOiA4cHggMjJweDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogbWluLWNvbnRlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9kaXNhYmxlZCB7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTkgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0lubGluZVRlcm1zQWdyZWVtZW50X2NiQ29udGFpbmVyIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcblxuICAgIGEge1xuICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIC5teF9JbmxpbmVUZXJtc0FncmVlbWVudF9jaGVja2JveCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG5cbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0FuYWx5dGljc1RvYXN0IHtcbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2Rhbmdlcl9vdXRsaW5lIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRhY2NlbnQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIH1cblxuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfcHJpbWFyeSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkYWNjZW50O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSW5jb21pbmdDYWxsVG9hc3Qge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7IC8qIHJlc3RvcmUgcG9pbnRlciBldmVudHMgc28gdGhlIHVzZXIgY2FuIGFjY2VwdC9kZWNsaW5lICovXG5cbiAgICAubXhfSW5jb21pbmdDYWxsVG9hc3RfY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgLm14X0luY29taW5nQ2FsbFRvYXN0X3RpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyIGF1dG87XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgICAgICAgICBoMiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfSW5jb21pbmdDYWxsVG9hc3RfZXhwYW5kQnV0dG9uIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMXM7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXByaW1hcnkpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiBzdmcge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfSW5jb21pbmdDYWxsVG9hc3RfYXZhdGFycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0luY29taW5nQ2FsbFRvYXN0X2J1dHRvbnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIHBhZGRpbmctYmxvY2stc3RhcnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfSW5jb21pbmdDYWxsVG9hc3RfYWN0aW9uQnV0dG9uIHtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDEzMXB4O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0luY29taW5nTGVnYWN5Q2FsbFRvYXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7IC8qIHJlc3RvcmUgcG9pbnRlciBldmVudHMgc28gdGhlIHVzZXIgY2FuIGFjY2VwdC9kZWNsaW5lICovXG5cbiAgICAubXhfSW5jb21pbmdMZWdhY3lDYWxsVG9hc3RfY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG5cbiAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudF9jYWxsZXIge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMThweDtcblxuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG5cbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfTGVnYWN5Q2FsbEV2ZW50X3R5cGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDZweDtcblxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0luY29taW5nTGVnYWN5Q2FsbFRvYXN0X2J1dHRvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBnYXA6IDEycHg7XG5cbiAgICAgICAgICAgIC5teF9JbmNvbWluZ0xlZ2FjeUNhbGxUb2FzdF9idXR0b24ge1xuICAgICAgICAgICAgICAgIEBtaXhpbiBMZWdhY3lDYWxsQnV0dG9uO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDhweDtcbiAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0luY29taW5nTGVnYWN5Q2FsbFRvYXN0X2ljb25CdXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Ob25VcmdlbnRFY2hvRmFpbHVyZVRvYXN0IHtcbiAgICBzdmcge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiAkZm9udC0xOHB4O1xuICAgICAgICBoZWlnaHQ6ICRmb250LTE4cHg7XG4gICAgICAgIGNvbG9yOiAjZmZmOyAvKiB3ZSBrbm93IHRoYXQgbm9uLXVyZ2VudCB0b2FzdHMgYXJlIGFsd2F5cyBzdHlsZWQgdGhlIHNhbWUgKi9cbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgfVxuXG4gICAgc3BhbiB7XG4gICAgICAgIC8qIGluY2x1ZGVzIHRoZSBpMThuIGJsb2NrICovXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEtMjAyMyB4IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9IZWFkaW5nX2gxLFxuLm14X0hlYWRpbmdfaDIsXG4ubXhfSGVhZGluZ19oMyxcbi5teF9IZWFkaW5nX2g0IHtcbiAgICBtYXJnaW4taW5saW5lOiB1bnNldDtcbiAgICBtYXJnaW4tYmxvY2s6IHVuc2V0O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xufVxuXG4ubXhfSGVhZGluZ19oMSB7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtaGVhZGluZy14bC1zZW1pYm9sZCk7XG59XG5cbi5teF9IZWFkaW5nX2gyIHtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1oZWFkaW5nLWxnLXNlbWlib2xkKTtcbn1cblxuLm14X0hlYWRpbmdfaDMge1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWhlYWRpbmctbWQtc2VtaWJvbGQpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xufVxuXG4ubXhfSGVhZGluZ19oNCB7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtaGVhZGluZy1zbS1zZW1pYm9sZCk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuQ29weXJpZ2h0IDIwMTkgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9WZXJpZmljYXRpb25TaG93U2FzX2RlY2ltYWxTYXMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBwYWRkaW5nLWxlZnQ6IDNweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzcHg7XG59XG5cbi5teF9WZXJpZmljYXRpb25TaG93U2FzX2RlY2ltYWxTYXMgc3BhbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cblxuLm14X1ZlcmlmaWNhdGlvblNob3dTYXNfZW1vamlTYXMge1xuICAgIG1hcmdpbjogMjVweCAwO1xufVxuXG4ubXhfVmVyaWZpY2F0aW9uU2hvd1Nhc19idXR0b25Sb3cge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDlweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxLCAyMDIyIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cbkNvcHlyaWdodCAyMDIwLCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKiBkYXRhLXdoYXRpbnRlbnQgbWFrZXMgbW9yZSBzZW5zZSBoZXJlIHNlbWFudGljYWxseSBidXQgdGhlbiB0aGUgdG9vbHRpcCB3b3VsZCBzdGF5IHZpc2libGUgd2l0aG91dCB0aGUgYnV0dG9uICovXG4vKiB3aGljaCBsb29rcyBicm9rZW4sIHNvIHdlIG1hdGNoIHRoZSBiZWhhdmlvdXIgb2YgdG9vbHRpcHMgd2hpY2ggaXMgZmluZSB0b28uICovXG5bZGF0YS13aGF0aW5wdXQ9XCJtb3VzZVwiXSAubXhfTGVnYWN5Q2FsbFZpZXdCdXR0b25zLm14X0xlZ2FjeUNhbGxWaWV3QnV0dG9uc19oaWRkZW4ge1xuICAgIG9wYWNpdHk6IDAuMDAxOyAvKiBvcGFjaXR5IDAgY2FuIGNhdXNlIGEgcmUtbGF5b3V0ICovXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5teF9MZWdhY3lDYWxsVmlld0J1dHRvbnMge1xuICAgIC0tTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2Ryb3Bkb3duQnV0dG9uLXNpemU6IDE2cHg7XG5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3R0b206IDMycHg7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXM7XG4gICAgei1pbmRleDogMjAwOyAvKiBUbyBiZSBhYm92ZSBfYWxsXyBmZWVkcyAqL1xuICAgIGdhcDogMThweDtcblxuICAgIC5teF9MZWdhY3lDYWxsVmlld0J1dHRvbnNfYnV0dG9uIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjYWxsLXZpZXctYnV0dG9uLW9uLWJhY2tncm91bmQ7XG5cbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICB3aWR0aDogNDBweDtcblxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDRweCA0cHggMHB4ICMwMDAwMDAyNjsgLyogU2FtZSBvbiBib3RoIHRoZW1lcyAqL1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgICAgIGNvbG9yOiAkY2FsbC12aWV3LWJ1dHRvbi1vbi1mb3JlZ3JvdW5kO1xuXG4gICAgICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2Ryb3Bkb3duQnV0dG9uIHtcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1MZWdhY3lDYWxsVmlld0J1dHRvbnNfZHJvcGRvd25CdXR0b24tc2l6ZSk7XG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLUxlZ2FjeUNhbGxWaWV3QnV0dG9uc19kcm9wZG93bkJ1dHRvbi1zaXplKTtcblxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9MZWdhY3lDYWxsVmlld0J1dHRvbnNfYnV0dG9uX21pYyBzdmcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBTdGF0ZSBidXR0b25zICovXG4gICAgICAgICYubXhfTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2J1dHRvbl9vbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2FsbC12aWV3LWJ1dHRvbi1vbi1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY2FsbC12aWV3LWJ1dHRvbi1vbi1mb3JlZ3JvdW5kO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLm14X0xlZ2FjeUNhbGxWaWV3QnV0dG9uc19idXR0b25fc2NyZWVuc2hhcmluZyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDtcblxuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsgLyogU2FtZSBvbiBib3RoIHRoZW1lcyAqL1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2J1dHRvbl9vZmYge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNhbGwtdmlldy1idXR0b24tb2ZmLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjYWxsLXZpZXctYnV0dG9uLW9mZi1mb3JlZ3JvdW5kO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLm14X0xlZ2FjeUNhbGxWaWV3QnV0dG9uc19idXR0b25fc2NyZWVuc2hhcmluZyxcbiAgICAgICAgICAgICYubXhfTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2J1dHRvbl9zaWRlYmFyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2FsbC12aWV3LWJ1dHRvbi1vbi1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjYWxsLXZpZXctYnV0dG9uLW9uLWZvcmVncm91bmQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qIFN0YXRlIGJ1dHRvbnMgKi9cblxuICAgICAgICAvKiBTdGF0ZWxlc3MgYnV0dG9ucyAqL1xuICAgICAgICAmLm14X0xlZ2FjeUNhbGxWaWV3QnV0dG9uc19idXR0b25faGFuZ3VwIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhbGVydDtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7IC8qIFNhbWUgb24gYm90aCB0aGVtZXMgKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvKiBTdGF0ZWxlc3MgYnV0dG9ucyAqL1xuXG4gICAgICAgIC8qIEludmlzaWJsZSBzdGF0ZSAqL1xuICAgICAgICAmLm14X0xlZ2FjeUNhbGxWaWV3QnV0dG9uc19idXR0b25faW52aXNpYmxlIHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB9XG4gICAgICAgIC8qIEludmlzaWJsZSBzdGF0ZSAqL1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9DYWxsRHVyYXRpb24ge1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ2FsbFZpZXcge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBtaW4taGVpZ2h0OiAwO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGhlYWRlci1wYW5lbC1iZy1jb2xvcjtcblxuICAgIC5teF9BcHBUaWxlIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2FsbC1iYWNrZ3JvdW5kO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EaWFsUGFkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIHJvdy1nYXA6IDE2cHg7XG4gICAgY29sdW1uLWdhcDogMHB4O1xuICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuXG4gICAgLyogc3F1ZWV6ZSB0aGUgZGlhbCBwYWQgYnV0dG9ucyB0b2dldGhlciBob3Jpem9udGFsbHkgKi9cbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xufVxuXG4ubXhfRGlhbFBhZF9idXR0b24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDQwcHg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLm14X0RpYWxQYWRfYnV0dG9uIC5teF9EaWFsUGFkX2J1dHRvblN1YlRleHQge1xuICAgIGZvbnQtc2l6ZTogOHB4O1xufVxuXG4ubXhfRGlhbFBhZF9kaWFsQnV0dG9uIHtcbiAgICAvKiBBbHdheXMgc2hvdyB0aGUgZGlhbCBidXR0b24gaW4gdGhlIGNlbnRlciBncmlkIGNvbHVtbiAqL1xuICAgIGdyaWQtY29sdW1uOiAyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQ7XG5cbiAgICBzdmcge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgIGNvbG9yOiAjZmZmOyAvKiBvbiBhbGwgdGhlbWVzICovXG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0RpYWxQYWRDb250ZXh0TWVudV9kaWFsUGFkIC5teF9EaWFsUGFkIHtcbiAgICByb3ctZ2FwOiAxNnB4O1xuICAgIGNvbHVtbi1nYXA6IDMycHg7XG59XG5cbi5teF9EaWFsUGFkQ29udGV4dE1lbnVXcmFwcGVyIHtcbiAgICBwYWRkaW5nOiAxNXB4O1xufVxuXG4ubXhfRGlhbFBhZENvbnRleHRNZW51X2hlYWRlciB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG1hcmdpbi10b3A6IDMycHg7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuXG4gICAgLyogYSBzZXBhcmF0b3IgYmV0d2VlbiB0aGUgaW5wdXQgbGluZSBhbmQgdGhlIGRpYWwgYnV0dG9ucyAqL1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkcXVhdGVybmFyeS1jb250ZW50O1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1ib3R0b20gMC4yNXM7XG59XG5cbi5teF9EaWFsUGFkQ29udGV4dE1lbnVfY2FuY2VsIHtcbiAgICBAbWl4aW4gY3VzdG9taXNlZENhbmNlbEJ1dHRvbjtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG5cbi5teF9EaWFsUGFkQ29udGV4dE1lbnVfaGVhZGVyOmZvY3VzLXdpdGhpbiB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRhY2NlbnQ7XG59XG5cbi5teF9EaWFsUGFkQ29udGV4dE1lbnVfdGl0bGUge1xuICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xufVxuXG4ubXhfRGlhbFBhZENvbnRleHRNZW51X2RpYWxsZWQge1xuICAgIGhlaWdodDogMS41ZW07XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBtYXJnaW46IDBweDtcbn1cbi5teF9EaWFsUGFkQ29udGV4dE1lbnVfZGlhbGxlZCBpbnB1dCB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWF4LXdpZHRoOiAxODVweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBhZGRpbmc6IDhweCAwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsIDAsIDAsIDApO1xufVxuXG4ubXhfRGlhbFBhZENvbnRleHRNZW51X2RpYWxQYWQge1xuICAgIG1hcmdpbjogMTZweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EaWFsb2dfZGlhbFBhZFdyYXBwZXIgLm14X0RpYWxvZyB7XG4gICAgcGFkZGluZzogMHB4O1xufVxuXG4ubXhfRGlhbFBhZE1vZGFsIHtcbiAgICB3aWR0aDogMjkycHg7XG4gICAgaGVpZ2h0OiAzNzBweDtcbiAgICBwYWRkaW5nOiAxNnB4IDBweCAwcHggMHB4O1xufVxuXG4ubXhfRGlhbFBhZE1vZGFsX2hlYWRlciB7XG4gICAgbWFyZ2luLXRvcDogMzJweDtcbiAgICBtYXJnaW4tbGVmdDogNDBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDQwcHg7XG5cbiAgICAvKiBhIHNlcGFyYXRvciBiZXR3ZWVuIHRoZSBpbnB1dCBsaW5lIGFuZCB0aGUgZGlhbCBidXR0b25zICovXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRxdWF0ZXJuYXJ5LWNvbnRlbnQ7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWJvdHRvbSAwLjI1cztcbn1cblxuLm14X0RpYWxQYWRNb2RhbF9oZWFkZXI6Zm9jdXMtd2l0aGluIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGFjY2VudDtcbn1cblxuLm14X0RpYWxQYWRNb2RhbF90aXRsZSB7XG4gICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG59XG5cbi5teF9EaWFsUGFkTW9kYWxfY2FuY2VsIHtcbiAgICBAbWl4aW4gY3VzdG9taXNlZENhbmNlbEJ1dHRvbjtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xufVxuXG4ubXhfRGlhbFBhZE1vZGFsX2ZpZWxkIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgbWFyZ2luOiAwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xufVxuXG4ubXhfRGlhbFBhZE1vZGFsX2ZpZWxkIC5teF9GaWVsZF9wb3N0Zml4IHtcbiAgICAvKiBSZW1vdmUgYm9yZGVyIHNlcGFyYXRvciBiZXR3ZWVuIHBvc3RmaXggYW5kIGZpZWxkIGNvbnRlbnQgKi9cbiAgICBib3JkZXItbGVmdDogbm9uZTtcbn1cblxuLm14X0RpYWxQYWRNb2RhbF9maWVsZCBpbnB1dCB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xufVxuXG4ubXhfRGlhbFBhZE1vZGFsX2RpYWxQYWQge1xuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgIG1hcmdpbi1yaWdodDogMTZweDtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEsIDIwMjIgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuQ29weXJpZ2h0IDIwMjAsIDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9MZWdhY3lDYWxsVmlldyB7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrLXBhbmVsLWJnLWNvbG9yO1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcbiAgICAvKiBYWFg6IFBpUENvbnRhaW5lciBzZXRzIHBvaW50ZXItZXZlbnRzOiBub25lIC0gc2hvdWxkIHByb2JhYmx5IGJlIHNldCBiYWNrIGluIGEgYmV0dGVyIHBsYWNlICovXG4gICAgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7XG5cbiAgICAubXhfTGVnYWN5Q2FsbFZpZXdfdG9hc3Qge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNzRweDtcblxuICAgICAgICBwYWRkaW5nOiA0cHggOHB4O1xuXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgei1pbmRleDogNTA7XG5cbiAgICAgICAgLyogU2FtZSBvbiBib3RoIHRoZW1lcyAqL1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxNzE5MWM7XG4gICAgfVxuXG4gICAgLm14X0xlZ2FjeUNhbGxWaWV3X2NvbnRlbnRfd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAubXhfTGVnYWN5Q2FsbFZpZXdfY29udGVudCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcblxuICAgICAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoMjAlICsgMjBweCk7IC8qIFNwYWNlIGZvciB0aGUgc2lkZWJhciAqL1xuXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2FsbC12aWV3LWNvbnRlbnQtYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgLm14X0xlZ2FjeUNhbGxWaWV3X3N0YXR1cyB7XG4gICAgICAgICAgICAgICAgei1pbmRleDogNTA7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQtZmctY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9MZWdhY3lDYWxsVmlld19hdmF0YXJzQ29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgIGRpdiB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfTGVnYWN5Q2FsbFZpZXdfaG9sZEJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGJsdXIoMjBweCk7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwgMCwgMCwgMC42KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubXhfTGVnYWN5Q2FsbFZpZXdfY29udGVudF9ob2xkIC5teF9MZWdhY3lDYWxsVmlld19zdGF0dXMge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvcmVzL2ltZy92b2lwL3BhdXNlZC5zdmdcIik7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfTGVnYWN5Q2FsbFZpZXdfcGlwICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLm14X0xlZ2FjeUNhbGxWaWV3X3NpZGViYXIpIC5teF9MZWdhY3lDYWxsVmlld19jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgICAubXhfVmlkZW9GZWVkX3ByaW1hcnkge1xuICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiB1bnNldDtcbiAgICAgICAgICAgIGJvcmRlcjogMDtcblxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0xlZ2FjeUNhbGxWaWV3X3BpcCB7XG4gICAgICAgIHdpZHRoOiAzMjBweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDhweDtcblxuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHN5c3RlbTtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDRweCAyMHB4IHJnYigwLCAwLCAwLCAwLjIpO1xuXG4gICAgICAgIC5teF9MZWdhY3lDYWxsVmlld0J1dHRvbnMge1xuICAgICAgICAgICAgYm90dG9tOiAxM3B4O1xuXG4gICAgICAgICAgICAubXhfTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2J1dHRvbiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDM0cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAzNHB4O1xuXG4gICAgICAgICAgICAgICAgJi5teF9MZWdhY3lDYWxsVmlld0J1dHRvbnNfZHJvcGRvd25CdXR0b24ge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogdmFyKC0tTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2Ryb3Bkb3duQnV0dG9uLXNpemUpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHZhcigtLUxlZ2FjeUNhbGxWaWV3QnV0dG9uc19kcm9wZG93bkJ1dHRvbi1zaXplKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjJweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyMnB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9MZWdhY3lDYWxsVmlld19jb250ZW50IHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDE4MHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5teF9MZWdhY3lDYWxsVmlld19sYXJnZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgZmxleDogMTtcblxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcblxuICAgICAgICBtYXJnaW46IHZhcigtLWNvbnRhaW5lci1nYXAtd2lkdGgpO1xuICAgICAgICAvKiBUaGUgbGVmdCBzaWRlIGdhcCBpcyBmdWxseSBoYW5kbGVkIGJ5IHRoaXMgbWFyZ2luLiBUbyBwcm9oaWJpdCBibGVlZGluZyBvbiB3ZWJraXQgYnJvd3Nlci4gKi9cbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWNvbnRhaW5lci1nYXAtd2lkdGgpIC8gMik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgfVxuXG4gICAgJi5teF9MZWdhY3lDYWxsVmlld19iZWxvd1dpZGdldCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTGVnYWN5Q2FsbFZpZXdGb3JSb29tIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLm14X0xlZ2FjeUNhbGxWaWV3Rm9yUm9vbV9SZXNpemVXcmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAmOmhvdmVyIC5teF9MZWdhY3lDYWxsVmlld0ZvclJvb21fUmVzaXplSGFuZGxlIHtcbiAgICAgICAgICAgIC8qIE5lZWQgdG8gdXNlIGltcG9ydGFudCB0byBvdmVycmlkZSBlbGVtZW50IHN0eWxlIGF0dHJpYnV0ZXMgKi9cbiAgICAgICAgICAgIC8qIHNldCBieSByZS1yZXNpemFibGUgKi9cbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA0cHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2NHB4O1xuXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxLCAyMDIyIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9MZWdhY3lDYWxsVmlld0hlYWRlciB7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICYubXhfTGVnYWN5Q2FsbFZpZXdIZWFkZXJfcGlwIHtcbiAgICAgICAgY3Vyc29yOiBncmFiO1xuICAgIH1cbn1cblxuLm14X0xlZ2FjeUNhbGxWaWV3SGVhZGVyX3RleHQge1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5teF9MZWdhY3lDYWxsVmlld0hlYWRlcl9zZWNvbmRhcnlDYWxsSW5mbyB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCLCt1wiO1xuICAgICAgICBtYXJnaW4tbGVmdDogNnB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICB9XG59XG5cbi5teF9MZWdhY3lDYWxsVmlld0hlYWRlcl9jb250cm9scyB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDVweDtcbn1cblxuLm14X0xlZ2FjeUNhbGxWaWV3SGVhZGVyX2J1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIH1cbn1cblxuLm14X0xlZ2FjeUNhbGxWaWV3SGVhZGVyX2NhbGxJbmZvIHtcbiAgICBtYXJnaW4tbGVmdDogMTJweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm14X0xlZ2FjeUNhbGxWaWV3SGVhZGVyX3Jvb21OYW1lIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IGluaXRpYWw7XG4gICAgaGVpZ2h0OiAxNXB4O1xuXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ubXhfTGVnYWN5Q2FsbFZpZXdfc2Vjb25kYXJ5Q2FsbF9yb29tTmFtZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDRweDtcbn1cblxuLm14X0xlZ2FjeUNhbGxWaWV3SGVhZGVyX2ljb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgIHN2ZyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcblxuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxLCAyMDIyIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xlZ2FjeUNhbGxWaWV3U2lkZWJhciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAxMHB4O1xuXG4gICAgd2lkdGg6IDIwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIGdhcDogMTJweDtcblxuICAgID4gLm14X1ZpZGVvRmVlZCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG5cbiAgICAgICAgJi5teF9WaWRlb0ZlZWRfdm9pY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHZpZGVvLWZlZWQtc2Vjb25kYXJ5LWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0xlZ2FjeUNhbGxWaWV3U2lkZWJhcl9waXBNb2RlIHtcbiAgICAgICAgdG9wOiAxNnB4O1xuICAgICAgICBib3R0b206IHVuc2V0O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBnYXA6IDRweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSwgMjAyMiDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5Db3B5cmlnaHQgMjAxNSwgMjAxNiAsIDIwMjAsIDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1ZpZGVvRmVlZCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3JkZXI6IHRyYW5zcGFyZW50IDJweCBzb2xpZDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcblxuICAgICYubXhfVmlkZW9GZWVkX3NlY29uZGFyeSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDI0cHg7XG4gICAgICAgIGJvdHRvbTogNzJweDtcbiAgICAgICAgd2lkdGg6IDIwJTtcbiAgICB9XG5cbiAgICAmLm14X1ZpZGVvRmVlZF92b2ljZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnZlcnRlZC1iZy1jb2xvcjtcblxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAmOm5vdCgubXhfVmlkZW9GZWVkX3ByaW1hcnkpIHtcbiAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogMTYgLyA5O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1ZpZGVvRmVlZF92aWRlbyB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcblxuICAgICAgICAmLm14X1ZpZGVvRmVlZF92aWRlb19taXJyb3Ige1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfVmlkZW9GZWVkX21pYyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogNnB4O1xuICAgICAgICBib3R0b206IDZweDtcbiAgICAgICAgei1pbmRleDogMTtcblxuICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigwLCAwLCAwLCAwLjUpOyAvKiBTYW1lIG9uIGJvdGggdGhlbWVzICovXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgcGFkZGluZzogNHB4O1xuICAgICAgICAgICAgY29sb3I6IHdoaXRlOyAvKiBTYW1lIG9uIGJvdGggdGhlbWVzICovXG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJwcmUgY29kZS5obGpze2Rpc3BsYXk6YmxvY2s7b3ZlcmZsb3cteDphdXRvO3BhZGRpbmc6MWVtfWNvZGUuaGxqc3twYWRkaW5nOjNweCA1cHh9LmhsanN7Y29sb3I6I2FiYjJiZjtiYWNrZ3JvdW5kOiMyODJjMzR9LmhsanMtY29tbWVudCwuaGxqcy1xdW90ZXtjb2xvcjojNWM2MzcwO2ZvbnQtc3R5bGU6aXRhbGljfS5obGpzLWRvY3RhZywuaGxqcy1mb3JtdWxhLC5obGpzLWtleXdvcmR7Y29sb3I6I2M2NzhkZH0uaGxqcy1kZWxldGlvbiwuaGxqcy1uYW1lLC5obGpzLXNlY3Rpb24sLmhsanMtc2VsZWN0b3ItdGFnLC5obGpzLXN1YnN0e2NvbG9yOiNlMDZjNzV9LmhsanMtbGl0ZXJhbHtjb2xvcjojNTZiNmMyfS5obGpzLWFkZGl0aW9uLC5obGpzLWF0dHJpYnV0ZSwuaGxqcy1tZXRhIC5obGpzLXN0cmluZywuaGxqcy1yZWdleHAsLmhsanMtc3RyaW5ne2NvbG9yOiM5OGMzNzl9LmhsanMtYXR0ciwuaGxqcy1udW1iZXIsLmhsanMtc2VsZWN0b3ItYXR0ciwuaGxqcy1zZWxlY3Rvci1jbGFzcywuaGxqcy1zZWxlY3Rvci1wc2V1ZG8sLmhsanMtdGVtcGxhdGUtdmFyaWFibGUsLmhsanMtdHlwZSwuaGxqcy12YXJpYWJsZXtjb2xvcjojZDE5YTY2fS5obGpzLWJ1bGxldCwuaGxqcy1saW5rLC5obGpzLW1ldGEsLmhsanMtc2VsZWN0b3ItaWQsLmhsanMtc3ltYm9sLC5obGpzLXRpdGxle2NvbG9yOiM2MWFlZWV9LmhsanMtYnVpbHRfaW4sLmhsanMtY2xhc3MgLmhsanMtdGl0bGUsLmhsanMtdGl0bGUuY2xhc3Nfe2NvbG9yOiNlNmMwN2J9LmhsanMtZW1waGFzaXN7Zm9udC1zdHlsZTppdGFsaWN9LmhsanMtc3Ryb25ne2ZvbnQtd2VpZ2h0OjcwMH0uaGxqcy1saW5re3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9IiwiLypkYXJrICovXG4ubWFya2Rvd24tYm9keSB7XG4gIGNvbG9yLXNjaGVtZTogZGFyaztcbiAgLyoqIENTUyBkZWZhdWx0IGVhc2luZy4gVXNlIGZvciBob3ZlciBzdGF0ZSBjaGFuZ2VzIGFuZCBtaWNyby1pbnRlcmFjdGlvbnMuICovXG4gIC8qKiBBY2NlbGVyYXRpbmcgbW90aW9uLiBVc2UgZm9yIGVsZW1lbnRzIGV4aXRpbmcgdGhlIHZpZXdwb3J0IChtb3Zpbmcgb2ZmLXNjcmVlbikuICovXG4gIC8qKiBTbW9vdGggYWNjZWxlcmF0aW9uIGFuZCBkZWNlbGVyYXRpb24uIFVzZSBmb3IgZWxlbWVudHMgbW92aW5nIG9yIG1vcnBoaW5nIHdpdGhpbiB0aGUgdmlld3BvcnQuICovXG4gIC8qKiBEZWNlbGVyYXRpbmcgbW90aW9uLiBVc2UgZm9yIGVsZW1lbnRzIGVudGVyaW5nIHRoZSB2aWV3cG9ydCBvciBhcHBlYXJpbmcgb24gc2NyZWVuLiAqL1xuICAvKiogQ29uc3RhbnQgbW90aW9uIHdpdGggbm8gYWNjZWxlcmF0aW9uLiBVc2UgZm9yIGNvbnRpbnVvdXMgYW5pbWF0aW9ucyBsaWtlIHByb2dyZXNzIGJhcnMgb3IgbG9hZGVycy4gKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogI2YwZjZmYztcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBkMTExNztcbiAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBcIk5vdG8gU2Fuc1wiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMS41O1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IGEge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAuMnJlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLm9jdGljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xufVxuXG4ubWFya2Rvd24tYm9keSBoMTpob3ZlciAuYW5jaG9yIC5vY3RpY29uLWxpbms6YmVmb3JlLFxuLm1hcmtkb3duLWJvZHkgaDI6aG92ZXIgLmFuY2hvciAub2N0aWNvbi1saW5rOmJlZm9yZSxcbi5tYXJrZG93bi1ib2R5IGgzOmhvdmVyIC5hbmNob3IgLm9jdGljb24tbGluazpiZWZvcmUsXG4ubWFya2Rvd24tYm9keSBoNDpob3ZlciAuYW5jaG9yIC5vY3RpY29uLWxpbms6YmVmb3JlLFxuLm1hcmtkb3duLWJvZHkgaDU6aG92ZXIgLmFuY2hvciAub2N0aWNvbi1saW5rOmJlZm9yZSxcbi5tYXJrZG93bi1ib2R5IGg2OmhvdmVyIC5hbmNob3IgLm9jdGljb24tbGluazpiZWZvcmUge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBjb250ZW50OiAnICc7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xuICAtd2Via2l0LW1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyB2ZXJzaW9uPScxLjEnIGFyaWEtaGlkZGVuPSd0cnVlJz48cGF0aCBmaWxsLXJ1bGU9J2V2ZW5vZGQnIGQ9J003Ljc3NSAzLjI3NWEuNzUuNzUgMCAwMDEuMDYgMS4wNmwxLjI1LTEuMjVhMiAyIDAgMTEyLjgzIDIuODNsLTIuNSAyLjVhMiAyIDAgMDEtMi44MyAwIC43NS43NSAwIDAwLTEuMDYgMS4wNiAzLjUgMy41IDAgMDA0Ljk1IDBsMi41LTIuNWEzLjUgMy41IDAgMDAtNC45NS00Ljk1bC0xLjI1IDEuMjV6bS00LjY5IDkuNjRhMiAyIDAgMDEwLTIuODNsMi41LTIuNWEyIDIgMCAwMTIuODMgMCAuNzUuNzUgMCAwMDEuMDYtMS4wNiAzLjUgMy41IDAgMDAtNC45NSAwbC0yLjUgMi41YTMuNSAzLjUgMCAwMDQuOTUgNC45NWwxLjI1LTEuMjVhLjc1Ljc1IDAgMDAtMS4wNi0xLjA2bC0xLjI1IDEuMjVhMiAyIDAgMDEtMi44MyAweic+PC9wYXRoPjwvc3ZnPlwiKTtcbiAgbWFzay1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgMTYnIHZlcnNpb249JzEuMScgYXJpYS1oaWRkZW49J3RydWUnPjxwYXRoIGZpbGwtcnVsZT0nZXZlbm9kZCcgZD0nTTcuNzc1IDMuMjc1YS43NS43NSAwIDAwMS4wNiAxLjA2bDEuMjUtMS4yNWEyIDIgMCAxMTIuODMgMi44M2wtMi41IDIuNWEyIDIgMCAwMS0yLjgzIDAgLjc1Ljc1IDAgMDAtMS4wNiAxLjA2IDMuNSAzLjUgMCAwMDQuOTUgMGwyLjUtMi41YTMuNSAzLjUgMCAwMC00Ljk1LTQuOTVsLTEuMjUgMS4yNXptLTQuNjkgOS42NGEyIDIgMCAwMTAtMi44M2wyLjUtMi41YTIgMiAwIDAxMi44MyAwIC43NS43NSAwIDAwMS4wNi0xLjA2IDMuNSAzLjUgMCAwMC00Ljk1IDBsLTIuNSAyLjVhMy41IDMuNSAwIDAwNC45NSA0Ljk1bDEuMjUtMS4yNWEuNzUuNzUgMCAwMC0xLjA2LTEuMDZsLTEuMjUgMS4yNWEyIDIgMCAwMS0yLjgzIDB6Jz48L3BhdGg+PC9zdmc+XCIpO1xufVxuXG4ubWFya2Rvd24tYm9keSBkZXRhaWxzLFxuLm1hcmtkb3duLWJvZHkgZmlnY2FwdGlvbixcbi5tYXJrZG93bi1ib2R5IGZpZ3VyZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubWFya2Rvd24tYm9keSBzdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xufVxuXG4ubWFya2Rvd24tYm9keSBbaGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLm1hcmtkb3duLWJvZHkgYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMCk7XG4gIGNvbG9yOiAjNDQ5M2Y4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IGFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbn1cblxuLm1hcmtkb3duLWJvZHkgYixcbi5tYXJrZG93bi1ib2R5IHN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IGRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLm1hcmtkb3duLWJvZHkgaDEge1xuICBtYXJnaW46IC42N2VtIDA7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHBhZGRpbmctYm90dG9tOiAuM2VtO1xuICBmb250LXNpemU6IDJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzZDQ0NGRiMztcbn1cblxuLm1hcmtkb3duLWJvZHkgbWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiYjgwMDkyNjtcbiAgY29sb3I6ICNmMGY2ZmM7XG59XG5cbi5tYXJrZG93bi1ib2R5IHNtYWxsIHtcbiAgZm9udC1zaXplOiA5MCU7XG59XG5cbi5tYXJrZG93bi1ib2R5IHN1Yixcbi5tYXJrZG93bi1ib2R5IHN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IHN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IGltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLm1hcmtkb3duLWJvZHkgY29kZSxcbi5tYXJrZG93bi1ib2R5IGtiZCxcbi5tYXJrZG93bi1ib2R5IHByZSxcbi5tYXJrZG93bi1ib2R5IHNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gMi41cmVtO1xufVxuXG4ubWFya2Rvd24tYm9keSBociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDApO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzNkNDQ0ZGIzO1xuICBoZWlnaHQ6IC4yNWVtO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDEuNXJlbSAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2Q0NDRkO1xuICBib3JkZXI6IDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IGlucHV0IHtcbiAgZm9udDogaW5oZXJpdDtcbiAgbWFyZ2luOiAwO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IFt0eXBlPWJ1dHRvbl0sXG4ubWFya2Rvd24tYm9keSBbdHlwZT1yZXNldF0sXG4ubWFya2Rvd24tYm9keSBbdHlwZT1zdWJtaXRdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIGFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuLm1hcmtkb3duLWJvZHkgW3R5cGU9Y2hlY2tib3hdLFxuLm1hcmtkb3duLWJvZHkgW3R5cGU9cmFkaW9dIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgW3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbi5tYXJrZG93bi1ib2R5IFt0eXBlPW51bWJlcl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi5tYXJrZG93bi1ib2R5IFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4ubWFya2Rvd24tYm9keSBbdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuXG4ubWFya2Rvd24tYm9keSA6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgb3BhY2l0eTogLjU0O1xufVxuXG4ubWFya2Rvd24tYm9keSA6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIGFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgZm9udDogaW5oZXJpdDtcbn1cblxuLm1hcmtkb3duLWJvZHkgYTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4ubWFya2Rvd24tYm9keSA6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICM5MTk4YTE7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5tYXJrZG93bi1ib2R5IGhyOjpiZWZvcmUge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY29udGVudDogXCJcIjtcbn1cblxuLm1hcmtkb3duLWJvZHkgaHI6OmFmdGVyIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNsZWFyOiBib3RoO1xuICBjb250ZW50OiBcIlwiO1xufVxuXG4ubWFya2Rvd24tYm9keSB0YWJsZSB7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IG1heC1jb250ZW50O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBmb250LXZhcmlhbnQ6IHRhYnVsYXItbnVtcztcbn1cblxuLm1hcmtkb3duLWJvZHkgdGQsXG4ubWFya2Rvd24tYm9keSB0aCB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IGRldGFpbHMgc3VtbWFyeSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm1hcmtkb3duLWJvZHkgYTpmb2N1cyxcbi5tYXJrZG93bi1ib2R5IFtyb2xlPWJ1dHRvbl06Zm9jdXMsXG4ubWFya2Rvd24tYm9keSBpbnB1dFt0eXBlPXJhZGlvXTpmb2N1cyxcbi5tYXJrZG93bi1ib2R5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmZvY3VzIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWJvcmRlckNvbG9yLWFjY2VudC1lbXBoYXNpcyk7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4ubWFya2Rvd24tYm9keSBhOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSksXG4ubWFya2Rvd24tYm9keSBbcm9sZT1idXR0b25dOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSksXG4ubWFya2Rvd24tYm9keSBpbnB1dFt0eXBlPXJhZGlvXTpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpLFxuLm1hcmtkb3duLWJvZHkgaW5wdXRbdHlwZT1jaGVja2JveF06Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gIG91dGxpbmU6IHNvbGlkIDFweCByZ2JhKDAsMCwwLDApO1xufVxuXG4ubWFya2Rvd24tYm9keSBhOmZvY3VzLXZpc2libGUsXG4ubWFya2Rvd24tYm9keSBbcm9sZT1idXR0b25dOmZvY3VzLXZpc2libGUsXG4ubWFya2Rvd24tYm9keSBpbnB1dFt0eXBlPXJhZGlvXTpmb2N1cy12aXNpYmxlLFxuLm1hcmtkb3duLWJvZHkgaW5wdXRbdHlwZT1jaGVja2JveF06Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1ib3JkZXJDb2xvci1hY2NlbnQtZW1waGFzaXMpO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgYTpub3QoW2NsYXNzXSk6Zm9jdXMsXG4ubWFya2Rvd24tYm9keSBhOm5vdChbY2xhc3NdKTpmb2N1cy12aXNpYmxlLFxuLm1hcmtkb3duLWJvZHkgaW5wdXRbdHlwZT1yYWRpb106Zm9jdXMsXG4ubWFya2Rvd24tYm9keSBpbnB1dFt0eXBlPXJhZGlvXTpmb2N1cy12aXNpYmxlLFxuLm1hcmtkb3duLWJvZHkgaW5wdXRbdHlwZT1jaGVja2JveF06Zm9jdXMsXG4ubWFya2Rvd24tYm9keSBpbnB1dFt0eXBlPWNoZWNrYm94XTpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZS1vZmZzZXQ6IDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IGtiZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMC4yNXJlbTtcbiAgZm9udDogMTFweCB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBTRiBNb25vLCBNZW5sbywgQ29uc29sYXMsIExpYmVyYXRpb24gTW9ubywgbW9ub3NwYWNlO1xuICBsaW5lLWhlaWdodDogMTBweDtcbiAgY29sb3I6ICNmMGY2ZmM7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNTFiMjM7XG4gIGJvcmRlcjogc29saWQgMXB4IHZhcigtLWJvcmRlckNvbG9yLW11dGVkKTtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tYm9yZGVyQ29sb3ItbXV0ZWQpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwIHZhcigtLWJvcmRlckNvbG9yLW11dGVkKTtcbn1cblxuLm1hcmtkb3duLWJvZHkgaDEsXG4ubWFya2Rvd24tYm9keSBoMixcbi5tYXJrZG93bi1ib2R5IGgzLFxuLm1hcmtkb3duLWJvZHkgaDQsXG4ubWFya2Rvd24tYm9keSBoNSxcbi5tYXJrZG93bi1ib2R5IGg2IHtcbiAgbWFyZ2luLXRvcDogMS41cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMS4yNTtcbn1cblxuLm1hcmtkb3duLWJvZHkgaDIge1xuICBmb250LXdlaWdodDogNjAwO1xuICBwYWRkaW5nLWJvdHRvbTogLjNlbTtcbiAgZm9udC1zaXplOiAxLjVlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzZDQ0NGRiMztcbn1cblxuLm1hcmtkb3duLWJvZHkgaDMge1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDEuMjVlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgaDQge1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgaDUge1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IC44NzVlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgaDYge1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IC44NWVtO1xuICBjb2xvcjogIzkxOThhMTtcbn1cblxuLm1hcmtkb3duLWJvZHkgcCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5tYXJrZG93bi1ib2R5IGJsb2NrcXVvdGUge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgMWVtO1xuICBjb2xvcjogIzkxOThhMTtcbiAgYm9yZGVyLWxlZnQ6IC4yNWVtIHNvbGlkICMzZDQ0NGQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IHVsLFxuLm1hcmtkb3duLWJvZHkgb2wge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDJlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgb2wgb2wsXG4ubWFya2Rvd24tYm9keSB1bCBvbCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbG93ZXItcm9tYW47XG59XG5cbi5tYXJrZG93bi1ib2R5IHVsIHVsIG9sLFxuLm1hcmtkb3duLWJvZHkgdWwgb2wgb2wsXG4ubWFya2Rvd24tYm9keSBvbCB1bCBvbCxcbi5tYXJrZG93bi1ib2R5IG9sIG9sIG9sIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBsb3dlci1hbHBoYTtcbn1cblxuLm1hcmtkb3duLWJvZHkgZGQge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgdHQsXG4ubWFya2Rvd24tYm9keSBjb2RlLFxuLm1hcmtkb3duLWJvZHkgc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBTRiBNb25vLCBNZW5sbywgQ29uc29sYXMsIExpYmVyYXRpb24gTW9ubywgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5tYXJrZG93bi1ib2R5IHByZSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBTRiBNb25vLCBNZW5sbywgQ29uc29sYXMsIExpYmVyYXRpb24gTW9ubywgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDEycHg7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xufVxuXG4ubWFya2Rvd24tYm9keSAub2N0aWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xuICBmaWxsOiBjdXJyZW50Q29sb3I7XG59XG5cbi5tYXJrZG93bi1ib2R5IGlucHV0Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxuLm1hcmtkb3duLWJvZHkgaW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xuICBtYXJnaW46IDA7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5tci0yIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm1hcmtkb3duLWJvZHk6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjb250ZW50OiBcIlwiO1xufVxuXG4ubWFya2Rvd24tYm9keTo6YWZ0ZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY2xlYXI6IGJvdGg7XG4gIGNvbnRlbnQ6IFwiXCI7XG59XG5cbi5tYXJrZG93bi1ib2R5Pio6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5tYXJrZG93bi1ib2R5Pio6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuLm1hcmtkb3duLWJvZHkgYTpub3QoW2hyZWZdKSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5hYnNlbnQge1xuICBjb2xvcjogI2Y4NTE0OTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmFuY2hvciB7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAwLjI1cmVtO1xuICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4ubWFya2Rvd24tYm9keSAuYW5jaG9yOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgcCxcbi5tYXJrZG93bi1ib2R5IGJsb2NrcXVvdGUsXG4ubWFya2Rvd24tYm9keSB1bCxcbi5tYXJrZG93bi1ib2R5IG9sLFxuLm1hcmtkb3duLWJvZHkgZGwsXG4ubWFya2Rvd24tYm9keSB0YWJsZSxcbi5tYXJrZG93bi1ib2R5IHByZSxcbi5tYXJrZG93bi1ib2R5IGRldGFpbHMge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4ubWFya2Rvd24tYm9keSBibG9ja3F1b3RlPjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IGJsb2NrcXVvdGU+Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4ubWFya2Rvd24tYm9keSBoMSAub2N0aWNvbi1saW5rLFxuLm1hcmtkb3duLWJvZHkgaDIgLm9jdGljb24tbGluayxcbi5tYXJrZG93bi1ib2R5IGgzIC5vY3RpY29uLWxpbmssXG4ubWFya2Rvd24tYm9keSBoNCAub2N0aWNvbi1saW5rLFxuLm1hcmtkb3duLWJvZHkgaDUgLm9jdGljb24tbGluayxcbi5tYXJrZG93bi1ib2R5IGg2IC5vY3RpY29uLWxpbmsge1xuICBjb2xvcjogI2YwZjZmYztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4ubWFya2Rvd24tYm9keSBoMTpob3ZlciAuYW5jaG9yLFxuLm1hcmtkb3duLWJvZHkgaDI6aG92ZXIgLmFuY2hvcixcbi5tYXJrZG93bi1ib2R5IGgzOmhvdmVyIC5hbmNob3IsXG4ubWFya2Rvd24tYm9keSBoNDpob3ZlciAuYW5jaG9yLFxuLm1hcmtkb3duLWJvZHkgaDU6aG92ZXIgLmFuY2hvcixcbi5tYXJrZG93bi1ib2R5IGg2OmhvdmVyIC5hbmNob3Ige1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IGgxOmhvdmVyIC5hbmNob3IgLm9jdGljb24tbGluayxcbi5tYXJrZG93bi1ib2R5IGgyOmhvdmVyIC5hbmNob3IgLm9jdGljb24tbGluayxcbi5tYXJrZG93bi1ib2R5IGgzOmhvdmVyIC5hbmNob3IgLm9jdGljb24tbGluayxcbi5tYXJrZG93bi1ib2R5IGg0OmhvdmVyIC5hbmNob3IgLm9jdGljb24tbGluayxcbi5tYXJrZG93bi1ib2R5IGg1OmhvdmVyIC5hbmNob3IgLm9jdGljb24tbGluayxcbi5tYXJrZG93bi1ib2R5IGg2OmhvdmVyIC5hbmNob3IgLm9jdGljb24tbGluayB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG5cbi5tYXJrZG93bi1ib2R5IGgxIHR0LFxuLm1hcmtkb3duLWJvZHkgaDEgY29kZSxcbi5tYXJrZG93bi1ib2R5IGgyIHR0LFxuLm1hcmtkb3duLWJvZHkgaDIgY29kZSxcbi5tYXJrZG93bi1ib2R5IGgzIHR0LFxuLm1hcmtkb3duLWJvZHkgaDMgY29kZSxcbi5tYXJrZG93bi1ib2R5IGg0IHR0LFxuLm1hcmtkb3duLWJvZHkgaDQgY29kZSxcbi5tYXJrZG93bi1ib2R5IGg1IHR0LFxuLm1hcmtkb3duLWJvZHkgaDUgY29kZSxcbi5tYXJrZG93bi1ib2R5IGg2IHR0LFxuLm1hcmtkb3duLWJvZHkgaDYgY29kZSB7XG4gIHBhZGRpbmc6IDAgLjJlbTtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xufVxuXG4ubWFya2Rvd24tYm9keSBzdW1tYXJ5IGgxLFxuLm1hcmtkb3duLWJvZHkgc3VtbWFyeSBoMixcbi5tYXJrZG93bi1ib2R5IHN1bW1hcnkgaDMsXG4ubWFya2Rvd24tYm9keSBzdW1tYXJ5IGg0LFxuLm1hcmtkb3duLWJvZHkgc3VtbWFyeSBoNSxcbi5tYXJrZG93bi1ib2R5IHN1bW1hcnkgaDYge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5tYXJrZG93bi1ib2R5IHN1bW1hcnkgaDEgLmFuY2hvcixcbi5tYXJrZG93bi1ib2R5IHN1bW1hcnkgaDIgLmFuY2hvcixcbi5tYXJrZG93bi1ib2R5IHN1bW1hcnkgaDMgLmFuY2hvcixcbi5tYXJrZG93bi1ib2R5IHN1bW1hcnkgaDQgLmFuY2hvcixcbi5tYXJrZG93bi1ib2R5IHN1bW1hcnkgaDUgLmFuY2hvcixcbi5tYXJrZG93bi1ib2R5IHN1bW1hcnkgaDYgLmFuY2hvciB7XG4gIG1hcmdpbi1sZWZ0OiAtNDBweDtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3VtbWFyeSBoMSxcbi5tYXJrZG93bi1ib2R5IHN1bW1hcnkgaDIge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgdWwubm8tbGlzdCxcbi5tYXJrZG93bi1ib2R5IG9sLm5vLWxpc3Qge1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IG9sW3R5cGU9XCJhIHNcIl0ge1xuICBsaXN0LXN0eWxlLXR5cGU6IGxvd2VyLWFscGhhO1xufVxuXG4ubWFya2Rvd24tYm9keSBvbFt0eXBlPVwiQSBzXCJdIHtcbiAgbGlzdC1zdHlsZS10eXBlOiB1cHBlci1hbHBoYTtcbn1cblxuLm1hcmtkb3duLWJvZHkgb2xbdHlwZT1cImkgc1wiXSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbG93ZXItcm9tYW47XG59XG5cbi5tYXJrZG93bi1ib2R5IG9sW3R5cGU9XCJJIHNcIl0ge1xuICBsaXN0LXN0eWxlLXR5cGU6IHVwcGVyLXJvbWFuO1xufVxuXG4ubWFya2Rvd24tYm9keSBvbFt0eXBlPVwiMVwiXSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcbn1cblxuLm1hcmtkb3duLWJvZHkgZGl2Pm9sOm5vdChbdHlwZV0pIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xufVxuXG4ubWFya2Rvd24tYm9keSB1bCB1bCxcbi5tYXJrZG93bi1ib2R5IHVsIG9sLFxuLm1hcmtkb3duLWJvZHkgb2wgb2wsXG4ubWFya2Rvd24tYm9keSBvbCB1bCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IGxpPnAge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xufVxuXG4ubWFya2Rvd24tYm9keSBsaStsaSB7XG4gIG1hcmdpbi10b3A6IC4yNWVtO1xufVxuXG4ubWFya2Rvd24tYm9keSBkbCB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IGRsIGR0IHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgZGwgZGQge1xuICBwYWRkaW5nOiAwIDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IHRhYmxlIHRoIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgdGFibGUgdGgsXG4ubWFya2Rvd24tYm9keSB0YWJsZSB0ZCB7XG4gIHBhZGRpbmc6IDZweCAxM3B4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjM2Q0NDRkO1xufVxuXG4ubWFya2Rvd24tYm9keSB0YWJsZSB0ZD46bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IHRhYmxlIHRyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBkMTExNztcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMzZDQ0NGRiMztcbn1cblxuLm1hcmtkb3duLWJvZHkgdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNTFiMjM7XG59XG5cbi5tYXJrZG93bi1ib2R5IHRhYmxlIGltZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMCk7XG59XG5cbi5tYXJrZG93bi1ib2R5IGltZ1thbGlnbj1yaWdodF0ge1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG59XG5cbi5tYXJrZG93bi1ib2R5IGltZ1thbGlnbj1sZWZ0XSB7XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5lbW9qaSB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgdmVydGljYWwtYWxpZ246IHRleHQtdG9wO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDApO1xufVxuXG4ubWFya2Rvd24tYm9keSBzcGFuLmZyYW1lIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5tYXJrZG93bi1ib2R5IHNwYW4uZnJhbWU+c3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IGF1dG87XG4gIHBhZGRpbmc6IDdweDtcbiAgbWFyZ2luOiAxM3B4IDAgMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyOiAxcHggc29saWQgIzNkNDQ0ZDtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3Bhbi5mcmFtZSBzcGFuIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogbGVmdDtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3Bhbi5mcmFtZSBzcGFuIHNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogNXB4IDAgMDtcbiAgY2xlYXI6IGJvdGg7XG4gIGNvbG9yOiAjZjBmNmZjO1xufVxuXG4ubWFya2Rvd24tYm9keSBzcGFuLmFsaWduLWNlbnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGVhcjogYm90aDtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3Bhbi5hbGlnbi1jZW50ZXI+c3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDEzcHggYXV0byAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5tYXJrZG93bi1ib2R5IHNwYW4uYWxpZ24tY2VudGVyIHNwYW4gaW1nIHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3Bhbi5hbGlnbi1yaWdodCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGVhcjogYm90aDtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3Bhbi5hbGlnbi1yaWdodD5zcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMTNweCAwIDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4ubWFya2Rvd24tYm9keSBzcGFuLmFsaWduLXJpZ2h0IHNwYW4gaW1nIHtcbiAgbWFyZ2luOiAwO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3Bhbi5mbG9hdC1sZWZ0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDEzcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5tYXJrZG93bi1ib2R5IHNwYW4uZmxvYXQtbGVmdCBzcGFuIHtcbiAgbWFyZ2luOiAxM3B4IDAgMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3Bhbi5mbG9hdC1yaWdodCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1sZWZ0OiAxM3B4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubWFya2Rvd24tYm9keSBzcGFuLmZsb2F0LXJpZ2h0PnNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAxM3B4IGF1dG8gMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IGNvZGUsXG4ubWFya2Rvd24tYm9keSB0dCB7XG4gIHBhZGRpbmc6IC4yZW0gLjRlbTtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDg1JTtcbiAgd2hpdGUtc3BhY2U6IGJyZWFrLXNwYWNlcztcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY1NmM3NjMzO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG59XG5cbi5tYXJrZG93bi1ib2R5IGNvZGUgYnIsXG4ubWFya2Rvd24tYm9keSB0dCBiciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IGRlbCBjb2RlIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xufVxuXG4ubWFya2Rvd24tYm9keSBzYW1wIHtcbiAgZm9udC1zaXplOiA4NSU7XG59XG5cbi5tYXJrZG93bi1ib2R5IHByZSBjb2RlIHtcbiAgZm9udC1zaXplOiAxMDAlO1xufVxuXG4ubWFya2Rvd24tYm9keSBwcmU+Y29kZSB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgd29yZC1icmVhazogbm9ybWFsO1xuICB3aGl0ZS1zcGFjZTogcHJlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDApO1xuICBib3JkZXI6IDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5oaWdobGlnaHQge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4ubWFya2Rvd24tYm9keSAuaGlnaGxpZ2h0IHByZSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHdvcmQtYnJlYWs6IG5vcm1hbDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmhpZ2hsaWdodCBwcmUsXG4ubWFya2Rvd24tYm9keSBwcmUge1xuICBwYWRkaW5nOiAxcmVtO1xuICBvdmVyZmxvdzogYXV0bztcbiAgZm9udC1zaXplOiA4NSU7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuICBjb2xvcjogI2YwZjZmYztcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE1MWIyMztcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuXG4ubWFya2Rvd24tYm9keSBwcmUgY29kZSxcbi5tYXJrZG93bi1ib2R5IHByZSB0dCB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDApO1xuICBib3JkZXI6IDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5jc3YtZGF0YSB0ZCxcbi5tYXJrZG93bi1ib2R5IC5jc3YtZGF0YSB0aCB7XG4gIHBhZGRpbmc6IDVweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmNzdi1kYXRhIC5ibG9iLW51bSB7XG4gIHBhZGRpbmc6IDEwcHggMC41cmVtIDlweDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGJhY2tncm91bmQ6ICMwZDExMTc7XG4gIGJvcmRlcjogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmNzdi1kYXRhIHRyIHtcbiAgYm9yZGVyLXRvcDogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmNzdi1kYXRhIHRoIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgYmFja2dyb3VuZDogIzE1MWIyMztcbiAgYm9yZGVyLXRvcDogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgW2RhdGEtZm9vdG5vdGUtcmVmXTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJbXCI7XG59XG5cbi5tYXJrZG93bi1ib2R5IFtkYXRhLWZvb3Rub3RlLXJlZl06OmFmdGVyIHtcbiAgY29udGVudDogXCJdXCI7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5mb290bm90ZXMge1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjOTE5OGExO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgIzNkNDQ0ZDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmZvb3Rub3RlcyBvbCB7XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmZvb3Rub3RlcyBvbCB1bCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICBtYXJnaW4tdG9wOiAxcmVtO1xufVxuXG4ubWFya2Rvd24tYm9keSAuZm9vdG5vdGVzIGxpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubWFya2Rvd24tYm9keSAuZm9vdG5vdGVzIGxpOnRhcmdldDo6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoMC41cmVtKi0xKTtcbiAgcmlnaHQ6IGNhbGMoMC41cmVtKi0xKTtcbiAgYm90dG9tOiBjYWxjKDAuNXJlbSotMSk7XG4gIGxlZnQ6IGNhbGMoMS41cmVtKi0xKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJvcmRlcjogMnB4IHNvbGlkICMxZjZmZWI7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmZvb3Rub3RlcyBsaTp0YXJnZXQge1xuICBjb2xvcjogI2YwZjZmYztcbn1cblxuLm1hcmtkb3duLWJvZHkgLmZvb3Rub3RlcyAuZGF0YS1mb290bm90ZS1iYWNrcmVmIGctZW1vamkge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtYyB7XG4gIGNvbG9yOiAjOTE5OGExO1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtYzEsXG4ubWFya2Rvd24tYm9keSAucGwtcyAucGwtdiB7XG4gIGNvbG9yOiAjNzljMGZmO1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtZSxcbi5tYXJrZG93bi1ib2R5IC5wbC1lbiB7XG4gIGNvbG9yOiAjZDJhOGZmO1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtc21pLFxuLm1hcmtkb3duLWJvZHkgLnBsLXMgLnBsLXMxIHtcbiAgY29sb3I6ICNmMGY2ZmM7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1lbnQge1xuICBjb2xvcjogIzdlZTc4Nztcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLWsge1xuICBjb2xvcjogI2ZmN2I3Mjtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLXMsXG4ubWFya2Rvd24tYm9keSAucGwtcGRzLFxuLm1hcmtkb3duLWJvZHkgLnBsLXMgLnBsLXBzZSAucGwtczEsXG4ubWFya2Rvd24tYm9keSAucGwtc3IsXG4ubWFya2Rvd24tYm9keSAucGwtc3IgLnBsLWNjZSxcbi5tYXJrZG93bi1ib2R5IC5wbC1zciAucGwtc3JlLFxuLm1hcmtkb3duLWJvZHkgLnBsLXNyIC5wbC1zcmEge1xuICBjb2xvcjogI2E1ZDZmZjtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLXYsXG4ubWFya2Rvd24tYm9keSAucGwtc213IHtcbiAgY29sb3I6ICNmZmE2NTc7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1idSB7XG4gIGNvbG9yOiAjZjg1MTQ5O1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtaWkge1xuICBjb2xvcjogdmFyKC0tZmdDb2xvci1kYW5nZXIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZ0NvbG9yLWRhbmdlci1tdXRlZCk7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1jMiB7XG4gIGNvbG9yOiAjZjBmNmZjO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjYyMzI0O1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtc3IgLnBsLWNjZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzdlZTc4Nztcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLW1sIHtcbiAgY29sb3I6ICNmMmNjNjA7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1taCxcbi5tYXJrZG93bi1ib2R5IC5wbC1taCAucGwtZW4sXG4ubWFya2Rvd24tYm9keSAucGwtbXMge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICMxZjZmZWI7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1taSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgY29sb3I6ICNmMGY2ZmM7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1tYiB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogI2YwZjZmYztcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLW1kIHtcbiAgY29sb3I6ICNmZmRjZDc7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NzA2MGM7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1taTEge1xuICBjb2xvcjogI2FmZjViNDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAzM2ExNjtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLW1jIHtcbiAgY29sb3I6ICNmZmRmYjY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1YTFlMDI7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1taTIge1xuICBjb2xvcjogI2YwZjZmYztcbiAgYmFja2dyb3VuZC1jb2xvcjogIzExNThjNztcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLW1kciB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogI2QyYThmZjtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLWJhIHtcbiAgY29sb3I6ICM5MTk4YTE7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1zZyB7XG4gIGNvbG9yOiAjM2Q0NDRkO1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtY29ybCB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBjb2xvcjogI2E1ZDZmZjtcbn1cblxuLm1hcmtkb3duLWJvZHkgW3JvbGU9YnV0dG9uXTpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpLFxuLm1hcmtkb3duLWJvZHkgW3JvbGU9dGFicGFuZWxdW3RhYmluZGV4PVwiMFwiXTpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpLFxuLm1hcmtkb3duLWJvZHkgYnV0dG9uOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSksXG4ubWFya2Rvd24tYm9keSBzdW1tYXJ5OmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSksXG4ubWFya2Rvd24tYm9keSBhOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4ubWFya2Rvd24tYm9keSBbdGFiaW5kZXg9XCIwXCJdOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSksXG4ubWFya2Rvd24tYm9keSBkZXRhaWxzLWRpYWxvZzpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgZy1lbW9qaSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWluLXdpZHRoOiAxY2g7XG4gIGZvbnQtZmFtaWx5OiBcIkFwcGxlIENvbG9yIEVtb2ppXCIsXCJTZWdvZSBVSSBFbW9qaVwiLFwiU2Vnb2UgVUkgU3ltYm9sXCI7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBmb250LXN0eWxlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHZlcnRpY2FsLWFsaWduOiAtMC4wNzVlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgZy1lbW9qaSBpbWcge1xuICB3aWR0aDogMWVtO1xuICBoZWlnaHQ6IDFlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgYTpoYXMoPnAsPmRpdiw+cHJlLD5ibG9ja3F1b3RlKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubWFya2Rvd24tYm9keSBhOmhhcyg+cCw+ZGl2LD5wcmUsPmJsb2NrcXVvdGUpOm5vdCg6aGFzKC5zbmlwcGV0LWNsaXBib2FyZC1jb250ZW50LD5wcmUpKSB7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbn1cblxuLm1hcmtkb3duLWJvZHkgYTpoYXMoPnAsPmRpdiw+cHJlLD5ibG9ja3F1b3RlKTpoYXMoLnNuaXBwZXQtY2xpcGJvYXJkLWNvbnRlbnQsPnByZSk6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1ib3JkZXJDb2xvci1hY2NlbnQtZW1waGFzaXMpO1xuICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuXG4ubWFya2Rvd24tYm9keSAudGFzay1saXN0LWl0ZW0ge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IC50YXNrLWxpc3QtaXRlbSBsYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IC50YXNrLWxpc3QtaXRlbS5lbmFibGVkIGxhYmVsIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubWFya2Rvd24tYm9keSAudGFzay1saXN0LWl0ZW0rLnRhc2stbGlzdC1pdGVtIHtcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnRhc2stbGlzdC1pdGVtIC5oYW5kbGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubWFya2Rvd24tYm9keSAudGFzay1saXN0LWl0ZW0tY2hlY2tib3gge1xuICBtYXJnaW46IDAgLjJlbSAuMjVlbSAtMS40ZW07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5tYXJrZG93bi1ib2R5IHVsOmRpcihydGwpIC50YXNrLWxpc3QtaXRlbS1jaGVja2JveCB7XG4gIG1hcmdpbjogMCAtMS42ZW0gLjI1ZW0gLjJlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgb2w6ZGlyKHJ0bCkgLnRhc2stbGlzdC1pdGVtLWNoZWNrYm94IHtcbiAgbWFyZ2luOiAwIC0xLjZlbSAuMjVlbSAuMmVtO1xufVxuXG4ubWFya2Rvd24tYm9keSAuY29udGFpbnMtdGFzay1saXN0OmhvdmVyIC50YXNrLWxpc3QtaXRlbS1jb252ZXJ0LWNvbnRhaW5lcixcbi5tYXJrZG93bi1ib2R5IC5jb250YWlucy10YXNrLWxpc3Q6Zm9jdXMtd2l0aGluIC50YXNrLWxpc3QtaXRlbS1jb252ZXJ0LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiAyNHB4O1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgY2xpcC1wYXRoOiBub25lO1xufVxuXG4ubWFya2Rvd24tYm9keSA6Oi13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvciB7XG4gIGZpbHRlcjogaW52ZXJ0KDUwJSk7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5tYXJrZG93bi1hbGVydCB7XG4gIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgYm9yZGVyLWxlZnQ6IC4yNWVtIHNvbGlkICMzZDQ0NGQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5tYXJrZG93bi1hbGVydD46Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4ubWFya2Rvd24tYm9keSAubWFya2Rvd24tYWxlcnQ+Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4ubWFya2Rvd24tYm9keSAubWFya2Rvd24tYWxlcnQgLm1hcmtkb3duLWFsZXJ0LXRpdGxlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5tYXJrZG93bi1hbGVydC5tYXJrZG93bi1hbGVydC1ub3RlIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICMxZjZmZWI7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5tYXJrZG93bi1hbGVydC5tYXJrZG93bi1hbGVydC1ub3RlIC5tYXJrZG93bi1hbGVydC10aXRsZSB7XG4gIGNvbG9yOiAjNDQ5M2Y4O1xufVxuXG4ubWFya2Rvd24tYm9keSAubWFya2Rvd24tYWxlcnQubWFya2Rvd24tYWxlcnQtaW1wb3J0YW50IHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICM4OTU3ZTU7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5tYXJrZG93bi1hbGVydC5tYXJrZG93bi1hbGVydC1pbXBvcnRhbnQgLm1hcmtkb3duLWFsZXJ0LXRpdGxlIHtcbiAgY29sb3I6ICNhYjdkZjg7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5tYXJrZG93bi1hbGVydC5tYXJrZG93bi1hbGVydC13YXJuaW5nIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICM5ZTZhMDM7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5tYXJrZG93bi1hbGVydC5tYXJrZG93bi1hbGVydC13YXJuaW5nIC5tYXJrZG93bi1hbGVydC10aXRsZSB7XG4gIGNvbG9yOiAjZDI5OTIyO1xufVxuXG4ubWFya2Rvd24tYm9keSAubWFya2Rvd24tYWxlcnQubWFya2Rvd24tYWxlcnQtdGlwIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICMyMzg2MzY7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5tYXJrZG93bi1hbGVydC5tYXJrZG93bi1hbGVydC10aXAgLm1hcmtkb3duLWFsZXJ0LXRpdGxlIHtcbiAgY29sb3I6ICMzZmI5NTA7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5tYXJrZG93bi1hbGVydC5tYXJrZG93bi1hbGVydC1jYXV0aW9uIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICNkYTM2MzM7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5tYXJrZG93bi1hbGVydC5tYXJrZG93bi1hbGVydC1jYXV0aW9uIC5tYXJrZG93bi1hbGVydC10aXRsZSB7XG4gIGNvbG9yOiAjZjg1MTQ5O1xufVxuXG4ubWFya2Rvd24tYm9keT4qOmZpcnN0LWNoaWxkPi5oZWFkaW5nLWVsZW1lbnQ6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5oaWdobGlnaHQgcHJlOmhhcygrLnplcm9jbGlwYm9hcmQtY29udGFpbmVyKSB7XG4gIG1pbi1oZWlnaHQ6IDUycHg7XG59XG5cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/