﻿/* noinspection CssUnknownTarget */
/* ReSharper disable CssBrowserCompatibility */

:root {

    /*
        RL.  Above the fold is the place to put things that are visible as soon as the page loads, this applies
        to the header, the logo, the favicon, the page title, etc.  Things that are not visible until the user
        interacts with the page.  Things like the navigation menu, the footer, the login form, etc. 
        
        To the brave wanting to do rebranding.  This is the place to start.
        
        Please do not define new classes before checking whether or not there is a class here that fits the bill.
        
        DISCLAIMER:  This is a work in progress.  It is not complete and being constantly updated. 
        
        Rem vs Em
        
        Rem
            rem = root em.  If user default font is 16px then 1rem = 16px ;2 rem = 32px ; 3rem = 48px and so forth.
            Relative to the root (html) font-size.
            Never affected by parent elements.
            
        Em
            em = element em
            em = relative to the current element (or nearest parent with font-size)
            Can be affected by parent elements.
            
        Unfortunately over the years, we have been inconsistent in our use of rem vs em.  
        
        
        The user’s default is whatever they have set in their browser’s settings.
        Every browser has a “default font size” option — usually 16px, unless the user has changed it for accessibility/visibility reasons.
        
        If you dont get any of this then leave styling to the big boys
    */
    
    /* Default font required by Marketing*/
    --font-sans: 'Icona Sans', sans-serif;
    /* Default fallback font(s) */
    --font-mono: ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;

    /* Font weights required by font files */
    --font-weight-thin: 100;
    --font-weight-extralight: 200;
    --font-weight-light: 300;
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --font-weight-extrabold: 800;
    --font-weight-black: 900;

    /* Basics :: fonts */
    --font-colour: #1d1c1c;
    
    /* Erm, the normal font size aka the root size - user default */
    --font-size: 1rem;  
    
    --font-size-factoring-h3: 0.2rem;
    
    --font-size-main-links: 1rem;
    /* Erm, the normal font size */
    
    --font-sizetablet: 1.2em;

    --tracking-tight: -.025em;
    --tracking-wide: .025em;
    --tracking-widest: .1em;
    --leading-tight: 1.25;
    --leading-snug: 1.375;
    --leading-normal: 1.2em;

    /* Colours from marketing */
    --color-plumb: #200028;
    --color-lavender-100: #ecd1fa;
    --color-lavender-200: #ecd1fa;
    --color-lavender-300: #c1a8f5;
    --color-lavender-400: #9c76ef;
    --color-lavender-500: #7a4ce8;
    --color-lavender-600: #753fe9;
    --color-lavender-700: #6f2ee8;
    --color-nebula-100: #c2f0ff;
    --color-nebula-300: #85d8ff;
    --color-nebula-400: #85d8ff;
    --color-nebula-600: #0099d6;
    --color-nebula-700: #0072b8;
    --color-teal-100: #c2f5c2;
    --color-teal-200: #a7f3d0;
    --color-teal-300: #6ee7b7;
    --color-teal-400: #22d895;
    --color-teal-600: #07b176;
    --color-beige-50: #fdfdfc;
    --color-beige-300: #f6f5f2;
    --color-beige-400: #efece5;
    --color-beige-500: #e0ddd6;
    --color-grey-50: #e8e8e8;
    --color-grey-100: #b8b8b8;
    --color-grey-200: #969696;
    --color-grey-300: #666;
    --color-grey-400: #494949;
    --color-grey-800: #000;

    --nass-primary: #6b4fd3;        /* Accent (Nasstar lavender) */
    --nass-track: var(--lavender-800);          /* Track background */
    --nass-text: #333;              /* Default text color */

    --nass-success: #2e7d32;
    --nass-error: #c62828;
    --nass-info: #1e88e5;

    --nass-height: 10px;            /* Progress bar height */
    --nass-radius: 999px;           /* Fully rounded bar */

    /*
    General
    */
    --page-background: var(--plum-light);
    
    /* Login screen */
    --login-background: #f7f6f2;

    /* Misc */
    --left-menu-width: 171px;
    
    /* Line */
    --line-or-separator-colour: var(--beige);

    /* Hyperlinks */
    --hyperlink-colour: var(--lavender-800);
    
    /* Tables an attempt slowly to replace tables.css! */
    --table-header-background: var(--lavender-800);
    --table-header-text-colour: white;
    --table-header-font-size: calc( var(--font-size));
    --table-header-font-weight: 400;
    
    --table-data-background: white;
    --table-data-hover-background: var(--button-background-on-hover);
    --table-data-text-color: var(--font-colour);
    --table-data-font-size: calc( var(--font-size) - 0.1rem);
    
    /* Buttons */
    --button-background: var(--beige-soft);                 /*The background colour of the button*/
    --button-background-on-hover: var(--lavender-600);
    
    --button-internal-background: var(--nass-error);
    /* RL - Keep the below in*/
    /*--button-background-on-active: var(--lavender-800);
    --button-background-on-focus: var(--lavender-800);
    --button-background-on-disabled: var(--beige-soft);
    --button-background-on-selected: var(--lavender-800);
    --button-background-on-selected-hover: var(--lavender-600);
    --button-background-on-selected-active: var(--lavender-800);
    --button-background-on-selected-focus: var(--lavender-800);
    --button-background-on-selected-disabled: var(--beige-soft);
    --button-background-on-selected-checked: var(--lavender-800);
    --button-background-on-selected-checked-hover: var(--lavender-600);
    --button-background-on-selected-checked-active: var(--lavender-800);
    --button-background-on-selected-checked-focus: var(--lavender-800);
    --button-background-on-selected-checked-disabled: var(--beige-soft);*/
    
    --button-text-colour: #000;                             /*Text colour of the button*/
    --button-text-colour-on-hover: white;                   /* Must contrast with background colour --button-background-on-hover */

    --button-border: #9d9292;
    --button-border-on-hover: #9d9292;
    --button-border-width: 2px;
    --button-font-weight-on-hover: normal;

    --control-border: 2px solid #c6c8cb !important;
    --button_shadow: 0 3px 15px rgba(0, 0, 0, 0.3);

    --buttonradius: 5px;
    --button-border-initial: gray;

    --button-icon-hovercolour: #54ad67e0;

    /* Colour of font awesome icon when hovering */
    --button-initial-background: white;

    /* Background of button */
    --button-transition-delay: 0s;

    /* Delay between colour changes.  Keep for now, more placeholder. */
    --button-initial-shadow: 0 2px 3px 0 rgba(0, 0, 0, 0.26);

    /* Another variant of button shadow */
    --button-initial-font-size: 1rem;

    /* Normal font-size of button */
    --button-standard-width: 100px;

    /* A normal button, in a normal work */
    --button-wide-width: 148px;

    /* The width of the navlinks in home screen */
   /* --button-message-alert: #e41515;*/

    /*
        Main menu links, mostly same as buttons
     */
    --button-border-color-main-menu: var(--beige);
    --button-border-color-main-menu-on-hover: var(--lavender-800);
    
    /*Icons*/
    --button-icon-color: black;
    --button-icon-color-on-hover: white;

    --button-icon-color-quick-links: var(--teal-100);

    /*Quick links*/
    --quicklinks-icon-color: var(--lavender-800);
    --quicklinks-icon-color-hover: white;

    --header-background: var(--lavender-800);
    --header-text-colour: white;
    
    --header-background-light: #eeebe4;
    
    --pagetitle_underlinecol: #707070;

    /* Dashboard */
    --dashboard-card-border-width: 2px;
    --height-of-chart-in-dashboard: 150px;

    /* Old styles pre famous 2026 release */    
    /* Border colour of message centre button in home screen */
    --home-panel-header-color: #29A1D9;
    
    /* The colour of the header bar on home screen */
    --home-panel-internal-color: #fbd485;
    
    /* Grids */
    --grid_hover: #c5dafc;
    --placeholder-color: indianred;
    
    /* 
    Alert and message panels 
    */
    /*--message-background-colour: #f8f8f8;*/

    /*
    Logo
    */
    --logo-width: 310px;

    --icc_hoverboxes-colour: 1px solid #756e6e;

    /* hover colour for boxes */
    --icc_transition-for-hover: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
    --icc_speed-box-selected: #0606066e;
    
    /* Big red button */
    --brb-missing-postcode-colour: #ee10f4;
    --brb-not-started: rgba(108, 117, 125, 1);
    --brb-glow-marker-offline: rgba(228, 17, 17, 0.6);
    --brb-glow-marker-offline-50: rgba(228, 17, 17, 0.9);
    --brb-glow-marker-online: rgba(0, 153, 51, 0.6);
    --brb-glow-marker-online-50: rgba(0, 153, 51, 0.9);
    --brb-glow-marker-not-started: rgba(108, 117, 125, 0.6);
    --brb-glow-marker-error-missing-postcode: rgba(238, 16, 244, 0.6);
    
    /* Orange is used for highlighting, hovering */
    --nasstarorange: #ffb548;
    --nasstarblue: #2a269f;
    --nasstargreen: #4eb38d;
    --nasstarpink: #e03b92;
    --filter_nasstarorange: brightness(0.7) sepia(0.9) saturate(9920%) hue-rotate(49deg);
    --filter_nasstarblue: brightness(0.5) sepia(1) saturate(10000%) hue-rotate(200deg);
    --filter_nasstargreen: brightness(0.5) sepia(1) saturate(10000%) hue-rotate(120deg);
    --filter_nasstarpink: brightness(0.5) sepia(1) saturate(10000%) hue-rotate(290deg);
    
    --nasstarwasgreennowblue: #cae3fa;

    /*--nassstarhyperlink: #e03b92;*/
    /* The main color of logo */
    --partner_logo_colour: white;
    --tablerowhovercol: #f2bf1f42;
    --partner_logo_colour_rgb: rgba(255, 255, 255, 1);
    --partner_logo_colour_rgb_for_hover: rgba(237, 207, 71, 0.05);
    --partner_logo_textcolour: white;
    --partner_glow: white;
    
    /* Dashboard*/
    --tileIntroSectionHeight: 60px;
    --tileIntroSectionBottomBorder: 1px solid green;
    --tileIntroSectionFontSize: 14px;
    /*--headerRadius: 12px;*/
    
    /*Availability*/
    --noAvailablity: #991515;
    --productAvailable: #39ab11;
    --dashboardNotSelectedTab: var(--beige-soft);
    --dashboard-button-background: #1d1c1c;

    /* New branding 2025 */
    /* =========================
     CORE BRAND COLOURS
     ========================= */

    /* Lavender */
    --lavender-100: #ECD1FA;
    --lavender-300: #C1A8F5;
    --lavender-400: #9C76EF;
    --lavender-600: #753FE9;
    --lavender-800: #330040;

    /* Nebula */
    --nebula-100: #C2F0FF;
    --nebula-300: #85D8FF;
    --nebula-400: #3DC2FF;
    --nebula-600: #0099D6;
    --nebula-800: #002D42;

    /* Teal */
    --teal-100: #C2F5C2;
    --teal-300: #69E7B1;
    --teal-400: #22D895;
    --teal-600: #07B176;
    --teal-800: #02423C;

    --plum: #200028;
    --plum-light: #ecd1fa52;

    /* =========================
       NEUTRALS
       ========================= */

    --grey: #E0DDD6;
    --beige: #EFECE5;
    --beige-soft: #F6F5F2;
    --white: #FFFFFF;
    --dark: #1B1B1B;


    /* =========================
       BRAND GRADIENT STOPS
       (shared soft background tones)
       ========================= */

    --gradient-top: #F7F6F2;   /* 25% */
    --gradient-mid: #FFF6E5;   /* 70% */


    /* =========================
       BRAND GRADIENTS
       ========================= */

    --gradient-violet: linear-gradient(
            180deg,
            var(--gradient-top) 25%,
            var(--gradient-mid) 70%,
            #DED1FA 100%
    );

    --gradient-roy-hack: linear-gradient(-79deg, var(--gradient-top) 25%, var(--gradient-mid) 70%, #DED1FA 100%);

    --gradient-nebula: linear-gradient(
            180deg,
            var(--gradient-top) 25%,
            var(--gradient-mid) 70%,
            #CCEFFF 100%
    );

    --gradient-teal: linear-gradient(
            180deg,
            var(--gradient-top) 25%,
            var(--gradient-mid) 70%,
            #B4F3C7 100%
    );


    --unready-overlay-bg: rgba(255, 255, 255, 0.55); /* glass veil */
    --unready-blur: 4px;
    --unready-text: #555;          /* text colour */
    --unready-font-size: clamp(0.95rem, 1.5vw, 1.25rem);
    --unready-font-weight: 700;
    --unready-letter-spacing: 0.3px;
    --unready-padding: 12px 16px;  /* inner padding if you want a pill/badge look */
    --unready-radius: 10px;        /* optional: rounded background behind the message */
    --unready-text-bg: transparent;/* set to rgba(255,255,255,.7) for pill */
    --unready-shadow: 0 6px 18px rgba(0,0,0,.08);


    --tooltip-bg: rgba(30, 30, 34, 0.95);
    --tooltip-fg: #ffffff;
    --tooltip-radius: 8px;
    --tooltip-padding: 8px 10px;
    --tooltip-font-size: 0.85rem;
    --tooltip-shadow: 0 8px 24px rgba(0,0,0,0.18);
    --tooltip-offset: 10px;
    --tooltip-transition: 180ms cubic-bezier(.2,.8,.2,1);

    --availability-none-card-width: 130px;
    --availability-some-card-width: 147px;
}



/* Scales smoothly between ~16px and ~20px based on viewport width */
/*
html { 
    font-size: clamp(100%, 1.2vw + 0.5rem, 125%);
}    !* base ~16px - see notes about how default is set *!
*/

@font-face {
    font-family: 'Icona Sans';
    src:
            local('Icona Sans Regular'),
            url('../../fonts/IconaSans-Regular.otf') format('opentype');
    font-weight: var(--font-weight-normal);
    font-style: normal;
}

@font-face {
    font-family: 'GrenettePro';
    src:
            local('Icona Sans Regular'),
            url('../../fonts/GrenettePro.otf') format('opentype');
    font-weight: var(--font-weight-normal);
    font-style: normal;
}

@font-face {
    font-family: 'GrenettePro';
    src:
            local('Icona Sans Semi Bold'),
            url('../../fonts/GrenettePro-SemiBold.otf') format('opentype');
    font-weight: var(--font-weight-semibold);
    font-style: normal;
}

body {
    /* stylelint-disable-next-line font-family-no-missing-generic-family-keyword */
    /*noinspection CssInvalidPropertyValue */
    font-family: var(--font-sans, sans-serif);
    color: black!important;
    padding-top: 0;
}

.UmbracoExt {
    padding-right: 0
}

/*  
    Whole old Umbracco CMS (home screen)

    Contains two columns each of which can contain 1..n panels like News / Partner Manager / Service Status etc
*/
.OldUmbracoSection {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    padding-top: 0;
    margin-top: 0;
}

/*Left panel*/
.OldUmbracoSectionLeft {
    -webkit-box-flex: 1;
    flex-grow: 6;
    flex-shrink: 1;
    flex-basis: 20em;
    vertical-align: top;
    padding: 0 10px 10px 0;
}

.OldUmbracoSectionLeft2 {
    -webkit-box-flex: 0;
    flex-grow: 0;
    flex-shrink: 0;
    padding: 10px;
}

/*Right panel*/
.OldUmbracoSectionRight {
    -webkit-box-flex: 2;
    flex-grow: 2;
    flex-shrink: 2;
    flex-basis: 20em;
    height: 100%;
    padding: 0 0 10px;
}


/* 
    All new flex stuff to control home screen
    RL 23/1/26 - This is gradually been phased out and replaced with other classes so dont use
*/
.flex-navbarbuttons {
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    flex-flow: row wrap;
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
}

.flex-toolbar {
    display: -webkit-box;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    flex-flow: row wrap;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    -webkit-box-align: end;
    -ms-flex-align: end;
    align-items: flex-end;
}

.flex-toolbarwithgap {
    display: -webkit-box;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    flex-flow: row wrap;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    -webkit-box-align: end;
    -ms-flex-align: end;
    align-items: flex-end;
    grid-gap: 10px;
    margin-top: 10px;
}

.flex-toolbar2 {
    display: -webkit-box;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    flex-flow: row wrap;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
}

.quickconnectionext {
    margin-right: 13px
}

.OldUmbracoSectionContent {
    padding: 5px;
}

.quickconnectionsearch {
    width: 95% !important;
}

.button-quick-connection-search {
    padding-left: 0;
    margin-left: -0.6rem;
}

.button-quick-connection-search-margin-break {
    margin-bottom: unset!important;
}

/*
    Partner team Only Needed for home screen
*/
.partnerteam {
    background-color: var(--header-background);
}

.partner-team-email {
    font-size: 0.8em;
    text-decoration: none;
    cursor: pointer;
    text-align: center;
    padding-top: 0;
}


.partner-team-email:hover {
    color: white !important;
    padding-left: 0;
}

.partner-person-role {
    text-align: center;
    background-color: #4a4a4a;
    width: 100%;
    margin-bottom: 0;
    color: white;
    padding-top: 5px;
    -webkit-box-shadow: 1px 2px 3px rgba(0,0,0,.5);
    padding-bottom: 0.5rem;
}

.partner-person-name {
    font-size: 1.1em;
    text-align: center;
    padding: 0.5rem;
    color: white;
    font-weight: 600;
}

.partnerteam:hover {
    border: 1px #cccccc;
    border-radius: 5%;
    -webkit-box-shadow: 1px 2px 3px rgba(0,0,0,.5);
    box-shadow: 1px 2px 3px rgba(0,0,0,.5);
}

/*
    End :: Partner team Only Needed for home screen
*/

.OldUmbracoQuickLinks {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    justify-content: space-evenly;
    grid-row-gap: 0.1rem;
    grid-column-gap: 0.1rem;
}

.OldUmbracoQuickLinksItem {
    text-align: center;
    padding: 0.5rem;
}

/* Make container items hover */
.OldUmbracoQuickLinksItem:hover .dashboard-quick-link {
    color: #000;
}

.dashboard-quick-link {
    display: inline-block;
    text-decoration: none;
    color: #000;
    position: relative;
    border-radius: 5px;
    border: none;
    text-align: center;
    cursor: pointer;
    padding: 0.7rem;
    /*width: 120px!important;*/
}
/* When the parent link is hovered, change the icon color */
.dashboard-quick-link:hover .dashboard-quick-link-icon {
    color: var(--lavender-600) !important;
    /*font-weight: var(--button-font-weight-on-hover);
    filter: drop-shadow(0 0 2px black);*/
}

.dashboard-quick-link-icon {
    width: 100% !important;
    text-align: center !important;
    padding-bottom: 5px !important;
    color: var(--quicklinks-icon-color);
}

.dashboard-quick-link-icon:hover {
    color: var(--quicklinks-icon-color-hover);
}


/* Connection quick search */
.telephoneSupport {
    /* padding-top: 5px; */
    width: 12rem;
}

.highlightNumber {
    color:#e03b92;
}

/*Quick links*/
.UmbracoQuickLinkItem {
    min-width: 12ch !important;
    min-height: 34px !important;
    margin-top: 8px !important;
    margin-bottom: 8px !important;
    font-size: 1.1em !important;
    padding-top: 10px;
    text-align: center;
    width: 120px !important;
}

.OldUmbracoQuickLinks > div {
    padding: 5px;
    width: 120px !important;
}


.WelcomeMessage {
    width: 100%;
    background-color: var(--header-background);
    color: var(--header-text-colour);
    padding: 3px;
    margin-top: -1rem;
    margin-bottom: 0.3rem;
}

.hideme {
    display: none;
}

.hidemedirectforce {
    display: none !important;
}

.showme {
    display: block;
}

.displaytable {
    display: table
}

.textcenter {
    text-align: center;
}


/*
.Impersonator {
    background-color: var(--pagebackground);
    color: var(--white);
    float: left;
    height: 18px;
    margin-top: 2px;
    -webkit-animation-name: darthforimpersonating;
    animation-name: darthforimpersonating;
    -webkit-animation-duration: 5s;
    animation-duration: 5s;
    -webkit-animation-iteration-count: 2;
    animation-iteration-count: 2;
    border: 1px solid var(--nasstargreen);
    padding: 4px;
    border-radius: 5px;
    font-size: 0.9em;
}

@-webkit-keyframes darthforimpersonating {
    from {
        -webkit-box-shadow: 0 0 7px 3px var(--nasstargreen), 0 0 2px 2px var(--nasstargreen);
        box-shadow: 0 0 7px 3px var(--nasstargreen), 0 0 2px 2px var(--nasstargreen);
        color: white;
        border-radius: 5px;
    }

    25% {
        -webkit-box-shadow: 0 0 14px 3px var(--nasstargreen), 0 0 3px 2px var(--nasstargreen);
        box-shadow: 0 0 14px 3px var(--nasstargreen), 0 0 3px 2px var(--nasstargreen);
        color: var(--nasstarorange);
    }


    50% {
        -webkit-box-shadow: 0 0 36px 3px var(--nasstargreen), 0 0 8px 2px var(--nasstargreen);
        box-shadow: 0 0 36px 3px var(--nasstargreen), 0 0 8px 2px var(--nasstargreen);
        color: var(--nasstarorange);
    }

    75% {
        -webkit-box-shadow: 0 0 14px 3px var(--nasstargreen), 0 0 3px 2px var(--nasstargreen);
        box-shadow: 0 0 14px 3px var(--nasstargreen), 0 0 3px 2px var(--nasstargreen);
        color: var(--nasstarorange);
    }

    to {
        -webkit-box-shadow: 0 0 3px 3px var(--nasstargreen), 0 0 1px 2px var(--nasstargreen);
        box-shadow: 0 0 3px 3px var(--nasstargreen), 0 0 1px 2px var(--nasstargreen);
        color: white;
        border-bottom: var(--partner_logo_colour) 1px solid !important;
    }
}

@keyframes darthforimpersonating {
    from {
        -webkit-box-shadow: 0 0 7px 3px var(--nasstargreen), 0 0 2px 2px var(--nasstargreen);
        box-shadow: 0 0 7px 3px var(--nasstargreen), 0 0 2px 2px var(--nasstargreen);
        color: white;
        border-radius: 5px;
    }

    25% {
        -webkit-box-shadow: 0 0 14px 3px var(--nasstargreen), 0 0 3px 2px var(--nasstargreen);
        box-shadow: 0 0 14px 3px var(--nasstargreen), 0 0 3px 2px var(--nasstargreen);
        color: var(--nasstarorange);
    }


    50% {
        -webkit-box-shadow: 0 0 36px 3px var(--nasstargreen), 0 0 8px 2px var(--nasstargreen);
        box-shadow: 0 0 36px 3px var(--nasstargreen), 0 0 8px 2px var(--nasstargreen);
        color: var(--nasstarorange);
    }

    75% {
        -webkit-box-shadow: 0 0 14px 3px var(--nasstargreen), 0 0 3px 2px var(--nasstargreen);
        box-shadow: 0 0 14px 3px var(--nasstargreen), 0 0 3px 2px var(--nasstargreen);
        color: var(--nasstarorange);
    }

    to {
        -webkit-box-shadow: 0 0 3px 3px var(--nasstargreen), 0 0 1px 2px var(--nasstargreen);
        box-shadow: 0 0 3px 3px var(--nasstargreen), 0 0 1px 2px var(--nasstargreen);
        color: white;
        border-bottom: var(--partner_logo_colour) 1px solid !important;
    }
}
*/



.environment {
    padding: 5px 20px;
    font-weight: bold;
    text-align: center;
    /*position: fixed;*/
    top: 0;
    z-index: 9999;
    width: 100%;
    opacity: 0.7;
    margin-bottom: 10px;
    display: block;
}

.environment.dev {
    background-color: #50ffb0;
    border: 1px solid #d2e5f9;
    color: black;
    padding: 2px;
    border-bottom-right-radius: 5px;
    border-bottom-left-radius: 5px;
}

.environment.uat {
    background-color: #f90;
    color: #000;
}



/*DEFUNCT NOW*/
/*.message {
    background-color: var(--message-background-colour);
    border: 1px solid #CCC;
    padding: 8px;
    -webkit-box-shadow: var(--button_shadow);
    box-shadow: var(--button_shadow);
    border-radius: var(--buttonradius);
}

.error {
    background-color: #fc4141;
    border-color: #F00;
    -webkit-box-shadow: var(--button_shadow);
    box-shadow: var(--button_shadow);
    border-radius: var(--buttonradius);
}

.warning {
    background-color: #FCEBB6;
    border-color: #FC0;
    -webkit-box-shadow: var(--button_shadow);
    box-shadow: var(--button_shadow);
    border-radius: var(--buttonradius);
}

.info {
    background-color: #CBF1FE;
    border-color: #79BCFF;
    -webkit-box-shadow: var(--button_shadow);
    box-shadow: var(--button_shadow);
    border-radius: var(--buttonradius);
}

.good {
    background-color: #D7E9C1;
    border-color: #8AB33D;
    -webkit-box-shadow: var(--button_shadow);
    box-shadow: var(--button_shadow);
    border-radius: var(--buttonradius);
}*/


.logo {
    float: left;
    height: 60px;
    width: var(--logo-width);
    display: block;
    text-indent: -99999px;
    background-size: contain!important;   /* scales image to fit entirely */
    mix-blend-mode: multiply!important;
}

.logobusiness {
    float: left;
    height: 60px;
    display: block;
    text-indent: -99999px;
    background-size: contain!important;   /* scales image to fit entirely */
    mix-blend-mode: multiply!important;
}

.login .logo {

    margin: 10px auto 20px auto;
    float: none;
    width: 300px;          /* container width */
    height: 100px;         /* add a height so the container has space */
    background: url('../../img/brand-nasstar/nasstar-direct-logo_2026.png') center no-repeat;
    background-size: contain!important;   /* scales image to fit entirely */
    /*Fakes transparent background*/
    mix-blend-mode: multiply!important;
}


.awesomeicon {
    text-align: center;
    /*width: 100%;*/
    padding-bottom: 5px;
    padding-right: 5px;
}

/* Viewport is for mobiles up until an iPad */
@media screen and (min-width: 50px) and (max-width: 993px) {
    .flex-navbarbuttons {
        display: -webkit-box;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        flex-flow: row wrap;
        -webkit-box-pack: start;
        -ms-flex-pack: start;
        justify-content: flex-start;
        -webkit-box-align: start;
        -ms-flex-align: start;
        align-items: flex-start;
    }

    .login .wrapper {
        width: 260px;
    }

    .flex-toolbar {
        display: -webkit-box;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        flex-flow: row wrap;
        -webkit-box-pack: start;
        -ms-flex-pack: start;
        justify-content: flex-start;
        -webkit-box-align: start;
        -ms-flex-align: start;
        align-items: flex-start;
    }

    .right-column {
        /*margin-top: 15px;*/
        float: none;
        width: 100%;
    }


    .button2021 {
        min-width: 8ch !important;
        min-height: 34px !important;
        margin-top: 8px !important;
        margin-bottom: 8px !important;
        font-size: 1.1em !important;
        padding-top: 10px;
        text-align: center;
        width: 12ch !important;
        /*margin-left: 10px !important;*/
    }

    /*.awesomeiconreverse {
    width: 8ch !important;
    text-align:center;
            }*/
    .navigation_main {
        width: 12ch !important;
    }


    .WelcomeMessage {
        text-align: center !important;
    }

    #div_textbox_search input[type=button] {
        margin-top: -25px !important;
    }

    /* Search button top right of portal */
    .quickconnectionsearch {
        height: 24px !important;
        width: 20vw;
    }

    .nomobile {
        display: none !important;
    }


    /* Hack to override font awesome large for use on smaller devices */
    .fa-lg {
        font-size: 2em !important;
    }

    .awesomeicon {
        text-align: center;
        width: 100%;
        padding-bottom: 5px;
        padding-right: 5px;
    }

    .awesomeicongood {
        color: #199719;
    }

    .awesomeiconwarn {
        color: #f11c1c;
    }

    .awesomeiconamber {
        color: #e9d418;
    }

    .button2021wide {
        width: 180px !important;
    }

    .button2021-home-wide {
        width: 8ch !important;
        min-width: 10ch !important;
        min-height: 34px !important;
        padding-top: 10px;
    }

    .ConnTable td {
        font-size: var(--font-sizetablet) !important;
    }

    .orderproductsscreen_product_section {
        padding: 15px;
        border: 1px solid black;
        -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
        box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
        width: 100%;
    }
}

@media screen and (min-width: 50px) and (max-width: 340px) {

    /* Class for font awesome icons (base class) */
    .displayNoText {
        visibility: hidden !important;
    }
}


/* Class for putting shadow on font awesome icon */
.awesomeshadow {
    text-shadow: 2px 2px 1px #cccccc;
}

.awesomeiconnopad {
    padding-right: 0px !important;
}

.WelcomeMessage {
    text-align: center;
}


@font-face {
    font-family: "Font Awesome 5 Brands";
    font-style: normal;
    font-weight: 400;
    font-display: block;
    font-display: swap;
    src: url(/css/font-awesome/webfonts/fa-brands-400.eot);
    src: url(/css/font-awesome/webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"), url(/css/font-awesome/webfonts/fa-brands-400.woff2) format("woff2"), url(/css/font-awesome/webfonts/fa-brands-400.woff) format("woff"), url(/css/font-awesome/webfonts/fa-brands-400.ttf) format("truetype"), url(/css/font-awesome/webfonts/fa-brands-400.svg#fontawesome) format("svg")
}

@font-face {
    font-family: "Font Awesome 5 Free";
    font-style: normal;
    font-weight: 900;
    font-display: block;
    font-display: swap;
    src: url(/css/font-awesome/webfonts/fa-solid-900.eot);
    src: url(/css/font-awesome/webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"), url(/css/font-awesome/webfonts/fa-solid-900.woff2) format("woff2"), url(/css/font-awesome/webfonts/fa-solid-900.woff) format("woff"), url(/css/font-awesome/webfonts/fa-solid-900.ttf) format("truetype"), url(/css/font-awesome/webfonts/fa-solid-900.svg#fontawesome) format("svg")
}

.fa,
.fas {
    font-family: "Font Awesome 5 Free";
    font-weight: 900
}

.fab {
    font-family: "Font Awesome 5 Brands";
    font-weight: 400
}

.fa,
.fab,
.fad,
.fal,
.far,
.fas {
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    display: inline-block;
    font-style: normal;
    font-variant: normal;
    text-rendering: auto;
    line-height: 1
}

.fa-lg {
    font-size: 1.33333em;
    line-height: .75em;
    vertical-align: -.0667em
}

.fa-xs {
    font-size: .75em
}

.fa-sm {
    font-size: .875em
}

.fa-1x {
    font-size: 1em
}

.fa-2x {
    font-size: 2em
}

.fa-3x {
    font-size: 3em
}

.fa-4x {
    font-size: 4em
}

.fa-5x {
    font-size: 5em
}

.fa-6x {
    font-size: 6em
}

.fa-7x {
    font-size: 7em
}

.fa-8x {
    font-size: 8em
}

.fa-9x {
    font-size: 9em
}

.fa-10x {
    font-size: 10em
}

.fa-fw {
    text-align: center;
    width: 1.25em
}

.fa-book-reader:before {
    content: "\f5da"
}

.fa-boxes:before {
    content: "\f468"
}

.fa-building:before {
    content: "\f1ad"
}

.fa-buromobelexperte:before {
    content: "\f37f"
}

.fa-cart-plus:before {
    content: "\f217"
}

.fa-comment:before {
    content: "\f075"
}

.fa-database:before {
    content: "\f1c0"
}

.fa-ethernet:before {
    content: "\f796"
}

.fa-file-invoice:before {
    content: "\f570"
}

.fa-globe:before {
    content: "\f0ac"
}

.fa-home:before {
    content: "\f015"
}

.fa-linode:before {
    content: "\f2b8"
}

.fa-microphone:before {
    content: "\f130"
}

.fa-network-wired:before {
    content: "\f6ff"
}
.fa-concierge-bell:before{content:"\f562"}
.fa-people-arrows:before {
    content: "\e068"
}

.fa-plug:before {
    content: "\f1e6"
}

.fa-project-diagram:before {
    content: "\f542"
}

.fa-search:before {
    content: "\f002"
}

.fa-shopping-basket:before {
    content: "\f291"
}

.fa-sign-out-alt:before {
    content: "\f2f5"
}

.fa-ticket-alt:before {
    content: "\f3ff"
}
.fa-user:before {
    content: "\f007";
}
.fa-users-cog:before {
    content: "\f509"
}

.fa-watchman-monitoring:before {
    content: "\e087"
}

.fa-address-book:before {
    content: "\f2b9";
}

/* Dashboard buttons*/
.fa-angle-up:before {
    content: "\f106";
}

.fa-clipboard:before {
    content: "\f328";
}

.fa-redo:before {
    content: "\f01e";
}

.fa-expand:before {
    content: "\f065";
}

.fa-arrow-circle-up:before {
    content: "\f0aa";
}

.fa-file-csv:before {
    content: "\f6dd";
}

.fa-compress:before {
    content: "\f066";
}

.fa-clipboard-list:before {
    content: "\f46d";
}

.fa-sliders-h:before {
    content: "\f1de";
}

.fa-stethoscope:before {
    content: "\f0f1";
}
.fa-tools:before {
    content: "\f7d9";
}

.fa-list-alt:before {
    content: "\f022";
}

.fa-bezier-curve:before {
    content: "\f55b";
}
.fa-phone-slash:before {
    content: "\f3dd";
}

.fa-key:before {
    content: "\f084";
}

.fa-calendar-alt:before {
    content: "\f073";
}

.fa-tags:before {
    content: "\f02c";
}
.fa-toolbox:before {
    content: "\f552";
}
.fa-hubspot:before {
    content: "\f3b2";
}
.fa-book-open:before {
    content: "\f518";
}
.fa-linode:before {
    content: "\f2b8";
}
.fa-calendar-o:before {
    content: "\f133";
}

.fa-terminal:before {
    content: "\f120";
}

.r-tabs .r-tabs-nav .r-tabs-anchor {
    padding: 7px 2px !important;
    background-color: var(--dashboardNotSelectedTab);
}

.r-tabs .r-tabs-tab {
    margin: -3px;
    border-top-right-radius: 5px !important
}

.r-tabs .r-tabs-nav .r-tabs-state-active .r-tabs-anchor {
    border-bottom: 4px solid #808080;
    height: 25px;
    border-top-right-radius: 5px !important
}


.deviceinfo {
    float: left;
    background-color: #deefff;
    color: black;
    border-radius: 5px;
    padding: 2px;
    font-size: 0.9em;
}

/* typical phone screen resolution */
@media only screen and (max-width : 667px) {
}

.mobilealert {
    display: none;
    width: 0;
    height: 0;
}

.mobilealertshow {
    display: inline-block;
    width: 200px;
    height: 300px;
    position: fixed;
    background: radial-gradient(ellipse at center, #deefff 0%, #98bede 100%);
    color: black;
    top: 50%;
    left: 50%;
    margin-top: -100px;
    margin-left: -100px;
    z-index: 10000;
    padding: 15px;
    text-align: center;
    font-size: 2em;
    -webkit-animation: animatemobile 0s ease-in 5s;
    animation: animatemobile 0s ease-in 5s;
    animation-timing-function: linear;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
    border-radius: 5px !important;
    opacity: 1;
}

.thephone {
    width: 150px;
    animation: rotation 5s;
}

/* typical phone screen resolution */
@media only screen and (max-width : 667px) and (orientation : portrait) {
}

@keyframes rotation {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(90deg);
    }
}

@keyframes rotateyourdevice {
    from {
    }

    25% {
        opacity: 0.8;
    }


    50% {
        opacity: 0.6;
    }

    75% {
        opacity: 0.3;
    }

    to {
        opacity: 0;
        z-index: -1;
        visibility: hidden;
        width: 0;
        height: 0;
    }
}

@-webkit-keyframes animatemobile {
    from {
    }

    25% {
        opacity: 0.8;
    }


    50% {
        opacity: 0.6;
    }

    75% {
        opacity: 0.3;
    }

    to {
        opacity: 0;
        z-index: -1;
        visibility: hidden;
        width: 0;
        height: 0;
    }
}

@keyframes animatemobile {
    from {
    }

    25% {
        opacity: 0.8;
    }


    50% {
        opacity: 0.6;
    }

    75% {
        opacity: 0.3;
    }

    to {
        opacity: 0;
        z-index: -1;
        visibility: hidden;
        width: 0;
        height: 0;
    }
}


/* landscape orientation */
@media only screen and (min-width : 375px) and (max-width : 667px) and (orientation : landscape) {
}

/* portrait orientation */
@media only screen and (min-width : 375px) and (max-width : 667px) and (orientation : portrait) {
}

/* typical tablet screen resolution */
@media only screen and (max-width : 834px) {
}

/* landscape orientation */
@media only screen and (min-width : 768px) and (max-width : 834px) and (orientation : landscape) {
}

/* portrait orientation */
@media only screen and (min-width : 768px) and (max-width : 834px) and (orientation : portrait) {
}

@media only screen and (min-width : 1224px) {
}


.hardDashboardRefresh {
    border-radius: 1rem;
    color: black;
    padding: 0.5rem 1rem 0;
    /*float: right!important;*/
    background-color: var(--beige);
    margin-bottom: 1rem!important;
    height: 2em;
    opacity: 0.9;
    border: 2px solid #f3caca !important;
  /*  width: 10rem;*/
}
/*
.hardDashboardRefresh:hover {
    background-color: var(--button-background-on-hover);
}
*/

/*Click here to refresh text*/
.hardRefreshOfDashboard {
    color: var(--button-foreground)!important;
    cursor: pointer;
}
.hardDashboardRefreshText {
    color: var(--font-colour);
    font-size:var(--font-size-main-links);
}

.quicksearchicon {
    background: url('../../img/icons/16/search2.png') 5px 5px no-repeat;
    border: none;
    width: 28px;
    height: 28px;
    text-indent: -9999px;
    cursor: pointer;
    margin-left: 1rem;
}
a#hardRefreshOfDashboard {
    color: #d1d1f7;
    text-transform: none;
    text-decoration: underline;
}

a#hardRefreshOfDashboard:hover {
    cursor: pointer;
}

/* Layout */
.OldUmbracoSectionHeaderDashboard {
    margin-bottom: 0;
    padding-left: 13px;
    padding-top: 0.5rem;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
    letter-spacing: 0.5px;
}
.OldUmbracoSectionContentAvailability {
    -moz-border-radius-bottomleft: 5px;
    -moz-border-radius-bottomright: 5px;
    /* background-color: #c0dcff; */
    margin: 5px;
    border-radius: 5px;
    padding: 3px;
}


:where(.OldUmbracoSectionBox, .AAndBEnds) {
    --border-width: var(--dashboard-card-border-width, 1px);
    --border-start: #ffffff;
    --border-mid:   #eef2f4; /* gentle mid tone to soften the falloff */
    --border-end:   #d6d8d9;

    position: relative;
    border-radius: 8px;
    padding-left: 1rem;
    padding-right: 1rem;

    border: var(--border-width) solid transparent;

    /* Top layer: inner content background */
    /* Then: subtle highlight from top-right (linear + radial) */
    /* Bottom: main radial border from top-left */
    background:
        /* content fill */
            linear-gradient(#fff, #fff) padding-box,

                /* highlight sweep along the top edge, stronger near top-right */
            linear-gradient(to left, rgba(255,255,255,0.55), rgba(255,255,255,0) 40%) border-box,

                /* soft round highlight tucked in the top-right corner */
            radial-gradient(60% 60% at 100% 0%,
            rgba(255,255,255,0.5) 0%,
            rgba(255,255,255,0.0) 70%
            ) border-box,

                /* main border gradient radiating from top-left */
            radial-gradient(farthest-corner at top left,
            var(--border-start) 0%,
            var(--border-mid)   45%,
            var(--border-end)   100%
            ) border-box;
}

.OldUmbracoSectionBoxNoBorder {
    border: none!important;
}

.OldUmbracoSectionBoxDashboardTile {
    margin-bottom: 20px;
    border-top-left-radius: 1rem;
    padding-left: 1rem ;
}

.DashflexibleContainer {
    display: inline-flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    width: 100%;
    gap: 12px;
}

.dashPaddingOverride {
    display: block;
    padding-left: 0;
    padding-right: 0;
}

/* Toolbar for dashboard tiles */
.dashboardTileHeaderContainer {
    display: inline-flex;
    width: 100%;
    margin-bottom: 0.5rem;
    padding-bottom: 0.5rem;
    background-color: var(--header-background);
    color: var(--header-text-colour);
    background-image: linear-gradient(
            to right,
            color-mix(in srgb, var(--header-background) 85%, #0000) 0%, /* slightly stronger at top */
            #ffffff 100%
    );
    margin-left: -1.1rem;
    border-top-left-radius: clamp(8px, 4%, 7px);
    border-bottom-left-radius: 0;
}

.dashboardTileHeaderContainerRight {
    margin-left: 0;
}


/* Header controls for tiles (copy to clipboard, expand etc) */
.dashboardTileHeaderControlsSection {
    margin-left: auto;
}

/* Text for the header */
.dashboardTileHeaderControlsTextSection {
    flex: 1;
}

/* Not all tiles have buttons, this just allows for separation of concerns */
.dashboardTileHeaderControlsTextSectionNoControls {
    flex: 1;
}

.tileIntroWrapper {
    color: black;
}

.flex-toolbarrightaligned {
    justify-content: flex-end;
}

.flex-toolbar-filtercomp {
    margin: 15px;
    /* width: 140px!important; */
    vertical-align: top;
    grid-auto-rows: 1fr;
    margin-bottom: 0;
}

.AvailabilityFormTile {
    display: inline-flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    width: 100%;
    gap: 6px;
}

.AvailabilityFormTile > div {
    display: inline-flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-start;
    width: 100%;
    gap: 12px;
}

.availabilityControl {
    font-size: 1em;
    padding: 5px;
    border-radius: 5px;
    border: var(--control-border);
    width: 162px;
    height: 24px;
}

.availScreen1 {
    display: inline-flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-start;
    width: 100%;
    gap: 2px;
}

.availScreen1UserInput {
    width: 100%;
}

.chartWrapperAvailability {
    position: relative;
    /* height: 150px; */
    background-color: white;
    border-radius: 6px;
    color: black;
    padding: 10px;
}

/* new dropdown for authority switching */
/* Basic styling for dropdown container */
.xdropdown {
    position: relative;
    width: 200px;
    padding-top: 0;
    margin-right: 6px;
}

.xdropdown button {
    width: 100%;
    padding: 10px;
    font-size: 16px;
    background-color: var(--teal-600);
    color: white;
    border-radius: 5px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border: 2px solid beige;
    opacity: 0.7;
    font-weight: 400;
}

.xdropdown button:hover {
    background-color: #0056b3;
}

.xdropdown button::after {
    content: '\25BC';
    /* Unicode for down arrow */
    font-size: 12px;
    margin-left: 10px;
    /* Adds spacing between text and arrow */
}

.authority-dropdown-content {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    background-color: white;
    border: 1px solid #ccc;
    border-radius: 5px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    z-index: 1000;
}

.authority-dropdown-content div {
    padding: 10px;
    cursor: pointer;
    color: #333;
    border-bottom: 1px solid #f1f1f1;
}


.authority-dropdown-content div:last-child {
    border-bottom: none;
}

.authority-dropdown-content div:hover {
    background-color: #f8f9fa;
}


.newsItemsBullet {
    color: black;
    padding-left: 2rem;
    list-style: disc
}

/* From navigation.css */
.navigation_main {
    padding-left: 0;
    padding-top: 0;
    width: var(--left-menu-width);
}

.navigation_main ul ul {
    margin-left: 10px;
}

.navigation_main li {
    display: block;
    position: relative;
}

.DashFull {
    width: 100%;
}

.fontRadio {
    color:black!important
}

.Dash2 {
    width:48%
}

/* Fundamentals - layout */
.basic-flex-full-width {
    width:100%
}

.basic-flex-align-start {
    display: flex;
    flex-flow: row wrap;
    align-items: flex-start;
}

.basic-flex-align-end {
    display: flex;
    flex-flow: row wrap;
    align-items: flex-end;
}

.basic-flex-column-gap-1-rem {
    column-gap: 1rem;
}

.basic-flex-row-gap-1-rem {
    row-gap: 1rem;
}
.full-width-view-port {
    width: 100vw;
}


.col-1-24  { flex: 0 0 auto; width: 4.166666%; }
.col-2-24  { flex: 0 0 auto; width: 8.333333%; }
.col-3-24  { flex: 0 0 auto; width: 12.5%; }
.col-4-24  { flex: 0 0 auto; width: 16.666666%; }
.col-5-24  { flex: 0 0 auto; width: 20.833333%; }
.col-6-24  { flex: 0 0 auto; width: 25%; }
.col-7-24  { flex: 0 0 auto; width: 29.166666%; }
.col-8-24  { flex: 0 0 auto; width: 33.333333%; }
.col-9-24  { flex: 0 0 auto; width: 37.5%; }
.col-10-24 { flex: 0 0 auto; width: 41.666666%; }
.col-11-24 { flex: 0 0 auto; width: 45.833333%; }
.col-12-24 { flex: 0 0 auto; width: 50%; }
.col-13-24 { flex: 0 0 auto; width: 54.166666%; }
.col-14-24 { flex: 0 0 auto; width: 58.333333%; }
.col-15-24 { flex: 0 0 auto; width: 62.5%; }
.col-16-24 { flex: 0 0 auto; width: 66.666666%; }
.col-17-24 { flex: 0 0 auto; width: 70.833333%; }
.col-18-24 { flex: 0 0 auto; width: 75%; }
.col-19-24 { flex: 0 0 auto; width: 79.166666%; }
.col-20-24 { flex: 0 0 auto; width: 83.333333%; }
.col-21-24 { flex: 0 0 auto; width: 87.5%; }
.col-22-24 { flex: 0 0 auto; width: 91.666666%; }
.col-23-24 { flex: 0 0 auto; width: 95.833333%; }
.col-24-24 { flex: 0 0 auto; width: 100%; }

.col-remainder {
    flex: 1 1 auto;
    min-width: 0; /* Prevent overflow */
}

/* Override for login background colour */
.webp .login {
    background-color: var(--login-background)!important;

}

.no-webp .login {
    background-color: var(--login-background)!important;
}


/*The wrapper around the login screen*/
.login .inner {
    background-color: var(--login-background)!important;
    border-left: 1px solid var(--login-background);
    border-top: 1px solid var(--login-background);
    border-right: 2px solid var(--login-background);
    border-bottom: 2px solid var(--login-background);
    border-radius: 16px !important;
    z-index: 10000;
}

.module-login {
    background-color: var(--login-background)!important;
    color: white;
}

.module-outer-loginonly {
    background-color: var(--login-background)!important;
    color: black !important;
}

.module-content-login {
    background-color: var(--login-background)!important;
    color: black!important;
}

.base-button, .logOnBtn {
    background-color: var(--button-background)!important;
    color: var(--button-text-colour)!important;
}

.NoticeForCookies {
    color: black;
    margin-top: 12px;
    margin-bottom: 0;
    font-size: 0.8em;
}

.bold-text-label {
    font-weight: bold;
}

.fudgeforsearchboxabsolute {
    position: absolute;
    margin-top: 3rem;
}

/* Main menu links main-menu-link */
.main-menu-link-portal {
    box-shadow: none;
    padding-left: 0;
    padding-top:1rem;
    padding-bottom: 1rem;
    margin-left: 0!important;
    color: black!important;
    border-top: var(--button-border-width) solid white!important;
    border-bottom: var(--button-border-width) solid var(--button-border-color-main-menu)!important;
    border-radius: 0 !important;
    /*font-family: 'Icona Sans', sans-serif;*/
    font-size: var(--font-size-main-links) !important;
    cursor: pointer;
    width: 100%!important;
}
.main-menu-link-portal:hover {
    color: white!important;
}

.main-menu-link-portal-to-be-removed {
    opacity: 0.5;
    cursor:not-allowed;
}

.main-sub-menu-link-portal {
    box-shadow: none;
    padding-left: 0;
    padding-top:1rem;
    padding-bottom: 1rem;
    margin-left: 0!important;
    color: black!important;
    border-top: var(--button-border-width) solid white!important;
    border-bottom: var(--button-border-width) solid var(--button-border-color-main-menu)!important;
    border-radius: 0 !important;
    /*font-family: 'Icona Sans', sans-serif;*/
    font-size: var(--font-size-main-links) !important;
}
/* Link hover (fixed the var(...) typo for border-top) */
.main-menu-link-portal:hover {
    background-color: var(--button-background-on-hover) !important;
    border-top: var(--button-border-width) solid var(--button-border-color-main-menu-on-hover) !important;
    border-bottom: var(--button-border-width) solid var(--button-border-color-main-menu-on-hover) !important;
    font-weight: var(--button-font-weight-on-hover);
}

.button2021-home-nested-link {
    background-color: white!important;
    font-size: calc(var(--font-size) - 0.1rem)!important;
    padding-left:0.5rem!important;
    color: var(--font-colour)!important;
    width: 100%!important;
}
/* Navigation main menu */
.navigation_main ul li a {
    text-decoration: none;
    margin: 0 0 5px;
    padding: 7px;
    font-size: 0.9em;
    display: block;
    position: relative;
    color: white;
    box-shadow: none;
    margin-top: 0!important;
    margin-bottom: 0!important;
}

.nice-text-box {
    font-size: 1em!important;
    padding: 5px!important;
    border-radius: 5px!important;
    border: var(--control-border);
    width: 95% !important;
    height: 22.5px!important;
}
/* Standard lovely button */
.button2021 {
    border-radius: var(--buttonradius);
    margin-right: 3px;
    margin-bottom: 6px;
    padding: 7px 14px;
    display: inline-block;
    text-decoration: none;
    position: relative;
    background-color: var(--button-background)!important;
    color: var(--button-text-colour)!important;
    border: var(--button-border-width) solid var(--button-border) !important;
}

.button2021:hover {
    background-color: var(--button-background-on-hover)!important;
    color: var(--button-foreground-on-hover)!important;
    font-weight: var(--button-font-weight-on-hover);
    border: var(--button-border-width) solid var(--button-border-on-hover) !important;
}

.button2021-order-page {
    width: 200px
}
.button2021-log-on-screen {
    width: 100% !important;
}
.button2021-log-on-screen:hover {
    font-weight: var(--button-font-weight-on-hover);
}

.button2021fixednotext {
    margin-top: 0;
    float: right;
}
/*
    Special buttons for dashboard headers 
*/
.button2021dashboard {
    background-color: var(--button-background);
    font-weight: 600;
    border-radius: 5px;
    padding: 5px;
    margin-top: 5px;
    float: right;
    margin-right: 6px;
    display:none;
    color: var(--button-foreground)!important;
    border: var(--button-border-width) solid var(--button-border) !important;
}

.button2021dashboard:hover {
    background-color: var(--button-background-on-hover);
    color: var(--button-foreground)!important;
    border: var(--button-border-width) solid var(--button-border-on-hover) !important;
    font-weight: var(--button-font-weight-on-hover);
    cursor: pointer;
}


.awesomeicondashboard {
    color: var(--button-icon-color)!important;

}


.awesomeicondashboard:hover {
    color: var(--nasstarorange);
}

/* When the parent link is hovered, change the icon color */
.button2021dashboard:hover .awesomeicondashboard {
    color: var(--button-icon-color-on-hover) !important;
    filter: drop-shadow(0 0 2px black);
}
.awesomeicon {
    color: var(--button-icon-color)!important;
}


.awesomeicon:hover {
    color: var(--button-background-on-hover)!important;

}


/* When the parent link is hovered, change the icon color */
.button2021:hover .awesomeicon {
    color: var(--button-icon-color-on-hover) !important;
    /*filter: drop-shadow(0 0 2px black);*/
}


/* Main menu */
.awesome-icon-navigation {
    color: var(--button-icon-color)!important;
    padding-right: 0.6rem;
}

.awesome-icon-navigation:hover {
    color: var(--button-icon-color-on-hover)!important;
}


/* Icon base */
.awesome-icon-navigation {
    color: var(--button-icon-color) !important;
    padding-right: 0.6rem;
    transition: color .15s ease-in-out; /* smooth change */
}

/* When the parent link is hovered, change the icon color */
.main-menu-link-portal:hover .awesome-icon-navigation {
    color: var(--button-icon-color-on-hover) !important;
}
/*.main-menu-link-portal:hover { color: var(--button-text-color-on-hover) !important; }*/

.button2021-special-override {
    margin-top: 0;
    margin-right: 1rem;
}


.main-menu-padding {
    padding-left: 0!important;
    padding-top: 1rem;
    border-right: 3px solid var(--line-or-separator-colour)!important;
}

/* Progress */
.progressfordash {
    position: relative;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);

    z-index: 100000;
    float: right;
    color:whitesmoke;
}
.progressBackground {
    background: var(--teal-800)!important;
    padding: 10px;
    border-radius: 10px;
    border: 1px solid #3ab3dd !important;
    margin: 14px 14px 0;
    box-shadow: 0 0 10px 0 #3498db inset, 0 0 10px 2px #3498db
}

/* Accordion home screen */
#accordion .ui-accordion-header.ui-state-active {
    background-color: var(--button-background) !important;
    color:var(--button-foreground);
    opacity: 0.9;
}

#accordion .ui-accordion-header:hover {
    background-color: var(--button-background-on-hover) !important;
    color:var(--button-foreground-on-hover);
    font-weight: 100;
}

#accordionimportant {
    border-radius: 5px;
}


#accordion .ui-accordion-content-active {
    color: white !important;
}
.newsitems {
    color: var(--pagebackground);
    background-color: white;
}


.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active, a.ui-button:active, .ui-button:active, .ui-button.ui-state-active:hover {
    /* border: 1px solid #003eff; */
    border:unset!important;
    background: #007fff;
    font-weight: normal;
    color: #fff;
}

.ui-state-active .ui-icon, .ui-button:active .ui-icon {
    background-image: url("images/ui-icons_444444_256x240.png")!important;
    color: black!important;
}

.ui-state-active {
    border: var(--button-border-width) solid var(--button-border)!important;
}
.ui-state-default {
    border: 1px solid var(--button-border);
}
.ui-widget-content {
    border:unset!important;
}
/* ===== NASS Dialog (scoped, non-conflicting) ===== */
.nass-dialog {
    /* Theme vars (override these in your global CSS if needed) */
    --nass-success: #2e7d32;
    --nass-success-bg: #eaf7ea;
    --nass-success-br: #b7e1b9;

    --nass-error: #c62828;
    --nass-error-bg: #fdecea;
    --nass-error-br: #f6c7c4;

    --nass-info: #1e88e5;
    --nass-info-bg: #e8f2fd;
    --nass-info-br: #bcd9fb;

    border: none;
    padding: 0;
    width: min(92vw, 640px);
    max-height: 85vh;
    background: transparent;
}

.nass-dialog::backdrop { background: rgba(0, 0, 0, 0.45); }

.nass-dialog__container {
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 12px 48px rgba(0, 0, 0, 0.25);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* Header layout */
.nass-dialog__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    border-bottom: 3px solid var(--nebula-300);
    padding-left: 1rem;
}

/* Variant accent (header) */
.nass-dialog--success .nass-dialog__header {
    background: var(--nass-success-bg);
    color: var(--nass-success);
    border-bottom-color: var(--nass-success-br);
}
.nass-dialog--error .nass-dialog__header {
    background: var(--nass-error-bg);
    color: var(--nass-error);
    border-bottom-color: var(--nass-error-br);
}
.nass-dialog--info .nass-dialog__header {
    background: var(--nass-info-bg);
    color: var(--nass-info);
    border-bottom-color: var(--nass-info-br);
}

/* Optional left accent bar for stronger visual signal */
.nass-dialog--success .nass-dialog__container { border-left: 6px solid var(--nass-success); }
.nass-dialog--error   .nass-dialog__container { border-left: 6px solid var(--nass-error); }
.nass-dialog--info    .nass-dialog__container { border-left: 6px solid var(--nass-info); }

.nass-dialog__icon {
    width: 20px;
    height: 20px;
    display: inline-flex;
}

/* Title & controls */
.nass-dialog__title { margin: 0; font-size: 1.25rem; line-height: 1.4; }
.nass-dialog__close {
    margin-left: auto;
    background: transparent;
    border: none;
    font-size: 2rem;
    line-height: 1;
    cursor: pointer;
    color: inherit;
    padding: 0.65rem;
    margin-top: 0.2rem;
}
.nass-dialog__close:hover { opacity: .8; }

/* Body & footer */
.nass-dialog__body { padding: 1rem 1.25rem; overflow: auto; }
.nass-dialog__footer {
    border-top: 1px solid #eee;
    display: flex;
    justify-content: flex-end;
    gap: .5rem;
    padding: 0 1.25rem 0.2rem;
}
.nass-dialog__btn {
    appearance: none;
    border: 1px solid #ddd;
    background: #f9f9f9;
    color: #333;
    border-radius: 6px;
    padding: .5rem .9rem;
    cursor: pointer;
}
.nass-dialog__btn:hover { background: #f1f1f1; }

/* Precise centering (optional override) */
/*
.nass-dialog {
  position: fixed;
  inset: 50% auto auto 50%;
  transform: translate(-50%, -50%);
}
*/

.result-link-li {
    box-shadow: none;
    padding-left: 0;
    padding-top:1rem;
    padding-bottom: 1rem;
    margin-left: 0!important;
    color: black!important;
    border-top: var(--button-border-width) solid white!important;
    border-bottom: var(--button-border-width) solid var(--button-border-color-main-menu)!important;
    border-radius: 0 !important;
}
.result-link {
    text-decoration: unset;
    background-color: unset;
}

.tileIntroWrapper {
    /*border-bottom: var(--tileIntroSectionBottomBorder);*/
    margin-bottom: 10px;
    display: block;
    padding-right: 10px;
}

.tileIntroText {
    padding-left: 10px;
    font-size: var(--tileIntroSectionFontSize);
    text-align: left;
    height:2.5rem;
}


.tileControlPart {
    width: 35%;
    height: var(--tileIntroSectionHeight);
}

/*
    DASHBOARD
*/
.chartWrapper {
    position: relative;
    height: var(--height-of-chart-in-dashboard)
}


.chartWrapperLarge {
    position: relative;
    height: 550px
}


.noDataWrapper {
    position: relative;
    height: 150px;
    /* background-color: var(--pagebackground); */
    border: 2px dotted gray;
    border-radius: 1rem;
}

.radio-button-dashboard-text {
    font-size: calc( var(--font-size) - 0.1rem);
}
.noDataText {
    color: grey;
    text-align: center;
    padding-top: 20px;
}

.results-list-quick-search {
    padding-left: 1rem;

}

.results-list-quick-search-item {
    padding-left: 1rem;

}



/* Base container */
.nass-progress {
    display: grid;
    grid-template-columns: 1fr auto; /* bar + value */
    align-items: center;
    gap: 10px;
    color: var(--nass-text);
    font: 500 14px/1.3 system-ui, -apple-system, Segoe UI, Roboto, "Open Sans", Arial, sans-serif;
}

/* Track & bar */
.nass-progress__track {
    position: relative;
    width: 100%;
    height: var(--nass-height);
    background: var(--nass-track);
    border-radius: var(--nass-radius);
    overflow: hidden;
}

.nass-progress__bar {
    height: 100%;
    background: var(--nass-primary);
    border-radius: var(--nass-radius);
    width: 0%;
    transition: width 250ms ease;
}

/* Text area */
.nass-progress__text {
    display: inline-flex;
    align-items: baseline;
    gap: 8px;
}
.nass-progress__label { color: var(--nass-text); }
.nass-progress__value { color: var(--nass-primary); font-weight: 600; }

/* Indeterminate shimmer */
.nass-progress--indeterminate .nass-progress__track::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
            linear-gradient(90deg,
            transparent 0%,
            rgba(255,255,255,0.65) 50%,
            transparent 100%),
            linear-gradient(0deg, var(--nass-track), var(--nass-track));
    transform: translateX(-100%);
    animation: nass-progress-move 1.2s ease-in-out infinite;
}
@keyframes nass-progress-move {
    50% { transform: translateX(0%); }
    100% { transform: translateX(100%); }
}

/* Quick variants (optional) */
.nass-progress--success .nass-progress__bar { background: var(--nass-success); }
.nass-progress--error   .nass-progress__bar { background: var(--nass-error); }
.nass-progress--info    .nass-progress__bar { background: var(--nass-info); }
.nass-progress--success .nass-progress__value { color: var(--nass-success); }
.nass-progress--error   .nass-progress__value { color: var(--nass-error); }
.nass-progress--info    .nass-progress__value { color: var(--nass-info); }


.gradientLine {
    background: radial-gradient(ellipse at center, #deefff 0%,var(--nebula-300) 100%);
    height: 3px;
    border: none;
    /* box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); */
    width: 100%;
}

.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default, .ui-button, html .ui-button.ui-state-disabled:hover, html .ui-button.ui-state-disabled:active {
    background: var(--beige) !important;
}


.ui-widget {
    font-family: unset!important;
}

.dashboard-display-state {
    display:none;
}


.panel-disabled {
    position: relative;
    pointer-events: none;
    border-radius: inherit;
    padding: 1rem;
    isolation: isolate; /* ✅ forces proper stacking context */
}

/* GLASS layer */
.panel-disabled::before {
    content: "";
    position: absolute;
    inset: 0;

    /* ✅ MUST be translucent */
    background: var(--unready-overlay-bg, rgba(255, 255, 255, 0.45));

    /* ✅ blur only works with transparency */
    backdrop-filter: blur(var(--unready-blur, 6px));
    -webkit-backdrop-filter: blur(var(--unready-blur, 6px));

    border-radius: inherit;

    z-index: 1; /* ✅ sits over content */
}

/* CENTERED MESSAGE */
.panel-disabled::after {
    content: attr(data-unready-msg);
    position: absolute;
    inset: 0;

    display: flex;
    align-items: top;
    justify-content: center;
    text-align: center;

    color: var(--unready-text, #555);
    font-size: var(--unready-font-size, 1.1rem);
    font-weight: var(--unready-font-weight, 700);
    letter-spacing: var(--unready-letter-spacing, 0.3px);

    padding: var(--unready-padding, 12px 16px);
    margin: auto;
    width: max-content;
    max-width: min(90%, 48rem);
    border-radius: var(--unready-radius, 10px);

    /* ✅ optional pill behind text */
    background: var(--unready-text-bg, rgba(255, 255, 255, 0.7));
    box-shadow: var(--unready-shadow, 0 6px 18px rgba(0,0,0,0.08));

    z-index: 2; /* ✅ above glass */
}

/* Wrapper */
.tooltip {
    position: relative;
    display: inline-flex;
    align-items: center;
    cursor: help;
}

/* Tooltip bubble */
.tooltip::after {
    content: attr(data-tooltip);
    position: absolute;
    left: 50%;
    bottom: calc(100% + var(--tooltip-offset));
    transform: translateX(-50%) translateY(4px);

    white-space: nowrap;
    font-size: var(--tooltip-font-size);
    line-height: 1.4;

    background: var(--tooltip-bg);
    color: var(--tooltip-fg);
    padding: var(--tooltip-padding);
    border-radius: var(--tooltip-radius);
    box-shadow: var(--tooltip-shadow);

    opacity: 0;
    visibility: hidden;
    pointer-events: none;

    transition:
            opacity var(--tooltip-transition),
            transform var(--tooltip-transition);
    z-index: 1000;
}

/* Tooltip arrow */
.tooltip::before {
    content: "";
    position: absolute;
    left: 50%;
    bottom: calc(100% + 2px);
    transform: translateX(-50%) translateY(4px);

    border-width: 6px;
    border-style: solid;
    border-color: var(--tooltip-bg) transparent transparent transparent;

    opacity: 0;
    visibility: hidden;

    transition:
            opacity var(--tooltip-transition),
            transform var(--tooltip-transition);
}

/* Show tooltip */
.tooltip:hover::after,
.tooltip:hover::before,
.tooltip:focus-visible::after,
.tooltip:focus-visible::before {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
}

#globalTooltip {
    position: fixed;
    z-index: 2147483647;

    background: rgba(30, 30, 34, 0.95);
    color: #fff;
    padding: 8px 10px;

    border-radius: 8px;
    font-size: 0.85rem;
    white-space: nowrap;

    box-shadow: 0 8px 24px rgba(0,0,0,0.2);

    opacity: 0;
    pointer-events: none;
    transform: translateY(4px);

    transition:
            opacity 120ms ease,
            transform 120ms ease;
}

#globalTooltip.visible {
    opacity: 1;
    transform: translateY(0);
}


#globalTooltip {
    position: fixed;
    z-index: 2147483647;

    min-width: 180px;
    max-width: 320px;

    background: rgba(30, 30, 34, 0.96);
    color: #fff;

    border-radius: 10px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.25);

    font-size: 0.85rem;
    pointer-events: none;

    opacity: 0;
    transform: translateY(4px);
    transition:
            opacity 140ms ease,
            transform 140ms ease;
}

#globalTooltip.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Sections */
#globalTooltip .tt-header {
    font-weight: 600;
    padding: 8px 12px 4px;
    border-bottom: 2px solid rgba(255,255,255,0.12);
}

#globalTooltip .tt-body {
    padding: 8px 12px;
    line-height: 1.4;
}

#globalTooltip .tt-footer {
    padding: 6px 12px 8px;
    font-size: 0.75rem;
    color: rgba(255,255,255,0.7);
    border-top: 1px solid rgba(255,255,255,0.12);
}

/* Hidden section safety */
#globalTooltip .tt-header:empty,
#globalTooltip .tt-footer:empty {
    display: none;
}

/* Arrow */
#globalTooltip::after {
    content: "";
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    border: 6px solid transparent;
}

#globalTooltip:not(.flip-bottom)::after {
    bottom: -12px;
    border-top-color: rgba(30, 30, 34, 0.96);
}

#globalTooltip.flip-bottom::after {
    top: -12px;
    border-bottom-color: rgba(30, 30, 34, 0.96);
}


#globalTooltip .tt-header:empty,
#globalTooltip .tt-footer:empty {
    display: none;
}

.productNoAvailabilityCard {
    width: var(--availability-none-card-width);
}

.productAvailabilityCardHeader {
    width: var(--availability-some-card-width);
}

/* Tables :: Connection tables, data tables and so much more */
.ConnTable {
    margin: 0;
    padding: 0;
    border-bottom: 2px solid var(--pagetitle_underlinecol);
    border-top: 2px solid var(--pagetitle_underlinecol);
}

.ConnTable table {
    border-collapse: collapse;
    border-spacing: 0;
    height: 100%;
    margin: 0px;
    padding: 0px;
    display: inline-block;
    float: left;
    clear: both;
}


.ConnTable a {
    color: var(--hyperlink-colour);
    text-decoration: underline;
}

.ConnTable th {
    color: var(--table-header-text-colour)!important;
    background-color: var(--table-header-background)!important;
    font-size: var(--table-header-font-size);
    font-weight: var(--table-header-font-weight);
}

.ConnTable td {
    color: var(--table-data-text-color);
    background-color: var(--table-data-background);
    border-bottom: 2px solid var(--line-or-separator-colour)!important;
    font-size: var(--table-data-font-size);
}

.ConnTable tr:hover td {
    background-color: var(--table-data-hover-background);
}

.ConnTable th.activeTh {
    border-width: 1px 1px 1px 1px;
    border-top: 1px solid #969696 !important;
    border-bottom: 1px solid #969696 !important;
    font-size: 13px;
    font-weight: bold;
    color: #fff;
    height: 30px;
}

.ConnTable th:last-child {
    border-width: 1px 1px 1px 1px;
    border-right: 0 solid #969696 !important;
    border-bottom: 1px solid #969696 !important;
    font-size: 13px;
    font-weight: bold;
    height: 30px;
}


thead th {
    background-color: var(--table-header-background) !important;
    color: var(--table-header-text-colour) !important;
    font-size: var(--table-header-font-size);
}

td.detail, tr.detail {
    background-color: var(--table-data-background) !important;
    color: var(--table-data-text-color) !important;
    font-size: var(--table-data-font-size);
}

table.details td {
    background-color: var(--table-data-background) !important;
    color: var(--table-data-text-color) !important;
}


/* Server unavailable component showing when cannot communicate with Symphony */
.server-unavailable {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    margin: 1rem 0;
    border-radius: 0.5rem;
    background: rgba(217, 83, 79, 0.08);
    color: #7a1e1e;
    border-left: 4px solid #d9534f;
}

.server-unavailable__title {
    font-weight: 600;
}

.server-unavailable__text {
    font-size: 0.9rem;
    opacity: 0.9;
}

.link-cannot-click {
    cursor: not-allowed;
}

.orderTitle {
    color: var(--font-colour);
}

.module h3 {
    border-bottom: 4px solid var(--line-or-separator-colour);
    margin: 0 0 5px;
    padding-bottom: 0.5rem;
    font-size: calc(var(--font-size) + var(--font-size-factoring-h3));
    color: var(--lavender-800);
    font-weight: 600;
}

.mainColumn:first-of-type {
    border-top: unset;

}

.mainColumn {
    border-bottom: 3px solid var(--line-or-separator-colour);

}

/* Order table override */
.tableOrderProducts > tbody > tr:first-child {
}

.icc-contacting-suppliers {
    background-color: var(--button-background); 
    border-radius: 1em; 
    padding: 1em;
    border-color: var(--button-background-on-hover);
}


.OldUmbracoQuickLinksPartnerTeam {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 1.5rem;
}
.partnerteam a {
    transition: transform .15s ease, box-shadow .15s ease;
}
.partnerteam a:hover {
    transform: translateY(-4px);
    box-shadow: 0 4px 18px rgba(0,0,0,0.15);
}
/*
.partnerteam img.feather {
    border-radius: 8px;
}*/
.active-item-in-navigation {
    background-color: var(--button-background-on-hover) !important;
    color: var(--button-text-colour-on-hover) !important;
}

.disabled-item-in-navigation {
    
}


/* JQuery UI filters */

.ui-multiselect {
    font-size: 14px !important;    /* change to what you want */
    padding: 4px 8px !important;
}

.ui-multiselect:hover {
    background-color: var(--button-background-on-hover)!important;
    color: var(--button-text-colour-on-hover)!important;
    font-weight: var(--button-font-weight-on-hover);
    border: var(--button-border-width) solid var(--button-border-on-hover) !important;
}

#tblBatchHeaderRequests th {
    white-space: nowrap !important;
}

#tblBatchHeaderRequests th,
#tblBatchHeaderRequests td {
    max-width: none !important;
}


/* Keep multiselect button contained in header filter cells */
#tblBatchHeaderRequests thead .ui-multiselect {
    width: 100% !important;
    max-width: 100%;
    box-sizing: border-box;
}

/* Make filter cells compact and avoid wrapping */
#tblBatchHeaderRequests thead tr.filters th {
    white-space: nowrap;
    padding: 4px 6px;
}

/* Datepicker filter width fix */
#tblBatchHeaderRequests thead tr.filters input.datePicker {
    width: 80px !important;     /* fits dd/mm/yyyy perfectly */
    min-width: 80px !important;
    max-width: 80px !important;
    box-sizing: border-box;
}

/* Crap tabs for conneciton screen */
.moduleLeftNav ul li a {
    padding: 8px 10px;
    display: block;
    /*color: rgb(51,51,51);*/
    text-decoration: none;
    /*background: #eee;*/
    border-bottom: 1px solid #CCC;
    border-top: 1px solid #CCC;
    border-left: 1px solid #CCC;
    border-top-left-radius: var(--buttonradius);
    border-bottom-left-radius: var(--buttonradius);
    font-size: 0.9em;
    background-color: var(--button-background);
    color: var(--button-text-colour);
}
.moduleLeftNav ul li.active a {
    background-color: var(--button-background-on-hover);
    color: var(--button-text-colour-on-hover); 
}

.button2021fixedchat {
    width: 140px !important;
}

.internal-only-button {
    background-color: var(--button-internal-background)!important;
    color: white!important;
}

.forgetmenot {
    margin-bottom: 1rem;
    border-radius: 0.5rem;
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFib3ZlVGhlRm9sZC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiQWJvdmVUaGVGb2xkLm1pbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyLvu78vKiBub2luc3BlY3Rpb24gQ3NzVW5rbm93blRhcmdldCAqL1xyXG4vKiBSZVNoYXJwZXIgZGlzYWJsZSBDc3NCcm93c2VyQ29tcGF0aWJpbGl0eSAqL1xyXG5cclxyXG46cm9vdCB7XHJcblxyXG4gICAgLypcclxuICAgICAgICBSTC4gIEFib3ZlIHRoZSBmb2xkIGlzIHRoZSBwbGFjZSB0byBwdXQgdGhpbmdzIHRoYXQgYXJlIHZpc2libGUgYXMgc29vbiBhcyB0aGUgcGFnZSBsb2FkcywgdGhpcyBhcHBsaWVzXHJcbiAgICAgICAgdG8gdGhlIGhlYWRlciwgdGhlIGxvZ28sIHRoZSBmYXZpY29uLCB0aGUgcGFnZSB0aXRsZSwgZXRjLiAgVGhpbmdzIHRoYXQgYXJlIG5vdCB2aXNpYmxlIHVudGlsIHRoZSB1c2VyXHJcbiAgICAgICAgaW50ZXJhY3RzIHdpdGggdGhlIHBhZ2UuICBUaGluZ3MgbGlrZSB0aGUgbmF2aWdhdGlvbiBtZW51LCB0aGUgZm9vdGVyLCB0aGUgbG9naW4gZm9ybSwgZXRjLiBcclxuICAgICAgICBcclxuICAgICAgICBUbyB0aGUgYnJhdmUgd2FudGluZyB0byBkbyByZWJyYW5kaW5nLiAgVGhpcyBpcyB0aGUgcGxhY2UgdG8gc3RhcnQuXHJcbiAgICAgICAgXHJcbiAgICAgICAgUGxlYXNlIGRvIG5vdCBkZWZpbmUgbmV3IGNsYXNzZXMgYmVmb3JlIGNoZWNraW5nIHdoZXRoZXIgb3Igbm90IHRoZXJlIGlzIGEgY2xhc3MgaGVyZSB0aGF0IGZpdHMgdGhlIGJpbGwuXHJcbiAgICAgICAgXHJcbiAgICAgICAgRElTQ0xBSU1FUjogIFRoaXMgaXMgYSB3b3JrIGluIHByb2dyZXNzLiAgSXQgaXMgbm90IGNvbXBsZXRlIGFuZCBiZWluZyBjb25zdGFudGx5IHVwZGF0ZWQuIFxyXG4gICAgICAgIFxyXG4gICAgICAgIFJlbSB2cyBFbVxyXG4gICAgICAgIFxyXG4gICAgICAgIFJlbVxyXG4gICAgICAgICAgICByZW0gPSByb290IGVtLiAgSWYgdXNlciBkZWZhdWx0IGZvbnQgaXMgMTZweCB0aGVuIDFyZW0gPSAxNnB4IDsyIHJlbSA9IDMycHggOyAzcmVtID0gNDhweCBhbmQgc28gZm9ydGguXHJcbiAgICAgICAgICAgIFJlbGF0aXZlIHRvIHRoZSByb290IChodG1sKSBmb250LXNpemUuXHJcbiAgICAgICAgICAgIE5ldmVyIGFmZmVjdGVkIGJ5IHBhcmVudCBlbGVtZW50cy5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgRW1cclxuICAgICAgICAgICAgZW0gPSBlbGVtZW50IGVtXHJcbiAgICAgICAgICAgIGVtID0gcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgZWxlbWVudCAob3IgbmVhcmVzdCBwYXJlbnQgd2l0aCBmb250LXNpemUpXHJcbiAgICAgICAgICAgIENhbiBiZSBhZmZlY3RlZCBieSBwYXJlbnQgZWxlbWVudHMuXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIFVuZm9ydHVuYXRlbHkgb3ZlciB0aGUgeWVhcnMsIHdlIGhhdmUgYmVlbiBpbmNvbnNpc3RlbnQgaW4gb3VyIHVzZSBvZiByZW0gdnMgZW0uICBcclxuICAgICAgICBcclxuICAgICAgICBcclxuICAgICAgICBUaGUgdXNlcuKAmXMgZGVmYXVsdCBpcyB3aGF0ZXZlciB0aGV5IGhhdmUgc2V0IGluIHRoZWlyIGJyb3dzZXLigJlzIHNldHRpbmdzLlxyXG4gICAgICAgIEV2ZXJ5IGJyb3dzZXIgaGFzIGEg4oCcZGVmYXVsdCBmb250IHNpemXigJ0gb3B0aW9uIOKAlCB1c3VhbGx5IDE2cHgsIHVubGVzcyB0aGUgdXNlciBoYXMgY2hhbmdlZCBpdCBmb3IgYWNjZXNzaWJpbGl0eS92aXNpYmlsaXR5IHJlYXNvbnMuXHJcbiAgICAgICAgXHJcbiAgICAgICAgSWYgeW91IGRvbnQgZ2V0IGFueSBvZiB0aGlzIHRoZW4gbGVhdmUgc3R5bGluZyB0byB0aGUgYmlnIGJveXNcclxuICAgICovXHJcbiAgICBcclxuICAgIC8qIERlZmF1bHQgZm9udCByZXF1aXJlZCBieSBNYXJrZXRpbmcqL1xyXG4gICAgLS1mb250LXNhbnM6ICdJY29uYSBTYW5zJywgc2Fucy1zZXJpZjtcclxuICAgIC8qIERlZmF1bHQgZmFsbGJhY2sgZm9udChzKSAqL1xyXG4gICAgLS1mb250LW1vbm86IHVpLW1vbm9zcGFjZSxTRk1vbm8tUmVndWxhcixNZW5sbyxNb25hY28sQ29uc29sYXMsXCJMaWJlcmF0aW9uIE1vbm9cIixcIkNvdXJpZXIgTmV3XCIsbW9ub3NwYWNlO1xyXG5cclxuICAgIC8qIEZvbnQgd2VpZ2h0cyByZXF1aXJlZCBieSBmb250IGZpbGVzICovXHJcbiAgICAtLWZvbnQtd2VpZ2h0LXRoaW46IDEwMDtcclxuICAgIC0tZm9udC13ZWlnaHQtZXh0cmFsaWdodDogMjAwO1xyXG4gICAgLS1mb250LXdlaWdodC1saWdodDogMzAwO1xyXG4gICAgLS1mb250LXdlaWdodC1ub3JtYWw6IDQwMDtcclxuICAgIC0tZm9udC13ZWlnaHQtbWVkaXVtOiA1MDA7XHJcbiAgICAtLWZvbnQtd2VpZ2h0LXNlbWlib2xkOiA2MDA7XHJcbiAgICAtLWZvbnQtd2VpZ2h0LWJvbGQ6IDcwMDtcclxuICAgIC0tZm9udC13ZWlnaHQtZXh0cmFib2xkOiA4MDA7XHJcbiAgICAtLWZvbnQtd2VpZ2h0LWJsYWNrOiA5MDA7XHJcblxyXG4gICAgLyogQmFzaWNzIDo6IGZvbnRzICovXHJcbiAgICAtLWZvbnQtY29sb3VyOiAjMWQxYzFjO1xyXG4gICAgXHJcbiAgICAvKiBFcm0sIHRoZSBub3JtYWwgZm9udCBzaXplIGFrYSB0aGUgcm9vdCBzaXplIC0gdXNlciBkZWZhdWx0ICovXHJcbiAgICAtLWZvbnQtc2l6ZTogMXJlbTsgIFxyXG4gICAgXHJcbiAgICAtLWZvbnQtc2l6ZS1mYWN0b3JpbmctaDM6IDAuMnJlbTtcclxuICAgIFxyXG4gICAgLS1mb250LXNpemUtbWFpbi1saW5rczogMXJlbTtcclxuICAgIC8qIEVybSwgdGhlIG5vcm1hbCBmb250IHNpemUgKi9cclxuICAgIFxyXG4gICAgLS1mb250LXNpemV0YWJsZXQ6IDEuMmVtO1xyXG5cclxuICAgIC0tdHJhY2tpbmctdGlnaHQ6IC0uMDI1ZW07XHJcbiAgICAtLXRyYWNraW5nLXdpZGU6IC4wMjVlbTtcclxuICAgIC0tdHJhY2tpbmctd2lkZXN0OiAuMWVtO1xyXG4gICAgLS1sZWFkaW5nLXRpZ2h0OiAxLjI1O1xyXG4gICAgLS1sZWFkaW5nLXNudWc6IDEuMzc1O1xyXG4gICAgLS1sZWFkaW5nLW5vcm1hbDogMS4yZW07XHJcblxyXG4gICAgLyogQ29sb3VycyBmcm9tIG1hcmtldGluZyAqL1xyXG4gICAgLS1jb2xvci1wbHVtYjogIzIwMDAyODtcclxuICAgIC0tY29sb3ItbGF2ZW5kZXItMTAwOiAjZWNkMWZhO1xyXG4gICAgLS1jb2xvci1sYXZlbmRlci0yMDA6ICNlY2QxZmE7XHJcbiAgICAtLWNvbG9yLWxhdmVuZGVyLTMwMDogI2MxYThmNTtcclxuICAgIC0tY29sb3ItbGF2ZW5kZXItNDAwOiAjOWM3NmVmO1xyXG4gICAgLS1jb2xvci1sYXZlbmRlci01MDA6ICM3YTRjZTg7XHJcbiAgICAtLWNvbG9yLWxhdmVuZGVyLTYwMDogIzc1M2ZlOTtcclxuICAgIC0tY29sb3ItbGF2ZW5kZXItNzAwOiAjNmYyZWU4O1xyXG4gICAgLS1jb2xvci1uZWJ1bGEtMTAwOiAjYzJmMGZmO1xyXG4gICAgLS1jb2xvci1uZWJ1bGEtMzAwOiAjODVkOGZmO1xyXG4gICAgLS1jb2xvci1uZWJ1bGEtNDAwOiAjODVkOGZmO1xyXG4gICAgLS1jb2xvci1uZWJ1bGEtNjAwOiAjMDA5OWQ2O1xyXG4gICAgLS1jb2xvci1uZWJ1bGEtNzAwOiAjMDA3MmI4O1xyXG4gICAgLS1jb2xvci10ZWFsLTEwMDogI2MyZjVjMjtcclxuICAgIC0tY29sb3ItdGVhbC0yMDA6ICNhN2YzZDA7XHJcbiAgICAtLWNvbG9yLXRlYWwtMzAwOiAjNmVlN2I3O1xyXG4gICAgLS1jb2xvci10ZWFsLTQwMDogIzIyZDg5NTtcclxuICAgIC0tY29sb3ItdGVhbC02MDA6ICMwN2IxNzY7XHJcbiAgICAtLWNvbG9yLWJlaWdlLTUwOiAjZmRmZGZjO1xyXG4gICAgLS1jb2xvci1iZWlnZS0zMDA6ICNmNmY1ZjI7XHJcbiAgICAtLWNvbG9yLWJlaWdlLTQwMDogI2VmZWNlNTtcclxuICAgIC0tY29sb3ItYmVpZ2UtNTAwOiAjZTBkZGQ2O1xyXG4gICAgLS1jb2xvci1ncmV5LTUwOiAjZThlOGU4O1xyXG4gICAgLS1jb2xvci1ncmV5LTEwMDogI2I4YjhiODtcclxuICAgIC0tY29sb3ItZ3JleS0yMDA6ICM5Njk2OTY7XHJcbiAgICAtLWNvbG9yLWdyZXktMzAwOiAjNjY2O1xyXG4gICAgLS1jb2xvci1ncmV5LTQwMDogIzQ5NDk0OTtcclxuICAgIC0tY29sb3ItZ3JleS04MDA6ICMwMDA7XHJcblxyXG4gICAgLS1uYXNzLXByaW1hcnk6ICM2YjRmZDM7ICAgICAgICAvKiBBY2NlbnQgKE5hc3N0YXIgbGF2ZW5kZXIpICovXHJcbiAgICAtLW5hc3MtdHJhY2s6IHZhcigtLWxhdmVuZGVyLTgwMCk7ICAgICAgICAgIC8qIFRyYWNrIGJhY2tncm91bmQgKi9cclxuICAgIC0tbmFzcy10ZXh0OiAjMzMzOyAgICAgICAgICAgICAgLyogRGVmYXVsdCB0ZXh0IGNvbG9yICovXHJcblxyXG4gICAgLS1uYXNzLXN1Y2Nlc3M6ICMyZTdkMzI7XHJcbiAgICAtLW5hc3MtZXJyb3I6ICNjNjI4Mjg7XHJcbiAgICAtLW5hc3MtaW5mbzogIzFlODhlNTtcclxuXHJcbiAgICAtLW5hc3MtaGVpZ2h0OiAxMHB4OyAgICAgICAgICAgIC8qIFByb2dyZXNzIGJhciBoZWlnaHQgKi9cclxuICAgIC0tbmFzcy1yYWRpdXM6IDk5OXB4OyAgICAgICAgICAgLyogRnVsbHkgcm91bmRlZCBiYXIgKi9cclxuXHJcbiAgICAvKlxyXG4gICAgR2VuZXJhbFxyXG4gICAgKi9cclxuICAgIC0tcGFnZS1iYWNrZ3JvdW5kOiB2YXIoLS1wbHVtLWxpZ2h0KTtcclxuICAgIFxyXG4gICAgLyogTG9naW4gc2NyZWVuICovXHJcbiAgICAtLWxvZ2luLWJhY2tncm91bmQ6ICNmN2Y2ZjI7XHJcblxyXG4gICAgLyogTWlzYyAqL1xyXG4gICAgLS1sZWZ0LW1lbnUtd2lkdGg6IDE3MXB4O1xyXG4gICAgXHJcbiAgICAvKiBMaW5lICovXHJcbiAgICAtLWxpbmUtb3Itc2VwYXJhdG9yLWNvbG91cjogdmFyKC0tYmVpZ2UpO1xyXG5cclxuICAgIC8qIEh5cGVybGlua3MgKi9cclxuICAgIC0taHlwZXJsaW5rLWNvbG91cjogdmFyKC0tbGF2ZW5kZXItODAwKTtcclxuICAgIFxyXG4gICAgLyogVGFibGVzIGFuIGF0dGVtcHQgc2xvd2x5IHRvIHJlcGxhY2UgdGFibGVzLmNzcyEgKi9cclxuICAgIC0tdGFibGUtaGVhZGVyLWJhY2tncm91bmQ6IHZhcigtLWxhdmVuZGVyLTgwMCk7XHJcbiAgICAtLXRhYmxlLWhlYWRlci10ZXh0LWNvbG91cjogd2hpdGU7XHJcbiAgICAtLXRhYmxlLWhlYWRlci1mb250LXNpemU6IGNhbGMoIHZhcigtLWZvbnQtc2l6ZSkpO1xyXG4gICAgLS10YWJsZS1oZWFkZXItZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgIFxyXG4gICAgLS10YWJsZS1kYXRhLWJhY2tncm91bmQ6IHdoaXRlO1xyXG4gICAgLS10YWJsZS1kYXRhLWhvdmVyLWJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1iYWNrZ3JvdW5kLW9uLWhvdmVyKTtcclxuICAgIC0tdGFibGUtZGF0YS10ZXh0LWNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XHJcbiAgICAtLXRhYmxlLWRhdGEtZm9udC1zaXplOiBjYWxjKCB2YXIoLS1mb250LXNpemUpIC0gMC4xcmVtKTtcclxuICAgIFxyXG4gICAgLyogQnV0dG9ucyAqL1xyXG4gICAgLS1idXR0b24tYmFja2dyb3VuZDogdmFyKC0tYmVpZ2Utc29mdCk7ICAgICAgICAgICAgICAgICAvKlRoZSBiYWNrZ3JvdW5kIGNvbG91ciBvZiB0aGUgYnV0dG9uKi9cclxuICAgIC0tYnV0dG9uLWJhY2tncm91bmQtb24taG92ZXI6IHZhcigtLWxhdmVuZGVyLTYwMCk7XHJcbiAgICBcclxuICAgIC0tYnV0dG9uLWludGVybmFsLWJhY2tncm91bmQ6IHZhcigtLW5hc3MtZXJyb3IpO1xyXG4gICAgLyogUkwgLSBLZWVwIHRoZSBiZWxvdyBpbiovXHJcbiAgICAvKi0tYnV0dG9uLWJhY2tncm91bmQtb24tYWN0aXZlOiB2YXIoLS1sYXZlbmRlci04MDApO1xyXG4gICAgLS1idXR0b24tYmFja2dyb3VuZC1vbi1mb2N1czogdmFyKC0tbGF2ZW5kZXItODAwKTtcclxuICAgIC0tYnV0dG9uLWJhY2tncm91bmQtb24tZGlzYWJsZWQ6IHZhcigtLWJlaWdlLXNvZnQpO1xyXG4gICAgLS1idXR0b24tYmFja2dyb3VuZC1vbi1zZWxlY3RlZDogdmFyKC0tbGF2ZW5kZXItODAwKTtcclxuICAgIC0tYnV0dG9uLWJhY2tncm91bmQtb24tc2VsZWN0ZWQtaG92ZXI6IHZhcigtLWxhdmVuZGVyLTYwMCk7XHJcbiAgICAtLWJ1dHRvbi1iYWNrZ3JvdW5kLW9uLXNlbGVjdGVkLWFjdGl2ZTogdmFyKC0tbGF2ZW5kZXItODAwKTtcclxuICAgIC0tYnV0dG9uLWJhY2tncm91bmQtb24tc2VsZWN0ZWQtZm9jdXM6IHZhcigtLWxhdmVuZGVyLTgwMCk7XHJcbiAgICAtLWJ1dHRvbi1iYWNrZ3JvdW5kLW9uLXNlbGVjdGVkLWRpc2FibGVkOiB2YXIoLS1iZWlnZS1zb2Z0KTtcclxuICAgIC0tYnV0dG9uLWJhY2tncm91bmQtb24tc2VsZWN0ZWQtY2hlY2tlZDogdmFyKC0tbGF2ZW5kZXItODAwKTtcclxuICAgIC0tYnV0dG9uLWJhY2tncm91bmQtb24tc2VsZWN0ZWQtY2hlY2tlZC1ob3ZlcjogdmFyKC0tbGF2ZW5kZXItNjAwKTtcclxuICAgIC0tYnV0dG9uLWJhY2tncm91bmQtb24tc2VsZWN0ZWQtY2hlY2tlZC1hY3RpdmU6IHZhcigtLWxhdmVuZGVyLTgwMCk7XHJcbiAgICAtLWJ1dHRvbi1iYWNrZ3JvdW5kLW9uLXNlbGVjdGVkLWNoZWNrZWQtZm9jdXM6IHZhcigtLWxhdmVuZGVyLTgwMCk7XHJcbiAgICAtLWJ1dHRvbi1iYWNrZ3JvdW5kLW9uLXNlbGVjdGVkLWNoZWNrZWQtZGlzYWJsZWQ6IHZhcigtLWJlaWdlLXNvZnQpOyovXHJcbiAgICBcclxuICAgIC0tYnV0dG9uLXRleHQtY29sb3VyOiAjMDAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypUZXh0IGNvbG91ciBvZiB0aGUgYnV0dG9uKi9cclxuICAgIC0tYnV0dG9uLXRleHQtY29sb3VyLW9uLWhvdmVyOiB3aGl0ZTsgICAgICAgICAgICAgICAgICAgLyogTXVzdCBjb250cmFzdCB3aXRoIGJhY2tncm91bmQgY29sb3VyIC0tYnV0dG9uLWJhY2tncm91bmQtb24taG92ZXIgKi9cclxuXHJcbiAgICAtLWJ1dHRvbi1ib3JkZXI6ICM5ZDkyOTI7XHJcbiAgICAtLWJ1dHRvbi1ib3JkZXItb24taG92ZXI6ICM5ZDkyOTI7XHJcbiAgICAtLWJ1dHRvbi1ib3JkZXItd2lkdGg6IDJweDtcclxuICAgIC0tYnV0dG9uLWZvbnQtd2VpZ2h0LW9uLWhvdmVyOiBub3JtYWw7XHJcblxyXG4gICAgLS1jb250cm9sLWJvcmRlcjogMnB4IHNvbGlkICNjNmM4Y2IgIWltcG9ydGFudDtcclxuICAgIC0tYnV0dG9uX3NoYWRvdzogMCAzcHggMTVweCByZ2JhKDAsIDAsIDAsIDAuMyk7XHJcblxyXG4gICAgLS1idXR0b25yYWRpdXM6IDVweDtcclxuICAgIC0tYnV0dG9uLWJvcmRlci1pbml0aWFsOiBncmF5O1xyXG5cclxuICAgIC0tYnV0dG9uLWljb24taG92ZXJjb2xvdXI6ICM1NGFkNjdlMDtcclxuXHJcbiAgICAvKiBDb2xvdXIgb2YgZm9udCBhd2Vzb21lIGljb24gd2hlbiBob3ZlcmluZyAqL1xyXG4gICAgLS1idXR0b24taW5pdGlhbC1iYWNrZ3JvdW5kOiB3aGl0ZTtcclxuXHJcbiAgICAvKiBCYWNrZ3JvdW5kIG9mIGJ1dHRvbiAqL1xyXG4gICAgLS1idXR0b24tdHJhbnNpdGlvbi1kZWxheTogMHM7XHJcblxyXG4gICAgLyogRGVsYXkgYmV0d2VlbiBjb2xvdXIgY2hhbmdlcy4gIEtlZXAgZm9yIG5vdywgbW9yZSBwbGFjZWhvbGRlci4gKi9cclxuICAgIC0tYnV0dG9uLWluaXRpYWwtc2hhZG93OiAwIDJweCAzcHggMCByZ2JhKDAsIDAsIDAsIDAuMjYpO1xyXG5cclxuICAgIC8qIEFub3RoZXIgdmFyaWFudCBvZiBidXR0b24gc2hhZG93ICovXHJcbiAgICAtLWJ1dHRvbi1pbml0aWFsLWZvbnQtc2l6ZTogMXJlbTtcclxuXHJcbiAgICAvKiBOb3JtYWwgZm9udC1zaXplIG9mIGJ1dHRvbiAqL1xyXG4gICAgLS1idXR0b24tc3RhbmRhcmQtd2lkdGg6IDEwMHB4O1xyXG5cclxuICAgIC8qIEEgbm9ybWFsIGJ1dHRvbiwgaW4gYSBub3JtYWwgd29yayAqL1xyXG4gICAgLS1idXR0b24td2lkZS13aWR0aDogMTQ4cHg7XHJcblxyXG4gICAgLyogVGhlIHdpZHRoIG9mIHRoZSBuYXZsaW5rcyBpbiBob21lIHNjcmVlbiAqL1xyXG4gICAvKiAtLWJ1dHRvbi1tZXNzYWdlLWFsZXJ0OiAjZTQxNTE1OyovXHJcblxyXG4gICAgLypcclxuICAgICAgICBNYWluIG1lbnUgbGlua3MsIG1vc3RseSBzYW1lIGFzIGJ1dHRvbnNcclxuICAgICAqL1xyXG4gICAgLS1idXR0b24tYm9yZGVyLWNvbG9yLW1haW4tbWVudTogdmFyKC0tYmVpZ2UpO1xyXG4gICAgLS1idXR0b24tYm9yZGVyLWNvbG9yLW1haW4tbWVudS1vbi1ob3ZlcjogdmFyKC0tbGF2ZW5kZXItODAwKTtcclxuICAgIFxyXG4gICAgLypJY29ucyovXHJcbiAgICAtLWJ1dHRvbi1pY29uLWNvbG9yOiBibGFjaztcclxuICAgIC0tYnV0dG9uLWljb24tY29sb3Itb24taG92ZXI6IHdoaXRlO1xyXG5cclxuICAgIC0tYnV0dG9uLWljb24tY29sb3ItcXVpY2stbGlua3M6IHZhcigtLXRlYWwtMTAwKTtcclxuXHJcbiAgICAvKlF1aWNrIGxpbmtzKi9cclxuICAgIC0tcXVpY2tsaW5rcy1pY29uLWNvbG9yOiB2YXIoLS1sYXZlbmRlci04MDApO1xyXG4gICAgLS1xdWlja2xpbmtzLWljb24tY29sb3ItaG92ZXI6IHdoaXRlO1xyXG5cclxuICAgIC0taGVhZGVyLWJhY2tncm91bmQ6IHZhcigtLWxhdmVuZGVyLTgwMCk7XHJcbiAgICAtLWhlYWRlci10ZXh0LWNvbG91cjogd2hpdGU7XHJcbiAgICBcclxuICAgIC0taGVhZGVyLWJhY2tncm91bmQtbGlnaHQ6ICNlZWViZTQ7XHJcbiAgICBcclxuICAgIC0tcGFnZXRpdGxlX3VuZGVybGluZWNvbDogIzcwNzA3MDtcclxuXHJcbiAgICAvKiBEYXNoYm9hcmQgKi9cclxuICAgIC0tZGFzaGJvYXJkLWNhcmQtYm9yZGVyLXdpZHRoOiAycHg7XHJcbiAgICAtLWhlaWdodC1vZi1jaGFydC1pbi1kYXNoYm9hcmQ6IDE1MHB4O1xyXG5cclxuICAgIC8qIE9sZCBzdHlsZXMgcHJlIGZhbW91cyAyMDI2IHJlbGVhc2UgKi8gICAgXHJcbiAgICAvKiBCb3JkZXIgY29sb3VyIG9mIG1lc3NhZ2UgY2VudHJlIGJ1dHRvbiBpbiBob21lIHNjcmVlbiAqL1xyXG4gICAgLS1ob21lLXBhbmVsLWhlYWRlci1jb2xvcjogIzI5QTFEOTtcclxuICAgIFxyXG4gICAgLyogVGhlIGNvbG91ciBvZiB0aGUgaGVhZGVyIGJhciBvbiBob21lIHNjcmVlbiAqL1xyXG4gICAgLS1ob21lLXBhbmVsLWludGVybmFsLWNvbG9yOiAjZmJkNDg1O1xyXG4gICAgXHJcbiAgICAvKiBHcmlkcyAqL1xyXG4gICAgLS1ncmlkX2hvdmVyOiAjYzVkYWZjO1xyXG4gICAgLS1wbGFjZWhvbGRlci1jb2xvcjogaW5kaWFucmVkO1xyXG4gICAgXHJcbiAgICAvKiBcclxuICAgIEFsZXJ0IGFuZCBtZXNzYWdlIHBhbmVscyBcclxuICAgICovXHJcbiAgICAvKi0tbWVzc2FnZS1iYWNrZ3JvdW5kLWNvbG91cjogI2Y4ZjhmODsqL1xyXG5cclxuICAgIC8qXHJcbiAgICBMb2dvXHJcbiAgICAqL1xyXG4gICAgLS1sb2dvLXdpZHRoOiAzMTBweDtcclxuXHJcbiAgICAtLWljY19ob3ZlcmJveGVzLWNvbG91cjogMXB4IHNvbGlkICM3NTZlNmU7XHJcblxyXG4gICAgLyogaG92ZXIgY29sb3VyIGZvciBib3hlcyAqL1xyXG4gICAgLS1pY2NfdHJhbnNpdGlvbi1mb3ItaG92ZXI6IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLWluLW91dCwgYm94LXNoYWRvdyAwLjE1cyBlYXNlLWluLW91dDtcclxuICAgIC0taWNjX3NwZWVkLWJveC1zZWxlY3RlZDogIzA2MDYwNjZlO1xyXG4gICAgXHJcbiAgICAvKiBCaWcgcmVkIGJ1dHRvbiAqL1xyXG4gICAgLS1icmItbWlzc2luZy1wb3N0Y29kZS1jb2xvdXI6ICNlZTEwZjQ7XHJcbiAgICAtLWJyYi1ub3Qtc3RhcnRlZDogcmdiYSgxMDgsIDExNywgMTI1LCAxKTtcclxuICAgIC0tYnJiLWdsb3ctbWFya2VyLW9mZmxpbmU6IHJnYmEoMjI4LCAxNywgMTcsIDAuNik7XHJcbiAgICAtLWJyYi1nbG93LW1hcmtlci1vZmZsaW5lLTUwOiByZ2JhKDIyOCwgMTcsIDE3LCAwLjkpO1xyXG4gICAgLS1icmItZ2xvdy1tYXJrZXItb25saW5lOiByZ2JhKDAsIDE1MywgNTEsIDAuNik7XHJcbiAgICAtLWJyYi1nbG93LW1hcmtlci1vbmxpbmUtNTA6IHJnYmEoMCwgMTUzLCA1MSwgMC45KTtcclxuICAgIC0tYnJiLWdsb3ctbWFya2VyLW5vdC1zdGFydGVkOiByZ2JhKDEwOCwgMTE3LCAxMjUsIDAuNik7XHJcbiAgICAtLWJyYi1nbG93LW1hcmtlci1lcnJvci1taXNzaW5nLXBvc3Rjb2RlOiByZ2JhKDIzOCwgMTYsIDI0NCwgMC42KTtcclxuICAgIFxyXG4gICAgLyogT3JhbmdlIGlzIHVzZWQgZm9yIGhpZ2hsaWdodGluZywgaG92ZXJpbmcgKi9cclxuICAgIC0tbmFzc3Rhcm9yYW5nZTogI2ZmYjU0ODtcclxuICAgIC0tbmFzc3RhcmJsdWU6ICMyYTI2OWY7XHJcbiAgICAtLW5hc3N0YXJncmVlbjogIzRlYjM4ZDtcclxuICAgIC0tbmFzc3RhcnBpbms6ICNlMDNiOTI7XHJcbiAgICAtLWZpbHRlcl9uYXNzdGFyb3JhbmdlOiBicmlnaHRuZXNzKDAuNykgc2VwaWEoMC45KSBzYXR1cmF0ZSg5OTIwJSkgaHVlLXJvdGF0ZSg0OWRlZyk7XHJcbiAgICAtLWZpbHRlcl9uYXNzdGFyYmx1ZTogYnJpZ2h0bmVzcygwLjUpIHNlcGlhKDEpIHNhdHVyYXRlKDEwMDAwJSkgaHVlLXJvdGF0ZSgyMDBkZWcpO1xyXG4gICAgLS1maWx0ZXJfbmFzc3RhcmdyZWVuOiBicmlnaHRuZXNzKDAuNSkgc2VwaWEoMSkgc2F0dXJhdGUoMTAwMDAlKSBodWUtcm90YXRlKDEyMGRlZyk7XHJcbiAgICAtLWZpbHRlcl9uYXNzdGFycGluazogYnJpZ2h0bmVzcygwLjUpIHNlcGlhKDEpIHNhdHVyYXRlKDEwMDAwJSkgaHVlLXJvdGF0ZSgyOTBkZWcpO1xyXG4gICAgXHJcbiAgICAtLW5hc3N0YXJ3YXNncmVlbm5vd2JsdWU6ICNjYWUzZmE7XHJcblxyXG4gICAgLyotLW5hc3NzdGFyaHlwZXJsaW5rOiAjZTAzYjkyOyovXHJcbiAgICAvKiBUaGUgbWFpbiBjb2xvciBvZiBsb2dvICovXHJcbiAgICAtLXBhcnRuZXJfbG9nb19jb2xvdXI6IHdoaXRlO1xyXG4gICAgLS10YWJsZXJvd2hvdmVyY29sOiAjZjJiZjFmNDI7XHJcbiAgICAtLXBhcnRuZXJfbG9nb19jb2xvdXJfcmdiOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpO1xyXG4gICAgLS1wYXJ0bmVyX2xvZ29fY29sb3VyX3JnYl9mb3JfaG92ZXI6IHJnYmEoMjM3LCAyMDcsIDcxLCAwLjA1KTtcclxuICAgIC0tcGFydG5lcl9sb2dvX3RleHRjb2xvdXI6IHdoaXRlO1xyXG4gICAgLS1wYXJ0bmVyX2dsb3c6IHdoaXRlO1xyXG4gICAgXHJcbiAgICAvKiBEYXNoYm9hcmQqL1xyXG4gICAgLS10aWxlSW50cm9TZWN0aW9uSGVpZ2h0OiA2MHB4O1xyXG4gICAgLS10aWxlSW50cm9TZWN0aW9uQm90dG9tQm9yZGVyOiAxcHggc29saWQgZ3JlZW47XHJcbiAgICAtLXRpbGVJbnRyb1NlY3Rpb25Gb250U2l6ZTogMTRweDtcclxuICAgIC8qLS1oZWFkZXJSYWRpdXM6IDEycHg7Ki9cclxuICAgIFxyXG4gICAgLypBdmFpbGFiaWxpdHkqL1xyXG4gICAgLS1ub0F2YWlsYWJsaXR5OiAjOTkxNTE1O1xyXG4gICAgLS1wcm9kdWN0QXZhaWxhYmxlOiAjMzlhYjExO1xyXG4gICAgLS1kYXNoYm9hcmROb3RTZWxlY3RlZFRhYjogdmFyKC0tYmVpZ2Utc29mdCk7XHJcbiAgICAtLWRhc2hib2FyZC1idXR0b24tYmFja2dyb3VuZDogIzFkMWMxYztcclxuXHJcbiAgICAvKiBOZXcgYnJhbmRpbmcgMjAyNSAqL1xyXG4gICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICAgIENPUkUgQlJBTkQgQ09MT1VSU1xyXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbiAgICAvKiBMYXZlbmRlciAqL1xyXG4gICAgLS1sYXZlbmRlci0xMDA6ICNFQ0QxRkE7XHJcbiAgICAtLWxhdmVuZGVyLTMwMDogI0MxQThGNTtcclxuICAgIC0tbGF2ZW5kZXItNDAwOiAjOUM3NkVGO1xyXG4gICAgLS1sYXZlbmRlci02MDA6ICM3NTNGRTk7XHJcbiAgICAtLWxhdmVuZGVyLTgwMDogIzMzMDA0MDtcclxuXHJcbiAgICAvKiBOZWJ1bGEgKi9cclxuICAgIC0tbmVidWxhLTEwMDogI0MyRjBGRjtcclxuICAgIC0tbmVidWxhLTMwMDogIzg1RDhGRjtcclxuICAgIC0tbmVidWxhLTQwMDogIzNEQzJGRjtcclxuICAgIC0tbmVidWxhLTYwMDogIzAwOTlENjtcclxuICAgIC0tbmVidWxhLTgwMDogIzAwMkQ0MjtcclxuXHJcbiAgICAvKiBUZWFsICovXHJcbiAgICAtLXRlYWwtMTAwOiAjQzJGNUMyO1xyXG4gICAgLS10ZWFsLTMwMDogIzY5RTdCMTtcclxuICAgIC0tdGVhbC00MDA6ICMyMkQ4OTU7XHJcbiAgICAtLXRlYWwtNjAwOiAjMDdCMTc2O1xyXG4gICAgLS10ZWFsLTgwMDogIzAyNDIzQztcclxuXHJcbiAgICAtLXBsdW06ICMyMDAwMjg7XHJcbiAgICAtLXBsdW0tbGlnaHQ6ICNlY2QxZmE1MjtcclxuXHJcbiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgICAgICBORVVUUkFMU1xyXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuICAgIC0tZ3JleTogI0UwRERENjtcclxuICAgIC0tYmVpZ2U6ICNFRkVDRTU7XHJcbiAgICAtLWJlaWdlLXNvZnQ6ICNGNkY1RjI7XHJcbiAgICAtLXdoaXRlOiAjRkZGRkZGO1xyXG4gICAgLS1kYXJrOiAjMUIxQjFCO1xyXG5cclxuXHJcbiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgICAgICBCUkFORCBHUkFESUVOVCBTVE9QU1xyXG4gICAgICAgKHNoYXJlZCBzb2Z0IGJhY2tncm91bmQgdG9uZXMpXHJcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4gICAgLS1ncmFkaWVudC10b3A6ICNGN0Y2RjI7ICAgLyogMjUlICovXHJcbiAgICAtLWdyYWRpZW50LW1pZDogI0ZGRjZFNTsgICAvKiA3MCUgKi9cclxuXHJcblxyXG4gICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICAgICAgQlJBTkQgR1JBRElFTlRTXHJcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4gICAgLS1ncmFkaWVudC12aW9sZXQ6IGxpbmVhci1ncmFkaWVudChcclxuICAgICAgICAgICAgMTgwZGVnLFxyXG4gICAgICAgICAgICB2YXIoLS1ncmFkaWVudC10b3ApIDI1JSxcclxuICAgICAgICAgICAgdmFyKC0tZ3JhZGllbnQtbWlkKSA3MCUsXHJcbiAgICAgICAgICAgICNERUQxRkEgMTAwJVxyXG4gICAgKTtcclxuXHJcbiAgICAtLWdyYWRpZW50LXJveS1oYWNrOiBsaW5lYXItZ3JhZGllbnQoLTc5ZGVnLCB2YXIoLS1ncmFkaWVudC10b3ApIDI1JSwgdmFyKC0tZ3JhZGllbnQtbWlkKSA3MCUsICNERUQxRkEgMTAwJSk7XHJcblxyXG4gICAgLS1ncmFkaWVudC1uZWJ1bGE6IGxpbmVhci1ncmFkaWVudChcclxuICAgICAgICAgICAgMTgwZGVnLFxyXG4gICAgICAgICAgICB2YXIoLS1ncmFkaWVudC10b3ApIDI1JSxcclxuICAgICAgICAgICAgdmFyKC0tZ3JhZGllbnQtbWlkKSA3MCUsXHJcbiAgICAgICAgICAgICNDQ0VGRkYgMTAwJVxyXG4gICAgKTtcclxuXHJcbiAgICAtLWdyYWRpZW50LXRlYWw6IGxpbmVhci1ncmFkaWVudChcclxuICAgICAgICAgICAgMTgwZGVnLFxyXG4gICAgICAgICAgICB2YXIoLS1ncmFkaWVudC10b3ApIDI1JSxcclxuICAgICAgICAgICAgdmFyKC0tZ3JhZGllbnQtbWlkKSA3MCUsXHJcbiAgICAgICAgICAgICNCNEYzQzcgMTAwJVxyXG4gICAgKTtcclxuXHJcblxyXG4gICAgLS11bnJlYWR5LW92ZXJsYXktYmc6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NSk7IC8qIGdsYXNzIHZlaWwgKi9cclxuICAgIC0tdW5yZWFkeS1ibHVyOiA0cHg7XHJcbiAgICAtLXVucmVhZHktdGV4dDogIzU1NTsgICAgICAgICAgLyogdGV4dCBjb2xvdXIgKi9cclxuICAgIC0tdW5yZWFkeS1mb250LXNpemU6IGNsYW1wKDAuOTVyZW0sIDEuNXZ3LCAxLjI1cmVtKTtcclxuICAgIC0tdW5yZWFkeS1mb250LXdlaWdodDogNzAwO1xyXG4gICAgLS11bnJlYWR5LWxldHRlci1zcGFjaW5nOiAwLjNweDtcclxuICAgIC0tdW5yZWFkeS1wYWRkaW5nOiAxMnB4IDE2cHg7ICAvKiBpbm5lciBwYWRkaW5nIGlmIHlvdSB3YW50IGEgcGlsbC9iYWRnZSBsb29rICovXHJcbiAgICAtLXVucmVhZHktcmFkaXVzOiAxMHB4OyAgICAgICAgLyogb3B0aW9uYWw6IHJvdW5kZWQgYmFja2dyb3VuZCBiZWhpbmQgdGhlIG1lc3NhZ2UgKi9cclxuICAgIC0tdW5yZWFkeS10ZXh0LWJnOiB0cmFuc3BhcmVudDsvKiBzZXQgdG8gcmdiYSgyNTUsMjU1LDI1NSwuNykgZm9yIHBpbGwgKi9cclxuICAgIC0tdW5yZWFkeS1zaGFkb3c6IDAgNnB4IDE4cHggcmdiYSgwLDAsMCwuMDgpO1xyXG5cclxuXHJcbiAgICAtLXRvb2x0aXAtYmc6IHJnYmEoMzAsIDMwLCAzNCwgMC45NSk7XHJcbiAgICAtLXRvb2x0aXAtZmc6ICNmZmZmZmY7XHJcbiAgICAtLXRvb2x0aXAtcmFkaXVzOiA4cHg7XHJcbiAgICAtLXRvb2x0aXAtcGFkZGluZzogOHB4IDEwcHg7XHJcbiAgICAtLXRvb2x0aXAtZm9udC1zaXplOiAwLjg1cmVtO1xyXG4gICAgLS10b29sdGlwLXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDAsMCwwLDAuMTgpO1xyXG4gICAgLS10b29sdGlwLW9mZnNldDogMTBweDtcclxuICAgIC0tdG9vbHRpcC10cmFuc2l0aW9uOiAxODBtcyBjdWJpYy1iZXppZXIoLjIsLjgsLjIsMSk7XHJcblxyXG4gICAgLS1hdmFpbGFiaWxpdHktbm9uZS1jYXJkLXdpZHRoOiAxMzBweDtcclxuICAgIC0tYXZhaWxhYmlsaXR5LXNvbWUtY2FyZC13aWR0aDogMTQ3cHg7XHJcbn1cclxuXHJcclxuXHJcblxyXG4vKiBTY2FsZXMgc21vb3RobHkgYmV0d2VlbiB+MTZweCBhbmQgfjIwcHggYmFzZWQgb24gdmlld3BvcnQgd2lkdGggKi9cclxuLypcclxuaHRtbCB7IFxyXG4gICAgZm9udC1zaXplOiBjbGFtcCgxMDAlLCAxLjJ2dyArIDAuNXJlbSwgMTI1JSk7XHJcbn0gICAgISogYmFzZSB+MTZweCAtIHNlZSBub3RlcyBhYm91dCBob3cgZGVmYXVsdCBpcyBzZXQgKiFcclxuKi9cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gICAgZm9udC1mYW1pbHk6ICdJY29uYSBTYW5zJztcclxuICAgIHNyYzpcclxuICAgICAgICAgICAgbG9jYWwoJ0ljb25hIFNhbnMgUmVndWxhcicpLFxyXG4gICAgICAgICAgICB1cmwoJy4uLy4uL2ZvbnRzL0ljb25hU2Fucy1SZWd1bGFyLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTtcclxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ub3JtYWwpO1xyXG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICAgIGZvbnQtZmFtaWx5OiAnR3JlbmV0dGVQcm8nO1xyXG4gICAgc3JjOlxyXG4gICAgICAgICAgICBsb2NhbCgnSWNvbmEgU2FucyBSZWd1bGFyJyksXHJcbiAgICAgICAgICAgIHVybCgnLi4vLi4vZm9udHMvR3JlbmV0dGVQcm8ub3RmJykgZm9ybWF0KCdvcGVudHlwZScpO1xyXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW5vcm1hbCk7XHJcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gICAgZm9udC1mYW1pbHk6ICdHcmVuZXR0ZVBybyc7XHJcbiAgICBzcmM6XHJcbiAgICAgICAgICAgIGxvY2FsKCdJY29uYSBTYW5zIFNlbWkgQm9sZCcpLFxyXG4gICAgICAgICAgICB1cmwoJy4uLy4uL2ZvbnRzL0dyZW5ldHRlUHJvLVNlbWlCb2xkLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTtcclxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XHJcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbn1cclxuXHJcbmJvZHkge1xyXG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGZvbnQtZmFtaWx5LW5vLW1pc3NpbmctZ2VuZXJpYy1mYW1pbHkta2V5d29yZCAqL1xyXG4gICAgLypub2luc3BlY3Rpb24gQ3NzSW52YWxpZFByb3BlcnR5VmFsdWUgKi9cclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXNhbnMsIHNhbnMtc2VyaWYpO1xyXG4gICAgY29sb3I6IGJsYWNrIWltcG9ydGFudDtcclxuICAgIHBhZGRpbmctdG9wOiAwO1xyXG59XHJcblxyXHJcbi5VbWJyYWNvRXh0IHtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDBcclxufVxyXG5cclxuLyogIFxyXG4gICAgV2hvbGUgb2xkIFVtYnJhY2NvIENNUyAoaG9tZSBzY3JlZW4pXHJcblxyXG4gICAgQ29udGFpbnMgdHdvIGNvbHVtbnMgZWFjaCBvZiB3aGljaCBjYW4gY29udGFpbiAxLi5uIHBhbmVscyBsaWtlIE5ld3MgLyBQYXJ0bmVyIE1hbmFnZXIgLyBTZXJ2aWNlIFN0YXR1cyBldGNcclxuKi9cclxuLk9sZFVtYnJhY29TZWN0aW9uIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxufVxyXG5cclxuLypMZWZ0IHBhbmVsKi9cclxuLk9sZFVtYnJhY29TZWN0aW9uTGVmdCB7XHJcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xyXG4gICAgZmxleC1ncm93OiA2O1xyXG4gICAgZmxleC1zaHJpbms6IDE7XHJcbiAgICBmbGV4LWJhc2lzOiAyMGVtO1xyXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgIHBhZGRpbmc6IDAgMTBweCAxMHB4IDA7XHJcbn1cclxuXHJcbi5PbGRVbWJyYWNvU2VjdGlvbkxlZnQyIHtcclxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XHJcbiAgICBmbGV4LWdyb3c6IDA7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICAgIHBhZGRpbmc6IDEwcHg7XHJcbn1cclxuXHJcbi8qUmlnaHQgcGFuZWwqL1xyXG4uT2xkVW1icmFjb1NlY3Rpb25SaWdodCB7XHJcbiAgICAtd2Via2l0LWJveC1mbGV4OiAyO1xyXG4gICAgZmxleC1ncm93OiAyO1xyXG4gICAgZmxleC1zaHJpbms6IDI7XHJcbiAgICBmbGV4LWJhc2lzOiAyMGVtO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgcGFkZGluZzogMCAwIDEwcHg7XHJcbn1cclxuXHJcblxyXG4vKiBcclxuICAgIEFsbCBuZXcgZmxleCBzdHVmZiB0byBjb250cm9sIGhvbWUgc2NyZWVuXHJcbiAgICBSTCAyMy8xLzI2IC0gVGhpcyBpcyBncmFkdWFsbHkgYmVlbiBwaGFzZWQgb3V0IGFuZCByZXBsYWNlZCB3aXRoIG90aGVyIGNsYXNzZXMgc28gZG9udCB1c2VcclxuKi9cclxuLmZsZXgtbmF2YmFyYnV0dG9ucyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xyXG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XHJcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG4gICAgLXdlYmtpdC1ib3gtcGFjazogZW5kO1xyXG4gICAgLW1zLWZsZXgtcGFjazogZW5kO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICAgIC13ZWJraXQtYm94LWFsaWduOiBzdGFydDtcclxuICAgIC1tcy1mbGV4LWFsaWduOiBzdGFydDtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG59XHJcblxyXG4uZmxleC10b29sYmFyIHtcclxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcclxuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xyXG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcclxuICAgIC13ZWJraXQtYm94LXBhY2s6IHN0YXJ0O1xyXG4gICAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgICAtd2Via2l0LWJveC1hbGlnbjogZW5kO1xyXG4gICAgLW1zLWZsZXgtYWxpZ246IGVuZDtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcclxufVxyXG5cclxuLmZsZXgtdG9vbGJhcndpdGhnYXAge1xyXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xyXG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XHJcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG4gICAgLXdlYmtpdC1ib3gtcGFjazogc3RhcnQ7XHJcbiAgICAtbXMtZmxleC1wYWNrOiBzdGFydDtcclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICAgIC13ZWJraXQtYm94LWFsaWduOiBlbmQ7XHJcbiAgICAtbXMtZmxleC1hbGlnbjogZW5kO1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xyXG4gICAgZ3JpZC1nYXA6IDEwcHg7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG59XHJcblxyXG4uZmxleC10b29sYmFyMiB7XHJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XHJcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcclxuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XHJcbiAgICAtd2Via2l0LWJveC1wYWNrOiBzdGFydDtcclxuICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG59XHJcblxyXG4ucXVpY2tjb25uZWN0aW9uZXh0IHtcclxuICAgIG1hcmdpbi1yaWdodDogMTNweFxyXG59XHJcblxyXG4uT2xkVW1icmFjb1NlY3Rpb25Db250ZW50IHtcclxuICAgIHBhZGRpbmc6IDVweDtcclxufVxyXG5cclxuLnF1aWNrY29ubmVjdGlvbnNlYXJjaCB7XHJcbiAgICB3aWR0aDogOTUlICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5idXR0b24tcXVpY2stY29ubmVjdGlvbi1zZWFyY2gge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgbWFyZ2luLWxlZnQ6IC0wLjZyZW07XHJcbn1cclxuXHJcbi5idXR0b24tcXVpY2stY29ubmVjdGlvbi1zZWFyY2gtbWFyZ2luLWJyZWFrIHtcclxuICAgIG1hcmdpbi1ib3R0b206IHVuc2V0IWltcG9ydGFudDtcclxufVxyXG5cclxuLypcclxuICAgIFBhcnRuZXIgdGVhbSBPbmx5IE5lZWRlZCBmb3IgaG9tZSBzY3JlZW5cclxuKi9cclxuLnBhcnRuZXJ0ZWFtIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWhlYWRlci1iYWNrZ3JvdW5kKTtcclxufVxyXG5cclxuLnBhcnRuZXItdGVhbS1lbWFpbCB7XHJcbiAgICBmb250LXNpemU6IDAuOGVtO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgcGFkZGluZy10b3A6IDA7XHJcbn1cclxuXHJcblxyXG4ucGFydG5lci10ZWFtLWVtYWlsOmhvdmVyIHtcclxuICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xyXG59XHJcblxyXG4ucGFydG5lci1wZXJzb24tcm9sZSB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGE0YTRhO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMXB4IDJweCAzcHggcmdiYSgwLDAsMCwuNSk7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xyXG59XHJcblxyXG4ucGFydG5lci1wZXJzb24tbmFtZSB7XHJcbiAgICBmb250LXNpemU6IDEuMWVtO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgcGFkZGluZzogMC41cmVtO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxufVxyXG5cclxuLnBhcnRuZXJ0ZWFtOmhvdmVyIHtcclxuICAgIGJvcmRlcjogMXB4ICNjY2NjY2M7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1JTtcclxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMXB4IDJweCAzcHggcmdiYSgwLDAsMCwuNSk7XHJcbiAgICBib3gtc2hhZG93OiAxcHggMnB4IDNweCByZ2JhKDAsMCwwLC41KTtcclxufVxyXG5cclxuLypcclxuICAgIEVuZCA6OiBQYXJ0bmVyIHRlYW0gT25seSBOZWVkZWQgZm9yIGhvbWUgc2NyZWVuXHJcbiovXHJcblxyXG4uT2xkVW1icmFjb1F1aWNrTGlua3Mge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7XHJcbiAgICBncmlkLXJvdy1nYXA6IDAuMXJlbTtcclxuICAgIGdyaWQtY29sdW1uLWdhcDogMC4xcmVtO1xyXG59XHJcblxyXG4uT2xkVW1icmFjb1F1aWNrTGlua3NJdGVtIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDAuNXJlbTtcclxufVxyXG5cclxuLyogTWFrZSBjb250YWluZXIgaXRlbXMgaG92ZXIgKi9cclxuLk9sZFVtYnJhY29RdWlja0xpbmtzSXRlbTpob3ZlciAuZGFzaGJvYXJkLXF1aWNrLWxpbmsge1xyXG4gICAgY29sb3I6ICMwMDA7XHJcbn1cclxuXHJcbi5kYXNoYm9hcmQtcXVpY2stbGluayB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICBjb2xvcjogIzAwMDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHBhZGRpbmc6IDAuN3JlbTtcclxuICAgIC8qd2lkdGg6IDEyMHB4IWltcG9ydGFudDsqL1xyXG59XHJcbi8qIFdoZW4gdGhlIHBhcmVudCBsaW5rIGlzIGhvdmVyZWQsIGNoYW5nZSB0aGUgaWNvbiBjb2xvciAqL1xyXG4uZGFzaGJvYXJkLXF1aWNrLWxpbms6aG92ZXIgLmRhc2hib2FyZC1xdWljay1saW5rLWljb24ge1xyXG4gICAgY29sb3I6IHZhcigtLWxhdmVuZGVyLTYwMCkgIWltcG9ydGFudDtcclxuICAgIC8qZm9udC13ZWlnaHQ6IHZhcigtLWJ1dHRvbi1mb250LXdlaWdodC1vbi1ob3Zlcik7XHJcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCAycHggYmxhY2spOyovXHJcbn1cclxuXHJcbi5kYXNoYm9hcmQtcXVpY2stbGluay1pY29uIHtcclxuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcclxuICAgIHBhZGRpbmctYm90dG9tOiA1cHggIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiB2YXIoLS1xdWlja2xpbmtzLWljb24tY29sb3IpO1xyXG59XHJcblxyXG4uZGFzaGJvYXJkLXF1aWNrLWxpbmstaWNvbjpob3ZlciB7XHJcbiAgICBjb2xvcjogdmFyKC0tcXVpY2tsaW5rcy1pY29uLWNvbG9yLWhvdmVyKTtcclxufVxyXG5cclxuXHJcbi8qIENvbm5lY3Rpb24gcXVpY2sgc2VhcmNoICovXHJcbi50ZWxlcGhvbmVTdXBwb3J0IHtcclxuICAgIC8qIHBhZGRpbmctdG9wOiA1cHg7ICovXHJcbiAgICB3aWR0aDogMTJyZW07XHJcbn1cclxuXHJcbi5oaWdobGlnaHROdW1iZXIge1xyXG4gICAgY29sb3I6I2UwM2I5MjtcclxufVxyXG5cclxuLypRdWljayBsaW5rcyovXHJcbi5VbWJyYWNvUXVpY2tMaW5rSXRlbSB7XHJcbiAgICBtaW4td2lkdGg6IDEyY2ggIWltcG9ydGFudDtcclxuICAgIG1pbi1oZWlnaHQ6IDM0cHggIWltcG9ydGFudDtcclxuICAgIG1hcmdpbi10b3A6IDhweCAhaW1wb3J0YW50O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogOHB4ICFpbXBvcnRhbnQ7XHJcbiAgICBmb250LXNpemU6IDEuMWVtICFpbXBvcnRhbnQ7XHJcbiAgICBwYWRkaW5nLXRvcDogMTBweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHdpZHRoOiAxMjBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uT2xkVW1icmFjb1F1aWNrTGlua3MgPiBkaXYge1xyXG4gICAgcGFkZGluZzogNXB4O1xyXG4gICAgd2lkdGg6IDEyMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcclxuXHJcclxuLldlbGNvbWVNZXNzYWdlIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taGVhZGVyLWJhY2tncm91bmQpO1xyXG4gICAgY29sb3I6IHZhcigtLWhlYWRlci10ZXh0LWNvbG91cik7XHJcbiAgICBwYWRkaW5nOiAzcHg7XHJcbiAgICBtYXJnaW4tdG9wOiAtMXJlbTtcclxuICAgIG1hcmdpbi1ib3R0b206IDAuM3JlbTtcclxufVxyXHJcblxyXHJcbi5oaWRlbWUge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLmhpZGVtZWRpcmVjdGZvcmNlIHtcclxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnNob3dtZSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLmRpc3BsYXl0YWJsZSB7XHJcbiAgICBkaXNwbGF5OiB0YWJsZVxyXG59XHJcblxyXG4udGV4dGNlbnRlciB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcclxuXHJcclxuLypcclxuLkltcGVyc29uYXRvciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYWdlYmFja2dyb3VuZCk7XHJcbiAgICBjb2xvcjogdmFyKC0td2hpdGUpO1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICBoZWlnaHQ6IDE4cHg7XHJcbiAgICBtYXJnaW4tdG9wOiAycHg7XHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBkYXJ0aGZvcmltcGVyc29uYXRpbmc7XHJcbiAgICBhbmltYXRpb24tbmFtZTogZGFydGhmb3JpbXBlcnNvbmF0aW5nO1xyXG4gICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDVzO1xyXG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiA1cztcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMjtcclxuICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDI7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1uYXNzdGFyZ3JlZW4pO1xyXG4gICAgcGFkZGluZzogNHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgZm9udC1zaXplOiAwLjllbTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGRhcnRoZm9yaW1wZXJzb25hdGluZyB7XHJcbiAgICBmcm9tIHtcclxuICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCA3cHggM3B4IHZhcigtLW5hc3N0YXJncmVlbiksIDAgMCAycHggMnB4IHZhcigtLW5hc3N0YXJncmVlbik7XHJcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDdweCAzcHggdmFyKC0tbmFzc3RhcmdyZWVuKSwgMCAwIDJweCAycHggdmFyKC0tbmFzc3RhcmdyZWVuKTtcclxuICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgfVxyXG5cclxuICAgIDI1JSB7XHJcbiAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMTRweCAzcHggdmFyKC0tbmFzc3RhcmdyZWVuKSwgMCAwIDNweCAycHggdmFyKC0tbmFzc3RhcmdyZWVuKTtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDAgMTRweCAzcHggdmFyKC0tbmFzc3RhcmdyZWVuKSwgMCAwIDNweCAycHggdmFyKC0tbmFzc3RhcmdyZWVuKTtcclxuICAgICAgICBjb2xvcjogdmFyKC0tbmFzc3Rhcm9yYW5nZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIDUwJSB7XHJcbiAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMzZweCAzcHggdmFyKC0tbmFzc3RhcmdyZWVuKSwgMCAwIDhweCAycHggdmFyKC0tbmFzc3RhcmdyZWVuKTtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDAgMzZweCAzcHggdmFyKC0tbmFzc3RhcmdyZWVuKSwgMCAwIDhweCAycHggdmFyKC0tbmFzc3RhcmdyZWVuKTtcclxuICAgICAgICBjb2xvcjogdmFyKC0tbmFzc3Rhcm9yYW5nZSk7XHJcbiAgICB9XHJcblxyXG4gICAgNzUlIHtcclxuICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAxNHB4IDNweCB2YXIoLS1uYXNzdGFyZ3JlZW4pLCAwIDAgM3B4IDJweCB2YXIoLS1uYXNzdGFyZ3JlZW4pO1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAxNHB4IDNweCB2YXIoLS1uYXNzdGFyZ3JlZW4pLCAwIDAgM3B4IDJweCB2YXIoLS1uYXNzdGFyZ3JlZW4pO1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1uYXNzdGFyb3JhbmdlKTtcclxuICAgIH1cclxuXHJcbiAgICB0byB7XHJcbiAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgM3B4IDNweCB2YXIoLS1uYXNzdGFyZ3JlZW4pLCAwIDAgMXB4IDJweCB2YXIoLS1uYXNzdGFyZ3JlZW4pO1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAzcHggM3B4IHZhcigtLW5hc3N0YXJncmVlbiksIDAgMCAxcHggMnB4IHZhcigtLW5hc3N0YXJncmVlbik7XHJcbiAgICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IHZhcigtLXBhcnRuZXJfbG9nb19jb2xvdXIpIDFweCBzb2xpZCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGRhcnRoZm9yaW1wZXJzb25hdGluZyB7XHJcbiAgICBmcm9tIHtcclxuICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCA3cHggM3B4IHZhcigtLW5hc3N0YXJncmVlbiksIDAgMCAycHggMnB4IHZhcigtLW5hc3N0YXJncmVlbik7XHJcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDdweCAzcHggdmFyKC0tbmFzc3RhcmdyZWVuKSwgMCAwIDJweCAycHggdmFyKC0tbmFzc3RhcmdyZWVuKTtcclxuICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgfVxyXG5cclxuICAgIDI1JSB7XHJcbiAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMTRweCAzcHggdmFyKC0tbmFzc3RhcmdyZWVuKSwgMCAwIDNweCAycHggdmFyKC0tbmFzc3RhcmdyZWVuKTtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDAgMTRweCAzcHggdmFyKC0tbmFzc3RhcmdyZWVuKSwgMCAwIDNweCAycHggdmFyKC0tbmFzc3RhcmdyZWVuKTtcclxuICAgICAgICBjb2xvcjogdmFyKC0tbmFzc3Rhcm9yYW5nZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIDUwJSB7XHJcbiAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMzZweCAzcHggdmFyKC0tbmFzc3RhcmdyZWVuKSwgMCAwIDhweCAycHggdmFyKC0tbmFzc3RhcmdyZWVuKTtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDAgMzZweCAzcHggdmFyKC0tbmFzc3RhcmdyZWVuKSwgMCAwIDhweCAycHggdmFyKC0tbmFzc3RhcmdyZWVuKTtcclxuICAgICAgICBjb2xvcjogdmFyKC0tbmFzc3Rhcm9yYW5nZSk7XHJcbiAgICB9XHJcblxyXG4gICAgNzUlIHtcclxuICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAxNHB4IDNweCB2YXIoLS1uYXNzdGFyZ3JlZW4pLCAwIDAgM3B4IDJweCB2YXIoLS1uYXNzdGFyZ3JlZW4pO1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAxNHB4IDNweCB2YXIoLS1uYXNzdGFyZ3JlZW4pLCAwIDAgM3B4IDJweCB2YXIoLS1uYXNzdGFyZ3JlZW4pO1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1uYXNzdGFyb3JhbmdlKTtcclxuICAgIH1cclxuXHJcbiAgICB0byB7XHJcbiAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgM3B4IDNweCB2YXIoLS1uYXNzdGFyZ3JlZW4pLCAwIDAgMXB4IDJweCB2YXIoLS1uYXNzdGFyZ3JlZW4pO1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAzcHggM3B4IHZhcigtLW5hc3N0YXJncmVlbiksIDAgMCAxcHggMnB4IHZhcigtLW5hc3N0YXJncmVlbik7XHJcbiAgICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IHZhcigtLXBhcnRuZXJfbG9nb19jb2xvdXIpIDFweCBzb2xpZCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG59XHJcbiovXHJcblxyXHJcblxyXG5cclxyXG4uZW52aXJvbm1lbnQge1xyXG4gICAgcGFkZGluZzogNXB4IDIwcHg7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIC8qcG9zaXRpb246IGZpeGVkOyovXHJcbiAgICB0b3A6IDA7XHJcbiAgICB6LWluZGV4OiA5OTk5O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBvcGFjaXR5OiAwLjc7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi5lbnZpcm9ubWVudC5kZXYge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzUwZmZiMDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkMmU1Zjk7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbiAgICBwYWRkaW5nOiAycHg7XHJcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNXB4O1xyXG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNXB4O1xyXG59XHJcblxyXG4uZW52aXJvbm1lbnQudWF0IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmOTA7XHJcbiAgICBjb2xvcjogIzAwMDtcclxufVxyXG5cclxyXG5cclxyXG5cclxuLypERUZVTkNUIE5PVyovXHJcbi8qLm1lc3NhZ2Uge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWVzc2FnZS1iYWNrZ3JvdW5kLWNvbG91cik7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjQ0NDO1xyXG4gICAgcGFkZGluZzogOHB4O1xyXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiB2YXIoLS1idXR0b25fc2hhZG93KTtcclxuICAgIGJveC1zaGFkb3c6IHZhcigtLWJ1dHRvbl9zaGFkb3cpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9ucmFkaXVzKTtcclxufVxyXG5cclxuLmVycm9yIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmYzQxNDE7XHJcbiAgICBib3JkZXItY29sb3I6ICNGMDA7XHJcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IHZhcigtLWJ1dHRvbl9zaGFkb3cpO1xyXG4gICAgYm94LXNoYWRvdzogdmFyKC0tYnV0dG9uX3NoYWRvdyk7XHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b25yYWRpdXMpO1xyXG59XHJcblxyXG4ud2FybmluZyB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkNFQkI2O1xyXG4gICAgYm9yZGVyLWNvbG9yOiAjRkMwO1xyXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiB2YXIoLS1idXR0b25fc2hhZG93KTtcclxuICAgIGJveC1zaGFkb3c6IHZhcigtLWJ1dHRvbl9zaGFkb3cpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9ucmFkaXVzKTtcclxufVxyXG5cclxuLmluZm8ge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0NCRjFGRTtcclxuICAgIGJvcmRlci1jb2xvcjogIzc5QkNGRjtcclxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogdmFyKC0tYnV0dG9uX3NoYWRvdyk7XHJcbiAgICBib3gtc2hhZG93OiB2YXIoLS1idXR0b25fc2hhZG93KTtcclxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbnJhZGl1cyk7XHJcbn1cclxuXHJcbi5nb29kIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNEN0U5QzE7XHJcbiAgICBib3JkZXItY29sb3I6ICM4QUIzM0Q7XHJcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IHZhcigtLWJ1dHRvbl9zaGFkb3cpO1xyXG4gICAgYm94LXNoYWRvdzogdmFyKC0tYnV0dG9uX3NoYWRvdyk7XHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b25yYWRpdXMpO1xyXG59Ki9cclxuXHJcclxuXHJcclxuLmxvZ28ge1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICBoZWlnaHQ6IDYwcHg7XHJcbiAgICB3aWR0aDogdmFyKC0tbG9nby13aWR0aCk7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHRleHQtaW5kZW50OiAtOTk5OTlweDtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbiFpbXBvcnRhbnQ7ICAgLyogc2NhbGVzIGltYWdlIHRvIGZpdCBlbnRpcmVseSAqL1xyXG4gICAgbWl4LWJsZW5kLW1vZGU6IG11bHRpcGx5IWltcG9ydGFudDtcclxufVxyXG5cclxuLmxvZ2luIC5sb2dvIHtcclxuXHJcbiAgICBtYXJnaW46IDEwcHggYXV0byAyMHB4IGF1dG87XHJcbiAgICBmbG9hdDogbm9uZTtcclxuICAgIHdpZHRoOiAzMDBweDsgICAgICAgICAgLyogY29udGFpbmVyIHdpZHRoICovXHJcbiAgICBoZWlnaHQ6IDEwMHB4OyAgICAgICAgIC8qIGFkZCBhIGhlaWdodCBzbyB0aGUgY29udGFpbmVyIGhhcyBzcGFjZSAqL1xyXG4gICAgYmFja2dyb3VuZDogdXJsKCcuLi8uLi9pbWcvYnJhbmQtbmFzc3Rhci9uYXNzdGFyLWRpcmVjdC1sb2dvXzIwMjYucG5nJykgY2VudGVyIG5vLXJlcGVhdDtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbiFpbXBvcnRhbnQ7ICAgLyogc2NhbGVzIGltYWdlIHRvIGZpdCBlbnRpcmVseSAqL1xyXG4gICAgLypGYWtlcyB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kKi9cclxuICAgIG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseSFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcclxuXHJcclxuLmF3ZXNvbWVpY29uIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIC8qd2lkdGg6IDEwMCU7Ki9cclxuICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XHJcbn1cclxuXHJcbi8qIFZpZXdwb3J0IGlzIGZvciBtb2JpbGVzIHVwIHVudGlsIGFuIGlQYWQgKi9cclxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBweCkgYW5kIChtYXgtd2lkdGg6IDk5M3B4KSB7XHJcbiAgICAuZmxleC1uYXZiYXJidXR0b25zIHtcclxuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcclxuICAgICAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcclxuICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG4gICAgICAgIC13ZWJraXQtYm94LXBhY2s6IHN0YXJ0O1xyXG4gICAgICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0O1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICAgICAgICAtd2Via2l0LWJveC1hbGlnbjogc3RhcnQ7XHJcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAgfVxyXG5cclxuICAgIC5sb2dpbiAud3JhcHBlciB7XHJcbiAgICAgICAgd2lkdGg6IDI2MHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5mbGV4LXRvb2xiYXIge1xyXG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xyXG4gICAgICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xyXG4gICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XHJcbiAgICAgICAgLXdlYmtpdC1ib3gtcGFjazogc3RhcnQ7XHJcbiAgICAgICAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gICAgICAgIC13ZWJraXQtYm94LWFsaWduOiBzdGFydDtcclxuICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLnJpZ2h0LWNvbHVtbiB7XHJcbiAgICAgICAgLyptYXJnaW4tdG9wOiAxNXB4OyovXHJcbiAgICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC5idXR0b24yMDIxIHtcclxuICAgICAgICBtaW4td2lkdGg6IDhjaCAhaW1wb3J0YW50O1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDM0cHggIWltcG9ydGFudDtcclxuICAgICAgICBtYXJnaW4tdG9wOiA4cHggIWltcG9ydGFudDtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHggIWltcG9ydGFudDtcclxuICAgICAgICBmb250LXNpemU6IDEuMWVtICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIHdpZHRoOiAxMmNoICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgLyptYXJnaW4tbGVmdDogMTBweCAhaW1wb3J0YW50OyovXHJcbiAgICB9XHJcblxyXG4gICAgLyouYXdlc29tZWljb25yZXZlcnNlIHtcclxuICAgIHdpZHRoOiA4Y2ggIWltcG9ydGFudDtcclxuICAgIHRleHQtYWxpZ246Y2VudGVyO1xyXG4gICAgICAgICAgICB9Ki9cclxuICAgIC5uYXZpZ2F0aW9uX21haW4ge1xyXG4gICAgICAgIHdpZHRoOiAxMmNoICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC5XZWxjb21lTWVzc2FnZSB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgI2Rpdl90ZXh0Ym94X3NlYXJjaCBpbnB1dFt0eXBlPWJ1dHRvbl0ge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IC0yNXB4ICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyogU2VhcmNoIGJ1dHRvbiB0b3AgcmlnaHQgb2YgcG9ydGFsICovXHJcbiAgICAucXVpY2tjb25uZWN0aW9uc2VhcmNoIHtcclxuICAgICAgICBoZWlnaHQ6IDI0cHggIWltcG9ydGFudDtcclxuICAgICAgICB3aWR0aDogMjB2dztcclxuICAgIH1cclxuXHJcbiAgICAubm9tb2JpbGUge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyogSGFjayB0byBvdmVycmlkZSBmb250IGF3ZXNvbWUgbGFyZ2UgZm9yIHVzZSBvbiBzbWFsbGVyIGRldmljZXMgKi9cclxuICAgIC5mYS1sZyB7XHJcbiAgICAgICAgZm9udC1zaXplOiAyZW0gIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICAuYXdlc29tZWljb24ge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcclxuICAgIH1cclxuXHJcbiAgICAuYXdlc29tZWljb25nb29kIHtcclxuICAgICAgICBjb2xvcjogIzE5OTcxOTtcclxuICAgIH1cclxuXHJcbiAgICAuYXdlc29tZWljb253YXJuIHtcclxuICAgICAgICBjb2xvcjogI2YxMWMxYztcclxuICAgIH1cclxuXHJcbiAgICAuYXdlc29tZWljb25hbWJlciB7XHJcbiAgICAgICAgY29sb3I6ICNlOWQ0MTg7XHJcbiAgICB9XHJcblxyXG4gICAgLmJ1dHRvbjIwMjF3aWRlIHtcclxuICAgICAgICB3aWR0aDogMTgwcHggIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICAuYnV0dG9uMjAyMS1ob21lLXdpZGUge1xyXG4gICAgICAgIHdpZHRoOiA4Y2ggIWltcG9ydGFudDtcclxuICAgICAgICBtaW4td2lkdGg6IDEwY2ggIWltcG9ydGFudDtcclxuICAgICAgICBtaW4taGVpZ2h0OiAzNHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLkNvbm5UYWJsZSB0ZCB7XHJcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemV0YWJsZXQpICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLm9yZGVycHJvZHVjdHNzY3JlZW5fcHJvZHVjdF9zZWN0aW9uIHtcclxuICAgICAgICBwYWRkaW5nOiAxNXB4O1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrO1xyXG4gICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCA1cHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMik7XHJcbiAgICAgICAgYm94LXNoYWRvdzogMCA1cHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMik7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwcHgpIGFuZCAobWF4LXdpZHRoOiAzNDBweCkge1xyXG5cclxuICAgIC8qIENsYXNzIGZvciBmb250IGF3ZXNvbWUgaWNvbnMgKGJhc2UgY2xhc3MpICovXHJcbiAgICAuZGlzcGxheU5vVGV4dCB7XHJcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4vKiBDbGFzcyBmb3IgcHV0dGluZyBzaGFkb3cgb24gZm9udCBhd2Vzb21lIGljb24gKi9cclxuLmF3ZXNvbWVzaGFkb3cge1xyXG4gICAgdGV4dC1zaGFkb3c6IDJweCAycHggMXB4ICNjY2NjY2M7XHJcbn1cclxuXHJcbi5hd2Vzb21laWNvbm5vcGFkIHtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uV2VsY29tZU1lc3NhZ2Uge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXHJcblxyXHJcbkBmb250LWZhY2Uge1xyXG4gICAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDUgQnJhbmRzXCI7XHJcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgZm9udC1kaXNwbGF5OiBibG9jaztcclxuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcclxuICAgIHNyYzogdXJsKC9jc3MvZm9udC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAuZW90KTtcclxuICAgIHNyYzogdXJsKC9jc3MvZm9udC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAuZW90PyNpZWZpeCkgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybCgvY3NzL2ZvbnQtYXdlc29tZS93ZWJmb250cy9mYS1icmFuZHMtNDAwLndvZmYyKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKC9jc3MvZm9udC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAud29mZikgZm9ybWF0KFwid29mZlwiKSwgdXJsKC9jc3MvZm9udC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKC9jc3MvZm9udC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAuc3ZnI2ZvbnRhd2Vzb21lKSBmb3JtYXQoXCJzdmdcIilcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBGcmVlXCI7XHJcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICBmb250LXdlaWdodDogOTAwO1xyXG4gICAgZm9udC1kaXNwbGF5OiBibG9jaztcclxuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcclxuICAgIHNyYzogdXJsKC9jc3MvZm9udC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXNvbGlkLTkwMC5lb3QpO1xyXG4gICAgc3JjOiB1cmwoL2Nzcy9mb250LWF3ZXNvbWUvd2ViZm9udHMvZmEtc29saWQtOTAwLmVvdD8jaWVmaXgpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoL2Nzcy9mb250LWF3ZXNvbWUvd2ViZm9udHMvZmEtc29saWQtOTAwLndvZmYyKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKC9jc3MvZm9udC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXNvbGlkLTkwMC53b2ZmKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoL2Nzcy9mb250LWF3ZXNvbWUvd2ViZm9udHMvZmEtc29saWQtOTAwLnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybCgvY3NzL2ZvbnQtYXdlc29tZS93ZWJmb250cy9mYS1zb2xpZC05MDAuc3ZnI2ZvbnRhd2Vzb21lKSBmb3JtYXQoXCJzdmdcIilcclxufVxyXG5cclxuLmZhLFxyXG4uZmFzIHtcclxuICAgIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IEZyZWVcIjtcclxuICAgIGZvbnQtd2VpZ2h0OiA5MDBcclxufVxyXG5cclxuLmZhYiB7XHJcbiAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBCcmFuZHNcIjtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDBcclxufVxyXG5cclxuLmZhLFxyXG4uZmFiLFxyXG4uZmFkLFxyXG4uZmFsLFxyXG4uZmFyLFxyXG4uZmFzIHtcclxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XHJcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xyXG4gICAgdGV4dC1yZW5kZXJpbmc6IGF1dG87XHJcbiAgICBsaW5lLWhlaWdodDogMVxyXG59XHJcblxyXG4uZmEtbGcge1xyXG4gICAgZm9udC1zaXplOiAxLjMzMzMzZW07XHJcbiAgICBsaW5lLWhlaWdodDogLjc1ZW07XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogLS4wNjY3ZW1cclxufVxyXG5cclxuLmZhLXhzIHtcclxuICAgIGZvbnQtc2l6ZTogLjc1ZW1cclxufVxyXG5cclxuLmZhLXNtIHtcclxuICAgIGZvbnQtc2l6ZTogLjg3NWVtXHJcbn1cclxuXHJcbi5mYS0xeCB7XHJcbiAgICBmb250LXNpemU6IDFlbVxyXG59XHJcblxyXG4uZmEtMngge1xyXG4gICAgZm9udC1zaXplOiAyZW1cclxufVxyXG5cclxuLmZhLTN4IHtcclxuICAgIGZvbnQtc2l6ZTogM2VtXHJcbn1cclxuXHJcbi5mYS00eCB7XHJcbiAgICBmb250LXNpemU6IDRlbVxyXG59XHJcblxyXG4uZmEtNXgge1xyXG4gICAgZm9udC1zaXplOiA1ZW1cclxufVxyXG5cclxuLmZhLTZ4IHtcclxuICAgIGZvbnQtc2l6ZTogNmVtXHJcbn1cclxuXHJcbi5mYS03eCB7XHJcbiAgICBmb250LXNpemU6IDdlbVxyXG59XHJcblxyXG4uZmEtOHgge1xyXG4gICAgZm9udC1zaXplOiA4ZW1cclxufVxyXG5cclxuLmZhLTl4IHtcclxuICAgIGZvbnQtc2l6ZTogOWVtXHJcbn1cclxuXHJcbi5mYS0xMHgge1xyXG4gICAgZm9udC1zaXplOiAxMGVtXHJcbn1cclxuXHJcbi5mYS1mdyB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB3aWR0aDogMS4yNWVtXHJcbn1cclxuXHJcbi5mYS1ib29rLXJlYWRlcjpiZWZvcmUge1xyXG4gICAgY29udGVudDogXCJcXGY1ZGFcIlxyXG59XHJcblxyXG4uZmEtYm94ZXM6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwiXFxmNDY4XCJcclxufVxyXG5cclxuLmZhLWJ1aWxkaW5nOmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiBcIlxcZjFhZFwiXHJcbn1cclxuXHJcbi5mYS1idXJvbW9iZWxleHBlcnRlOmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiBcIlxcZjM3ZlwiXHJcbn1cclxuXHJcbi5mYS1jYXJ0LXBsdXM6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwiXFxmMjE3XCJcclxufVxyXG5cclxuLmZhLWNvbW1lbnQ6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwiXFxmMDc1XCJcclxufVxyXG5cclxuLmZhLWRhdGFiYXNlOmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiBcIlxcZjFjMFwiXHJcbn1cclxuXHJcbi5mYS1ldGhlcm5ldDpiZWZvcmUge1xyXG4gICAgY29udGVudDogXCJcXGY3OTZcIlxyXG59XHJcblxyXG4uZmEtZmlsZS1pbnZvaWNlOmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiBcIlxcZjU3MFwiXHJcbn1cclxuXHJcbi5mYS1nbG9iZTpiZWZvcmUge1xyXG4gICAgY29udGVudDogXCJcXGYwYWNcIlxyXG59XHJcblxyXG4uZmEtaG9tZTpiZWZvcmUge1xyXG4gICAgY29udGVudDogXCJcXGYwMTVcIlxyXG59XHJcblxyXG4uZmEtbGlub2RlOmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiBcIlxcZjJiOFwiXHJcbn1cclxuXHJcbi5mYS1taWNyb3Bob25lOmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiBcIlxcZjEzMFwiXHJcbn1cclxuXHJcbi5mYS1uZXR3b3JrLXdpcmVkOmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiBcIlxcZjZmZlwiXHJcbn1cclxuLmZhLWNvbmNpZXJnZS1iZWxsOmJlZm9yZXtjb250ZW50OlwiXFxmNTYyXCJ9XHJcbi5mYS1wZW9wbGUtYXJyb3dzOmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiBcIlxcZTA2OFwiXHJcbn1cclxuXHJcbi5mYS1wbHVnOmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiBcIlxcZjFlNlwiXHJcbn1cclxuXHJcbi5mYS1wcm9qZWN0LWRpYWdyYW06YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwiXFxmNTQyXCJcclxufVxyXG5cclxuLmZhLXNlYXJjaDpiZWZvcmUge1xyXG4gICAgY29udGVudDogXCJcXGYwMDJcIlxyXG59XHJcblxyXG4uZmEtc2hvcHBpbmctYmFza2V0OmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiBcIlxcZjI5MVwiXHJcbn1cclxuXHJcbi5mYS1zaWduLW91dC1hbHQ6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwiXFxmMmY1XCJcclxufVxyXG5cclxuLmZhLXRpY2tldC1hbHQ6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwiXFxmM2ZmXCJcclxufVxyXG4uZmEtdXNlcjpiZWZvcmUge1xyXG4gICAgY29udGVudDogXCJcXGYwMDdcIjtcclxufVxyXG4uZmEtdXNlcnMtY29nOmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiBcIlxcZjUwOVwiXHJcbn1cclxuXHJcbi5mYS13YXRjaG1hbi1tb25pdG9yaW5nOmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiBcIlxcZTA4N1wiXHJcbn1cclxuXHJcbi5mYS1hZGRyZXNzLWJvb2s6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwiXFxmMmI5XCI7XHJcbn1cclxuXHJcbi8qIERhc2hib2FyZCBidXR0b25zKi9cclxuLmZhLWFuZ2xlLXVwOmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiBcIlxcZjEwNlwiO1xyXG59XHJcblxyXG4uZmEtY2xpcGJvYXJkOmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiBcIlxcZjMyOFwiO1xyXG59XHJcblxyXG4uZmEtcmVkbzpiZWZvcmUge1xyXG4gICAgY29udGVudDogXCJcXGYwMWVcIjtcclxufVxyXG5cclxuLmZhLWV4cGFuZDpiZWZvcmUge1xyXG4gICAgY29udGVudDogXCJcXGYwNjVcIjtcclxufVxyXG5cclxuLmZhLWFycm93LWNpcmNsZS11cDpiZWZvcmUge1xyXG4gICAgY29udGVudDogXCJcXGYwYWFcIjtcclxufVxyXG5cclxuLmZhLWZpbGUtY3N2OmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiBcIlxcZjZkZFwiO1xyXG59XHJcblxyXG4uZmEtY29tcHJlc3M6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwiXFxmMDY2XCI7XHJcbn1cclxuXHJcbi5mYS1jbGlwYm9hcmQtbGlzdDpiZWZvcmUge1xyXG4gICAgY29udGVudDogXCJcXGY0NmRcIjtcclxufVxyXG5cclxuLmZhLXNsaWRlcnMtaDpiZWZvcmUge1xyXG4gICAgY29udGVudDogXCJcXGYxZGVcIjtcclxufVxyXG5cclxuLmZhLXN0ZXRob3Njb3BlOmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiBcIlxcZjBmMVwiO1xyXG59XHJcbi5mYS10b29sczpiZWZvcmUge1xyXG4gICAgY29udGVudDogXCJcXGY3ZDlcIjtcclxufVxyXG5cclxuLmZhLWxpc3QtYWx0OmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiBcIlxcZjAyMlwiO1xyXG59XHJcblxyXG4uZmEtYmV6aWVyLWN1cnZlOmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiBcIlxcZjU1YlwiO1xyXG59XHJcbi5mYS1waG9uZS1zbGFzaDpiZWZvcmUge1xyXG4gICAgY29udGVudDogXCJcXGYzZGRcIjtcclxufVxyXG5cclxuLmZhLWtleTpiZWZvcmUge1xyXG4gICAgY29udGVudDogXCJcXGYwODRcIjtcclxufVxyXG5cclxuLmZhLWNhbGVuZGFyLWFsdDpiZWZvcmUge1xyXG4gICAgY29udGVudDogXCJcXGYwNzNcIjtcclxufVxyXG5cclxuLmZhLXRhZ3M6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwiXFxmMDJjXCI7XHJcbn1cclxuLmZhLXRvb2xib3g6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwiXFxmNTUyXCI7XHJcbn1cclxuLmZhLWh1YnNwb3Q6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwiXFxmM2IyXCI7XHJcbn1cclxuLmZhLWJvb2stb3BlbjpiZWZvcmUge1xyXG4gICAgY29udGVudDogXCJcXGY1MThcIjtcclxufVxyXG4uZmEtbGlub2RlOmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiBcIlxcZjJiOFwiO1xyXG59XHJcbi5mYS1jYWxlbmRhci1vOmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiBcIlxcZjEzM1wiO1xyXG59XHJcblxyXG4uZmEtdGVybWluYWw6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwiXFxmMTIwXCI7XHJcbn1cclxyXG5cclxuLnItdGFicyAuci10YWJzLW5hdiAuci10YWJzLWFuY2hvciB7XHJcbiAgICBwYWRkaW5nOiA3cHggMnB4ICFpbXBvcnRhbnQ7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kYXNoYm9hcmROb3RTZWxlY3RlZFRhYik7XHJcbn1cclxuXHJcbi5yLXRhYnMgLnItdGFicy10YWIge1xyXG4gICAgbWFyZ2luOiAtM3B4O1xyXG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDVweCAhaW1wb3J0YW50XHJcbn1cclxuXHJcbi5yLXRhYnMgLnItdGFicy1uYXYgLnItdGFicy1zdGF0ZS1hY3RpdmUgLnItdGFicy1hbmNob3Ige1xyXG4gICAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkICM4MDgwODA7XHJcbiAgICBoZWlnaHQ6IDI1cHg7XHJcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4ICFpbXBvcnRhbnRcclxufVxyXG5cclxuXHJcclxuLmRldmljZWluZm8ge1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVlZmZmO1xyXG4gICAgY29sb3I6IGJsYWNrO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgcGFkZGluZzogMnB4O1xyXG4gICAgZm9udC1zaXplOiAwLjllbTtcclxufVxyXG5cclxuLyogdHlwaWNhbCBwaG9uZSBzY3JlZW4gcmVzb2x1dGlvbiAqL1xyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGggOiA2NjdweCkge1xyXG59XHJcblxyXG4ubW9iaWxlYWxlcnQge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIHdpZHRoOiAwO1xyXG4gICAgaGVpZ2h0OiAwO1xyXG59XHJcblxyXG4ubW9iaWxlYWxlcnRzaG93IHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHdpZHRoOiAyMDBweDtcclxuICAgIGhlaWdodDogMzAwcHg7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCBjZW50ZXIsICNkZWVmZmYgMCUsICM5OGJlZGUgMTAwJSk7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbiAgICB0b3A6IDUwJTtcclxuICAgIGxlZnQ6IDUwJTtcclxuICAgIG1hcmdpbi10b3A6IC0xMDBweDtcclxuICAgIG1hcmdpbi1sZWZ0OiAtMTAwcHg7XHJcbiAgICB6LWluZGV4OiAxMDAwMDtcclxuICAgIHBhZGRpbmc6IDE1cHg7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBmb250LXNpemU6IDJlbTtcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRlbW9iaWxlIDBzIGVhc2UtaW4gNXM7XHJcbiAgICBhbmltYXRpb246IGFuaW1hdGVtb2JpbGUgMHMgZWFzZS1pbiA1cztcclxuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XHJcbiAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkcztcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweCAhaW1wb3J0YW50O1xyXG4gICAgb3BhY2l0eTogMTtcclxufVxyXG5cclxuLnRoZXBob25lIHtcclxuICAgIHdpZHRoOiAxNTBweDtcclxuICAgIGFuaW1hdGlvbjogcm90YXRpb24gNXM7XHJcbn1cclxuXHJcbi8qIHR5cGljYWwgcGhvbmUgc2NyZWVuIHJlc29sdXRpb24gKi9cclxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoIDogNjY3cHgpIGFuZCAob3JpZW50YXRpb24gOiBwb3J0cmFpdCkge1xyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIHJvdGF0aW9uIHtcclxuICAgIGZyb20ge1xyXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xyXG4gICAgfVxyXG5cclxuICAgIHRvIHtcclxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgcm90YXRleW91cmRldmljZSB7XHJcbiAgICBmcm9tIHtcclxuICAgIH1cclxuXHJcbiAgICAyNSUge1xyXG4gICAgICAgIG9wYWNpdHk6IDAuODtcclxuICAgIH1cclxuXHJcblxyXG4gICAgNTAlIHtcclxuICAgICAgICBvcGFjaXR5OiAwLjY7XHJcbiAgICB9XHJcblxyXG4gICAgNzUlIHtcclxuICAgICAgICBvcGFjaXR5OiAwLjM7XHJcbiAgICB9XHJcblxyXG4gICAgdG8ge1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgei1pbmRleDogLTE7XHJcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgICAgIHdpZHRoOiAwO1xyXG4gICAgICAgIGhlaWdodDogMDtcclxuICAgIH1cclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGVtb2JpbGUge1xyXG4gICAgZnJvbSB7XHJcbiAgICB9XHJcblxyXG4gICAgMjUlIHtcclxuICAgICAgICBvcGFjaXR5OiAwLjg7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIDUwJSB7XHJcbiAgICAgICAgb3BhY2l0eTogMC42O1xyXG4gICAgfVxyXG5cclxuICAgIDc1JSB7XHJcbiAgICAgICAgb3BhY2l0eTogMC4zO1xyXG4gICAgfVxyXG5cclxuICAgIHRvIHtcclxuICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgIHotaW5kZXg6IC0xO1xyXG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgICAgICB3aWR0aDogMDtcclxuICAgICAgICBoZWlnaHQ6IDA7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0ZW1vYmlsZSB7XHJcbiAgICBmcm9tIHtcclxuICAgIH1cclxuXHJcbiAgICAyNSUge1xyXG4gICAgICAgIG9wYWNpdHk6IDAuODtcclxuICAgIH1cclxuXHJcblxyXG4gICAgNTAlIHtcclxuICAgICAgICBvcGFjaXR5OiAwLjY7XHJcbiAgICB9XHJcblxyXG4gICAgNzUlIHtcclxuICAgICAgICBvcGFjaXR5OiAwLjM7XHJcbiAgICB9XHJcblxyXG4gICAgdG8ge1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgei1pbmRleDogLTE7XHJcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgICAgIHdpZHRoOiAwO1xyXG4gICAgICAgIGhlaWdodDogMDtcclxuICAgIH1cclxufVxyXG5cclxuXHJcbi8qIGxhbmRzY2FwZSBvcmllbnRhdGlvbiAqL1xyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGggOiAzNzVweCkgYW5kIChtYXgtd2lkdGggOiA2NjdweCkgYW5kIChvcmllbnRhdGlvbiA6IGxhbmRzY2FwZSkge1xyXG59XHJcblxyXG4vKiBwb3J0cmFpdCBvcmllbnRhdGlvbiAqL1xyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGggOiAzNzVweCkgYW5kIChtYXgtd2lkdGggOiA2NjdweCkgYW5kIChvcmllbnRhdGlvbiA6IHBvcnRyYWl0KSB7XHJcbn1cclxuXHJcbi8qIHR5cGljYWwgdGFibGV0IHNjcmVlbiByZXNvbHV0aW9uICovXHJcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aCA6IDgzNHB4KSB7XHJcbn1cclxuXHJcbi8qIGxhbmRzY2FwZSBvcmllbnRhdGlvbiAqL1xyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGggOiA3NjhweCkgYW5kIChtYXgtd2lkdGggOiA4MzRweCkgYW5kIChvcmllbnRhdGlvbiA6IGxhbmRzY2FwZSkge1xyXG59XHJcblxyXG4vKiBwb3J0cmFpdCBvcmllbnRhdGlvbiAqL1xyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGggOiA3NjhweCkgYW5kIChtYXgtd2lkdGggOiA4MzRweCkgYW5kIChvcmllbnRhdGlvbiA6IHBvcnRyYWl0KSB7XHJcbn1cclxuXHJcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6IDEyMjRweCkge1xyXG59XHJcblxyXHJcblxyXG4uaGFyZERhc2hib2FyZFJlZnJlc2gge1xyXG4gICAgYm9yZGVyLXJhZGl1czogMXJlbTtcclxuICAgIGNvbG9yOiBibGFjaztcclxuICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtIDA7XHJcbiAgICAvKmZsb2F0OiByaWdodCFpbXBvcnRhbnQ7Ki9cclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJlaWdlKTtcclxuICAgIG1hcmdpbi1ib3R0b206IDFyZW0haW1wb3J0YW50O1xyXG4gICAgaGVpZ2h0OiAyZW07XHJcbiAgICBvcGFjaXR5OiAwLjk7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjZjNjYWNhICFpbXBvcnRhbnQ7XHJcbiAgLyogIHdpZHRoOiAxMHJlbTsqL1xyXG59XHJcbi8qXHJcbi5oYXJkRGFzaGJvYXJkUmVmcmVzaDpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tYmFja2dyb3VuZC1vbi1ob3Zlcik7XHJcbn1cclxuKi9cclxuXHJcbi8qQ2xpY2sgaGVyZSB0byByZWZyZXNoIHRleHQqL1xyXG4uaGFyZFJlZnJlc2hPZkRhc2hib2FyZCB7XHJcbiAgICBjb2xvcjogdmFyKC0tYnV0dG9uLWZvcmVncm91bmQpIWltcG9ydGFudDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG4uaGFyZERhc2hib2FyZFJlZnJlc2hUZXh0IHtcclxuICAgIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XHJcbiAgICBmb250LXNpemU6dmFyKC0tZm9udC1zaXplLW1haW4tbGlua3MpO1xyXG59XHJcblxyXG4ucXVpY2tzZWFyY2hpY29uIHtcclxuICAgIGJhY2tncm91bmQ6IHVybCgnLi4vLi4vaW1nL2ljb25zLzE2L3NlYXJjaDIucG5nJykgNXB4IDVweCBuby1yZXBlYXQ7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICB3aWR0aDogMjhweDtcclxuICAgIGhlaWdodDogMjhweDtcclxuICAgIHRleHQtaW5kZW50OiAtOTk5OXB4O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07XHJcbn1cclxuYSNoYXJkUmVmcmVzaE9mRGFzaGJvYXJkIHtcclxuICAgIGNvbG9yOiAjZDFkMWY3O1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxufVxyXG5cclxuYSNoYXJkUmVmcmVzaE9mRGFzaGJvYXJkOmhvdmVyIHtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuLyogTGF5b3V0ICovXHJcbi5PbGRVbWJyYWNvU2VjdGlvbkhlYWRlckRhc2hib2FyZCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxM3B4O1xyXG4gICAgcGFkZGluZy10b3A6IDAuNXJlbTtcclxuICAgIHRleHQtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcclxuICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDtcclxufVxyXG4uT2xkVW1icmFjb1NlY3Rpb25Db250ZW50QXZhaWxhYmlsaXR5IHtcclxuICAgIC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OiA1cHg7XHJcbiAgICAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6IDVweDtcclxuICAgIC8qIGJhY2tncm91bmQtY29sb3I6ICNjMGRjZmY7ICovXHJcbiAgICBtYXJnaW46IDVweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIHBhZGRpbmc6IDNweDtcclxufVxyXG5cclxuXHJcbjp3aGVyZSguT2xkVW1icmFjb1NlY3Rpb25Cb3gsIC5BQW5kQkVuZHMpIHtcclxuICAgIC0tYm9yZGVyLXdpZHRoOiB2YXIoLS1kYXNoYm9hcmQtY2FyZC1ib3JkZXItd2lkdGgsIDFweCk7XHJcbiAgICAtLWJvcmRlci1zdGFydDogI2ZmZmZmZjtcclxuICAgIC0tYm9yZGVyLW1pZDogICAjZWVmMmY0OyAvKiBnZW50bGUgbWlkIHRvbmUgdG8gc29mdGVuIHRoZSBmYWxsb2ZmICovXHJcbiAgICAtLWJvcmRlci1lbmQ6ICAgI2Q2ZDhkOTtcclxuXHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xyXG5cclxuICAgIGJvcmRlcjogdmFyKC0tYm9yZGVyLXdpZHRoKSBzb2xpZCB0cmFuc3BhcmVudDtcclxuXHJcbiAgICAvKiBUb3AgbGF5ZXI6IGlubmVyIGNvbnRlbnQgYmFja2dyb3VuZCAqL1xyXG4gICAgLyogVGhlbjogc3VidGxlIGhpZ2hsaWdodCBmcm9tIHRvcC1yaWdodCAobGluZWFyICsgcmFkaWFsKSAqL1xyXG4gICAgLyogQm90dG9tOiBtYWluIHJhZGlhbCBib3JkZXIgZnJvbSB0b3AtbGVmdCAqL1xyXG4gICAgYmFja2dyb3VuZDpcclxuICAgICAgICAvKiBjb250ZW50IGZpbGwgKi9cclxuICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KCNmZmYsICNmZmYpIHBhZGRpbmctYm94LFxyXG5cclxuICAgICAgICAgICAgICAgIC8qIGhpZ2hsaWdodCBzd2VlcCBhbG9uZyB0aGUgdG9wIGVkZ2UsIHN0cm9uZ2VyIG5lYXIgdG9wLXJpZ2h0ICovXHJcbiAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCByZ2JhKDI1NSwyNTUsMjU1LDAuNTUpLCByZ2JhKDI1NSwyNTUsMjU1LDApIDQwJSkgYm9yZGVyLWJveCxcclxuXHJcbiAgICAgICAgICAgICAgICAvKiBzb2Z0IHJvdW5kIGhpZ2hsaWdodCB0dWNrZWQgaW4gdGhlIHRvcC1yaWdodCBjb3JuZXIgKi9cclxuICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KDYwJSA2MCUgYXQgMTAwJSAwJSxcclxuICAgICAgICAgICAgcmdiYSgyNTUsMjU1LDI1NSwwLjUpIDAlLFxyXG4gICAgICAgICAgICByZ2JhKDI1NSwyNTUsMjU1LDAuMCkgNzAlXHJcbiAgICAgICAgICAgICkgYm9yZGVyLWJveCxcclxuXHJcbiAgICAgICAgICAgICAgICAvKiBtYWluIGJvcmRlciBncmFkaWVudCByYWRpYXRpbmcgZnJvbSB0b3AtbGVmdCAqL1xyXG4gICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoZmFydGhlc3QtY29ybmVyIGF0IHRvcCBsZWZ0LFxyXG4gICAgICAgICAgICB2YXIoLS1ib3JkZXItc3RhcnQpIDAlLFxyXG4gICAgICAgICAgICB2YXIoLS1ib3JkZXItbWlkKSAgIDQ1JSxcclxuICAgICAgICAgICAgdmFyKC0tYm9yZGVyLWVuZCkgICAxMDAlXHJcbiAgICAgICAgICAgICkgYm9yZGVyLWJveDtcclxufVxyXG5cclxuLk9sZFVtYnJhY29TZWN0aW9uQm94Tm9Cb3JkZXIge1xyXG4gICAgYm9yZGVyOiBub25lIWltcG9ydGFudDtcclxufVxyXG5cclxuLk9sZFVtYnJhY29TZWN0aW9uQm94RGFzaGJvYXJkVGlsZSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMXJlbTtcclxuICAgIHBhZGRpbmctbGVmdDogMXJlbSA7XHJcbn1cclxuXHJcbi5EYXNoZmxleGlibGVDb250YWluZXIge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBnYXA6IDEycHg7XHJcbn1cclxuXHJcbi5kYXNoUGFkZGluZ092ZXJyaWRlIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgcGFkZGluZy1yaWdodDogMDtcclxufVxyXG5cclxuLyogVG9vbGJhciBmb3IgZGFzaGJvYXJkIHRpbGVzICovXHJcbi5kYXNoYm9hcmRUaWxlSGVhZGVyQ29udGFpbmVyIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taGVhZGVyLWJhY2tncm91bmQpO1xyXG4gICAgY29sb3I6IHZhcigtLWhlYWRlci10ZXh0LWNvbG91cik7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoXHJcbiAgICAgICAgICAgIHRvIHJpZ2h0LFxyXG4gICAgICAgICAgICBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0taGVhZGVyLWJhY2tncm91bmQpIDg1JSwgIzAwMDApIDAlLCAvKiBzbGlnaHRseSBzdHJvbmdlciBhdCB0b3AgKi9cclxuICAgICAgICAgICAgI2ZmZmZmZiAxMDAlXHJcbiAgICApO1xyXG4gICAgbWFyZ2luLWxlZnQ6IC0xLjFyZW07XHJcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBjbGFtcCg4cHgsIDQlLCA3cHgpO1xyXG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcclxufVxyXG5cclxuLmRhc2hib2FyZFRpbGVIZWFkZXJDb250YWluZXJSaWdodCB7XHJcbiAgICBtYXJnaW4tbGVmdDogMDtcclxufVxyXG5cclxuXHJcbi8qIEhlYWRlciBjb250cm9scyBmb3IgdGlsZXMgKGNvcHkgdG8gY2xpcGJvYXJkLCBleHBhbmQgZXRjKSAqL1xyXG4uZGFzaGJvYXJkVGlsZUhlYWRlckNvbnRyb2xzU2VjdGlvbiB7XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxufVxyXG5cclxuLyogVGV4dCBmb3IgdGhlIGhlYWRlciAqL1xyXG4uZGFzaGJvYXJkVGlsZUhlYWRlckNvbnRyb2xzVGV4dFNlY3Rpb24ge1xyXG4gICAgZmxleDogMTtcclxufVxyXG5cclxuLyogTm90IGFsbCB0aWxlcyBoYXZlIGJ1dHRvbnMsIHRoaXMganVzdCBhbGxvd3MgZm9yIHNlcGFyYXRpb24gb2YgY29uY2VybnMgKi9cclxuLmRhc2hib2FyZFRpbGVIZWFkZXJDb250cm9sc1RleHRTZWN0aW9uTm9Db250cm9scyB7XHJcbiAgICBmbGV4OiAxO1xyXG59XHJcblxyXG4udGlsZUludHJvV3JhcHBlciB7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbn1cclxuXHJcbi5mbGV4LXRvb2xiYXJyaWdodGFsaWduZWQge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxufVxyXG5cclxuLmZsZXgtdG9vbGJhci1maWx0ZXJjb21wIHtcclxuICAgIG1hcmdpbjogMTVweDtcclxuICAgIC8qIHdpZHRoOiAxNDBweCFpbXBvcnRhbnQ7ICovXHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgZ3JpZC1hdXRvLXJvd3M6IDFmcjtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbn1cclxuXHJcbi5BdmFpbGFiaWxpdHlGb3JtVGlsZSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGdhcDogNnB4O1xyXG59XHJcblxyXG4uQXZhaWxhYmlsaXR5Rm9ybVRpbGUgPiBkaXYge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBnYXA6IDEycHg7XHJcbn1cclxuXHJcbi5hdmFpbGFiaWxpdHlDb250cm9sIHtcclxuICAgIGZvbnQtc2l6ZTogMWVtO1xyXG4gICAgcGFkZGluZzogNXB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgYm9yZGVyOiB2YXIoLS1jb250cm9sLWJvcmRlcik7XHJcbiAgICB3aWR0aDogMTYycHg7XHJcbiAgICBoZWlnaHQ6IDI0cHg7XHJcbn1cclxuXHJcbi5hdmFpbFNjcmVlbjEge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBnYXA6IDJweDtcclxufVxyXG5cclxuLmF2YWlsU2NyZWVuMVVzZXJJbnB1dCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmNoYXJ0V3JhcHBlckF2YWlsYWJpbGl0eSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAvKiBoZWlnaHQ6IDE1MHB4OyAqL1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbiAgICBwYWRkaW5nOiAxMHB4O1xyXG59XHJcblxyXG4vKiBuZXcgZHJvcGRvd24gZm9yIGF1dGhvcml0eSBzd2l0Y2hpbmcgKi9cclxuLyogQmFzaWMgc3R5bGluZyBmb3IgZHJvcGRvd24gY29udGFpbmVyICovXHJcbi54ZHJvcGRvd24ge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgd2lkdGg6IDIwMHB4O1xyXG4gICAgcGFkZGluZy10b3A6IDA7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcclxufVxyXG5cclxuLnhkcm9wZG93biBidXR0b24ge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGVhbC02MDApO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCBiZWlnZTtcclxuICAgIG9wYWNpdHk6IDAuNztcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbn1cclxuXHJcbi54ZHJvcGRvd24gYnV0dG9uOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDU2YjM7XHJcbn1cclxuXHJcbi54ZHJvcGRvd24gYnV0dG9uOjphZnRlciB7XHJcbiAgICBjb250ZW50OiAnXFwyNUJDJztcclxuICAgIC8qIFVuaWNvZGUgZm9yIGRvd24gYXJyb3cgKi9cclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gICAgLyogQWRkcyBzcGFjaW5nIGJldHdlZW4gdGV4dCBhbmQgYXJyb3cgKi9cclxufVxyXG5cclxuLmF1dGhvcml0eS1kcm9wZG93bi1jb250ZW50IHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDEwMCU7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICBib3gtc2hhZG93OiAwIDRweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xyXG4gICAgei1pbmRleDogMTAwMDtcclxufVxyXG5cclxuLmF1dGhvcml0eS1kcm9wZG93bi1jb250ZW50IGRpdiB7XHJcbiAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgY29sb3I6ICMzMzM7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YxZjFmMTtcclxufVxyXG5cclxuXHJcbi5hdXRob3JpdHktZHJvcGRvd24tY29udGVudCBkaXY6bGFzdC1jaGlsZCB7XHJcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xyXG59XHJcblxyXG4uYXV0aG9yaXR5LWRyb3Bkb3duLWNvbnRlbnQgZGl2OmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmOGY5ZmE7XHJcbn1cclxuXHJcblxyXG4ubmV3c0l0ZW1zQnVsbGV0IHtcclxuICAgIGNvbG9yOiBibGFjaztcclxuICAgIHBhZGRpbmctbGVmdDogMnJlbTtcclxuICAgIGxpc3Qtc3R5bGU6IGRpc2NcclxufVxyXG5cclxuLyogRnJvbSBuYXZpZ2F0aW9uLmNzcyAqL1xyXG4ubmF2aWdhdGlvbl9tYWluIHtcclxuICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gICAgd2lkdGg6IHZhcigtLWxlZnQtbWVudS13aWR0aCk7XHJcbn1cclxuXHJcbi5uYXZpZ2F0aW9uX21haW4gdWwgdWwge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbn1cclxuXHJcbi5uYXZpZ2F0aW9uX21haW4gbGkge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5EYXNoRnVsbCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmZvbnRSYWRpbyB7XHJcbiAgICBjb2xvcjpibGFjayFpbXBvcnRhbnRcclxufVxyXG5cclxuLkRhc2gyIHtcclxuICAgIHdpZHRoOjQ4JVxyXG59XHJcblxyXG4vKiBGdW5kYW1lbnRhbHMgLSBsYXlvdXQgKi9cclxuLmJhc2ljLWZsZXgtZnVsbC13aWR0aCB7XHJcbiAgICB3aWR0aDoxMDAlXHJcbn1cclxuXHJcbi5iYXNpYy1mbGV4LWFsaWduLXN0YXJ0IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbn1cclxuXHJcbi5iYXNpYy1mbGV4LWFsaWduLWVuZCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcclxufVxyXG5cclxuLmJhc2ljLWZsZXgtY29sdW1uLWdhcC0xLXJlbSB7XHJcbiAgICBjb2x1bW4tZ2FwOiAxcmVtO1xyXG59XHJcblxyXG4uYmFzaWMtZmxleC1yb3ctZ2FwLTEtcmVtIHtcclxuICAgIHJvdy1nYXA6IDFyZW07XHJcbn1cclxuLmZ1bGwtd2lkdGgtdmlldy1wb3J0IHtcclxuICAgIHdpZHRoOiAxMDB2dztcclxufVxyXG5cclxuXHJcbi5jb2wtMS0yNCAgeyBmbGV4OiAwIDAgYXV0bzsgd2lkdGg6IDQuMTY2NjY2JTsgfVxyXG4uY29sLTItMjQgIHsgZmxleDogMCAwIGF1dG87IHdpZHRoOiA4LjMzMzMzMyU7IH1cclxuLmNvbC0zLTI0ICB7IGZsZXg6IDAgMCBhdXRvOyB3aWR0aDogMTIuNSU7IH1cclxuLmNvbC00LTI0ICB7IGZsZXg6IDAgMCBhdXRvOyB3aWR0aDogMTYuNjY2NjY2JTsgfVxyXG4uY29sLTUtMjQgIHsgZmxleDogMCAwIGF1dG87IHdpZHRoOiAyMC44MzMzMzMlOyB9XHJcbi5jb2wtNi0yNCAgeyBmbGV4OiAwIDAgYXV0bzsgd2lkdGg6IDI1JTsgfVxyXG4uY29sLTctMjQgIHsgZmxleDogMCAwIGF1dG87IHdpZHRoOiAyOS4xNjY2NjYlOyB9XHJcbi5jb2wtOC0yNCAgeyBmbGV4OiAwIDAgYXV0bzsgd2lkdGg6IDMzLjMzMzMzMyU7IH1cclxuLmNvbC05LTI0ICB7IGZsZXg6IDAgMCBhdXRvOyB3aWR0aDogMzcuNSU7IH1cclxuLmNvbC0xMC0yNCB7IGZsZXg6IDAgMCBhdXRvOyB3aWR0aDogNDEuNjY2NjY2JTsgfVxyXG4uY29sLTExLTI0IHsgZmxleDogMCAwIGF1dG87IHdpZHRoOiA0NS44MzMzMzMlOyB9XHJcbi5jb2wtMTItMjQgeyBmbGV4OiAwIDAgYXV0bzsgd2lkdGg6IDUwJTsgfVxyXG4uY29sLTEzLTI0IHsgZmxleDogMCAwIGF1dG87IHdpZHRoOiA1NC4xNjY2NjYlOyB9XHJcbi5jb2wtMTQtMjQgeyBmbGV4OiAwIDAgYXV0bzsgd2lkdGg6IDU4LjMzMzMzMyU7IH1cclxuLmNvbC0xNS0yNCB7IGZsZXg6IDAgMCBhdXRvOyB3aWR0aDogNjIuNSU7IH1cclxuLmNvbC0xNi0yNCB7IGZsZXg6IDAgMCBhdXRvOyB3aWR0aDogNjYuNjY2NjY2JTsgfVxyXG4uY29sLTE3LTI0IHsgZmxleDogMCAwIGF1dG87IHdpZHRoOiA3MC44MzMzMzMlOyB9XHJcbi5jb2wtMTgtMjQgeyBmbGV4OiAwIDAgYXV0bzsgd2lkdGg6IDc1JTsgfVxyXG4uY29sLTE5LTI0IHsgZmxleDogMCAwIGF1dG87IHdpZHRoOiA3OS4xNjY2NjYlOyB9XHJcbi5jb2wtMjAtMjQgeyBmbGV4OiAwIDAgYXV0bzsgd2lkdGg6IDgzLjMzMzMzMyU7IH1cclxuLmNvbC0yMS0yNCB7IGZsZXg6IDAgMCBhdXRvOyB3aWR0aDogODcuNSU7IH1cclxuLmNvbC0yMi0yNCB7IGZsZXg6IDAgMCBhdXRvOyB3aWR0aDogOTEuNjY2NjY2JTsgfVxyXG4uY29sLTIzLTI0IHsgZmxleDogMCAwIGF1dG87IHdpZHRoOiA5NS44MzMzMzMlOyB9XHJcbi5jb2wtMjQtMjQgeyBmbGV4OiAwIDAgYXV0bzsgd2lkdGg6IDEwMCU7IH1cclxuXHJcbi5jb2wtcmVtYWluZGVyIHtcclxuICAgIGZsZXg6IDEgMSBhdXRvO1xyXG4gICAgbWluLXdpZHRoOiAwOyAvKiBQcmV2ZW50IG92ZXJmbG93ICovXHJcbn1cclxuXHJcbi8qIE92ZXJyaWRlIGZvciBsb2dpbiBiYWNrZ3JvdW5kIGNvbG91ciAqL1xyXG4ud2VicCAubG9naW4ge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbG9naW4tYmFja2dyb3VuZCkhaW1wb3J0YW50O1xyXG5cclxufVxyXG5cclxuLm5vLXdlYnAgLmxvZ2luIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxvZ2luLWJhY2tncm91bmQpIWltcG9ydGFudDtcclxufVxyXG5cclxuXHJcbi8qVGhlIHdyYXBwZXIgYXJvdW5kIHRoZSBsb2dpbiBzY3JlZW4qL1xyXG4ubG9naW4gLmlubmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxvZ2luLWJhY2tncm91bmQpIWltcG9ydGFudDtcclxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tbG9naW4tYmFja2dyb3VuZCk7XHJcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tbG9naW4tYmFja2dyb3VuZCk7XHJcbiAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCB2YXIoLS1sb2dpbi1iYWNrZ3JvdW5kKTtcclxuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2YXIoLS1sb2dpbi1iYWNrZ3JvdW5kKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDE2cHggIWltcG9ydGFudDtcclxuICAgIHotaW5kZXg6IDEwMDAwO1xyXG59XHJcblxyXG4ubW9kdWxlLWxvZ2luIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxvZ2luLWJhY2tncm91bmQpIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuLm1vZHVsZS1vdXRlci1sb2dpbm9ubHkge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbG9naW4tYmFja2dyb3VuZCkhaW1wb3J0YW50O1xyXG4gICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5tb2R1bGUtY29udGVudC1sb2dpbiB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1sb2dpbi1iYWNrZ3JvdW5kKSFpbXBvcnRhbnQ7XHJcbiAgICBjb2xvcjogYmxhY2shaW1wb3J0YW50O1xyXG59XHJcblxyXG4uYmFzZS1idXR0b24sIC5sb2dPbkJ0biB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tYmFja2dyb3VuZCkhaW1wb3J0YW50O1xyXG4gICAgY29sb3I6IHZhcigtLWJ1dHRvbi10ZXh0LWNvbG91cikhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uTm90aWNlRm9yQ29va2llcyB7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIGZvbnQtc2l6ZTogMC44ZW07XHJcbn1cclxuXHJcbi5ib2xkLXRleHQtbGFiZWwge1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbi5mdWRnZWZvcnNlYXJjaGJveGFic29sdXRlIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIG1hcmdpbi10b3A6IDNyZW07XHJcbn1cclxuXHJcbi8qIE1haW4gbWVudSBsaW5rcyBtYWluLW1lbnUtbGluayAqL1xyXG4ubWFpbi1tZW51LWxpbmstcG9ydGFsIHtcclxuICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICBwYWRkaW5nLXRvcDoxcmVtO1xyXG4gICAgcGFkZGluZy1ib3R0b206IDFyZW07XHJcbiAgICBtYXJnaW4tbGVmdDogMCFpbXBvcnRhbnQ7XHJcbiAgICBjb2xvcjogYmxhY2shaW1wb3J0YW50O1xyXG4gICAgYm9yZGVyLXRvcDogdmFyKC0tYnV0dG9uLWJvcmRlci13aWR0aCkgc29saWQgd2hpdGUhaW1wb3J0YW50O1xyXG4gICAgYm9yZGVyLWJvdHRvbTogdmFyKC0tYnV0dG9uLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tYnV0dG9uLWJvcmRlci1jb2xvci1tYWluLW1lbnUpIWltcG9ydGFudDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcclxuICAgIC8qZm9udC1mYW1pbHk6ICdJY29uYSBTYW5zJywgc2Fucy1zZXJpZjsqL1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtbWFpbi1saW5rcykgIWltcG9ydGFudDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHdpZHRoOiAxMDAlIWltcG9ydGFudDtcclxufVxyXG4ubWFpbi1tZW51LWxpbmstcG9ydGFsOmhvdmVyIHtcclxuICAgIGNvbG9yOiB3aGl0ZSFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5tYWluLW1lbnUtbGluay1wb3J0YWwtdG8tYmUtcmVtb3ZlZCB7XHJcbiAgICBvcGFjaXR5OiAwLjU7XHJcbiAgICBjdXJzb3I6bm90LWFsbG93ZWQ7XHJcbn1cclxuXHJcbi5tYWluLXN1Yi1tZW51LWxpbmstcG9ydGFsIHtcclxuICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICBwYWRkaW5nLXRvcDoxcmVtO1xyXG4gICAgcGFkZGluZy1ib3R0b206IDFyZW07XHJcbiAgICBtYXJnaW4tbGVmdDogMCFpbXBvcnRhbnQ7XHJcbiAgICBjb2xvcjogYmxhY2shaW1wb3J0YW50O1xyXG4gICAgYm9yZGVyLXRvcDogdmFyKC0tYnV0dG9uLWJvcmRlci13aWR0aCkgc29saWQgd2hpdGUhaW1wb3J0YW50O1xyXG4gICAgYm9yZGVyLWJvdHRvbTogdmFyKC0tYnV0dG9uLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tYnV0dG9uLWJvcmRlci1jb2xvci1tYWluLW1lbnUpIWltcG9ydGFudDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcclxuICAgIC8qZm9udC1mYW1pbHk6ICdJY29uYSBTYW5zJywgc2Fucy1zZXJpZjsqL1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtbWFpbi1saW5rcykgIWltcG9ydGFudDtcclxufVxyXG4vKiBMaW5rIGhvdmVyIChmaXhlZCB0aGUgdmFyKC4uLikgdHlwbyBmb3IgYm9yZGVyLXRvcCkgKi9cclxuLm1haW4tbWVudS1saW5rLXBvcnRhbDpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tYmFja2dyb3VuZC1vbi1ob3ZlcikgIWltcG9ydGFudDtcclxuICAgIGJvcmRlci10b3A6IHZhcigtLWJ1dHRvbi1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWJ1dHRvbi1ib3JkZXItY29sb3ItbWFpbi1tZW51LW9uLWhvdmVyKSAhaW1wb3J0YW50O1xyXG4gICAgYm9yZGVyLWJvdHRvbTogdmFyKC0tYnV0dG9uLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tYnV0dG9uLWJvcmRlci1jb2xvci1tYWluLW1lbnUtb24taG92ZXIpICFpbXBvcnRhbnQ7XHJcbiAgICBmb250LXdlaWdodDogdmFyKC0tYnV0dG9uLWZvbnQtd2VpZ2h0LW9uLWhvdmVyKTtcclxufVxyXG5cclxuLmJ1dHRvbjIwMjEtaG9tZS1uZXN0ZWQtbGluayB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSFpbXBvcnRhbnQ7XHJcbiAgICBmb250LXNpemU6IGNhbGModmFyKC0tZm9udC1zaXplKSAtIDAuMXJlbSkhaW1wb3J0YW50O1xyXG4gICAgcGFkZGluZy1sZWZ0OjAuNXJlbSFpbXBvcnRhbnQ7XHJcbiAgICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpIWltcG9ydGFudDtcclxuICAgIHdpZHRoOiAxMDAlIWltcG9ydGFudDtcclxufVxyXG4vKiBOYXZpZ2F0aW9uIG1haW4gbWVudSAqL1xyXG4ubmF2aWdhdGlvbl9tYWluIHVsIGxpIGEge1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgbWFyZ2luOiAwIDAgNXB4O1xyXG4gICAgcGFkZGluZzogN3B4O1xyXG4gICAgZm9udC1zaXplOiAwLjllbTtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgIG1hcmdpbi10b3A6IDAhaW1wb3J0YW50O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMCFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5uaWNlLXRleHQtYm94IHtcclxuICAgIGZvbnQtc2l6ZTogMWVtIWltcG9ydGFudDtcclxuICAgIHBhZGRpbmc6IDVweCFpbXBvcnRhbnQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHghaW1wb3J0YW50O1xyXG4gICAgYm9yZGVyOiB2YXIoLS1jb250cm9sLWJvcmRlcik7XHJcbiAgICB3aWR0aDogOTUlICFpbXBvcnRhbnQ7XHJcbiAgICBoZWlnaHQ6IDIyLjVweCFpbXBvcnRhbnQ7XHJcbn1cclxuLyogU3RhbmRhcmQgbG92ZWx5IGJ1dHRvbiAqL1xyXG4uYnV0dG9uMjAyMSB7XHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b25yYWRpdXMpO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAzcHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA2cHg7XHJcbiAgICBwYWRkaW5nOiA3cHggMTRweDtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1iYWNrZ3JvdW5kKSFpbXBvcnRhbnQ7XHJcbiAgICBjb2xvcjogdmFyKC0tYnV0dG9uLXRleHQtY29sb3VyKSFpbXBvcnRhbnQ7XHJcbiAgICBib3JkZXI6IHZhcigtLWJ1dHRvbi1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWJ1dHRvbi1ib3JkZXIpICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5idXR0b24yMDIxOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1iYWNrZ3JvdW5kLW9uLWhvdmVyKSFpbXBvcnRhbnQ7XHJcbiAgICBjb2xvcjogdmFyKC0tYnV0dG9uLWZvcmVncm91bmQtb24taG92ZXIpIWltcG9ydGFudDtcclxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1idXR0b24tZm9udC13ZWlnaHQtb24taG92ZXIpO1xyXG4gICAgYm9yZGVyOiB2YXIoLS1idXR0b24tYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1idXR0b24tYm9yZGVyLW9uLWhvdmVyKSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uYnV0dG9uMjAyMS1vcmRlci1wYWdlIHtcclxuICAgIHdpZHRoOiAyMDBweFxyXG59XHJcbi5idXR0b24yMDIxLWxvZy1vbi1zY3JlZW4ge1xyXG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxufVxyXG4uYnV0dG9uMjAyMS1sb2ctb24tc2NyZWVuOmhvdmVyIHtcclxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1idXR0b24tZm9udC13ZWlnaHQtb24taG92ZXIpO1xyXG59XHJcblxyXG4uYnV0dG9uMjAyMWZpeGVkbm90ZXh0IHtcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcbn1cclxuLypcclxuICAgIFNwZWNpYWwgYnV0dG9ucyBmb3IgZGFzaGJvYXJkIGhlYWRlcnMgXHJcbiovXHJcbi5idXR0b24yMDIxZGFzaGJvYXJkIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1iYWNrZ3JvdW5kKTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICBwYWRkaW5nOiA1cHg7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcclxuICAgIGRpc3BsYXk6bm9uZTtcclxuICAgIGNvbG9yOiB2YXIoLS1idXR0b24tZm9yZWdyb3VuZCkhaW1wb3J0YW50O1xyXG4gICAgYm9yZGVyOiB2YXIoLS1idXR0b24tYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1idXR0b24tYm9yZGVyKSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uYnV0dG9uMjAyMWRhc2hib2FyZDpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tYmFja2dyb3VuZC1vbi1ob3Zlcik7XHJcbiAgICBjb2xvcjogdmFyKC0tYnV0dG9uLWZvcmVncm91bmQpIWltcG9ydGFudDtcclxuICAgIGJvcmRlcjogdmFyKC0tYnV0dG9uLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tYnV0dG9uLWJvcmRlci1vbi1ob3ZlcikgIWltcG9ydGFudDtcclxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1idXR0b24tZm9udC13ZWlnaHQtb24taG92ZXIpO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG5cclxuLmF3ZXNvbWVpY29uZGFzaGJvYXJkIHtcclxuICAgIGNvbG9yOiB2YXIoLS1idXR0b24taWNvbi1jb2xvcikhaW1wb3J0YW50O1xyXG5cclxufVxyXG5cclxuXHJcbi5hd2Vzb21laWNvbmRhc2hib2FyZDpob3ZlciB7XHJcbiAgICBjb2xvcjogdmFyKC0tbmFzc3Rhcm9yYW5nZSk7XHJcbn1cclxuXHJcbi8qIFdoZW4gdGhlIHBhcmVudCBsaW5rIGlzIGhvdmVyZWQsIGNoYW5nZSB0aGUgaWNvbiBjb2xvciAqL1xyXG4uYnV0dG9uMjAyMWRhc2hib2FyZDpob3ZlciAuYXdlc29tZWljb25kYXNoYm9hcmQge1xyXG4gICAgY29sb3I6IHZhcigtLWJ1dHRvbi1pY29uLWNvbG9yLW9uLWhvdmVyKSAhaW1wb3J0YW50O1xyXG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgMnB4IGJsYWNrKTtcclxufVxyXG4uYXdlc29tZWljb24ge1xyXG4gICAgY29sb3I6IHZhcigtLWJ1dHRvbi1pY29uLWNvbG9yKSFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcblxyXG4uYXdlc29tZWljb246aG92ZXIge1xyXG4gICAgY29sb3I6IHZhcigtLWJ1dHRvbi1iYWNrZ3JvdW5kLW9uLWhvdmVyKSFpbXBvcnRhbnQ7XHJcblxyXG59XHJcblxyXG5cclxuLyogV2hlbiB0aGUgcGFyZW50IGxpbmsgaXMgaG92ZXJlZCwgY2hhbmdlIHRoZSBpY29uIGNvbG9yICovXHJcbi5idXR0b24yMDIxOmhvdmVyIC5hd2Vzb21laWNvbiB7XHJcbiAgICBjb2xvcjogdmFyKC0tYnV0dG9uLWljb24tY29sb3Itb24taG92ZXIpICFpbXBvcnRhbnQ7XHJcbiAgICAvKmZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDJweCBibGFjayk7Ki9cclxufVxyXG5cclxuXHJcbi8qIE1haW4gbWVudSAqL1xyXG4uYXdlc29tZS1pY29uLW5hdmlnYXRpb24ge1xyXG4gICAgY29sb3I6IHZhcigtLWJ1dHRvbi1pY29uLWNvbG9yKSFpbXBvcnRhbnQ7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjZyZW07XHJcbn1cclxuXHJcbi5hd2Vzb21lLWljb24tbmF2aWdhdGlvbjpob3ZlciB7XHJcbiAgICBjb2xvcjogdmFyKC0tYnV0dG9uLWljb24tY29sb3Itb24taG92ZXIpIWltcG9ydGFudDtcclxufVxyXG5cclxuXHJcbi8qIEljb24gYmFzZSAqL1xyXG4uYXdlc29tZS1pY29uLW5hdmlnYXRpb24ge1xyXG4gICAgY29sb3I6IHZhcigtLWJ1dHRvbi1pY29uLWNvbG9yKSAhaW1wb3J0YW50O1xyXG4gICAgcGFkZGluZy1yaWdodDogMC42cmVtO1xyXG4gICAgdHJhbnNpdGlvbjogY29sb3IgLjE1cyBlYXNlLWluLW91dDsgLyogc21vb3RoIGNoYW5nZSAqL1xyXG59XHJcblxyXG4vKiBXaGVuIHRoZSBwYXJlbnQgbGluayBpcyBob3ZlcmVkLCBjaGFuZ2UgdGhlIGljb24gY29sb3IgKi9cclxuLm1haW4tbWVudS1saW5rLXBvcnRhbDpob3ZlciAuYXdlc29tZS1pY29uLW5hdmlnYXRpb24ge1xyXG4gICAgY29sb3I6IHZhcigtLWJ1dHRvbi1pY29uLWNvbG9yLW9uLWhvdmVyKSAhaW1wb3J0YW50O1xyXG59XHJcbi8qLm1haW4tbWVudS1saW5rLXBvcnRhbDpob3ZlciB7IGNvbG9yOiB2YXIoLS1idXR0b24tdGV4dC1jb2xvci1vbi1ob3ZlcikgIWltcG9ydGFudDsgfSovXHJcblxyXG4uYnV0dG9uMjAyMS1zcGVjaWFsLW92ZXJyaWRlIHtcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XHJcbn1cclxuXHJcblxyXG4ubWFpbi1tZW51LXBhZGRpbmcge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAwIWltcG9ydGFudDtcclxuICAgIHBhZGRpbmctdG9wOiAxcmVtO1xyXG4gICAgYm9yZGVyLXJpZ2h0OiAzcHggc29saWQgdmFyKC0tbGluZS1vci1zZXBhcmF0b3ItY29sb3VyKSFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi8qIFByb2dyZXNzICovXHJcbi5wcm9ncmVzc2ZvcmRhc2gge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICBsZWZ0OiA1MCU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxuXHJcbiAgICB6LWluZGV4OiAxMDAwMDA7XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICBjb2xvcjp3aGl0ZXNtb2tlO1xyXG59XHJcbi5wcm9ncmVzc0JhY2tncm91bmQge1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tdGVhbC04MDApIWltcG9ydGFudDtcclxuICAgIHBhZGRpbmc6IDEwcHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgIzNhYjNkZCAhaW1wb3J0YW50O1xyXG4gICAgbWFyZ2luOiAxNHB4IDE0cHggMDtcclxuICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IDAgIzM0OThkYiBpbnNldCwgMCAwIDEwcHggMnB4ICMzNDk4ZGJcclxufVxyXG5cclxuLyogQWNjb3JkaW9uIGhvbWUgc2NyZWVuICovXHJcbiNhY2NvcmRpb24gLnVpLWFjY29yZGlvbi1oZWFkZXIudWktc3RhdGUtYWN0aXZlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1iYWNrZ3JvdW5kKSAhaW1wb3J0YW50O1xyXG4gICAgY29sb3I6dmFyKC0tYnV0dG9uLWZvcmVncm91bmQpO1xyXG4gICAgb3BhY2l0eTogMC45O1xyXG59XHJcblxyXG4jYWNjb3JkaW9uIC51aS1hY2NvcmRpb24taGVhZGVyOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1iYWNrZ3JvdW5kLW9uLWhvdmVyKSAhaW1wb3J0YW50O1xyXG4gICAgY29sb3I6dmFyKC0tYnV0dG9uLWZvcmVncm91bmQtb24taG92ZXIpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDEwMDtcclxufVxyXG5cclxuI2FjY29yZGlvbmltcG9ydGFudCB7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbn1cclxuXHJcblxyXG4jYWNjb3JkaW9uIC51aS1hY2NvcmRpb24tY29udGVudC1hY3RpdmUge1xyXG4gICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XHJcbn1cclxuLm5ld3NpdGVtcyB7XHJcbiAgICBjb2xvcjogdmFyKC0tcGFnZWJhY2tncm91bmQpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbn1cclxuXHJcblxyXG4udWktc3RhdGUtYWN0aXZlLCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWFjdGl2ZSwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWFjdGl2ZSwgYS51aS1idXR0b246YWN0aXZlLCAudWktYnV0dG9uOmFjdGl2ZSwgLnVpLWJ1dHRvbi51aS1zdGF0ZS1hY3RpdmU6aG92ZXIge1xyXG4gICAgLyogYm9yZGVyOiAxcHggc29saWQgIzAwM2VmZjsgKi9cclxuICAgIGJvcmRlcjp1bnNldCFpbXBvcnRhbnQ7XHJcbiAgICBiYWNrZ3JvdW5kOiAjMDA3ZmZmO1xyXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG59XHJcblxyXG4udWktc3RhdGUtYWN0aXZlIC51aS1pY29uLCAudWktYnV0dG9uOmFjdGl2ZSAudWktaWNvbiB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJpbWFnZXMvdWktaWNvbnNfNDQ0NDQ0XzI1NngyNDAucG5nXCIpIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiBibGFjayFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi51aS1zdGF0ZS1hY3RpdmUge1xyXG4gICAgYm9yZGVyOiB2YXIoLS1idXR0b24tYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1idXR0b24tYm9yZGVyKSFpbXBvcnRhbnQ7XHJcbn1cclxuLnVpLXN0YXRlLWRlZmF1bHQge1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYnV0dG9uLWJvcmRlcik7XHJcbn1cclxuLnVpLXdpZGdldC1jb250ZW50IHtcclxuICAgIGJvcmRlcjp1bnNldCFpbXBvcnRhbnQ7XHJcbn1cclxuLyogPT09PT0gTkFTUyBEaWFsb2cgKHNjb3BlZCwgbm9uLWNvbmZsaWN0aW5nKSA9PT09PSAqL1xyXG4ubmFzcy1kaWFsb2cge1xyXG4gICAgLyogVGhlbWUgdmFycyAob3ZlcnJpZGUgdGhlc2UgaW4geW91ciBnbG9iYWwgQ1NTIGlmIG5lZWRlZCkgKi9cclxuICAgIC0tbmFzcy1zdWNjZXNzOiAjMmU3ZDMyO1xyXG4gICAgLS1uYXNzLXN1Y2Nlc3MtYmc6ICNlYWY3ZWE7XHJcbiAgICAtLW5hc3Mtc3VjY2Vzcy1icjogI2I3ZTFiOTtcclxuXHJcbiAgICAtLW5hc3MtZXJyb3I6ICNjNjI4Mjg7XHJcbiAgICAtLW5hc3MtZXJyb3ItYmc6ICNmZGVjZWE7XHJcbiAgICAtLW5hc3MtZXJyb3ItYnI6ICNmNmM3YzQ7XHJcblxyXG4gICAgLS1uYXNzLWluZm86ICMxZTg4ZTU7XHJcbiAgICAtLW5hc3MtaW5mby1iZzogI2U4ZjJmZDtcclxuICAgIC0tbmFzcy1pbmZvLWJyOiAjYmNkOWZiO1xyXG5cclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICB3aWR0aDogbWluKDkydncsIDY0MHB4KTtcclxuICAgIG1heC1oZWlnaHQ6IDg1dmg7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxufVxyXG5cclxuLm5hc3MtZGlhbG9nOjpiYWNrZHJvcCB7IGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC40NSk7IH1cclxuXHJcbi5uYXNzLWRpYWxvZ19fY29udGFpbmVyIHtcclxuICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgYm94LXNoYWRvdzogMCAxMnB4IDQ4cHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLyogSGVhZGVyIGxheW91dCAqL1xyXG4ubmFzcy1kaWFsb2dfX2hlYWRlciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGdhcDogLjc1cmVtO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkIHZhcigtLW5lYnVsYS0zMDApO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xyXG59XHJcblxyXG4vKiBWYXJpYW50IGFjY2VudCAoaGVhZGVyKSAqL1xyXG4ubmFzcy1kaWFsb2ctLXN1Y2Nlc3MgLm5hc3MtZGlhbG9nX19oZWFkZXIge1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tbmFzcy1zdWNjZXNzLWJnKTtcclxuICAgIGNvbG9yOiB2YXIoLS1uYXNzLXN1Y2Nlc3MpO1xyXG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tbmFzcy1zdWNjZXNzLWJyKTtcclxufVxyXG4ubmFzcy1kaWFsb2ctLWVycm9yIC5uYXNzLWRpYWxvZ19faGVhZGVyIHtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLW5hc3MtZXJyb3ItYmcpO1xyXG4gICAgY29sb3I6IHZhcigtLW5hc3MtZXJyb3IpO1xyXG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tbmFzcy1lcnJvci1icik7XHJcbn1cclxuLm5hc3MtZGlhbG9nLS1pbmZvIC5uYXNzLWRpYWxvZ19faGVhZGVyIHtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLW5hc3MtaW5mby1iZyk7XHJcbiAgICBjb2xvcjogdmFyKC0tbmFzcy1pbmZvKTtcclxuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLW5hc3MtaW5mby1icik7XHJcbn1cclxuXHJcbi8qIE9wdGlvbmFsIGxlZnQgYWNjZW50IGJhciBmb3Igc3Ryb25nZXIgdmlzdWFsIHNpZ25hbCAqL1xyXG4ubmFzcy1kaWFsb2ctLXN1Y2Nlc3MgLm5hc3MtZGlhbG9nX19jb250YWluZXIgeyBib3JkZXItbGVmdDogNnB4IHNvbGlkIHZhcigtLW5hc3Mtc3VjY2Vzcyk7IH1cclxuLm5hc3MtZGlhbG9nLS1lcnJvciAgIC5uYXNzLWRpYWxvZ19fY29udGFpbmVyIHsgYm9yZGVyLWxlZnQ6IDZweCBzb2xpZCB2YXIoLS1uYXNzLWVycm9yKTsgfVxyXG4ubmFzcy1kaWFsb2ctLWluZm8gICAgLm5hc3MtZGlhbG9nX19jb250YWluZXIgeyBib3JkZXItbGVmdDogNnB4IHNvbGlkIHZhcigtLW5hc3MtaW5mbyk7IH1cclxuXHJcbi5uYXNzLWRpYWxvZ19faWNvbiB7XHJcbiAgICB3aWR0aDogMjBweDtcclxuICAgIGhlaWdodDogMjBweDtcclxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG59XHJcblxyXG4vKiBUaXRsZSAmIGNvbnRyb2xzICovXHJcbi5uYXNzLWRpYWxvZ19fdGl0bGUgeyBtYXJnaW46IDA7IGZvbnQtc2l6ZTogMS4yNXJlbTsgbGluZS1oZWlnaHQ6IDEuNDsgfVxyXG4ubmFzcy1kaWFsb2dfX2Nsb3NlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICBmb250LXNpemU6IDJyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGNvbG9yOiBpbmhlcml0O1xyXG4gICAgcGFkZGluZzogMC42NXJlbTtcclxuICAgIG1hcmdpbi10b3A6IDAuMnJlbTtcclxufVxyXG4ubmFzcy1kaWFsb2dfX2Nsb3NlOmhvdmVyIHsgb3BhY2l0eTogLjg7IH1cclxuXHJcbi8qIEJvZHkgJiBmb290ZXIgKi9cclxuLm5hc3MtZGlhbG9nX19ib2R5IHsgcGFkZGluZzogMXJlbSAxLjI1cmVtOyBvdmVyZmxvdzogYXV0bzsgfVxyXG4ubmFzcy1kaWFsb2dfX2Zvb3RlciB7XHJcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2VlZTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gICAgZ2FwOiAuNXJlbTtcclxuICAgIHBhZGRpbmc6IDAgMS4yNXJlbSAwLjJyZW07XHJcbn1cclxuLm5hc3MtZGlhbG9nX19idG4ge1xyXG4gICAgYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XHJcbiAgICBiYWNrZ3JvdW5kOiAjZjlmOWY5O1xyXG4gICAgY29sb3I6ICMzMzM7XHJcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XHJcbiAgICBwYWRkaW5nOiAuNXJlbSAuOXJlbTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG4ubmFzcy1kaWFsb2dfX2J0bjpob3ZlciB7IGJhY2tncm91bmQ6ICNmMWYxZjE7IH1cclxuXHJcbi8qIFByZWNpc2UgY2VudGVyaW5nIChvcHRpb25hbCBvdmVycmlkZSkgKi9cclxuLypcclxuLm5hc3MtZGlhbG9nIHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgaW5zZXQ6IDUwJSBhdXRvIGF1dG8gNTAlO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG59XHJcbiovXHJcblxyXG4ucmVzdWx0LWxpbmstbGkge1xyXG4gICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgIHBhZGRpbmctdG9wOjFyZW07XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcclxuICAgIG1hcmdpbi1sZWZ0OiAwIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiBibGFjayFpbXBvcnRhbnQ7XHJcbiAgICBib3JkZXItdG9wOiB2YXIoLS1idXR0b24tYm9yZGVyLXdpZHRoKSBzb2xpZCB3aGl0ZSFpbXBvcnRhbnQ7XHJcbiAgICBib3JkZXItYm90dG9tOiB2YXIoLS1idXR0b24tYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1idXR0b24tYm9yZGVyLWNvbG9yLW1haW4tbWVudSkhaW1wb3J0YW50O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xyXG59XHJcbi5yZXN1bHQtbGluayB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuc2V0O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XHJcbn1cclxuXHJcbi50aWxlSW50cm9XcmFwcGVyIHtcclxuICAgIC8qYm9yZGVyLWJvdHRvbTogdmFyKC0tdGlsZUludHJvU2VjdGlvbkJvdHRvbUJvcmRlcik7Ki9cclxuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbn1cclxuXHJcbi50aWxlSW50cm9UZXh0IHtcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIGZvbnQtc2l6ZTogdmFyKC0tdGlsZUludHJvU2VjdGlvbkZvbnRTaXplKTtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBoZWlnaHQ6Mi41cmVtO1xyXG59XHJcblxyXG5cclxuLnRpbGVDb250cm9sUGFydCB7XHJcbiAgICB3aWR0aDogMzUlO1xyXG4gICAgaGVpZ2h0OiB2YXIoLS10aWxlSW50cm9TZWN0aW9uSGVpZ2h0KTtcclxufVxyXG5cclxuLypcclxuICAgIERBU0hCT0FSRFxyXG4qL1xyXG4uY2hhcnRXcmFwcGVyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGhlaWdodDogdmFyKC0taGVpZ2h0LW9mLWNoYXJ0LWluLWRhc2hib2FyZClcclxufVxyXG5cclxuXHJcbi5jaGFydFdyYXBwZXJMYXJnZSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBoZWlnaHQ6IDU1MHB4XHJcbn1cclxuXHJcblxyXG4ubm9EYXRhV3JhcHBlciB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBoZWlnaHQ6IDE1MHB4O1xyXG4gICAgLyogYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFnZWJhY2tncm91bmQpOyAqL1xyXG4gICAgYm9yZGVyOiAycHggZG90dGVkIGdyYXk7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xyXG59XHJcblxyXG4ucmFkaW8tYnV0dG9uLWRhc2hib2FyZC10ZXh0IHtcclxuICAgIGZvbnQtc2l6ZTogY2FsYyggdmFyKC0tZm9udC1zaXplKSAtIDAuMXJlbSk7XHJcbn1cclxuLm5vRGF0YVRleHQge1xyXG4gICAgY29sb3I6IGdyZXk7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nLXRvcDogMjBweDtcclxufVxyXG5cclxuLnJlc3VsdHMtbGlzdC1xdWljay1zZWFyY2gge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xyXG5cclxufVxyXG5cclxuLnJlc3VsdHMtbGlzdC1xdWljay1zZWFyY2gtaXRlbSB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XHJcblxyXG59XHJcblxyXG5cclxuXHJcbi8qIEJhc2UgY29udGFpbmVyICovXHJcbi5uYXNzLXByb2dyZXNzIHtcclxuICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBhdXRvOyAvKiBiYXIgKyB2YWx1ZSAqL1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGdhcDogMTBweDtcclxuICAgIGNvbG9yOiB2YXIoLS1uYXNzLXRleHQpO1xyXG4gICAgZm9udDogNTAwIDE0cHgvMS4zIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgXCJPcGVuIFNhbnNcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XHJcbn1cclxuXHJcbi8qIFRyYWNrICYgYmFyICovXHJcbi5uYXNzLXByb2dyZXNzX190cmFjayB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogdmFyKC0tbmFzcy1oZWlnaHQpO1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tbmFzcy10cmFjayk7XHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1uYXNzLXJhZGl1cyk7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4ubmFzcy1wcm9ncmVzc19fYmFyIHtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLW5hc3MtcHJpbWFyeSk7XHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1uYXNzLXJhZGl1cyk7XHJcbiAgICB3aWR0aDogMCU7XHJcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCAyNTBtcyBlYXNlO1xyXG59XHJcblxyXG4vKiBUZXh0IGFyZWEgKi9cclxuLm5hc3MtcHJvZ3Jlc3NfX3RleHQge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XHJcbiAgICBnYXA6IDhweDtcclxufVxyXG4ubmFzcy1wcm9ncmVzc19fbGFiZWwgeyBjb2xvcjogdmFyKC0tbmFzcy10ZXh0KTsgfVxyXG4ubmFzcy1wcm9ncmVzc19fdmFsdWUgeyBjb2xvcjogdmFyKC0tbmFzcy1wcmltYXJ5KTsgZm9udC13ZWlnaHQ6IDYwMDsgfVxyXG5cclxuLyogSW5kZXRlcm1pbmF0ZSBzaGltbWVyICovXHJcbi5uYXNzLXByb2dyZXNzLS1pbmRldGVybWluYXRlIC5uYXNzLXByb2dyZXNzX190cmFjazo6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBpbnNldDogMDtcclxuICAgIGJhY2tncm91bmQ6XHJcbiAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZyxcclxuICAgICAgICAgICAgdHJhbnNwYXJlbnQgMCUsXHJcbiAgICAgICAgICAgIHJnYmEoMjU1LDI1NSwyNTUsMC42NSkgNTAlLFxyXG4gICAgICAgICAgICB0cmFuc3BhcmVudCAxMDAlKSxcclxuICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KDBkZWcsIHZhcigtLW5hc3MtdHJhY2spLCB2YXIoLS1uYXNzLXRyYWNrKSk7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xyXG4gICAgYW5pbWF0aW9uOiBuYXNzLXByb2dyZXNzLW1vdmUgMS4ycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcclxufVxyXG5Aa2V5ZnJhbWVzIG5hc3MtcHJvZ3Jlc3MtbW92ZSB7XHJcbiAgICA1MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpOyB9XHJcbiAgICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpOyB9XHJcbn1cclxuXHJcbi8qIFF1aWNrIHZhcmlhbnRzIChvcHRpb25hbCkgKi9cclxuLm5hc3MtcHJvZ3Jlc3MtLXN1Y2Nlc3MgLm5hc3MtcHJvZ3Jlc3NfX2JhciB7IGJhY2tncm91bmQ6IHZhcigtLW5hc3Mtc3VjY2Vzcyk7IH1cclxuLm5hc3MtcHJvZ3Jlc3MtLWVycm9yICAgLm5hc3MtcHJvZ3Jlc3NfX2JhciB7IGJhY2tncm91bmQ6IHZhcigtLW5hc3MtZXJyb3IpOyB9XHJcbi5uYXNzLXByb2dyZXNzLS1pbmZvICAgIC5uYXNzLXByb2dyZXNzX19iYXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1uYXNzLWluZm8pOyB9XHJcbi5uYXNzLXByb2dyZXNzLS1zdWNjZXNzIC5uYXNzLXByb2dyZXNzX192YWx1ZSB7IGNvbG9yOiB2YXIoLS1uYXNzLXN1Y2Nlc3MpOyB9XHJcbi5uYXNzLXByb2dyZXNzLS1lcnJvciAgIC5uYXNzLXByb2dyZXNzX192YWx1ZSB7IGNvbG9yOiB2YXIoLS1uYXNzLWVycm9yKTsgfVxyXG4ubmFzcy1wcm9ncmVzcy0taW5mbyAgICAubmFzcy1wcm9ncmVzc19fdmFsdWUgeyBjb2xvcjogdmFyKC0tbmFzcy1pbmZvKTsgfVxyXG5cclxuXHJcbi5ncmFkaWVudExpbmUge1xyXG4gICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgY2VudGVyLCAjZGVlZmZmIDAlLHZhcigtLW5lYnVsYS0zMDApIDEwMCUpO1xyXG4gICAgaGVpZ2h0OiAzcHg7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAvKiBib3gtc2hhZG93OiAwIDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTsgKi9cclxuICAgIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4udWktc3RhdGUtZGVmYXVsdCwgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1kZWZhdWx0LCAudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZGVmYXVsdCwgLnVpLWJ1dHRvbiwgaHRtbCAudWktYnV0dG9uLnVpLXN0YXRlLWRpc2FibGVkOmhvdmVyLCBodG1sIC51aS1idXR0b24udWktc3RhdGUtZGlzYWJsZWQ6YWN0aXZlIHtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWJlaWdlKSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5cclxuLnVpLXdpZGdldCB7XHJcbiAgICBmb250LWZhbWlseTogdW5zZXQhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZGFzaGJvYXJkLWRpc3BsYXktc3RhdGUge1xyXG4gICAgZGlzcGxheTpub25lO1xyXG59XHJcblxyXG5cclxuLnBhbmVsLWRpc2FibGVkIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcclxuICAgIHBhZGRpbmc6IDFyZW07XHJcbiAgICBpc29sYXRpb246IGlzb2xhdGU7IC8qIOKchSBmb3JjZXMgcHJvcGVyIHN0YWNraW5nIGNvbnRleHQgKi9cclxufVxyXG5cclxuLyogR0xBU1MgbGF5ZXIgKi9cclxuLnBhbmVsLWRpc2FibGVkOjpiZWZvcmUge1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGluc2V0OiAwO1xyXG5cclxuICAgIC8qIOKchSBNVVNUIGJlIHRyYW5zbHVjZW50ICovXHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS11bnJlYWR5LW92ZXJsYXktYmcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40NSkpO1xyXG5cclxuICAgIC8qIOKchSBibHVyIG9ubHkgd29ya3Mgd2l0aCB0cmFuc3BhcmVuY3kgKi9cclxuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cih2YXIoLS11bnJlYWR5LWJsdXIsIDZweCkpO1xyXG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIodmFyKC0tdW5yZWFkeS1ibHVyLCA2cHgpKTtcclxuXHJcbiAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xyXG5cclxuICAgIHotaW5kZXg6IDE7IC8qIOKchSBzaXRzIG92ZXIgY29udGVudCAqL1xyXG59XHJcblxyXG4vKiBDRU5URVJFRCBNRVNTQUdFICovXHJcbi5wYW5lbC1kaXNhYmxlZDo6YWZ0ZXIge1xyXG4gICAgY29udGVudDogYXR0cihkYXRhLXVucmVhZHktbXNnKTtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGluc2V0OiAwO1xyXG5cclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogdG9wO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgY29sb3I6IHZhcigtLXVucmVhZHktdGV4dCwgIzU1NSk7XHJcbiAgICBmb250LXNpemU6IHZhcigtLXVucmVhZHktZm9udC1zaXplLCAxLjFyZW0pO1xyXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLXVucmVhZHktZm9udC13ZWlnaHQsIDcwMCk7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogdmFyKC0tdW5yZWFkeS1sZXR0ZXItc3BhY2luZywgMC4zcHgpO1xyXG5cclxuICAgIHBhZGRpbmc6IHZhcigtLXVucmVhZHktcGFkZGluZywgMTJweCAxNnB4KTtcclxuICAgIG1hcmdpbjogYXV0bztcclxuICAgIHdpZHRoOiBtYXgtY29udGVudDtcclxuICAgIG1heC13aWR0aDogbWluKDkwJSwgNDhyZW0pO1xyXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tdW5yZWFkeS1yYWRpdXMsIDEwcHgpO1xyXG5cclxuICAgIC8qIOKchSBvcHRpb25hbCBwaWxsIGJlaGluZCB0ZXh0ICovXHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS11bnJlYWR5LXRleHQtYmcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSk7XHJcbiAgICBib3gtc2hhZG93OiB2YXIoLS11bnJlYWR5LXNoYWRvdywgMCA2cHggMThweCByZ2JhKDAsMCwwLDAuMDgpKTtcclxuXHJcbiAgICB6LWluZGV4OiAyOyAvKiDinIUgYWJvdmUgZ2xhc3MgKi9cclxufVxyXG5cclxuLyogV3JhcHBlciAqL1xyXG4udG9vbHRpcCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBjdXJzb3I6IGhlbHA7XHJcbn1cclxuXHJcbi8qIFRvb2x0aXAgYnViYmxlICovXHJcbi50b29sdGlwOjphZnRlciB7XHJcbiAgICBjb250ZW50OiBhdHRyKGRhdGEtdG9vbHRpcCk7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBsZWZ0OiA1MCU7XHJcbiAgICBib3R0b206IGNhbGMoMTAwJSArIHZhcigtLXRvb2x0aXAtb2Zmc2V0KSk7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSg0cHgpO1xyXG5cclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBmb250LXNpemU6IHZhcigtLXRvb2x0aXAtZm9udC1zaXplKTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XHJcblxyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9vbHRpcC1iZyk7XHJcbiAgICBjb2xvcjogdmFyKC0tdG9vbHRpcC1mZyk7XHJcbiAgICBwYWRkaW5nOiB2YXIoLS10b29sdGlwLXBhZGRpbmcpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tdG9vbHRpcC1yYWRpdXMpO1xyXG4gICAgYm94LXNoYWRvdzogdmFyKC0tdG9vbHRpcC1zaGFkb3cpO1xyXG5cclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuXHJcbiAgICB0cmFuc2l0aW9uOlxyXG4gICAgICAgICAgICBvcGFjaXR5IHZhcigtLXRvb2x0aXAtdHJhbnNpdGlvbiksXHJcbiAgICAgICAgICAgIHRyYW5zZm9ybSB2YXIoLS10b29sdGlwLXRyYW5zaXRpb24pO1xyXG4gICAgei1pbmRleDogMTAwMDtcclxufVxyXG5cclxuLyogVG9vbHRpcCBhcnJvdyAqL1xyXG4udG9vbHRpcDo6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBsZWZ0OiA1MCU7XHJcbiAgICBib3R0b206IGNhbGMoMTAwJSArIDJweCk7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSg0cHgpO1xyXG5cclxuICAgIGJvcmRlci13aWR0aDogNnB4O1xyXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdG9vbHRpcC1iZykgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XHJcblxyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuXHJcbiAgICB0cmFuc2l0aW9uOlxyXG4gICAgICAgICAgICBvcGFjaXR5IHZhcigtLXRvb2x0aXAtdHJhbnNpdGlvbiksXHJcbiAgICAgICAgICAgIHRyYW5zZm9ybSB2YXIoLS10b29sdGlwLXRyYW5zaXRpb24pO1xyXG59XHJcblxyXG4vKiBTaG93IHRvb2x0aXAgKi9cclxuLnRvb2x0aXA6aG92ZXI6OmFmdGVyLFxyXG4udG9vbHRpcDpob3Zlcjo6YmVmb3JlLFxyXG4udG9vbHRpcDpmb2N1cy12aXNpYmxlOjphZnRlcixcclxuLnRvb2x0aXA6Zm9jdXMtdmlzaWJsZTo6YmVmb3JlIHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoMCk7XHJcbn1cclxuXHJcbiNnbG9iYWxUb29sdGlwIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHotaW5kZXg6IDIxNDc0ODM2NDc7XHJcblxyXG4gICAgYmFja2dyb3VuZDogcmdiYSgzMCwgMzAsIDM0LCAwLjk1KTtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgcGFkZGluZzogOHB4IDEwcHg7XHJcblxyXG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gICAgZm9udC1zaXplOiAwLjg1cmVtO1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuXHJcbiAgICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMCwwLDAsMC4yKTtcclxuXHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KTtcclxuXHJcbiAgICB0cmFuc2l0aW9uOlxyXG4gICAgICAgICAgICBvcGFjaXR5IDEyMG1zIGVhc2UsXHJcbiAgICAgICAgICAgIHRyYW5zZm9ybSAxMjBtcyBlYXNlO1xyXG59XHJcblxyXG4jZ2xvYmFsVG9vbHRpcC52aXNpYmxlIHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XHJcbn1cclxuXHJcblxyXG4jZ2xvYmFsVG9vbHRpcCB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB6LWluZGV4OiAyMTQ3NDgzNjQ3O1xyXG5cclxuICAgIG1pbi13aWR0aDogMTgwcHg7XHJcbiAgICBtYXgtd2lkdGg6IDMyMHB4O1xyXG5cclxuICAgIGJhY2tncm91bmQ6IHJnYmEoMzAsIDMwLCAzNCwgMC45Nik7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuXHJcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgwLDAsMCwwLjI1KTtcclxuXHJcbiAgICBmb250LXNpemU6IDAuODVyZW07XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuXHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDRweCk7XHJcbiAgICB0cmFuc2l0aW9uOlxyXG4gICAgICAgICAgICBvcGFjaXR5IDE0MG1zIGVhc2UsXHJcbiAgICAgICAgICAgIHRyYW5zZm9ybSAxNDBtcyBlYXNlO1xyXG59XHJcblxyXG4jZ2xvYmFsVG9vbHRpcC52aXNpYmxlIHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XHJcbn1cclxuXHJcbi8qIFNlY3Rpb25zICovXHJcbiNnbG9iYWxUb29sdGlwIC50dC1oZWFkZXIge1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIHBhZGRpbmc6IDhweCAxMnB4IDRweDtcclxuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTIpO1xyXG59XHJcblxyXG4jZ2xvYmFsVG9vbHRpcCAudHQtYm9keSB7XHJcbiAgICBwYWRkaW5nOiA4cHggMTJweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XHJcbn1cclxuXHJcbiNnbG9iYWxUb29sdGlwIC50dC1mb290ZXIge1xyXG4gICAgcGFkZGluZzogNnB4IDEycHggOHB4O1xyXG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xyXG4gICAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC43KTtcclxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTIpO1xyXG59XHJcblxyXG4vKiBIaWRkZW4gc2VjdGlvbiBzYWZldHkgKi9cclxuI2dsb2JhbFRvb2x0aXAgLnR0LWhlYWRlcjplbXB0eSxcclxuI2dsb2JhbFRvb2x0aXAgLnR0LWZvb3RlcjplbXB0eSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4vKiBBcnJvdyAqL1xyXG4jZ2xvYmFsVG9vbHRpcDo6YWZ0ZXIge1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGxlZnQ6IDUwJTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcclxuICAgIGJvcmRlcjogNnB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG59XHJcblxyXG4jZ2xvYmFsVG9vbHRpcDpub3QoLmZsaXAtYm90dG9tKTo6YWZ0ZXIge1xyXG4gICAgYm90dG9tOiAtMTJweDtcclxuICAgIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMzAsIDMwLCAzNCwgMC45Nik7XHJcbn1cclxuXHJcbiNnbG9iYWxUb29sdGlwLmZsaXAtYm90dG9tOjphZnRlciB7XHJcbiAgICB0b3A6IC0xMnB4O1xyXG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgzMCwgMzAsIDM0LCAwLjk2KTtcclxufVxyXG5cclxuXHJcbiNnbG9iYWxUb29sdGlwIC50dC1oZWFkZXI6ZW1wdHksXHJcbiNnbG9iYWxUb29sdGlwIC50dC1mb290ZXI6ZW1wdHkge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLnByb2R1Y3ROb0F2YWlsYWJpbGl0eUNhcmQge1xyXG4gICAgd2lkdGg6IHZhcigtLWF2YWlsYWJpbGl0eS1ub25lLWNhcmQtd2lkdGgpO1xyXG59XHJcblxyXG4ucHJvZHVjdEF2YWlsYWJpbGl0eUNhcmRIZWFkZXIge1xyXG4gICAgd2lkdGg6IHZhcigtLWF2YWlsYWJpbGl0eS1zb21lLWNhcmQtd2lkdGgpO1xyXG59XHJcblxyXG4vKiBUYWJsZXMgOjogQ29ubmVjdGlvbiB0YWJsZXMsIGRhdGEgdGFibGVzIGFuZCBzbyBtdWNoIG1vcmUgKi9cclxuLkNvbm5UYWJsZSB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHZhcigtLXBhZ2V0aXRsZV91bmRlcmxpbmVjb2wpO1xyXG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHZhcigtLXBhZ2V0aXRsZV91bmRlcmxpbmVjb2wpO1xyXG59XHJcblxyXG4uQ29ublRhYmxlIHRhYmxlIHtcclxuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XHJcbiAgICBib3JkZXItc3BhY2luZzogMDtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIG1hcmdpbjogMHB4O1xyXG4gICAgcGFkZGluZzogMHB4O1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICBjbGVhcjogYm90aDtcclxufVxyXG5cclxuXHJcbi5Db25uVGFibGUgYSB7XHJcbiAgICBjb2xvcjogdmFyKC0taHlwZXJsaW5rLWNvbG91cik7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxufVxyXG5cclxuLkNvbm5UYWJsZSB0aCB7XHJcbiAgICBjb2xvcjogdmFyKC0tdGFibGUtaGVhZGVyLXRleHQtY29sb3VyKSFpbXBvcnRhbnQ7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10YWJsZS1oZWFkZXItYmFja2dyb3VuZCkhaW1wb3J0YW50O1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS10YWJsZS1oZWFkZXItZm9udC1zaXplKTtcclxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS10YWJsZS1oZWFkZXItZm9udC13ZWlnaHQpO1xyXG59XHJcblxyXG4uQ29ublRhYmxlIHRkIHtcclxuICAgIGNvbG9yOiB2YXIoLS10YWJsZS1kYXRhLXRleHQtY29sb3IpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGFibGUtZGF0YS1iYWNrZ3JvdW5kKTtcclxuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2YXIoLS1saW5lLW9yLXNlcGFyYXRvci1jb2xvdXIpIWltcG9ydGFudDtcclxuICAgIGZvbnQtc2l6ZTogdmFyKC0tdGFibGUtZGF0YS1mb250LXNpemUpO1xyXG59XHJcblxyXG4uQ29ublRhYmxlIHRyOmhvdmVyIHRkIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRhYmxlLWRhdGEtaG92ZXItYmFja2dyb3VuZCk7XHJcbn1cclxuXHJcbi5Db25uVGFibGUgdGguYWN0aXZlVGgge1xyXG4gICAgYm9yZGVyLXdpZHRoOiAxcHggMXB4IDFweCAxcHg7XHJcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzk2OTY5NiAhaW1wb3J0YW50O1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM5Njk2OTYgIWltcG9ydGFudDtcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICBoZWlnaHQ6IDMwcHg7XHJcbn1cclxuXHJcbi5Db25uVGFibGUgdGg6bGFzdC1jaGlsZCB7XHJcbiAgICBib3JkZXItd2lkdGg6IDFweCAxcHggMXB4IDFweDtcclxuICAgIGJvcmRlci1yaWdodDogMCBzb2xpZCAjOTY5Njk2ICFpbXBvcnRhbnQ7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzk2OTY5NiAhaW1wb3J0YW50O1xyXG4gICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBoZWlnaHQ6IDMwcHg7XHJcbn1cclxuXHJcblxyXG50aGVhZCB0aCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10YWJsZS1oZWFkZXItYmFja2dyb3VuZCkgIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiB2YXIoLS10YWJsZS1oZWFkZXItdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XHJcbiAgICBmb250LXNpemU6IHZhcigtLXRhYmxlLWhlYWRlci1mb250LXNpemUpO1xyXG59XHJcblxyXG50ZC5kZXRhaWwsIHRyLmRldGFpbCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10YWJsZS1kYXRhLWJhY2tncm91bmQpICFpbXBvcnRhbnQ7XHJcbiAgICBjb2xvcjogdmFyKC0tdGFibGUtZGF0YS10ZXh0LWNvbG9yKSAhaW1wb3J0YW50O1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS10YWJsZS1kYXRhLWZvbnQtc2l6ZSk7XHJcbn1cclxuXHJcbnRhYmxlLmRldGFpbHMgdGQge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGFibGUtZGF0YS1iYWNrZ3JvdW5kKSAhaW1wb3J0YW50O1xyXG4gICAgY29sb3I6IHZhcigtLXRhYmxlLWRhdGEtdGV4dC1jb2xvcikgIWltcG9ydGFudDtcclxufVxyXG5cclxuXHJcbi8qIFNlcnZlciB1bmF2YWlsYWJsZSBjb21wb25lbnQgc2hvd2luZyB3aGVuIGNhbm5vdCBjb21tdW5pY2F0ZSB3aXRoIFN5bXBob255ICovXHJcbi5zZXJ2ZXItdW5hdmFpbGFibGUge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBnYXA6IDAuNzVyZW07XHJcbiAgICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XHJcbiAgICBtYXJnaW46IDFyZW0gMDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcclxuICAgIGJhY2tncm91bmQ6IHJnYmEoMjE3LCA4MywgNzksIDAuMDgpO1xyXG4gICAgY29sb3I6ICM3YTFlMWU7XHJcbiAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkICNkOTUzNGY7XHJcbn1cclxuXHJcbi5zZXJ2ZXItdW5hdmFpbGFibGVfX3RpdGxlIHtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbn1cclxuXHJcbi5zZXJ2ZXItdW5hdmFpbGFibGVfX3RleHQge1xyXG4gICAgZm9udC1zaXplOiAwLjlyZW07XHJcbiAgICBvcGFjaXR5OiAwLjk7XHJcbn1cclxuXHJcbi5saW5rLWNhbm5vdC1jbGljayB7XHJcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG59XHJcblxyXG4ub3JkZXJUaXRsZSB7XHJcbiAgICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpO1xyXG59XHJcblxyXG4ubW9kdWxlIGgzIHtcclxuICAgIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCB2YXIoLS1saW5lLW9yLXNlcGFyYXRvci1jb2xvdXIpO1xyXG4gICAgbWFyZ2luOiAwIDAgNXB4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcclxuICAgIGZvbnQtc2l6ZTogY2FsYyh2YXIoLS1mb250LXNpemUpICsgdmFyKC0tZm9udC1zaXplLWZhY3RvcmluZy1oMykpO1xyXG4gICAgY29sb3I6IHZhcigtLWxhdmVuZGVyLTgwMCk7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG59XHJcblxyXG4ubWFpbkNvbHVtbjpmaXJzdC1vZi10eXBlIHtcclxuICAgIGJvcmRlci10b3A6IHVuc2V0O1xyXG5cclxufVxyXG5cclxuLm1haW5Db2x1bW4ge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkIHZhcigtLWxpbmUtb3Itc2VwYXJhdG9yLWNvbG91cik7XHJcblxyXG59XHJcblxyXG4vKiBPcmRlciB0YWJsZSBvdmVycmlkZSAqL1xyXG4udGFibGVPcmRlclByb2R1Y3RzID4gdGJvZHkgPiB0cjpmaXJzdC1jaGlsZCB7XHJcbn1cclxuXHJcbi5pY2MtY29udGFjdGluZy1zdXBwbGllcnMge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWJhY2tncm91bmQpOyBcclxuICAgIGJvcmRlci1yYWRpdXM6IDFlbTsgXHJcbiAgICBwYWRkaW5nOiAxZW07XHJcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1iYWNrZ3JvdW5kLW9uLWhvdmVyKTtcclxufVxyXG5cclxuXHJcbi5PbGRVbWJyYWNvUXVpY2tMaW5rc1BhcnRuZXJUZWFtIHtcclxuICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxODBweCwgMWZyKSk7XHJcbiAgICBnYXA6IDEuNXJlbTtcclxufVxyXG4ucGFydG5lcnRlYW0gYSB7XHJcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjE1cyBlYXNlLCBib3gtc2hhZG93IC4xNXMgZWFzZTtcclxufVxyXG4ucGFydG5lcnRlYW0gYTpob3ZlciB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7XHJcbiAgICBib3gtc2hhZG93OiAwIDRweCAxOHB4IHJnYmEoMCwwLDAsMC4xNSk7XHJcbn1cclxuLypcclxuLnBhcnRuZXJ0ZWFtIGltZy5mZWF0aGVyIHtcclxuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcclxufSovXHJcbi5hY3RpdmUtaXRlbS1pbi1uYXZpZ2F0aW9uIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1iYWNrZ3JvdW5kLW9uLWhvdmVyKSAhaW1wb3J0YW50O1xyXG4gICAgY29sb3I6IHZhcigtLWJ1dHRvbi10ZXh0LWNvbG91ci1vbi1ob3ZlcikgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmRpc2FibGVkLWl0ZW0taW4tbmF2aWdhdGlvbiB7XHJcbiAgICBcclxufVxyXG5cclxuXHJcbi8qIEpRdWVyeSBVSSBmaWx0ZXJzICovXHJcblxyXG4udWktbXVsdGlzZWxlY3Qge1xyXG4gICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7ICAgIC8qIGNoYW5nZSB0byB3aGF0IHlvdSB3YW50ICovXHJcbiAgICBwYWRkaW5nOiA0cHggOHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi51aS1tdWx0aXNlbGVjdDpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tYmFja2dyb3VuZC1vbi1ob3ZlcikhaW1wb3J0YW50O1xyXG4gICAgY29sb3I6IHZhcigtLWJ1dHRvbi10ZXh0LWNvbG91ci1vbi1ob3ZlcikhaW1wb3J0YW50O1xyXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWJ1dHRvbi1mb250LXdlaWdodC1vbi1ob3Zlcik7XHJcbiAgICBib3JkZXI6IHZhcigtLWJ1dHRvbi1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWJ1dHRvbi1ib3JkZXItb24taG92ZXIpICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbiN0YmxCYXRjaEhlYWRlclJlcXVlc3RzIHRoIHtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDtcclxufVxyXG5cclxuI3RibEJhdGNoSGVhZGVyUmVxdWVzdHMgdGgsXHJcbiN0YmxCYXRjaEhlYWRlclJlcXVlc3RzIHRkIHtcclxuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5cclxuLyogS2VlcCBtdWx0aXNlbGVjdCBidXR0b24gY29udGFpbmVkIGluIGhlYWRlciBmaWx0ZXIgY2VsbHMgKi9cclxuI3RibEJhdGNoSGVhZGVyUmVxdWVzdHMgdGhlYWQgLnVpLW11bHRpc2VsZWN0IHtcclxuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG59XHJcblxyXG4vKiBNYWtlIGZpbHRlciBjZWxscyBjb21wYWN0IGFuZCBhdm9pZCB3cmFwcGluZyAqL1xyXG4jdGJsQmF0Y2hIZWFkZXJSZXF1ZXN0cyB0aGVhZCB0ci5maWx0ZXJzIHRoIHtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBwYWRkaW5nOiA0cHggNnB4O1xyXG59XHJcblxyXG4vKiBEYXRlcGlja2VyIGZpbHRlciB3aWR0aCBmaXggKi9cclxuI3RibEJhdGNoSGVhZGVyUmVxdWVzdHMgdGhlYWQgdHIuZmlsdGVycyBpbnB1dC5kYXRlUGlja2VyIHtcclxuICAgIHdpZHRoOiA4MHB4ICFpbXBvcnRhbnQ7ICAgICAvKiBmaXRzIGRkL21tL3l5eXkgcGVyZmVjdGx5ICovXHJcbiAgICBtaW4td2lkdGg6IDgwcHggIWltcG9ydGFudDtcclxuICAgIG1heC13aWR0aDogODBweCAhaW1wb3J0YW50O1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxufVxyXG5cclxuLyogQ3JhcCB0YWJzIGZvciBjb25uZWNpdG9uIHNjcmVlbiAqL1xyXG4ubW9kdWxlTGVmdE5hdiB1bCBsaSBhIHtcclxuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAvKmNvbG9yOiByZ2IoNTEsNTEsNTEpOyovXHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAvKmJhY2tncm91bmQ6ICNlZWU7Ki9cclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQ0NDO1xyXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNDQ0M7XHJcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNDQ0M7XHJcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS1idXR0b25yYWRpdXMpO1xyXG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKC0tYnV0dG9ucmFkaXVzKTtcclxuICAgIGZvbnQtc2l6ZTogMC45ZW07XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tYmFja2dyb3VuZCk7XHJcbiAgICBjb2xvcjogdmFyKC0tYnV0dG9uLXRleHQtY29sb3VyKTtcclxufVxyXG4ubW9kdWxlTGVmdE5hdiB1bCBsaS5hY3RpdmUgYSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tYmFja2dyb3VuZC1vbi1ob3Zlcik7XHJcbiAgICBjb2xvcjogdmFyKC0tYnV0dG9uLXRleHQtY29sb3VyLW9uLWhvdmVyKTsgXHJcbn1cclxuXHJcbi5idXR0b24yMDIxZml4ZWRjaGF0IHtcclxuICAgIHdpZHRoOiAxNDBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uaW50ZXJuYWwtb25seS1idXR0b24ge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWludGVybmFsLWJhY2tncm91bmQpIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiB3aGl0ZSFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5mb3JnZXRtZW5vdCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xyXG59Il19 */