﻿@charset "UTF-8";

@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css');

@font-face {
    font-family: "Didot Italic";
    src: url("https://db.onlinewebfonts.com/t/ddec7db65b2b9b257d06bbc2d4efacea.eot");
    src: url("https://db.onlinewebfonts.com/t/ddec7db65b2b9b257d06bbc2d4efacea.eot?#iefix") format("embedded-opentype"), url("https://db.onlinewebfonts.com/t/ddec7db65b2b9b257d06bbc2d4efacea.woff2") format("woff2"), url("https://db.onlinewebfonts.com/t/ddec7db65b2b9b257d06bbc2d4efacea.woff") format("woff"), url("https://db.onlinewebfonts.com/t/ddec7db65b2b9b257d06bbc2d4efacea.ttf") format("truetype"), url("https://db.onlinewebfonts.com/t/ddec7db65b2b9b257d06bbc2d4efacea.svg#Didot") format("svg");
}

a, .sub-menu .font--black,
.copyright .font--black {
    color: #aaa
}

p strong {
    font-family: "Avenir LT W01_85 Heavy1475544", Sans-serif;
}

/**
* Foundation for Sites by ZURB
* Version 6.4.3
* foundation.zurb.com
* Licensed under MIT Open Source
*/
@media print, screen and (min-width: 40em) {
    .reveal, .reveal.tiny, .reveal.small, .reveal.large {
        right: auto;
        left: auto;
        margin: 0 auto;
    }
}

/*! normalize-scss | MIT/GPLv2 License | bit.ly/normalize-scss */
/* Document
========================================================================== */
/**
* 1. Change the default font family in all browsers (opinionated).
* 2. Correct the line height in all browsers.
* 3. Prevent adjustments of font size after orientation changes in
*    IE on Windows Phone and in iOS.
*/
html {
    font-family: sans-serif;
    /* 1 */
    line-height: 1.15;
    /* 2 */
    -ms-text-size-adjust: 100%;
    /* 3 */
    -webkit-text-size-adjust: 100%;
    /* 3 */
}

/* Sections
========================================================================== */
/**
* Remove the margin in all browsers (opinionated).
*/
body {
    margin: 0;
}

/**
* Add the correct display in IE 9-.
*/
article,
aside,
footer,
header,
nav,
section {
    display: block;
}

/**
* Correct the font size and margin on `h1` elements within `section` and
* `article` contexts in Chrome, Firefox, and Safari.
*/
h1 {
    font-size: 2em;
    margin: 0.67em 0;
}

/* Grouping content
========================================================================== */
/**
* Add the correct display in IE 9-.
*/
figcaption,
figure {
    display: block;
}

/**
* Add the correct margin in IE 8.
*/
figure {
    margin: 1em 40px;
}

/**
* 1. Add the correct box sizing in Firefox.
* 2. Show the overflow in Edge and IE.
*/
hr {
    box-sizing: content-box;
    /* 1 */
    height: 0;
    /* 1 */
    overflow: visible;
    /* 2 */
}

/**
* Add the correct display in IE.
*/
main {
    display: block;
}

/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
pre {
    font-family: monospace, monospace;
    /* 1 */
    font-size: 1em;
    /* 2 */
}

/* Links
========================================================================== */
/**
* 1. Remove the gray background on active links in IE 10.
* 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
*/
a, .sub-menu .font--black,
.copyright .font--black {
    background-color: transparent;
    /* 1 */
    -webkit-text-decoration-skip: objects;
    /* 2 */
}

    /**
* Remove the outline on focused links when they are also active or hovered
* in all browsers (opinionated).
*/
    a:active, .sub-menu .font--black:active,
    .copyright .font--black:active,
    a:hover,
    .sub-menu .font--black:hover,
    .copyright .font--black:hover {
        outline-width: 0;
    }

/* Text-level semantics
========================================================================== */
/**
* 1. Remove the bottom border in Firefox 39-.
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
*/
abbr[title] {
    border-bottom: none;
    /* 1 */
    text-decoration: underline;
    /* 2 */
    text-decoration: underline dotted;
    /* 2 */
}

/**
* Prevent the duplicate application of `bolder` by the next rule in Safari 6.
*/
b,
strong {
    font-weight: inherit;
}

/**
* Add the correct font weight in Chrome, Edge, and Safari.
*/
b,
strong {
    font-weight: bolder;
}

/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
code,
kbd,
samp {
    font-family: monospace, monospace;
    /* 1 */
    font-size: 1em;
    /* 2 */
}

/**
* Add the correct font style in Android 4.3-.
*/
dfn {
    font-style: italic;
}

/**
* Add the correct background and color in IE 9-.
*/
mark {
    background-color: #ff0;
    color: #000;
}

/**
* Add the correct font size in all browsers.
*/
small {
    font-size: 80%;
}

/**
* Prevent `sub` and `sup` elements from affecting the line height in
* all browsers.
*/
sub,
sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}

sub {
    bottom: -0.25em;
}

sup {
    top: -0.5em;
}

/* Embedded content
========================================================================== */
/**
* Add the correct display in IE 9-.
*/
audio,
video {
    display: inline-block;
}

    /**
* Add the correct display in iOS 4-7.
*/
    audio:not([controls]) {
        display: none;
        height: 0;
    }

/**
* Remove the border on images inside links in IE 10-.
*/
img {
    border-style: none;
}

/**
* Hide the overflow in IE.
*/
svg:not(:root) {
    overflow: hidden;
}

/* Forms
========================================================================== */
/**
* 1. Change the font styles in all browsers (opinionated).
* 2. Remove the margin in Firefox and Safari.
*/
button,
input,
optgroup,
select,
textarea {
    font-family: sans-serif;
    /* 1 */
    font-size: 100%;
    /* 1 */
    line-height: 1.15;
    /* 1 */
    margin: 0;
    /* 2 */
}

/**
* Show the overflow in IE.
*/
button {
    overflow: visible;
}

/**
* Remove the inheritance of text transform in Edge, Firefox, and IE.
* 1. Remove the inheritance of text transform in Firefox.
*/
button,
select {
    /* 1 */
    text-transform: none;
}

/**
* 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
*    controls in Android 4.
* 2. Correct the inability to style clickable types in iOS and Safari.
*/
button,
html [type="button"],
[type="reset"],
[type="submit"] {
    -webkit-appearance: button;
    /* 2 */
}

button,
[type="button"],
[type="reset"],
[type="submit"] {
    /**
* Remove the inner border and padding in Firefox.
*/
    /**
* Restore the focus styles unset by the previous rule.
*/
}

    button::-moz-focus-inner,
    [type="button"]::-moz-focus-inner,
    [type="reset"]::-moz-focus-inner,
    [type="submit"]::-moz-focus-inner {
        border-style: none;
        padding: 0;
    }

    button:-moz-focusring,
    [type="button"]:-moz-focusring,
    [type="reset"]:-moz-focusring,
    [type="submit"]:-moz-focusring {
        outline: 1px dotted ButtonText;
    }

/**
* Show the overflow in Edge.
*/
input {
    overflow: visible;
}

/**
* 1. Add the correct box sizing in IE 10-.
* 2. Remove the padding in IE 10-.
*/
[type="checkbox"],
[type="radio"] {
    box-sizing: border-box;
    /* 1 */
    padding: 0;
    /* 2 */
}

/**
* Correct the cursor style of increment and decrement buttons in Chrome.
*/
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
    height: auto;
}

/**
* 1. Correct the odd appearance in Chrome and Safari.
* 2. Correct the outline style in Safari.
*/
[type="search"] {
    -webkit-appearance: textfield;
    /* 1 */
    outline-offset: -2px;
    /* 2 */
    /**
* Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
*/
}

    [type="search"]::-webkit-search-cancel-button, [type="search"]::-webkit-search-decoration {
        -webkit-appearance: none;
    }

/**
* 1. Correct the inability to style clickable types in iOS and Safari.
* 2. Change font properties to `inherit` in Safari.
*/
::-webkit-file-upload-button {
    -webkit-appearance: button;
    /* 1 */
    font: inherit;
    /* 2 */
}

/**
* Change the border, margin, and padding in all browsers (opinionated).
*/
fieldset {
    border: 1px solid #c0c0c0;
    margin: 0 2px;
    padding: 0.35em 0.625em 0.75em;
}

/**
* 1. Correct the text wrapping in Edge and IE.
* 2. Correct the color inheritance from `fieldset` elements in IE.
* 3. Remove the padding so developers are not caught out when they zero out
*    `fieldset` elements in all browsers.
*/
legend {
    box-sizing: border-box;
    /* 1 */
    display: table;
    /* 1 */
    max-width: 100%;
    /* 1 */
    padding: 0;
    /* 3 */
    color: inherit;
    /* 2 */
    white-space: normal;
    /* 1 */
}

/**
* 1. Add the correct display in IE 9-.
* 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
*/
progress {
    display: inline-block;
    /* 1 */
    vertical-align: baseline;
    /* 2 */
}

/**
* Remove the default vertical scrollbar in IE.
*/
textarea {
    overflow: auto;
}

/* Interactive
========================================================================== */
/*
* Add the correct display in Edge, IE, and Firefox.
*/
details {
    display: block;
}

/*
* Add the correct display in all browsers.
*/
summary {
    display: list-item;
}

/*
* Add the correct display in IE 9-.
*/
menu {
    display: block;
}

/* Scripting
========================================================================== */
/**
* Add the correct display in IE 9-.
*/
canvas {
    display: inline-block;
}

/**
* Add the correct display in IE.
*/
template {
    display: none;
}

/* Hidden
========================================================================== */
/**
* Add the correct display in IE 10-.
*/
[hidden] {
    display: none;
}

.foundation-mq {
    font-family: "small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em";
}

html {
    box-sizing: border-box;
    font-size: 100%;
}

*,
*::before,
*::after {
    box-sizing: inherit;
}

body {
    margin: 0;
    padding: 0;
    background: #fefefe;
    font-family: "Avenir LT W01_55 Roman1475520", Sans-serif;
    font-weight: normal;
    line-height: 1.5;
    color: #0a0a0a;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

img {
    display: inline-block;
    vertical-align: middle;
    max-width: 100%;
    height: auto;
    -ms-interpolation-mode: bicubic;
}

textarea {
    height: auto;
    min-height: 50px;
    border-radius: 0;
}

select {
    box-sizing: border-box;
    width: 100%;
    border-radius: 0;
}

.map_canvas img,
.map_canvas embed,
.map_canvas object,
.mqa-display img,
.mqa-display embed,
.mqa-display object {
    max-width: none !important;
}

button {
    padding: 0;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    border: 0;
    border-radius: 0;
    background: transparent;
    line-height: 1;
    cursor: auto;
}

[data-whatinput='mouse'] button {
    outline: 0;
}

pre {
    overflow: auto;
}

button,
input,
optgroup,
select,
textarea {
    font-family: inherit;
}

.is-visible {
    display: block !important;
}

.is-hidden {
    display: none !important;
}

.grid-container {
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 75rem;
    margin: 0 auto;
}

@media print, screen and (min-width: 40em) {
    .grid-container {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

.grid-container.fluid {
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 100%;
    margin: 0 auto;
}

@media print, screen and (min-width: 40em) {
    .grid-container.fluid {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

.grid-container.full {
    padding-right: 0;
    padding-left: 0;
    max-width: 100%;
    margin: 0 auto;
}

.grid-x {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
}

.cell {
    -webkit-flex: 0 0 auto;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    min-height: 0px;
    min-width: 0px;
    width: 100%;
}

    .cell.auto {
        -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
        flex: 1 1 0px;
    }

    .cell.shrink {
        -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
        flex: 0 0 auto;
    }

.grid-x > .auto {
    width: auto;
}

.grid-x > .shrink {
    width: auto;
}

.grid-x > .small-shrink, .grid-x > .small-full, .grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {
    -webkit-flex-basis: auto;
    -ms-flex-preferred-size: auto;
    flex-basis: auto;
}

@media print, screen and (min-width: 40em) {
    .grid-x > .medium-shrink, .grid-x > .medium-full, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {
        -webkit-flex-basis: auto;
        -ms-flex-preferred-size: auto;
        flex-basis: auto;
    }
}

@media print, screen and (min-width: 64em) {
    .grid-x > .large-shrink, .grid-x > .large-full, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {
        -webkit-flex-basis: auto;
        -ms-flex-preferred-size: auto;
        flex-basis: auto;
    }
}

.grid-x > .small-1 {
    width: 8.33333%;
}

.grid-x > .small-2 {
    width: 16.66667%;
}

.grid-x > .small-3 {
    width: 25%;
}

.grid-x > .small-4 {
    width: 33.33333%;
}

.grid-x > .small-5 {
    width: 41.66667%;
}

.grid-x > .small-6 {
    width: 50%;
}

.grid-x > .small-7 {
    width: 58.33333%;
}

.grid-x > .small-8 {
    width: 66.66667%;
}

.grid-x > .small-9 {
    width: 75%;
}

.grid-x > .small-10 {
    width: 83.33333%;
}

.grid-x > .small-11 {
    width: 91.66667%;
}

.grid-x > .small-12 {
    width: 100%;
}

@media print, screen and (min-width: 40em) {
    .grid-x > .medium-auto {
        -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
        flex: 1 1 0px;
        width: auto;
    }

    .grid-x > .medium-shrink {
        -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
        flex: 0 0 auto;
        width: auto;
    }

    .grid-x > .medium-1 {
        width: 8.33333%;
    }

    .grid-x > .medium-2 {
        width: 16.66667%;
    }

    .grid-x > .medium-3 {
        width: 25%;
    }

    .grid-x > .medium-4 {
        width: 33.33333%;
    }

    .grid-x > .medium-5 {
        width: 41.66667%;
    }

    .grid-x > .medium-6 {
        width: 50%;
    }

    .grid-x > .medium-7 {
        width: 58.33333%;
    }

    .grid-x > .medium-8 {
        width: 66.66667%;
    }

    .grid-x > .medium-9 {
        width: 75%;
    }

    .grid-x > .medium-10 {
        width: 83.33333%;
    }

    .grid-x > .medium-11 {
        width: 91.66667%;
    }

    .grid-x > .medium-12 {
        width: 100%;
    }
}

@media print, screen and (min-width: 64em) {
    .grid-x > .large-auto {
        -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
        flex: 1 1 0px;
        width: auto;
    }

    .grid-x > .large-shrink {
        -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
        flex: 0 0 auto;
        width: auto;
    }

    .grid-x > .large-1 {
        width: 8.33333%;
    }

    .grid-x > .large-2 {
        width: 16.66667%;
    }

    .grid-x > .large-3 {
        width: 25%;
    }

    .grid-x > .large-4 {
        width: 33.33333%;
    }

    .grid-x > .large-5 {
        width: 41.66667%;
    }

    .grid-x > .large-6 {
        width: 50%;
    }

    .grid-x > .large-7 {
        width: 58.33333%;
    }

    .grid-x > .large-8 {
        width: 66.66667%;
    }

    .grid-x > .large-9 {
        width: 75%;
    }

    .grid-x > .large-10 {
        width: 83.33333%;
    }

    .grid-x > .large-11 {
        width: 91.66667%;
    }

    .grid-x > .large-12 {
        width: 100%;
    }
}

.grid-margin-x:not(.grid-x) > .cell {
    width: auto;
}

.grid-margin-y:not(.grid-y) > .cell {
    height: auto;
}

.grid-margin-x {
    margin-left: -0.625rem;
    margin-right: -0.625rem;
}

@media print, screen and (min-width: 40em) {
    .grid-margin-x {
        margin-left: -0.9375rem;
        margin-right: -0.9375rem;
    }
}

.grid-margin-x > .cell {
    width: calc(100% - 1.25rem);
    margin-left: 0.625rem;
    margin-right: 0.625rem;
}

@media print, screen and (min-width: 40em) {
    .grid-margin-x > .cell {
        width: calc(100% - 1.875rem);
        margin-left: 0.9375rem;
        margin-right: 0.9375rem;
    }
}

.grid-margin-x > .auto {
    width: auto;
}

.grid-margin-x > .shrink {
    width: auto;
}

.grid-margin-x > .small-1 {
    width: calc(8.33333% - 1.25rem);
}

.grid-margin-x > .small-2 {
    width: calc(16.66667% - 1.25rem);
}

.grid-margin-x > .small-3 {
    width: calc(25% - 1.25rem);
}

.grid-margin-x > .small-4 {
    width: calc(33.33333% - 1.25rem);
}

.grid-margin-x > .small-5 {
    width: calc(41.66667% - 1.25rem);
}

.grid-margin-x > .small-6 {
    width: calc(50% - 1.25rem);
}

.grid-margin-x > .small-7 {
    width: calc(58.33333% - 1.25rem);
}

.grid-margin-x > .small-8 {
    width: calc(66.66667% - 1.25rem);
}

.grid-margin-x > .small-9 {
    width: calc(75% - 1.25rem);
}

.grid-margin-x > .small-10 {
    width: calc(83.33333% - 1.25rem);
}

.grid-margin-x > .small-11 {
    width: calc(91.66667% - 1.25rem);
}

.grid-margin-x > .small-12 {
    width: calc(100% - 1.25rem);
}

@media print, screen and (min-width: 40em) {
    .grid-margin-x > .auto {
        width: auto;
    }

    .grid-margin-x > .shrink {
        width: auto;
    }

    .grid-margin-x > .small-1 {
        width: calc(8.33333% - 1.875rem);
    }

    .grid-margin-x > .small-2 {
        width: calc(16.66667% - 1.875rem);
    }

    .grid-margin-x > .small-3 {
        width: calc(25% - 1.875rem);
    }

    .grid-margin-x > .small-4 {
        width: calc(33.33333% - 1.875rem);
    }

    .grid-margin-x > .small-5 {
        width: calc(41.66667% - 1.875rem);
    }

    .grid-margin-x > .small-6 {
        width: calc(50% - 1.875rem);
    }

    .grid-margin-x > .small-7 {
        width: calc(58.33333% - 1.875rem);
    }

    .grid-margin-x > .small-8 {
        width: calc(66.66667% - 1.875rem);
    }

    .grid-margin-x > .small-9 {
        width: calc(75% - 1.875rem);
    }

    .grid-margin-x > .small-10 {
        width: calc(83.33333% - 1.875rem);
    }

    .grid-margin-x > .small-11 {
        width: calc(91.66667% - 1.875rem);
    }

    .grid-margin-x > .small-12 {
        width: calc(100% - 1.875rem);
    }

    .grid-margin-x > .medium-auto {
        width: auto;
    }

    .grid-margin-x > .medium-shrink {
        width: auto;
    }

    .grid-margin-x > .medium-1 {
        width: calc(8.33333% - 1.875rem);
    }

    .grid-margin-x > .medium-2 {
        width: calc(16.66667% - 1.875rem);
    }

    .grid-margin-x > .medium-3 {
        width: calc(25% - 1.875rem);
    }

    .grid-margin-x > .medium-4 {
        width: calc(33.33333% - 1.875rem);
    }

    .grid-margin-x > .medium-5 {
        width: calc(41.66667% - 1.875rem);
    }

    .grid-margin-x > .medium-6 {
        width: calc(50% - 1.875rem);
    }

    .grid-margin-x > .medium-7 {
        width: calc(58.33333% - 1.875rem);
    }

    .grid-margin-x > .medium-8 {
        width: calc(66.66667% - 1.875rem);
    }

    .grid-margin-x > .medium-9 {
        width: calc(75% - 1.875rem);
    }

    .grid-margin-x > .medium-10 {
        width: calc(83.33333% - 1.875rem);
    }

    .grid-margin-x > .medium-11 {
        width: calc(91.66667% - 1.875rem);
    }

    .grid-margin-x > .medium-12 {
        width: calc(100% - 1.875rem);
    }
}

@media print, screen and (min-width: 64em) {
    .grid-margin-x > .large-auto {
        width: auto;
    }

    .grid-margin-x > .large-shrink {
        width: auto;
    }

    .grid-margin-x > .large-1 {
        width: calc(8.33333% - 1.875rem);
    }

    .grid-margin-x > .large-2 {
        width: calc(16.66667% - 1.875rem);
    }

    .grid-margin-x > .large-3 {
        width: calc(25% - 1.875rem);
    }

    .grid-margin-x > .large-4 {
        width: calc(33.33333% - 1.875rem);
    }

    .grid-margin-x > .large-5 {
        width: calc(41.66667% - 1.875rem);
    }

    .grid-margin-x > .large-6 {
        width: calc(50% - 1.875rem);
    }

    .grid-margin-x > .large-7 {
        width: calc(58.33333% - 1.875rem);
    }

    .grid-margin-x > .large-8 {
        width: calc(66.66667% - 1.875rem);
    }

    .grid-margin-x > .large-9 {
        width: calc(75% - 1.875rem);
    }

    .grid-margin-x > .large-10 {
        width: calc(83.33333% - 1.875rem);
    }

    .grid-margin-x > .large-11 {
        width: calc(91.66667% - 1.875rem);
    }

    .grid-margin-x > .large-12 {
        width: calc(100% - 1.875rem);
    }
}

.grid-padding-x .grid-padding-x {
    margin-right: -0.625rem;
    margin-left: -0.625rem;
}

@media print, screen and (min-width: 40em) {
    .grid-padding-x .grid-padding-x {
        margin-right: -0.9375rem;
        margin-left: -0.9375rem;
    }
}

.grid-container:not(.full) > .grid-padding-x {
    margin-right: -0.625rem;
    margin-left: -0.625rem;
}

@media print, screen and (min-width: 40em) {
    .grid-container:not(.full) > .grid-padding-x {
        margin-right: -0.9375rem;
        margin-left: -0.9375rem;
    }
}

.grid-padding-x > .cell {
    padding-right: 0.625rem;
    padding-left: 0.625rem;
}

@media print, screen and (min-width: 40em) {
    .grid-padding-x > .cell {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

.small-up-1 > .cell {
    width: 100%;
}

.small-up-2 > .cell {
    width: 50%;
}

.small-up-3 > .cell {
    width: 33.33333%;
}

.small-up-4 > .cell {
    width: 25%;
}

.small-up-5 > .cell {
    width: 20%;
}

.small-up-6 > .cell {
    width: 16.66667%;
}

.small-up-7 > .cell {
    width: 14.28571%;
}

.small-up-8 > .cell {
    width: 12.5%;
}

@media print, screen and (min-width: 40em) {
    .medium-up-1 > .cell {
        width: 100%;
    }

    .medium-up-2 > .cell {
        width: 50%;
    }

    .medium-up-3 > .cell {
        width: 33.33333%;
    }

    .medium-up-4 > .cell {
        width: 25%;
    }

    .medium-up-5 > .cell {
        width: 20%;
    }

    .medium-up-6 > .cell {
        width: 16.66667%;
    }

    .medium-up-7 > .cell {
        width: 14.28571%;
    }

    .medium-up-8 > .cell {
        width: 12.5%;
    }
}

@media print, screen and (min-width: 64em) {
    .large-up-1 > .cell {
        width: 100%;
    }

    .large-up-2 > .cell {
        width: 50%;
    }

    .large-up-3 > .cell {
        width: 33.33333%;
    }

    .large-up-4 > .cell {
        width: 25%;
    }

    .large-up-5 > .cell {
        width: 20%;
    }

    .large-up-6 > .cell {
        width: 16.66667%;
    }

    .large-up-7 > .cell {
        width: 14.28571%;
    }

    .large-up-8 > .cell {
        width: 12.5%;
    }
}

.grid-margin-x.small-up-1 > .cell {
    width: calc(100% - 1.25rem);
}

.grid-margin-x.small-up-2 > .cell {
    width: calc(50% - 1.25rem);
}

.grid-margin-x.small-up-3 > .cell {
    width: calc(33.33333% - 1.25rem);
}

.grid-margin-x.small-up-4 > .cell {
    width: calc(25% - 1.25rem);
}

.grid-margin-x.small-up-5 > .cell {
    width: calc(20% - 1.25rem);
}

.grid-margin-x.small-up-6 > .cell {
    width: calc(16.66667% - 1.25rem);
}

.grid-margin-x.small-up-7 > .cell {
    width: calc(14.28571% - 1.25rem);
}

.grid-margin-x.small-up-8 > .cell {
    width: calc(12.5% - 1.25rem);
}

@media print, screen and (min-width: 40em) {
    .grid-margin-x.small-up-1 > .cell {
        width: calc(100% - 1.25rem);
    }

    .grid-margin-x.small-up-2 > .cell {
        width: calc(50% - 1.25rem);
    }

    .grid-margin-x.small-up-3 > .cell {
        width: calc(33.33333% - 1.25rem);
    }

    .grid-margin-x.small-up-4 > .cell {
        width: calc(25% - 1.25rem);
    }

    .grid-margin-x.small-up-5 > .cell {
        width: calc(20% - 1.25rem);
    }

    .grid-margin-x.small-up-6 > .cell {
        width: calc(16.66667% - 1.25rem);
    }

    .grid-margin-x.small-up-7 > .cell {
        width: calc(14.28571% - 1.25rem);
    }

    .grid-margin-x.small-up-8 > .cell {
        width: calc(12.5% - 1.25rem);
    }

    .grid-margin-x.medium-up-1 > .cell {
        width: calc(100% - 1.875rem);
    }

    .grid-margin-x.medium-up-2 > .cell {
        width: calc(50% - 1.875rem);
    }

    .grid-margin-x.medium-up-3 > .cell {
        width: calc(33.33333% - 1.875rem);
    }

    .grid-margin-x.medium-up-4 > .cell {
        width: calc(25% - 1.875rem);
    }

    .grid-margin-x.medium-up-5 > .cell {
        width: calc(20% - 1.875rem);
    }

    .grid-margin-x.medium-up-6 > .cell {
        width: calc(16.66667% - 1.875rem);
    }

    .grid-margin-x.medium-up-7 > .cell {
        width: calc(14.28571% - 1.875rem);
    }

    .grid-margin-x.medium-up-8 > .cell {
        width: calc(12.5% - 1.875rem);
    }
}

@media print, screen and (min-width: 64em) {
    .grid-margin-x.large-up-1 > .cell {
        width: calc(100% - 1.875rem);
    }

    .grid-margin-x.large-up-2 > .cell {
        width: calc(50% - 1.875rem);
    }

    .grid-margin-x.large-up-3 > .cell {
        width: calc(33.33333% - 1.875rem);
    }

    .grid-margin-x.large-up-4 > .cell {
        width: calc(25% - 1.875rem);
    }

    .grid-margin-x.large-up-5 > .cell {
        width: calc(20% - 1.875rem);
    }

    .grid-margin-x.large-up-6 > .cell {
        width: calc(16.66667% - 1.875rem);
    }

    .grid-margin-x.large-up-7 > .cell {
        width: calc(14.28571% - 1.875rem);
    }

    .grid-margin-x.large-up-8 > .cell {
        width: calc(12.5% - 1.875rem);
    }
}

.small-margin-collapse {
    margin-right: 0;
    margin-left: 0;
}

    .small-margin-collapse > .cell {
        margin-right: 0;
        margin-left: 0;
    }

    .small-margin-collapse > .small-1 {
        width: 8.33333%;
    }

    .small-margin-collapse > .small-2 {
        width: 16.66667%;
    }

    .small-margin-collapse > .small-3 {
        width: 25%;
    }

    .small-margin-collapse > .small-4 {
        width: 33.33333%;
    }

    .small-margin-collapse > .small-5 {
        width: 41.66667%;
    }

    .small-margin-collapse > .small-6 {
        width: 50%;
    }

    .small-margin-collapse > .small-7 {
        width: 58.33333%;
    }

    .small-margin-collapse > .small-8 {
        width: 66.66667%;
    }

    .small-margin-collapse > .small-9 {
        width: 75%;
    }

    .small-margin-collapse > .small-10 {
        width: 83.33333%;
    }

    .small-margin-collapse > .small-11 {
        width: 91.66667%;
    }

    .small-margin-collapse > .small-12 {
        width: 100%;
    }

@media print, screen and (min-width: 40em) {
    .small-margin-collapse > .medium-1 {
        width: 8.33333%;
    }

    .small-margin-collapse > .medium-2 {
        width: 16.66667%;
    }

    .small-margin-collapse > .medium-3 {
        width: 25%;
    }

    .small-margin-collapse > .medium-4 {
        width: 33.33333%;
    }

    .small-margin-collapse > .medium-5 {
        width: 41.66667%;
    }

    .small-margin-collapse > .medium-6 {
        width: 50%;
    }

    .small-margin-collapse > .medium-7 {
        width: 58.33333%;
    }

    .small-margin-collapse > .medium-8 {
        width: 66.66667%;
    }

    .small-margin-collapse > .medium-9 {
        width: 75%;
    }

    .small-margin-collapse > .medium-10 {
        width: 83.33333%;
    }

    .small-margin-collapse > .medium-11 {
        width: 91.66667%;
    }

    .small-margin-collapse > .medium-12 {
        width: 100%;
    }
}

@media print, screen and (min-width: 64em) {
    .small-margin-collapse > .large-1 {
        width: 8.33333%;
    }

    .small-margin-collapse > .large-2 {
        width: 16.66667%;
    }

    .small-margin-collapse > .large-3 {
        width: 25%;
    }

    .small-margin-collapse > .large-4 {
        width: 33.33333%;
    }

    .small-margin-collapse > .large-5 {
        width: 41.66667%;
    }

    .small-margin-collapse > .large-6 {
        width: 50%;
    }

    .small-margin-collapse > .large-7 {
        width: 58.33333%;
    }

    .small-margin-collapse > .large-8 {
        width: 66.66667%;
    }

    .small-margin-collapse > .large-9 {
        width: 75%;
    }

    .small-margin-collapse > .large-10 {
        width: 83.33333%;
    }

    .small-margin-collapse > .large-11 {
        width: 91.66667%;
    }

    .small-margin-collapse > .large-12 {
        width: 100%;
    }
}

.small-padding-collapse {
    margin-right: 0;
    margin-left: 0;
}

    .small-padding-collapse > .cell {
        padding-right: 0;
        padding-left: 0;
    }

@media print, screen and (min-width: 40em) {
    .medium-margin-collapse {
        margin-right: 0;
        margin-left: 0;
    }

        .medium-margin-collapse > .cell {
            margin-right: 0;
            margin-left: 0;
        }
}

@media print, screen and (min-width: 40em) {
    .medium-margin-collapse > .small-1 {
        width: 8.33333%;
    }

    .medium-margin-collapse > .small-2 {
        width: 16.66667%;
    }

    .medium-margin-collapse > .small-3 {
        width: 25%;
    }

    .medium-margin-collapse > .small-4 {
        width: 33.33333%;
    }

    .medium-margin-collapse > .small-5 {
        width: 41.66667%;
    }

    .medium-margin-collapse > .small-6 {
        width: 50%;
    }

    .medium-margin-collapse > .small-7 {
        width: 58.33333%;
    }

    .medium-margin-collapse > .small-8 {
        width: 66.66667%;
    }

    .medium-margin-collapse > .small-9 {
        width: 75%;
    }

    .medium-margin-collapse > .small-10 {
        width: 83.33333%;
    }

    .medium-margin-collapse > .small-11 {
        width: 91.66667%;
    }

    .medium-margin-collapse > .small-12 {
        width: 100%;
    }
}

@media print, screen and (min-width: 40em) {
    .medium-margin-collapse > .medium-1 {
        width: 8.33333%;
    }

    .medium-margin-collapse > .medium-2 {
        width: 16.66667%;
    }

    .medium-margin-collapse > .medium-3 {
        width: 25%;
    }

    .medium-margin-collapse > .medium-4 {
        width: 33.33333%;
    }

    .medium-margin-collapse > .medium-5 {
        width: 41.66667%;
    }

    .medium-margin-collapse > .medium-6 {
        width: 50%;
    }

    .medium-margin-collapse > .medium-7 {
        width: 58.33333%;
    }

    .medium-margin-collapse > .medium-8 {
        width: 66.66667%;
    }

    .medium-margin-collapse > .medium-9 {
        width: 75%;
    }

    .medium-margin-collapse > .medium-10 {
        width: 83.33333%;
    }

    .medium-margin-collapse > .medium-11 {
        width: 91.66667%;
    }

    .medium-margin-collapse > .medium-12 {
        width: 100%;
    }
}

@media print, screen and (min-width: 64em) {
    .medium-margin-collapse > .large-1 {
        width: 8.33333%;
    }

    .medium-margin-collapse > .large-2 {
        width: 16.66667%;
    }

    .medium-margin-collapse > .large-3 {
        width: 25%;
    }

    .medium-margin-collapse > .large-4 {
        width: 33.33333%;
    }

    .medium-margin-collapse > .large-5 {
        width: 41.66667%;
    }

    .medium-margin-collapse > .large-6 {
        width: 50%;
    }

    .medium-margin-collapse > .large-7 {
        width: 58.33333%;
    }

    .medium-margin-collapse > .large-8 {
        width: 66.66667%;
    }

    .medium-margin-collapse > .large-9 {
        width: 75%;
    }

    .medium-margin-collapse > .large-10 {
        width: 83.33333%;
    }

    .medium-margin-collapse > .large-11 {
        width: 91.66667%;
    }

    .medium-margin-collapse > .large-12 {
        width: 100%;
    }
}

@media print, screen and (min-width: 40em) {
    .medium-padding-collapse {
        margin-right: 0;
        margin-left: 0;
    }

        .medium-padding-collapse > .cell {
            padding-right: 0;
            padding-left: 0;
        }
}

@media print, screen and (min-width: 64em) {
    .large-margin-collapse {
        margin-right: 0;
        margin-left: 0;
    }

        .large-margin-collapse > .cell {
            margin-right: 0;
            margin-left: 0;
        }
}

@media print, screen and (min-width: 64em) {
    .large-margin-collapse > .small-1 {
        width: 8.33333%;
    }

    .large-margin-collapse > .small-2 {
        width: 16.66667%;
    }

    .large-margin-collapse > .small-3 {
        width: 25%;
    }

    .large-margin-collapse > .small-4 {
        width: 33.33333%;
    }

    .large-margin-collapse > .small-5 {
        width: 41.66667%;
    }

    .large-margin-collapse > .small-6 {
        width: 50%;
    }

    .large-margin-collapse > .small-7 {
        width: 58.33333%;
    }

    .large-margin-collapse > .small-8 {
        width: 66.66667%;
    }

    .large-margin-collapse > .small-9 {
        width: 75%;
    }

    .large-margin-collapse > .small-10 {
        width: 83.33333%;
    }

    .large-margin-collapse > .small-11 {
        width: 91.66667%;
    }

    .large-margin-collapse > .small-12 {
        width: 100%;
    }
}

@media print, screen and (min-width: 64em) {
    .large-margin-collapse > .medium-1 {
        width: 8.33333%;
    }

    .large-margin-collapse > .medium-2 {
        width: 16.66667%;
    }

    .large-margin-collapse > .medium-3 {
        width: 25%;
    }

    .large-margin-collapse > .medium-4 {
        width: 33.33333%;
    }

    .large-margin-collapse > .medium-5 {
        width: 41.66667%;
    }

    .large-margin-collapse > .medium-6 {
        width: 50%;
    }

    .large-margin-collapse > .medium-7 {
        width: 58.33333%;
    }

    .large-margin-collapse > .medium-8 {
        width: 66.66667%;
    }

    .large-margin-collapse > .medium-9 {
        width: 75%;
    }

    .large-margin-collapse > .medium-10 {
        width: 83.33333%;
    }

    .large-margin-collapse > .medium-11 {
        width: 91.66667%;
    }

    .large-margin-collapse > .medium-12 {
        width: 100%;
    }
}

@media print, screen and (min-width: 64em) {
    .large-margin-collapse > .large-1 {
        width: 8.33333%;
    }

    .large-margin-collapse > .large-2 {
        width: 16.66667%;
    }

    .large-margin-collapse > .large-3 {
        width: 25%;
    }

    .large-margin-collapse > .large-4 {
        width: 33.33333%;
    }

    .large-margin-collapse > .large-5 {
        width: 41.66667%;
    }

    .large-margin-collapse > .large-6 {
        width: 50%;
    }

    .large-margin-collapse > .large-7 {
        width: 58.33333%;
    }

    .large-margin-collapse > .large-8 {
        width: 66.66667%;
    }

    .large-margin-collapse > .large-9 {
        width: 75%;
    }

    .large-margin-collapse > .large-10 {
        width: 83.33333%;
    }

    .large-margin-collapse > .large-11 {
        width: 91.66667%;
    }

    .large-margin-collapse > .large-12 {
        width: 100%;
    }
}

@media print, screen and (min-width: 64em) {
    .large-padding-collapse {
        margin-right: 0;
        margin-left: 0;
    }

        .large-padding-collapse > .cell {
            padding-right: 0;
            padding-left: 0;
        }
}

.small-offset-0 {
    margin-left: 0%;
}

.grid-margin-x > .small-offset-0 {
    margin-left: calc(0% + 0.625rem);
}

.small-offset-1 {
    margin-left: 8.33333%;
}

.grid-margin-x > .small-offset-1 {
    margin-left: calc(8.33333% + 0.625rem);
}

.small-offset-2 {
    margin-left: 16.66667%;
}

.grid-margin-x > .small-offset-2 {
    margin-left: calc(16.66667% + 0.625rem);
}

.small-offset-3 {
    margin-left: 25%;
}

.grid-margin-x > .small-offset-3 {
    margin-left: calc(25% + 0.625rem);
}

.small-offset-4 {
    margin-left: 33.33333%;
}

.grid-margin-x > .small-offset-4 {
    margin-left: calc(33.33333% + 0.625rem);
}

.small-offset-5 {
    margin-left: 41.66667%;
}

.grid-margin-x > .small-offset-5 {
    margin-left: calc(41.66667% + 0.625rem);
}

.small-offset-6 {
    margin-left: 50%;
}

.grid-margin-x > .small-offset-6 {
    margin-left: calc(50% + 0.625rem);
}

.small-offset-7 {
    margin-left: 58.33333%;
}

.grid-margin-x > .small-offset-7 {
    margin-left: calc(58.33333% + 0.625rem);
}

.small-offset-8 {
    margin-left: 66.66667%;
}

.grid-margin-x > .small-offset-8 {
    margin-left: calc(66.66667% + 0.625rem);
}

.small-offset-9 {
    margin-left: 75%;
}

.grid-margin-x > .small-offset-9 {
    margin-left: calc(75% + 0.625rem);
}

.small-offset-10 {
    margin-left: 83.33333%;
}

.grid-margin-x > .small-offset-10 {
    margin-left: calc(83.33333% + 0.625rem);
}

.small-offset-11 {
    margin-left: 91.66667%;
}

.grid-margin-x > .small-offset-11 {
    margin-left: calc(91.66667% + 0.625rem);
}

@media print, screen and (min-width: 40em) {
    .medium-offset-0 {
        margin-left: 0%;
    }

    .grid-margin-x > .medium-offset-0 {
        margin-left: calc(0% + 0.9375rem);
    }

    .medium-offset-1 {
        margin-left: 8.33333%;
    }

    .grid-margin-x > .medium-offset-1 {
        margin-left: calc(8.33333% + 0.9375rem);
    }

    .medium-offset-2 {
        margin-left: 16.66667%;
    }

    .grid-margin-x > .medium-offset-2 {
        margin-left: calc(16.66667% + 0.9375rem);
    }

    .medium-offset-3 {
        margin-left: 25%;
    }

    .grid-margin-x > .medium-offset-3 {
        margin-left: calc(25% + 0.9375rem);
    }

    .medium-offset-4 {
        margin-left: 33.33333%;
    }

    .grid-margin-x > .medium-offset-4 {
        margin-left: calc(33.33333% + 0.9375rem);
    }

    .medium-offset-5 {
        margin-left: 41.66667%;
    }

    .grid-margin-x > .medium-offset-5 {
        margin-left: calc(41.66667% + 0.9375rem);
    }

    .medium-offset-6 {
        margin-left: 50%;
    }

    .grid-margin-x > .medium-offset-6 {
        margin-left: calc(50% + 0.9375rem);
    }

    .medium-offset-7 {
        margin-left: 58.33333%;
    }

    .grid-margin-x > .medium-offset-7 {
        margin-left: calc(58.33333% + 0.9375rem);
    }

    .medium-offset-8 {
        margin-left: 66.66667%;
    }

    .grid-margin-x > .medium-offset-8 {
        margin-left: calc(66.66667% + 0.9375rem);
    }

    .medium-offset-9 {
        margin-left: 75%;
    }

    .grid-margin-x > .medium-offset-9 {
        margin-left: calc(75% + 0.9375rem);
    }

    .medium-offset-10 {
        margin-left: 83.33333%;
    }

    .grid-margin-x > .medium-offset-10 {
        margin-left: calc(83.33333% + 0.9375rem);
    }

    .medium-offset-11 {
        margin-left: 91.66667%;
    }

    .grid-margin-x > .medium-offset-11 {
        margin-left: calc(91.66667% + 0.9375rem);
    }
}

@media print, screen and (min-width: 64em) {
    .large-offset-0 {
        margin-left: 0%;
    }

    .grid-margin-x > .large-offset-0 {
        margin-left: calc(0% + 0.9375rem);
    }

    .large-offset-1 {
        margin-left: 8.33333%;
    }

    .grid-margin-x > .large-offset-1 {
        margin-left: calc(8.33333% + 0.9375rem);
    }

    .large-offset-2 {
        margin-left: 16.66667%;
    }

    .grid-margin-x > .large-offset-2 {
        margin-left: calc(16.66667% + 0.9375rem);
    }

    .large-offset-3 {
        margin-left: 25%;
    }

    .grid-margin-x > .large-offset-3 {
        margin-left: calc(25% + 0.9375rem);
    }

    .large-offset-4 {
        margin-left: 33.33333%;
    }

    .grid-margin-x > .large-offset-4 {
        margin-left: calc(33.33333% + 0.9375rem);
    }

    .large-offset-5 {
        margin-left: 41.66667%;
    }

    .grid-margin-x > .large-offset-5 {
        margin-left: calc(41.66667% + 0.9375rem);
    }

    .large-offset-6 {
        margin-left: 50%;
    }

    .grid-margin-x > .large-offset-6 {
        margin-left: calc(50% + 0.9375rem);
    }

    .large-offset-7 {
        margin-left: 58.33333%;
    }

    .grid-margin-x > .large-offset-7 {
        margin-left: calc(58.33333% + 0.9375rem);
    }

    .large-offset-8 {
        margin-left: 66.66667%;
    }

    .grid-margin-x > .large-offset-8 {
        margin-left: calc(66.66667% + 0.9375rem);
    }

    .large-offset-9 {
        margin-left: 75%;
    }

    .grid-margin-x > .large-offset-9 {
        margin-left: calc(75% + 0.9375rem);
    }

    .large-offset-10 {
        margin-left: 83.33333%;
    }

    .grid-margin-x > .large-offset-10 {
        margin-left: calc(83.33333% + 0.9375rem);
    }

    .large-offset-11 {
        margin-left: 91.66667%;
    }

    .grid-margin-x > .large-offset-11 {
        margin-left: calc(91.66667% + 0.9375rem);
    }
}

.grid-y {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: column nowrap;
    -ms-flex-flow: column nowrap;
    flex-flow: column nowrap;
}

    .grid-y > .cell {
        width: auto;
    }

    .grid-y > .auto {
        height: auto;
    }

    .grid-y > .shrink {
        height: auto;
    }

    .grid-y > .small-shrink, .grid-y > .small-full, .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {
        -webkit-flex-basis: auto;
        -ms-flex-preferred-size: auto;
        flex-basis: auto;
    }

@media print, screen and (min-width: 40em) {
    .grid-y > .medium-shrink, .grid-y > .medium-full, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {
        -webkit-flex-basis: auto;
        -ms-flex-preferred-size: auto;
        flex-basis: auto;
    }
}

@media print, screen and (min-width: 64em) {
    .grid-y > .large-shrink, .grid-y > .large-full, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {
        -webkit-flex-basis: auto;
        -ms-flex-preferred-size: auto;
        flex-basis: auto;
    }
}

.grid-y > .small-1 {
    height: 8.33333%;
}

.grid-y > .small-2 {
    height: 16.66667%;
}

.grid-y > .small-3 {
    height: 25%;
}

.grid-y > .small-4 {
    height: 33.33333%;
}

.grid-y > .small-5 {
    height: 41.66667%;
}

.grid-y > .small-6 {
    height: 50%;
}

.grid-y > .small-7 {
    height: 58.33333%;
}

.grid-y > .small-8 {
    height: 66.66667%;
}

.grid-y > .small-9 {
    height: 75%;
}

.grid-y > .small-10 {
    height: 83.33333%;
}

.grid-y > .small-11 {
    height: 91.66667%;
}

.grid-y > .small-12 {
    height: 100%;
}

@media print, screen and (min-width: 40em) {
    .grid-y > .medium-auto {
        -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
        flex: 1 1 0px;
        height: auto;
    }

    .grid-y > .medium-shrink {
        height: auto;
    }

    .grid-y > .medium-1 {
        height: 8.33333%;
    }

    .grid-y > .medium-2 {
        height: 16.66667%;
    }

    .grid-y > .medium-3 {
        height: 25%;
    }

    .grid-y > .medium-4 {
        height: 33.33333%;
    }

    .grid-y > .medium-5 {
        height: 41.66667%;
    }

    .grid-y > .medium-6 {
        height: 50%;
    }

    .grid-y > .medium-7 {
        height: 58.33333%;
    }

    .grid-y > .medium-8 {
        height: 66.66667%;
    }

    .grid-y > .medium-9 {
        height: 75%;
    }

    .grid-y > .medium-10 {
        height: 83.33333%;
    }

    .grid-y > .medium-11 {
        height: 91.66667%;
    }

    .grid-y > .medium-12 {
        height: 100%;
    }
}

@media print, screen and (min-width: 64em) {
    .grid-y > .large-auto {
        -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
        flex: 1 1 0px;
        height: auto;
    }

    .grid-y > .large-shrink {
        height: auto;
    }

    .grid-y > .large-1 {
        height: 8.33333%;
    }

    .grid-y > .large-2 {
        height: 16.66667%;
    }

    .grid-y > .large-3 {
        height: 25%;
    }

    .grid-y > .large-4 {
        height: 33.33333%;
    }

    .grid-y > .large-5 {
        height: 41.66667%;
    }

    .grid-y > .large-6 {
        height: 50%;
    }

    .grid-y > .large-7 {
        height: 58.33333%;
    }

    .grid-y > .large-8 {
        height: 66.66667%;
    }

    .grid-y > .large-9 {
        height: 75%;
    }

    .grid-y > .large-10 {
        height: 83.33333%;
    }

    .grid-y > .large-11 {
        height: 91.66667%;
    }

    .grid-y > .large-12 {
        height: 100%;
    }
}

.grid-padding-y .grid-padding-y {
    margin-top: -0.625rem;
    margin-bottom: -0.625rem;
}

@media print, screen and (min-width: 40em) {
    .grid-padding-y .grid-padding-y {
        margin-top: -0.9375rem;
        margin-bottom: -0.9375rem;
    }
}

.grid-padding-y > .cell {
    padding-top: 0.625rem;
    padding-bottom: 0.625rem;
}

@media print, screen and (min-width: 40em) {
    .grid-padding-y > .cell {
        padding-top: 0.9375rem;
        padding-bottom: 0.9375rem;
    }
}

.grid-margin-y {
    margin-top: -0.625rem;
    margin-bottom: -0.625rem;
}

@media print, screen and (min-width: 40em) {
    .grid-margin-y {
        margin-top: -0.9375rem;
        margin-bottom: -0.9375rem;
    }
}

.grid-margin-y > .cell {
    height: calc(100% - 1.25rem);
    margin-top: 0.625rem;
    margin-bottom: 0.625rem;
}

@media print, screen and (min-width: 40em) {
    .grid-margin-y > .cell {
        height: calc(100% - 1.875rem);
        margin-top: 0.9375rem;
        margin-bottom: 0.9375rem;
    }
}

.grid-margin-y > .auto {
    height: auto;
}

.grid-margin-y > .shrink {
    height: auto;
}

.grid-margin-y > .small-1 {
    height: calc(8.33333% - 1.25rem);
}

.grid-margin-y > .small-2 {
    height: calc(16.66667% - 1.25rem);
}

.grid-margin-y > .small-3 {
    height: calc(25% - 1.25rem);
}

.grid-margin-y > .small-4 {
    height: calc(33.33333% - 1.25rem);
}

.grid-margin-y > .small-5 {
    height: calc(41.66667% - 1.25rem);
}

.grid-margin-y > .small-6 {
    height: calc(50% - 1.25rem);
}

.grid-margin-y > .small-7 {
    height: calc(58.33333% - 1.25rem);
}

.grid-margin-y > .small-8 {
    height: calc(66.66667% - 1.25rem);
}

.grid-margin-y > .small-9 {
    height: calc(75% - 1.25rem);
}

.grid-margin-y > .small-10 {
    height: calc(83.33333% - 1.25rem);
}

.grid-margin-y > .small-11 {
    height: calc(91.66667% - 1.25rem);
}

.grid-margin-y > .small-12 {
    height: calc(100% - 1.25rem);
}

@media print, screen and (min-width: 40em) {
    .grid-margin-y > .auto {
        height: auto;
    }

    .grid-margin-y > .shrink {
        height: auto;
    }

    .grid-margin-y > .small-1 {
        height: calc(8.33333% - 1.875rem);
    }

    .grid-margin-y > .small-2 {
        height: calc(16.66667% - 1.875rem);
    }

    .grid-margin-y > .small-3 {
        height: calc(25% - 1.875rem);
    }

    .grid-margin-y > .small-4 {
        height: calc(33.33333% - 1.875rem);
    }

    .grid-margin-y > .small-5 {
        height: calc(41.66667% - 1.875rem);
    }

    .grid-margin-y > .small-6 {
        height: calc(50% - 1.875rem);
    }

    .grid-margin-y > .small-7 {
        height: calc(58.33333% - 1.875rem);
    }

    .grid-margin-y > .small-8 {
        height: calc(66.66667% - 1.875rem);
    }

    .grid-margin-y > .small-9 {
        height: calc(75% - 1.875rem);
    }

    .grid-margin-y > .small-10 {
        height: calc(83.33333% - 1.875rem);
    }

    .grid-margin-y > .small-11 {
        height: calc(91.66667% - 1.875rem);
    }

    .grid-margin-y > .small-12 {
        height: calc(100% - 1.875rem);
    }

    .grid-margin-y > .medium-auto {
        height: auto;
    }

    .grid-margin-y > .medium-shrink {
        height: auto;
    }

    .grid-margin-y > .medium-1 {
        height: calc(8.33333% - 1.875rem);
    }

    .grid-margin-y > .medium-2 {
        height: calc(16.66667% - 1.875rem);
    }

    .grid-margin-y > .medium-3 {
        height: calc(25% - 1.875rem);
    }

    .grid-margin-y > .medium-4 {
        height: calc(33.33333% - 1.875rem);
    }

    .grid-margin-y > .medium-5 {
        height: calc(41.66667% - 1.875rem);
    }

    .grid-margin-y > .medium-6 {
        height: calc(50% - 1.875rem);
    }

    .grid-margin-y > .medium-7 {
        height: calc(58.33333% - 1.875rem);
    }

    .grid-margin-y > .medium-8 {
        height: calc(66.66667% - 1.875rem);
    }

    .grid-margin-y > .medium-9 {
        height: calc(75% - 1.875rem);
    }

    .grid-margin-y > .medium-10 {
        height: calc(83.33333% - 1.875rem);
    }

    .grid-margin-y > .medium-11 {
        height: calc(91.66667% - 1.875rem);
    }

    .grid-margin-y > .medium-12 {
        height: calc(100% - 1.875rem);
    }
}

@media print, screen and (min-width: 64em) {
    .grid-margin-y > .large-auto {
        height: auto;
    }

    .grid-margin-y > .large-shrink {
        height: auto;
    }

    .grid-margin-y > .large-1 {
        height: calc(8.33333% - 1.875rem);
    }

    .grid-margin-y > .large-2 {
        height: calc(16.66667% - 1.875rem);
    }

    .grid-margin-y > .large-3 {
        height: calc(25% - 1.875rem);
    }

    .grid-margin-y > .large-4 {
        height: calc(33.33333% - 1.875rem);
    }

    .grid-margin-y > .large-5 {
        height: calc(41.66667% - 1.875rem);
    }

    .grid-margin-y > .large-6 {
        height: calc(50% - 1.875rem);
    }

    .grid-margin-y > .large-7 {
        height: calc(58.33333% - 1.875rem);
    }

    .grid-margin-y > .large-8 {
        height: calc(66.66667% - 1.875rem);
    }

    .grid-margin-y > .large-9 {
        height: calc(75% - 1.875rem);
    }

    .grid-margin-y > .large-10 {
        height: calc(83.33333% - 1.875rem);
    }

    .grid-margin-y > .large-11 {
        height: calc(91.66667% - 1.875rem);
    }

    .grid-margin-y > .large-12 {
        height: calc(100% - 1.875rem);
    }
}

.grid-frame {
    overflow: hidden;
    position: relative;
    -webkit-flex-wrap: nowrap;
    -ms-flex-wrap: nowrap;
    flex-wrap: nowrap;
    -webkit-align-items: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
    width: 100vw;
}

.cell .grid-frame {
    width: 100%;
}

.cell-block {
    overflow-x: auto;
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-stype: -ms-autohiding-scrollbar;
}

.cell-block-y {
    overflow-y: auto;
    max-height: 100%;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-stype: -ms-autohiding-scrollbar;
}

.cell-block-container {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    max-height: 100%;
}

    .cell-block-container > .grid-x {
        max-height: 100%;
        -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    }

@media print, screen and (min-width: 40em) {
    .medium-grid-frame {
        overflow: hidden;
        position: relative;
        -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
        -webkit-align-items: stretch;
        -ms-flex-align: stretch;
        align-items: stretch;
        width: 100vw;
    }

    .cell .medium-grid-frame {
        width: 100%;
    }

    .medium-cell-block {
        overflow-x: auto;
        max-width: 100%;
        -webkit-overflow-scrolling: touch;
        -ms-overflow-stype: -ms-autohiding-scrollbar;
    }

    .medium-cell-block-container {
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-flex-direction: column;
        -ms-flex-direction: column;
        flex-direction: column;
        max-height: 100%;
    }

        .medium-cell-block-container > .grid-x {
            max-height: 100%;
            -webkit-flex-wrap: nowrap;
            -ms-flex-wrap: nowrap;
            flex-wrap: nowrap;
        }

    .medium-cell-block-y {
        overflow-y: auto;
        max-height: 100%;
        -webkit-overflow-scrolling: touch;
        -ms-overflow-stype: -ms-autohiding-scrollbar;
    }
}

@media print, screen and (min-width: 64em) {
    .large-grid-frame {
        overflow: hidden;
        position: relative;
        -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
        -webkit-align-items: stretch;
        -ms-flex-align: stretch;
        align-items: stretch;
        width: 100vw;
    }

    .cell .large-grid-frame {
        width: 100%;
    }

    .large-cell-block {
        overflow-x: auto;
        max-width: 100%;
        -webkit-overflow-scrolling: touch;
        -ms-overflow-stype: -ms-autohiding-scrollbar;
    }

    .large-cell-block-container {
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-flex-direction: column;
        -ms-flex-direction: column;
        flex-direction: column;
        max-height: 100%;
    }

        .large-cell-block-container > .grid-x {
            max-height: 100%;
            -webkit-flex-wrap: nowrap;
            -ms-flex-wrap: nowrap;
            flex-wrap: nowrap;
        }

    .large-cell-block-y {
        overflow-y: auto;
        max-height: 100%;
        -webkit-overflow-scrolling: touch;
        -ms-overflow-stype: -ms-autohiding-scrollbar;
    }
}

.grid-y.grid-frame {
    width: auto;
    overflow: hidden;
    position: relative;
    -webkit-flex-wrap: nowrap;
    -ms-flex-wrap: nowrap;
    flex-wrap: nowrap;
    -webkit-align-items: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
    height: 100vh;
}

@media print, screen and (min-width: 40em) {
    .grid-y.medium-grid-frame {
        width: auto;
        overflow: hidden;
        position: relative;
        -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
        -webkit-align-items: stretch;
        -ms-flex-align: stretch;
        align-items: stretch;
        height: 100vh;
    }
}

@media print, screen and (min-width: 64em) {
    .grid-y.large-grid-frame {
        width: auto;
        overflow: hidden;
        position: relative;
        -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
        -webkit-align-items: stretch;
        -ms-flex-align: stretch;
        align-items: stretch;
        height: 100vh;
    }
}

.cell .grid-y.grid-frame {
    height: 100%;
}

@media print, screen and (min-width: 40em) {
    .cell .grid-y.medium-grid-frame {
        height: 100%;
    }
}

@media print, screen and (min-width: 64em) {
    .cell .grid-y.large-grid-frame {
        height: 100%;
    }
}

.grid-margin-y {
    margin-top: -0.625rem;
    margin-bottom: -0.625rem;
}

@media print, screen and (min-width: 40em) {
    .grid-margin-y {
        margin-top: -0.9375rem;
        margin-bottom: -0.9375rem;
    }
}

.grid-margin-y > .cell {
    height: calc(100% - 1.25rem);
    margin-top: 0.625rem;
    margin-bottom: 0.625rem;
}

@media print, screen and (min-width: 40em) {
    .grid-margin-y > .cell {
        height: calc(100% - 1.875rem);
        margin-top: 0.9375rem;
        margin-bottom: 0.9375rem;
    }
}

.grid-margin-y > .auto {
    height: auto;
}

.grid-margin-y > .shrink {
    height: auto;
}

.grid-margin-y > .small-1 {
    height: calc(8.33333% - 1.25rem);
}

.grid-margin-y > .small-2 {
    height: calc(16.66667% - 1.25rem);
}

.grid-margin-y > .small-3 {
    height: calc(25% - 1.25rem);
}

.grid-margin-y > .small-4 {
    height: calc(33.33333% - 1.25rem);
}

.grid-margin-y > .small-5 {
    height: calc(41.66667% - 1.25rem);
}

.grid-margin-y > .small-6 {
    height: calc(50% - 1.25rem);
}

.grid-margin-y > .small-7 {
    height: calc(58.33333% - 1.25rem);
}

.grid-margin-y > .small-8 {
    height: calc(66.66667% - 1.25rem);
}

.grid-margin-y > .small-9 {
    height: calc(75% - 1.25rem);
}

.grid-margin-y > .small-10 {
    height: calc(83.33333% - 1.25rem);
}

.grid-margin-y > .small-11 {
    height: calc(91.66667% - 1.25rem);
}

.grid-margin-y > .small-12 {
    height: calc(100% - 1.25rem);
}

@media print, screen and (min-width: 40em) {
    .grid-margin-y > .auto {
        height: auto;
    }

    .grid-margin-y > .shrink {
        height: auto;
    }

    .grid-margin-y > .small-1 {
        height: calc(8.33333% - 1.875rem);
    }

    .grid-margin-y > .small-2 {
        height: calc(16.66667% - 1.875rem);
    }

    .grid-margin-y > .small-3 {
        height: calc(25% - 1.875rem);
    }

    .grid-margin-y > .small-4 {
        height: calc(33.33333% - 1.875rem);
    }

    .grid-margin-y > .small-5 {
        height: calc(41.66667% - 1.875rem);
    }

    .grid-margin-y > .small-6 {
        height: calc(50% - 1.875rem);
    }

    .grid-margin-y > .small-7 {
        height: calc(58.33333% - 1.875rem);
    }

    .grid-margin-y > .small-8 {
        height: calc(66.66667% - 1.875rem);
    }

    .grid-margin-y > .small-9 {
        height: calc(75% - 1.875rem);
    }

    .grid-margin-y > .small-10 {
        height: calc(83.33333% - 1.875rem);
    }

    .grid-margin-y > .small-11 {
        height: calc(91.66667% - 1.875rem);
    }

    .grid-margin-y > .small-12 {
        height: calc(100% - 1.875rem);
    }

    .grid-margin-y > .medium-auto {
        height: auto;
    }

    .grid-margin-y > .medium-shrink {
        height: auto;
    }

    .grid-margin-y > .medium-1 {
        height: calc(8.33333% - 1.875rem);
    }

    .grid-margin-y > .medium-2 {
        height: calc(16.66667% - 1.875rem);
    }

    .grid-margin-y > .medium-3 {
        height: calc(25% - 1.875rem);
    }

    .grid-margin-y > .medium-4 {
        height: calc(33.33333% - 1.875rem);
    }

    .grid-margin-y > .medium-5 {
        height: calc(41.66667% - 1.875rem);
    }

    .grid-margin-y > .medium-6 {
        height: calc(50% - 1.875rem);
    }

    .grid-margin-y > .medium-7 {
        height: calc(58.33333% - 1.875rem);
    }

    .grid-margin-y > .medium-8 {
        height: calc(66.66667% - 1.875rem);
    }

    .grid-margin-y > .medium-9 {
        height: calc(75% - 1.875rem);
    }

    .grid-margin-y > .medium-10 {
        height: calc(83.33333% - 1.875rem);
    }

    .grid-margin-y > .medium-11 {
        height: calc(91.66667% - 1.875rem);
    }

    .grid-margin-y > .medium-12 {
        height: calc(100% - 1.875rem);
    }
}

@media print, screen and (min-width: 64em) {
    .grid-margin-y > .large-auto {
        height: auto;
    }

    .grid-margin-y > .large-shrink {
        height: auto;
    }

    .grid-margin-y > .large-1 {
        height: calc(8.33333% - 1.875rem);
    }

    .grid-margin-y > .large-2 {
        height: calc(16.66667% - 1.875rem);
    }

    .grid-margin-y > .large-3 {
        height: calc(25% - 1.875rem);
    }

    .grid-margin-y > .large-4 {
        height: calc(33.33333% - 1.875rem);
    }

    .grid-margin-y > .large-5 {
        height: calc(41.66667% - 1.875rem);
    }

    .grid-margin-y > .large-6 {
        height: calc(50% - 1.875rem);
    }

    .grid-margin-y > .large-7 {
        height: calc(58.33333% - 1.875rem);
    }

    .grid-margin-y > .large-8 {
        height: calc(66.66667% - 1.875rem);
    }

    .grid-margin-y > .large-9 {
        height: calc(75% - 1.875rem);
    }

    .grid-margin-y > .large-10 {
        height: calc(83.33333% - 1.875rem);
    }

    .grid-margin-y > .large-11 {
        height: calc(91.66667% - 1.875rem);
    }

    .grid-margin-y > .large-12 {
        height: calc(100% - 1.875rem);
    }
}

.grid-frame.grid-margin-y {
    height: calc(100vh + 1.25rem);
}

@media print, screen and (min-width: 40em) {
    .grid-frame.grid-margin-y {
        height: calc(100vh + 1.875rem);
    }
}

@media print, screen and (min-width: 64em) {
    .grid-frame.grid-margin-y {
        height: calc(100vh + 1.875rem);
    }
}

@media print, screen and (min-width: 40em) {
    .grid-margin-y.medium-grid-frame {
        height: calc(100vh + 1.875rem);
    }
}

@media print, screen and (min-width: 64em) {
    .grid-margin-y.large-grid-frame {
        height: calc(100vh + 1.875rem);
    }
}

div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
.about__header p,
h5,
h6,
.auction-catalogue .auction-catalogue__item .auction-catalogue__item__heading,
pre,
form,
p,
blockquote,
th,
td {
    margin: 0;
    padding: 0;
}

p {
    margin-bottom: 1rem;
    font-size: inherit;
    line-height: 1.6;
    text-rendering: optimizeLegibility;
}

em,
i {
    font-style: italic;
    line-height: inherit;
}

strong,
b {
    font-weight: bold;
    line-height: inherit;
}

small {
    font-size: 80%;
    line-height: inherit;
}

h1, .h1,
h2, .h2,
h3, .h3,
h4,
.about__header p, .h4,
h5, .h5,
h6,
.auction-catalogue .auction-catalogue__item .auction-catalogue__item__heading, .h6 {
    font-family: "Avenir LT W01_55 Roman1475520", Sans-serif;
    font-style: normal;
    font-weight: normal;
    color: inherit;
    text-rendering: optimizeLegibility;
}

    h1 small, .h1 small,
    h2 small, .h2 small,
    h3 small, .h3 small,
    h4 small,
    .about__header p small, .h4 small,
    h5 small, .h5 small,
    h6 small,
    .auction-catalogue .auction-catalogue__item .auction-catalogue__item__heading small, .h6 small {
        line-height: 0;
        color: #DEDEDE;
    }

h1, .h1 {
    font-size: 1.5rem;
    line-height: 1.4;
    margin-top: 0;
    margin-bottom: 0.5rem;
}

h2, .h2 {
    font-size: 1.25rem;
    line-height: 1.4;
    margin-top: 0;
    margin-bottom: 0.5rem;
}

h3, .h3 {
    font-size: 1.1875rem;
    line-height: 1.4;
    margin-top: 0;
    margin-bottom: 0.5rem;
}


h4,
.about__header p, .h4 {
    font-size: 1.125rem;
    line-height: 1.4;
    margin-top: 0;
    margin-bottom: 0.5rem;
}

h5, .h5 {
    font-size: 1.0625rem;
    line-height: 1.4;
    margin-top: 0;
    margin-bottom: 0.5rem;
}


h6,
.auction-catalogue .auction-catalogue__item .auction-catalogue__item__heading, .h6 {
    font-size: 1rem;
    line-height: 1.4;
    margin-top: 0;
    margin-bottom: 0.5rem;
}

@media print, screen and (min-width: 40em) {
    h1, .h1 {
        font-size: 3rem;
    }

    h2, .h2 {
        font-size: 2.5rem;
    }

    h3, .h3 {
        font-size: 1.9375rem;
    }

    h4,
    .about__header p, .h4 {
        font-size: 1.5625rem;
    }

    h5, .h5 {
        font-size: 1.25rem;
    }

    h6,
    .auction-catalogue .auction-catalogue__item .auction-catalogue__item__heading, .h6 {
        font-size: 1rem;
    }
}

a, .sub-menu .font--black,
.copyright .font--black {
    line-height: inherit;
    color: #808080;
    text-decoration: none;
    cursor: pointer;
}

    a:hover,
    .sub-menu .font--black:hover,
    .copyright .font--black:hover, a:focus, .sub-menu .font--black:focus,
    .copyright .font--black:focus {
        color: #6e6e6e;
    }

    a img, .sub-menu .font--black img, .copyright .font--black img {
        border: 0;
    }

hr {
    clear: both;
    max-width: 106.25rem;
    height: 0;
    margin: 1.25rem auto;
    border-top: 0;
    border-right: 0;
    border-bottom: 1px solid #f5f5f5;
    border-left: 0;
}

ul,
ol,
dl {
    margin-bottom: 1rem;
    list-style-position: outside;
    line-height: 1.6;
}

li {
    font-size: inherit;
}

ul {
    margin-left: 1.25rem;
    list-style-type: disc;
}

ol {
    margin-left: 1.25rem;
}

    ul ul, ol ul, ul ol, ol ol {
        margin-left: 1.25rem;
        margin-bottom: 0;
    }

dl {
    margin-bottom: 1rem;
}

    dl dt {
        margin-bottom: 0.3rem;
        font-weight: bold;
    }

blockquote {
    margin: 0 0 1rem;
    padding: 0.5625rem 1.25rem 0 1.1875rem;
    border-left: 1px solid #DEDEDE;
}

    blockquote, blockquote p {
        line-height: 1.6;
        color: #AAAAAA;
    }

cite {
    display: block;
    font-size: 0.8125rem;
    color: #AAAAAA;
}

    cite:before {
        content: "— ";
    }

abbr, abbr[title] {
    border-bottom: 1px dotted #0a0a0a;
    cursor: help;
    text-decoration: none;
}

figure {
    margin: 0;
}

code {
    padding: 0.125rem 0.3125rem 0.0625rem;
    border: 1px solid #DEDEDE;
    background-color: #f5f5f5;
    font-family: Consolas, "Liberation Mono", Courier, monospace;
    font-weight: normal;
    color: #0a0a0a;
}

kbd {
    margin: 0;
    padding: 0.125rem 0.25rem 0;
    background-color: #f5f5f5;
    font-family: Consolas, "Liberation Mono", Courier, monospace;
    color: #0a0a0a;
}

.subheader {
    margin-top: 0.2rem;
    margin-bottom: 0.5rem;
    font-weight: normal;
    line-height: 1.4;
    color: #AAAAAA;
}

.lead {
    font-size: 125%;
    line-height: 1.6;
}

.stat {
    font-size: 2.5rem;
    line-height: 1;
}

p + .stat {
    margin-top: -1rem;
}

ul.no-bullet, ol.no-bullet {
    margin-left: 0;
    list-style: none;
}

.text-left {
    text-align: left;
}

.text-right {
    text-align: right;
}

.text-center {
    text-align: center;
}

.text-justify {
    text-align: justify;
}

@media print, screen and (min-width: 40em) {
    .medium-text-left {
        text-align: left;
    }

    .medium-text-right {
        text-align: right;
    }

    .medium-text-center {
        text-align: center;
    }

    .medium-text-justify {
        text-align: justify;
    }
}

@media print, screen and (min-width: 64em) {
    .large-text-left {
        text-align: left;
    }

    .large-text-right {
        text-align: right;
    }

    .large-text-center {
        text-align: center;
    }

    .large-text-justify {
        text-align: justify;
    }
}

.show-for-print {
    display: none !important;
}

@media print {
    * {
        background: transparent !important;
        box-shadow: none !important;
        color: black !important;
        text-shadow: none !important;
    }

    .show-for-print {
        display: block !important;
    }

    .hide-for-print {
        display: none !important;
    }

    table.show-for-print {
        display: table !important;
    }

    thead.show-for-print {
        display: table-header-group !important;
    }

    tbody.show-for-print {
        display: table-row-group !important;
    }

    tr.show-for-print {
        display: table-row !important;
    }

    td.show-for-print {
        display: table-cell !important;
    }

    th.show-for-print {
        display: table-cell !important;
    }

    a, .sub-menu .font--black,
    .copyright .font--black,
    a:visited,
    .sub-menu .font--black:visited,
    .copyright .font--black:visited {
        text-decoration: underline;
    }

        a[href]:after, .sub-menu .font--black[href]:after,
        .copyright .font--black[href]:after {
            content: " (" attr(href) ")";
        }

        .ir a:after, .ir .sub-menu .font--black:after, .sub-menu .ir .font--black:after,
        .ir .copyright .font--black:after, .copyright .ir .font--black:after,
        a[href^='javascript:']:after,
        .sub-menu .font--black[href^='javascript:']:after,
        .copyright .font--black[href^='javascript:']:after,
        a[href^='#']:after,
        .sub-menu .font--black[href^='#']:after,
        .copyright .font--black[href^='#']:after {
            content: '';
        }

    abbr[title]:after {
        content: " (" attr(title) ")";
    }

    pre,
    blockquote {
        border: 1px solid #AAAAAA;
        page-break-inside: avoid;
    }

    thead {
        display: table-header-group;
    }

    tr,
    img {
        page-break-inside: avoid;
    }

    img {
        max-width: 100% !important;
    }

    @page {
        margin: 0.5cm;
    }

    p,
    h2,
    h3 {
        orphans: 3;
        widows: 3;
    }

    h2,
    h3 {
        page-break-after: avoid;
    }

    .print-break-inside {
        page-break-inside: auto;
    }
}

.button, .button--outline-only, #newsletter-signup #mc-embedded-subscribe, .button--text-only {
    display: inline-block;
    vertical-align: middle;
    margin: 0 0 2.5rem 0;
    font-family: inherit;
    padding: 0.85em 1em;
    -webkit-appearance: none;
    border: 1px solid transparent;
    border-radius: 0;
    transition: background-color 0.25s ease-out, color 0.25s ease-out;
    font-size: 0.9rem;
    line-height: 1;
    text-align: center;
    cursor: pointer;
    background-color: #000000;
    color: #fefefe;
}

[data-whatinput='mouse'] .button, [data-whatinput='mouse'] .button--outline-only, [data-whatinput='mouse'] #newsletter-signup #mc-embedded-subscribe, #newsletter-signup [data-whatinput='mouse'] #mc-embedded-subscribe, [data-whatinput='mouse'] .button--text-only {
    outline: 0;
}

.button:hover, .button--outline-only:hover, #newsletter-signup #mc-embedded-subscribe:hover, .button--text-only:hover, .button:focus, .button--outline-only:focus, #newsletter-signup #mc-embedded-subscribe:focus, .button--text-only:focus {
    background-color: black;
    color: #fefefe;
}

.button.tiny, .tiny.button--outline-only, #newsletter-signup .tiny#mc-embedded-subscribe, .tiny.button--text-only {
    font-size: 0.6rem;
}

.button.small, .small.button--outline-only, #newsletter-signup .small#mc-embedded-subscribe, .small.button--text-only {
    font-size: 0.75rem;
}

.button.large, .large.button--outline-only, #newsletter-signup .large#mc-embedded-subscribe, .large.button--text-only {
    font-size: 1.25rem;
}

.button.expanded, .expanded.button--outline-only, #newsletter-signup .expanded#mc-embedded-subscribe, .expanded.button--text-only {
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0;
}

.button.primary, .primary.button--outline-only, #newsletter-signup .primary#mc-embedded-subscribe, .primary.button--text-only {
    background-color: #000000;
    color: #fefefe;
}

    .button.primary:hover, .primary.button--outline-only:hover, #newsletter-signup .primary#mc-embedded-subscribe:hover, .primary.button--text-only:hover, .button.primary:focus, .primary.button--outline-only:focus, #newsletter-signup .primary#mc-embedded-subscribe:focus, .primary.button--text-only:focus {
        background-color: black;
        color: #fefefe;
    }

.button.secondary, .secondary.button--outline-only, #newsletter-signup .secondary#mc-embedded-subscribe, .secondary.button--text-only {
    background-color: #ffffff;
    color: #0a0a0a;
}

    .button.secondary:hover, .secondary.button--outline-only:hover, #newsletter-signup .secondary#mc-embedded-subscribe:hover, .secondary.button--text-only:hover, .button.secondary:focus, .secondary.button--outline-only:focus, #newsletter-signup .secondary#mc-embedded-subscribe:focus, .secondary.button--text-only:focus {
        background-color: #cccccc;
        color: #0a0a0a;
    }

.button.success, .success.button--outline-only, #newsletter-signup .success#mc-embedded-subscribe, .success.button--text-only {
    background-color: #3adb76;
    color: #0a0a0a;
}

    .button.success:hover, .success.button--outline-only:hover, #newsletter-signup .success#mc-embedded-subscribe:hover, .success.button--text-only:hover, .button.success:focus, .success.button--outline-only:focus, #newsletter-signup .success#mc-embedded-subscribe:focus, .success.button--text-only:focus {
        background-color: #22bb5b;
        color: #0a0a0a;
    }

.button.warning, .warning.button--outline-only, #newsletter-signup .warning#mc-embedded-subscribe, .warning.button--text-only {
    background-color: #ffae00;
    color: #0a0a0a;
}

    .button.warning:hover, .warning.button--outline-only:hover, #newsletter-signup .warning#mc-embedded-subscribe:hover, .warning.button--text-only:hover, .button.warning:focus, .warning.button--outline-only:focus, #newsletter-signup .warning#mc-embedded-subscribe:focus, .warning.button--text-only:focus {
        background-color: #cc8b00;
        color: #0a0a0a;
    }

.button.alert, .alert.button--outline-only, #newsletter-signup .alert#mc-embedded-subscribe, .alert.button--text-only {
    background-color: #cc4b37;
    color: #fefefe;
}

    .button.alert:hover, .alert.button--outline-only:hover, #newsletter-signup .alert#mc-embedded-subscribe:hover, .alert.button--text-only:hover, .button.alert:focus, .alert.button--outline-only:focus, #newsletter-signup .alert#mc-embedded-subscribe:focus, .alert.button--text-only:focus {
        background-color: #a53b2a;
        color: #fefefe;
    }

.button.disabled, .disabled.button--outline-only, #newsletter-signup .disabled#mc-embedded-subscribe, .disabled.button--text-only, .button[disabled], .button--outline-only[disabled], #newsletter-signup #mc-embedded-subscribe[disabled], .button--text-only[disabled] {
    opacity: 0.25;
    cursor: not-allowed;
}

    .button.disabled, .disabled.button--outline-only, #newsletter-signup .disabled#mc-embedded-subscribe, .disabled.button--text-only, .button.disabled:hover, .disabled.button--outline-only:hover, #newsletter-signup .disabled#mc-embedded-subscribe:hover, .disabled.button--text-only:hover, .button.disabled:focus, .disabled.button--outline-only:focus, #newsletter-signup .disabled#mc-embedded-subscribe:focus, .disabled.button--text-only:focus, .button[disabled], .button--outline-only[disabled], #newsletter-signup #mc-embedded-subscribe[disabled], .button--text-only[disabled], .button[disabled]:hover, .button--outline-only[disabled]:hover, #newsletter-signup #mc-embedded-subscribe[disabled]:hover, .button--text-only[disabled]:hover, .button[disabled]:focus, .button--outline-only[disabled]:focus, #newsletter-signup #mc-embedded-subscribe[disabled]:focus, .button--text-only[disabled]:focus {
        background-color: #000000;
        color: #fefefe;
    }

        .button.disabled.primary, .disabled.primary.button--outline-only, #newsletter-signup .disabled.primary#mc-embedded-subscribe, .disabled.primary.button--text-only, .button[disabled].primary, .button--outline-only[disabled].primary, #newsletter-signup #mc-embedded-subscribe[disabled].primary, .button--text-only[disabled].primary {
            opacity: 0.25;
            cursor: not-allowed;
        }

            .button.disabled.primary, .disabled.primary.button--outline-only, #newsletter-signup .disabled.primary#mc-embedded-subscribe, .disabled.primary.button--text-only, .button.disabled.primary:hover, .disabled.primary.button--outline-only:hover, #newsletter-signup .disabled.primary#mc-embedded-subscribe:hover, .disabled.primary.button--text-only:hover, .button.disabled.primary:focus, .disabled.primary.button--outline-only:focus, #newsletter-signup .disabled.primary#mc-embedded-subscribe:focus, .disabled.primary.button--text-only:focus, .button[disabled].primary, .button--outline-only[disabled].primary, #newsletter-signup #mc-embedded-subscribe[disabled].primary, .button--text-only[disabled].primary, .button[disabled].primary:hover, .button--outline-only[disabled].primary:hover, #newsletter-signup #mc-embedded-subscribe[disabled].primary:hover, .button--text-only[disabled].primary:hover, .button[disabled].primary:focus, .button--outline-only[disabled].primary:focus, #newsletter-signup #mc-embedded-subscribe[disabled].primary:focus, .button--text-only[disabled].primary:focus {
                background-color: #000000;
                color: #fefefe;
            }

        .button.disabled.secondary, .disabled.secondary.button--outline-only, #newsletter-signup .disabled.secondary#mc-embedded-subscribe, .disabled.secondary.button--text-only, .button[disabled].secondary, .button--outline-only[disabled].secondary, #newsletter-signup #mc-embedded-subscribe[disabled].secondary, .button--text-only[disabled].secondary {
            opacity: 0.25;
            cursor: not-allowed;
        }

            .button.disabled.secondary, .disabled.secondary.button--outline-only, #newsletter-signup .disabled.secondary#mc-embedded-subscribe, .disabled.secondary.button--text-only, .button.disabled.secondary:hover, .disabled.secondary.button--outline-only:hover, #newsletter-signup .disabled.secondary#mc-embedded-subscribe:hover, .disabled.secondary.button--text-only:hover, .button.disabled.secondary:focus, .disabled.secondary.button--outline-only:focus, #newsletter-signup .disabled.secondary#mc-embedded-subscribe:focus, .disabled.secondary.button--text-only:focus, .button[disabled].secondary, .button--outline-only[disabled].secondary, #newsletter-signup #mc-embedded-subscribe[disabled].secondary, .button--text-only[disabled].secondary, .button[disabled].secondary:hover, .button--outline-only[disabled].secondary:hover, #newsletter-signup #mc-embedded-subscribe[disabled].secondary:hover, .button--text-only[disabled].secondary:hover, .button[disabled].secondary:focus, .button--outline-only[disabled].secondary:focus, #newsletter-signup #mc-embedded-subscribe[disabled].secondary:focus, .button--text-only[disabled].secondary:focus {
                background-color: #ffffff;
                color: #0a0a0a;
            }

        .button.disabled.success, .disabled.success.button--outline-only, #newsletter-signup .disabled.success#mc-embedded-subscribe, .disabled.success.button--text-only, .button[disabled].success, .button--outline-only[disabled].success, #newsletter-signup #mc-embedded-subscribe[disabled].success, .button--text-only[disabled].success {
            opacity: 0.25;
            cursor: not-allowed;
        }

            .button.disabled.success, .disabled.success.button--outline-only, #newsletter-signup .disabled.success#mc-embedded-subscribe, .disabled.success.button--text-only, .button.disabled.success:hover, .disabled.success.button--outline-only:hover, #newsletter-signup .disabled.success#mc-embedded-subscribe:hover, .disabled.success.button--text-only:hover, .button.disabled.success:focus, .disabled.success.button--outline-only:focus, #newsletter-signup .disabled.success#mc-embedded-subscribe:focus, .disabled.success.button--text-only:focus, .button[disabled].success, .button--outline-only[disabled].success, #newsletter-signup #mc-embedded-subscribe[disabled].success, .button--text-only[disabled].success, .button[disabled].success:hover, .button--outline-only[disabled].success:hover, #newsletter-signup #mc-embedded-subscribe[disabled].success:hover, .button--text-only[disabled].success:hover, .button[disabled].success:focus, .button--outline-only[disabled].success:focus, #newsletter-signup #mc-embedded-subscribe[disabled].success:focus, .button--text-only[disabled].success:focus {
                background-color: #3adb76;
                color: #0a0a0a;
            }

        .button.disabled.warning, .disabled.warning.button--outline-only, #newsletter-signup .disabled.warning#mc-embedded-subscribe, .disabled.warning.button--text-only, .button[disabled].warning, .button--outline-only[disabled].warning, #newsletter-signup #mc-embedded-subscribe[disabled].warning, .button--text-only[disabled].warning {
            opacity: 0.25;
            cursor: not-allowed;
        }

            .button.disabled.warning, .disabled.warning.button--outline-only, #newsletter-signup .disabled.warning#mc-embedded-subscribe, .disabled.warning.button--text-only, .button.disabled.warning:hover, .disabled.warning.button--outline-only:hover, #newsletter-signup .disabled.warning#mc-embedded-subscribe:hover, .disabled.warning.button--text-only:hover, .button.disabled.warning:focus, .disabled.warning.button--outline-only:focus, #newsletter-signup .disabled.warning#mc-embedded-subscribe:focus, .disabled.warning.button--text-only:focus, .button[disabled].warning, .button--outline-only[disabled].warning, #newsletter-signup #mc-embedded-subscribe[disabled].warning, .button--text-only[disabled].warning, .button[disabled].warning:hover, .button--outline-only[disabled].warning:hover, #newsletter-signup #mc-embedded-subscribe[disabled].warning:hover, .button--text-only[disabled].warning:hover, .button[disabled].warning:focus, .button--outline-only[disabled].warning:focus, #newsletter-signup #mc-embedded-subscribe[disabled].warning:focus, .button--text-only[disabled].warning:focus {
                background-color: #ffae00;
                color: #0a0a0a;
            }

        .button.disabled.alert, .disabled.alert.button--outline-only, #newsletter-signup .disabled.alert#mc-embedded-subscribe, .disabled.alert.button--text-only, .button[disabled].alert, .button--outline-only[disabled].alert, #newsletter-signup #mc-embedded-subscribe[disabled].alert, .button--text-only[disabled].alert {
            opacity: 0.25;
            cursor: not-allowed;
        }

            .button.disabled.alert, .disabled.alert.button--outline-only, #newsletter-signup .disabled.alert#mc-embedded-subscribe, .disabled.alert.button--text-only, .button.disabled.alert:hover, .disabled.alert.button--outline-only:hover, #newsletter-signup .disabled.alert#mc-embedded-subscribe:hover, .disabled.alert.button--text-only:hover, .button.disabled.alert:focus, .disabled.alert.button--outline-only:focus, #newsletter-signup .disabled.alert#mc-embedded-subscribe:focus, .disabled.alert.button--text-only:focus, .button[disabled].alert, .button--outline-only[disabled].alert, #newsletter-signup #mc-embedded-subscribe[disabled].alert, .button--text-only[disabled].alert, .button[disabled].alert:hover, .button--outline-only[disabled].alert:hover, #newsletter-signup #mc-embedded-subscribe[disabled].alert:hover, .button--text-only[disabled].alert:hover, .button[disabled].alert:focus, .button--outline-only[disabled].alert:focus, #newsletter-signup #mc-embedded-subscribe[disabled].alert:focus, .button--text-only[disabled].alert:focus {
                background-color: #cc4b37;
                color: #fefefe;
            }

.button.hollow, .hollow.button--outline-only, #newsletter-signup .hollow#mc-embedded-subscribe, .hollow.button--text-only {
    border: 1px solid #000000;
    color: #000000;
}

    .button.hollow, .hollow.button--outline-only, #newsletter-signup .hollow#mc-embedded-subscribe, .hollow.button--text-only, .button.hollow:hover, .hollow.button--outline-only:hover, #newsletter-signup .hollow#mc-embedded-subscribe:hover, .hollow.button--text-only:hover, .button.hollow:focus, .hollow.button--outline-only:focus, #newsletter-signup .hollow#mc-embedded-subscribe:focus, .hollow.button--text-only:focus {
        background-color: transparent;
    }

        .button.hollow.disabled, .hollow.disabled.button--outline-only, #newsletter-signup .hollow.disabled#mc-embedded-subscribe, .hollow.disabled.button--text-only, .button.hollow.disabled:hover, .hollow.disabled.button--outline-only:hover, #newsletter-signup .hollow.disabled#mc-embedded-subscribe:hover, .hollow.disabled.button--text-only:hover, .button.hollow.disabled:focus, .hollow.disabled.button--outline-only:focus, #newsletter-signup .hollow.disabled#mc-embedded-subscribe:focus, .hollow.disabled.button--text-only:focus, .button.hollow[disabled], .hollow.button--outline-only[disabled], #newsletter-signup .hollow#mc-embedded-subscribe[disabled], .hollow.button--text-only[disabled], .button.hollow[disabled]:hover, .hollow.button--outline-only[disabled]:hover, #newsletter-signup .hollow#mc-embedded-subscribe[disabled]:hover, .hollow.button--text-only[disabled]:hover, .button.hollow[disabled]:focus, .hollow.button--outline-only[disabled]:focus, #newsletter-signup .hollow#mc-embedded-subscribe[disabled]:focus, .hollow.button--text-only[disabled]:focus {
            background-color: transparent;
        }

        .button.hollow:hover, .hollow.button--outline-only:hover, #newsletter-signup .hollow#mc-embedded-subscribe:hover, .hollow.button--text-only:hover, .button.hollow:focus, .hollow.button--outline-only:focus, #newsletter-signup .hollow#mc-embedded-subscribe:focus, .hollow.button--text-only:focus {
            border-color: black;
            color: black;
        }

            .button.hollow:hover.disabled, .hollow.button--outline-only:hover.disabled, #newsletter-signup .hollow#mc-embedded-subscribe:hover.disabled, .hollow.button--text-only:hover.disabled, .button.hollow:hover[disabled], .hollow.button--outline-only:hover[disabled], #newsletter-signup .hollow#mc-embedded-subscribe:hover[disabled], .hollow.button--text-only:hover[disabled], .button.hollow:focus.disabled, .hollow.button--outline-only:focus.disabled, #newsletter-signup .hollow#mc-embedded-subscribe:focus.disabled, .hollow.button--text-only:focus.disabled, .button.hollow:focus[disabled], .hollow.button--outline-only:focus[disabled], #newsletter-signup .hollow#mc-embedded-subscribe:focus[disabled], .hollow.button--text-only:focus[disabled] {
                border: 1px solid #000000;
                color: #000000;
            }

        .button.hollow.primary, .hollow.primary.button--outline-only, #newsletter-signup .hollow.primary#mc-embedded-subscribe, .hollow.primary.button--text-only {
            border: 1px solid #000000;
            color: #000000;
        }

            .button.hollow.primary:hover, .hollow.primary.button--outline-only:hover, #newsletter-signup .hollow.primary#mc-embedded-subscribe:hover, .hollow.primary.button--text-only:hover, .button.hollow.primary:focus, .hollow.primary.button--outline-only:focus, #newsletter-signup .hollow.primary#mc-embedded-subscribe:focus, .hollow.primary.button--text-only:focus {
                border-color: black;
                color: black;
            }

                .button.hollow.primary:hover.disabled, .hollow.primary.button--outline-only:hover.disabled, #newsletter-signup .hollow.primary#mc-embedded-subscribe:hover.disabled, .hollow.primary.button--text-only:hover.disabled, .button.hollow.primary:hover[disabled], .hollow.primary.button--outline-only:hover[disabled], #newsletter-signup .hollow.primary#mc-embedded-subscribe:hover[disabled], .hollow.primary.button--text-only:hover[disabled], .button.hollow.primary:focus.disabled, .hollow.primary.button--outline-only:focus.disabled, #newsletter-signup .hollow.primary#mc-embedded-subscribe:focus.disabled, .hollow.primary.button--text-only:focus.disabled, .button.hollow.primary:focus[disabled], .hollow.primary.button--outline-only:focus[disabled], #newsletter-signup .hollow.primary#mc-embedded-subscribe:focus[disabled], .hollow.primary.button--text-only:focus[disabled] {
                    border: 1px solid #000000;
                    color: #000000;
                }

        .button.hollow.secondary, .hollow.secondary.button--outline-only, #newsletter-signup .hollow.secondary#mc-embedded-subscribe, .hollow.secondary.button--text-only {
            border: 1px solid #ffffff;
            color: #ffffff;
        }

            .button.hollow.secondary:hover, .hollow.secondary.button--outline-only:hover, #newsletter-signup .hollow.secondary#mc-embedded-subscribe:hover, .hollow.secondary.button--text-only:hover, .button.hollow.secondary:focus, .hollow.secondary.button--outline-only:focus, #newsletter-signup .hollow.secondary#mc-embedded-subscribe:focus, .hollow.secondary.button--text-only:focus {
                border-color: gray;
                color: gray;
            }

                .button.hollow.secondary:hover.disabled, .hollow.secondary.button--outline-only:hover.disabled, #newsletter-signup .hollow.secondary#mc-embedded-subscribe:hover.disabled, .hollow.secondary.button--text-only:hover.disabled, .button.hollow.secondary:hover[disabled], .hollow.secondary.button--outline-only:hover[disabled], #newsletter-signup .hollow.secondary#mc-embedded-subscribe:hover[disabled], .hollow.secondary.button--text-only:hover[disabled], .button.hollow.secondary:focus.disabled, .hollow.secondary.button--outline-only:focus.disabled, #newsletter-signup .hollow.secondary#mc-embedded-subscribe:focus.disabled, .hollow.secondary.button--text-only:focus.disabled, .button.hollow.secondary:focus[disabled], .hollow.secondary.button--outline-only:focus[disabled], #newsletter-signup .hollow.secondary#mc-embedded-subscribe:focus[disabled], .hollow.secondary.button--text-only:focus[disabled] {
                    border: 1px solid #ffffff;
                    color: #ffffff;
                }

        .button.hollow.success, .hollow.success.button--outline-only, #newsletter-signup .hollow.success#mc-embedded-subscribe, .hollow.success.button--text-only {
            border: 1px solid #3adb76;
            color: #3adb76;
        }

            .button.hollow.success:hover, .hollow.success.button--outline-only:hover, #newsletter-signup .hollow.success#mc-embedded-subscribe:hover, .hollow.success.button--text-only:hover, .button.hollow.success:focus, .hollow.success.button--outline-only:focus, #newsletter-signup .hollow.success#mc-embedded-subscribe:focus, .hollow.success.button--text-only:focus {
                border-color: #157539;
                color: #157539;
            }

                .button.hollow.success:hover.disabled, .hollow.success.button--outline-only:hover.disabled, #newsletter-signup .hollow.success#mc-embedded-subscribe:hover.disabled, .hollow.success.button--text-only:hover.disabled, .button.hollow.success:hover[disabled], .hollow.success.button--outline-only:hover[disabled], #newsletter-signup .hollow.success#mc-embedded-subscribe:hover[disabled], .hollow.success.button--text-only:hover[disabled], .button.hollow.success:focus.disabled, .hollow.success.button--outline-only:focus.disabled, #newsletter-signup .hollow.success#mc-embedded-subscribe:focus.disabled, .hollow.success.button--text-only:focus.disabled, .button.hollow.success:focus[disabled], .hollow.success.button--outline-only:focus[disabled], #newsletter-signup .hollow.success#mc-embedded-subscribe:focus[disabled], .hollow.success.button--text-only:focus[disabled] {
                    border: 1px solid #3adb76;
                    color: #3adb76;
                }

        .button.hollow.warning, .hollow.warning.button--outline-only, #newsletter-signup .hollow.warning#mc-embedded-subscribe, .hollow.warning.button--text-only {
            border: 1px solid #ffae00;
            color: #ffae00;
        }

            .button.hollow.warning:hover, .hollow.warning.button--outline-only:hover, #newsletter-signup .hollow.warning#mc-embedded-subscribe:hover, .hollow.warning.button--text-only:hover, .button.hollow.warning:focus, .hollow.warning.button--outline-only:focus, #newsletter-signup .hollow.warning#mc-embedded-subscribe:focus, .hollow.warning.button--text-only:focus {
                border-color: #805700;
                color: #805700;
            }

                .button.hollow.warning:hover.disabled, .hollow.warning.button--outline-only:hover.disabled, #newsletter-signup .hollow.warning#mc-embedded-subscribe:hover.disabled, .hollow.warning.button--text-only:hover.disabled, .button.hollow.warning:hover[disabled], .hollow.warning.button--outline-only:hover[disabled], #newsletter-signup .hollow.warning#mc-embedded-subscribe:hover[disabled], .hollow.warning.button--text-only:hover[disabled], .button.hollow.warning:focus.disabled, .hollow.warning.button--outline-only:focus.disabled, #newsletter-signup .hollow.warning#mc-embedded-subscribe:focus.disabled, .hollow.warning.button--text-only:focus.disabled, .button.hollow.warning:focus[disabled], .hollow.warning.button--outline-only:focus[disabled], #newsletter-signup .hollow.warning#mc-embedded-subscribe:focus[disabled], .hollow.warning.button--text-only:focus[disabled] {
                    border: 1px solid #ffae00;
                    color: #ffae00;
                }

        .button.hollow.alert, .hollow.alert.button--outline-only, #newsletter-signup .hollow.alert#mc-embedded-subscribe, .hollow.alert.button--text-only {
            border: 1px solid #cc4b37;
            color: #cc4b37;
        }

            .button.hollow.alert:hover, .hollow.alert.button--outline-only:hover, #newsletter-signup .hollow.alert#mc-embedded-subscribe:hover, .hollow.alert.button--text-only:hover, .button.hollow.alert:focus, .hollow.alert.button--outline-only:focus, #newsletter-signup .hollow.alert#mc-embedded-subscribe:focus, .hollow.alert.button--text-only:focus {
                border-color: #67251a;
                color: #67251a;
            }

                .button.hollow.alert:hover.disabled, .hollow.alert.button--outline-only:hover.disabled, #newsletter-signup .hollow.alert#mc-embedded-subscribe:hover.disabled, .hollow.alert.button--text-only:hover.disabled, .button.hollow.alert:hover[disabled], .hollow.alert.button--outline-only:hover[disabled], #newsletter-signup .hollow.alert#mc-embedded-subscribe:hover[disabled], .hollow.alert.button--text-only:hover[disabled], .button.hollow.alert:focus.disabled, .hollow.alert.button--outline-only:focus.disabled, #newsletter-signup .hollow.alert#mc-embedded-subscribe:focus.disabled, .hollow.alert.button--text-only:focus.disabled, .button.hollow.alert:focus[disabled], .hollow.alert.button--outline-only:focus[disabled], #newsletter-signup .hollow.alert#mc-embedded-subscribe:focus[disabled], .hollow.alert.button--text-only:focus[disabled] {
                    border: 1px solid #cc4b37;
                    color: #cc4b37;
                }

.button.clear, .clear.button--outline-only, #newsletter-signup .clear#mc-embedded-subscribe, .clear.button--text-only {
    border: 1px solid #000000;
    color: #000000;
}

    .button.clear, .clear.button--outline-only, #newsletter-signup .clear#mc-embedded-subscribe, .clear.button--text-only, .button.clear:hover, .clear.button--outline-only:hover, #newsletter-signup .clear#mc-embedded-subscribe:hover, .clear.button--text-only:hover, .button.clear:focus, .clear.button--outline-only:focus, #newsletter-signup .clear#mc-embedded-subscribe:focus, .clear.button--text-only:focus {
        background-color: transparent;
    }

        .button.clear.disabled, .clear.disabled.button--outline-only, #newsletter-signup .clear.disabled#mc-embedded-subscribe, .clear.disabled.button--text-only, .button.clear.disabled:hover, .clear.disabled.button--outline-only:hover, #newsletter-signup .clear.disabled#mc-embedded-subscribe:hover, .clear.disabled.button--text-only:hover, .button.clear.disabled:focus, .clear.disabled.button--outline-only:focus, #newsletter-signup .clear.disabled#mc-embedded-subscribe:focus, .clear.disabled.button--text-only:focus, .button.clear[disabled], .clear.button--outline-only[disabled], #newsletter-signup .clear#mc-embedded-subscribe[disabled], .clear.button--text-only[disabled], .button.clear[disabled]:hover, .clear.button--outline-only[disabled]:hover, #newsletter-signup .clear#mc-embedded-subscribe[disabled]:hover, .clear.button--text-only[disabled]:hover, .button.clear[disabled]:focus, .clear.button--outline-only[disabled]:focus, #newsletter-signup .clear#mc-embedded-subscribe[disabled]:focus, .clear.button--text-only[disabled]:focus {
            background-color: transparent;
        }

        .button.clear:hover, .clear.button--outline-only:hover, #newsletter-signup .clear#mc-embedded-subscribe:hover, .clear.button--text-only:hover, .button.clear:focus, .clear.button--outline-only:focus, #newsletter-signup .clear#mc-embedded-subscribe:focus, .clear.button--text-only:focus {
            border-color: black;
            color: black;
        }

            .button.clear:hover.disabled, .clear.button--outline-only:hover.disabled, #newsletter-signup .clear#mc-embedded-subscribe:hover.disabled, .clear.button--text-only:hover.disabled, .button.clear:hover[disabled], .clear.button--outline-only:hover[disabled], #newsletter-signup .clear#mc-embedded-subscribe:hover[disabled], .clear.button--text-only:hover[disabled], .button.clear:focus.disabled, .clear.button--outline-only:focus.disabled, #newsletter-signup .clear#mc-embedded-subscribe:focus.disabled, .clear.button--text-only:focus.disabled, .button.clear:focus[disabled], .clear.button--outline-only:focus[disabled], #newsletter-signup .clear#mc-embedded-subscribe:focus[disabled], .clear.button--text-only:focus[disabled] {
                border: 1px solid #000000;
                color: #000000;
            }

            .button.clear, .clear.button--outline-only, #newsletter-signup .clear#mc-embedded-subscribe, .clear.button--text-only, .button.clear.disabled, .clear.disabled.button--outline-only, #newsletter-signup .clear.disabled#mc-embedded-subscribe, .clear.disabled.button--text-only, .button.clear[disabled], .clear.button--outline-only[disabled], #newsletter-signup .clear#mc-embedded-subscribe[disabled], .clear.button--text-only[disabled], .button.clear:hover, .clear.button--outline-only:hover, #newsletter-signup .clear#mc-embedded-subscribe:hover, .clear.button--text-only:hover, .button.clear:hover.disabled, .clear.button--outline-only:hover.disabled, #newsletter-signup .clear#mc-embedded-subscribe:hover.disabled, .clear.button--text-only:hover.disabled, .button.clear:hover[disabled], .clear.button--outline-only:hover[disabled], #newsletter-signup .clear#mc-embedded-subscribe:hover[disabled], .clear.button--text-only:hover[disabled], .button.clear:focus, .clear.button--outline-only:focus, #newsletter-signup .clear#mc-embedded-subscribe:focus, .clear.button--text-only:focus, .button.clear:focus.disabled, .clear.button--outline-only:focus.disabled, #newsletter-signup .clear#mc-embedded-subscribe:focus.disabled, .clear.button--text-only:focus.disabled, .button.clear:focus[disabled], .clear.button--outline-only:focus[disabled], #newsletter-signup .clear#mc-embedded-subscribe:focus[disabled], .clear.button--text-only:focus[disabled] {
                border-color: transparent;
            }

                .button.clear.primary, .clear.primary.button--outline-only, #newsletter-signup .clear.primary#mc-embedded-subscribe, .clear.primary.button--text-only {
                    border: 1px solid #000000;
                    color: #000000;
                }

                    .button.clear.primary:hover, .clear.primary.button--outline-only:hover, #newsletter-signup .clear.primary#mc-embedded-subscribe:hover, .clear.primary.button--text-only:hover, .button.clear.primary:focus, .clear.primary.button--outline-only:focus, #newsletter-signup .clear.primary#mc-embedded-subscribe:focus, .clear.primary.button--text-only:focus {
                        border-color: black;
                        color: black;
                    }

                        .button.clear.primary:hover.disabled, .clear.primary.button--outline-only:hover.disabled, #newsletter-signup .clear.primary#mc-embedded-subscribe:hover.disabled, .clear.primary.button--text-only:hover.disabled, .button.clear.primary:hover[disabled], .clear.primary.button--outline-only:hover[disabled], #newsletter-signup .clear.primary#mc-embedded-subscribe:hover[disabled], .clear.primary.button--text-only:hover[disabled], .button.clear.primary:focus.disabled, .clear.primary.button--outline-only:focus.disabled, #newsletter-signup .clear.primary#mc-embedded-subscribe:focus.disabled, .clear.primary.button--text-only:focus.disabled, .button.clear.primary:focus[disabled], .clear.primary.button--outline-only:focus[disabled], #newsletter-signup .clear.primary#mc-embedded-subscribe:focus[disabled], .clear.primary.button--text-only:focus[disabled] {
                            border: 1px solid #000000;
                            color: #000000;
                        }

                        .button.clear.primary, .clear.primary.button--outline-only, #newsletter-signup .clear.primary#mc-embedded-subscribe, .clear.primary.button--text-only, .button.clear.primary.disabled, .clear.primary.disabled.button--outline-only, #newsletter-signup .clear.primary.disabled#mc-embedded-subscribe, .clear.primary.disabled.button--text-only, .button.clear.primary[disabled], .clear.primary.button--outline-only[disabled], #newsletter-signup .clear.primary#mc-embedded-subscribe[disabled], .clear.primary.button--text-only[disabled], .button.clear.primary:hover, .clear.primary.button--outline-only:hover, #newsletter-signup .clear.primary#mc-embedded-subscribe:hover, .clear.primary.button--text-only:hover, .button.clear.primary:hover.disabled, .clear.primary.button--outline-only:hover.disabled, #newsletter-signup .clear.primary#mc-embedded-subscribe:hover.disabled, .clear.primary.button--text-only:hover.disabled, .button.clear.primary:hover[disabled], .clear.primary.button--outline-only:hover[disabled], #newsletter-signup .clear.primary#mc-embedded-subscribe:hover[disabled], .clear.primary.button--text-only:hover[disabled], .button.clear.primary:focus, .clear.primary.button--outline-only:focus, #newsletter-signup .clear.primary#mc-embedded-subscribe:focus, .clear.primary.button--text-only:focus, .button.clear.primary:focus.disabled, .clear.primary.button--outline-only:focus.disabled, #newsletter-signup .clear.primary#mc-embedded-subscribe:focus.disabled, .clear.primary.button--text-only:focus.disabled, .button.clear.primary:focus[disabled], .clear.primary.button--outline-only:focus[disabled], #newsletter-signup .clear.primary#mc-embedded-subscribe:focus[disabled], .clear.primary.button--text-only:focus[disabled] {
                            border-color: transparent;
                        }

                .button.clear.secondary, .clear.secondary.button--outline-only, #newsletter-signup .clear.secondary#mc-embedded-subscribe, .clear.secondary.button--text-only {
                    border: 1px solid #ffffff;
                    color: #ffffff;
                }

                    .button.clear.secondary:hover, .clear.secondary.button--outline-only:hover, #newsletter-signup .clear.secondary#mc-embedded-subscribe:hover, .clear.secondary.button--text-only:hover, .button.clear.secondary:focus, .clear.secondary.button--outline-only:focus, #newsletter-signup .clear.secondary#mc-embedded-subscribe:focus, .clear.secondary.button--text-only:focus {
                        border-color: gray;
                        color: gray;
                    }

                        .button.clear.secondary:hover.disabled, .clear.secondary.button--outline-only:hover.disabled, #newsletter-signup .clear.secondary#mc-embedded-subscribe:hover.disabled, .clear.secondary.button--text-only:hover.disabled, .button.clear.secondary:hover[disabled], .clear.secondary.button--outline-only:hover[disabled], #newsletter-signup .clear.secondary#mc-embedded-subscribe:hover[disabled], .clear.secondary.button--text-only:hover[disabled], .button.clear.secondary:focus.disabled, .clear.secondary.button--outline-only:focus.disabled, #newsletter-signup .clear.secondary#mc-embedded-subscribe:focus.disabled, .clear.secondary.button--text-only:focus.disabled, .button.clear.secondary:focus[disabled], .clear.secondary.button--outline-only:focus[disabled], #newsletter-signup .clear.secondary#mc-embedded-subscribe:focus[disabled], .clear.secondary.button--text-only:focus[disabled] {
                            border: 1px solid #ffffff;
                            color: #ffffff;
                        }

                        .button.clear.secondary, .clear.secondary.button--outline-only, #newsletter-signup .clear.secondary#mc-embedded-subscribe, .clear.secondary.button--text-only, .button.clear.secondary.disabled, .clear.secondary.disabled.button--outline-only, #newsletter-signup .clear.secondary.disabled#mc-embedded-subscribe, .clear.secondary.disabled.button--text-only, .button.clear.secondary[disabled], .clear.secondary.button--outline-only[disabled], #newsletter-signup .clear.secondary#mc-embedded-subscribe[disabled], .clear.secondary.button--text-only[disabled], .button.clear.secondary:hover, .clear.secondary.button--outline-only:hover, #newsletter-signup .clear.secondary#mc-embedded-subscribe:hover, .clear.secondary.button--text-only:hover, .button.clear.secondary:hover.disabled, .clear.secondary.button--outline-only:hover.disabled, #newsletter-signup .clear.secondary#mc-embedded-subscribe:hover.disabled, .clear.secondary.button--text-only:hover.disabled, .button.clear.secondary:hover[disabled], .clear.secondary.button--outline-only:hover[disabled], #newsletter-signup .clear.secondary#mc-embedded-subscribe:hover[disabled], .clear.secondary.button--text-only:hover[disabled], .button.clear.secondary:focus, .clear.secondary.button--outline-only:focus, #newsletter-signup .clear.secondary#mc-embedded-subscribe:focus, .clear.secondary.button--text-only:focus, .button.clear.secondary:focus.disabled, .clear.secondary.button--outline-only:focus.disabled, #newsletter-signup .clear.secondary#mc-embedded-subscribe:focus.disabled, .clear.secondary.button--text-only:focus.disabled, .button.clear.secondary:focus[disabled], .clear.secondary.button--outline-only:focus[disabled], #newsletter-signup .clear.secondary#mc-embedded-subscribe:focus[disabled], .clear.secondary.button--text-only:focus[disabled] {
                            border-color: transparent;
                        }

                .button.clear.success, .clear.success.button--outline-only, #newsletter-signup .clear.success#mc-embedded-subscribe, .clear.success.button--text-only {
                    border: 1px solid #3adb76;
                    color: #3adb76;
                }

                    .button.clear.success:hover, .clear.success.button--outline-only:hover, #newsletter-signup .clear.success#mc-embedded-subscribe:hover, .clear.success.button--text-only:hover, .button.clear.success:focus, .clear.success.button--outline-only:focus, #newsletter-signup .clear.success#mc-embedded-subscribe:focus, .clear.success.button--text-only:focus {
                        border-color: #157539;
                        color: #157539;
                    }

                        .button.clear.success:hover.disabled, .clear.success.button--outline-only:hover.disabled, #newsletter-signup .clear.success#mc-embedded-subscribe:hover.disabled, .clear.success.button--text-only:hover.disabled, .button.clear.success:hover[disabled], .clear.success.button--outline-only:hover[disabled], #newsletter-signup .clear.success#mc-embedded-subscribe:hover[disabled], .clear.success.button--text-only:hover[disabled], .button.clear.success:focus.disabled, .clear.success.button--outline-only:focus.disabled, #newsletter-signup .clear.success#mc-embedded-subscribe:focus.disabled, .clear.success.button--text-only:focus.disabled, .button.clear.success:focus[disabled], .clear.success.button--outline-only:focus[disabled], #newsletter-signup .clear.success#mc-embedded-subscribe:focus[disabled], .clear.success.button--text-only:focus[disabled] {
                            border: 1px solid #3adb76;
                            color: #3adb76;
                        }

                        .button.clear.success, .clear.success.button--outline-only, #newsletter-signup .clear.success#mc-embedded-subscribe, .clear.success.button--text-only, .button.clear.success.disabled, .clear.success.disabled.button--outline-only, #newsletter-signup .clear.success.disabled#mc-embedded-subscribe, .clear.success.disabled.button--text-only, .button.clear.success[disabled], .clear.success.button--outline-only[disabled], #newsletter-signup .clear.success#mc-embedded-subscribe[disabled], .clear.success.button--text-only[disabled], .button.clear.success:hover, .clear.success.button--outline-only:hover, #newsletter-signup .clear.success#mc-embedded-subscribe:hover, .clear.success.button--text-only:hover, .button.clear.success:hover.disabled, .clear.success.button--outline-only:hover.disabled, #newsletter-signup .clear.success#mc-embedded-subscribe:hover.disabled, .clear.success.button--text-only:hover.disabled, .button.clear.success:hover[disabled], .clear.success.button--outline-only:hover[disabled], #newsletter-signup .clear.success#mc-embedded-subscribe:hover[disabled], .clear.success.button--text-only:hover[disabled], .button.clear.success:focus, .clear.success.button--outline-only:focus, #newsletter-signup .clear.success#mc-embedded-subscribe:focus, .clear.success.button--text-only:focus, .button.clear.success:focus.disabled, .clear.success.button--outline-only:focus.disabled, #newsletter-signup .clear.success#mc-embedded-subscribe:focus.disabled, .clear.success.button--text-only:focus.disabled, .button.clear.success:focus[disabled], .clear.success.button--outline-only:focus[disabled], #newsletter-signup .clear.success#mc-embedded-subscribe:focus[disabled], .clear.success.button--text-only:focus[disabled] {
                            border-color: transparent;
                        }

                .button.clear.warning, .clear.warning.button--outline-only, #newsletter-signup .clear.warning#mc-embedded-subscribe, .clear.warning.button--text-only {
                    border: 1px solid #ffae00;
                    color: #ffae00;
                }

                    .button.clear.warning:hover, .clear.warning.button--outline-only:hover, #newsletter-signup .clear.warning#mc-embedded-subscribe:hover, .clear.warning.button--text-only:hover, .button.clear.warning:focus, .clear.warning.button--outline-only:focus, #newsletter-signup .clear.warning#mc-embedded-subscribe:focus, .clear.warning.button--text-only:focus {
                        border-color: #805700;
                        color: #805700;
                    }

                        .button.clear.warning:hover.disabled, .clear.warning.button--outline-only:hover.disabled, #newsletter-signup .clear.warning#mc-embedded-subscribe:hover.disabled, .clear.warning.button--text-only:hover.disabled, .button.clear.warning:hover[disabled], .clear.warning.button--outline-only:hover[disabled], #newsletter-signup .clear.warning#mc-embedded-subscribe:hover[disabled], .clear.warning.button--text-only:hover[disabled], .button.clear.warning:focus.disabled, .clear.warning.button--outline-only:focus.disabled, #newsletter-signup .clear.warning#mc-embedded-subscribe:focus.disabled, .clear.warning.button--text-only:focus.disabled, .button.clear.warning:focus[disabled], .clear.warning.button--outline-only:focus[disabled], #newsletter-signup .clear.warning#mc-embedded-subscribe:focus[disabled], .clear.warning.button--text-only:focus[disabled] {
                            border: 1px solid #ffae00;
                            color: #ffae00;
                        }

                        .button.clear.warning, .clear.warning.button--outline-only, #newsletter-signup .clear.warning#mc-embedded-subscribe, .clear.warning.button--text-only, .button.clear.warning.disabled, .clear.warning.disabled.button--outline-only, #newsletter-signup .clear.warning.disabled#mc-embedded-subscribe, .clear.warning.disabled.button--text-only, .button.clear.warning[disabled], .clear.warning.button--outline-only[disabled], #newsletter-signup .clear.warning#mc-embedded-subscribe[disabled], .clear.warning.button--text-only[disabled], .button.clear.warning:hover, .clear.warning.button--outline-only:hover, #newsletter-signup .clear.warning#mc-embedded-subscribe:hover, .clear.warning.button--text-only:hover, .button.clear.warning:hover.disabled, .clear.warning.button--outline-only:hover.disabled, #newsletter-signup .clear.warning#mc-embedded-subscribe:hover.disabled, .clear.warning.button--text-only:hover.disabled, .button.clear.warning:hover[disabled], .clear.warning.button--outline-only:hover[disabled], #newsletter-signup .clear.warning#mc-embedded-subscribe:hover[disabled], .clear.warning.button--text-only:hover[disabled], .button.clear.warning:focus, .clear.warning.button--outline-only:focus, #newsletter-signup .clear.warning#mc-embedded-subscribe:focus, .clear.warning.button--text-only:focus, .button.clear.warning:focus.disabled, .clear.warning.button--outline-only:focus.disabled, #newsletter-signup .clear.warning#mc-embedded-subscribe:focus.disabled, .clear.warning.button--text-only:focus.disabled, .button.clear.warning:focus[disabled], .clear.warning.button--outline-only:focus[disabled], #newsletter-signup .clear.warning#mc-embedded-subscribe:focus[disabled], .clear.warning.button--text-only:focus[disabled] {
                            border-color: transparent;
                        }

                .button.clear.alert, .clear.alert.button--outline-only, #newsletter-signup .clear.alert#mc-embedded-subscribe, .clear.alert.button--text-only {
                    border: 1px solid #cc4b37;
                    color: #cc4b37;
                }

                    .button.clear.alert:hover, .clear.alert.button--outline-only:hover, #newsletter-signup .clear.alert#mc-embedded-subscribe:hover, .clear.alert.button--text-only:hover, .button.clear.alert:focus, .clear.alert.button--outline-only:focus, #newsletter-signup .clear.alert#mc-embedded-subscribe:focus, .clear.alert.button--text-only:focus {
                        border-color: #67251a;
                        color: #67251a;
                    }

                        .button.clear.alert:hover.disabled, .clear.alert.button--outline-only:hover.disabled, #newsletter-signup .clear.alert#mc-embedded-subscribe:hover.disabled, .clear.alert.button--text-only:hover.disabled, .button.clear.alert:hover[disabled], .clear.alert.button--outline-only:hover[disabled], #newsletter-signup .clear.alert#mc-embedded-subscribe:hover[disabled], .clear.alert.button--text-only:hover[disabled], .button.clear.alert:focus.disabled, .clear.alert.button--outline-only:focus.disabled, #newsletter-signup .clear.alert#mc-embedded-subscribe:focus.disabled, .clear.alert.button--text-only:focus.disabled, .button.clear.alert:focus[disabled], .clear.alert.button--outline-only:focus[disabled], #newsletter-signup .clear.alert#mc-embedded-subscribe:focus[disabled], .clear.alert.button--text-only:focus[disabled] {
                            border: 1px solid #cc4b37;
                            color: #cc4b37;
                        }

                        .button.clear.alert, .clear.alert.button--outline-only, #newsletter-signup .clear.alert#mc-embedded-subscribe, .clear.alert.button--text-only, .button.clear.alert.disabled, .clear.alert.disabled.button--outline-only, #newsletter-signup .clear.alert.disabled#mc-embedded-subscribe, .clear.alert.disabled.button--text-only, .button.clear.alert[disabled], .clear.alert.button--outline-only[disabled], #newsletter-signup .clear.alert#mc-embedded-subscribe[disabled], .clear.alert.button--text-only[disabled], .button.clear.alert:hover, .clear.alert.button--outline-only:hover, #newsletter-signup .clear.alert#mc-embedded-subscribe:hover, .clear.alert.button--text-only:hover, .button.clear.alert:hover.disabled, .clear.alert.button--outline-only:hover.disabled, #newsletter-signup .clear.alert#mc-embedded-subscribe:hover.disabled, .clear.alert.button--text-only:hover.disabled, .button.clear.alert:hover[disabled], .clear.alert.button--outline-only:hover[disabled], #newsletter-signup .clear.alert#mc-embedded-subscribe:hover[disabled], .clear.alert.button--text-only:hover[disabled], .button.clear.alert:focus, .clear.alert.button--outline-only:focus, #newsletter-signup .clear.alert#mc-embedded-subscribe:focus, .clear.alert.button--text-only:focus, .button.clear.alert:focus.disabled, .clear.alert.button--outline-only:focus.disabled, #newsletter-signup .clear.alert#mc-embedded-subscribe:focus.disabled, .clear.alert.button--text-only:focus.disabled, .button.clear.alert:focus[disabled], .clear.alert.button--outline-only:focus[disabled], #newsletter-signup .clear.alert#mc-embedded-subscribe:focus[disabled], .clear.alert.button--text-only:focus[disabled] {
                            border-color: transparent;
                        }

.button.dropdown::after, .dropdown.button--outline-only::after, #newsletter-signup .dropdown#mc-embedded-subscribe::after, .dropdown.button--text-only::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 0.4em;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #fefefe transparent transparent;
    position: relative;
    top: 0.4em;
    display: inline-block;
    float: right;
    margin-left: 1em;
}

.button.dropdown.hollow::after, .dropdown.hollow.button--outline-only::after, #newsletter-signup .dropdown.hollow#mc-embedded-subscribe::after, .dropdown.hollow.button--text-only::after {
    border-top-color: #000000;
}

.button.dropdown.hollow.primary::after, .dropdown.hollow.primary.button--outline-only::after, #newsletter-signup .dropdown.hollow.primary#mc-embedded-subscribe::after, .dropdown.hollow.primary.button--text-only::after {
    border-top-color: #000000;
}

.button.dropdown.hollow.secondary::after, .dropdown.hollow.secondary.button--outline-only::after, #newsletter-signup .dropdown.hollow.secondary#mc-embedded-subscribe::after, .dropdown.hollow.secondary.button--text-only::after {
    border-top-color: #ffffff;
}

.button.dropdown.hollow.success::after, .dropdown.hollow.success.button--outline-only::after, #newsletter-signup .dropdown.hollow.success#mc-embedded-subscribe::after, .dropdown.hollow.success.button--text-only::after {
    border-top-color: #3adb76;
}

.button.dropdown.hollow.warning::after, .dropdown.hollow.warning.button--outline-only::after, #newsletter-signup .dropdown.hollow.warning#mc-embedded-subscribe::after, .dropdown.hollow.warning.button--text-only::after {
    border-top-color: #ffae00;
}

.button.dropdown.hollow.alert::after, .dropdown.hollow.alert.button--outline-only::after, #newsletter-signup .dropdown.hollow.alert#mc-embedded-subscribe::after, .dropdown.hollow.alert.button--text-only::after {
    border-top-color: #cc4b37;
}

.button.arrow-only::after, .arrow-only.button--outline-only::after, #newsletter-signup .arrow-only#mc-embedded-subscribe::after, .arrow-only.button--text-only::after {
    top: -0.1em;
    float: none;
    margin-left: 0;
}

a.button:hover, .sub-menu .button.font--black:hover, .sub-menu .font--black.button--outline-only:hover, .sub-menu #newsletter-signup .font--black#mc-embedded-subscribe:hover, #newsletter-signup .sub-menu .font--black#mc-embedded-subscribe:hover, .sub-menu .font--black.button--text-only:hover,
.copyright .button.font--black:hover, .copyright .font--black.button--outline-only:hover, .copyright #newsletter-signup .font--black#mc-embedded-subscribe:hover, #newsletter-signup .copyright .font--black#mc-embedded-subscribe:hover, .copyright .font--black.button--text-only:hover, a.button--outline-only:hover, #newsletter-signup a#mc-embedded-subscribe:hover, a.button--text-only:hover, a.button:focus, .sub-menu .button.font--black:focus, .sub-menu .font--black.button--outline-only:focus, .sub-menu #newsletter-signup .font--black#mc-embedded-subscribe:focus, #newsletter-signup .sub-menu .font--black#mc-embedded-subscribe:focus, .sub-menu .font--black.button--text-only:focus,
.copyright .button.font--black:focus, .copyright .font--black.button--outline-only:focus, .copyright #newsletter-signup .font--black#mc-embedded-subscribe:focus, #newsletter-signup .copyright .font--black#mc-embedded-subscribe:focus, .copyright .font--black.button--text-only:focus, a.button--outline-only:focus, #newsletter-signup a#mc-embedded-subscribe:focus, a.button--text-only:focus {
    text-decoration: none;
}

[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],
textarea {
    display: block;
    box-sizing: border-box;
    width: 100%;
    height: 2.4375rem;
    margin: 0 0 1rem;
    padding: 0.5rem;
    border: 1px solid #DEDEDE;
    border-radius: 0;
    background-color: #fefefe;
    box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
    font-family: inherit;
    font-size: 1rem;
    font-weight: normal;
    line-height: 1.5;
    color: #0a0a0a;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

    [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,
    textarea:focus {
        outline: none;
        border: 1px solid #AAAAAA;
        background-color: #fefefe;
        box-shadow: 0 0 5px #DEDEDE;
        transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
    }

textarea {
    max-width: 100%;
}

    textarea[rows] {
        height: auto;
    }

    input::-webkit-input-placeholder,
    textarea::-webkit-input-placeholder {
        color: #DEDEDE;
    }

    input:-ms-input-placeholder,
    textarea:-ms-input-placeholder {
        color: #DEDEDE;
    }

    input::placeholder,
    textarea::placeholder {
        color: #DEDEDE;
    }

    input:disabled, input[readonly],
    textarea:disabled,
    textarea[readonly] {
        background-color: #f5f5f5;
        cursor: not-allowed;
    }

[type='submit'],
[type='button'] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    border-radius: 0;
}

input[type='search'] {
    box-sizing: border-box;
}

[type='file'],
[type='checkbox'],
[type='radio'] {
    margin: 0 0 1rem;
}

    [type='checkbox'] + label,
    [type='radio'] + label {
        display: inline-block;
        vertical-align: baseline;
        margin-left: 0.5rem;
        margin-right: 1rem;
        margin-bottom: 0;
    }

        [type='checkbox'] + label[for],
        [type='radio'] + label[for] {
            cursor: pointer;
        }

label > [type='checkbox'],
label > [type='radio'] {
    margin-right: 0.5rem;
}

[type='file'] {
    width: 100%;
}

label {
    display: block;
    margin: 0;
    font-size: 0.875rem;
    font-weight: normal;
    line-height: 1.8;
    color: #0a0a0a;
}

    label.middle {
        margin: 0 0 1rem;
        padding: 0.5625rem 0;
    }

.help-text {
    margin-top: -0.5rem;
    font-size: 0.8125rem;
    font-style: italic;
    color: #0a0a0a;
}

.input-group {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
    margin-bottom: 1rem;
    -webkit-align-items: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
}

    .input-group > :first-child {
        border-radius: 0 0 0 0;
    }

    .input-group > :last-child > * {
        border-radius: 0 0 0 0;
    }

.input-group-label, .input-group-field, .input-group-button, .input-group-button a, .input-group-button .sub-menu .font--black, .sub-menu .input-group-button .font--black,
.input-group-button .copyright .font--black, .copyright .input-group-button .font--black,
.input-group-button input,
.input-group-button button,
.input-group-button label {
    margin: 0;
    white-space: nowrap;
}

.input-group-label {
    padding: 0 1rem;
    border: 1px solid #DEDEDE;
    background: #f5f5f5;
    color: #0a0a0a;
    text-align: center;
    white-space: nowrap;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex: 0 0 auto;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
}

    .input-group-label:first-child {
        border-right: 0;
    }

    .input-group-label:last-child {
        border-left: 0;
    }

.input-group-field {
    border-radius: 0;
    -webkit-flex: 1 1 0px;
    -ms-flex: 1 1 0px;
    flex: 1 1 0px;
    height: auto;
    min-width: 0;
}

.input-group-button {
    padding-top: 0;
    padding-bottom: 0;
    text-align: center;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex: 0 0 auto;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
}

    .input-group-button a, .input-group-button .sub-menu .font--black, .sub-menu .input-group-button .font--black,
    .input-group-button .copyright .font--black, .copyright .input-group-button .font--black,
    .input-group-button input,
    .input-group-button button,
    .input-group-button label {
        height: auto;
        -webkit-align-self: stretch;
        -ms-flex-item-align: stretch;
        -ms-grid-row-align: stretch;
        align-self: stretch;
        padding-top: 0;
        padding-bottom: 0;
        font-size: 1rem;
    }

fieldset {
    margin: 0;
    padding: 0;
    border: 0;
}

legend {
    max-width: 100%;
    margin-bottom: 0.5rem;
}

.fieldset {
    margin: 1.125rem 0;
    padding: 1.25rem;
    border: 1px solid #DEDEDE;
}

    .fieldset legend {
        margin: 0;
        margin-left: -0.1875rem;
        padding: 0 0.1875rem;
    }

select {
    height: 2.4375rem;
    margin: 0 0 1rem;
    padding: 0.5rem;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    border: 1px solid #DEDEDE;
    border-radius: 0;
    background-color: #fefefe;
    font-family: inherit;
    font-size: 1rem;
    font-weight: normal;
    line-height: 1.5;
    color: #0a0a0a;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: rgb%28170, 170, 170%29'></polygon></svg>");
    background-origin: content-box;
    background-position: right -1rem center;
    background-repeat: no-repeat;
    background-size: 9px 6px;
    padding-right: 1.5rem;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
}

@media screen and (min-width: 0\0) {
    select {
        background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAMBJREFUeNrEllsOhCAMRVszC9IlzU7KCmVHTJsoMWYMUtpyv9BgbuXQB5ZSdgBYYY4ycgBivk8KYFsQMfMiTTBP4o3nUzCKzOabLJbLy2/g31evGkAginR4/ZegKH5qX3bJCscA3t0x3kgO5tQFyhhFf50xRqFLbyMUNJQzgyjGS/wgCpvKqkRBpuWrE4V9d+1E4dPUXqIg107SQOE/2DRQxMwTDygIInVDET9T3lCoj/6j/VCmGjZOl2lKpZ8AAwDQP7zIimDGFQAAAABJRU5ErkJggg==");
    }
}

select:focus {
    outline: none;
    border: 1px solid #AAAAAA;
    background-color: #fefefe;
    box-shadow: 0 0 5px #DEDEDE;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
}

select:disabled {
    background-color: #f5f5f5;
    cursor: not-allowed;
}

select::-ms-expand {
    display: none;
}

select[multiple] {
    height: auto;
    background-image: none;
}

.is-invalid-input:not(:focus) {
    border-color: #cc4b37;
    background-color: #f9ecea;
}

    .is-invalid-input:not(:focus)::-webkit-input-placeholder {
        color: #cc4b37;
    }

    .is-invalid-input:not(:focus):-ms-input-placeholder {
        color: #cc4b37;
    }

    .is-invalid-input:not(:focus)::placeholder {
        color: #cc4b37;
    }

.is-invalid-label {
    color: #cc4b37;
}

.form-error {
    display: none;
    margin-top: -0.5rem;
    margin-bottom: 1rem;
    font-size: 0.75rem;
    font-weight: bold;
    color: #cc4b37;
}

    .form-error.is-visible {
        display: block;
    }

.accordion {
    margin-left: 0;
    background: #fefefe;
    list-style-type: none;
}

    .accordion[disabled] .accordion-title {
        cursor: not-allowed;
    }

.accordion-item:first-child > :first-child {
    border-radius: 0 0 0 0;
}

.accordion-item:last-child > :last-child {
    border-radius: 0 0 0 0;
}

.accordion-title {
    position: relative;
    display: block;
    padding: 1.25rem 1rem;
    border: 1px solid #f5f5f5;
    border-bottom: 0;
    font-size: 0.75rem;
    line-height: 1;
    color: #000000;
}

:last-child:not(.is-active) > .accordion-title {
    border-bottom: 1px solid #f5f5f5;
    border-radius: 0 0 0 0;
}

.accordion-title:hover, .accordion-title:focus {
    background-color: #f5f5f5;
}

.accordion-title::before {
    position: absolute;
    top: 50%;
    right: 1rem;
    margin-top: -0.5rem;
    content: '+';
}

.is-active > .accordion-title::before {
    content: '\2013';
}

.accordion-content {
    display: none;
    padding: 1rem;
    border: 1px solid #f5f5f5;
    border-bottom: 0;
    background-color: #fefefe;
    color: #0a0a0a;
}

:last-child > .accordion-content:last-child {
    border-bottom: 1px solid #f5f5f5;
}

.accordion-menu li {
    width: 100%;
}

.accordion-menu a, .accordion-menu .sub-menu .font--black, .sub-menu .accordion-menu .font--black,
.accordion-menu .copyright .font--black, .copyright .accordion-menu .font--black {
    padding: 0.7rem 1rem;
}

.accordion-menu .is-accordion-submenu a, .accordion-menu .is-accordion-submenu .sub-menu .font--black, .sub-menu .accordion-menu .is-accordion-submenu .font--black,
.accordion-menu .is-accordion-submenu .copyright .font--black, .copyright .accordion-menu .is-accordion-submenu .font--black {
    padding: 0.7rem 1rem;
}

.accordion-menu .nested.is-accordion-submenu {
    margin-right: 0;
    margin-left: 1rem;
}

.accordion-menu.align-right .nested.is-accordion-submenu {
    margin-right: 1rem;
    margin-left: 0;
}

.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a, .accordion-menu .sub-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > .font--black, .sub-menu .accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > .font--black,
.accordion-menu .copyright .is-accordion-submenu-parent:not(.has-submenu-toggle) > .font--black, .copyright .accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > .font--black {
    position: relative;
}

    .accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a::after, .accordion-menu .sub-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > .font--black::after, .sub-menu .accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > .font--black::after,
    .accordion-menu .copyright .is-accordion-submenu-parent:not(.has-submenu-toggle) > .font--black::after, .copyright .accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > .font--black::after {
        display: block;
        width: 0;
        height: 0;
        border: inset 6px;
        content: '';
        border-bottom-width: 0;
        border-top-style: solid;
        border-color: #fefefe transparent transparent;
        position: absolute;
        top: 50%;
        margin-top: -3px;
        right: 1rem;
    }

.accordion-menu.align-left .is-accordion-submenu-parent > a::after, .accordion-menu.align-left .sub-menu .is-accordion-submenu-parent > .font--black::after, .sub-menu .accordion-menu.align-left .is-accordion-submenu-parent > .font--black::after,
.accordion-menu.align-left .copyright .is-accordion-submenu-parent > .font--black::after, .copyright .accordion-menu.align-left .is-accordion-submenu-parent > .font--black::after {
    left: auto;
    right: 1rem;
}

.accordion-menu.align-right .is-accordion-submenu-parent > a::after, .accordion-menu.align-right .sub-menu .is-accordion-submenu-parent > .font--black::after, .sub-menu .accordion-menu.align-right .is-accordion-submenu-parent > .font--black::after,
.accordion-menu.align-right .copyright .is-accordion-submenu-parent > .font--black::after, .copyright .accordion-menu.align-right .is-accordion-submenu-parent > .font--black::after {
    right: auto;
    left: 1rem;
}

.accordion-menu .is-accordion-submenu-parent[aria-expanded='true'] > a::after, .accordion-menu .sub-menu .is-accordion-submenu-parent[aria-expanded='true'] > .font--black::after, .sub-menu .accordion-menu .is-accordion-submenu-parent[aria-expanded='true'] > .font--black::after,
.accordion-menu .copyright .is-accordion-submenu-parent[aria-expanded='true'] > .font--black::after, .copyright .accordion-menu .is-accordion-submenu-parent[aria-expanded='true'] > .font--black::after {
    -webkit-transform: rotate(180deg);
    -ms-transform: rotate(180deg);
    transform: rotate(180deg);
    -webkit-transform-origin: 50% 50%;
    -ms-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
}

.is-accordion-submenu-parent {
    position: relative;
}

.has-submenu-toggle > a, .sub-menu .has-submenu-toggle > .font--black,
.copyright .has-submenu-toggle > .font--black {
    margin-right: 40px;
}

.submenu-toggle {
    position: absolute;
    top: 0;
    right: 0;
    cursor: pointer;
    width: 40px;
    height: 40px;
}

    .submenu-toggle::after {
        display: block;
        width: 0;
        height: 0;
        border: inset 6px;
        content: '';
        border-bottom-width: 0;
        border-top-style: solid;
        border-color: #fefefe transparent transparent;
        top: 0;
        bottom: 0;
        margin: auto;
    }

    .submenu-toggle[aria-expanded='true']::after {
        -webkit-transform: scaleY(-1);
        -ms-transform: scaleY(-1);
        transform: scaleY(-1);
        -webkit-transform-origin: 50% 50%;
        -ms-transform-origin: 50% 50%;
        transform-origin: 50% 50%;
    }

.submenu-toggle-text {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    -webkit-clip-path: inset(50%);
    clip-path: inset(50%);
    border: 0;
}

.badge {
    display: inline-block;
    min-width: 2.1em;
    padding: 0.3em;
    border-radius: 50%;
    font-size: 0.6rem;
    text-align: center;
    background: #000000;
    color: #fefefe;
}

    .badge.primary {
        background: #000000;
        color: #fefefe;
    }

    .badge.secondary {
        background: #ffffff;
        color: #0a0a0a;
    }

    .badge.success {
        background: #3adb76;
        color: #0a0a0a;
    }

    .badge.warning {
        background: #ffae00;
        color: #0a0a0a;
    }

    .badge.alert {
        background: #cc4b37;
        color: #fefefe;
    }

.breadcrumbs {
    margin: 0 0 2.5rem 0;
    list-style: none;
}

    .breadcrumbs::before, .breadcrumbs::after {
        display: table;
        content: ' ';
        -webkit-flex-basis: 0;
        -ms-flex-preferred-size: 0;
        flex-basis: 0;
        -webkit-order: 1;
        -ms-flex-order: 1;
        order: 1;
    }

    .breadcrumbs::after {
        clear: both;
    }

    .breadcrumbs li {
        float: left;
        font-size: 0.6875rem;
        color: #0a0a0a;
        cursor: default;
        text-transform: uppercase;
    }

        .breadcrumbs li:not(:last-child)::after {
            position: relative;
            margin: 0 0.75rem;
            opacity: 1;
            content: "/";
            color: #DEDEDE;
        }

    .breadcrumbs a, .breadcrumbs .sub-menu .font--black, .sub-menu .breadcrumbs .font--black,
    .breadcrumbs .copyright .font--black, .copyright .breadcrumbs .font--black {
        color: #000000;
    }

        .breadcrumbs a:hover, .breadcrumbs .sub-menu .font--black:hover, .sub-menu .breadcrumbs .font--black:hover,
        .breadcrumbs .copyright .font--black:hover, .copyright .breadcrumbs .font--black:hover {
            text-decoration: underline;
        }

    .breadcrumbs .disabled {
        color: #DEDEDE;
        cursor: not-allowed;
    }

.button-group {
    margin-bottom: 1rem;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: nowrap;
    -ms-flex-wrap: nowrap;
    flex-wrap: nowrap;
    -webkit-align-items: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
}

    .button-group::before, .button-group::after {
        display: table;
        content: ' ';
        -webkit-flex-basis: 0;
        -ms-flex-preferred-size: 0;
        flex-basis: 0;
        -webkit-order: 1;
        -ms-flex-order: 1;
        order: 1;
    }

    .button-group::after {
        clear: both;
    }

    .button-group .button, .button-group .button--outline-only, .button-group #newsletter-signup #mc-embedded-subscribe, #newsletter-signup .button-group #mc-embedded-subscribe, .button-group .button--text-only {
        margin: 0;
        margin-right: 1px;
        margin-bottom: 1px;
        font-size: 0.9rem;
        -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
        flex: 0 0 auto;
    }

        .button-group .button:last-child, .button-group .button--outline-only:last-child, .button-group #newsletter-signup #mc-embedded-subscribe:last-child, #newsletter-signup .button-group #mc-embedded-subscribe:last-child, .button-group .button--text-only:last-child {
            margin-right: 0;
        }

    .button-group.tiny .button, .button-group.tiny .button--outline-only, .button-group.tiny #newsletter-signup #mc-embedded-subscribe, #newsletter-signup .button-group.tiny #mc-embedded-subscribe, .button-group.tiny .button--text-only {
        font-size: 0.6rem;
    }

    .button-group.small .button, .button-group.small .button--outline-only, .button-group.small #newsletter-signup #mc-embedded-subscribe, #newsletter-signup .button-group.small #mc-embedded-subscribe, .button-group.small .button--text-only {
        font-size: 0.75rem;
    }

    .button-group.large .button, .button-group.large .button--outline-only, .button-group.large #newsletter-signup #mc-embedded-subscribe, #newsletter-signup .button-group.large #mc-embedded-subscribe, .button-group.large .button--text-only {
        font-size: 1.25rem;
    }

    .button-group.expanded .button, .button-group.expanded .button--outline-only, .button-group.expanded #newsletter-signup #mc-embedded-subscribe, #newsletter-signup .button-group.expanded #mc-embedded-subscribe, .button-group.expanded .button--text-only {
        -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
        flex: 1 1 0px;
    }

    .button-group.primary .button, .button-group.primary .button--outline-only, .button-group.primary #newsletter-signup #mc-embedded-subscribe, #newsletter-signup .button-group.primary #mc-embedded-subscribe, .button-group.primary .button--text-only {
        background-color: #000000;
        color: #fefefe;
    }

        .button-group.primary .button:hover, .button-group.primary .button--outline-only:hover, .button-group.primary #newsletter-signup #mc-embedded-subscribe:hover, #newsletter-signup .button-group.primary #mc-embedded-subscribe:hover, .button-group.primary .button--text-only:hover, .button-group.primary .button:focus, .button-group.primary .button--outline-only:focus, .button-group.primary #newsletter-signup #mc-embedded-subscribe:focus, #newsletter-signup .button-group.primary #mc-embedded-subscribe:focus, .button-group.primary .button--text-only:focus {
            background-color: black;
            color: #fefefe;
        }

    .button-group.secondary .button, .button-group.secondary .button--outline-only, .button-group.secondary #newsletter-signup #mc-embedded-subscribe, #newsletter-signup .button-group.secondary #mc-embedded-subscribe, .button-group.secondary .button--text-only {
        background-color: #ffffff;
        color: #0a0a0a;
    }

        .button-group.secondary .button:hover, .button-group.secondary .button--outline-only:hover, .button-group.secondary #newsletter-signup #mc-embedded-subscribe:hover, #newsletter-signup .button-group.secondary #mc-embedded-subscribe:hover, .button-group.secondary .button--text-only:hover, .button-group.secondary .button:focus, .button-group.secondary .button--outline-only:focus, .button-group.secondary #newsletter-signup #mc-embedded-subscribe:focus, #newsletter-signup .button-group.secondary #mc-embedded-subscribe:focus, .button-group.secondary .button--text-only:focus {
            background-color: #cccccc;
            color: #0a0a0a;
        }

    .button-group.success .button, .button-group.success .button--outline-only, .button-group.success #newsletter-signup #mc-embedded-subscribe, #newsletter-signup .button-group.success #mc-embedded-subscribe, .button-group.success .button--text-only {
        background-color: #3adb76;
        color: #0a0a0a;
    }

        .button-group.success .button:hover, .button-group.success .button--outline-only:hover, .button-group.success #newsletter-signup #mc-embedded-subscribe:hover, #newsletter-signup .button-group.success #mc-embedded-subscribe:hover, .button-group.success .button--text-only:hover, .button-group.success .button:focus, .button-group.success .button--outline-only:focus, .button-group.success #newsletter-signup #mc-embedded-subscribe:focus, #newsletter-signup .button-group.success #mc-embedded-subscribe:focus, .button-group.success .button--text-only:focus {
            background-color: #22bb5b;
            color: #0a0a0a;
        }

    .button-group.warning .button, .button-group.warning .button--outline-only, .button-group.warning #newsletter-signup #mc-embedded-subscribe, #newsletter-signup .button-group.warning #mc-embedded-subscribe, .button-group.warning .button--text-only {
        background-color: #ffae00;
        color: #0a0a0a;
    }

        .button-group.warning .button:hover, .button-group.warning .button--outline-only:hover, .button-group.warning #newsletter-signup #mc-embedded-subscribe:hover, #newsletter-signup .button-group.warning #mc-embedded-subscribe:hover, .button-group.warning .button--text-only:hover, .button-group.warning .button:focus, .button-group.warning .button--outline-only:focus, .button-group.warning #newsletter-signup #mc-embedded-subscribe:focus, #newsletter-signup .button-group.warning #mc-embedded-subscribe:focus, .button-group.warning .button--text-only:focus {
            background-color: #cc8b00;
            color: #0a0a0a;
        }

    .button-group.alert .button, .button-group.alert .button--outline-only, .button-group.alert #newsletter-signup #mc-embedded-subscribe, #newsletter-signup .button-group.alert #mc-embedded-subscribe, .button-group.alert .button--text-only {
        background-color: #cc4b37;
        color: #fefefe;
    }

        .button-group.alert .button:hover, .button-group.alert .button--outline-only:hover, .button-group.alert #newsletter-signup #mc-embedded-subscribe:hover, #newsletter-signup .button-group.alert #mc-embedded-subscribe:hover, .button-group.alert .button--text-only:hover, .button-group.alert .button:focus, .button-group.alert .button--outline-only:focus, .button-group.alert #newsletter-signup #mc-embedded-subscribe:focus, #newsletter-signup .button-group.alert #mc-embedded-subscribe:focus, .button-group.alert .button--text-only:focus {
            background-color: #a53b2a;
            color: #fefefe;
        }

    .button-group.stacked, .button-group.stacked-for-small, .button-group.stacked-for-medium {
        -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    }

        .button-group.stacked .button, .button-group.stacked .button--outline-only, .button-group.stacked #newsletter-signup #mc-embedded-subscribe, #newsletter-signup .button-group.stacked #mc-embedded-subscribe, .button-group.stacked .button--text-only, .button-group.stacked-for-small .button, .button-group.stacked-for-small .button--outline-only, .button-group.stacked-for-small #newsletter-signup #mc-embedded-subscribe, #newsletter-signup .button-group.stacked-for-small #mc-embedded-subscribe, .button-group.stacked-for-small .button--text-only, .button-group.stacked-for-medium .button, .button-group.stacked-for-medium .button--outline-only, .button-group.stacked-for-medium #newsletter-signup #mc-embedded-subscribe, #newsletter-signup .button-group.stacked-for-medium #mc-embedded-subscribe, .button-group.stacked-for-medium .button--text-only {
            -webkit-flex: 0 0 100%;
            -ms-flex: 0 0 100%;
            flex: 0 0 100%;
        }

            .button-group.stacked .button:last-child, .button-group.stacked .button--outline-only:last-child, .button-group.stacked #newsletter-signup #mc-embedded-subscribe:last-child, #newsletter-signup .button-group.stacked #mc-embedded-subscribe:last-child, .button-group.stacked .button--text-only:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-small .button--outline-only:last-child, .button-group.stacked-for-small #newsletter-signup #mc-embedded-subscribe:last-child, #newsletter-signup .button-group.stacked-for-small #mc-embedded-subscribe:last-child, .button-group.stacked-for-small .button--text-only:last-child, .button-group.stacked-for-medium .button:last-child, .button-group.stacked-for-medium .button--outline-only:last-child, .button-group.stacked-for-medium #newsletter-signup #mc-embedded-subscribe:last-child, #newsletter-signup .button-group.stacked-for-medium #mc-embedded-subscribe:last-child, .button-group.stacked-for-medium .button--text-only:last-child {
                margin-bottom: 0;
            }

@media print, screen and (min-width: 40em) {
    .button-group.stacked-for-small .button, .button-group.stacked-for-small .button--outline-only, .button-group.stacked-for-small #newsletter-signup #mc-embedded-subscribe, #newsletter-signup .button-group.stacked-for-small #mc-embedded-subscribe, .button-group.stacked-for-small .button--text-only {
        -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
        flex: 1 1 0px;
        margin-bottom: 0;
    }
}

@media print, screen and (min-width: 64em) {
    .button-group.stacked-for-medium .button, .button-group.stacked-for-medium .button--outline-only, .button-group.stacked-for-medium #newsletter-signup #mc-embedded-subscribe, #newsletter-signup .button-group.stacked-for-medium #mc-embedded-subscribe, .button-group.stacked-for-medium .button--text-only {
        -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
        flex: 1 1 0px;
        margin-bottom: 0;
    }
}

@media screen and (max-width: 39.9375em) {
    .button-group.stacked-for-small.expanded {
        display: block;
    }

        .button-group.stacked-for-small.expanded .button, .button-group.stacked-for-small.expanded .button--outline-only, .button-group.stacked-for-small.expanded #newsletter-signup #mc-embedded-subscribe, #newsletter-signup .button-group.stacked-for-small.expanded #mc-embedded-subscribe, .button-group.stacked-for-small.expanded .button--text-only {
            display: block;
            margin-right: 0;
        }
}

.callout {
    position: relative;
    margin: 0 0 1rem 0;
    padding: 1rem;
    border: 1px solid rgba(10, 10, 10, 0.25);
    border-radius: 0;
    background-color: white;
    color: #0a0a0a;
}

    .callout > :first-child {
        margin-top: 0;
    }

    .callout > :last-child {
        margin-bottom: 0;
    }

    .callout.primary {
        background-color: #d9d9d9;
        color: #0a0a0a;
    }

    .callout.secondary {
        background-color: white;
        color: #0a0a0a;
    }

    .callout.success {
        background-color: #e1faea;
        color: #0a0a0a;
    }

    .callout.warning {
        background-color: #fff3d9;
        color: #0a0a0a;
    }

    .callout.alert {
        background-color: #f7e4e1;
        color: #0a0a0a;
    }

    .callout.small {
        padding-top: 0.5rem;
        padding-right: 0.5rem;
        padding-bottom: 0.5rem;
        padding-left: 0.5rem;
    }

    .callout.large {
        padding-top: 3rem;
        padding-right: 3rem;
        padding-bottom: 3rem;
        padding-left: 3rem;
    }

.card {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-flex-grow: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    margin-bottom: 2.5rem;
    border: 1px solid #f5f5f5;
    border-radius: 0;
    background: #fefefe;
    box-shadow: none;
    overflow: hidden;
    color: #0a0a0a;
}

    .card > :last-child {
        margin-bottom: 0;
    }

.card-divider {
    -webkit-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    padding: 1rem;
    background: #f5f5f5;
}

    .card-divider > :last-child {
        margin-bottom: 0;
    }

.card-section {
    -webkit-flex: 1 0 auto;
    -ms-flex: 1 0 auto;
    flex: 1 0 auto;
    padding: 1rem;
}

    .card-section > :last-child {
        margin-bottom: 0;
    }

.card-image {
    min-height: 1px;
}

.close-button, .search__container .search-close-button {
    position: absolute;
    color: #AAAAAA;
    cursor: pointer;
}

[data-whatinput='mouse'] .close-button, [data-whatinput='mouse'] .search__container .search-close-button, .search__container [data-whatinput='mouse'] .search-close-button {
    outline: 0;
}

.close-button:hover, .search__container .search-close-button:hover, .close-button:focus, .search__container .search-close-button:focus {
    color: #0a0a0a;
}

.close-button.small, .search__container .small.search-close-button {
    right: 0.66rem;
    top: 0.33em;
    font-size: 1.5em;
    line-height: 1;
}

.close-button, .search__container .search-close-button, .close-button.medium, .search__container .medium.search-close-button {
    right: 1rem;
    top: 0.5rem;
    font-size: 2em;
    line-height: 1;
}

.menu {
    padding: 0;
    margin: 0;
    list-style: none;
    position: relative;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

[data-whatinput='mouse'] .menu li {
    outline: 0;
}

.menu a, .menu .sub-menu .font--black, .sub-menu .menu .font--black,
.menu .copyright .font--black, .copyright .menu .font--black,
.menu .button,
.menu .button--outline-only,
.menu #newsletter-signup #mc-embedded-subscribe,
#newsletter-signup .menu #mc-embedded-subscribe,
.menu .button--text-only {
    line-height: 1;
    text-decoration: none;
    display: block;
    padding: 0.7rem 1rem;
}

.menu input,
.menu select, .menu a, .menu .sub-menu .font--black, .sub-menu .menu .font--black,
.menu .copyright .font--black, .copyright .menu .font--black,
.menu button {
    margin-bottom: 0;
}

.menu input {
    display: inline-block;
}

.menu, .menu.horizontal {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-flex-direction: row;
    -ms-flex-direction: row;
    flex-direction: row;
}

    .menu.vertical {
        -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
        -webkit-flex-direction: column;
        -ms-flex-direction: column;
        flex-direction: column;
    }

    .menu.expanded li {
        -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
        flex: 1 1 0px;
    }

    .menu.simple {
        -webkit-align-items: center;
        -ms-flex-align: center;
        align-items: center;
    }

        .menu.simple li + li {
            margin-left: 1rem;
        }

        .menu.simple a, .menu.simple .sub-menu .font--black, .sub-menu .menu.simple .font--black,
        .menu.simple .copyright .font--black, .copyright .menu.simple .font--black {
            padding: 0;
        }

@media print, screen and (min-width: 40em) {
    .menu.medium-horizontal {
        -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        -webkit-flex-direction: row;
        -ms-flex-direction: row;
        flex-direction: row;
    }

    .menu.medium-vertical {
        -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
        -webkit-flex-direction: column;
        -ms-flex-direction: column;
        flex-direction: column;
    }

    .menu.medium-expanded li {
        -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
        flex: 1 1 0px;
    }

    .menu.medium-simple li {
        -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
        flex: 1 1 0px;
    }
}

@media print, screen and (min-width: 64em) {
    .menu.large-horizontal {
        -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        -webkit-flex-direction: row;
        -ms-flex-direction: row;
        flex-direction: row;
    }

    .menu.large-vertical {
        -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
        -webkit-flex-direction: column;
        -ms-flex-direction: column;
        flex-direction: column;
    }

    .menu.large-expanded li {
        -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
        flex: 1 1 0px;
    }

    .menu.large-simple li {
        -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
        flex: 1 1 0px;
    }
}

.menu.nested {
    margin-right: 0;
    margin-left: 1rem;
}

.menu.icons a, .menu.icons .sub-menu .font--black, .sub-menu .menu.icons .font--black,
.menu.icons .copyright .font--black, .copyright .menu.icons .font--black {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
}

.menu.icon-top a, .menu.icon-top .sub-menu .font--black, .sub-menu .menu.icon-top .font--black,
.menu.icon-top .copyright .font--black, .copyright .menu.icon-top .font--black, .menu.icon-right a, .menu.icon-right .sub-menu .font--black, .sub-menu .menu.icon-right .font--black,
.menu.icon-right .copyright .font--black, .copyright .menu.icon-right .font--black, .menu.icon-bottom a, .menu.icon-bottom .sub-menu .font--black, .sub-menu .menu.icon-bottom .font--black,
.menu.icon-bottom .copyright .font--black, .copyright .menu.icon-bottom .font--black, .menu.icon-left a, .menu.icon-left .sub-menu .font--black, .sub-menu .menu.icon-left .font--black,
.menu.icon-left .copyright .font--black, .copyright .menu.icon-left .font--black {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
}

.menu.icon-left li a, .menu.icon-left li .sub-menu .font--black, .sub-menu .menu.icon-left li .font--black,
.menu.icon-left li .copyright .font--black, .copyright .menu.icon-left li .font--black {
    -webkit-flex-flow: row nowrap;
    -ms-flex-flow: row nowrap;
    flex-flow: row nowrap;
}

    .menu.icon-left li a img, .menu.icon-left li .sub-menu .font--black img, .sub-menu .menu.icon-left li .font--black img, .menu.icon-left li .copyright .font--black img, .copyright .menu.icon-left li .font--black img,
    .menu.icon-left li a i,
    .menu.icon-left li .sub-menu .font--black i,
    .sub-menu .menu.icon-left li .font--black i,
    .menu.icon-left li .copyright .font--black i,
    .copyright .menu.icon-left li .font--black i,
    .menu.icon-left li a svg,
    .menu.icon-left li .sub-menu .font--black svg,
    .sub-menu .menu.icon-left li .font--black svg,
    .menu.icon-left li .copyright .font--black svg,
    .copyright .menu.icon-left li .font--black svg {
        margin-right: 0.25rem;
    }

.menu.icon-right li a, .menu.icon-right li .sub-menu .font--black, .sub-menu .menu.icon-right li .font--black,
.menu.icon-right li .copyright .font--black, .copyright .menu.icon-right li .font--black {
    -webkit-flex-flow: row nowrap;
    -ms-flex-flow: row nowrap;
    flex-flow: row nowrap;
}

    .menu.icon-right li a img, .menu.icon-right li .sub-menu .font--black img, .sub-menu .menu.icon-right li .font--black img, .menu.icon-right li .copyright .font--black img, .copyright .menu.icon-right li .font--black img,
    .menu.icon-right li a i,
    .menu.icon-right li .sub-menu .font--black i,
    .sub-menu .menu.icon-right li .font--black i,
    .menu.icon-right li .copyright .font--black i,
    .copyright .menu.icon-right li .font--black i,
    .menu.icon-right li a svg,
    .menu.icon-right li .sub-menu .font--black svg,
    .sub-menu .menu.icon-right li .font--black svg,
    .menu.icon-right li .copyright .font--black svg,
    .copyright .menu.icon-right li .font--black svg {
        margin-left: 0.25rem;
    }

.menu.icon-top li a, .menu.icon-top li .sub-menu .font--black, .sub-menu .menu.icon-top li .font--black,
.menu.icon-top li .copyright .font--black, .copyright .menu.icon-top li .font--black {
    -webkit-flex-flow: column nowrap;
    -ms-flex-flow: column nowrap;
    flex-flow: column nowrap;
}

    .menu.icon-top li a img, .menu.icon-top li .sub-menu .font--black img, .sub-menu .menu.icon-top li .font--black img, .menu.icon-top li .copyright .font--black img, .copyright .menu.icon-top li .font--black img,
    .menu.icon-top li a i,
    .menu.icon-top li .sub-menu .font--black i,
    .sub-menu .menu.icon-top li .font--black i,
    .menu.icon-top li .copyright .font--black i,
    .copyright .menu.icon-top li .font--black i,
    .menu.icon-top li a svg,
    .menu.icon-top li .sub-menu .font--black svg,
    .sub-menu .menu.icon-top li .font--black svg,
    .menu.icon-top li .copyright .font--black svg,
    .copyright .menu.icon-top li .font--black svg {
        -webkit-align-self: stretch;
        -ms-flex-item-align: stretch;
        -ms-grid-row-align: stretch;
        align-self: stretch;
        margin-bottom: 0.25rem;
        text-align: center;
    }

.menu.icon-bottom li a, .menu.icon-bottom li .sub-menu .font--black, .sub-menu .menu.icon-bottom li .font--black,
.menu.icon-bottom li .copyright .font--black, .copyright .menu.icon-bottom li .font--black {
    -webkit-flex-flow: column nowrap;
    -ms-flex-flow: column nowrap;
    flex-flow: column nowrap;
}

    .menu.icon-bottom li a img, .menu.icon-bottom li .sub-menu .font--black img, .sub-menu .menu.icon-bottom li .font--black img, .menu.icon-bottom li .copyright .font--black img, .copyright .menu.icon-bottom li .font--black img,
    .menu.icon-bottom li a i,
    .menu.icon-bottom li .sub-menu .font--black i,
    .sub-menu .menu.icon-bottom li .font--black i,
    .menu.icon-bottom li .copyright .font--black i,
    .copyright .menu.icon-bottom li .font--black i,
    .menu.icon-bottom li a svg,
    .menu.icon-bottom li .sub-menu .font--black svg,
    .sub-menu .menu.icon-bottom li .font--black svg,
    .menu.icon-bottom li .copyright .font--black svg,
    .copyright .menu.icon-bottom li .font--black svg {
        -webkit-align-self: stretch;
        -ms-flex-item-align: stretch;
        -ms-grid-row-align: stretch;
        align-self: stretch;
        margin-bottom: 0.25rem;
        text-align: center;
    }

.menu .is-active > a, .menu .sub-menu .is-active > .font--black, .sub-menu .menu .is-active > .font--black,
.menu .copyright .is-active > .font--black, .copyright .menu .is-active > .font--black {
    background: #000000;
    color: #fefefe;
}

.menu .active > a, .menu .sub-menu .active > .font--black, .sub-menu .menu .active > .font--black,
.menu .copyright .active > .font--black, .copyright .menu .active > .font--black {
    background: #000000;
    color: #fefefe;
}

.menu.align-left {
    -webkit-justify-content: flex-start;
    -ms-flex-pack: start;
    justify-content: flex-start;
}

.menu.align-right li {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: flex-end;
    -ms-flex-pack: end;
    justify-content: flex-end;
}

    .menu.align-right li .submenu li {
        -webkit-justify-content: flex-start;
        -ms-flex-pack: start;
        justify-content: flex-start;
    }

.menu.align-right.vertical li {
    display: block;
    text-align: right;
}

    .menu.align-right.vertical li .submenu li {
        text-align: right;
    }

.menu.align-right .nested {
    margin-right: 1rem;
    margin-left: 0;
}

.menu.align-center li {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
}

    .menu.align-center li .submenu li {
        -webkit-justify-content: flex-start;
        -ms-flex-pack: start;
        justify-content: flex-start;
    }

.menu .menu-text {
    padding: 0.7rem 1rem;
    font-weight: bold;
    line-height: 1;
    color: inherit;
}

.menu-centered > .menu {
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
}

    .menu-centered > .menu li {
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-justify-content: center;
        -ms-flex-pack: center;
        justify-content: center;
    }

        .menu-centered > .menu li .submenu li {
            -webkit-justify-content: flex-start;
            -ms-flex-pack: start;
            justify-content: flex-start;
        }

.no-js [data-responsive-menu] ul {
    display: none;
}

.menu-icon {
    position: relative;
    display: inline-block;
    vertical-align: middle;
    width: 20px;
    height: 16px;
    cursor: pointer;
}

    .menu-icon::after {
        position: absolute;
        top: 0;
        left: 0;
        display: block;
        width: 100%;
        height: 2px;
        background: #fefefe;
        box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;
        content: '';
    }

    .menu-icon:hover::after {
        background: #DEDEDE;
        box-shadow: 0 7px 0 #DEDEDE, 0 14px 0 #DEDEDE;
    }

    .menu-icon.dark {
        position: relative;
        display: inline-block;
        vertical-align: middle;
        width: 20px;
        height: 16px;
        cursor: pointer;
    }

        .menu-icon.dark::after {
            position: absolute;
            top: 0;
            left: 0;
            display: block;
            width: 100%;
            height: 2px;
            background: #0a0a0a;
            box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;
            content: '';
        }

        .menu-icon.dark:hover::after {
            background: #AAAAAA;
            box-shadow: 0 7px 0 #AAAAAA, 0 14px 0 #AAAAAA;
        }

.is-drilldown {
    position: relative;
    overflow: hidden;
}

    .is-drilldown li {
        display: block;
    }

    .is-drilldown.animate-height {
        transition: height 0.5s;
    }

.drilldown a, .drilldown .sub-menu .font--black, .sub-menu .drilldown .font--black,
.drilldown .copyright .font--black, .copyright .drilldown .font--black {
    padding: 0.7rem 1rem;
    background: #fefefe;
}

.drilldown .is-drilldown-submenu {
    position: absolute;
    top: 0;
    left: 100%;
    z-index: -1;
    width: 100%;
    background: #fefefe;
    transition: -webkit-transform 0.15s linear;
    transition: transform 0.15s linear;
    transition: transform 0.15s linear, -webkit-transform 0.15s linear;
}

    .drilldown .is-drilldown-submenu.is-active {
        z-index: 1;
        display: block;
        -webkit-transform: translateX(-100%);
        -ms-transform: translateX(-100%);
        transform: translateX(-100%);
    }

    .drilldown .is-drilldown-submenu.is-closing {
        -webkit-transform: translateX(100%);
        -ms-transform: translateX(100%);
        transform: translateX(100%);
    }

    .drilldown .is-drilldown-submenu a, .drilldown .is-drilldown-submenu .sub-menu .font--black, .sub-menu .drilldown .is-drilldown-submenu .font--black,
    .drilldown .is-drilldown-submenu .copyright .font--black, .copyright .drilldown .is-drilldown-submenu .font--black {
        padding: 0.7rem 1rem;
    }

.drilldown .nested.is-drilldown-submenu {
    margin-right: 0;
    margin-left: 0;
}

.drilldown .drilldown-submenu-cover-previous {
    min-height: 100%;
}

.drilldown .is-drilldown-submenu-parent > a, .drilldown .sub-menu .is-drilldown-submenu-parent > .font--black, .sub-menu .drilldown .is-drilldown-submenu-parent > .font--black,
.drilldown .copyright .is-drilldown-submenu-parent > .font--black, .copyright .drilldown .is-drilldown-submenu-parent > .font--black {
    position: relative;
}

    .drilldown .is-drilldown-submenu-parent > a::after, .drilldown .sub-menu .is-drilldown-submenu-parent > .font--black::after, .sub-menu .drilldown .is-drilldown-submenu-parent > .font--black::after,
    .drilldown .copyright .is-drilldown-submenu-parent > .font--black::after, .copyright .drilldown .is-drilldown-submenu-parent > .font--black::after {
        position: absolute;
        top: 50%;
        margin-top: -6px;
        right: 1rem;
        display: block;
        width: 0;
        height: 0;
        border: inset 6px;
        content: '';
        border-right-width: 0;
        border-left-style: solid;
        border-color: transparent transparent transparent #000000;
    }

.drilldown.align-left .is-drilldown-submenu-parent > a::after, .drilldown.align-left .sub-menu .is-drilldown-submenu-parent > .font--black::after, .sub-menu .drilldown.align-left .is-drilldown-submenu-parent > .font--black::after,
.drilldown.align-left .copyright .is-drilldown-submenu-parent > .font--black::after, .copyright .drilldown.align-left .is-drilldown-submenu-parent > .font--black::after {
    left: auto;
    right: 1rem;
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #808080;
}

.drilldown.align-right .is-drilldown-submenu-parent > a::after, .drilldown.align-right .sub-menu .is-drilldown-submenu-parent > .font--black::after, .sub-menu .drilldown.align-right .is-drilldown-submenu-parent > .font--black::after,
.drilldown.align-right .copyright .is-drilldown-submenu-parent > .font--black::after, .copyright .drilldown.align-right .is-drilldown-submenu-parent > .font--black::after {
    right: auto;
    left: 1rem;
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #808080 transparent transparent;
}

.drilldown .js-drilldown-back > a::before, .drilldown .sub-menu .js-drilldown-back > .font--black::before, .sub-menu .drilldown .js-drilldown-back > .font--black::before,
.drilldown .copyright .js-drilldown-back > .font--black::before, .copyright .drilldown .js-drilldown-back > .font--black::before {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #000000 transparent transparent;
    border-left-width: 0;
    display: inline-block;
    vertical-align: middle;
    margin-right: 0.75rem;
    border-left-width: 0;
}

.dropdown-pane {
    position: absolute;
    z-index: 10;
    width: 300px;
    padding: 1rem;
    visibility: hidden;
    display: none;
    border: 1px solid #DEDEDE;
    border-radius: 0;
    background-color: #fefefe;
    font-size: 1rem;
}

    .dropdown-pane.is-opening {
        display: block;
    }

    .dropdown-pane.is-open {
        visibility: visible;
        display: block;
    }

    .dropdown-pane.tiny {
        width: 100px;
    }

    .dropdown-pane.small {
        width: 200px;
    }

    .dropdown-pane.large {
        width: 400px;
    }

.dropdown.menu > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto;
}

.dropdown.menu > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0;
}

.dropdown.menu > li.is-dropdown-submenu-parent > a, .sub-menu .dropdown.menu > li.is-dropdown-submenu-parent > .font--black,
.copyright .dropdown.menu > li.is-dropdown-submenu-parent > .font--black {
    position: relative;
    padding-right: 1.5rem;
}

    .dropdown.menu > li.is-dropdown-submenu-parent > a::after, .sub-menu .dropdown.menu > li.is-dropdown-submenu-parent > .font--black::after,
    .copyright .dropdown.menu > li.is-dropdown-submenu-parent > .font--black::after {
        display: block;
        width: 0;
        height: 0;
        border: inset 6px;
        content: '';
        border-bottom-width: 0;
        border-top-style: solid;
        border-color: #808080 transparent transparent;
        right: 5px;
        left: auto;
        margin-top: -3px;
    }

.dropdown.menu a, .dropdown.menu .sub-menu .font--black, .sub-menu .dropdown.menu .font--black,
.dropdown.menu .copyright .font--black, .copyright .dropdown.menu .font--black {
    padding: 0.7rem 1rem;
}

[data-whatinput='mouse'] .dropdown.menu a, [data-whatinput='mouse'] .dropdown.menu .sub-menu .font--black, .sub-menu [data-whatinput='mouse'] .dropdown.menu .font--black,
[data-whatinput='mouse'] .dropdown.menu .copyright .font--black, .copyright [data-whatinput='mouse'] .dropdown.menu .font--black {
    outline: 0;
}

.dropdown.menu .is-active > a, .dropdown.menu .sub-menu .is-active > .font--black, .sub-menu .dropdown.menu .is-active > .font--black,
.dropdown.menu .copyright .is-active > .font--black, .copyright .dropdown.menu .is-active > .font--black {
    background: transparent;
    color: #f5f5f5;
}

.no-js .dropdown.menu ul {
    display: none;
}

.dropdown.menu .nested.is-dropdown-submenu {
    margin-right: 0;
    margin-left: 0;
}

.dropdown.menu.vertical > li .is-dropdown-submenu {
    top: 0;
}

.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto;
    top: 0;
}

.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%;
}

.dropdown.menu.vertical > li > a::after, .sub-menu .dropdown.menu.vertical > li > .font--black::after,
.copyright .dropdown.menu.vertical > li > .font--black::after {
    right: 14px;
}

.dropdown.menu.vertical > li.opens-left > a::after, .sub-menu .dropdown.menu.vertical > li.opens-left > .font--black::after,
.copyright .dropdown.menu.vertical > li.opens-left > .font--black::after {
    right: auto;
    left: 5px;
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #808080 transparent transparent;
}

.dropdown.menu.vertical > li.opens-right > a::after, .sub-menu .dropdown.menu.vertical > li.opens-right > .font--black::after,
.copyright .dropdown.menu.vertical > li.opens-right > .font--black::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #808080;
}

@media print, screen and (min-width: 40em) {
    .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {
        top: 100%;
        right: 0;
        left: auto;
    }

    .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {
        top: 100%;
        right: auto;
        left: 0;
    }

    .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a, .sub-menu .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > .font--black,
    .copyright .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > .font--black {
        position: relative;
        padding-right: 1.5rem;
    }

        .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after, .sub-menu .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > .font--black::after,
        .copyright .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > .font--black::after {
            display: block;
            width: 0;
            height: 0;
            border: inset 6px;
            content: '';
            border-bottom-width: 0;
            border-top-style: solid;
            border-color: #808080 transparent transparent;
            right: 5px;
            left: auto;
            margin-top: -3px;
        }

    .dropdown.menu.medium-vertical > li .is-dropdown-submenu {
        top: 0;
    }

    .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {
        right: 100%;
        left: auto;
        top: 0;
    }

    .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {
        right: auto;
        left: 100%;
    }

    .dropdown.menu.medium-vertical > li > a::after, .sub-menu .dropdown.menu.medium-vertical > li > .font--black::after,
    .copyright .dropdown.menu.medium-vertical > li > .font--black::after {
        right: 14px;
    }

    .dropdown.menu.medium-vertical > li.opens-left > a::after, .sub-menu .dropdown.menu.medium-vertical > li.opens-left > .font--black::after,
    .copyright .dropdown.menu.medium-vertical > li.opens-left > .font--black::after {
        right: auto;
        left: 5px;
        display: block;
        width: 0;
        height: 0;
        border: inset 6px;
        content: '';
        border-left-width: 0;
        border-right-style: solid;
        border-color: transparent #808080 transparent transparent;
    }

    .dropdown.menu.medium-vertical > li.opens-right > a::after, .sub-menu .dropdown.menu.medium-vertical > li.opens-right > .font--black::after,
    .copyright .dropdown.menu.medium-vertical > li.opens-right > .font--black::after {
        display: block;
        width: 0;
        height: 0;
        border: inset 6px;
        content: '';
        border-right-width: 0;
        border-left-style: solid;
        border-color: transparent transparent transparent #808080;
    }
}

@media print, screen and (min-width: 64em) {
    .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {
        top: 100%;
        right: 0;
        left: auto;
    }

    .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {
        top: 100%;
        right: auto;
        left: 0;
    }

    .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a, .sub-menu .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > .font--black,
    .copyright .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > .font--black {
        position: relative;
        padding-right: 1.5rem;
    }

        .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after, .sub-menu .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > .font--black::after,
        .copyright .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > .font--black::after {
            display: block;
            width: 0;
            height: 0;
            border: inset 6px;
            content: '';
            border-bottom-width: 0;
            border-top-style: solid;
            border-color: #808080 transparent transparent;
            right: 5px;
            left: auto;
            margin-top: -3px;
        }

    .dropdown.menu.large-vertical > li .is-dropdown-submenu {
        top: 0;
    }

    .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {
        right: 100%;
        left: auto;
        top: 0;
    }

    .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {
        right: auto;
        left: 100%;
    }

    .dropdown.menu.large-vertical > li > a::after, .sub-menu .dropdown.menu.large-vertical > li > .font--black::after,
    .copyright .dropdown.menu.large-vertical > li > .font--black::after {
        right: 14px;
    }

    .dropdown.menu.large-vertical > li.opens-left > a::after, .sub-menu .dropdown.menu.large-vertical > li.opens-left > .font--black::after,
    .copyright .dropdown.menu.large-vertical > li.opens-left > .font--black::after {
        right: auto;
        left: 5px;
        display: block;
        width: 0;
        height: 0;
        border: inset 6px;
        content: '';
        border-left-width: 0;
        border-right-style: solid;
        border-color: transparent #808080 transparent transparent;
    }

    .dropdown.menu.large-vertical > li.opens-right > a::after, .sub-menu .dropdown.menu.large-vertical > li.opens-right > .font--black::after,
    .copyright .dropdown.menu.large-vertical > li.opens-right > .font--black::after {
        display: block;
        width: 0;
        height: 0;
        border: inset 6px;
        content: '';
        border-right-width: 0;
        border-left-style: solid;
        border-color: transparent transparent transparent #808080;
    }
}

.dropdown.menu.align-right .is-dropdown-submenu.first-sub {
    top: 100%;
    right: 0;
    left: auto;
}

.is-dropdown-menu.vertical {
    width: 100px;
}

    .is-dropdown-menu.vertical.align-right {
        float: right;
    }

.is-dropdown-submenu-parent {
    position: relative;
}

    .is-dropdown-submenu-parent a::after, .is-dropdown-submenu-parent .sub-menu .font--black::after, .sub-menu .is-dropdown-submenu-parent .font--black::after,
    .is-dropdown-submenu-parent .copyright .font--black::after, .copyright .is-dropdown-submenu-parent .font--black::after {
        position: absolute;
        top: 50%;
        right: 5px;
        left: auto;
        margin-top: -6px;
    }

    .is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {
        top: 100%;
        left: auto;
    }

    .is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {
        right: 100%;
        left: auto;
    }

    .is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {
        right: auto;
        left: 100%;
    }

.is-dropdown-submenu {
    position: absolute;
    top: 0;
    left: 100%;
    z-index: 1;
    display: none;
    min-width: 200px;
    border: 1px solid #DEDEDE;
    background: #fefefe;
}

.dropdown .is-dropdown-submenu a, .dropdown .is-dropdown-submenu .sub-menu .font--black, .sub-menu .dropdown .is-dropdown-submenu .font--black,
.dropdown .is-dropdown-submenu .copyright .font--black, .copyright .dropdown .is-dropdown-submenu .font--black {
    padding: 0.7rem 1rem;
}

.is-dropdown-submenu .is-dropdown-submenu-parent > a::after, .is-dropdown-submenu .sub-menu .is-dropdown-submenu-parent > .font--black::after, .sub-menu .is-dropdown-submenu .is-dropdown-submenu-parent > .font--black::after,
.is-dropdown-submenu .copyright .is-dropdown-submenu-parent > .font--black::after, .copyright .is-dropdown-submenu .is-dropdown-submenu-parent > .font--black::after {
    right: 14px;
}

.is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after, .is-dropdown-submenu .sub-menu .is-dropdown-submenu-parent.opens-left > .font--black::after, .sub-menu .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > .font--black::after,
.is-dropdown-submenu .copyright .is-dropdown-submenu-parent.opens-left > .font--black::after, .copyright .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > .font--black::after {
    right: auto;
    left: 5px;
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #808080 transparent transparent;
}

.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after, .is-dropdown-submenu .sub-menu .is-dropdown-submenu-parent.opens-right > .font--black::after, .sub-menu .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > .font--black::after,
.is-dropdown-submenu .copyright .is-dropdown-submenu-parent.opens-right > .font--black::after, .copyright .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > .font--black::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #808080;
}

.is-dropdown-submenu .is-dropdown-submenu {
    margin-top: -1px;
}

.is-dropdown-submenu > li {
    width: 100%;
}

.is-dropdown-submenu.js-dropdown-active {
    display: block;
}

.responsive-embed,
.flex-video {
    position: relative;
    height: 0;
    margin-bottom: 1rem;
    padding-bottom: 75%;
    overflow: hidden;
}

    .responsive-embed iframe,
    .responsive-embed object,
    .responsive-embed embed,
    .responsive-embed video,
    .flex-video iframe,
    .flex-video object,
    .flex-video embed,
    .flex-video video {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }

    .responsive-embed.widescreen,
    .flex-video.widescreen {
        padding-bottom: 56.25%;
    }

.label {
    display: inline-block;
    padding: 0.33333rem 0.5rem;
    border-radius: 0;
    font-size: 0.8rem;
    line-height: 1;
    white-space: nowrap;
    cursor: default;
    background: #000000;
    color: #fefefe;
}

    .label.primary {
        background: #000000;
        color: #fefefe;
    }

    .label.secondary {
        background: #ffffff;
        color: #0a0a0a;
    }

    .label.success {
        background: #3adb76;
        color: #0a0a0a;
    }

    .label.warning {
        background: #ffae00;
        color: #0a0a0a;
    }

    .label.alert {
        background: #cc4b37;
        color: #fefefe;
    }

.media-object {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    margin-bottom: 2.5rem;
    -webkit-flex-wrap: nowrap;
    -ms-flex-wrap: nowrap;
    flex-wrap: nowrap;
}

    .media-object img {
        max-width: none;
    }

@media screen and (max-width: 39.9375em) {
    .media-object.stack-for-small {
        -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    }
}

@media screen and (max-width: 39.9375em) {
    .media-object.stack-for-small .media-object-section {
        padding: 0;
        padding-bottom: 1rem;
        -webkit-flex-basis: 100%;
        -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
        max-width: 100%;
    }

        .media-object.stack-for-small .media-object-section img {
            width: 100%;
        }
}

.media-object-section {
    -webkit-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
}

    .media-object-section:first-child {
        padding-right: 1rem;
    }

    .media-object-section:last-child:not(:nth-child(2)) {
        padding-left: 1rem;
    }

    .media-object-section > :last-child {
        margin-bottom: 0;
    }

    .media-object-section.main-section {
        -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
        flex: 1 1 0px;
    }

.is-off-canvas-open {
    overflow: hidden;
}

.js-off-canvas-overlay {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 11;
    width: 100%;
    height: 100%;
    transition: opacity 0.5s ease, visibility 0.5s ease;
    background: rgba(254, 254, 254, 0.25);
    opacity: 0;
    visibility: hidden;
    overflow: hidden;
}

    .js-off-canvas-overlay.is-visible {
        opacity: 1;
        visibility: visible;
    }

    .js-off-canvas-overlay.is-closable {
        cursor: pointer;
    }

    .js-off-canvas-overlay.is-overlay-absolute {
        position: absolute;
    }

    .js-off-canvas-overlay.is-overlay-fixed {
        position: fixed;
    }

.off-canvas-wrapper {
    position: relative;
    overflow: hidden;
}

.off-canvas {
    position: fixed;
    z-index: 12;
    transition: -webkit-transform 0.5s ease;
    transition: transform 0.5s ease;
    transition: transform 0.5s ease, -webkit-transform 0.5s ease;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    background: #FF9E31;
}

[data-whatinput='mouse'] .off-canvas {
    outline: 0;
}

.off-canvas.is-transition-push {
    z-index: 12;
}

.off-canvas.is-closed {
    visibility: hidden;
}

.off-canvas.is-transition-overlap {
    z-index: 13;
}

    .off-canvas.is-transition-overlap.is-open {
        box-shadow: 0 0 10px rgba(10, 10, 10, 0.7);
    }

.off-canvas.is-open {
    -webkit-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    transform: translate(0, 0);
}

.off-canvas-absolute {
    position: absolute;
    z-index: 12;
    transition: -webkit-transform 0.5s ease;
    transition: transform 0.5s ease;
    transition: transform 0.5s ease, -webkit-transform 0.5s ease;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    background: #FF9E31;
}

[data-whatinput='mouse'] .off-canvas-absolute {
    outline: 0;
}

.off-canvas-absolute.is-transition-push {
    z-index: 12;
}

.off-canvas-absolute.is-closed {
    visibility: hidden;
}

.off-canvas-absolute.is-transition-overlap {
    z-index: 13;
}

    .off-canvas-absolute.is-transition-overlap.is-open {
        box-shadow: 0 0 10px rgba(10, 10, 10, 0.7);
    }

.off-canvas-absolute.is-open {
    -webkit-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    transform: translate(0, 0);
}

.position-left {
    top: 0;
    left: 0;
    height: 100%;
    overflow-y: auto;
    width: 100%;
    -webkit-transform: translateX(-100%);
    -ms-transform: translateX(-100%);
    transform: translateX(-100%);
}

.off-canvas-content .off-canvas.position-left {
    -webkit-transform: translateX(-100%);
    -ms-transform: translateX(-100%);
    transform: translateX(-100%);
}

    .off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open {
        -webkit-transform: translate(0, 0);
        -ms-transform: translate(0, 0);
        transform: translate(0, 0);
    }

.off-canvas-content.is-open-left.has-transition-push {
    -webkit-transform: translateX(100%);
    -ms-transform: translateX(100%);
    transform: translateX(100%);
}

.position-left.is-transition-push {
    box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25);
}

.position-right {
    top: 0;
    right: 0;
    height: 100%;
    overflow-y: auto;
    width: 100%;
    -webkit-transform: translateX(100%);
    -ms-transform: translateX(100%);
    transform: translateX(100%);
}

.off-canvas-content .off-canvas.position-right {
    -webkit-transform: translateX(100%);
    -ms-transform: translateX(100%);
    transform: translateX(100%);
}

    .off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open {
        -webkit-transform: translate(0, 0);
        -ms-transform: translate(0, 0);
        transform: translate(0, 0);
    }

.off-canvas-content.is-open-right.has-transition-push {
    -webkit-transform: translateX(-100%);
    -ms-transform: translateX(-100%);
    transform: translateX(-100%);
}

.position-right.is-transition-push {
    box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25);
}

.position-top {
    top: 0;
    left: 0;
    width: 100%;
    overflow-x: auto;
    height: 250px;
    -webkit-transform: translateY(-250px);
    -ms-transform: translateY(-250px);
    transform: translateY(-250px);
}

.off-canvas-content .off-canvas.position-top {
    -webkit-transform: translateY(-250px);
    -ms-transform: translateY(-250px);
    transform: translateY(-250px);
}

    .off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open {
        -webkit-transform: translate(0, 0);
        -ms-transform: translate(0, 0);
        transform: translate(0, 0);
    }

.off-canvas-content.is-open-top.has-transition-push {
    -webkit-transform: translateY(250px);
    -ms-transform: translateY(250px);
    transform: translateY(250px);
}

.position-top.is-transition-push {
    box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25);
}

.position-bottom {
    bottom: 0;
    left: 0;
    width: 100%;
    overflow-x: auto;
    height: 250px;
    -webkit-transform: translateY(250px);
    -ms-transform: translateY(250px);
    transform: translateY(250px);
}

.off-canvas-content .off-canvas.position-bottom {
    -webkit-transform: translateY(250px);
    -ms-transform: translateY(250px);
    transform: translateY(250px);
}

    .off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open {
        -webkit-transform: translate(0, 0);
        -ms-transform: translate(0, 0);
        transform: translate(0, 0);
    }

.off-canvas-content.is-open-bottom.has-transition-push {
    -webkit-transform: translateY(-250px);
    -ms-transform: translateY(-250px);
    transform: translateY(-250px);
}

.position-bottom.is-transition-push {
    box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25);
}

.off-canvas-content {
    -webkit-transform: none;
    -ms-transform: none;
    transform: none;
    transition: -webkit-transform 0.5s ease;
    transition: transform 0.5s ease;
    transition: transform 0.5s ease, -webkit-transform 0.5s ease;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

    .off-canvas-content.has-transition-push {
        -webkit-transform: translate(0, 0);
        -ms-transform: translate(0, 0);
        transform: translate(0, 0);
    }

    .off-canvas-content .off-canvas.is-open {
        -webkit-transform: translate(0, 0);
        -ms-transform: translate(0, 0);
        transform: translate(0, 0);
    }

@media print, screen and (min-width: 40em) {
    .position-left.reveal-for-medium {
        -webkit-transform: none;
        -ms-transform: none;
        transform: none;
        z-index: 12;
        transition: none;
        visibility: visible;
    }

        .position-left.reveal-for-medium .close-button, .position-left.reveal-for-medium .search__container .search-close-button, .search__container .position-left.reveal-for-medium .search-close-button {
            display: none;
        }

    .off-canvas-content .position-left.reveal-for-medium {
        -webkit-transform: none;
        -ms-transform: none;
        transform: none;
    }

    .off-canvas-content.has-reveal-left {
        margin-left: 100%;
    }

    .position-left.reveal-for-medium ~ .off-canvas-content {
        margin-left: 100%;
    }

    .position-right.reveal-for-medium {
        -webkit-transform: none;
        -ms-transform: none;
        transform: none;
        z-index: 12;
        transition: none;
        visibility: visible;
    }

        .position-right.reveal-for-medium .close-button, .position-right.reveal-for-medium .search__container .search-close-button, .search__container .position-right.reveal-for-medium .search-close-button {
            display: none;
        }

    .off-canvas-content .position-right.reveal-for-medium {
        -webkit-transform: none;
        -ms-transform: none;
        transform: none;
    }

    .off-canvas-content.has-reveal-right {
        margin-right: 100%;
    }

    .position-right.reveal-for-medium ~ .off-canvas-content {
        margin-right: 100%;
    }

    .position-top.reveal-for-medium {
        -webkit-transform: none;
        -ms-transform: none;
        transform: none;
        z-index: 12;
        transition: none;
        visibility: visible;
    }

        .position-top.reveal-for-medium .close-button, .position-top.reveal-for-medium .search__container .search-close-button, .search__container .position-top.reveal-for-medium .search-close-button {
            display: none;
        }

    .off-canvas-content .position-top.reveal-for-medium {
        -webkit-transform: none;
        -ms-transform: none;
        transform: none;
    }

    .off-canvas-content.has-reveal-top {
        margin-top: 100%;
    }

    .position-top.reveal-for-medium ~ .off-canvas-content {
        margin-top: 100%;
    }

    .position-bottom.reveal-for-medium {
        -webkit-transform: none;
        -ms-transform: none;
        transform: none;
        z-index: 12;
        transition: none;
        visibility: visible;
    }

        .position-bottom.reveal-for-medium .close-button, .position-bottom.reveal-for-medium .search__container .search-close-button, .search__container .position-bottom.reveal-for-medium .search-close-button {
            display: none;
        }

    .off-canvas-content .position-bottom.reveal-for-medium {
        -webkit-transform: none;
        -ms-transform: none;
        transform: none;
    }

    .off-canvas-content.has-reveal-bottom {
        margin-bottom: 100%;
    }

    .position-bottom.reveal-for-medium ~ .off-canvas-content {
        margin-bottom: 100%;
    }
}

@media print, screen and (min-width: 64em) {
    .position-left.reveal-for-large {
        -webkit-transform: none;
        -ms-transform: none;
        transform: none;
        z-index: 12;
        transition: none;
        visibility: visible;
    }

        .position-left.reveal-for-large .close-button, .position-left.reveal-for-large .search__container .search-close-button, .search__container .position-left.reveal-for-large .search-close-button {
            display: none;
        }

    .off-canvas-content .position-left.reveal-for-large {
        -webkit-transform: none;
        -ms-transform: none;
        transform: none;
    }

    .off-canvas-content.has-reveal-left {
        margin-left: 100%;
    }

    .position-left.reveal-for-large ~ .off-canvas-content {
        margin-left: 100%;
    }

    .position-right.reveal-for-large {
        -webkit-transform: none;
        -ms-transform: none;
        transform: none;
        z-index: 12;
        transition: none;
        visibility: visible;
    }

        .position-right.reveal-for-large .close-button, .position-right.reveal-for-large .search__container .search-close-button, .search__container .position-right.reveal-for-large .search-close-button {
            display: none;
        }

    .off-canvas-content .position-right.reveal-for-large {
        -webkit-transform: none;
        -ms-transform: none;
        transform: none;
    }

    .off-canvas-content.has-reveal-right {
        margin-right: 100%;
    }

    .position-right.reveal-for-large ~ .off-canvas-content {
        margin-right: 100%;
    }

    .position-top.reveal-for-large {
        -webkit-transform: none;
        -ms-transform: none;
        transform: none;
        z-index: 12;
        transition: none;
        visibility: visible;
    }

        .position-top.reveal-for-large .close-button, .position-top.reveal-for-large .search__container .search-close-button, .search__container .position-top.reveal-for-large .search-close-button {
            display: none;
        }

    .off-canvas-content .position-top.reveal-for-large {
        -webkit-transform: none;
        -ms-transform: none;
        transform: none;
    }

    .off-canvas-content.has-reveal-top {
        margin-top: 100%;
    }

    .position-top.reveal-for-large ~ .off-canvas-content {
        margin-top: 100%;
    }

    .position-bottom.reveal-for-large {
        -webkit-transform: none;
        -ms-transform: none;
        transform: none;
        z-index: 12;
        transition: none;
        visibility: visible;
    }

        .position-bottom.reveal-for-large .close-button, .position-bottom.reveal-for-large .search__container .search-close-button, .search__container .position-bottom.reveal-for-large .search-close-button {
            display: none;
        }

    .off-canvas-content .position-bottom.reveal-for-large {
        -webkit-transform: none;
        -ms-transform: none;
        transform: none;
    }

    .off-canvas-content.has-reveal-bottom {
        margin-bottom: 100%;
    }

    .position-bottom.reveal-for-large ~ .off-canvas-content {
        margin-bottom: 100%;
    }
}

@media print, screen and (min-width: 40em) {
    .off-canvas.in-canvas-for-medium {
        visibility: visible;
        height: auto;
        position: static;
        background: inherit;
        width: inherit;
        overflow: inherit;
        transition: inherit;
    }

        .off-canvas.in-canvas-for-medium.position-left, .off-canvas.in-canvas-for-medium.position-right, .off-canvas.in-canvas-for-medium.position-top, .off-canvas.in-canvas-for-medium.position-bottom {
            box-shadow: none;
            -webkit-transform: none;
            -ms-transform: none;
            transform: none;
        }

        .off-canvas.in-canvas-for-medium .close-button, .off-canvas.in-canvas-for-medium .search__container .search-close-button, .search__container .off-canvas.in-canvas-for-medium .search-close-button {
            display: none;
        }
}

@media print, screen and (min-width: 64em) {
    .off-canvas.in-canvas-for-large {
        visibility: visible;
        height: auto;
        position: static;
        background: inherit;
        width: inherit;
        overflow: inherit;
        transition: inherit;
    }

        .off-canvas.in-canvas-for-large.position-left, .off-canvas.in-canvas-for-large.position-right, .off-canvas.in-canvas-for-large.position-top, .off-canvas.in-canvas-for-large.position-bottom {
            box-shadow: none;
            -webkit-transform: none;
            -ms-transform: none;
            transform: none;
        }

        .off-canvas.in-canvas-for-large .close-button, .off-canvas.in-canvas-for-large .search__container .search-close-button, .search__container .off-canvas.in-canvas-for-large .search-close-button {
            display: none;
        }
}

.orbit {
    position: relative;
}

.orbit-container {
    position: relative;
    height: 0;
    margin: 0;
    list-style: none;
    overflow: hidden;
}

.orbit-slide {
    width: 100%;
}

    .orbit-slide.no-motionui.is-active {
        top: 0;
        left: 0;
    }

.orbit-figure {
    margin: 0;
}

.orbit-image {
    width: 100%;
    max-width: 100%;
    margin: 0;
}

.orbit-caption {
    position: absolute;
    bottom: 0;
    width: 100%;
    margin-bottom: 0;
    padding: 1rem;
    background-color: rgba(10, 10, 10, 0.5);
    color: #fefefe;
}

.orbit-previous, .orbit-next {
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    z-index: 10;
    padding: 1rem;
    color: #fefefe;
}

[data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {
    outline: 0;
}

.orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {
    background-color: rgba(10, 10, 10, 0.5);
}

.orbit-previous {
    left: 0;
}

.orbit-next {
    left: auto;
    right: 0;
}

.orbit-bullets {
    position: relative;
    margin-top: 0.8rem;
    margin-bottom: 0.8rem;
    text-align: center;
}

[data-whatinput='mouse'] .orbit-bullets {
    outline: 0;
}

.orbit-bullets button {
    width: 1.2rem;
    height: 1.2rem;
    margin: 0.1rem;
    border-radius: 50%;
    background-color: #DEDEDE;
}

    .orbit-bullets button:hover {
        background-color: #AAAAAA;
    }

    .orbit-bullets button.is-active {
        background-color: #AAAAAA;
    }

.pagination {
    margin-left: 0;
    margin-bottom: 2.5rem;
}

    .pagination::before, .pagination::after {
        display: table;
        content: ' ';
        -webkit-flex-basis: 0;
        -ms-flex-preferred-size: 0;
        flex-basis: 0;
        -webkit-order: 1;
        -ms-flex-order: 1;
        order: 1;
    }

    .pagination::after {
        clear: both;
    }

    .pagination li {
        margin-right: 0.0625rem;
        border-radius: 0;
        font-size: 0.875rem;
        display: none;
    }

        .pagination li:last-child, .pagination li:first-child {
            display: inline-block;
        }

@media print, screen and (min-width: 40em) {
    .pagination li {
        display: inline-block;
    }
}

.pagination a, .pagination .sub-menu .font--black, .sub-menu .pagination .font--black,
.pagination .copyright .font--black, .copyright .pagination .font--black,
.pagination button {
    display: block;
    padding: 0.1875rem 0.625rem;
    border-radius: 0;
    color: #0a0a0a;
}

    .pagination a:hover, .pagination .sub-menu .font--black:hover, .sub-menu .pagination .font--black:hover,
    .pagination .copyright .font--black:hover, .copyright .pagination .font--black:hover,
    .pagination button:hover {
        background: #f5f5f5;
    }

.pagination .current {
    padding: 0.1875rem 0.625rem;
    background: #000000;
    color: #fefefe;
    cursor: default;
}

.pagination .disabled {
    padding: 0.1875rem 0.625rem;
    color: #DEDEDE;
    cursor: not-allowed;
}

    .pagination .disabled:hover {
        background: transparent;
    }

.pagination .ellipsis::after {
    padding: 0.1875rem 0.625rem;
    content: '\2026';
    color: #0a0a0a;
}

.pagination-previous a::before, .pagination-previous .sub-menu .font--black::before, .sub-menu .pagination-previous .font--black::before,
.pagination-previous .copyright .font--black::before, .copyright .pagination-previous .font--black::before,
.pagination-previous.disabled::before {
    display: inline-block;
    margin-right: 0.5rem;
    content: '\00ab';
}

.pagination-next a::after, .pagination-next .sub-menu .font--black::after, .sub-menu .pagination-next .font--black::after,
.pagination-next .copyright .font--black::after, .copyright .pagination-next .font--black::after,
.pagination-next.disabled::after {
    display: inline-block;
    margin-left: 0.5rem;
    content: '\00bb';
}

.progress {
    height: 1rem;
    margin-bottom: 2.5rem;
    border-radius: 0;
    background-color: #DEDEDE;
}

    .progress.primary .progress-meter {
        background-color: #000000;
    }

    .progress.secondary .progress-meter {
        background-color: #ffffff;
    }

    .progress.success .progress-meter {
        background-color: #3adb76;
    }

    .progress.warning .progress-meter {
        background-color: #ffae00;
    }

    .progress.alert .progress-meter {
        background-color: #cc4b37;
    }

.progress-meter {
    position: relative;
    display: block;
    width: 0%;
    height: 100%;
    background-color: #000000;
}

.progress-meter-text {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    position: absolute;
    margin: 0;
    font-size: 0.75rem;
    font-weight: bold;
    color: #fefefe;
    white-space: nowrap;
}

.slider {
    position: relative;
    height: 0.5rem;
    margin-top: 1.25rem;
    margin-bottom: 2.25rem;
    background-color: #f5f5f5;
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -ms-touch-action: none;
    touch-action: none;
}

.slider-fill {
    position: absolute;
    top: 0;
    left: 0;
    display: inline-block;
    max-width: 100%;
    height: 0.5rem;
    background-color: #DEDEDE;
    transition: all 0.2s ease-in-out;
}

    .slider-fill.is-dragging {
        transition: all 0s linear;
    }

.slider-handle {
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    left: 0;
    z-index: 1;
    display: inline-block;
    width: 1.4rem;
    height: 1.4rem;
    border-radius: 0;
    background-color: #000000;
    transition: all 0.2s ease-in-out;
    -ms-touch-action: manipulation;
    touch-action: manipulation;
}

[data-whatinput='mouse'] .slider-handle {
    outline: 0;
}

.slider-handle:hover {
    background-color: black;
}

.slider-handle.is-dragging {
    transition: all 0s linear;
}

.slider.disabled,
.slider[disabled] {
    opacity: 0.25;
    cursor: not-allowed;
}

.slider.vertical {
    display: inline-block;
    width: 0.5rem;
    height: 12.5rem;
    margin: 0 1.25rem;
    -webkit-transform: scale(1, -1);
    -ms-transform: scale(1, -1);
    transform: scale(1, -1);
}

    .slider.vertical .slider-fill {
        top: 0;
        width: 0.5rem;
        max-height: 100%;
    }

    .slider.vertical .slider-handle {
        position: absolute;
        top: 0;
        left: 50%;
        width: 1.4rem;
        height: 1.4rem;
        -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
        transform: translateX(-50%);
    }

.sticky-container {
    position: relative;
}

.sticky {
    position: relative;
    z-index: 0;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
}

    .sticky.is-stuck {
        position: fixed;
        z-index: 5;
        width: 100%;
    }

        .sticky.is-stuck.is-at-top {
            top: 0;
        }

        .sticky.is-stuck.is-at-bottom {
            bottom: 0;
        }

    .sticky.is-anchored {
        position: relative;
        right: auto;
        left: auto;
    }

        .sticky.is-anchored.is-at-bottom {
            bottom: 0;
        }

body.is-reveal-open {
    overflow: hidden;
}

html.is-reveal-open,
html.is-reveal-open body {
    min-height: 100%;
    overflow: hidden;
    position: fixed;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.reveal-overlay {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1005;
    display: none;
    background-color: rgba(10, 10, 10, 0.45);
    overflow-y: scroll;
}

.reveal {
    z-index: 1006;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    display: none;
    padding: 1rem;
    border: 1px solid #DEDEDE;
    border-radius: 0;
    background-color: #fefefe;
    position: relative;
    top: 100px;
    margin-right: auto;
    margin-left: auto;
    overflow-y: auto;
}

[data-whatinput='mouse'] .reveal {
    outline: 0;
}

@media print, screen and (min-width: 40em) {
    .reveal {
        min-height: 0;
    }
}

.reveal .column {
    min-width: 0;
}

.reveal > :last-child {
    margin-bottom: 0;
}

@media print, screen and (min-width: 40em) {
    .reveal {
        width: 600px;
        max-width: 75rem;
    }
}

.reveal.collapse {
    padding: 0;
}

@media print, screen and (min-width: 40em) {
    .reveal.tiny {
        width: 30%;
        max-width: 75rem;
    }
}

@media print, screen and (min-width: 40em) {
    .reveal.small {
        width: 50%;
        max-width: 75rem;
    }
}

@media print, screen and (min-width: 40em) {
    .reveal.large {
        width: 90%;
        max-width: 75rem;
    }
}

.reveal.full {
    top: 0;
    left: 0;
    width: 100%;
    max-width: none;
    height: 100%;
    height: 100vh;
    min-height: 100vh;
    margin-left: 0;
    border: 0;
    border-radius: 0;
}

@media screen and (max-width: 39.9375em) {
    .reveal {
        top: 0;
        left: 0;
        width: 100%;
        max-width: none;
        height: 100%;
        height: 100vh;
        min-height: 100vh;
        margin-left: 0;
        border: 0;
        border-radius: 0;
    }
}

.reveal.without-overlay {
    position: fixed;
}

.switch {
    height: 2rem;
    position: relative;
    margin-bottom: 2.5rem;
    outline: 0;
    font-size: 0.875rem;
    font-weight: bold;
    color: #fefefe;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.switch-input {
    position: absolute;
    margin-bottom: 0;
    opacity: 0;
}

.switch-paddle {
    position: relative;
    display: block;
    width: 4rem;
    height: 2rem;
    border-radius: 0;
    background: #DEDEDE;
    transition: all 0.25s ease-out;
    font-weight: inherit;
    color: inherit;
    cursor: pointer;
}

input + .switch-paddle {
    margin: 0;
}

.switch-paddle::after {
    position: absolute;
    top: 0.25rem;
    left: 0.25rem;
    display: block;
    width: 1.5rem;
    height: 1.5rem;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    border-radius: 0;
    background: #fefefe;
    transition: all 0.25s ease-out;
    content: '';
}

input:checked ~ .switch-paddle {
    background: #000000;
}

    input:checked ~ .switch-paddle::after {
        left: 2.25rem;
    }

[data-whatinput='mouse'] input:focus ~ .switch-paddle {
    outline: 0;
}

.switch-active, .switch-inactive {
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
}

.switch-active {
    left: 8%;
    display: none;
}

input:checked + label > .switch-active {
    display: block;
}

.switch-inactive {
    right: 15%;
}

input:checked + label > .switch-inactive {
    display: none;
}

.switch.tiny {
    height: 1.5rem;
}

    .switch.tiny .switch-paddle {
        width: 3rem;
        height: 1.5rem;
        font-size: 0.625rem;
    }

        .switch.tiny .switch-paddle::after {
            top: 0.25rem;
            left: 0.25rem;
            width: 1rem;
            height: 1rem;
        }

    .switch.tiny input:checked ~ .switch-paddle::after {
        left: 1.75rem;
    }

.switch.small {
    height: 1.75rem;
}

    .switch.small .switch-paddle {
        width: 3.5rem;
        height: 1.75rem;
        font-size: 0.75rem;
    }

        .switch.small .switch-paddle::after {
            top: 0.25rem;
            left: 0.25rem;
            width: 1.25rem;
            height: 1.25rem;
        }

    .switch.small input:checked ~ .switch-paddle::after {
        left: 2rem;
    }

.switch.large {
    height: 2.5rem;
}

    .switch.large .switch-paddle {
        width: 5rem;
        height: 2.5rem;
        font-size: 1rem;
    }

        .switch.large .switch-paddle::after {
            top: 0.25rem;
            left: 0.25rem;
            width: 2rem;
            height: 2rem;
        }

    .switch.large input:checked ~ .switch-paddle::after {
        left: 2.75rem;
    }

table {
    border-collapse: collapse;
    width: 100%;
    margin-bottom: 2.5rem;
    border-radius: 0;
}

thead,
tbody,
tfoot {
    border: 1px solid #f1f1f1;
    background-color: #fefefe;
}

caption {
    padding: 0.5rem 0.625rem 0.625rem;
    font-weight: bold;
}

thead {
    background: #f8f8f8;
    color: #0a0a0a;
}

tfoot {
    background: #f1f1f1;
    color: #0a0a0a;
}

    thead tr,
    tfoot tr {
        background: transparent;
    }

    thead th,
    thead td,
    tfoot th,
    tfoot td {
        padding: 0.5rem 0.625rem 0.625rem;
        font-weight: bold;
        text-align: left;
    }

tbody th,
tbody td {
    padding: 0.5rem 0.625rem 0.625rem;
}

tbody tr:nth-child(even) {
    border-bottom: 0;
    background-color: #f1f1f1;
}

table.unstriped tbody {
    background-color: #fefefe;
}

    table.unstriped tbody tr {
        border-bottom: 0;
        border-bottom: 1px solid #f1f1f1;
        background-color: #fefefe;
    }

@media screen and (max-width: 63.9375em) {
    table.stack thead {
        display: none;
    }

    table.stack tfoot {
        display: none;
    }

    table.stack tr,
    table.stack th,
    table.stack td {
        display: block;
    }

    table.stack td {
        border-top: 0;
    }
}

table.scroll {
    display: block;
    width: 100%;
    overflow-x: auto;
}

table.hover thead tr:hover {
    background-color: #f3f3f3;
}

table.hover tfoot tr:hover {
    background-color: #ececec;
}

table.hover tbody tr:hover {
    background-color: #f9f9f9;
}

table.hover:not(.unstriped) tr:nth-of-type(even):hover {
    background-color: #ececec;
}

.table-scroll {
    overflow-x: auto;
}

    .table-scroll table {
        width: auto;
    }

.tabs {
    margin: 0;
    border: 1px solid #f5f5f5;
    background: #fefefe;
    list-style-type: none;
}

    .tabs::before, .tabs::after {
        display: table;
        content: ' ';
        -webkit-flex-basis: 0;
        -ms-flex-preferred-size: 0;
        flex-basis: 0;
        -webkit-order: 1;
        -ms-flex-order: 1;
        order: 1;
    }

    .tabs::after {
        clear: both;
    }

    .tabs.vertical > li {
        display: block;
        float: none;
        width: auto;
    }

    .tabs.simple > li > a, .sub-menu .tabs.simple > li > .font--black,
    .copyright .tabs.simple > li > .font--black {
        padding: 0;
    }

        .tabs.simple > li > a:hover, .sub-menu .tabs.simple > li > .font--black:hover,
        .copyright .tabs.simple > li > .font--black:hover {
            background: transparent;
        }

    .tabs.primary {
        background: #000000;
    }

        .tabs.primary > li > a, .sub-menu .tabs.primary > li > .font--black,
        .copyright .tabs.primary > li > .font--black {
            color: #fefefe;
        }

            .tabs.primary > li > a:hover, .sub-menu .tabs.primary > li > .font--black:hover,
            .copyright .tabs.primary > li > .font--black:hover, .tabs.primary > li > a:focus, .sub-menu .tabs.primary > li > .font--black:focus,
            .copyright .tabs.primary > li > .font--black:focus {
                background: #0d0d0d;
            }

.tabs-title {
    float: left;
}

    .tabs-title > a, .sub-menu .tabs-title > .font--black,
    .copyright .tabs-title > .font--black {
        display: block;
        padding: 1.25rem 1.5rem;
        font-size: 0.75rem;
        line-height: 1;
        color: #000000;
    }

        .tabs-title > a:hover, .sub-menu .tabs-title > .font--black:hover,
        .copyright .tabs-title > .font--black:hover {
            background: #fefefe;
            color: black;
        }

        .tabs-title > a:focus, .sub-menu .tabs-title > .font--black:focus,
        .copyright .tabs-title > .font--black:focus, .tabs-title > a[aria-selected='true'], .sub-menu .tabs-title > .font--black[aria-selected='true'],
        .copyright .tabs-title > .font--black[aria-selected='true'] {
            background: #f5f5f5;
            color: #000000;
        }

.tabs-content {
    border: 1px solid #f5f5f5;
    border-top: 0;
    background: #fefefe;
    color: #0a0a0a;
    transition: all 0.5s ease;
}

    .tabs-content.vertical {
        border: 1px solid #f5f5f5;
        border-left: 0;
    }

.tabs-panel {
    display: none;
    padding: 1rem;
}

    .tabs-panel.is-active {
        display: block;
    }

.thumbnail {
    display: inline-block;
    max-width: 100%;
    margin-bottom: 2.5rem;
    border: solid 4px #fefefe;
    border-radius: 0;
    box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);
    line-height: 0;
}

a.thumbnail, .sub-menu .thumbnail.font--black,
.copyright .thumbnail.font--black {
    transition: box-shadow 200ms ease-out;
}

    a.thumbnail:hover, .sub-menu .thumbnail.font--black:hover,
    .copyright .thumbnail.font--black:hover, a.thumbnail:focus, .sub-menu .thumbnail.font--black:focus,
    .copyright .thumbnail.font--black:focus {
        box-shadow: 0 0 6px 1px rgba(0, 0, 0, 0.5);
    }

    a.thumbnail image, .sub-menu .thumbnail.font--black image, .copyright .thumbnail.font--black image {
        box-shadow: none;
    }

.title-bar {
    padding: 0.5rem;
    background: #ffffff;
    color: #000000;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: flex-start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
}

    .title-bar .menu-icon {
        margin-left: 0.25rem;
        margin-right: 0.25rem;
    }

.title-bar-left,
.title-bar-right {
    -webkit-flex: 1 1 0px;
    -ms-flex: 1 1 0px;
    flex: 1 1 0px;
}

.title-bar-right {
    text-align: right;
}

.title-bar-title {
    display: inline-block;
    vertical-align: middle;
    font-weight: bold;
}

.has-tip {
    position: relative;
    display: inline-block;
    border-bottom: dotted 1px #AAAAAA;
    font-weight: bold;
    cursor: help;
}

.tooltip {
    position: absolute;
    top: calc(100% + 0.6495rem);
    z-index: 1200;
    max-width: 10rem;
    padding: 0.75rem;
    border-radius: 0;
    background-color: #0a0a0a;
    font-size: 80%;
    color: #fefefe;
}

    .tooltip::before {
        position: absolute;
    }

    .tooltip.bottom::before {
        display: block;
        width: 0;
        height: 0;
        border: inset 0.75rem;
        content: '';
        border-top-width: 0;
        border-bottom-style: solid;
        border-color: transparent transparent #0a0a0a;
        bottom: 100%;
    }

    .tooltip.bottom.align-center::before {
        left: 50%;
        -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
        transform: translateX(-50%);
    }

    .tooltip.top::before {
        display: block;
        width: 0;
        height: 0;
        border: inset 0.75rem;
        content: '';
        border-bottom-width: 0;
        border-top-style: solid;
        border-color: #0a0a0a transparent transparent;
        top: 100%;
        bottom: auto;
    }

    .tooltip.top.align-center::before {
        left: 50%;
        -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
        transform: translateX(-50%);
    }

    .tooltip.left::before {
        display: block;
        width: 0;
        height: 0;
        border: inset 0.75rem;
        content: '';
        border-right-width: 0;
        border-left-style: solid;
        border-color: transparent transparent transparent #0a0a0a;
        left: 100%;
    }

    .tooltip.left.align-center::before {
        bottom: auto;
        top: 50%;
        -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
        transform: translateY(-50%);
    }

    .tooltip.right::before {
        display: block;
        width: 0;
        height: 0;
        border: inset 0.75rem;
        content: '';
        border-left-width: 0;
        border-right-style: solid;
        border-color: transparent #0a0a0a transparent transparent;
        right: 100%;
        left: auto;
    }

    .tooltip.right.align-center::before {
        bottom: auto;
        top: 50%;
        -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
        transform: translateY(-50%);
    }

    .tooltip.align-top::before {
        bottom: auto;
        top: 10%;
    }

    .tooltip.align-bottom::before {
        bottom: 10%;
        top: auto;
    }

    .tooltip.align-left::before {
        left: 10%;
        right: auto;
    }

    .tooltip.align-right::before {
        left: auto;
        right: 10%;
    }

.top-bar {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: nowrap;
    -ms-flex-wrap: nowrap;
    flex-wrap: nowrap;
    -webkit-justify-content: space-between;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    padding: 0;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

    .top-bar,
    .top-bar ul {
        background-color: #ffffff;
    }

        .top-bar input {
            max-width: 200px;
            margin-right: 1rem;
        }

        .top-bar .input-group-field {
            width: 100%;
            margin-right: 0;
        }

        .top-bar input.button, .top-bar input.button--outline-only, .top-bar #newsletter-signup input#mc-embedded-subscribe, #newsletter-signup .top-bar input#mc-embedded-subscribe, .top-bar input.button--text-only {
            width: auto;
        }

        .top-bar .top-bar-left,
        .top-bar .top-bar-right {
            -webkit-flex: 0 0 100%;
            -ms-flex: 0 0 100%;
            flex: 0 0 100%;
            max-width: 100%;
        }

@media print, screen and (min-width: 40em) {
    .top-bar {
        -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    }

        .top-bar .top-bar-left {
            -webkit-flex: 1 1 auto;
            -ms-flex: 1 1 auto;
            flex: 1 1 auto;
            margin-right: auto;
        }

        .top-bar .top-bar-right {
            -webkit-flex: 0 1 auto;
            -ms-flex: 0 1 auto;
            flex: 0 1 auto;
            margin-left: auto;
        }
}

@media screen and (max-width: 63.9375em) {
    .top-bar.stacked-for-medium {
        -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    }

        .top-bar.stacked-for-medium .top-bar-left,
        .top-bar.stacked-for-medium .top-bar-right {
            -webkit-flex: 0 0 100%;
            -ms-flex: 0 0 100%;
            flex: 0 0 100%;
            max-width: 100%;
        }
}

@media screen and (max-width: 74.9375em) {
    .top-bar.stacked-for-large {
        -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    }

        .top-bar.stacked-for-large .top-bar-left,
        .top-bar.stacked-for-large .top-bar-right {
            -webkit-flex: 0 0 100%;
            -ms-flex: 0 0 100%;
            flex: 0 0 100%;
            max-width: 100%;
        }
}

.top-bar-title {
    -webkit-flex: 0 0 auto;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    margin: 0.5rem 1rem 0.5rem 0;
}

.top-bar-left,
.top-bar-right {
    -webkit-flex: 0 0 auto;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
}

.hide {
    display: none !important;
}

.invisible {
    visibility: hidden;
}

@media screen and (max-width: 39.9375em) {
    .hide-for-small-only {
        display: none !important;
    }
}

@media screen and (max-width: 0em), screen and (min-width: 40em) {
    .show-for-small-only {
        display: none !important;
    }
}

@media print, screen and (min-width: 40em) {
    .hide-for-medium {
        display: none !important;
    }
}

@media screen and (max-width: 39.9375em) {
    .show-for-medium {
        display: none !important;
    }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
    .hide-for-medium-only {
        display: none !important;
    }
}

@media screen and (max-width: 39.9375em), screen and (min-width: 64em) {
    .show-for-medium-only {
        display: none !important;
    }
}

@media print, screen and (min-width: 64em) {
    .hide-for-large {
        display: none !important;
    }
}

@media screen and (max-width: 63.9375em) {
    .show-for-large {
        display: none !important;
    }
}

@media screen and (min-width: 64em) and (max-width: 74.9375em) {
    .hide-for-large-only {
        display: none !important;
    }
}

@media screen and (max-width: 63.9375em), screen and (min-width: 75em) {
    .show-for-large-only {
        display: none !important;
    }
}

.show-for-sr,
.show-on-focus {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    -webkit-clip-path: inset(50%);
    clip-path: inset(50%);
    border: 0;
}

    .show-on-focus:active, .show-on-focus:focus {
        position: static !important;
        width: auto;
        height: auto;
        overflow: visible;
        clip: auto;
        white-space: normal;
        -webkit-clip-path: none;
        clip-path: none;
    }

.show-for-landscape,
.hide-for-portrait {
    display: block !important;
}

@media screen and (orientation: landscape) {
    .show-for-landscape,
    .hide-for-portrait {
        display: block !important;
    }
}

@media screen and (orientation: portrait) {
    .show-for-landscape,
    .hide-for-portrait {
        display: none !important;
    }
}

.hide-for-landscape,
.show-for-portrait {
    display: none !important;
}

@media screen and (orientation: landscape) {
    .hide-for-landscape,
    .show-for-portrait {
        display: none !important;
    }
}

@media screen and (orientation: portrait) {
    .hide-for-landscape,
    .show-for-portrait {
        display: block !important;
    }
}

.align-right {
    -webkit-justify-content: flex-end;
    -ms-flex-pack: end;
    justify-content: flex-end;
}

.align-center {
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
}

.align-justify {
    -webkit-justify-content: space-between;
    -ms-flex-pack: justify;
    justify-content: space-between;
}

.align-spaced {
    -webkit-justify-content: space-around;
    -ms-flex-pack: distribute;
    justify-content: space-around;
}

.align-right.vertical.menu > li > a, .sub-menu .align-right.vertical.menu > li > .font--black,
.copyright .align-right.vertical.menu > li > .font--black {
    -webkit-justify-content: flex-end;
    -ms-flex-pack: end;
    justify-content: flex-end;
}

.align-center.vertical.menu > li > a, .sub-menu .align-center.vertical.menu > li > .font--black,
.copyright .align-center.vertical.menu > li > .font--black {
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
}

.align-top {
    -webkit-align-items: flex-start;
    -ms-flex-align: start;
    align-items: flex-start;
}

.align-self-top {
    -webkit-align-self: flex-start;
    -ms-flex-item-align: start;
    align-self: flex-start;
}

.align-bottom {
    -webkit-align-items: flex-end;
    -ms-flex-align: end;
    align-items: flex-end;
}

.align-self-bottom {
    -webkit-align-self: flex-end;
    -ms-flex-item-align: end;
    align-self: flex-end;
}

.align-middle {
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
}

.align-self-middle {
    -webkit-align-self: center;
    -ms-flex-item-align: center;
    -ms-grid-row-align: center;
    align-self: center;
}

.align-stretch {
    -webkit-align-items: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
}

.align-self-stretch {
    -webkit-align-self: stretch;
    -ms-flex-item-align: stretch;
    -ms-grid-row-align: stretch;
    align-self: stretch;
}

.align-center-middle {
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-align-content: center;
    -ms-flex-line-pack: center;
    align-content: center;
}

.small-order-1 {
    -webkit-order: 1;
    -ms-flex-order: 1;
    order: 1;
}

.small-order-2 {
    -webkit-order: 2;
    -ms-flex-order: 2;
    order: 2;
}

.small-order-3 {
    -webkit-order: 3;
    -ms-flex-order: 3;
    order: 3;
}

.small-order-4 {
    -webkit-order: 4;
    -ms-flex-order: 4;
    order: 4;
}

.small-order-5 {
    -webkit-order: 5;
    -ms-flex-order: 5;
    order: 5;
}

.small-order-6 {
    -webkit-order: 6;
    -ms-flex-order: 6;
    order: 6;
}

@media print, screen and (min-width: 40em) {
    .medium-order-1 {
        -webkit-order: 1;
        -ms-flex-order: 1;
        order: 1;
    }

    .medium-order-2 {
        -webkit-order: 2;
        -ms-flex-order: 2;
        order: 2;
    }

    .medium-order-3 {
        -webkit-order: 3;
        -ms-flex-order: 3;
        order: 3;
    }

    .medium-order-4 {
        -webkit-order: 4;
        -ms-flex-order: 4;
        order: 4;
    }

    .medium-order-5 {
        -webkit-order: 5;
        -ms-flex-order: 5;
        order: 5;
    }

    .medium-order-6 {
        -webkit-order: 6;
        -ms-flex-order: 6;
        order: 6;
    }
}

@media print, screen and (min-width: 64em) {
    .large-order-1 {
        -webkit-order: 1;
        -ms-flex-order: 1;
        order: 1;
    }

    .large-order-2 {
        -webkit-order: 2;
        -ms-flex-order: 2;
        order: 2;
    }

    .large-order-3 {
        -webkit-order: 3;
        -ms-flex-order: 3;
        order: 3;
    }

    .large-order-4 {
        -webkit-order: 4;
        -ms-flex-order: 4;
        order: 4;
    }

    .large-order-5 {
        -webkit-order: 5;
        -ms-flex-order: 5;
        order: 5;
    }

    .large-order-6 {
        -webkit-order: 6;
        -ms-flex-order: 6;
        order: 6;
    }
}

.flex-container {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
}

.flex-child-auto {
    -webkit-flex: 1 1 auto;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
}

.flex-child-grow {
    -webkit-flex: 1 0 auto;
    -ms-flex: 1 0 auto;
    flex: 1 0 auto;
}

.flex-child-shrink {
    -webkit-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
}

.flex-dir-row {
    -webkit-flex-direction: row;
    -ms-flex-direction: row;
    flex-direction: row;
}

.flex-dir-row-reverse {
    -webkit-flex-direction: row-reverse;
    -ms-flex-direction: row-reverse;
    flex-direction: row-reverse;
}

.flex-dir-column {
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
}

.flex-dir-column-reverse {
    -webkit-flex-direction: column-reverse;
    -ms-flex-direction: column-reverse;
    flex-direction: column-reverse;
}

@media print, screen and (min-width: 40em) {
    .medium-flex-container {
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
    }

    .medium-flex-child-auto {
        -webkit-flex: 1 1 auto;
        -ms-flex: 1 1 auto;
        flex: 1 1 auto;
    }

    .medium-flex-child-grow {
        -webkit-flex: 1 0 auto;
        -ms-flex: 1 0 auto;
        flex: 1 0 auto;
    }

    .medium-flex-child-shrink {
        -webkit-flex: 0 1 auto;
        -ms-flex: 0 1 auto;
        flex: 0 1 auto;
    }

    .medium-flex-dir-row {
        -webkit-flex-direction: row;
        -ms-flex-direction: row;
        flex-direction: row;
    }

    .medium-flex-dir-row-reverse {
        -webkit-flex-direction: row-reverse;
        -ms-flex-direction: row-reverse;
        flex-direction: row-reverse;
    }

    .medium-flex-dir-column {
        -webkit-flex-direction: column;
        -ms-flex-direction: column;
        flex-direction: column;
    }

    .medium-flex-dir-column-reverse {
        -webkit-flex-direction: column-reverse;
        -ms-flex-direction: column-reverse;
        flex-direction: column-reverse;
    }
}

@media print, screen and (min-width: 64em) {
    .large-flex-container {
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
    }

    .large-flex-child-auto {
        -webkit-flex: 1 1 auto;
        -ms-flex: 1 1 auto;
        flex: 1 1 auto;
    }

    .large-flex-child-grow {
        -webkit-flex: 1 0 auto;
        -ms-flex: 1 0 auto;
        flex: 1 0 auto;
    }

    .large-flex-child-shrink {
        -webkit-flex: 0 1 auto;
        -ms-flex: 0 1 auto;
        flex: 0 1 auto;
    }

    .large-flex-dir-row {
        -webkit-flex-direction: row;
        -ms-flex-direction: row;
        flex-direction: row;
    }

    .large-flex-dir-row-reverse {
        -webkit-flex-direction: row-reverse;
        -ms-flex-direction: row-reverse;
        flex-direction: row-reverse;
    }

    .large-flex-dir-column {
        -webkit-flex-direction: column;
        -ms-flex-direction: column;
        flex-direction: column;
    }

    .large-flex-dir-column-reverse {
        -webkit-flex-direction: column-reverse;
        -ms-flex-direction: column-reverse;
        flex-direction: column-reverse;
    }
}

.slide-in-down.mui-enter {
    transition-duration: 500ms;
    transition-timing-function: linear;
    -webkit-transform: translateY(-100%);
    -ms-transform: translateY(-100%);
    transform: translateY(-100%);
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

    .slide-in-down.mui-enter.mui-enter-active {
        -webkit-transform: translateY(0);
        -ms-transform: translateY(0);
        transform: translateY(0);
    }

.slide-in-left.mui-enter {
    transition-duration: 500ms;
    transition-timing-function: linear;
    -webkit-transform: translateX(-100%);
    -ms-transform: translateX(-100%);
    transform: translateX(-100%);
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

    .slide-in-left.mui-enter.mui-enter-active {
        -webkit-transform: translateX(0);
        -ms-transform: translateX(0);
        transform: translateX(0);
    }

.slide-in-up.mui-enter {
    transition-duration: 500ms;
    transition-timing-function: linear;
    -webkit-transform: translateY(100%);
    -ms-transform: translateY(100%);
    transform: translateY(100%);
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

    .slide-in-up.mui-enter.mui-enter-active {
        -webkit-transform: translateY(0);
        -ms-transform: translateY(0);
        transform: translateY(0);
    }

.slide-in-right.mui-enter {
    transition-duration: 500ms;
    transition-timing-function: linear;
    -webkit-transform: translateX(100%);
    -ms-transform: translateX(100%);
    transform: translateX(100%);
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

    .slide-in-right.mui-enter.mui-enter-active {
        -webkit-transform: translateX(0);
        -ms-transform: translateX(0);
        transform: translateX(0);
    }

.slide-out-down.mui-leave {
    transition-duration: 500ms;
    transition-timing-function: linear;
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

    .slide-out-down.mui-leave.mui-leave-active {
        -webkit-transform: translateY(100%);
        -ms-transform: translateY(100%);
        transform: translateY(100%);
    }

.slide-out-right.mui-leave {
    transition-duration: 500ms;
    transition-timing-function: linear;
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

    .slide-out-right.mui-leave.mui-leave-active {
        -webkit-transform: translateX(100%);
        -ms-transform: translateX(100%);
        transform: translateX(100%);
    }

.slide-out-up.mui-leave {
    transition-duration: 500ms;
    transition-timing-function: linear;
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

    .slide-out-up.mui-leave.mui-leave-active {
        -webkit-transform: translateY(-100%);
        -ms-transform: translateY(-100%);
        transform: translateY(-100%);
    }

.slide-out-left.mui-leave {
    transition-duration: 500ms;
    transition-timing-function: linear;
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

    .slide-out-left.mui-leave.mui-leave-active {
        -webkit-transform: translateX(-100%);
        -ms-transform: translateX(-100%);
        transform: translateX(-100%);
    }

.fade-in.mui-enter {
    transition-duration: 500ms;
    transition-timing-function: linear;
    opacity: 0;
    transition-property: opacity;
}

    .fade-in.mui-enter.mui-enter-active {
        opacity: 1;
    }

.fade-out.mui-leave {
    transition-duration: 500ms;
    transition-timing-function: linear;
    opacity: 1;
    transition-property: opacity;
}

    .fade-out.mui-leave.mui-leave-active {
        opacity: 0;
    }

.hinge-in-from-top.mui-enter {
    transition-duration: 500ms;
    transition-timing-function: linear;
    -webkit-transform: perspective(2000px) rotateX(-90deg);
    transform: perspective(2000px) rotateX(-90deg);
    -webkit-transform-origin: top;
    -ms-transform-origin: top;
    transform-origin: top;
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    opacity: 0;
}

    .hinge-in-from-top.mui-enter.mui-enter-active {
        -webkit-transform: perspective(2000px) rotate(0deg);
        transform: perspective(2000px) rotate(0deg);
        opacity: 1;
    }

.hinge-in-from-right.mui-enter {
    transition-duration: 500ms;
    transition-timing-function: linear;
    -webkit-transform: perspective(2000px) rotateY(-90deg);
    transform: perspective(2000px) rotateY(-90deg);
    -webkit-transform-origin: right;
    -ms-transform-origin: right;
    transform-origin: right;
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    opacity: 0;
}

    .hinge-in-from-right.mui-enter.mui-enter-active {
        -webkit-transform: perspective(2000px) rotate(0deg);
        transform: perspective(2000px) rotate(0deg);
        opacity: 1;
    }

.hinge-in-from-bottom.mui-enter {
    transition-duration: 500ms;
    transition-timing-function: linear;
    -webkit-transform: perspective(2000px) rotateX(90deg);
    transform: perspective(2000px) rotateX(90deg);
    -webkit-transform-origin: bottom;
    -ms-transform-origin: bottom;
    transform-origin: bottom;
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    opacity: 0;
}

    .hinge-in-from-bottom.mui-enter.mui-enter-active {
        -webkit-transform: perspective(2000px) rotate(0deg);
        transform: perspective(2000px) rotate(0deg);
        opacity: 1;
    }

.hinge-in-from-left.mui-enter {
    transition-duration: 500ms;
    transition-timing-function: linear;
    -webkit-transform: perspective(2000px) rotateY(90deg);
    transform: perspective(2000px) rotateY(90deg);
    -webkit-transform-origin: left;
    -ms-transform-origin: left;
    transform-origin: left;
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    opacity: 0;
}

    .hinge-in-from-left.mui-enter.mui-enter-active {
        -webkit-transform: perspective(2000px) rotate(0deg);
        transform: perspective(2000px) rotate(0deg);
        opacity: 1;
    }

.hinge-in-from-middle-x.mui-enter {
    transition-duration: 500ms;
    transition-timing-function: linear;
    -webkit-transform: perspective(2000px) rotateX(-90deg);
    transform: perspective(2000px) rotateX(-90deg);
    -webkit-transform-origin: center;
    -ms-transform-origin: center;
    transform-origin: center;
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    opacity: 0;
}

    .hinge-in-from-middle-x.mui-enter.mui-enter-active {
        -webkit-transform: perspective(2000px) rotate(0deg);
        transform: perspective(2000px) rotate(0deg);
        opacity: 1;
    }

.hinge-in-from-middle-y.mui-enter {
    transition-duration: 500ms;
    transition-timing-function: linear;
    -webkit-transform: perspective(2000px) rotateY(-90deg);
    transform: perspective(2000px) rotateY(-90deg);
    -webkit-transform-origin: center;
    -ms-transform-origin: center;
    transform-origin: center;
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    opacity: 0;
}

    .hinge-in-from-middle-y.mui-enter.mui-enter-active {
        -webkit-transform: perspective(2000px) rotate(0deg);
        transform: perspective(2000px) rotate(0deg);
        opacity: 1;
    }

.hinge-out-from-top.mui-leave {
    transition-duration: 500ms;
    transition-timing-function: linear;
    -webkit-transform: perspective(2000px) rotate(0deg);
    transform: perspective(2000px) rotate(0deg);
    -webkit-transform-origin: top;
    -ms-transform-origin: top;
    transform-origin: top;
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    opacity: 1;
}

    .hinge-out-from-top.mui-leave.mui-leave-active {
        -webkit-transform: perspective(2000px) rotateX(-90deg);
        transform: perspective(2000px) rotateX(-90deg);
        opacity: 0;
    }

.hinge-out-from-right.mui-leave {
    transition-duration: 500ms;
    transition-timing-function: linear;
    -webkit-transform: perspective(2000px) rotate(0deg);
    transform: perspective(2000px) rotate(0deg);
    -webkit-transform-origin: right;
    -ms-transform-origin: right;
    transform-origin: right;
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    opacity: 1;
}

    .hinge-out-from-right.mui-leave.mui-leave-active {
        -webkit-transform: perspective(2000px) rotateY(-90deg);
        transform: perspective(2000px) rotateY(-90deg);
        opacity: 0;
    }

.hinge-out-from-bottom.mui-leave {
    transition-duration: 500ms;
    transition-timing-function: linear;
    -webkit-transform: perspective(2000px) rotate(0deg);
    transform: perspective(2000px) rotate(0deg);
    -webkit-transform-origin: bottom;
    -ms-transform-origin: bottom;
    transform-origin: bottom;
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    opacity: 1;
}

    .hinge-out-from-bottom.mui-leave.mui-leave-active {
        -webkit-transform: perspective(2000px) rotateX(90deg);
        transform: perspective(2000px) rotateX(90deg);
        opacity: 0;
    }

.hinge-out-from-left.mui-leave {
    transition-duration: 500ms;
    transition-timing-function: linear;
    -webkit-transform: perspective(2000px) rotate(0deg);
    transform: perspective(2000px) rotate(0deg);
    -webkit-transform-origin: left;
    -ms-transform-origin: left;
    transform-origin: left;
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    opacity: 1;
}

    .hinge-out-from-left.mui-leave.mui-leave-active {
        -webkit-transform: perspective(2000px) rotateY(90deg);
        transform: perspective(2000px) rotateY(90deg);
        opacity: 0;
    }

.hinge-out-from-middle-x.mui-leave {
    transition-duration: 500ms;
    transition-timing-function: linear;
    -webkit-transform: perspective(2000px) rotate(0deg);
    transform: perspective(2000px) rotate(0deg);
    -webkit-transform-origin: center;
    -ms-transform-origin: center;
    transform-origin: center;
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    opacity: 1;
}

    .hinge-out-from-middle-x.mui-leave.mui-leave-active {
        -webkit-transform: perspective(2000px) rotateX(-90deg);
        transform: perspective(2000px) rotateX(-90deg);
        opacity: 0;
    }

.hinge-out-from-middle-y.mui-leave {
    transition-duration: 500ms;
    transition-timing-function: linear;
    -webkit-transform: perspective(2000px) rotate(0deg);
    transform: perspective(2000px) rotate(0deg);
    -webkit-transform-origin: center;
    -ms-transform-origin: center;
    transform-origin: center;
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    opacity: 1;
}

    .hinge-out-from-middle-y.mui-leave.mui-leave-active {
        -webkit-transform: perspective(2000px) rotateY(-90deg);
        transform: perspective(2000px) rotateY(-90deg);
        opacity: 0;
    }

.scale-in-up.mui-enter {
    transition-duration: 500ms;
    transition-timing-function: linear;
    -webkit-transform: scale(0.5);
    -ms-transform: scale(0.5);
    transform: scale(0.5);
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    opacity: 0;
}

    .scale-in-up.mui-enter.mui-enter-active {
        -webkit-transform: scale(1);
        -ms-transform: scale(1);
        transform: scale(1);
        opacity: 1;
    }

.scale-in-down.mui-enter {
    transition-duration: 500ms;
    transition-timing-function: linear;
    -webkit-transform: scale(1.5);
    -ms-transform: scale(1.5);
    transform: scale(1.5);
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    opacity: 0;
}

    .scale-in-down.mui-enter.mui-enter-active {
        -webkit-transform: scale(1);
        -ms-transform: scale(1);
        transform: scale(1);
        opacity: 1;
    }

.scale-out-up.mui-leave {
    transition-duration: 500ms;
    transition-timing-function: linear;
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    opacity: 1;
}

    .scale-out-up.mui-leave.mui-leave-active {
        -webkit-transform: scale(1.5);
        -ms-transform: scale(1.5);
        transform: scale(1.5);
        opacity: 0;
    }

.scale-out-down.mui-leave {
    transition-duration: 500ms;
    transition-timing-function: linear;
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    opacity: 1;
}

    .scale-out-down.mui-leave.mui-leave-active {
        -webkit-transform: scale(0.5);
        -ms-transform: scale(0.5);
        transform: scale(0.5);
        opacity: 0;
    }

.spin-in.mui-enter {
    transition-duration: 500ms;
    transition-timing-function: linear;
    -webkit-transform: rotate(-0.75turn);
    -ms-transform: rotate(-0.75turn);
    transform: rotate(-0.75turn);
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    opacity: 0;
}

    .spin-in.mui-enter.mui-enter-active {
        -webkit-transform: rotate(0);
        -ms-transform: rotate(0);
        transform: rotate(0);
        opacity: 1;
    }

.spin-out.mui-leave {
    transition-duration: 500ms;
    transition-timing-function: linear;
    -webkit-transform: rotate(0);
    -ms-transform: rotate(0);
    transform: rotate(0);
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    opacity: 1;
}

    .spin-out.mui-leave.mui-leave-active {
        -webkit-transform: rotate(0.75turn);
        -ms-transform: rotate(0.75turn);
        transform: rotate(0.75turn);
        opacity: 0;
    }

.spin-in-ccw.mui-enter {
    transition-duration: 500ms;
    transition-timing-function: linear;
    -webkit-transform: rotate(0.75turn);
    -ms-transform: rotate(0.75turn);
    transform: rotate(0.75turn);
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    opacity: 0;
}

    .spin-in-ccw.mui-enter.mui-enter-active {
        -webkit-transform: rotate(0);
        -ms-transform: rotate(0);
        transform: rotate(0);
        opacity: 1;
    }

.spin-out-ccw.mui-leave {
    transition-duration: 500ms;
    transition-timing-function: linear;
    -webkit-transform: rotate(0);
    -ms-transform: rotate(0);
    transform: rotate(0);
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    opacity: 1;
}

    .spin-out-ccw.mui-leave.mui-leave-active {
        -webkit-transform: rotate(-0.75turn);
        -ms-transform: rotate(-0.75turn);
        transform: rotate(-0.75turn);
        opacity: 0;
    }

.slow {
    transition-duration: 750ms !important;
}

.fast {
    transition-duration: 250ms !important;
}

.linear {
    transition-timing-function: linear !important;
}

.ease {
    transition-timing-function: ease !important;
}

.ease-in {
    transition-timing-function: ease-in !important;
}

.ease-out {
    transition-timing-function: ease-out !important;
}

.ease-in-out {
    transition-timing-function: ease-in-out !important;
}

.bounce-in {
    transition-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important;
}

.bounce-out {
    transition-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important;
}

.bounce-in-out {
    transition-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important;
}

.short-delay {
    transition-delay: 300ms !important;
}

.long-delay {
    transition-delay: 700ms !important;
}

.shake {
    -webkit-animation-name: shake-7;
    animation-name: shake-7;
}

@-webkit-keyframes shake-7 {
    0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% {
        -webkit-transform: translateX(7%);
        transform: translateX(7%);
    }

    5%, 15%, 25%, 35%, 45%, 55%, 65%, 75%, 85%, 95% {
        -webkit-transform: translateX(-7%);
        transform: translateX(-7%);
    }
}

@keyframes shake-7 {
    0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% {
        -webkit-transform: translateX(7%);
        transform: translateX(7%);
    }

    5%, 15%, 25%, 35%, 45%, 55%, 65%, 75%, 85%, 95% {
        -webkit-transform: translateX(-7%);
        transform: translateX(-7%);
    }
}

.spin-cw {
    -webkit-animation-name: spin-cw-1turn;
    animation-name: spin-cw-1turn;
}

@-webkit-keyframes spin-cw-1turn {
    0% {
        -webkit-transform: rotate(-1turn);
        transform: rotate(-1turn);
    }

    100% {
        -webkit-transform: rotate(0);
        transform: rotate(0);
    }
}

@keyframes spin-cw-1turn {
    0% {
        -webkit-transform: rotate(-1turn);
        transform: rotate(-1turn);
    }

    100% {
        -webkit-transform: rotate(0);
        transform: rotate(0);
    }
}

.spin-ccw {
    -webkit-animation-name: spin-cw-1turn;
    animation-name: spin-cw-1turn;
}

@keyframes spin-cw-1turn {
    0% {
        -webkit-transform: rotate(0);
        transform: rotate(0);
    }

    100% {
        -webkit-transform: rotate(1turn);
        transform: rotate(1turn);
    }
}

.wiggle {
    -webkit-animation-name: wiggle-7deg;
    animation-name: wiggle-7deg;
}

@-webkit-keyframes wiggle-7deg {
    40%, 50%, 60% {
        -webkit-transform: rotate(7deg);
        transform: rotate(7deg);
    }

    35%, 45%, 55%, 65% {
        -webkit-transform: rotate(-7deg);
        transform: rotate(-7deg);
    }

    0%, 30%, 70%, 100% {
        -webkit-transform: rotate(0);
        transform: rotate(0);
    }
}

@keyframes wiggle-7deg {
    40%, 50%, 60% {
        -webkit-transform: rotate(7deg);
        transform: rotate(7deg);
    }

    35%, 45%, 55%, 65% {
        -webkit-transform: rotate(-7deg);
        transform: rotate(-7deg);
    }

    0%, 30%, 70%, 100% {
        -webkit-transform: rotate(0);
        transform: rotate(0);
    }
}

.shake,
.spin-cw,
.spin-ccw,
.wiggle {
    -webkit-animation-duration: 500ms;
    animation-duration: 500ms;
}

.infinite {
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;
}

.slow {
    -webkit-animation-duration: 750ms !important;
    animation-duration: 750ms !important;
}

.fast {
    -webkit-animation-duration: 250ms !important;
    animation-duration: 250ms !important;
}

.linear {
    -webkit-animation-timing-function: linear !important;
    animation-timing-function: linear !important;
}

.ease {
    -webkit-animation-timing-function: ease !important;
    animation-timing-function: ease !important;
}

.ease-in {
    -webkit-animation-timing-function: ease-in !important;
    animation-timing-function: ease-in !important;
}

.ease-out {
    -webkit-animation-timing-function: ease-out !important;
    animation-timing-function: ease-out !important;
}

.ease-in-out {
    -webkit-animation-timing-function: ease-in-out !important;
    animation-timing-function: ease-in-out !important;
}

.bounce-in {
    -webkit-animation-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important;
    animation-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important;
}

.bounce-out {
    -webkit-animation-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important;
    animation-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important;
}

.bounce-in-out {
    -webkit-animation-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important;
    animation-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important;
}

.short-delay {
    -webkit-animation-delay: 300ms !important;
    animation-delay: 300ms !important;
}

.long-delay {
    -webkit-animation-delay: 700ms !important;
    animation-delay: 700ms !important;
}

/*
My custom styles:
Add your scss files below to structure your project styles
*/
.screen-reader-text {
    clip: rect(1px, 1px, 1px, 1px);
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
}

    .screen-reader-text:focus {
        background-color: #f1f1f1;
        border-radius: 3px;
        box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
        clip: auto !important;
        color: #21759b;
        display: block;
        font-size: 14px;
        font-size: 0.875rem;
        font-weight: bold;
        height: auto;
        left: 5px;
        line-height: normal;
        padding: 15px 23px 14px;
        text-decoration: none;
        top: 5px;
        width: auto;
        z-index: 100000;
    }

#wpadminbar {
    position: fixed !important;
}

body.admin-bar.f-topbar-fixed .sticky.fixed {
    margin-top: 2rem;
}

body.admin-bar.offcanvas .off-canvas.is-open {
    top: 2.875rem;
}

@media screen and (min-width: 48.9375em) {
    body.admin-bar.offcanvas .off-canvas.is-open {
        top: 2rem;
    }
}

.wp-caption > figcaption {
    max-width: 100%;
    font-size: 0.8rem;
    color: #999;
    padding: 0.25rem 0;
}

p.wp-caption-text {
    font-size: 90%;
    color: #666;
    padding: 0.625rem 0;
}

.alignleft {
    float: left;
    padding-right: 1rem;
    margin: 0;
}

.alignright {
    float: right;
    padding-left: 1rem;
    margin: 0;
}

.aligncenter {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.mobile-menu,
.site-title-bar {
    transition: ease-in-out background-color 0.5s;
}

@media print, screen and (min-width: 64em) {
    .mobile-menu,
    .site-title-bar {
        display: none !important;
    }
}

.mobile-menu.active,
.site-title-bar.active {
    background-color: #FF9E31;
}

@media screen and (max-width: 63.9375em) {
    .desktop-menu,
    .site-navigation .top-bar-left {
        display: none !important;
    }
}

.site-desktop-title a, .site-desktop-title .sub-menu .font--black, .sub-menu .site-desktop-title .font--black,
.site-desktop-title .copyright .font--black, .copyright .site-desktop-title .font--black {
    font-weight: bold;
}

.mobile-menu {
    display: none;
}

.off-canvas > ul.menu {
    height: 100vh;
    padding: 1rem;
}

    .off-canvas > ul.menu a, .off-canvas > ul.menu .sub-menu .font--black, .sub-menu .off-canvas > ul.menu .font--black,
    .off-canvas > ul.menu .copyright .font--black, .copyright .off-canvas > ul.menu .font--black {
        color: #0a0a0a;
        font-weight: 600;
        font-size: 0.9375rem;
    }

    .off-canvas > ul.menu .submenu-toggle::after {
        border-color: #0a0a0a transparent transparent;
    }

.off-canvas .menu .active > a, .off-canvas .menu .sub-menu .active > .font--black, .sub-menu .off-canvas .menu .active > .font--black,
.off-canvas .menu .copyright .active > .font--black, .copyright .off-canvas .menu .active > .font--black {
    background-color: #ccc;
}

.title-bar {
    width: 100%;
}

.title-bar-title a, .title-bar-title .sub-menu .font--black, .sub-menu .title-bar-title .font--black,
.title-bar-title .copyright .font--black, .copyright .title-bar-title .font--black {
    font-size: 1rem;
    color: #b9b9b9;
}

.mobile-menu,
.mobile-off-canvas-menu {
    margin-top: 0;
}

    .mobile-menu .menu .is-active > a, .mobile-menu .menu .sub-menu .is-active > .font--black, .sub-menu .mobile-menu .menu .is-active > .font--black,
    .mobile-menu .menu .copyright .is-active > .font--black, .copyright .mobile-menu .menu .is-active > .font--black,
    .mobile-off-canvas-menu .menu .is-active > a,
    .mobile-off-canvas-menu .menu .sub-menu .is-active > .font--black,
    .sub-menu .mobile-off-canvas-menu .menu .is-active > .font--black,
    .mobile-off-canvas-menu .menu .copyright .is-active > .font--black,
    .copyright .mobile-off-canvas-menu .menu .is-active > .font--black {
        background-color: #36454f;
    }

@media print, screen and (min-width: 40em) {
    .top-bar {
        display: none;
    }
}

@media print, screen and (min-width: 64em) {
    .top-bar {
        display: block;
    }
}

.top-bar .top-bar-title a, .top-bar .top-bar-title .sub-menu .font--black, .sub-menu .top-bar .top-bar-title .font--black,
.top-bar .top-bar-title .copyright .font--black, .copyright .top-bar .top-bar-title .font--black {
    font-size: 1rem;
    color: #b9b9b9;
    padding-left: 30px;
    line-height: 1.8;
}

.top-bar .menu {
    padding-bottom: 1px;
    width: 100%;
}

    .top-bar .menu a, .top-bar .menu .sub-menu .font--black, .sub-menu .top-bar .menu .font--black,
    .top-bar .menu .copyright .font--black, .copyright .top-bar .menu .font--black {
        color: #0a0a0a !important;
        padding-top: 0;
        padding-bottom: 0;
        font-size: 1rem;
        line-height: 1;
        transition: border-bottom-color ease-in 0.5s;
        font-family: "Avenir LT W01_65 Medium1475532", Sans-serif;
    }

        .top-bar .menu a:hover:not(.button):not(.button--outline-only):not(.button--text-only), .top-bar .menu .sub-menu .font--black:hover:not(.button):not(.button--outline-only):not(.button--text-only), .sub-menu .top-bar .menu .font--black:hover:not(.button):not(.button--outline-only):not(.button--text-only),
        .top-bar .menu .copyright .font--black:hover:not(.button):not(.button--outline-only):not(.button--text-only), .copyright .top-bar .menu .font--black:hover:not(.button):not(.button--outline-only):not(.button--text-only) {
            color: #0a0a0a;
        }

    .top-bar .menu .active > a, .top-bar .menu .sub-menu .active > .font--black, .sub-menu .top-bar .menu .active > .font--black,
    .top-bar .menu .copyright .active > .font--black, .copyright .top-bar .menu .active > .font--black {
        background-color: #ccc;
    }

    .top-bar .menu > li:not(.menu-text) > a, .top-bar .sub-menu .menu > li:not(.menu-text) > .font--black, .sub-menu .top-bar .menu > li:not(.menu-text) > .font--black,
    .top-bar .copyright .menu > li:not(.menu-text) > .font--black, .copyright .top-bar .menu > li:not(.menu-text) > .font--black {
        padding: 1rem;
    }

.top-bar .dropdown.menu .submenu {
    border: 0;
}

.top-bar .dropdown.menu .has-submenu.is-down-arrow a, .top-bar .dropdown.menu .has-submenu.is-down-arrow .sub-menu .font--black, .sub-menu .top-bar .dropdown.menu .has-submenu.is-down-arrow .font--black,
.top-bar .dropdown.menu .has-submenu.is-down-arrow .copyright .font--black, .copyright .top-bar .dropdown.menu .has-submenu.is-down-arrow .font--black {
    padding-right: 1rem;
}

.top-bar .dropdown.menu .has-submenu.is-down-arrow > a::after, .top-bar .dropdown.menu .sub-menu .has-submenu.is-down-arrow > .font--black::after, .sub-menu .top-bar .dropdown.menu .has-submenu.is-down-arrow > .font--black::after,
.top-bar .dropdown.menu .copyright .has-submenu.is-down-arrow > .font--black::after, .copyright .top-bar .dropdown.menu .has-submenu.is-down-arrow > .font--black::after {
    border: 0;
}

.top-bar .dropdown.menu:first-child > li.is-dropdown-submenu-parent > a::after, .top-bar .sub-menu .dropdown.menu:first-child > li.is-dropdown-submenu-parent > .font--black::after, .sub-menu .top-bar .dropdown.menu:first-child > li.is-dropdown-submenu-parent > .font--black::after,
.top-bar .copyright .dropdown.menu:first-child > li.is-dropdown-submenu-parent > .font--black::after, .copyright .top-bar .dropdown.menu:first-child > li.is-dropdown-submenu-parent > .font--black::after {
    display: none;
}

@media screen and (max-width: 39.9375em) {
    .site-navigation {
        padding: 0;
    }
}

#menu-main-menu {
    padding-right: 50px;
}

#menu-main-menu-1:before, #menu-main-menu-1:after {
    content: "";
    width: 100px;
}

.post-navigation::before, .post-navigation::after {
    display: table;
    content: ' ';
    -webkit-flex-basis: 0;
    -ms-flex-preferred-size: 0;
    flex-basis: 0;
    -webkit-order: 1;
    -ms-flex-order: 1;
    order: 1;
}

.post-navigation::after {
    clear: both;
}

.nav-previous {
    float: left;
}

.nav-next {
    float: right;
}

.site-logo {
    display: block;
}

@media print, screen and (min-width: 40em) {
    .site-logo {
        
    }
}

.site-logo img {
    max-width: 200px;
}

.site-navigation {
    display: none;
}

@media print, screen and (min-width: 64em) {
    .site-navigation {
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        width: 100%;
    }

        .site-navigation .top-bar-right {
            display: -webkit-flex;
            display: -ms-flexbox;
            display: flex;
            padding-top: 15px;
            padding-right: 15px;
        }
}

.site-navigation .top-bar-left,
.site-navigation .top-bar-center,
.site-navigation .top-bar-right {
    -webkit-flex: 0 0 auto;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
}

.top-bar-right .button--outline-only, .top-bar-right #newsletter-signup #mc-embedded-subscribe, #newsletter-signup .top-bar-right #mc-embedded-subscribe,
.top-bar-right .button--text-only {
    margin-bottom: 1.25rem;
    font-size: 1.1rem;
    padding: 10px 1.25rem;
    margin-right: 15px;
}

.top-bar-center .dropdown.menu > li.opens-right > .is-dropdown-submenu.js-dropdown-active {
    z-index: 999;
    background: #FF9E31;
    width: 250px;
}

    .top-bar-center .dropdown.menu > li.opens-right > .is-dropdown-submenu.js-dropdown-active:after, .top-bar-center .dropdown.menu > li.opens-right > .is-dropdown-submenu.js-dropdown-active:before {
        bottom: 100%;
        left: 30px;
        border: solid transparent;
        content: " ";
        height: 0;
        width: 0;
        position: absolute;
        pointer-events: none;
    }

    .top-bar-center .dropdown.menu > li.opens-right > .is-dropdown-submenu.js-dropdown-active:after {
        border-color: rgba(255, 158, 49, 0);
        border-bottom-color: #FF9E31;
        border-width: 10px;
        margin-left: -10px;
    }

    .top-bar-center .dropdown.menu > li.opens-right > .is-dropdown-submenu.js-dropdown-active a, .top-bar-center .dropdown.menu > li.opens-right > .is-dropdown-submenu.js-dropdown-active .sub-menu .font--black, .sub-menu .top-bar-center .dropdown.menu > li.opens-right > .is-dropdown-submenu.js-dropdown-active .font--black,
    .top-bar-center .dropdown.menu > li.opens-right > .is-dropdown-submenu.js-dropdown-active .copyright .font--black, .copyright .top-bar-center .dropdown.menu > li.opens-right > .is-dropdown-submenu.js-dropdown-active .font--black {
        position: relative;
    }

        .top-bar-center .dropdown.menu > li.opens-right > .is-dropdown-submenu.js-dropdown-active a:hover, .top-bar-center .dropdown.menu > li.opens-right > .is-dropdown-submenu.js-dropdown-active .sub-menu .font--black:hover, .sub-menu .top-bar-center .dropdown.menu > li.opens-right > .is-dropdown-submenu.js-dropdown-active .font--black:hover,
        .top-bar-center .dropdown.menu > li.opens-right > .is-dropdown-submenu.js-dropdown-active .copyright .font--black:hover, .copyright .top-bar-center .dropdown.menu > li.opens-right > .is-dropdown-submenu.js-dropdown-active .font--black:hover {
            background-color: rgba(254, 254, 254, 0.1);
        }

.site-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 100;
}

.admin-bar .site-header {
    top: 46px;
}

@media print, screen and (min-width: 64em) {
    .site-header.nav-active {
        box-shadow: 0px 2px 2.85px 0.15px rgba(0, 0, 0, 0.05);
    }

    .admin-bar .site-header {
        top: 32px;
    }
}

.site-header .hamburger {
    float: right;
}

@media print, screen and (max-width: 1250px) {
    .site-navigation {
        -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    }

        .site-navigation .top-bar-left {
            margin-left: 30px;
        }

        .site-navigation .top-bar-right {
            margin-right: 30px;
        }
}

.off-canvas-wrapper {
    margin-top: 12px;
}

.mobile-menu .menu .is-active > a, .mobile-menu .menu .sub-menu .is-active > .font--black, .sub-menu .mobile-menu .menu .is-active > .font--black,
.mobile-menu .menu .copyright .is-active > .font--black, .copyright .mobile-menu .menu .is-active > .font--black,
.mobile-off-canvas-menu .menu .is-active > a,
.mobile-off-canvas-menu .menu .sub-menu .is-active > .font--black,
.sub-menu .mobile-off-canvas-menu .menu .is-active > .font--black,
.mobile-off-canvas-menu .menu .copyright .is-active > .font--black,
.copyright .mobile-off-canvas-menu .menu .is-active > .font--black {
    background-color: transparent;
}

    .mobile-menu .menu .is-active > a:after, .mobile-menu .menu .sub-menu .is-active > .font--black:after, .sub-menu .mobile-menu .menu .is-active > .font--black:after,
    .mobile-menu .menu .copyright .is-active > .font--black:after, .copyright .mobile-menu .menu .is-active > .font--black:after,
    .mobile-off-canvas-menu .menu .is-active > a:after,
    .mobile-off-canvas-menu .menu .sub-menu .is-active > .font--black:after,
    .sub-menu .mobile-off-canvas-menu .menu .is-active > .font--black:after,
    .mobile-off-canvas-menu .menu .copyright .is-active > .font--black:after,
    .copyright .mobile-off-canvas-menu .menu .is-active > .font--black:after {
        content: "";
        width: 50%;
        height: 3px;
        background-color: #0a0a0a;
        display: block;
        margin-top: 10px;
    }

#menu-item-71 .first-sub {
    -webkit-column-count: 2;
    column-count: 2;
    width: 500px;
}

.show-search a, .show-search .sub-menu .font--black, .sub-menu .show-search .font--black,
.show-search .copyright .font--black, .copyright .show-search .font--black {
    font-size: 0 !important;
    position: absolute;
    color: transparent;
}

    .show-search a:after, .show-search .sub-menu .font--black:after, .sub-menu .show-search .font--black:after,
    .show-search .copyright .font--black:after, .copyright .show-search .font--black:after {
        content: "";
        height: 20px;
        width: 20px;
        background: url("/images/search.png") no-repeat;
        display: block;
        background-size: cover;
    }

input.search-field {
    display: none;
    font-size: 1.2rem;
    padding-left: 10px;
    background: transparent;
    color: #0a0a0a;
    outline: none;
    border: 0;
    text-align: center;
    border-bottom: 3px solid #0a0a0a;
    position: absolute;
    left: 50%;
    width: 90%;
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    z-index: 999;
    top: 25%;
}

@media print, screen and (min-width: 40em) {
    input.search-field {
        font-size: 3rem;
        top: 50%;
        width: 50%;
    }
}

input.search-field::-webkit-input-placeholder {
    color: #0a0a0a;
    text-align: center;
}

input.search-field:-ms-input-placeholder {
    color: #0a0a0a;
    text-align: center;
}

input.search-field::placeholder {
    color: #0a0a0a;
    text-align: center;
}

.search__container {
    height: calc(100vh + 70px);
    width: 100%;
    display: none;
    position: absolute;
    top: -70px;
}

    .search__container.active {
        display: block;
    }

        .search__container.active:before {
            height: 100%;
            width: 100%;
            background-color: rgba(255, 158, 49, 0.8);
            left: 0;
            content: "";
            position: absolute;
            z-index: 998;
        }

    .search__container .search-close-button {
        top: 150px;
        right: 2rem;
        z-index: 999;
        color: #0a0a0a;
        font-size: 2rem;
    }

@media print, screen and (min-width: 40em) {
    .search__container .search-close-button {
        font-size: 3rem;
        top: 175px;
    }
}

@media print, screen and (max-width: 1114px) {
    .site-navigation .top-bar-left {
        margin-left: 15px;
    }

        .site-navigation .top-bar-left .site-logo {
            margin-top: 15px;
        }

    .top-bar .menu > li:not(.menu-text) > a, .top-bar .sub-menu .menu > li:not(.menu-text) > .font--black, .sub-menu .top-bar .menu > li:not(.menu-text) > .font--black,
    .top-bar .copyright .menu > li:not(.menu-text) > .font--black, .copyright .top-bar .menu > li:not(.menu-text) > .font--black {
        font-size: 1rem;
    }
}

.main-container {
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 75rem;
    margin: 0 auto;
}

@media print, screen and (min-width: 40em) {
    .main-container {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

.main-grid {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    margin-top: 1rem;
}

@media print, screen and (min-width: 40em) {
    .main-grid {
        margin-top: 3rem;
    }
}

.main-grid.sidebar-left .main-content {
    -webkit-order: 1;
    -ms-flex-order: 1;
    order: 1;
}

.main-grid.sidebar-left .sidebar {
    -webkit-order: 2;
    -ms-flex-order: 2;
    order: 2;
}

@media print, screen and (min-width: 40em) {
    .main-grid.sidebar-left .main-content {
        -webkit-order: 2;
        -ms-flex-order: 2;
        order: 2;
    }

    .main-grid.sidebar-left .sidebar {
        -webkit-order: 1;
        -ms-flex-order: 1;
        order: 1;
    }
}

.main-grid .main-content-full-width {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
}

.main-grid .main-content {
    width: calc(100% - 1.25rem);
    margin-right: 0.625rem;
    margin-left: 0.625rem;
}

@media print, screen and (min-width: 40em) {
    .main-grid .main-content {
        width: calc(66.66667% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }
}

.main-grid .sidebar {
    width: calc(100% - 1.25rem);
    margin-right: 0.625rem;
    margin-left: 0.625rem;
}

@media print, screen and (min-width: 40em) {
    .main-grid .sidebar {
        width: calc(33.33333% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        margin-top: 1rem;
    }
}

.footer-container {
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 106.25rem;
    margin: 0 auto;
    padding-bottom: 5rem;
}

@media print, screen and (min-width: 40em) {
    .footer-container {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

.reveal-overlay {
    background-color: rgba(255, 158, 49, 0.8);
}

#nav_menu-3 {
    padding-top: 0;
}

@media screen and (max-width: 39.9375em) {
    #nav_menu-3 {
        padding: 0;
    }
}

.home .newsletter-signup {
    display: none;
}

    .home .newsletter-signup.show {
        margin-bottom: 0;
        display: block;
    }

.section--light-grey + .newsletter-signup {
    background-color: #fefefe;
    border-bottom: 1px solid #f5f5f5;
}

    .section--light-grey + .newsletter-signup input {
        background-color: #f5f5f5;
    }

.newsletter-signup {
    padding: 2.5rem 0;
    margin-bottom: 5rem;
    background-color: #f5f5f5;
}

    .newsletter-signup .newsletter-signup__container {
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-flex-flow: row wrap;
        -ms-flex-flow: row wrap;
        flex-flow: row wrap;
        padding-right: 0.625rem;
        padding-left: 0.625rem;
        max-width: 106.25rem;
        margin: 0 auto;
    }

@media print, screen and (min-width: 40em) {
    .newsletter-signup .newsletter-signup__container {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

@media screen and (max-width: 39.9375em) {
    .newsletter-signup .newsletter-signup__container {
        padding: 0;
    }
}

.newsletter-signup .newsletter-signup__container .newsletter-signup__title p {
    font-family: "Avenir LT W01_65 Medium1475532", Sans-serif;
    font-size: 1.25rem;
    margin: 0;
}

.newsletter-signup .newsletter-signup__container .button, .newsletter-signup .newsletter-signup__container .button--outline-only, .newsletter-signup .newsletter-signup__container #newsletter-signup #mc-embedded-subscribe, #newsletter-signup .newsletter-signup .newsletter-signup__container #mc-embedded-subscribe, .newsletter-signup .newsletter-signup__container .button--text-only {
    padding: 10px;
}

    .newsletter-signup .newsletter-signup__container .button p, .newsletter-signup .newsletter-signup__container .button--outline-only p, .newsletter-signup .newsletter-signup__container #newsletter-signup #mc-embedded-subscribe p, #newsletter-signup .newsletter-signup .newsletter-signup__container #mc-embedded-subscribe p, .newsletter-signup .newsletter-signup__container .button--text-only p {
        font-family: "Avenir LT W01_65 Medium1475532", Sans-serif;
        font-size: 1.05rem;
        color: #fefefe;
        margin: 6px;
    }

.newsletter-signup .newsletter-signup__container .newsletter-signup__title,
.newsletter-signup .newsletter-signup__container .email,
.newsletter-signup .newsletter-signup__container .name, .newsletter-signup .newsletter-signup__container .button, .newsletter-signup .newsletter-signup__container .button--outline-only, .newsletter-signup .newsletter-signup__container #newsletter-signup #mc-embedded-subscribe, #newsletter-signup .newsletter-signup .newsletter-signup__container #mc-embedded-subscribe, .newsletter-signup .newsletter-signup__container .button--text-only {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
    margin-top: 5px;
}

    .newsletter-signup .newsletter-signup__container .newsletter-signup__title::-webkit-input-placeholder,
    .newsletter-signup .newsletter-signup__container .email::-webkit-input-placeholder,
    .newsletter-signup .newsletter-signup__container .name::-webkit-input-placeholder,
    .newsletter-signup .newsletter-signup__container .button::-webkit-input-placeholder,
    .newsletter-signup .newsletter-signup__container .button--outline-only::-webkit-input-placeholder,
    .newsletter-signup .newsletter-signup__container #newsletter-signup #mc-embedded-subscribe::-webkit-input-placeholder,
    #newsletter-signup .newsletter-signup .newsletter-signup__container #mc-embedded-subscribe::-webkit-input-placeholder,
    .newsletter-signup .newsletter-signup__container .button--text-only::-webkit-input-placeholder {
        color: #808080;
    }

    .newsletter-signup .newsletter-signup__container .newsletter-signup__title:-ms-input-placeholder,
    .newsletter-signup .newsletter-signup__container .email:-ms-input-placeholder,
    .newsletter-signup .newsletter-signup__container .name:-ms-input-placeholder,
    .newsletter-signup .newsletter-signup__container .button:-ms-input-placeholder,
    .newsletter-signup .newsletter-signup__container .button--outline-only:-ms-input-placeholder,
    .newsletter-signup .newsletter-signup__container #newsletter-signup #mc-embedded-subscribe:-ms-input-placeholder,
    #newsletter-signup .newsletter-signup .newsletter-signup__container #mc-embedded-subscribe:-ms-input-placeholder,
    .newsletter-signup .newsletter-signup__container .button--text-only:-ms-input-placeholder {
        color: #808080;
    }

    .newsletter-signup .newsletter-signup__container .newsletter-signup__title::placeholder,
    .newsletter-signup .newsletter-signup__container .email::placeholder,
    .newsletter-signup .newsletter-signup__container .name::placeholder,
    .newsletter-signup .newsletter-signup__container .button::placeholder,
    .newsletter-signup .newsletter-signup__container .button--outline-only::placeholder,
    .newsletter-signup .newsletter-signup__container #newsletter-signup #mc-embedded-subscribe::placeholder,
    #newsletter-signup .newsletter-signup .newsletter-signup__container #mc-embedded-subscribe::placeholder,
    .newsletter-signup .newsletter-signup__container .button--text-only::placeholder {
        color: #808080;
    }

.newsletter-signup .newsletter-signup__container .email,
.newsletter-signup .newsletter-signup__container .name {
    margin-bottom: 10px;
    outline: none;
    border: none;
    padding: 10px;
}

@media print, screen and (min-width: 40em) {
    .newsletter-signup .newsletter-signup__container .newsletter-signup__title {
        width: calc(16.66667% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        margin-right: 0;
        -webkit-align-self: center;
        -ms-flex-item-align: center;
        -ms-grid-row-align: center;
        align-self: center;
    }

    .newsletter-signup .newsletter-signup__container .email,
    .newsletter-signup .newsletter-signup__container .name {
        width: calc(41.66667% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        margin: 0 5px;
        outline: none;
        border: none;
        padding: 0 10px;
    }

    .newsletter-signup .newsletter-signup__container .button, .newsletter-signup .newsletter-signup__container .button--outline-only, .newsletter-signup .newsletter-signup__container #newsletter-signup #mc-embedded-subscribe, #newsletter-signup .newsletter-signup .newsletter-signup__container #mc-embedded-subscribe, .newsletter-signup .newsletter-signup__container .button--text-only {
        width: calc(16.66667% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        margin: 0;
    }
}

@media print, screen and (min-width: 64em) {
    .newsletter-signup .newsletter-signup__container .newsletter-signup__title {
        text-align: right;
        width: calc(25% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }

    .newsletter-signup .newsletter-signup__container .email,
    .newsletter-signup .newsletter-signup__container .name {
        width: calc(25% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }
}

.footer-grid {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    padding: 1.875rem 0;
}

    .footer-grid section {
        margin-top: 0;
    }

@media print, screen and (min-width: 64em) {
    .footer-grid section {
        -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
        flex: 1 1 0px;
        width: auto;
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }
}

.footer-grid .logo {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
    margin-bottom: 2.5rem;
}

    .footer-grid .logo img {
        max-width: 200px;
        margin-bottom: 1.25rem;
    }

@media print, screen and (min-width: 40em) {
    .footer-grid .logo {
        width: calc(33.33333% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        margin-left: calc(33.33333% + 0.625rem);
    }
}

@media print, screen and (min-width: 64em) {
    .footer-grid .logo {
        width: calc(16.66667% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }
}

.footer-grid #menu-footer {
    display: none;
}

@media print, screen and (min-width: 40em) {
    .footer-grid #menu-footer {
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
    }
}

.footer-grid .copyright {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
}

    .footer-grid .copyright a,
    .footer-grid .copyright .font--black {
        display: block;
    }

@media print, screen and (min-width: 40em) {
    .footer-grid .copyright a.hide-for-medium-up,
    .footer-grid .copyright .hide-for-medium-up.font--black {
        display: none;
    }
}

@media print, screen and (min-width: 40em) {
    .footer-grid .copyright {
        width: calc(33.33333% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        margin-left: calc(33.33333% + 0.625rem);
    }
}

@media print, screen and (min-width: 64em) {
    .footer-grid .copyright {
        width: calc(16.66667% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }
}

.footer-grid ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
}

.footer-grid .header.no-link {
    width: calc(25% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
}

    .footer-grid .header.no-link > a, .footer-grid .sub-menu .header.no-link > .font--black, .sub-menu .footer-grid .header.no-link > .font--black,
    .footer-grid .copyright .header.no-link > .font--black, .copyright .footer-grid .header.no-link > .font--black {
        color: #0a0a0a;
        padding-top: 0;
    }

        .footer-grid .header.no-link > a:hover, .footer-grid .sub-menu .header.no-link > .font--black:hover, .sub-menu .footer-grid .header.no-link > .font--black:hover,
        .footer-grid .copyright .header.no-link > .font--black:hover, .copyright .footer-grid .header.no-link > .font--black:hover {
            cursor: default;
        }

.footer-grid #menu-footer .menu-item-has-children > a, .footer-grid #menu-footer .sub-menu .menu-item-has-children > .font--black, .sub-menu .footer-grid #menu-footer .menu-item-has-children > .font--black,
.footer-grid #menu-footer .copyright .menu-item-has-children > .font--black, .copyright .footer-grid #menu-footer .menu-item-has-children > .font--black {
    background: transparent;
}

.font--light {
    color: #AAAAAA;
    line-height: 1.2;
}

.sub-menu a, .sub-menu .font--black,
.copyright a,
.copyright .font--black {
    padding-top: 5px;
    padding-bottom: 5px;
}

    .sub-menu a:hover, .sub-menu .font--black:hover,
    .copyright a:hover,
    .copyright .font--black:hover {
        color: #0a0a0a;
    }

.sub-menu .font--black,
.copyright .font--black {
    color: #0a0a0a;
    margin-bottom: 0;
    padding-top: 0;
}

.copyright-wording {
    position: absolute;
    bottom: 20px;
    width: 100%;
}

body#tinymce {
    height: auto;
    max-width: 75rem;
    padding: 1.25rem !important;
}

.sites-button {
    background: #000000;
    font-size: 1.25rem;
    font-weight: bold;
    box-shadow: 0 -2px 0 rgba(0, 0, 0, 0.2) inset;
    border-radius: 3px;
    border: none;
}

.button, .button--outline-only, #newsletter-signup #mc-embedded-subscribe, .button--text-only {
    padding: 1.25rem;
    font-family: "Avenir LT W01_85 Heavy1475544", Sans-serif;
    font-size: 0.8rem;
}

.button--outline-only, #newsletter-signup #mc-embedded-subscribe {
    border: 1.5px solid #0a0a0a;
    background: transparent;
    color: #0a0a0a;
    transition: ease-in-out all 0.5s;
}

    .button--outline-only:hover, #newsletter-signup #mc-embedded-subscribe:hover {
        background: #0a0a0a;
        color: #fefefe;
    }

.button--text-only {
    background: transparent;
    color: #0a0a0a;
    border-bottom: 2px solid transparent;
    transition: border-bottom-color ease-in 0.5s;
}

    .button--text-only:hover, .button--text-only.active {
        background: transparent;
        border-bottom: 2px solid #0a0a0a;
        color: #0a0a0a;
    }

.cards-container {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
}

    .cards-container .card {
        width: calc(100% - 1.25rem);
        margin-right: 0.625rem;
        margin-left: 0.625rem;
    }

        .cards-container .card .card-content {
            padding: 1rem;
        }

@media print, screen and (min-width: 40em) {
    .cards-container .card {
        width: calc(33.33333% - 0.7rem);
        margin-right: 0.35rem;
        margin-left: 0.35rem;
    }
}

.featured-hero {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    height: 6.25rem;
}

@media print, screen and (min-width: 40em) {
    .featured-hero {
        height: 12.5rem;
    }
}

@media screen and (min-width: 75em) {
    .featured-hero {
        height: 25rem;
    }
}

.dotted {
    border-style: dashed;
    margin: 2rem 0;
}

[data-whatinput="mouse"] a:focus, [data-whatinput="mouse"] .sub-menu .font--black:focus, .sub-menu [data-whatinput="mouse"] .font--black:focus,
[data-whatinput="mouse"] .copyright .font--black:focus, .copyright [data-whatinput="mouse"] .font--black:focus, button:focus [data-whatinput="touch"] a:focus, button:focus [data-whatinput="touch"] .sub-menu .font--black:focus, .sub-menu button:focus [data-whatinput="touch"] .font--black:focus,
button:focus [data-whatinput="touch"] .copyright .font--black:focus, .copyright button:focus [data-whatinput="touch"] .font--black:focus, button:focus {
    outline: none;
}

.accordion {
    margin-top: 2.5rem;
}

    .accordion .accordion-item .accordion-title {
        font-size: 1.5rem;
        border: none;
        border-bottom: 1px solid #0a0a0a;
        color: #0a0a0a !important;
        padding-right: 3rem;
    }

        .accordion .accordion-item .accordion-title:before {
            font-size: 42px;
            top: unset;
            font-family: "Avenir LT W01_55 Roman1475520", Sans-serif;
        }

    .accordion .accordion-item.is-active .accordion-title {
        border: none;
    }

    .accordion .accordion-item.is-active .accordion-content {
        font-size: 1.1rem;
        border-bottom: 1px solid #0a0a0a;
    }

@media print, screen and (min-width: 40em) {
    .home-features .home-features__holder {
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-flex-flow: row wrap;
        -ms-flex-flow: row wrap;
        flex-flow: row wrap;
        -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
        width: calc(100% - 30px);
        margin-left: 15px;
        margin-right: 15px;
    }
}

@media screen and (max-width: 39.9375em) {
    .home-features .home-features__holder .slick-next, .home-features .home-features__holder .slick-prev {
        display: none;
    }
}

.home-features .home-features__holder .slick-next {
    right: 20px;
}

.home-features .home-features__holder .slick-prev {
    left: 20px;
    z-index: 1;
}

.home-features .home-features__holder .home-feature {
    position: relative;
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
    min-height: 300px;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-grow: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    margin-left: 0;
    margin-right: 0;
}

@media print, screen and (min-width: 64em) {
    .home-features .home-features__holder .home-feature {
        width: calc(33.33333% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        height: 760px;
        margin-left: 15px;
        margin-right: 15px;
    }
}

.home-features .home-features__holder .home-feature > div {
    background-size: cover;
    width: 100%;
    background-position: center center;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    min-height: 300px;
}

@media print, screen and (min-width: 64em) {
    .home-features .home-features__holder .home-feature > div {
        min-height: 500px;
    }
}

.home-features .home-features__holder .home-feature .home-feature__title-holder {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
    -webkit-align-self: flex-end;
    -ms-flex-item-align: end;
    align-self: flex-end;
    margin-bottom: 30px;
    padding-left: 9px;
}

    .home-features .home-features__holder .home-feature .home-feature__title-holder h1 {
        font-size: 2.5rem;
        z-index: 1;
        position: relative;
        line-height: 0.85;
        color: #fefefe;
        font-family: "Didot", Serif;
        text-transform: uppercase;
        opacity: 0.95;
        transition: ease-in-out 0.35s;
    }

@media print, screen and (min-width: 40em) {
    .home-features .home-features__holder .home-feature .home-feature__title-holder h1 {
        font-size: 3rem;
    }
}

@media print, screen and (min-width: 64em) {
    .home-features .home-features__holder .home-feature .home-feature__title-holder h1 {
        font-size: 3.6rem;
    }
}

.home-features .home-features__holder .home-feature .home-feature__title-holder h1 em {
    font-style: normal;
    font-family: "Didot Italic", Serif;
    display: block;
}

.home-features .home-features__holder .home-feature .home-feature__title-holder .link-title {
    line-height: 2;
    color: #fefefe;
    opacity: 0.95;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    position: relative;
    z-index: 1;
    font-size: 1.25rem;
    transition: ease-in-out 0.35s;
}

    .home-features .home-features__holder .home-feature .home-feature__title-holder .link-title:after {
        content: '';
        background-image: url(/wp-content/themes/new-leonardjoel/dist/assets/images/arrow.png);
        height: 18px;
        width: 35px;
        right: 20px;
        position: absolute;
        -webkit-align-self: center;
        -ms-flex-item-align: center;
        -ms-grid-row-align: center;
        align-self: center;
        opacity: 0.75;
    }

.home-features .home-features__holder .home-feature:after {
    height: 100%;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background-color: rgba(10, 10, 10, 0.25);
    content: '';
    transition: ease-in-out 0.5s;
}

.home-features .home-features__holder .home-feature:hover:after {
    background-color: rgba(10, 10, 10, 0.5);
}

.home-features .home-features__holder .home-feature:hover h1 {
    opacity: 1;
}

.home-features .home-features__holder .home-feature:hover .link-title {
    opacity: 1;
}

    .home-features .home-features__holder .home-feature:hover .link-title:after {
        -webkit-animation: bounce 0.5s infinite alternate;
        animation: bounce 0.5s infinite alternate;
        opacity: 1;
    }

@-webkit-keyframes bounce {
    from {
        -webkit-transform: translateX(0px);
        transform: translateX(0px);
    }

    to {
        -webkit-transform: translateX(-15px);
        transform: translateX(-15px);
    }
}

@keyframes bounce {
    from {
        -webkit-transform: translateX(0px);
        transform: translateX(0px);
    }

    to {
        -webkit-transform: translateX(-15px);
        transform: translateX(-15px);
    }
}

.section__heading, section .section__heading--no-padding {
    -webkit-justify-content: space-between;
    -ms-flex-pack: justify;
    justify-content: space-between;
}

    .section__heading h3, section .section__heading--no-padding h3 {
        margin-bottom: 32px;
    }

    .section__heading a, section .section__heading--no-padding a, .section__heading .sub-menu .font--black, .sub-menu .section__heading .font--black, section .section__heading--no-padding .sub-menu .font--black, .sub-menu section .section__heading--no-padding .font--black,
    .section__heading .copyright .font--black, .copyright .section__heading .font--black,
    section .section__heading--no-padding .copyright .font--black, .copyright section .section__heading--no-padding .font--black {
        -webkit-align-self: center;
        -ms-flex-item-align: center;
        -ms-grid-row-align: center;
        align-self: center;
        font-family: "Avenir LT W01_65 Medium1475532", Sans-serif;
        color: #0a0a0a;
    }

.news-features__holder {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 106.25rem;
    margin: 0 auto;
}

@media print, screen and (min-width: 40em) {
    .news-features__holder {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

@media screen and (max-width: 39.9375em) {
    .news-features__holder {
        padding: 0;
    }
}

.news-features__holder .news-feature {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
}

    .news-features__holder .news-feature:nth-of-type(n+4) {
        display: none;
    }

@media print, screen and (min-width: 40em) {
    .news-features__holder .news-feature {
        width: calc(33.33333% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        margin-left: 15px;
        margin-right: 15px;
        -webkit-flex-grow: 1;
        -ms-flex-positive: 1;
        flex-grow: 1;
    }

        .news-features__holder .news-feature:nth-of-type(3n + 1) {
            margin-left: 0;
        }

        .news-features__holder .news-feature:nth-of-type(3n) {
            margin-right: 0;
        }

        .news-features__holder .news-feature:nth-of-type(n+4) {
            display: block;
        }

        .news-features__holder .news-feature:nth-of-type(3) {
            margin-bottom: 2.5rem;
        }
}

.news-features__holder .news-feature .news-feature__image {
    margin-bottom: 1.875rem;
    display: block;
    height: 325px;
    background-size: cover;
    background-position: center center;
    position: relative;
}

    .news-features__holder .news-feature .news-feature__image:after {
        height: 1px;
        width: 100%;
        content: '';
        background-color: #f5f5f5;
        display: block;
        position: absolute;
        bottom: -1.25rem;
    }

.news-features__holder .news-feature p {
    margin-bottom: 5px;
    font-family: "Avenir LT W01_45 Book1475508", Sans-serif;
    padding-left: 22px;
}

.news-features__holder .news-feature .news-feature__title {
    color: #0a0a0a;
    margin-bottom: 0;
    font-size: 1.3rem;
    line-height: 1.2;
    padding-left: 22px;
    font-family: "Avenir LT W01_55 Roman1475520", Sans-serif;
}

.auction-features__holder {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 106.25rem;
    margin: 0 auto;
}

@media print, screen and (min-width: 40em) {
    .auction-features__holder {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

@media screen and (max-width: 39.9375em) {
    .auction-features__holder {
        padding: 0;
    }
}

@media print, screen and (min-width: 40em) {
    .auction-features__holder {
        -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    }
}

.auction-features__holder .auction-feature {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

@media screen and (max-width: 39.9375em) {
    .auction-features__holder .auction-feature:nth-of-type(n+4) {
        display: none;
    }
}

@media print, screen and (min-width: 40em) {
    .auction-features__holder .auction-feature {
        width: calc(25% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        margin-left: 10px;
        margin-right: 10px;
        -webkit-flex-grow: 1;
        -ms-flex-positive: 1;
        flex-grow: 1;
    }

        .auction-features__holder .auction-feature:first-of-type {
            margin-left: 0;
        }

        .auction-features__holder .auction-feature:last-of-type {
            margin-right: 0;
        }
}

.auction-features__holder .auction-feature .auction__image {
    width: 100%;
    margin: 0 0 1.25rem 0;
    height: 200px;
    background-size: cover;
    display: block;
    position: relative;
}

.auction-features__holder .auction-feature p {
    font-size: 1rem;
    width: 100%;
    font-family: "Avenir LT W01_45 Book1475508", Sans-serif;
    padding-right: 22px;
}

@media print, screen and (min-width: 64em) {
    .auction-features__holder .auction-feature p {
        text-align: right;
        width: calc(50% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        -webkit-flex-grow: 1;
        -ms-flex-positive: 1;
        flex-grow: 1;
        margin-right: 0;
        margin-bottom: 0;
    }
}

.auction-features__holder .auction-feature .auction-feature__title {
    font-size: 1rem;
    color: #0a0a0a;
    width: 100%;
    font-family: "Avenir LT W01_95 Black1475556", Sans-serif;
    padding-left: 22px;
}

@media print, screen and (min-width: 64em) {
    .auction-features__holder .auction-feature .auction-feature__title {
        width: calc(50% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        margin-left: 0;
        margin-right: 0.9375rem;
        margin-bottom: 0;
    }
}

.auction-features__holder .auction-feature:after {
    height: 0.5px;
    width: 100%;
    content: '';
    background-color: #f5f5f5;
    margin-top: 0.83333rem;
}

.video-features__holder {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 106.25rem;
    margin: 0 auto;
}

@media print, screen and (min-width: 40em) {
    .video-features__holder {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

@media screen and (max-width: 39.9375em) {
    .video-features__holder {
        padding: 0;
    }
}

.video-features__holder .video-feature {
    margin-bottom: 15px;
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

@media screen and (max-width: 39.9375em) {
    .video-features__holder .video-feature:nth-of-type(n+4) {
        display: none;
    }
}

.video-features__holder .video-feature .responsive-embed {
    width: 100%;
    padding-bottom: 57%;
    margin-right: 0;
    margin-bottom: 5px;
    background-size: cover;
    background-position: center;
    position: relative;
}

    .video-features__holder .video-feature .responsive-embed:after {
        content: '';
        background-image: url("/wp-content/themes/new-leonardjoel/dist/assets/images/play-button.png");
        height: 50px;
        width: 50px;
        background-size: cover;
        position: absolute;
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
    }

    .video-features__holder .video-feature .responsive-embed.video-play {
        background-image: none;
    }

        .video-features__holder .video-feature .responsive-embed.video-play:after {
            background-image: none;
        }

@media print, screen and (min-width: 40em) {
    .video-features__holder .video-feature {
        width: calc(25% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        margin-left: 10px;
        margin-right: 10px;
        -webkit-flex-grow: 1;
        -ms-flex-positive: 1;
        flex-grow: 1;
    }

        .video-features__holder .video-feature:nth-of-type(4n + 1) {
            margin-left: 0;
        }

        .video-features__holder .video-feature:nth-of-type(4n) {
            margin-right: 0;
        }
}

.video-features__holder .video-feature p {
    width: 100%;
    margin-bottom: 0;
    font-family: "Avenir LT W01_55 Roman1475520", Sans-serif;
    padding-right: 22px;
}

@media print, screen and (min-width: 64em) {
    .video-features__holder .video-feature p {
        text-align: right;
        width: calc(50% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        margin-right: 0;
        margin-left: calc(0.9375rem * 2);
    }
}

.video-features__holder .video-feature .video-feature__title {
    margin-bottom: 0;
    color: #0a0a0a;
    width: 100%;
    font-family: "Avenir LT W01_95 Black1475556", Sans-serif;
    padding-left: 22px;
}

@media print, screen and (min-width: 64em) {
    .video-features__holder .video-feature .video-feature__title {
        width: calc(50% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        margin-left: 0;
        margin-right: calc(0.9375rem * 2);
    }
}

.browse-departments {
    display: none;
}

@media print, screen and (min-width: 40em) {
    .browse-departments {
        display: block;
    }
}

.browse-departments .browse-departments__holder {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 106.25rem;
    margin: 0 auto;
}

@media print, screen and (min-width: 40em) {
    .browse-departments .browse-departments__holder {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

.browse-departments .browse-departments__holder .browse-department {
    color: #0a0a0a;
    border: 1px solid #0a0a0a;
    padding: 1.66667rem 0;
    text-align: center;
    margin-bottom: 1.25rem;
    font-family: "Avenir LT W01_85 Heavy1475544", Sans-serif;
    transition: ease-in-out all 0.5s;
}

    .browse-departments .browse-departments__holder .browse-department:hover {
        background-color: #0a0a0a;
        color: #fefefe;
    }

@media print, screen and (min-width: 40em) {
    .browse-departments .browse-departments__holder .browse-department {
        width: calc(20% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        margin-left: 10px;
        margin-right: 10px;
        -webkit-flex-grow: 1;
        -ms-flex-positive: 1;
        flex-grow: 1;
        font-size: 1.38rem;
    }

        .browse-departments .browse-departments__holder .browse-department:nth-of-type(5n +1) {
            margin-left: 0;
        }

        .browse-departments .browse-departments__holder .browse-department:nth-of-type(5n) {
            margin-right: 0;
        }
}

.department__introduction {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 75rem;
    margin: 0 auto;
}

@media print, screen and (min-width: 40em) {
    .department__introduction {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

.department__introduction .department__introduction-content p {
    font-size: 1.4rem;
    font-family: "Avenir LT W01_55 Roman1475520", Sans-serif;
    line-height: 1.2;
    font-weight: 400;
}

.department__body {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 75rem;
    margin: 0 auto;
}

@media print, screen and (min-width: 40em) {
    .department__body {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

@media print, screen and (min-width: 40em) {
    .department__body .department__body-content {
        height: auto;
        -webkit-columns: 2;
        columns: 2;
        -webkit-column-gap: 45px;
        column-gap: 45px;
        -webkit-column-fill: balance;
        column-fill: balance;
    }
}

.department__auction-highlights {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
}

    .department__auction-highlights .auction-feature {
        width: calc(100% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    }

        .department__auction-highlights .auction-feature:nth-of-type(n+7) {
            display: none;
        }

@media print, screen and (min-width: 40em) {
    .department__auction-highlights .auction-feature {
        width: calc(50% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }
}

@media print, screen and (min-width: 64em) {
    .department__auction-highlights .auction-feature {
        width: calc(16.66667% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        -webkit-flex: 1;
        -ms-flex: 1;
        flex: 1;
    }
}

.department__auction-highlights .auction-feature .auction__image {
    width: 100%;
    margin: 0 0 2.5rem 0;
    height: 210px;
    background-size: cover;
    background-position: center center;
}

.department__auction-highlights .auction-feature p {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
    font-size: 0.9rem;
    margin-left: 0;
    margin-right: 0;
}

.department__auction-highlights .auction-feature a, .department__auction-highlights .auction-feature .sub-menu .font--black, .sub-menu .department__auction-highlights .auction-feature .font--black,
.department__auction-highlights .auction-feature .copyright .font--black, .copyright .department__auction-highlights .auction-feature .font--black {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
    font-size: 0.9rem;
    margin-left: 0;
    margin-right: 0;
    color: #0a0a0a;
    font-family: "Avenir LT W01_65 Medium1475532", Sans-serif;
}

.department__team-members {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 75rem;
    margin: 0 auto;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

@media print, screen and (min-width: 40em) {
    .department__team-members {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

.department__team-members .department_team-member {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
}

@media print, screen and (min-width: 40em) {
    .department__team-members .department_team-member {
        width: calc(25% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        margin-left: 10px;
        margin-right: 10px;
    }

        .department__team-members .department_team-member:first-of-type {
            margin-left: 0;
        }

        .department__team-members .department_team-member:last-of-type {
            margin-right: 0;
        }
}

.department__team-members .department_team-member .department__staff-photo {
    width: 100%;
    margin-bottom: 2.5rem;
    height: 200px;
    background-size: cover;
    background-position: center center;
}

.department__team-members .department_team-member p {
    line-height: 1;
    font-family: "Avenir LT W01_85 Heavy1475544", Sans-serif;
}

    .department__team-members .department_team-member p span {
        font-size: 1rem;
        color: #AAAAAA;
    }

.department__team-members .department_team-member p {
    line-height: 1;
}

.department__closing-holder {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 75rem;
    margin: 0 auto;
}

@media print, screen and (min-width: 40em) {
    .department__closing-holder {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

.department__closing-holder .department__closing {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
}

@media print, screen and (min-width: 40em) {
    .department__closing-holder .department__closing {
        margin-top: 5rem;
        margin-bottom: 5rem;
        width: calc(83.33333% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        margin-left: calc(8.33333% + 0.625rem);
    }
}

.department__closing-holder .department__closing h3 {
    line-height: 1;
    text-align: center;
    font-weight: normal;
    font-family: "Avenir LT W01_55 Roman1475520", Sans-serif;
}

.department__closing-holder .department__closing a, .department__closing-holder .department__closing .sub-menu .font--black, .sub-menu .department__closing-holder .department__closing .font--black,
.department__closing-holder .department__closing .copyright .font--black, .copyright .department__closing-holder .department__closing .font--black {
    position: relative;
    color: #0a0a0a;
}

    .department__closing-holder .department__closing a:after, .department__closing-holder .department__closing .sub-menu .font--black:after, .sub-menu .department__closing-holder .department__closing .font--black:after,
    .department__closing-holder .department__closing .copyright .font--black:after, .copyright .department__closing-holder .department__closing .font--black:after {
        content: '';
        width: 100%;
        height: 1px;
        position: absolute;
        left: 0;
        bottom: 3px;
        background-color: #0a0a0a;
    }

.department__team-description {
    margin-top: 1rem;
}

.carriers {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 75rem;
    margin: 0 auto;
}

@media print, screen and (min-width: 40em) {
    .carriers {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

.carriers h2 {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
    margin-bottom: 2.5rem;
}

@media print, screen and (min-width: 40em) {
    .carriers .carrier__container {
        width: calc(50% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }
}

.carriers .carrier__container h6, .carriers .carrier__container .auction-catalogue .auction-catalogue__item .auction-catalogue__item__heading, .auction-catalogue .auction-catalogue__item .carriers .carrier__container .auction-catalogue__item__heading {
    font-family: "Avenir LT W01_85 Heavy1475544", Sans-serif;
    color: #0a0a0a;
}

.carriers__intro, .two-column__intro {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
    margin-bottom: 2.5rem;
}

@media print, screen and (min-width: 40em) {
    .carriers__intro, .two-column__intro {
        font-size: 36px;
    }
}

.carriers__intro p, .two-column__intro p {
    line-height: 1.1;
}

.issuuembed {
    background-color: #ffffff;
    height: 500px;
    margin: 0 auto;
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
}

@media print, screen and (min-width: 40em) {
    .issuuembed {
        width: calc(66.66667% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        margin-left: calc(16.66667% + 0.625rem);
    }
}

.book-covers__holder {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

    .book-covers__holder .book-covers {
        width: calc(50% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        background-size: cover;
        height: 200px;
        margin-bottom: 5px;
    }

@media print, screen and (min-width: 40em) {
    .book-covers__holder .book-covers {
        width: calc(25% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        height: 350px;
    }
}

.book-covers__holder .book-covers .book-covers__info {
    height: 100%;
    background-color: #FF9E31;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    padding: 10px;
    opacity: 0;
    transition: ease-in-out opacity 0.5s;
}

    .book-covers__holder .book-covers .book-covers__info .book-covers__info__content {
        -webkit-align-self: center;
        -ms-flex-item-align: center;
        -ms-grid-row-align: center;
        align-self: center;
        justify-self: center;
        text-align: center;
        width: 100%;
    }

    .book-covers__holder .book-covers .book-covers__info.show-info {
        opacity: 1;
    }

.about__header {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 75rem;
    margin: 0 auto;
}

@media print, screen and (min-width: 40em) {
    .about__header {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

article.flipbook {
    width: calc(50% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
}

@media print, screen and (min-width: 40em) {
    article.flipbook {
        width: calc(33.33333% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }
}

@media print, screen and (min-width: 64em) {
    article.flipbook {
        width: calc(25% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }
}

article.flipbook a, article.flipbook .sub-menu .font--black, .sub-menu article.flipbook .font--black,
article.flipbook .copyright .font--black, .copyright article.flipbook .font--black {
    width: 100%;
    height: 300px;
    display: block;
    background-position: center center;
}

article.flipbook h5 {
    font-family: "Avenir LT W01_55 Roman1475520", Sans-serif;
    line-height: 1.1;
    margin-top: 2.5rem;
}

.sidebar {
    padding-left: 2.5rem;
}

    .sidebar a, .sidebar .sub-menu .font--black, .sub-menu .sidebar .font--black,
    .sidebar .copyright .font--black, .copyright .sidebar .font--black {
        text-transform: uppercase;
    }

@media print, screen and (min-width: 40em) {
    .two-column__intro {
        margin-top: 0;
        padding-top: 2rem;
    }
}

.two-column__body {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
}

@media print, screen and (min-width: 40em) {
    .two-column__body {
        -webkit-column-count: 2;
        column-count: 2;
        -webkit-column-gap: 40px;
        column-gap: 40px;
    }
}

.team__section .team__container {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 75rem;
    margin: 0 auto;
    margin-bottom: 5rem;
}

@media print, screen and (min-width: 40em) {
    .team__section .team__container {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

.team__section .team__heading {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
    font-family: "Avenir LT W01_85 Heavy1475544", Sans-serif;
    margin-bottom: 2.5rem;
}

.team__section article {
    border-bottom: none;
    padding-top: 1rem;
    padding-bottom: 1rem;
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
}

    .team__section article h5 {
        font-family: "Avenir LT W01_85 Heavy1475544", Sans-serif;
        margin-bottom: 0;
        font-size: 25px;
    }

    .team__section article p {
        line-height: 1;
    }

        .team__section article p.position__title {
            color: #808080;
            font-size: 1.1rem;
        }

    .team__section article .team__email-address {
        margin-bottom: 0;
        line-height: 1;
        font-size: 0.9rem;
    }

    .team__section article img {
        width: 100%;
        height: 290px;
        margin-bottom: 30px;
    }

@media print, screen and (min-width: 40em) {
    .team__section article {
        width: calc(25% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }
}

.team__title {
    font-family: "Didot", Serif;
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
    text-transform: uppercase;
    font-size: 5rem;
}

.team__content {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
}

    .team__content p {
        font-size: 36px;
        line-height: 1.1;
    }

article {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
    border-bottom: 1px solid #AAAAAA;
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
}

    article:last-of-type {
        border: none;
    }

@media print, screen and (min-width: 40em) {
    article .blog-article {
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-flex-flow: row wrap;
        -ms-flex-flow: row wrap;
        flex-flow: row wrap;
        padding-right: 0.625rem;
        padding-left: 0.625rem;
        max-width: 75rem;
        margin: 0 auto;
    }
}

@media print, screen and (min-width: 40em) and (min-width: 40em) {
    article .blog-article {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

article a.auction__image, article .sub-menu .auction__image.font--black, .sub-menu article .auction__image.font--black,
article .copyright .auction__image.font--black, .copyright article .auction__image.font--black {
    display: block;
    width: 100%;
    height: 200px;
    background-size: cover;
    background-position: center center;
    margin-bottom: 2.5rem;
}

@media print, screen and (min-width: 40em) {
    article a.auction__image, article .sub-menu .auction__image.font--black, .sub-menu article .auction__image.font--black,
    article .copyright .auction__image.font--black, .copyright article .auction__image.font--black {
        width: calc(41.66667% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }
}

@media print, screen and (min-width: 40em) {
    article .blog-content-holder {
        width: calc(58.33333% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }
}

article .blog--excerpt {
    display: none;
}

@media print, screen and (min-width: 40em) {
    article .blog--excerpt {
        display: block;
    }
}

article h3 {
    font-family: "Avenir LT W01_55 Roman1475520", Sans-serif;
    font-weight: bold;
}

article a.button--outline-only, article .sub-menu .button--outline-only.font--black, .sub-menu article .button--outline-only.font--black, article .sub-menu #newsletter-signup .font--black#mc-embedded-subscribe, .sub-menu #newsletter-signup article .font--black#mc-embedded-subscribe, article #newsletter-signup .sub-menu .font--black#mc-embedded-subscribe, #newsletter-signup .sub-menu article .font--black#mc-embedded-subscribe,
article .copyright .button--outline-only.font--black, .copyright article .button--outline-only.font--black, article .copyright #newsletter-signup .font--black#mc-embedded-subscribe, .copyright #newsletter-signup article .font--black#mc-embedded-subscribe, article #newsletter-signup .copyright .font--black#mc-embedded-subscribe, #newsletter-signup .copyright article .font--black#mc-embedded-subscribe, article #newsletter-signup a#mc-embedded-subscribe, #newsletter-signup article a#mc-embedded-subscribe {
    margin-top: 2.5rem;
    display: block;
}

@media print, screen and (min-width: 40em) {
    article a.button--outline-only, article .sub-menu .button--outline-only.font--black, .sub-menu article .button--outline-only.font--black, article .sub-menu #newsletter-signup .font--black#mc-embedded-subscribe, .sub-menu #newsletter-signup article .font--black#mc-embedded-subscribe, article #newsletter-signup .sub-menu .font--black#mc-embedded-subscribe, #newsletter-signup .sub-menu article .font--black#mc-embedded-subscribe,
    article .copyright .button--outline-only.font--black, .copyright article .button--outline-only.font--black, article .copyright #newsletter-signup .font--black#mc-embedded-subscribe, .copyright #newsletter-signup article .font--black#mc-embedded-subscribe, article #newsletter-signup .copyright .font--black#mc-embedded-subscribe, #newsletter-signup .copyright article .font--black#mc-embedded-subscribe, article #newsletter-signup a#mc-embedded-subscribe, #newsletter-signup article a#mc-embedded-subscribe {
        width: calc(33.33333% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }
}

#news-media-form {
    margin-top: 2.5rem;
}

    #news-media-form .news-media-form-wrapper {
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-flex-flow: row wrap;
        -ms-flex-flow: row wrap;
        flex-flow: row wrap;
        padding-right: 0.625rem;
        padding-left: 0.625rem;
        max-width: 75rem;
        margin: 0 auto;
    }

@media print, screen and (min-width: 40em) {
    #news-media-form .news-media-form-wrapper {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

#news-media-form .news-media-form-wrapper .search {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
    margin-bottom: 0;
    margin-right: 0;
    padding: 1.4rem;
    background-color: #f5f5f5;
    color: #0a0a0a;
}

@media print, screen and (min-width: 40em) {
    #news-media-form .news-media-form-wrapper .search {
        width: calc(50% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        margin-left: calc(25% + 0.625rem);
    }
}

#news-media-form .news-media-form-wrapper .search::-webkit-input-placeholder {
    color: #0a0a0a;
    font-weight: bold;
}

#news-media-form .news-media-form-wrapper .search:-ms-input-placeholder {
    color: #0a0a0a;
    font-weight: bold;
}

#news-media-form .news-media-form-wrapper .search::placeholder {
    color: #0a0a0a;
    font-weight: bold;
}

#news-media-form .news-media-form-wrapper .button, #news-media-form .news-media-form-wrapper .button--outline-only, #news-media-form .news-media-form-wrapper #newsletter-signup #mc-embedded-subscribe, #newsletter-signup #news-media-form .news-media-form-wrapper #mc-embedded-subscribe, #news-media-form .news-media-form-wrapper .button--text-only {
    margin-left: 0;
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
}

@media print, screen and (min-width: 40em) {
    #news-media-form .news-media-form-wrapper .button, #news-media-form .news-media-form-wrapper .button--outline-only, #news-media-form .news-media-form-wrapper #newsletter-signup #mc-embedded-subscribe, #newsletter-signup #news-media-form .news-media-form-wrapper #mc-embedded-subscribe, #news-media-form .news-media-form-wrapper .button--text-only {
        width: calc(16.66667% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }
}

#news-media-form .news-media-form-wrapper .toggle-categories {
    display: none;
}

@media print, screen and (min-width: 40em) {
    #news-media-form .news-media-form-wrapper .toggle-categories {
        display: block;
        text-align: center;
        font-weight: bold;
        width: calc(25% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        margin-left: calc(66.66667% + 0.625rem);

    }
}

#news-media-form .categories {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    display: none;
    background-color: #FF9E31;
    padding: 0 100px;
}

    #news-media-form .categories .categories__list {
        padding-right: 0.625rem;
        padding-left: 0.625rem;
        max-width: 75rem;
        margin: 0 auto;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    }

@media print, screen and (min-width: 40em) {
    #news-media-form .categories .categories__list {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}



    #news-media-form .categories li input {
        margin: 0;
    }

.newsletter__holder {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 75rem;
    margin: 0 auto;
}

@media print, screen and (min-width: 40em) {
    .newsletter__holder {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

.newsletter__holder .newsletter__article {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
}

@media print, screen and (min-width: 40em) {
    .newsletter__holder .newsletter__article {
        width: calc(25% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }
}

.error {
    display: none;
}

.qs {
    background-color: transparent;
    border: 1px solid #242424;
    border-radius: 15px;
    color: #242424;
    cursor: pointer;
    display: inline-block;
    font-family: "Avenir LT W01_55 Roman1475520", Sans-serif;
    font-size: 10px;
    height: 15px;
    line-height: 15px;
    position: relative;
    text-align: center;
    width: 15px;
    margin-bottom: -12px;
    margin-top: -12px;
}

    .qs .popover {
        background-color: #ffc212;
        color: #242424;
        display: none;
        font-size: 1em;
        line-height: 1em;
        left: -4em;
        position: absolute;
        text-align: left;
        top: 35px;
        padding: 1em;
        width: 14em;
        z-index: 4;
    }

        .qs .popover:before {
            border-bottom: 7px solid #ffc212;
            border-right: 7px solid transparent;
            border-left: 7px solid transparent;
            top: -7px;
            content: '';
            display: block;
            left: 50%;
            margin-left: -3.5em;
            position: absolute;
        }

    .qs:hover {
        background-color: #242424;
        color: #f5f5f5;
    }

        .qs:hover .popover {
            display: block;
            -webkit-animation: fade-in 0.3s linear 1;
            animation: fade-in 0.3s linear 1;
        }

@-webkit-keyframes fade-in {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes fade-in {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

#file {
    visibility: hidden;
    position: absolute;
    z-index: -100;
    width: 0;
}

.file-upload {
    padding: 30px;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    border: 1px solid #AAAAAA;
}

    .file-upload .upload {
        justify-self: center;
        margin: 0 auto;
        display: block;
    }

.form__holder {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 50rem;
    margin: 0 auto;
}

@media print, screen and (min-width: 40em) {
    .form__holder {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

.form__holder .form-element {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
}

    .form__holder .form-element input,
    .form__holder .form-element select,
    .form__holder .form-element textarea {
        background-color: #f5f5f5;
        box-shadow: none;
    }

        .form__holder .form-element input::-webkit-input-placeholder,
        .form__holder .form-element select::-webkit-input-placeholder,
        .form__holder .form-element textarea::-webkit-input-placeholder {
            color: #808080;
        }

        .form__holder .form-element input:-ms-input-placeholder,
        .form__holder .form-element select:-ms-input-placeholder,
        .form__holder .form-element textarea:-ms-input-placeholder {
            color: #808080;
        }

        .form__holder .form-element input::placeholder,
        .form__holder .form-element select::placeholder,
        .form__holder .form-element textarea::placeholder {
            color: #808080;
        }

        .form__holder .form-element input option.empty,
        .form__holder .form-element select option.empty,
        .form__holder .form-element textarea option.empty {
            color: #808080;
        }

.form__holder .form-element--thirds {
    width: calc(33.33333% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
}

    .form__holder .form-element--thirds input {
        background-color: #f5f5f5;
        box-shadow: none;
    }

        .form__holder .form-element--thirds input::-webkit-input-placeholder {
            color: #808080;
        }

        .form__holder .form-element--thirds input:-ms-input-placeholder {
            color: #808080;
        }

        .form__holder .form-element--thirds input::placeholder {
            color: #808080;
        }

.form__holder .form-element--quarter {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
}

@media print, screen and (min-width: 40em) {
    .form__holder .form-element--quarter {
        width: calc(25% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }
}

.form__holder .form-element--quarter .expiry {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
}

    .form__holder .form-element--quarter .expiry #exp-sep {
        width: 15px;
        font-size: 2rem;
        margin: 0 1rem;
    }

    .form__holder .form-element--quarter .expiry input {
        width: 50%;
    }

.form__holder label {
    background: transparent;
    display: inline-block;
}

#mc_embed_signup_scroll {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 50rem;
    margin: 0 auto;
}

@media print, screen and (min-width: 40em) {
    #mc_embed_signup_scroll {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

#mc_embed_signup_scroll ul {
    margin: 0;
}

    #mc_embed_signup_scroll ul li {
        list-style: none;
    }

        #mc_embed_signup_scroll ul li label {
            font-size: 1rem;
        }

        #mc_embed_signup_scroll ul li input {
            width: 1rem;
            height: 1rem;
        }

#newsletter-signup {
    outline: none;
    border: 1px solid #0a0a0a;
}

    #newsletter-signup .full-width {
        width: 100%;
    }

        #newsletter-signup .full-width input {
            background-color: #DEDEDE;
            margin-bottom: 5px;
            box-shadow: none;
        }

            #newsletter-signup .full-width input::-webkit-input-placeholder {
                color: #808080;
            }

            #newsletter-signup .full-width input:-ms-input-placeholder {
                color: #808080;
            }

            #newsletter-signup .full-width input::placeholder {
                color: #808080;
            }

    #newsletter-signup .signupform .half-width {
        margin: 0;
        width: 50%;
    }

        #newsletter-signup .signupform .half-width li {
            margin: 15px 0;
        }

            #newsletter-signup .signupform .half-width li input {
                visibility: hidden;
            }

            #newsletter-signup .signupform .half-width li label {
                position: relative;
            }

                #newsletter-signup .signupform .half-width li label:before {
                    content: '';
                    height: 1rem;
                    width: 1rem;
                    border: 1px solid #808080;
                    display: block;
                    position: absolute;
                    left: -25px;
                    top: 5px;
                }

                #newsletter-signup .signupform .half-width li label.checked:before {
                    border: 6px solid #808080;
                }

    #newsletter-signup h5 {
        width: 100%;
        margin: 2.5rem 0 1.25rem;
        font-family: "Avenir LT W01_65 Medium1475532", Sans-serif;
    }

    #newsletter-signup .clear {
        width: 100%;
    }

    #newsletter-signup #mc-embedded-subscribe {
        width: 100%;
    }

.auction-calendar__header {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 100vw;
    margin: 0 auto;
    margin-top: 2.5rem;
    border-bottom: 1px solid #f5f5f5;
}

@media print, screen and (min-width: 40em) {
    .auction-calendar__header {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

.auction-calendar__header .auction-calendar__heading {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
}

@media print, screen and (min-width: 40em) {
    .auction-calendar__header .auction-calendar__heading {
        width: calc(25% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }
}

.auction-calendar__header .auction-calendar__heading h1 {
    font-family: "Avenir LT W01_55 Roman1475520", Sans-serif;
    color: #AAAAAA;
}

@media print, screen and (min-width: 40em) {
    .auction-calendar__header .auction-calendar__heading h1 {
        font-size: 1.9375rem;
    }
}

.auction-calendar__header .auction-calendar__links {
    display: none;
}

@media print, screen and (min-width: 40em) {
    .auction-calendar__header .auction-calendar__links {
        width: calc(41.66667% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        margin-left: calc(8.33333% + 0.625rem);
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
    }

        .auction-calendar__header .auction-calendar__links .auction-calendar__links-holder {
            display: -webkit-flex;
            display: -ms-flexbox;
            display: flex;
            -webkit-flex-flow: row wrap;
            -ms-flex-flow: row wrap;
            flex-flow: row wrap;
            -webkit-align-self: center;
            -ms-flex-item-align: center;
            align-self: center;
            width: 100%;
        }

            .auction-calendar__header .auction-calendar__links .auction-calendar__links-holder a, .auction-calendar__header .auction-calendar__links .auction-calendar__links-holder .sub-menu .font--black, .sub-menu .auction-calendar__header .auction-calendar__links .auction-calendar__links-holder .font--black,
            .auction-calendar__header .auction-calendar__links .auction-calendar__links-holder .copyright .font--black, .copyright .auction-calendar__header .auction-calendar__links .auction-calendar__links-holder .font--black {
                width: calc(25% - 1.875rem);
                margin-right: 0.9375rem;
                margin-left: 0.9375rem;
                text-align: center;
                transition: ease-in-out all 0.5s;
                border-bottom: 3px solid transparent;
            }

                .auction-calendar__header .auction-calendar__links .auction-calendar__links-holder a:hover, .auction-calendar__header .auction-calendar__links .auction-calendar__links-holder .sub-menu .font--black:hover, .sub-menu .auction-calendar__header .auction-calendar__links .auction-calendar__links-holder .font--black:hover,
                .auction-calendar__header .auction-calendar__links .auction-calendar__links-holder .copyright .font--black:hover, .copyright .auction-calendar__header .auction-calendar__links .auction-calendar__links-holder .font--black:hover {
                    border-bottom: 3px solid #0a0a0a;
                    color: #0a0a0a;
                }
}

.auction-calendar__header .auction-calendar__view-results {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
}

@media print, screen and (min-width: 40em) {
    .auction-calendar__header .auction-calendar__view-results {
        width: calc(16.66667% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        margin-left: calc(8.33333% + 0.625rem);
    }
}

.auction-calendar__header .auction-calendar__view-results a, .auction-calendar__header .auction-calendar__view-results .sub-menu .font--black, .sub-menu .auction-calendar__header .auction-calendar__view-results .font--black,
.auction-calendar__header .auction-calendar__view-results .copyright .font--black, .copyright .auction-calendar__header .auction-calendar__view-results .font--black {
    text-align: right;
    -webkit-align-self: center;
    -ms-flex-item-align: center;
    -ms-grid-row-align: center;
    align-self: center;
    width: 100%;
    font-weight: bold;
    color: #0a0a0a;
}

@media print, screen and (min-width: 40em) {
    .auction-calendar__header .auction-calendar__view-results a, .auction-calendar__header .auction-calendar__view-results .sub-menu .font--black, .sub-menu .auction-calendar__header .auction-calendar__view-results .font--black,
    .auction-calendar__header .auction-calendar__view-results .copyright .font--black, .copyright .auction-calendar__header .auction-calendar__view-results .font--black {
        text-align: center;
    }
}

.auctions-calendar {
    border-top: 1px solid #f5f5f5;
}

   /*** .auctions-calendar h2 {
        width: calc(100% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }*****/

    .auctions-calendar .auctions-calendar__listing {
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-flex-flow: row wrap;
        -ms-flex-flow: row wrap;
        flex-flow: row wrap;
        border-bottom: 1px solid #f5f5f5;
        padding-bottom: 2.5rem;
        padding-top: 2.5rem;
    }

        .auctions-calendar .auctions-calendar__listing .auction__date-holder {
            width: calc(50% - 1.875rem);
            margin-right: 0.9375rem;
            margin-left: 0.9375rem;
        }

@media print, screen and (min-width: 40em) {
    .auctions-calendar .auctions-calendar__listing .auction__date-holder {
        width: calc(16.66667% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }
}

.auctions-calendar .auctions-calendar__listing .auction__date-holder .auction__lot {
    color: #AAAAAA;
}

.auctions-calendar .auctions-calendar__listing .auction__date-holder .auction__date {
    font-weight: bold;
    line-height: 1;
}

    .auctions-calendar .auctions-calendar__listing .auction__date-holder .auction__date .word1 {
        font-size: 4rem;
        display: block;
    }

    .auctions-calendar .auctions-calendar__listing .auction__date-holder .auction__date .word2 {
        font-size: 1.5rem;
    }

.auctions-calendar .auctions-calendar__listing .auction__ctas {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
}

@media print, screen and (min-width: 40em) {
    .auctions-calendar .auctions-calendar__listing .auction__ctas {
        width: calc(25% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }
}

.auctions-calendar .auctions-calendar__listing .auction__image {
    width: calc(50% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
    background-size: cover;
    background-position: center center;
}

@media print, screen and (min-width: 40em) {
    .auctions-calendar .auctions-calendar__listing .auction__image {
        width: calc(16.66667% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }
}

.auctions-calendar .auctions-calendar__listing .auction__details {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
    line-height: 1.2;
}

@media print, screen and (min-width: 40em) {
    .auctions-calendar .auctions-calendar__listing .auction__details {
        width: calc(41.66667% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }
}

.auctions-calendar .auctions-calendar__listing .auction__details h2 {
    font-family: "Avenir LT W01_55 Roman1475520", Sans-serif;
}

.auctions-calendar .auctions-calendar__listing .auction__details p {
    color: #AAAAAA;
    line-height: 1.1;
}

.sale-information {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 75rem;
    margin: 0 auto;
}

@media print, screen and (min-width: 40em) {
    .sale-information {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

.sale-information h4, .sale-information .about__header p, .about__header .sale-information p {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
}

.sale-information .sale-information__info {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
}

    .sale-information .sale-information__info p,
    .sale-information .sale-information__info a,
    .sale-information .sale-information__info .sub-menu .font--black,
    .sub-menu .sale-information .sale-information__info .font--black,
    .sale-information .sale-information__info .copyright .font--black,
    .copyright .sale-information .sale-information__info .font--black {
        line-height: 1;
        margin-bottom: 0;
        color: #6f6f6f;
    }

    .sale-information .sale-information__info h6 span, .sale-information .sale-information__info .auction-catalogue .auction-catalogue__item .auction-catalogue__item__heading span, .auction-catalogue .auction-catalogue__item .sale-information .sale-information__info .auction-catalogue__item__heading span {
        color: #AAAAAA;
    }

@media print, screen and (min-width: 40em) {
    .sale-information .sale-information__info {
        width: calc(33.33333% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }
}

.auction-catalogue {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 75rem;
    margin: 0 auto;
}

@media print, screen and (min-width: 40em) {
    .auction-catalogue {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

.auction-catalogue .auction-catalogue__item {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
}

@media print, screen and (min-width: 40em) {
    .auction-catalogue .auction-catalogue__item {
        width: calc(25% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        margin-bottom: 1.25rem;
    }
}

.auction-catalogue .auction-catalogue__item .auction-catalogue__item__image {
    display: block;
    width: 100%;
    min-height: 280px;
    background-position: center center;
    margin-bottom: 10px;
    background-size: contain;
    background-repeat: no-repeat;
}

.auction-catalogue .auction-catalogue__item .auction-catalogue__item__heading {
    padding-bottom: 10px;
    border-bottom: 1px solid #AAAAAA;
    text-decoration: none;
    display: block;
}

.auction-catalogue .auction-catalogue__item p {
    color: #6f6f6f;
    margin-bottom: 0px;
    line-height: 20px;
}

.auction-catalogue.items-page {
    margin-top: 7.5rem;
    border-top: 1px solid #AAAAAA;
}

    .auction-catalogue.items-page h4, .auction-catalogue.items-page .about__header p, .about__header .auction-catalogue.items-page p {
        width: calc(100% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        margin-top: 2.5rem;
        margin-bottom: 2.5rem;
    }

.pagination-holder {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    margin-top: 2.5rem;
}

    .pagination-holder a, .pagination-holder .sub-menu .font--black, .sub-menu .pagination-holder .font--black,
    .pagination-holder .copyright .font--black, .copyright .pagination-holder .font--black {
        display: block;
        width: 30px;
        -webkit-flex-grow: 1;
        -ms-flex-positive: 1;
        flex-grow: 1;
        text-align: center;
        -webkit-align-self: center;
        -ms-flex-item-align: center;
        -ms-grid-row-align: center;
        align-self: center;
    }



        .pagination-holder a span, .pagination-holder .sub-menu .font--black span, .sub-menu .pagination-holder .font--black span, .pagination-holder .copyright .font--black span, .copyright .pagination-holder .font--black span {
            color: #0a0a0a;
            font-weight: bold;
        }

        .pagination-holder a span {
            font-size: 16px !important;
        }

        .pagination-holder a:first-of-type, .pagination-holder .sub-menu .font--black:first-of-type, .sub-menu .pagination-holder .font--black:first-of-type,
        .pagination-holder .copyright .font--black:first-of-type, .copyright .pagination-holder .font--black:first-of-type, .pagination-holder a:last-of-type, .pagination-holder .sub-menu .font--black:last-of-type, .sub-menu .pagination-holder .font--black:last-of-type,
        .pagination-holder .copyright .font--black:last-of-type, .copyright .pagination-holder .font--black:last-of-type {
            font-size: 2rem;
        }

.auction-item {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 75rem;
    margin: 0 auto;
}

@media print, screen and (min-width: 40em) {
    .auction-item {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

.auction-item .auction-item__images {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
}

@media print, screen and (min-width: 40em) {
    .auction-item .auction-item__images {
        width: calc(50% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }
}

.auction-item .auction-item__images .auction-item__images__zoom,
.auction-item .auction-item__images .auction-item__images__zoom {
    justify-self: center;
}

.auction-item .auction-item__images .auction-item__images__small {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
}

    .auction-item .auction-item__images .auction-item__images__small a, .auction-item .auction-item__images .auction-item__images__small .sub-menu .font--black, .sub-menu .auction-item .auction-item__images .auction-item__images__small .font--black,
    .auction-item .auction-item__images .auction-item__images__small .copyright .font--black, .copyright .auction-item .auction-item__images .auction-item__images__small .font--black {
        width: calc(33.33333% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        display: block;
        height: 150px;
        background-position: center;
        background-size: cover;
    }

.auction-item__content {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
}

@media print, screen and (min-width: 40em) {
    .auction-item__content {
        width: calc(50% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }
}

.site-content.auctions-calendar .auction-catalogue .auction-catalogue__item {
    border-bottom: 1px solid #AAAAAA;
}

    .site-content.auctions-calendar .auction-catalogue .auction-catalogue__item .auction-catalogue__item__heading {
        border-bottom: none;
    }

.search-results__search {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 75rem;
    margin: 0 auto;
    margin-bottom: 1.25rem;
}

@media print, screen and (min-width: 40em) {
    .search-results__search {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

.search-results__search .search-results__search-box {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
}

    .search-results__search .search-results__search-box input {
        height: 100%;
    }

@media print, screen and (min-width: 40em) {
    .search-results__search .search-results__search-box {
        width: calc(50% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        margin-left: calc(16.66667% + 0.625rem);
    }
}

.search-results__search .search-results__search-button {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
}

    .search-results__search .search-results__search-button input {
        width: 100%;
        margin-bottom: 0;
    }

@media print, screen and (min-width: 40em) {
    .search-results__search .search-results__search-button {
        width: calc(16.66667% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }
}

.search-results__search-checkboxes input {
    visibility: hidden;
}

.search-results__search-checkboxes label {
    position: relative;
}

    .search-results__search-checkboxes label:before {
        content: '';
        height: 1rem;
        width: 1rem;
        border: 1px solid #808080;
        display: block;
        position: absolute;
        left: -25px;
        top: 5px;
    }

    .search-results__search-checkboxes label.checked:before {
        border: 6px solid #808080;
    }

#card-types {
    margin: 0;
    padding: 0;
    list-style: none;
}

    #card-types li {
        display: inline;
    }

        #card-types li.faded {
            opacity: 0.3;
        }

.subtotal p {
    margin-bottom: 0;
}

    .subtotal p.total {
        font-size: 1.2rem;
        border-top: 2px solid #0a0a0a;
        margin-top: 2.5rem;
        padding-top: 15px;
    }

        .subtotal p.total:last-of-type {
            border-top: none;
            margin-top: 0;
            padding-top: 0;
        }

#make-payment-button {
    margin-top: 2.5rem;
}

.g-recaptcha {
    margin-top: 2.5rem;
}

@media print, screen and (min-width: 40em) {
    .contact__location-holder {
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-flex-flow: row wrap;
        -ms-flex-flow: row wrap;
        flex-flow: row wrap;
        padding-right: 0.625rem;
        padding-left: 0.625rem;
        max-width: 75rem;
        margin: 0 auto;
    }
}

@media print, screen and (min-width: 40em) and (min-width: 40em) {
    .contact__location-holder {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

.contact__location-holder .contact__location {
    width: 100%;
    border-bottom: 3px solid #f5f5f5;
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
}

@media print, screen and (min-width: 40em) {
    .contact__location-holder .contact__location {
        width: calc(50% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }
}

@media print, screen and (min-width: 40em) {
    .contact__location-holder .contact__details-holder {
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-flex-flow: row wrap;
        -ms-flex-flow: row wrap;
        flex-flow: row wrap;
    }
}

.contact__location-holder .contact__details-holder .contact__city {
    width: 100%;
}

.contact__location-holder .contact__details-holder .contact__address {
    width: 100%;
}

@media print, screen and (min-width: 40em) {
    .contact__location-holder .contact__details-holder .contact__address {
        width: calc(50% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }
}

@media print, screen and (min-width: 40em) {
    .contact__location-holder .contact__details-holder .contact__phone {
        width: calc(50% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }
}

.contact__location-holder .contact__details-holder .contact__phone p {
    line-height: 1;
}

.contact__location-holder .acf-map {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
    height: 250px;
    width: 100%;
    margin: 2.5rem 0;
    border: 5px solid #AAAAAA;
}

@media print, screen and (min-width: 40em) {
    .contact__location-holder .contact__hours span p {
        -webkit-columns: 2;
        columns: 2;
    }
}

#contact-form {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 40rem;
    margin: 0 auto;
}

@media print, screen and (min-width: 40em) {
    #contact-form {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

#contact-form section {
    width: 100%;
}

@media print, screen and (min-width: 40em) {
    .how-to__intro {
        font-size: 36px;
    }
}

.how-to__intro p {
    line-height: 1.1;
}

.bidding-circle__holder {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 106.25rem;
    margin: 0 auto;
}

@media print, screen and (min-width: 40em) {
    .bidding-circle__holder {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

.bidding-circle__holder .bidding-circle {
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
    position: relative;
    height: 330px;
    color: #fefefe;
}

@media print, screen and (min-width: 40em) {
    .bidding-circle__holder .bidding-circle {
        width: calc(25% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
        height: 360px;
    }
}

.bidding-circle__holder .bidding-circle:before {
    content: '';
    height: 300px;
    width: 300px;
    border-radius: 50%;
    position: absolute;
    top: 0;
    z-index: -1;
    border: #0a0a0a 160px solid;
}

@media print, screen and (min-width: 40em) {
    .bidding-circle__holder .bidding-circle:before {
        height: 360px;
        width: 360px;
        border: #0a0a0a 180px solid;
    }
}

.bidding-circle__holder .bidding-circle .bidding-circle__content {
    position: absolute;
    left: 53%;
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);
    width: 290px;
    top: 65px;
}

    .bidding-circle__holder .bidding-circle .bidding-circle__content h3 {
        font-family: "Avenir LT W01_85 Heavy1475544", Sans-serif;
        font-size: 36px;
    }

@media print, screen and (min-width: 40em) {
    .bidding-circle__holder .bidding-circle .bidding-circle__content p {
        font-size: 20px;
    }
}

.bidding-circle__holder.Yellow .bidding-circle:before {
    border: #FF9E31 180px solid;
}

@media print, screen and (min-width: 40em) {
    .page-template-page-how-to .main-grid {
        margin-top: 120px;
    }
}

@media print, screen and (min-width: 40em) {
    .bidding-options {
        -webkit-column-count: 2;
        column-count: 2;
        -webkit-column-gap: 40px;
        column-gap: 40px;
    }
}

section {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    width: 100%;
}

@media print, screen and (min-width: 40em) {
    section {
        margin-top: 2.5rem;
        padding-top: 2.5rem;
    }
}

section:last-of-type {
    margin-bottom: 2.5rem;
    padding-bottom: 2.5rem;
}

section.no-padding {
    padding-top: 0;
}

section .section__heading, section .section__heading--no-padding {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 106.25rem;
    margin: 0 auto;
    margin-bottom: 1.25rem;
}

@media print, screen and (min-width: 40em) {
    section .section__heading, section .section__heading--no-padding {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

section .section__heading--no-padding {
    max-width: none;
}

section.section--light-grey {
    background-color: #f5f5f5;
}

section:last-of-type {
    margin-bottom: 0;
}

@media print, screen and (min-width: 40em) {
    section .intro p {
        font-size: 36px;
        line-height: 1.1;
    }
}

.text--light {
    color: #AAAAAA;
}

.font--heavy {
    font-family: "Avenir LT W01_85 Heavy1475544", Sans-serif;
}

.font--heading {
    font-family: "Avenir LT W01_55 Roman1475520", Sans-serif;
}

@media print, screen and (min-width: 40em) {
    .hide-for-medium-up {
        display: none;
    }
}

h1 {
    color: #0a0a0a;
    margin-bottom: 2.5rem;
    font-size: 1.5rem;
    line-height: 0.8;
    font-family: "Didot", Serif;
    font-weight: normal;
    text-transform: uppercase;
}

@media print, screen and (min-width: 40em) {
    h1 {
        font-size: 5rem;
    }
}

.faded-background {
    background-size: cover;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    background-position: center right;
    position: relative;
}

    .faded-background .header__holder {
        padding-right: 0.625rem;
        padding-left: 0.625rem;
        max-width: 75rem;
        margin: 0 auto;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-flex-flow: row wrap;
        -ms-flex-flow: row wrap;
        flex-flow: row wrap;
        width: 100%;
    }

@media print, screen and (min-width: 40em) {
    .faded-background .header__holder {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem;
    }
}

.faded-background .header__holder .department__header {
    width: 100%;
    min-height: 25vh;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    z-index: 1;
}

@media print, screen and (min-width: 64em) {
    .faded-background .header__holder .department__header {
        min-height: 50vh;
    }
}

.faded-background .header__holder .department__header h1 {
    color: #fefefe;
    width: calc(100% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
    -webkit-align-self: flex-end;
    -ms-flex-item-align: end;
    align-self: flex-end;
    margin-bottom: 2.5rem;
    font-size: 1.5rem;
    line-height: 0.8;
    font-family: "Didot", Serif;
    font-weight: normal;
    text-transform: uppercase;
}

    .faded-background .header__holder .department__header h1 span:last-of-type {
        font-family: "Didot Italic", Serif;
        display: block;
    }

@media print, screen and (min-width: 40em) {
    .faded-background .header__holder .department__header h1 {
        font-size: 5rem;
    }
}

.faded-background:after {
    position: absolute;
    width: 100%;
    min-height: 25vh;
    top: 0;
    left: 0;
    content: '';
}

@media print, screen and (min-width: 64em) {
    .faded-background:after {
        min-height: 50vh;
    }
}

@media print, screen and (min-width: 40em) {
    .two-col--md-up {
        -webkit-column-count: 2;
        column-count: 2;
        -webkit-column-gap: 40px;
        column-gap: 40px;
    }
}

.full-width {
    width: 100% !important;
}

.half-width {
    width: calc(50% - 1.875rem);
    margin-right: 0.9375rem;
    margin-left: 0.9375rem;
}

body.fixed {
    position: fixed;
    width: 100%;
}

/* Slider */
.slick-loading .slick-list {
    background: #fff url("./ajax-loader.gif") center center no-repeat;
}

/* Icons */
@font-face {
    font-family: "slick";
    src: url("./fonts/slick.eot");
    src: url("./fonts/slick.eot?#iefix") format("embedded-opentype"), url("./fonts/slick.woff") format("woff"), url("./fonts/slick.ttf") format("truetype"), url("./fonts/slick.svg#slick") format("svg");
    font-weight: normal;
    font-style: normal;
}

/* Arrows */
.slick-prev,
.slick-next {
    position: absolute;
    display: block;
    height: 20px;
    width: 20px;
    line-height: 0px;
    font-size: 0px;
    cursor: pointer;
    background: transparent;
    color: transparent;
    top: 50%;
    -webkit-transform: translate(0, -50%);
    -ms-transform: translate(0, -50%);
    transform: translate(0, -50%);
    padding: 0;
    border: none;
    outline: none;
}

    .slick-prev:hover, .slick-prev:focus,
    .slick-next:hover,
    .slick-next:focus {
        outline: none;
        background: transparent;
        color: transparent;
    }

        .slick-prev:hover:before, .slick-prev:focus:before,
        .slick-next:hover:before,
        .slick-next:focus:before {
            opacity: 1;
        }

    .slick-prev.slick-disabled:before,
    .slick-next.slick-disabled:before {
        opacity: 0.25;
    }

    .slick-prev:before,
    .slick-next:before {
        font-family: "slick";
        font-size: 20px;
        line-height: 1;
        color: white;
        opacity: 0.75;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
    }

.slick-prev {
    left: -25px;
}

[dir="rtl"] .slick-prev {
    left: auto;
    right: -25px;
}

.slick-prev:before {
    content: "←";
}

[dir="rtl"] .slick-prev:before {
    content: "→";
}

.slick-next {
    right: -25px;
}

[dir="rtl"] .slick-next {
    left: -25px;
    right: auto;
}

.slick-next:before {
    content: "→";
}

[dir="rtl"] .slick-next:before {
    content: "←";
}

/* Dots */
.slick-dotted.slick-slider {
    margin-bottom: 30px;
}

.slick-dots {
    position: absolute;
    bottom: -25px;
    list-style: none;
    display: block;
    text-align: center;
    padding: 0;
    margin: 0;
    width: 100%;
}

    .slick-dots li {
        position: relative;
        display: inline-block;
        height: 20px;
        width: 20px;
        margin: 0 5px;
        padding: 0;
        cursor: pointer;
    }

        .slick-dots li button {
            border: 0;
            background: transparent;
            display: block;
            height: 20px;
            width: 20px;
            outline: none;
            line-height: 0px;
            font-size: 0px;
            color: transparent;
            padding: 5px;
            cursor: pointer;
        }

            .slick-dots li button:hover, .slick-dots li button:focus {
                outline: none;
            }

                .slick-dots li button:hover:before, .slick-dots li button:focus:before {
                    opacity: 1;
                }

            .slick-dots li button:before {
                position: absolute;
                top: 0;
                left: 0;
                content: "•";
                width: 20px;
                height: 20px;
                font-family: "slick";
                font-size: 6px;
                line-height: 20px;
                text-align: center;
                color: black;
                opacity: 0.25;
                -webkit-font-smoothing: antialiased;
                -moz-osx-font-smoothing: grayscale;
            }

        .slick-dots li.slick-active button:before {
            color: black;
            opacity: 0.75;
        }

/* Slider */
.slick-slider {
    position: relative;
    display: block;
    box-sizing: border-box;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -ms-touch-action: pan-y;
    touch-action: pan-y;
    -webkit-tap-highlight-color: transparent;
}

.slick-list {
    position: relative;
    overflow: hidden;
    display: block;
    margin: 0;
    padding: 0;
}

    .slick-list:focus {
        outline: none;
    }

    .slick-list.dragging {
        cursor: pointer;
        cursor: hand;
    }

.slick-slider .slick-track,
.slick-slider .slick-list {
    -webkit-transform: translate3d(0, 0, 0);
    -ms-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
}

.slick-track {
    position: relative;
    left: 0;
    top: 0;
    display: block;
    margin-left: auto;
    margin-right: auto;
}

    .slick-track:before, .slick-track:after {
        content: "";
        display: table;
    }

    .slick-track:after {
        clear: both;
    }

.slick-loading .slick-track {
    visibility: hidden;
}

.slick-slide {
    float: left;
    height: 100%;
    min-height: 1px;
    display: none;
}

[dir="rtl"] .slick-slide {
    float: right;
}

.slick-slide img {
    display: block;
}

.slick-slide.slick-loading img {
    display: none;
}

.slick-slide.dragging img {
    pointer-events: none;
}

.slick-initialized .slick-slide {
    display: block;
}

.slick-loading .slick-slide {
    visibility: hidden;
}

.slick-vertical .slick-slide {
    display: block;
    height: auto;
    border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
    display: none;
}

/*!
* Hamburgers
* @description Tasty CSS-animated hamburgers
* @author Jonathan Suh @jonsuh
* @site https://jonsuh.com/hamburgers
* @link https://github.com/jonsuh/hamburgers
*/
.hamburger {
    padding: 10px 10px;
    display: inline-block;
    cursor: pointer;
    transition-property: opacity, -webkit-filter;
    transition-property: opacity, filter;
    transition-property: opacity, filter, -webkit-filter;
    transition-duration: 0.15s;
    transition-timing-function: linear;
    font: inherit;
    color: inherit;
    text-transform: none;
    background-color: transparent;
    border: 0;
    margin: 0;
    overflow: visible;
}

    .hamburger:hover {
        opacity: 0.7;
    }

    .hamburger.is-active:hover {
        opacity: 0.7;
    }

    .hamburger.is-active .hamburger-inner,
    .hamburger.is-active .hamburger-inner::before,
    .hamburger.is-active .hamburger-inner::after {
        background-color: #000;
    }

.hamburger-box {
    width: 30px;
    height: 19px;
    display: inline-block;
    position: relative;
}

.hamburger-inner {
    display: block;
    top: 50%;
    margin-top: -1.5px;
}

    .hamburger-inner, .hamburger-inner::before, .hamburger-inner::after {
        width: 30px;
        height: 3px;
        background-color: #000;
        border-radius: 4px;
        position: absolute;
        transition-property: -webkit-transform;
        transition-property: transform;
        transition-property: transform, -webkit-transform;
        transition-duration: 0.15s;
        transition-timing-function: ease;
    }

        .hamburger-inner::before, .hamburger-inner::after {
            content: "";
            display: block;
        }

        .hamburger-inner::before {
            top: -8px;
        }

        .hamburger-inner::after {
            bottom: -8px;
        }

/*
* 3DX
*/
.hamburger--3dx .hamburger-box {
    -webkit-perspective: 60px;
    perspective: 60px;
}

.hamburger--3dx .hamburger-inner {
    transition: background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
}

    .hamburger--3dx .hamburger-inner::before, .hamburger--3dx .hamburger-inner::after {
        transition: -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
        transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
        transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    }

.hamburger--3dx.is-active .hamburger-inner {
    background-color: transparent !important;
    -webkit-transform: rotateY(180deg);
    transform: rotateY(180deg);
}

    .hamburger--3dx.is-active .hamburger-inner::before {
        -webkit-transform: translate3d(0, 8px, 0) rotate(45deg);
        transform: translate3d(0, 8px, 0) rotate(45deg);
    }

    .hamburger--3dx.is-active .hamburger-inner::after {
        -webkit-transform: translate3d(0, -8px, 0) rotate(-45deg);
        transform: translate3d(0, -8px, 0) rotate(-45deg);
    }

/*
* 3DX Reverse
*/
.hamburger--3dx-r .hamburger-box {
    -webkit-perspective: 60px;
    perspective: 60px;
}

.hamburger--3dx-r .hamburger-inner {
    transition: background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
}

    .hamburger--3dx-r .hamburger-inner::before, .hamburger--3dx-r .hamburger-inner::after {
        transition: -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
        transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
        transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    }

.hamburger--3dx-r.is-active .hamburger-inner {
    background-color: transparent !important;
    -webkit-transform: rotateY(-180deg);
    transform: rotateY(-180deg);
}

    .hamburger--3dx-r.is-active .hamburger-inner::before {
        -webkit-transform: translate3d(0, 8px, 0) rotate(45deg);
        transform: translate3d(0, 8px, 0) rotate(45deg);
    }

    .hamburger--3dx-r.is-active .hamburger-inner::after {
        -webkit-transform: translate3d(0, -8px, 0) rotate(-45deg);
        transform: translate3d(0, -8px, 0) rotate(-45deg);
    }

/*
* 3DY
*/
.hamburger--3dy .hamburger-box {
    -webkit-perspective: 60px;
    perspective: 60px;
}

.hamburger--3dy .hamburger-inner {
    transition: background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
}

    .hamburger--3dy .hamburger-inner::before, .hamburger--3dy .hamburger-inner::after {
        transition: -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
        transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
        transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    }

.hamburger--3dy.is-active .hamburger-inner {
    background-color: transparent !important;
    -webkit-transform: rotateX(-180deg);
    transform: rotateX(-180deg);
}

    .hamburger--3dy.is-active .hamburger-inner::before {
        -webkit-transform: translate3d(0, 8px, 0) rotate(45deg);
        transform: translate3d(0, 8px, 0) rotate(45deg);
    }

    .hamburger--3dy.is-active .hamburger-inner::after {
        -webkit-transform: translate3d(0, -8px, 0) rotate(-45deg);
        transform: translate3d(0, -8px, 0) rotate(-45deg);
    }

/*
* 3DY Reverse
*/
.hamburger--3dy-r .hamburger-box {
    -webkit-perspective: 60px;
    perspective: 60px;
}

.hamburger--3dy-r .hamburger-inner {
    transition: background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
}

    .hamburger--3dy-r .hamburger-inner::before, .hamburger--3dy-r .hamburger-inner::after {
        transition: -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
        transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
        transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    }

.hamburger--3dy-r.is-active .hamburger-inner {
    background-color: transparent !important;
    -webkit-transform: rotateX(180deg);
    transform: rotateX(180deg);
}

    .hamburger--3dy-r.is-active .hamburger-inner::before {
        -webkit-transform: translate3d(0, 8px, 0) rotate(45deg);
        transform: translate3d(0, 8px, 0) rotate(45deg);
    }

    .hamburger--3dy-r.is-active .hamburger-inner::after {
        -webkit-transform: translate3d(0, -8px, 0) rotate(-45deg);
        transform: translate3d(0, -8px, 0) rotate(-45deg);
    }

/*
* 3DXY
*/
.hamburger--3dxy .hamburger-box {
    -webkit-perspective: 60px;
    perspective: 60px;
}

.hamburger--3dxy .hamburger-inner {
    transition: background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
}

    .hamburger--3dxy .hamburger-inner::before, .hamburger--3dxy .hamburger-inner::after {
        transition: -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
        transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
        transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    }

.hamburger--3dxy.is-active .hamburger-inner {
    background-color: transparent !important;
    -webkit-transform: rotateX(180deg) rotateY(180deg);
    transform: rotateX(180deg) rotateY(180deg);
}

    .hamburger--3dxy.is-active .hamburger-inner::before {
        -webkit-transform: translate3d(0, 8px, 0) rotate(45deg);
        transform: translate3d(0, 8px, 0) rotate(45deg);
    }

    .hamburger--3dxy.is-active .hamburger-inner::after {
        -webkit-transform: translate3d(0, -8px, 0) rotate(-45deg);
        transform: translate3d(0, -8px, 0) rotate(-45deg);
    }

/*
* 3DXY Reverse
*/
.hamburger--3dxy-r .hamburger-box {
    -webkit-perspective: 60px;
    perspective: 60px;
}

.hamburger--3dxy-r .hamburger-inner {
    transition: background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
}

    .hamburger--3dxy-r .hamburger-inner::before, .hamburger--3dxy-r .hamburger-inner::after {
        transition: -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
        transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
        transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    }

.hamburger--3dxy-r.is-active .hamburger-inner {
    background-color: transparent !important;
    -webkit-transform: rotateX(180deg) rotateY(180deg) rotateZ(-180deg);
    transform: rotateX(180deg) rotateY(180deg) rotateZ(-180deg);
}

    .hamburger--3dxy-r.is-active .hamburger-inner::before {
        -webkit-transform: translate3d(0, 8px, 0) rotate(45deg);
        transform: translate3d(0, 8px, 0) rotate(45deg);
    }

    .hamburger--3dxy-r.is-active .hamburger-inner::after {
        -webkit-transform: translate3d(0, -8px, 0) rotate(-45deg);
        transform: translate3d(0, -8px, 0) rotate(-45deg);
    }

/*
* Arrow
*/
.hamburger--arrow.is-active .hamburger-inner::before {
    -webkit-transform: translate3d(-6px, 0, 0) rotate(-45deg) scale(0.7, 1);
    transform: translate3d(-6px, 0, 0) rotate(-45deg) scale(0.7, 1);
}

.hamburger--arrow.is-active .hamburger-inner::after {
    -webkit-transform: translate3d(-6px, 0, 0) rotate(45deg) scale(0.7, 1);
    transform: translate3d(-6px, 0, 0) rotate(45deg) scale(0.7, 1);
}

/*
* Arrow Right
*/
.hamburger--arrow-r.is-active .hamburger-inner::before {
    -webkit-transform: translate3d(6px, 0, 0) rotate(45deg) scale(0.7, 1);
    transform: translate3d(6px, 0, 0) rotate(45deg) scale(0.7, 1);
}

.hamburger--arrow-r.is-active .hamburger-inner::after {
    -webkit-transform: translate3d(6px, 0, 0) rotate(-45deg) scale(0.7, 1);
    transform: translate3d(6px, 0, 0) rotate(-45deg) scale(0.7, 1);
}

/*
* Arrow Alt
*/
.hamburger--arrowalt .hamburger-inner::before {
    transition: top 0.1s 0.1s ease, -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: top 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: top 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.hamburger--arrowalt .hamburger-inner::after {
    transition: bottom 0.1s 0.1s ease, -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: bottom 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: bottom 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.hamburger--arrowalt.is-active .hamburger-inner::before {
    top: 0;
    -webkit-transform: translate3d(-6px, -7.5px, 0) rotate(-45deg) scale(0.7, 1);
    transform: translate3d(-6px, -7.5px, 0) rotate(-45deg) scale(0.7, 1);
    transition: top 0.1s ease, -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
    transition: top 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
    transition: top 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22), -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
}

.hamburger--arrowalt.is-active .hamburger-inner::after {
    bottom: 0;
    -webkit-transform: translate3d(-6px, 7.5px, 0) rotate(45deg) scale(0.7, 1);
    transform: translate3d(-6px, 7.5px, 0) rotate(45deg) scale(0.7, 1);
    transition: bottom 0.1s ease, -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
    transition: bottom 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
    transition: bottom 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22), -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
}

/*
* Arrow Alt Right
*/
.hamburger--arrowalt-r .hamburger-inner::before {
    transition: top 0.1s 0.1s ease, -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: top 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: top 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.hamburger--arrowalt-r .hamburger-inner::after {
    transition: bottom 0.1s 0.1s ease, -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: bottom 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: bottom 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.hamburger--arrowalt-r.is-active .hamburger-inner::before {
    top: 0;
    -webkit-transform: translate3d(6px, -7.5px, 0) rotate(45deg) scale(0.7, 1);
    transform: translate3d(6px, -7.5px, 0) rotate(45deg) scale(0.7, 1);
    transition: top 0.1s ease, -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
    transition: top 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
    transition: top 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22), -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
}

.hamburger--arrowalt-r.is-active .hamburger-inner::after {
    bottom: 0;
    -webkit-transform: translate3d(6px, 7.5px, 0) rotate(-45deg) scale(0.7, 1);
    transform: translate3d(6px, 7.5px, 0) rotate(-45deg) scale(0.7, 1);
    transition: bottom 0.1s ease, -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
    transition: bottom 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
    transition: bottom 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22), -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
}

/*
* Arrow Turn
*/
.hamburger--arrowturn.is-active .hamburger-inner {
    -webkit-transform: rotate(-180deg);
    -ms-transform: rotate(-180deg);
    transform: rotate(-180deg);
}

    .hamburger--arrowturn.is-active .hamburger-inner::before {
        -webkit-transform: translate3d(8px, 0, 0) rotate(45deg) scale(0.7, 1);
        transform: translate3d(8px, 0, 0) rotate(45deg) scale(0.7, 1);
    }

    .hamburger--arrowturn.is-active .hamburger-inner::after {
        -webkit-transform: translate3d(8px, 0, 0) rotate(-45deg) scale(0.7, 1);
        transform: translate3d(8px, 0, 0) rotate(-45deg) scale(0.7, 1);
    }

/*
* Arrow Turn Right
*/
.hamburger--arrowturn-r.is-active .hamburger-inner {
    -webkit-transform: rotate(-180deg);
    -ms-transform: rotate(-180deg);
    transform: rotate(-180deg);
}

    .hamburger--arrowturn-r.is-active .hamburger-inner::before {
        -webkit-transform: translate3d(-8px, 0, 0) rotate(-45deg) scale(0.7, 1);
        transform: translate3d(-8px, 0, 0) rotate(-45deg) scale(0.7, 1);
    }

    .hamburger--arrowturn-r.is-active .hamburger-inner::after {
        -webkit-transform: translate3d(-8px, 0, 0) rotate(45deg) scale(0.7, 1);
        transform: translate3d(-8px, 0, 0) rotate(45deg) scale(0.7, 1);
    }

/*
* Boring
*/
.hamburger--boring .hamburger-inner, .hamburger--boring .hamburger-inner::before, .hamburger--boring .hamburger-inner::after {
    transition-property: none;
}

.hamburger--boring.is-active .hamburger-inner {
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
}

    .hamburger--boring.is-active .hamburger-inner::before {
        top: 0;
        opacity: 0;
    }

    .hamburger--boring.is-active .hamburger-inner::after {
        bottom: 0;
        -webkit-transform: rotate(-90deg);
        -ms-transform: rotate(-90deg);
        transform: rotate(-90deg);
    }

/*
* Collapse
*/
.hamburger--collapse .hamburger-inner {
    top: auto;
    bottom: 0;
    transition-duration: 0.13s;
    transition-delay: 0.13s;
    transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
}

    .hamburger--collapse .hamburger-inner::after {
        top: -16px;
        transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0.1s linear;
    }

    .hamburger--collapse .hamburger-inner::before {
        transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
        transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
        transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    }

.hamburger--collapse.is-active .hamburger-inner {
    -webkit-transform: translate3d(0, -8px, 0) rotate(-45deg);
    transform: translate3d(0, -8px, 0) rotate(-45deg);
    transition-delay: 0.22s;
    transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
}

    .hamburger--collapse.is-active .hamburger-inner::after {
        top: 0;
        opacity: 0;
        transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0.1s 0.22s linear;
    }

    .hamburger--collapse.is-active .hamburger-inner::before {
        top: 0;
        -webkit-transform: rotate(-90deg);
        -ms-transform: rotate(-90deg);
        transform: rotate(-90deg);
        transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), -webkit-transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1);
    }

/*
* Collapse Reverse
*/
.hamburger--collapse-r .hamburger-inner {
    top: auto;
    bottom: 0;
    transition-duration: 0.13s;
    transition-delay: 0.13s;
    transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
}

    .hamburger--collapse-r .hamburger-inner::after {
        top: -16px;
        transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0.1s linear;
    }

    .hamburger--collapse-r .hamburger-inner::before {
        transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
        transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
        transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    }

.hamburger--collapse-r.is-active .hamburger-inner {
    -webkit-transform: translate3d(0, -8px, 0) rotate(45deg);
    transform: translate3d(0, -8px, 0) rotate(45deg);
    transition-delay: 0.22s;
    transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
}

    .hamburger--collapse-r.is-active .hamburger-inner::after {
        top: 0;
        opacity: 0;
        transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0.1s 0.22s linear;
    }

    .hamburger--collapse-r.is-active .hamburger-inner::before {
        top: 0;
        -webkit-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
        transform: rotate(90deg);
        transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), -webkit-transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1);
    }

/*
* Elastic
*/
.hamburger--elastic .hamburger-inner {
    top: 1.5px;
    transition-duration: 0.275s;
    transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

    .hamburger--elastic .hamburger-inner::before {
        top: 8px;
        transition: opacity 0.125s 0.275s ease;
    }

    .hamburger--elastic .hamburger-inner::after {
        top: 16px;
        transition: -webkit-transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55);
        transition: transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55);
        transition: transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55), -webkit-transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    }

.hamburger--elastic.is-active .hamburger-inner {
    -webkit-transform: translate3d(0, 8px, 0) rotate(135deg);
    transform: translate3d(0, 8px, 0) rotate(135deg);
    transition-delay: 0.075s;
}

    .hamburger--elastic.is-active .hamburger-inner::before {
        transition-delay: 0s;
        opacity: 0;
    }

    .hamburger--elastic.is-active .hamburger-inner::after {
        -webkit-transform: translate3d(0, -16px, 0) rotate(-270deg);
        transform: translate3d(0, -16px, 0) rotate(-270deg);
        transition-delay: 0.075s;
    }

/*
* Elastic Reverse
*/
.hamburger--elastic-r .hamburger-inner {
    top: 1.5px;
    transition-duration: 0.275s;
    transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

    .hamburger--elastic-r .hamburger-inner::before {
        top: 8px;
        transition: opacity 0.125s 0.275s ease;
    }

    .hamburger--elastic-r .hamburger-inner::after {
        top: 16px;
        transition: -webkit-transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55);
        transition: transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55);
        transition: transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55), -webkit-transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    }

.hamburger--elastic-r.is-active .hamburger-inner {
    -webkit-transform: translate3d(0, 8px, 0) rotate(-135deg);
    transform: translate3d(0, 8px, 0) rotate(-135deg);
    transition-delay: 0.075s;
}

    .hamburger--elastic-r.is-active .hamburger-inner::before {
        transition-delay: 0s;
        opacity: 0;
    }

    .hamburger--elastic-r.is-active .hamburger-inner::after {
        -webkit-transform: translate3d(0, -16px, 0) rotate(270deg);
        transform: translate3d(0, -16px, 0) rotate(270deg);
        transition-delay: 0.075s;
    }

/*
* Emphatic
*/
.hamburger--emphatic {
    overflow: hidden;
}

    .hamburger--emphatic .hamburger-inner {
        transition: background-color 0.125s 0.175s ease-in;
    }

        .hamburger--emphatic .hamburger-inner::before {
            left: 0;
            transition: top 0.05s 0.125s linear, left 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335);
            transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, left 0.125s 0.175s ease-in;
            transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, left 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335);
        }

        .hamburger--emphatic .hamburger-inner::after {
            top: 8px;
            right: 0;
            transition: top 0.05s 0.125s linear, right 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335);
            transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, right 0.125s 0.175s ease-in;
            transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, right 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335);
        }

    .hamburger--emphatic.is-active .hamburger-inner {
        transition-delay: 0s;
        transition-timing-function: ease-out;
        background-color: transparent !important;
    }

        .hamburger--emphatic.is-active .hamburger-inner::before {
            left: -60px;
            top: -60px;
            -webkit-transform: translate3d(60px, 60px, 0) rotate(45deg);
            transform: translate3d(60px, 60px, 0) rotate(45deg);
            transition: left 0.125s ease-out, top 0.05s 0.125s linear, -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
            transition: left 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
            transition: left 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1), -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
        }

        .hamburger--emphatic.is-active .hamburger-inner::after {
            right: -60px;
            top: -60px;
            -webkit-transform: translate3d(-60px, 60px, 0) rotate(-45deg);
            transform: translate3d(-60px, 60px, 0) rotate(-45deg);
            transition: right 0.125s ease-out, top 0.05s 0.125s linear, -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
            transition: right 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
            transition: right 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1), -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
        }

/*
* Emphatic Reverse
*/
.hamburger--emphatic-r {
    overflow: hidden;
}

    .hamburger--emphatic-r .hamburger-inner {
        transition: background-color 0.125s 0.175s ease-in;
    }

        .hamburger--emphatic-r .hamburger-inner::before {
            left: 0;
            transition: top 0.05s 0.125s linear, left 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335);
            transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, left 0.125s 0.175s ease-in;
            transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, left 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335);
        }

        .hamburger--emphatic-r .hamburger-inner::after {
            top: 8px;
            right: 0;
            transition: top 0.05s 0.125s linear, right 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335);
            transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, right 0.125s 0.175s ease-in;
            transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, right 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335);
        }

    .hamburger--emphatic-r.is-active .hamburger-inner {
        transition-delay: 0s;
        transition-timing-function: ease-out;
        background-color: transparent !important;
    }

        .hamburger--emphatic-r.is-active .hamburger-inner::before {
            left: -60px;
            top: 60px;
            -webkit-transform: translate3d(60px, -60px, 0) rotate(-45deg);
            transform: translate3d(60px, -60px, 0) rotate(-45deg);
            transition: left 0.125s ease-out, top 0.05s 0.125s linear, -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
            transition: left 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
            transition: left 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1), -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
        }

        .hamburger--emphatic-r.is-active .hamburger-inner::after {
            right: -60px;
            top: 60px;
            -webkit-transform: translate3d(-60px, -60px, 0) rotate(45deg);
            transform: translate3d(-60px, -60px, 0) rotate(45deg);
            transition: right 0.125s ease-out, top 0.05s 0.125s linear, -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
            transition: right 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
            transition: right 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1), -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
        }

/*
* Minus
*/
.hamburger--minus .hamburger-inner::before, .hamburger--minus .hamburger-inner::after {
    transition: bottom 0.08s 0s ease-out, top 0.08s 0s ease-out, opacity 0s linear;
}

.hamburger--minus.is-active .hamburger-inner::before, .hamburger--minus.is-active .hamburger-inner::after {
    opacity: 0;
    transition: bottom 0.08s ease-out, top 0.08s ease-out, opacity 0s 0.08s linear;
}

.hamburger--minus.is-active .hamburger-inner::before {
    top: 0;
}

.hamburger--minus.is-active .hamburger-inner::after {
    bottom: 0;
}

/*
* Slider
*/
.hamburger--slider .hamburger-inner {
    top: 1.5px;
}

    .hamburger--slider .hamburger-inner::before {
        top: 8px;
        transition-property: opacity, -webkit-transform;
        transition-property: transform, opacity;
        transition-property: transform, opacity, -webkit-transform;
        transition-timing-function: ease;
        transition-duration: 0.15s;
    }

    .hamburger--slider .hamburger-inner::after {
        top: 16px;
    }

.hamburger--slider.is-active .hamburger-inner {
    -webkit-transform: translate3d(0, 8px, 0) rotate(45deg);
    transform: translate3d(0, 8px, 0) rotate(45deg);
}

    .hamburger--slider.is-active .hamburger-inner::before {
        -webkit-transform: rotate(-45deg) translate3d(-4.28571px, -5px, 0);
        transform: rotate(-45deg) translate3d(-4.28571px, -5px, 0);
        opacity: 0;
    }

    .hamburger--slider.is-active .hamburger-inner::after {
        -webkit-transform: translate3d(0, -16px, 0) rotate(-90deg);
        transform: translate3d(0, -16px, 0) rotate(-90deg);
    }

/*
* Slider Reverse
*/
.hamburger--slider-r .hamburger-inner {
    top: 1.5px;
}

    .hamburger--slider-r .hamburger-inner::before {
        top: 8px;
        transition-property: opacity, -webkit-transform;
        transition-property: transform, opacity;
        transition-property: transform, opacity, -webkit-transform;
        transition-timing-function: ease;
        transition-duration: 0.15s;
    }

    .hamburger--slider-r .hamburger-inner::after {
        top: 16px;
    }

.hamburger--slider-r.is-active .hamburger-inner {
    -webkit-transform: translate3d(0, 8px, 0) rotate(-45deg);
    transform: translate3d(0, 8px, 0) rotate(-45deg);
}

    .hamburger--slider-r.is-active .hamburger-inner::before {
        -webkit-transform: rotate(45deg) translate3d(4.28571px, -5px, 0);
        transform: rotate(45deg) translate3d(4.28571px, -5px, 0);
        opacity: 0;
    }

    .hamburger--slider-r.is-active .hamburger-inner::after {
        -webkit-transform: translate3d(0, -16px, 0) rotate(90deg);
        transform: translate3d(0, -16px, 0) rotate(90deg);
    }

/*
* Spin
*/
.hamburger--spin .hamburger-inner {
    transition-duration: 0.22s;
    transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
}

    .hamburger--spin .hamburger-inner::before {
        transition: top 0.1s 0.25s ease-in, opacity 0.1s ease-in;
    }

    .hamburger--spin .hamburger-inner::after {
        transition: bottom 0.1s 0.25s ease-in, -webkit-transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19);
        transition: bottom 0.1s 0.25s ease-in, transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19);
        transition: bottom 0.1s 0.25s ease-in, transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    }

.hamburger--spin.is-active .hamburger-inner {
    -webkit-transform: rotate(225deg);
    -ms-transform: rotate(225deg);
    transform: rotate(225deg);
    transition-delay: 0.12s;
    transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
}

    .hamburger--spin.is-active .hamburger-inner::before {
        top: 0;
        opacity: 0;
        transition: top 0.1s ease-out, opacity 0.1s 0.12s ease-out;
    }

    .hamburger--spin.is-active .hamburger-inner::after {
        bottom: 0;
        -webkit-transform: rotate(-90deg);
        -ms-transform: rotate(-90deg);
        transform: rotate(-90deg);
        transition: bottom 0.1s ease-out, -webkit-transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: bottom 0.1s ease-out, transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: bottom 0.1s ease-out, transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
    }

/*
* Spin Reverse
*/
.hamburger--spin-r .hamburger-inner {
    transition-duration: 0.22s;
    transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
}

    .hamburger--spin-r .hamburger-inner::before {
        transition: top 0.1s 0.25s ease-in, opacity 0.1s ease-in;
    }

    .hamburger--spin-r .hamburger-inner::after {
        transition: bottom 0.1s 0.25s ease-in, -webkit-transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19);
        transition: bottom 0.1s 0.25s ease-in, transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19);
        transition: bottom 0.1s 0.25s ease-in, transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    }

.hamburger--spin-r.is-active .hamburger-inner {
    -webkit-transform: rotate(-225deg);
    -ms-transform: rotate(-225deg);
    transform: rotate(-225deg);
    transition-delay: 0.12s;
    transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
}

    .hamburger--spin-r.is-active .hamburger-inner::before {
        top: 0;
        opacity: 0;
        transition: top 0.1s ease-out, opacity 0.1s 0.12s ease-out;
    }

    .hamburger--spin-r.is-active .hamburger-inner::after {
        bottom: 0;
        -webkit-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
        transform: rotate(90deg);
        transition: bottom 0.1s ease-out, -webkit-transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: bottom 0.1s ease-out, transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: bottom 0.1s ease-out, transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
    }

/*
* Spring
*/
.hamburger--spring .hamburger-inner {
    top: 1.5px;
    transition: background-color 0s 0.13s linear;
}

    .hamburger--spring .hamburger-inner::before {
        top: 8px;
        transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
        transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
        transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    }

    .hamburger--spring .hamburger-inner::after {
        top: 16px;
        transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
        transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
        transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    }

.hamburger--spring.is-active .hamburger-inner {
    transition-delay: 0.22s;
    background-color: transparent !important;
}

    .hamburger--spring.is-active .hamburger-inner::before {
        top: 0;
        transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), -webkit-transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
        -webkit-transform: translate3d(0, 8px, 0) rotate(45deg);
        transform: translate3d(0, 8px, 0) rotate(45deg);
    }

    .hamburger--spring.is-active .hamburger-inner::after {
        top: 0;
        transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), -webkit-transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
        -webkit-transform: translate3d(0, 8px, 0) rotate(-45deg);
        transform: translate3d(0, 8px, 0) rotate(-45deg);
    }

/*
* Spring Reverse
*/
.hamburger--spring-r .hamburger-inner {
    top: auto;
    bottom: 0;
    transition-duration: 0.13s;
    transition-delay: 0s;
    transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
}

    .hamburger--spring-r .hamburger-inner::after {
        top: -16px;
        transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0s linear;
    }

    .hamburger--spring-r .hamburger-inner::before {
        transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
        transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
        transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    }

.hamburger--spring-r.is-active .hamburger-inner {
    -webkit-transform: translate3d(0, -8px, 0) rotate(-45deg);
    transform: translate3d(0, -8px, 0) rotate(-45deg);
    transition-delay: 0.22s;
    transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
}

    .hamburger--spring-r.is-active .hamburger-inner::after {
        top: 0;
        opacity: 0;
        transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0s 0.22s linear;
    }

    .hamburger--spring-r.is-active .hamburger-inner::before {
        top: 0;
        -webkit-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
        transform: rotate(90deg);
        transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), -webkit-transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    }

/*
* Stand
*/
.hamburger--stand .hamburger-inner {
    transition: background-color 0s 0.075s linear, -webkit-transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19), background-color 0s 0.075s linear;
    transition: transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19), background-color 0s 0.075s linear, -webkit-transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
}

    .hamburger--stand .hamburger-inner::before {
        transition: top 0.075s 0.075s ease-in, -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
        transition: top 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
        transition: top 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    }

    .hamburger--stand .hamburger-inner::after {
        transition: bottom 0.075s 0.075s ease-in, -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
        transition: bottom 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
        transition: bottom 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    }

.hamburger--stand.is-active .hamburger-inner {
    -webkit-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    transform: rotate(90deg);
    background-color: transparent !important;
    transition: background-color 0s 0.15s linear, -webkit-transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1), background-color 0s 0.15s linear;
    transition: transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1), background-color 0s 0.15s linear, -webkit-transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1);
}

    .hamburger--stand.is-active .hamburger-inner::before {
        top: 0;
        -webkit-transform: rotate(-45deg);
        -ms-transform: rotate(-45deg);
        transform: rotate(-45deg);
        transition: top 0.075s 0.1s ease-out, -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: top 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: top 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    }

    .hamburger--stand.is-active .hamburger-inner::after {
        bottom: 0;
        -webkit-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
        transform: rotate(45deg);
        transition: bottom 0.075s 0.1s ease-out, -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: bottom 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: bottom 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    }

/*
* Stand Reverse
*/
.hamburger--stand-r .hamburger-inner {
    transition: background-color 0s 0.075s linear, -webkit-transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19), background-color 0s 0.075s linear;
    transition: transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19), background-color 0s 0.075s linear, -webkit-transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
}

    .hamburger--stand-r .hamburger-inner::before {
        transition: top 0.075s 0.075s ease-in, -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
        transition: top 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
        transition: top 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    }

    .hamburger--stand-r .hamburger-inner::after {
        transition: bottom 0.075s 0.075s ease-in, -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
        transition: bottom 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
        transition: bottom 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    }

.hamburger--stand-r.is-active .hamburger-inner {
    -webkit-transform: rotate(-90deg);
    -ms-transform: rotate(-90deg);
    transform: rotate(-90deg);
    background-color: transparent !important;
    transition: background-color 0s 0.15s linear, -webkit-transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1), background-color 0s 0.15s linear;
    transition: transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1), background-color 0s 0.15s linear, -webkit-transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1);
}

    .hamburger--stand-r.is-active .hamburger-inner::before {
        top: 0;
        -webkit-transform: rotate(-45deg);
        -ms-transform: rotate(-45deg);
        transform: rotate(-45deg);
        transition: top 0.075s 0.1s ease-out, -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: top 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: top 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    }

    .hamburger--stand-r.is-active .hamburger-inner::after {
        bottom: 0;
        -webkit-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
        transform: rotate(45deg);
        transition: bottom 0.075s 0.1s ease-out, -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: bottom 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: bottom 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    }

/*
* Squeeze
*/
.hamburger--squeeze .hamburger-inner {
    transition-duration: 0.075s;
    transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
}

    .hamburger--squeeze .hamburger-inner::before {
        transition: top 0.075s 0.12s ease, opacity 0.075s ease;
    }

    .hamburger--squeeze .hamburger-inner::after {
        transition: bottom 0.075s 0.12s ease, -webkit-transform 0.075s cubic-bezier(0.55, 0.055, 0.675, 0.19);
        transition: bottom 0.075s 0.12s ease, transform 0.075s cubic-bezier(0.55, 0.055, 0.675, 0.19);
        transition: bottom 0.075s 0.12s ease, transform 0.075s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.075s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    }

.hamburger--squeeze.is-active .hamburger-inner {
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
    transition-delay: 0.12s;
    transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
}

    .hamburger--squeeze.is-active .hamburger-inner::before {
        top: 0;
        opacity: 0;
        transition: top 0.075s ease, opacity 0.075s 0.12s ease;
    }

    .hamburger--squeeze.is-active .hamburger-inner::after {
        bottom: 0;
        -webkit-transform: rotate(-90deg);
        -ms-transform: rotate(-90deg);
        transform: rotate(-90deg);
        transition: bottom 0.075s ease, -webkit-transform 0.075s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: bottom 0.075s ease, transform 0.075s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
        transition: bottom 0.075s ease, transform 0.075s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.075s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
    }

/*
* Vortex
*/
.hamburger--vortex .hamburger-inner {
    transition-duration: 0.2s;
    transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
}

    .hamburger--vortex .hamburger-inner::before, .hamburger--vortex .hamburger-inner::after {
        transition-duration: 0s;
        transition-delay: 0.1s;
        transition-timing-function: linear;
    }

    .hamburger--vortex .hamburger-inner::before {
        transition-property: top, opacity;
    }

    .hamburger--vortex .hamburger-inner::after {
        transition-property: bottom, -webkit-transform;
        transition-property: bottom, transform;
        transition-property: bottom, transform, -webkit-transform;
    }

.hamburger--vortex.is-active .hamburger-inner {
    -webkit-transform: rotate(765deg);
    -ms-transform: rotate(765deg);
    transform: rotate(765deg);
    transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
}

    .hamburger--vortex.is-active .hamburger-inner::before, .hamburger--vortex.is-active .hamburger-inner::after {
        transition-delay: 0s;
    }

    .hamburger--vortex.is-active .hamburger-inner::before {
        top: 0;
        opacity: 0;
    }

    .hamburger--vortex.is-active .hamburger-inner::after {
        bottom: 0;
        -webkit-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
        transform: rotate(90deg);
    }

/*
* Vortex Reverse
*/
.hamburger--vortex-r .hamburger-inner {
    transition-duration: 0.2s;
    transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
}

    .hamburger--vortex-r .hamburger-inner::before, .hamburger--vortex-r .hamburger-inner::after {
        transition-duration: 0s;
        transition-delay: 0.1s;
        transition-timing-function: linear;
    }

    .hamburger--vortex-r .hamburger-inner::before {
        transition-property: top, opacity;
    }

    .hamburger--vortex-r .hamburger-inner::after {
        transition-property: bottom, -webkit-transform;
        transition-property: bottom, transform;
        transition-property: bottom, transform, -webkit-transform;
    }

.hamburger--vortex-r.is-active .hamburger-inner {
    -webkit-transform: rotate(-765deg);
    -ms-transform: rotate(-765deg);
    transform: rotate(-765deg);
    transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
}

    .hamburger--vortex-r.is-active .hamburger-inner::before, .hamburger--vortex-r.is-active .hamburger-inner::after {
        transition-delay: 0s;
    }

    .hamburger--vortex-r.is-active .hamburger-inner::before {
        top: 0;
        opacity: 0;
    }

    .hamburger--vortex-r.is-active .hamburger-inner::after {
        bottom: 0;
        -webkit-transform: rotate(-90deg);
        -ms-transform: rotate(-90deg);
        transform: rotate(-90deg);
    }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5jc3MiLCJfc2V0dGluZ3Muc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm91bmRhdGlvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19icmVha3BvaW50LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3JldmVhbC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZS9fbm9ybWFsaXplLW1peGluLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL25vcm1hbGl6ZS1zY3NzL3Nhc3Mvbm9ybWFsaXplL192YXJpYWJsZXMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivbm9ybWFsaXplLXNjc3Mvc2Fzcy9ub3JtYWxpemUvX3ZlcnRpY2FsLXJoeXRobS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9fZ2xvYmFsLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX21peGlucy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19jbGFzc2VzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2d1dHRlcnMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fZ3JpZC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL191bml0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2NlbGwuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fbGF5b3V0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2NvbGxhcHNlLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX3Bvc2l0aW9uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2ZyYW1lLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9faGVscGVycy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19hbGlnbm1lbnQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fcHJpbnQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL190ZXh0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19jaGVja2JveC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fbGFiZWwuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2hlbHAtdGV4dC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9faW5wdXQtZ3JvdXAuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2ZpZWxkc2V0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19zZWxlY3Quc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2Vycm9yLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2FjY29yZGlvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19hY2NvcmRpb24tbWVudS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19tZW51LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2JhZGdlLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2JyZWFkY3J1bWJzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2J1dHRvbi1ncm91cC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jYWxsb3V0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2NhcmQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fY2xvc2UtYnV0dG9uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUtaWNvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcmlsbGRvd24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJvcGRvd24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJvcGRvd24tbWVudS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19yZXNwb25zaXZlLWVtYmVkLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX21hdGguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbGFiZWwuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbWVkaWEtb2JqZWN0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX29mZi1jYW52YXMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fb3JiaXQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcGFnaW5hdGlvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19wcm9ncmVzcy1iYXIuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fc2xpZGVyLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3N0aWNreS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19zd2l0Y2guc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGFibGUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fY29sb3Iuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGFicy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190aHVtYm5haWwuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGl0bGUtYmFyLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Rvb2x0aXAuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdG9wLWJhci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fZmxleC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdXRpbC9fdHJhbnNpdGlvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvX2NsYXNzZXMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL19zZXR0aW5ncy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdXRpbC9fa2V5ZnJhbWUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL19zbGlkZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdHJhbnNpdGlvbnMvX2ZhZGUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL2VmZmVjdHMvX2hpbmdlLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9faGluZ2Uuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL196b29tLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9fc3Bpbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdXRpbC9fYW5pbWF0aW9uLnNjc3MiLCJhcHAuc2NzcyIsImdsb2JhbC9fYWNjZXNzaWJpbGl0eS5zY3NzIiwiZ2xvYmFsL193cC1hZG1pbi5zY3NzIiwiZ2xvYmFsL193cC1vdmVycmlkZXMuc2NzcyIsIm1vZHVsZXMvX25hdmlnYXRpb24uc2NzcyIsIm1vZHVsZXMvX2NvbnRlbnQuc2NzcyIsIm1vZHVsZXMvX2Zvb3Rlci5zY3NzIiwibW9kdWxlcy9fZWRpdG9yLXN0eWxlLnNjc3MiLCJjb21wb25lbnRzL19idXR0b25zLnNjc3MiLCJjb21wb25lbnRzL19jYXJkcy5zY3NzIiwiY29tcG9uZW50cy9fZmVhdHVyZWQtaW1hZ2Uuc2NzcyIsImNvbXBvbmVudHMvX2RpdmlkZXJzLnNjc3MiLCJjb21wb25lbnRzL19saW5rcy5zY3NzIiwiY29tcG9uZW50cy9fYWNjb3JkaW9uLnNjc3MiLCJ0ZW1wbGF0ZXMvX2Zyb250LnNjc3MiLCJ0ZW1wbGF0ZXMvX2RlcGFydG1lbnRzLnNjc3MiLCJ0ZW1wbGF0ZXMvX2NhcnJpZXJzLnNjc3MiLCJ0ZW1wbGF0ZXMvX3N0YW5kYXJkLWNvbnRlbnQuc2NzcyIsInRlbXBsYXRlcy9fbWVldC10ZWFtLnNjc3MiLCJ0ZW1wbGF0ZXMvX25ld3MtbWVkaWEuc2NzcyIsInRlbXBsYXRlcy9fdmFsdWF0aW9ucy5zY3NzIiwidGVtcGxhdGVzL19hdWN0aW9uLWNhbGVuZGFyLnNjc3MiLCJ0ZW1wbGF0ZXMvX21ha2UtcGF5bWVudC5zY3NzIiwidGVtcGxhdGVzL19jb250YWN0LnNjc3MiLCJ0ZW1wbGF0ZXMvX2hvdy10by5zY3NzIiwiZ2xvYmFsL19sYXlvdXQtYW5kLWRlZmF1bHRzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvc2xpY2stY2Fyb3VzZWwvc2xpY2svc2xpY2stdGhlbWUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9zbGljay1jYXJvdXNlbC9zbGljay9zbGljay5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2hhbWJ1cmdlcnMvX3Nhc3MvaGFtYnVyZ2Vycy9oYW1idXJnZXJzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvaGFtYnVyZ2Vycy9fc2Fzcy9oYW1idXJnZXJzL19iYXNlLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvaGFtYnVyZ2Vycy9fc2Fzcy9oYW1idXJnZXJzL3R5cGVzL18zZHguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9oYW1idXJnZXJzL19zYXNzL2hhbWJ1cmdlcnMvdHlwZXMvXzNkeC1yLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvaGFtYnVyZ2Vycy9fc2Fzcy9oYW1idXJnZXJzL3R5cGVzL18zZHkuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9oYW1idXJnZXJzL19zYXNzL2hhbWJ1cmdlcnMvdHlwZXMvXzNkeS1yLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvaGFtYnVyZ2Vycy9fc2Fzcy9oYW1idXJnZXJzL3R5cGVzL18zZHh5LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvaGFtYnVyZ2Vycy9fc2Fzcy9oYW1idXJnZXJzL3R5cGVzL18zZHh5LXIuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9oYW1idXJnZXJzL19zYXNzL2hhbWJ1cmdlcnMvdHlwZXMvX2Fycm93LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvaGFtYnVyZ2Vycy9fc2Fzcy9oYW1idXJnZXJzL3R5cGVzL19hcnJvdy1yLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvaGFtYnVyZ2Vycy9fc2Fzcy9oYW1idXJnZXJzL3R5cGVzL19hcnJvd2FsdC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2hhbWJ1cmdlcnMvX3Nhc3MvaGFtYnVyZ2Vycy90eXBlcy9fYXJyb3dhbHQtci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2hhbWJ1cmdlcnMvX3Nhc3MvaGFtYnVyZ2Vycy90eXBlcy9fYXJyb3d0dXJuLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvaGFtYnVyZ2Vycy9fc2Fzcy9oYW1idXJnZXJzL3R5cGVzL19hcnJvd3R1cm4tci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2hhbWJ1cmdlcnMvX3Nhc3MvaGFtYnVyZ2Vycy90eXBlcy9fYm9yaW5nLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvaGFtYnVyZ2Vycy9fc2Fzcy9oYW1idXJnZXJzL3R5cGVzL19jb2xsYXBzZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2hhbWJ1cmdlcnMvX3Nhc3MvaGFtYnVyZ2Vycy90eXBlcy9fY29sbGFwc2Utci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2hhbWJ1cmdlcnMvX3Nhc3MvaGFtYnVyZ2Vycy90eXBlcy9fZWxhc3RpYy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2hhbWJ1cmdlcnMvX3Nhc3MvaGFtYnVyZ2Vycy90eXBlcy9fZWxhc3RpYy1yLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvaGFtYnVyZ2Vycy9fc2Fzcy9oYW1idXJnZXJzL3R5cGVzL19lbXBoYXRpYy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2hhbWJ1cmdlcnMvX3Nhc3MvaGFtYnVyZ2Vycy90eXBlcy9fZW1waGF0aWMtci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2hhbWJ1cmdlcnMvX3Nhc3MvaGFtYnVyZ2Vycy90eXBlcy9fbWludXMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9oYW1idXJnZXJzL19zYXNzL2hhbWJ1cmdlcnMvdHlwZXMvX3NsaWRlci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2hhbWJ1cmdlcnMvX3Nhc3MvaGFtYnVyZ2Vycy90eXBlcy9fc2xpZGVyLXIuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9oYW1idXJnZXJzL19zYXNzL2hhbWJ1cmdlcnMvdHlwZXMvX3NwaW4uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9oYW1idXJnZXJzL19zYXNzL2hhbWJ1cmdlcnMvdHlwZXMvX3NwaW4tci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2hhbWJ1cmdlcnMvX3Nhc3MvaGFtYnVyZ2Vycy90eXBlcy9fc3ByaW5nLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvaGFtYnVyZ2Vycy9fc2Fzcy9oYW1idXJnZXJzL3R5cGVzL19zcHJpbmctci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2hhbWJ1cmdlcnMvX3Nhc3MvaGFtYnVyZ2Vycy90eXBlcy9fc3RhbmQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9oYW1idXJnZXJzL19zYXNzL2hhbWJ1cmdlcnMvdHlwZXMvX3N0YW5kLXIuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9oYW1idXJnZXJzL19zYXNzL2hhbWJ1cmdlcnMvdHlwZXMvX3NxdWVlemUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9oYW1idXJnZXJzL19zYXNzL2hhbWJ1cmdlcnMvdHlwZXMvX3ZvcnRleC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2hhbWJ1cmdlcnMvX3Nhc3MvaGFtYnVyZ2Vycy90eXBlcy9fdm9ydGV4LXIuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUNrRWpCO0VBQVksNEJBQTJCO0VBQ3JDLDJFQUEwRTtFQUMxRSxtZEFJeUYsRUFBQTs7QUF3ekIzRjs7RUFDRSxlQS94QmlCLEVBZ3lCbEI7O0FBRUQ7RUFFSSx5REEzeEJpRSxFQTR4QmxFOztBQ3Y0Qkg7Ozs7O0dBS0c7QUM4Skc7RUN2SEo7SUFDRSxZQUFXO0lBQ1gsV0FBVTtJQUNWLGVBQWMsRUFDZixFQUFBOztBQ0hELGlFQUFpRTtBQUcvRDtvRkFDZ0Y7QUFFaEY7Ozs7O09BS0c7QUFFSDtFQUNFLHdCQzFDdUI7RUQwQ1MsT0FBTztFQVFyQyxrQkFBaUI7RUFBRSxPQUFPO0VBRTVCLDJCQUEwQjtFQUFFLE9BQU87RUFDbkMsK0JBQThCO0VBQUUsT0FBTyxFQUN4Qzs7QUFJRDtvRkFDZ0Y7QUFFaEY7O09BRUc7QUFFSDtFQUNFLFVBQVMsRUFDVjs7QUFFRDs7T0FFRztBQUVIOzs7Ozs7RUFNRSxlQUFjLEVBQ2Y7O0FBRUQ7OztPQUdHO0FBRUg7RUU5RUYsZUFYdUM7RUZvR2pDLGlCQUFnQixFQUVuQjs7QUFvQ0Q7b0ZBQ2dGO0FBdUNoRjs7T0FFRztBQUVIOztFQUVFLGVBQWMsRUFDZjs7QUFFRDs7T0FFRztBQUVIO0VBS0ksaUJDdkxZLEVEeUxmOztBQUVEOzs7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SUFGRDtNSTdCQSxrQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsa0NBRGdILEVKZ0MvRztJQUZEO01JN0JBLDRCQURnSCxFSmdDL0c7SUFGRDtNSTdCQSxrQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsa0NBRGdILEVKZ0MvRztJQUZEO01JN0JBLDRCQURnSCxFSmdDL0c7SUFGRDtNSTdCQSxrQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsa0NBRGdILEVKZ0MvRztJQUZEO01JN0JBLDZCQURnSCxFSmdDL0c7SUFkSDtNSXpCRSxZQUFtQixFSjJCcEI7SUFFRDtNSXpCRSxZQUFtQixFSjJCcEI7SUFNQztNSTdCQSxpQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsa0NBRGdILEVKZ0MvRztJQUZEO01JN0JBLDRCQURnSCxFSmdDL0c7SUFGRDtNSTdCQSxrQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsa0NBRGdILEVKZ0MvRztJQUZEO01JN0JBLDRCQURnSCxFSmdDL0c7SUFGRDtNSTdCQSxrQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsa0NBRGdILEVKZ0MvRztJQUZEO01JN0JBLDRCQURnSCxFSmdDL0c7SUFGRDtNSTdCQSxrQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsa0NBRGdILEVKZ0MvRztJQUZEO01JN0JBLDZCQURnSCxFSmdDL0csRUFBQTtFUDhDQztJTzVESjtNSXpCRSxZQUFtQixFSjJCcEI7SUFFRDtNSXpCRSxZQUFtQixFSjJCcEI7SUFNQztNSTdCQSxpQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsa0NBRGdILEVKZ0MvRztJQUZEO01JN0JBLDRCQURnSCxFSmdDL0c7SUFGRDtNSTdCQSxrQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsa0NBRGdILEVKZ0MvRztJQUZEO01JN0JBLDRCQURnSCxFSmdDL0c7SUFGRDtNSTdCQSxrQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsa0NBRGdILEVKZ0MvRztJQUZEO01JN0JBLDRCQURnSCxFSmdDL0c7SUFGRDtNSTdCQSxrQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsa0NBRGdILEVKZ0MvRztJQUZEO01JN0JBLDZCQURnSCxFSmdDL0csRUFBQTs7QUE4Q0g7RUNuSU0sd0JBQTRCO0VBQTVCLHVCQUE0QixFRHdJL0I7RVBMQztJT0FKO01DbklNLHlCQUE0QjtNQUE1Qix3QkFBNEIsRUR3SS9CLEVBQUE7O0FBSUQ7RUM1SUksd0JBQTRCO0VBQTVCLHVCQUE0QixFRDhJL0I7RVBYQztJT1NGO01DNUlJLHlCQUE0QjtNQUE1Qix3QkFBNEIsRUQ4SS9CLEVBQUE7O0FBWEg7RUNuSU0sd0JBQTRCO0VBQTVCLHVCQUE0QixFRG1KL0I7RVBoQkM7SU9BSjtNQ25JTSx5QkFBNEI7TUFBNUIsd0JBQTRCLEVEbUovQixFQUFBOztBS3RKSDtFRHlERSxZQURvRCxFQ3REckQ7O0FBRkQ7RUR5REUsV0FEb0QsRUN0RHJEOztBQUZEO0VEeURFLGlCQURvRCxFQ3REckQ7O0FBRkQ7RUR5REUsV0FEb0QsRUN0RHJEOztBQUZEO0VEeURFLFdBRG9ELEVDdERyRDs7QUFGRDtFRHlERSxpQkFEb0QsRUN0RHJEOztBQUZEO0VEeURFLGlCQURvRCxFQ3REckQ7O0FBRkQ7RUR5REUsYUFEb0QsRUN0RHJEOztBWm9JRztFWXRJSjtJRHlERSxZQURvRCxFQ3REckQ7RUFGRDtJRHlERSxXQURvRCxFQ3REckQ7RUFGRDtJRHlERSxpQkFEb0QsRUN0RHJEO0VBRkQ7SUR5REUsV0FEb0QsRUN0RHJEO0VBRkQ7SUR5REUsV0FEb0QsRUN0RHJEO0VBRkQ7SUR5REUsaUJBRG9ELEVDdERyRDtFQUZEO0lEeURFLGlCQURvRCxFQ3REckQ7RUFGRDtJRHlERSxhQURvRCxFQ3REckQsRUFBQTs7QVpvSUc7RVl0SUo7SUR5REUsWUFEb0QsRUN0RHJEO0VBRkQ7SUR5REUsV0FEb0QsRUN0RHJEO0VBRkQ7SUR5REUsaUJBRG9ELEVDdERyRDtFQUZEO0lEeURFLFdBRG9ELEVDdERyRDtFQUZEO0lEeURFLFdBRG9ELEVDdERyRDtFQUZEO0lEeURFLGlCQURvRCxFQ3REckQ7RUFGRDtJRHlERSxpQkFEb0QsRUN0RHJEO0VBRkQ7SUR5REUsYUFEb0QsRUN0RHJELEVBQUE7O0FBRkQ7RUR5REUsNEJBRGdILEVDdERqSDs7QUFGRDtFRHlERSwyQkFEZ0gsRUN0RGpIOztBQUZEO0VEeURFLGlDQURnSCxFQ3REakg7O0FBRkQ7RUR5REUsMkJBRGdILEVDdERqSDs7QUFGRDtFRHlERSwyQkFEZ0gsRUN0RGpIOztBQUZEO0VEeURFLGlDQURnSCxFQ3REakg7O0FBRkQ7RUR5REUsaUNBRGdILEVDdERqSDs7QUFGRDtFRHlERSw2QkFEZ0gsRUN0RGpIOztBWm9JRztFWXRJSjtJRHlERSw0QkFEZ0gsRUN0RGpIO0VBRkQ7SUR5REUsMkJBRGdILEVDdERqSDtFQUZEO0lEeURFLGlDQURnSCxFQ3REakg7RUFGRDtJRHlERSwyQkFEZ0gsRUN0RGpIO0VBRkQ7SUR5REUsMkJBRGdILEVDdERqSDtFQUZEO0lEeURFLGlDQURnSCxFQ3REakg7RUFGRDtJRHlERSxpQ0FEZ0gsRUN0RGpIO0VBRkQ7SUR5REUsNkJBRGdILEVDdERqSDtFQUZEO0lEeURFLDZCQURnSCxFQ3REakg7RUFGRDtJRHlERSw0QkFEZ0gsRUN0RGpIO0VBRkQ7SUR5REUsa0NBRGdILEVDdERqSDtFQUZEO0lEeURFLDRCQURnSCxFQ3REakg7RUFGRDtJRHlERSw0QkFEZ0gsRUN0RGpIO0VBRkQ7SUR5REUsa0NBRGdILEVDdERqSDtFQUZEO0lEeURFLGtDQURnSCxFQ3REakg7RUFGRDtJRHlERSw4QkFEZ0gsRUN0RGpILEVBQUE7O0Fab0lHO0VZdElKO0lEeURFLDZCQURnSCxFQ3REakg7RUFGRDtJRHlERSw0QkFEZ0gsRUN0RGpIO0VBRkQ7SUR5REUsa0NBRGdILEVDdERqSDtFQUZEO0lEeURFLDRCQURnSCxFQ3REakg7RUFGRDtJRHlERSw0QkFEZ0gsRUN0RGpIO0VBRkQ7SUR5REUsa0NBRGdILEVDdERqSDtFQUZEO0lEeURFLGtDQURnSCxFQ3REakg7RUFGRDtJRHlERSw4QkFEZ0gsRUN0RGpILEVBQUE7O0FMZ01HO0VNdk1FLGdCQUEwQjtFQUExQixlQUEwQixFTnlNM0I7RU10TUQ7SUFFSSxnQkFBMEI7SUFBMUIsZUFBMEIsRUFFN0I7RUFvQks7SUZtQ1IsZ0JBRG9ELEVFaEMzQztFQUZEO0lGbUNSLGlCQURvRCxFRWhDM0M7RUFGRDtJRm1DUixXQURvRCxFRWhDM0M7RUFGRDtJRm1DUixpQkFEb0QsRUVoQzNDO0VBRkQ7SUZtQ1IsaUJBRG9ELEVFaEMzQztFQUZEO0lGbUNSLFdBRG9ELEVFaEMzQztFQUZEO0lGbUNSLGlCQURvRCxFRWhDM0M7RUFGRDtJRm1DUixpQkFEb0QsRUVoQzNDO0VBRkQ7SUZtQ1IsV0FEb0QsRUVoQzNDO0VBRkQ7SUZtQ1IsaUJBRG9ELEVFaEMzQztFQUZEO0lGbUNSLGlCQURvRCxFRWhDM0M7RUFGRDtJRm1DUixZQURvRCxFRWhDM0M7RWI4R1A7SWFoSE07TUZtQ1IsZ0JBRG9ELEVFaEMzQztJQUZEO01GbUNSLGlCQURvRCxFRWhDM0M7SUFGRDtNRm1DUixXQURvRCxFRWhDM0M7SUFGRDtNRm1DUixpQkFEb0QsRUVoQzNDO0lBRkQ7TUZtQ1IsaUJBRG9ELEVFaEMzQztJQUZEO01GbUNSLFdBRG9ELEVFaEMzQztJQUZEO01GbUNSLGlCQURvRCxFRWhDM0M7SUFGRDtNRm1DUixpQkFEb0QsRUVoQzNDO0lBRkQ7TUZtQ1IsV0FEb0QsRUVoQzNDO0lBRkQ7TUZtQ1IsaUJBRG9ELEVFaEMzQztJQUZEO01GbUNSLGlCQURvRCxFRWhDM0M7SUFGRDtNRm1DUixZQURvRCxFRWhDM0MsRUFBQTtFYjhHUDtJYWhITTtNRm1DUixnQkFEb0QsRUVoQzNDO0lBRkQ7TUZtQ1IsaUJBRG9ELEVFaEMzQztJQUZEO01GbUNSLFdBRG9ELEVFaEMzQztJQUZEO01GbUNSLGlCQURvRCxFRWhDM0M7SUFGRDtNRm1DUixpQkFEb0QsRUVoQzNDO0lBRkQ7TUZtQ1IsV0FEb0QsRUVoQzNDO0lBRkQ7TUZtQ1IsaUJBRG9ELEVFaEMzQztJQUZEO01GbUNSLGlCQURvRCxFRWhDM0M7SUFGRDtNRm1DUixXQURvRCxFRWhDM0M7SUFGRDtNRm1DUixpQkFEb0QsRUVoQzNDO0lBRkQ7TUZtQ1Is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SUY0Q1IsaUJBRG9ELEVFekMzQztFQUZEO0lGNENSLFdBRG9ELEVFekMzQztFQUZEO0lGNENSLGlCQURvRCxFRXpDM0M7RUFGRDtJRjRDUixpQkFEb0QsRUV6QzNDO0VBRkQ7SUY0Q1IsWUFEb0QsRUV6QzNDLEVBQUE7O0FidUhQO0VhaEhNO0lGbUNSLGdCQURvRCxFRWhDM0M7RUFGRDtJRm1DUixpQkFEb0QsRUVoQzNDO0VBRkQ7SUZtQ1IsV0FEb0QsRUVoQzNDO0VBRkQ7SUZtQ1IsaUJBRG9ELEVFaEMzQztFQUZEO0lGbUNSLGlCQURvRCxFRWhDM0M7RUFGRDtJRm1DUixXQURvRCxFRWhDM0M7RUFGRDtJRm1DUixpQkFEb0QsRUVoQzNDO0VBRkQ7SUZtQ1IsaUJBRG9ELEVFaEMzQztFQUZEO0lGbUNSLFdBRG9ELEVFaEMzQztFQUZEO0lGbUNSLGlCQURvRCxFRWhDM0M7RUFGRDtJRm1DUixpQkFEb0QsRUVoQzNDO0VBRkQ7SUZtQ1IsWUFEb0QsRUVoQzNDLEVBQUE7O0FiOEdQO0VPa0VBO0lNdEtFLGdCQUEwQjtJQUExQixlQUEwQixFTndLM0I7SU1yS0Q7TUFFSSxpQkFBNEI7TUFBNUIsZ0JBQTRCLEVBRS9CLEVBQUE7O0FONktEO0VPMU5GLGdCQUE2QixFUDROMUI7O0FBRUQ7RU85TkYsaUNBQTZCLEVQZ08xQjs7QUFORDtFTzFORixzQkFBNkIsRVA0TjFCOztBQUVEO0VPOU5GLHVDQUE2QixFUGdPMUI7O0FBTkQ7RU8xTkYsdUJBQTZCLEVQNE4xQjs7QUFFRDtFTzlORix3Q0FBNkIsRVBnTzFCOztBQU5EO0VPMU5GLGlCQUE2QixFUDROMUI7O0FBRUQ7RU85TkYsa0NBQTZCLEVQZ08xQjs7QUFORDtFTzFORix1QkFBNkIsRVA0TjFCOztBQUVEO0VPOU5GLHdDQUE2QixFUGdPMUI7O0FBTkQ7RU8xTkYsdUJBQTZCLEVQNE4xQjs7QUFFRDtFTzlORix3Q0FBNkIsRVBnTzFCOztBQU5EO0VPMU5GLGlCQUE2QixFUDROMUI7O0FBRUQ7RU85TkYsa0NBQTZCLEVQZ08xQjs7QUFORDtFTzFORix1QkFBNkIsRVA0TjFCOztBQUVEO0VPOU5GLHdDQUE2QixFUGdPMUI7O0FBTkQ7RU8xTkYsdUJBQTZCLEVQNE4xQjs7QUFFRDtFTzlORix3Q0FBNkIsRVBnTzFCOztBQU5EO0VPMU5GLGlCQUE2QixFUDROMUI7O0FBRUQ7RU85TkYsa0NBQTZCLEVQZ08xQjs7QUFORDtFTzFORix1QkFBNkIsRVA0TjFCOztBQUVEO0VPOU5GLHdDQUE2QixFUGdPMUI7O0FBTkQ7RU8xTkYsdUJBQTZCLEVQNE4xQjs7QUFFRDtFTzlORix3Q0FBNkIsRVBnTzFCOztBUHRGRDtFT2dGQTtJTzFORixnQkFBNkIsRVA0TjFCO0VBRUQ7SU85TkYsa0NBQTZCLEVQZ08xQjtFQU5EO0lPMU5GLHNCQUE2QixFUDROMUI7RUFFRDtJTzlORix3Q0FBNkIsRVBnTzFCO0VBTkQ7SU8xTkYsdUJBQTZCLEVQNE4xQjtFQUVEO0lPOU5GLHlDQUE2QixFUGdPMUI7RUFORDtJTzFORixpQkFBNkIsRVA0TjFCO0VBRUQ7SU85TkYsbUNBQTZCLEVQZ08xQjtFQU5EO0lPMU5GLHVCQUE2QixFUDROMUI7RUFFRDtJTzlORix5Q0FBNkIsRVBnTzFCO0VBTkQ7SU8xTkYsdUJBQTZCLEVQNE4xQjtFQUVEO0lPOU5GLHlDQUE2QixFUGdPMUI7RUFORDtJTzFORixpQkFBNkIsRVA0TjFCO0VBRUQ7SU85TkYsbUNBQTZCLEVQZ08xQjtFQU5EO0lPMU5GLHVCQUE2QixFUDROMUI7RUFFRDtJTzlORix5Q0FBNkIsRVBnTzFCO0VBTkQ7SU8xTkYsdUJBQTZCLEVQNE4xQjtFQUVEO0lPOU5GLHlDQUE2QixFUGdPMUI7RUFORDtJTzFORixpQkFBNkIsRVA0TjFCO0VBRUQ7SU85TkYsbUNBQTZCLEVQZ08xQjtFQU5EO0lPMU5GLHVCQUE2QixFUDROMUI7RUFFRDtJTzlORix5Q0FBNkIsRVBnTzFCO0VBTkQ7SU8xTkYsdUJBQTZCLEVQNE4xQjtFQUVEO0lPOU5GLHlDQUE2QixFUGdPMUIsRUFBQTs7QVB0RkQ7RU9nRkE7SU8xTkYsZ0JBQTZCLEVQNE4xQjtFQUVEO0lPOU5G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N0JBLGtDQURnSCxFSmdDL0c7RUFGRDtJSTdCQSw2QkFEZ0gsRUpnQy9HO0VQOENDO0lPNURKO01JekJFLGFBQW1CLEVKMkJwQjtJQUVEO01JekJFLGFBQW1CLEVKMkJwQjtJQU1DO01JN0JBLGtDQURnSCxFSmdDL0c7SUFGRDtNSTdCQSxtQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsNkJBRGdILEVKZ0MvRztJQUZEO01JN0JBLG1DQURnSCxFSmdDL0c7SUFGRDtNSTdCQSxtQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsNkJBRGdILEVKZ0MvRztJQUZEO01JN0JBLG1DQURnSCxFSmdDL0c7SUFGRDtNSTdCQSxtQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsNkJBRGdILEVKZ0MvRztJQUZEO01JN0JBLG1DQURnSCxFSmdDL0c7SUFGRDtNSTdCQSxtQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsOEJBRGdILEVKZ0MvRztJQWRIO01JekJFLGFBQW1CLEVKMkJwQjtJQUVEO01JekJFLGFBQW1CLEVKMkJwQjtJQU1DO01JN0JBLGtDQURnSCxFSmdDL0c7SUFGRDtNSTdCQSxtQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsNkJBRGdILEVKZ0MvRztJQUZEO01JN0JBLG1DQURnSCxFSmdDL0c7SUFGRDtNSTdCQSxtQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsNkJBRGdILEVKZ0MvRztJQUZEO01JN0JBLG1DQURnSCxFSmdDL0c7SUFGRDtNSTdCQSxtQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsNkJBRGdILEVKZ0MvRztJQUZEO01JN0JBLG1DQURnSCxFSmdDL0c7SUFGRDtNSTdCQSxtQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsOEJBRGdILEVKZ0MvRyxFQUFBO0VQOENDO0lPNURKO01JekJFLGFBQW1CLEVKMkJwQjtJQUVEO01JekJFLGFBQW1CLEVKMkJwQjtJQU1DO01JN0JBLGtDQURnSCxFSmdDL0c7SUFGRDtNSTdCQSxtQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsNkJBRGdILEVKZ0MvRztJQUZEO01JN0JBLG1DQURnSCxF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LGtDQURnSCxFSmdDL0c7SUFGRDtNSTdCQSxtQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsNkJBRGdILEVKZ0MvRztJQUZEO01JN0JBLG1DQURnSCxFSmdDL0c7SUFGRDtNSTdCQSxtQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsNkJBRGdILEVKZ0MvRztJQUZEO01JN0JBLG1DQURnSCxFSmdDL0c7SUFGRDtNSTdCQSxtQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsNkJBRGdILEVKZ0MvRztJQUZEO01JN0JBLG1DQURnSCxFSmdDL0c7SUFGRDtNSTdCQSxtQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsOEJBRGdILEVKZ0MvRztJQWRIO01JekJFLGFBQW1CLEVKMkJwQjtJQUVEO01JekJFLGFBQW1CLEVKMkJwQjtJQU1DO01JN0JBLGtDQURnSCxFSmdDL0c7SUFGRDtNSTdCQSxtQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsNkJBRGdILEVKZ0MvRztJQUZEO01JN0JBLG1DQURnSCxFSmdDL0c7SUFGRDtNSTdCQSxtQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsNkJBRGdILEVKZ0MvRztJQUZEO01JN0JBLG1DQURnSCxFSmdDL0c7SUFGRDtNSTdCQSxtQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsNkJBRGdILEVKZ0MvRztJQUZEO01JN0JBLG1DQURnSCxFSmdDL0c7SUFGRDtNSTdCQSxtQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsOEJBRGdILEVKZ0MvRyxFQUFBO0VQOENDO0lPNURKO01JekJFLGFBQW1CLEVKMkJwQjtJQUVEO01JekJFLGFBQW1CLEVKMkJwQjtJQU1DO01JN0JBLGtDQURnSCxFSmdDL0c7SUFGRDtNSTdCQSxtQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsNkJBRGdILEVKZ0MvRztJQUZEO01JN0JBLG1DQURnSCxFSmdDL0c7SUFGRDtNSTdCQSxtQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsNkJBRGdILEVKZ0MvRztJQUZEO01JN0JBLG1DQURnSCxFSmdDL0c7SUFGRDtNSTdCQSxtQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsNkJBRGdILEVKZ0MvRztJQUZEO01JN0JBLG1DQURnSCxFSmdDL0c7SUFGRDtNSTdCQSxtQ0FEZ0gsRUpnQy9HO0lBRkQ7TUk3QkEsOEJBRGdILEVKZ0MvRyxFQUFBOztBQXlTRDtFUTNYSSw4QkFBbUMsRVI2WHRDO0VQN1BDO0lPMlBGO01RM1hJLCtCQUFtQyxFUjZYdEMsRUFBQTtFUDdQQztJTzJQRjtNUTNYSSwrQkFBbUMsRVI2WHRDLEVBQUE7O0FQN1BDO0VPK1BBO0lRL1hFLCtCQUFtQyxFUmlZcEMsRUFBQTs7QVBqUUQ7RU8rUEE7SVEvWEUsK0JBQW1DLEVSaVlwQyxFQUFBOztBU3JLTDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBbUJFLFVBQVM7RUFDVCxXQUFVLEVBQ1g7O0FBR0Q7RUFDRSxvQmxCN0YwQjtFa0IrRjFCLG1CQUFrQjtFQUNsQixpQmxCakdzQjtFa0JrR3RCLG1DbEJoR3lDLEVrQmlHMUM7O0FBR0Q7O0VBRUUsbUJBQWtCO0VBQ2xCLHFCQUFvQixFQUNyQjs7QUFHRDs7RUFFRSxrQmxCdkxxQjtFa0J3THJCLHFCQUFvQixFQUNyQjs7QWRnREM7RWM1Q0EsZWxCdkhpQjtFa0J3SGpCLHFCQUFvQixFQUNyQjs7QUFHRDs7Ozs7Ozs7RUFNRSx5RGxCbE4wRDtFa0JtTjFELG1CbEIzSnNCO0VrQjRKdEIsb0JsQjNNeUI7RWtCNE16QixlbEIzSmtCO0VrQjRKbEIsbUNsQnZJc0MsRWtCNkl2QztFQWhCRDs7Ozs7Ozs7SUFhSSxlQUFjO0lBQ2QsZWxCak9lLEVrQmtPaEI7O0FBUUc7RUFJSSxrQk52UDZDO0VNbVE3QyxpQmxCeExXO0VrQmdNWCxjQUFhO0VBT2Isc0JsQnRNaUIsRWtCd01wQjs7QUFqQ0Q7RUFJSSxtQk52UDZDO0VNbVE3QyxpQmxCeExXO0VrQmdNWCxjQUFhO0VBT2Isc0JsQnRNaUIsRWtCd01wQjs7QUFqQ0Q7RUFJSSxxQk52UDZDO0VNbVE3QyxpQmxCeExXO0VrQmdNWCxjQUFhO0VBT2Isc0JsQnRNaUIsRWtCd01wQjs7O0FBbkdQOztFQXNFVSxvQk52UDZDO0VNbVE3QyxpQmxCeExXO0VrQmdNWCxjQUFhO0VBT2Isc0JsQnRNaUIsRWtCd01wQjs7QUFqQ0Q7RUFJSSxxQk52UDZDO0VNbVE3QyxpQmxCeExXO0VrQmdNWCxjQUFhO0VBT2Isc0JsQnRNaUIsRWtCd01wQjs7O0FBakdQOztFQW9FVSxnQk52UDZDO0VNbVE3QyxpQmxCeExXO0VrQmdNWCxjQUFhO0VBT2Isc0JsQnRNaUIsRWtCd01wQjs7QWhCek1IO0VnQndLRTtJQUlJLGdCTnZQNkMsRU1vUmhEO0VBakNEO0lBSUksa0JOdlA2QyxFTW9SaEQ7RUFqQ0Q7SUFJSSxxQk52UDZDLEVNb1JoRDs7RUFuR1A7O0lBc0VVLHFCTnZQNkMsRU1vUmhEO0VBakNEO0lBSUksbUJOdlA2QyxFTW9SaEQ7O0VBakdQOztJQW9FVSxnQk52UDZDLEVNb1JoRCxFQUFBOztBbEJvaEJUOztFa0I3Z0JJLHFCQUFvQjtFQUNwQixlbEJqUmtCO0VrQmtSbEIsc0JsQmhMeUI7RWtCa0x6QixnQkFBZSxFQWFoQjs7RWRoSEM7Ozs7SWN1R0UsZWxCdkwyRCxFa0IyTDVEO0VBYkg7SUFnQkksVUFBUyxFQUNWOztBZHZLRDtFYzRLQSxZQUFXO0VBRVgscUJsQm5NZ0I7RWtCb01oQixVQUFTO0VBQ1QscUJsQm5NeUI7RWtCcU16QixjQUFhO0VBQ2IsZ0JBQWU7RUFDZixpQ2xCaFRnQjtFa0JpVGhCLGVBQWMsRUFDZjs7QUFHRDs7O0VBR0Usb0JsQjdOMEI7RWtCOE4xQiw2QmxCNU15QjtFa0I2TXpCLGlCbEJoT3NCLEVrQmlPdkI7O0FBR0Q7RUFDRSxtQkFBa0IsRUFDbkI7O0FBR0Q7RUFDRSxxQmxCdE5zQjtFa0J1TnRCLHNCbEJ6TmtCLEVrQjBObkI7O0FBR0Q7RUFDRSxxQmxCNU5zQixFa0I2TnZCOztBQUdEO0VBRUkscUJsQmpPMkI7RWtCa08zQixpQkFBZ0IsRUFDakI7O0FBSUg7RUFDRSxvQmxCdk95QixFa0I2TzFCO0VBUEQ7SUFJSSxzQmxCeE84QjtJa0J5TzlCLGtCbEJ6VW1CLEVrQjBVcEI7O0FBSUg7RUFDRSxpQmxCdFEwQjtFa0J1UTFCLHVDTjFXcUQ7RU0yV3JELCtCbEJsV2lCLEVrQndXbEI7RUFURDtJQU1JLGlCbEI1UW9CO0lrQjZRcEIsZWxCcldhLEVrQnNXZDs7QUFJSDtFQUNFLGVBQWM7RUFDZCxxQk50WHFEO0VNdVhyRCxlbEI3V2UsRWtCa1hoQjtFQVJEO0lBTUksY2xCMVA2QixFQUFBOztBa0IrUGpDO0VBQ0Usa0NsQnBYVztFa0JxWFgsYUFBWTtFQUNaLHNCQUFxQixFQUN0Qjs7QWQ3UUM7RWNpUkEsVUFBUyxFQUNWOztBQUdEO0VBQ0Usc0NONVlxRDtFTThZckQsMEJsQnJZaUI7RWtCc1lqQiwwQmxCdllnQjtFa0J5WWhCLDZEbEJ4VW1FO0VrQnlVbkUsb0JsQnpYeUI7RWtCMFh6QixlbEJ2WVcsRWtCd1laOztBQUdEO0VBQ0UsVUFBUztFQUNULDRCTnBaUztFTXNaVCwwQmxCblpnQjtFa0JxWmhCLDZEbEJwVm1FO0VrQnFWbkUsZWxCbFpXLEVrQnVaWjs7QUM1Y0Q7RUFDRSxtQm5Cd0x5QjtFbUJ2THpCLHNCbkJ3TDRCO0VtQnRMNUIsb0JuQjhEeUI7RW1CN0R6QixpQm5CaUxzQjtFbUJoTHRCLGVuQjZDZSxFbUI1Q2hCOztBQUdEO0VBQ0UsZ0JuQnlLcUM7RW1CeEtyQyxpQm5CeUtpQixFbUJ4S2xCOztBQUdEO0VBQ0Usa0JuQjBLbUI7RW1CektuQixlQUFjLEVBS2Y7RUFIQztJQUNFLGtCQUFpQixFQUNsQjs7QUFHSDtFQUdJLGVBQWdDO0VBQ2hDLGlCQUFnQixFQUNqQjs7QUMvREs7RUFDRSxpQkFSZSxFQVNoQjs7QUFGRDtFQUNFLGtCQVJzQixFQVN2Qjs7QUFGRDtFQUNFLG1CQVI4QixFQVMvQjs7QUFGRDtFQUNFLG9CQVJ1QyxFQVN4Qzs7QWxCbUpMO0VrQjFKSTtJQUNFLGlCQUhlLEVBSWhCO0VBRkQ7SUFDRSxrQkFIc0IsRUFJdkI7RUFGRDtJQUNFLG1CQUg4QixFQUkvQjtFQUZEO0lBQ0Usb0JBSHVDLEVBSXhDLEVBQUE7O0FsQndKTDtFa0IxSkk7SUFDRSxpQkFIZSxFQUloQjtFQUZEO0lBQ0Usa0JBSHNCLEVBSXZCO0VBRkQ7SUFDRSxtQkFIOEIsRUFJL0I7RUFGRDtJQUNFLG9CQUh1QyxFQUl4QyxFQUFBOztBQ0VUO0VBQWtCLHlCQUF3QixFQUFJOztBQUU5QztFQUNFO0lBRUksbUNBQWtDO0lBR3BDLDRCQUEyQjtJQUUzQix3QkFBdUI7SUFDdkIsNkJBQTRCLEVBQzdCO0VBWkg7SUFjb0IsMEJBQXlCLEVBQUk7RUFDL0M7SUFBa0IseUJBQXdCLEVBQUk7RUFFOUM7SUFBdUIsMEJBQXlCLEVBQUk7RUFDcEQ7SUFBdUIsdUNBQXNDLEVBQUk7RUFDakU7SUFBdUIsb0NBQW1DLEVBQUk7RUFDOUQ7SUFBb0IsOEJBQTZCLEVBQUk7RUFDckQ7SUFBb0IsK0JBQThCLEVBQUk7RUFDdEQ7SUFBb0IsK0JBQThCLEVBQUk7RXJCNjFCMUQ7Ozs7O0lxQnoxQmdCLDJCQUEwQixFQUFHO0VBRXZDOztJQUFnQiw2QkFBNEIsRUFBSTtFQUlsRDs7Ozs7Ozs7SUFFcUIsWUFBVyxFQUFJO0VBR3BDO0lBQW9CLDhCQUE2QixFQUFJO0VBR3JEOztJQUVFLDBCckIyQ2E7SXFCMUNiLHlCQUF3QixFQUN6QjtFQUdEO0lBQVEsNEJBQTJCLEVBQUk7RUFFdkM7O0lBQ00seUJBQXdCLEVBQUk7RWpCZ1ZsQztJaUI5VU0sMkJBQTBCLEVBQUk7RUFFcEM7SUFBUSxjQUFhLEVBQUE7RUFFckI7OztJQUdFLFdBQVU7SUFDVixVQUFTLEVBQ1Y7RUFHRDs7SUFDSyx3QkFBdUIsRUFBSTtFQUdoQztJQUNFLHdCQUF1QixFQUN4QixFQUFBOztBQ2tMSDtFQWhMQSxzQkFBcUI7RUFDckIsdUJBQXNCO0VBQ3RCLHFCdEI2TmtDO0VzQjVObEMscUJ0QjBOMEI7RXNCaE54QixvQnRCaU51QjtFc0I5TXpCLHlCQUF3QjtFQUN4Qiw4QkFBNkI7RUFDN0IsaUJ0QlllO0VzQlhmLGtFdEI4TnVFO0VzQjVOdkUsa0J0QnFOZTtFc0JwTmYsZUFBYztFQUNkLG1CQUFrQjtFQUNsQixnQkFBZTtFQXFDZiwwQnRCekRnQjtFc0IwRGhCLGV0QjlDYSxFc0JvUlo7RXZCNDNERDtJUzNpRUUsV0FBVSxFQUNYO0VjdEREO0lBQ0Usd0J0QmlLdUU7SXNCaEt2RSxldEJsRFcsRXNCbURaO0VBNkdEO0lBTU0sa0J0QmtETSxFc0JqRFA7RUFQTDtJQU1NLG1CdEJtRFEsRXNCbERUO0VBUEw7SUFNTSxtQnRCcURRLEVzQnBEVDtFQVBMO0lBakpFLGVBQWM7SUFDZCxZQUFXO0lBQ1gsZ0JBQWU7SUFDZixlQUFjLEVBd0p5QjtFQVZ6QztJQW5IQSwwQnRCekRnQjtJc0IwRGhCLGV0QjlDYSxFc0JpTE47SUFqSVA7TUFDRSx3QkFQb0Y7TUFRcEYsZXRCbERXLEVzQm1EWjtFQTZHRDtJQW5IQSwwQnRCeERrQjtJc0J5RGxCLGV0Qi9DYSxFc0JrTE47SUFqSVA7TUFDRSwwQkFQb0Y7TUFRcEYsZXRCbkRXLEVzQm9EWjtFQTZHRDtJQW5IQSwwQnRCdkRnQjtJc0J3RGhCLGV0Qi9DYSxFc0JrTE47SUFqSVA7TUFDRSwwQkFQb0Y7TUFRcEYsZXRCbkRXLEVzQm9EWjtFQTZHRDtJQW5IQSwwQnRCdERnQjtJc0J1RGhCLGV0Qi9DYSxFc0JrTE47SUFqSVA7TUFDRSwwQkFQb0Y7TUFRcEYsZXRCbkRXLEVzQm9EWjtFQTZHRDtJQW5IQSwwQnRCckRjO0lzQnNEZCxldEI5Q2EsRXNCaUxOO0lBaklQO01BQ0UsMEJBUG9GO01BUXBGLGV0QmxEVyxFc0JtRFo7RUE2R0Q7SUExREEsY3RCd0g0QjtJc0J2SDVCLG9CQUFtQixFQWlHaEI7SUEvRkg7TUFDRSwwQnRCdEhjO01zQnVIZCxldEIzR1csRXNCNEdaO0lBb0REO01BMURBLGN0QndINEI7TXNCdkg1QixvQkFBbUIsRUErRlo7TUE3RlA7UUFDRSwwQnRCdEhjO1FzQnVIZCxldEIzR1csRXNCNEdaO0lBb0REO01BMURBLGN0QndINEI7TXNCdkg1QixvQkFBbUIsRUErRlo7TUE3RlA7UUFDRSwwQnRCckhnQjtRc0JzSGhCLGV0QjVHVyxFc0I2R1o7SUFvREQ7TUExREEsY3RCd0g0QjtNc0J2SDVCLG9CQUFtQixFQStGWjtNQTdGUDtRQUNFLDBCdEJwSGM7UXNCcUhkLGV0QjVHVyxFc0I2R1o7SUFvREQ7TUExREEsY3RCd0g0QjtNc0J2SDVCLG9CQUFtQixFQStGWjtNQTdGUDtRQUNFLDBCdEJuSGM7UXNCb0hkLGV0QjVHVyxFc0I2R1o7SUFvREQ7TUExREEsY3RCd0g0QjtNc0J2SDVCLG9CQUFtQixFQStGWjtNQTdGUDtRQUNFLDBCdEJsSFk7UXNCbUhaLGV0QjNHVyxFc0I0R1o7RUFvREQ7SUFuRkEsMEJ0QnpGZ0I7SXNCMEZoQixldEIxRmdCLEVzQmlPWDtJQTdKTDtNQUVFLDhCQUE2QixFQUM5QjtJQUlDO01BRUUsOEJBQTZCLEVBQzlCO0lBY0g7TUFDRSxvQkFONkQ7TUFPN0QsYUFQNkQsRUFhOUQ7TUFMQztRQUVFLDBCdEJqR1k7UXNCa0daLGV0QmxHWSxFc0JtR2I7SUF5RUg7TUFuRkEsMEJ0QnpGZ0I7TXNCMEZoQixldEIxRmdCLEVzQitOUDtNQW5JVDtRQUNFLG9CQU42RDtRQU83RCxhQVA2RCxFQWE5RDtRQUxDO1VBRUUsMEJ0QmpHWTtVc0JrR1osZXRCbEdZLEVzQm1HYjtJQXlFSDtNQW5GQSwwQnRCeEZrQjtNc0J5RmxCLGV0QnpGa0IsRXNCOE5UO01BbklUO1FBQ0UsbUJBTjZEO1FBTzdELFlBUDZELEVBYTlEO1FBTEM7VUFFRSwwQnRCaEdjO1VzQmlHZCxldEJqR2MsRXNCa0dmO0lBeUVIO01BbkZBLDBCdEJ2RmdCO01zQndGaEIsZXRCeEZnQixFc0I2TlA7TUFuSVQ7UUFDRSxzQkFONkQ7UUFPN0QsZUFQNkQsRUFhOUQ7UUFMQztVQUVFLDBCdEIvRlk7VXNCZ0daLGV0QmhHWSxFc0JpR2I7SUF5RUg7TUFuRkEsMEJ0QnRGZ0I7TXNCdUZoQixldEJ2RmdCLEVzQjROUDtNQW5JVDtRQUNFLHNCQU42RDtRQU83RCxlQVA2RCxFQWE5RDtRQUxDO1VBRUUsMEJ0QjlGWTtVc0IrRlosZXRCL0ZZLEVzQmdHYjtJQXlFSDtNQW5GQSwwQnRCckZjO01zQnNGZCxldEJ0RmMsRXNCMk5MO01BbklUO1FBQ0Usc0JBTjZEO1FBTzdELGVBUDZELEVBYTlEO1FBTEM7VUFFRSwwQnRCN0ZVO1VzQjhGVixldEI5RlUsRXNCK0ZYO0VBeUVIO0lBbkZBLDBCdEJ6RmdCO0lzQjBGaEIsZXRCMUZnQixFc0I4UFg7SUExTEw7TUFFRSw4QkFBNkIsRUFDOUI7SUFJQztNQUVFLDhCQUE2QixFQUM5QjtJQWNIO01BQ0Usb0JBTjZEO01BTzdELGFBUDZELEVBYTlEO01BTEM7UUFFRSwwQnRCakdZO1FzQmtHWixldEJsR1ksRXNCbUdiO0lBeUVIO01BZ0VVLDBCQUF5QixFQUMxQjtJQWpFVDtNQW5GQSwwQnRCekZnQjtNc0IwRmhCLGV0QjFGZ0IsRXNCNFBQO01BaEtUO1FBQ0Usb0JBTjZEO1FBTzdELGFBUDZELEVBYTlEO1FBTEM7VUFFRSwwQnRCakdZO1VzQmtHWixldEJsR1ksRXNCbUdiO01BeUVIO1FBNkVjLDBCQUF5QixFQUMxQjtJQTlFYjtNQW5GQSwwQnRCeEZrQjtNc0J5RmxCLGV0QnpGa0IsRXNCMlBUO01BaEtUO1FBQ0UsbUJBTjZEO1FBTzdELFlBUDZELEVBYTlEO1FBTEM7VUFFRSwwQnRCaEdjO1VzQmlHZCxldEJqR2MsRXNCa0dmO01BeUVIO1FBNkVjLDBCQUF5QixFQUMxQjtJQTlFYjtNQW5GQSwwQnRCdkZnQjtNc0J3RmhCLGV0QnhGZ0IsRXNCMFBQO01BaEtUO1FBQ0Usc0JBTjZEO1FBTzdELGVBUDZELEVBYTlEO1FBTEM7VUFFRSwwQnRCL0ZZO1VzQmdHWixldEJoR1ksRXNCaUdiO01BeUVIO1FBNkVjLDBCQUF5QixFQUMxQjtJQTlFYjtNQW5GQSwwQnRCdEZnQjtNc0J1RmhCLGV0QnZGZ0IsRXNCeVBQO01BaEtUO1FBQ0Usc0JBTjZEO1FBTzdELGVBUDZELEVBYTlEO1FBTEM7VUFFRSwwQnRCOUZZO1VzQitGWixldEIvRlksRXNCZ0diO01BeUVIO1FBNkVjLDBCQUF5QixFQUMxQjtJQTlFYjtNQW5GQSwwQnRCckZjO01zQnNGZCxldEJ0RmMsRXNCd1BMO01BaEtUO1FBQ0Usc0JBTjZEO1FBTzdELGVBUDZELEVBYTlEO1FBTEM7VUFFRSwwQnRCN0ZVO1VzQjhGVixldEI5RlUsRXNCK0ZYO01BeUVIO1FBNkVjLDBCQUF5QixFQUMxQjtFQXRIYjtJZG5MQSxlQUFjO0lBQ2QsU0FBUTtJQUNSLFVBQVM7SUFFVCxvQmMyS1k7SWR6S1osWUFBVztJQUdULHVCQUFzQjtJQUN0Qix3QkFBdUI7SUFDdkIsOENBQXFEO0ljMEtyRCxtQkFBa0I7SUFDbEIsV0FBVTtJQUVWLHNCQUFxQjtJQUNyQixhQUFPO0lBQ1AsaUJ0QitFdUIsRXNCOUV4QjtFQWdDRDtJQWlHUSwwQnRCN1FRLEVzQjhRVDtFQWxHUDtJQXVHWSwwQnRCblJJLEVzQm9STDtFQXhHWDtJQXVHWSwwQnRCbFJNLEVzQm1SUDtFQXhHWDtJQXVHWSwwQnRCalJJLEVzQmtSTDtFQXhHWDtJQXVHWSwwQnRCaFJJLEVzQmlSTDtFQXhHWDtJQXVHWSwwQnRCL1FFLEVzQmdSSDtFQXhHWDtJQWdISSxZQUFXO0lBQ1gsWUFBVztJQUNYLGVBQWdDLEVBQ2pDOztBQUVIOzs7RUFHSSxzQkFBcUIsRUFDdEI7O0F2QjZtRUw7O0V3QnA1RUUsZUFBYztFQUNkLHVCQUFzQjtFQUN0QixZQUFXO0VBQ1gsa0JBTHNKO0VBTXRKLGlCWEh1RDtFV0l2RCxnQnZCc1grQjtFdUJwWC9CLDBCdkJHbUI7RXVCRm5CLGlCdkJvQmU7RXVCbkJmLDBCdkJLYTtFdUJKYixrRHZCR2E7RXVCRGIscUJ2QnNXeUI7RXVCcld6QixnQlhadUQ7RVdhdkQsb0J2QlkyQjtFdUJYM0IsaUJ2QmZxQjtFdUJnQnJCLGV2QkhhO0V1Qk1YLDREdkI0VzhEO0V1QnZWOUQseUJBQWdCO0tBQWhCLHNCQUFnQjtVQUFoQixpQkFBZ0IsRUFDakI7RXhCODNFRDs7SXdCLzRFRSxjQUFhO0lBQ2IsMEJ2QmRlO0l1QmVmLDBCdkJaVztJdUJhWCw0QnZCakJpQjtJdUJvQmYsNER2QmlXNEQsRXVCL1YvRDs7QW5CcWRDO0VtQnhjQSxnQkFBZSxFQUtoQjtFQU5EO0lBSUksYUFBWSxFQUNiOztBQUdIOztFQUlJLGV2QjlDZSxFdUIrQ2hCOztBQUxIOztFQUlJLGV2QjlDZSxFdUIrQ2hCOztBQUxIOztFQUlJLGV2QjlDZSxFdUIrQ2hCOztBQUxIOzs7RUFVSSwwQnZCckRjO0V1QnNEZCxvQnZCK1Q2QixFdUI5VDlCOztBeEI4M0VMOztFd0J4M0VJLHlCQUFnQjtLQUFoQixzQkFBZ0I7VUFBaEIsaUJBQWdCO0VBQ2hCLGlCdkIzQ2EsRXVCNENkOztBQUdEO0VBQ0UsdUJBQXNCLEVBQ3ZCOztBeEJ5M0VIOzs7RXlCamhGSSxpQlo0RXFELEVZM0V0RDs7QXpCcWhGSDs7RXlCaGhGSSxzQkFBcUI7RUFDckIseUJBQXdCO0VBRXhCLG9CQUFrRDtFQUNsRCxtQlprRXFEO0VZakVyRCxpQkFBZ0IsRUFLakI7RXpCNmdGRDs7SXlCL2dGSSxnQkFBZSxFQUNoQjs7QUFJSDs7RUFFRSxxQkFBbUQsRUFDcEQ7O0F6QitnRkg7RXlCM2dGSSxZQUFXLEVBQ1o7O0FDR0Q7RUFqQkEsZUFBYztFQUNkLFVBQVM7RUFFVCxvQmI0RHVEO0VhM0R2RCxvQnpCb0YyQjtFeUJuRjNCLGlCekJxYTBCO0V5QnBhMUIsZXpCcUVhLEV5QnBEWjtFQU5EO0lBTEEsaUJibUR1RDtJYWxEdkQscUJBQThELEVBUzNEOztBQzFCSDtFQUdFLG9CQUZ1QztFQUd2QyxxQmQrRHFEO0VjOURyRCxtQjFCaWF3QjtFMEJoYXhCLGUxQnlFVyxFMEJ4RVo7O0FDRkQ7RUFDRSxzQkFBaUM7RUFBakMscUJBQWlDO0VBQWpDLGNBQWlDO0VBQ2pDLFlBQVc7RUFDWCxvQmYyRHFEO0VleERuRCw2QkFBb0I7TUFBcEIsd0JBQW9CO1VBQXBCLHFCQUFvQixFQVl2QjtFQWxCRDtJQVVJLHVCM0IrRVcsRTJCOUVaO0VBWEg7SUFlTSx1QkFBaUgsRUFDbEg7O0FBSUw7Ozs7O0VBQ0UsVUFBUztFQUNULG9CQUFtQixFQU1wQjs7QUFFRDtFQUVFLGdCM0JxWXVCO0UyQnBZdkIsMEIzQnNDaUI7RTJCckNqQixvQjNCb0NnQjtFMkJsQ2hCLGUzQnNDVztFMkJyQ1gsbUJBQWtCO0VBQ2xCLG9CQUFtQjtFQUdqQixzQkFBYTtFQUFiLHFCQUFhO0VBQWIsY0FBYTtFQUNiLHVCQUFjO01BQWQsbUJBQWM7VUFBZCxlQUFjO0VBQ2QsNEJBQW1CO01BQW5CLHVCQUFtQjtVQUFuQixvQkFBbUIsRUFnQnRCO0VBN0JEO0lBc0JNLGdCQUFpQyxFQUNsQztFQXZCTDtJQTBCTSxlQUFnQyxFQUNqQzs7QUFJTDtFQUVFLGlCQUFnQjtFQUdkLHNCQUFhO01BQWIsa0JBQWE7VUFBYixjQUFhO0VBQ2IsYUFBWTtFQUNaLGFBQVksRUFLZjs7QUFFRDtFQUVFLGVBQWM7RUFDZCxrQkFBaUI7RUFDakIsbUJBQWtCO0VBR2hCLHNCQUFhO0VBQWIscUJBQWE7RUFBYixjQUFhO0VBQ2IsdUJBQWM7TUFBZCxtQkFBYztVQUFkLGVBQWMsRUF3QmpCO0VBaENEOzs7OztJQXNCTSxhQUFZO0lBQ1osNEJBQW1CO1FBQW5CLDZCQUFtQjtnQkFBbkIsNEJBQW1CO1lBQW5CLG9CQUFtQjtJQUtyQixlQUFjO0lBQ2Qsa0JBQWlCO0lBQ2pCLGdCZjNDbUQsRWU0Q3BEOztBdkJvYUQ7RXdCamdCQSxVQUFTO0VBQ1QsV0FBVTtFQUNWLFVBQVMsRUFDVjs7QXhCMmdCQztFd0J4Z0JBLGdCQUFlO0VBQ2Ysc0JBQWtDLEVBQ25DOztBQUVEO0VBeEJBLG1CaEJvRVc7RWdCbkVYLGlCaEI4RHVEO0VnQjdEdkQsMEI1QnNFbUIsRTRCOUNsQjtFQXRCRDtJQUVFLFVBQVM7SUFDVCx3QmhCd0RxRDtJZ0J2RHJELHFCaEJ1RHFELEVnQnREdEQ7O0FyQjZKRDtFc0J4S0Esa0JBRnNKO0VBR3RKLGlCakJnRXVEO0VpQi9EdkQsZ0I3QnliK0I7RTZCdmIvQix5QkFBZ0I7S0FBaEIsc0JBQWdCO1VBQWhCLGlCQUFnQjtFQUNoQiwwQjdCcUVtQjtFNkJwRW5CLGlCN0JzRmU7RTZCckZmLDBCN0J1RWE7RTZCckViLHFCN0J5YXlCO0U2QnhhekIsZ0JqQnVEdUQ7RWlCdER2RCxvQjdCK0UyQjtFNkI5RTNCLGlCN0JvRHFCO0U2Qm5EckIsZTdCZ0VhO0VRa0RiLHlPQUF5TjtFcUI5R3ZOLCtCQUE4QjtFQUM5Qix3Q0FBMEQ7RUFDMUQsNkJBQTRCO0VBQzVCLHlCQUF3QjtFQUV4QixzQkFBdUQ7RUFJdkQsNEQ3QnFhOEQsRTZCbFkvRDtFckJvRUQ7SUR1Q0E7TUNoQ0ksZ2JBQSthLEVxQjNFbGIsRUFBQTtFQS9CRDtJQUNFLGNBQWE7SUFDYiwwQjdCMkNlO0k2QjFDZiwwQjdCNkNXO0k2QjVDWCw0QjdCd0NpQjtJNkJyQ2YsNEQ3QjBaNEQsRTZCeFovRDtFQUdEO0lBQ0UsMEI3QjhCZ0I7STZCN0JoQixvQjdCa1orQixFNkJqWmhDO0VBR0Q7SUFDRSxjQUFhLEVBQ2Q7RUFFRDtJQUNFLGFBQVk7SUFDWix1QkFBc0IsRUFDdkI7O0FDbENEO0VBQ0Usc0I5QmdEWTtFOEIvQ1osMEJBQStELEVBSWhFO0VBSEM7SUFDRSxlOUI2Q1UsRThCNUNYO0VBRkQ7SUFDRSxlOUI2Q1UsRThCNUNYO0VBRkQ7SUFDRSxlOUI2Q1UsRThCNUNYOztBQXlCRDtFQUNFLGU5QmtCVSxFOEJqQlg7O0FBSUg7RUF6QkEsY0FBYTtFQUNiLG9CQUFnQztFQUNoQyxvQmxCK0J1RDtFa0I3QnZELG1CbEI2QnVEO0VrQjVCdkQsa0I5QnNEdUI7RThCckR2QixlOUJnQ2MsRThCUGI7RUFORDtJQUlJLGVBQWMsRUFDZjs7QUNzREg7RUF2RkEsZUFBZ0M7RUFDaEMsb0IvQmdEYTtFK0IvQ2Isc0JBQXFCLEVBdUZwQjtFQXJGQztJQUNFLG9CQUFtQixFQUNwQjs7QUFNSDtFQUNFLHVCQUFnRCxFQUNqRDs7QUFFRDtFQUNFLHVCL0I4Q2EsRStCN0NkOztBQTZFRDtFQWxFQSxtQkFBa0I7RUFDbEIsZUFBYztFQUNkLHNCL0I0S21DO0UrQjFLbkMsMEIvQldrQjtFK0JWbEIsaUJBQWdCO0VBRWhCLG1CbkJBdUQ7RW1CQ3ZELGVBQWM7RUFDZCxlL0JEZ0IsRStCNERmO0VBekREO0lBQ0UsaUMvQkdnQjtJK0JGaEIsdUIvQnFCYSxFK0JwQmQ7RUFFRDtJQUVFLDBCL0JIZ0IsRStCSWpCO0VBR0M7SUFDRSxtQkFBa0I7SUFDbEIsU0FBUTtJQUNSLFlBQXNCO0lBQ3RCLG9CQUFtQjtJQUNuQixhQUFZLEVBQ2I7RUFFRDtJQUNFLGlCQUFnQixFQUNqQjs7QUFzQ0g7RUEzQkEsY0FBYTtFQUNiLGMvQnNJOEI7RStCcEk5QiwwQi9CL0JrQjtFK0JnQ2xCLGlCQUFnQjtFQUNoQiwwQi9CNUJhO0UrQjhCYixlL0IvQmEsRStCcURaO0VBcEJEO0lBQ0UsaUMvQnRDZ0IsRStCdUNqQjs7QUM1REQ7RUFXSSxZQUFXLEVBQ1o7O0FBWkg7O0VBa0JJLHFCaEN1QjJCLEVnQ3RCNUI7O0FBbkJIOztFQXNCSSxxQmhDbUIyQixFZ0NsQjVCOztBQXZCSDtFQytKRSxnQkFBaUM7RUFDakMsa0JqQ3RINEIsRWdDZjNCOztBQTNCSDtFQzJKRSxtQmpDakg0QjtFaUNrSDVCLGVBQWdDLEVENUg3Qjs7QUF0REw7O0VBQ0UsbUJBQWtCLEVBU25CO0VBUEM7O0l4QmRGLGVBQWM7SUFDZCxTQUFRO0lBQ1IsVUFBUztJQUVULGtCUnFPNEI7SVFuTzVCLFlBQVc7SUFHVCx1QkFBc0I7SUFDdEIsd0JBQXVCO0lBQ3ZCLDhDQUFxRDtJd0JLbkQsbUJBQWtCO0lBQ2xCLFNBQVE7SUFDUixpQkFBZ0Q7SUFDaEQsWUFBc0IsRUFDdkI7O0FBRUg7O0VBQ0UsV0FBVTtFQUNWLFlBQVcsRUFDWjs7QUFDRDs7RUFDRSxZQUFXO0VBQ1gsV0FBVSxFQUNYOztBQUlEOztFQXVDTSxrQ0FBeUI7TUFBekIsOEJBQXlCO1VBQXpCLDBCQUF5QjtFQUN6QixrQ0FBeUI7TUFBekIsOEJBQXlCO1VBQXpCLDBCQUF5QixFQUMxQjs7QUFXTDtFQUNFLG1CQUFrQixFQUNuQjs7QUFFRDs7RUFDRSxtQmhDNklxQyxFZ0M1SXRDOztBQUdEO0VBQ0UsbUJBQWtCO0VBQ2xCLE9BQU07RUFDTixTQUFtQjtFQUNuQixnQkFBZTtFQUVmLFloQ21JcUM7RWdDbElyQyxhaENrSXFDLEVnQ2xIdEM7RUF2QkQ7SXhCOUZBLGVBQWM7SUFDZCxTQUFRO0lBQ1IsVUFBUztJQUVULGtCd0IyRzZCO0l4QnpHN0IsWUFBVztJQUdULHVCQUFzQjtJQUN0Qix3QkFBdUI7SUFDdkIsOENBQXFEO0l3QnNHbkQsT0FBTTtJQUNOLFVBQVM7SUFDVCxhQUFZLEVBQ2I7O0FBSUg7RUFDRSw4QkFBcUI7TUFBckIsMEJBQXFCO1VBQXJCLHNCQUFxQjtFQUNyQixrQ0FBeUI7TUFBekIsOEJBQXlCO1VBQXpCLDBCQUF5QixFQUMxQjs7QUFFRDtFeEIyQ0EsOEJBQTZCO0VBQzdCLFdBQVU7RUFDVixZQUFXO0VBQ1gsV0FBVTtFQUNWLGlCQUFnQjtFQUNoQix1QkFBbUI7RUFDbkIsb0JBQW1CO0VBQ25CLDhCQUFxQjtVQUFyQixzQkFBcUI7RUFDckIsVUFBUyxFd0JqRFI7O0FFeEhEO0VBWEEsc0JBQXFCO0VBQ3JCLGlCbENzUG9CO0VrQ3JQcEIsZWxDb1BtQjtFa0NsUG5CLG1CQUFrQjtFQUVsQixrQmxDa1BzQjtFa0NqUHRCLG1CQUFrQjtFQU9oQixvQmxDcUNjO0VrQ3BDZCxlbENnRFcsRWtDeENaO0VBWkQ7SUFRTSxvQmxDZ0NVO0lrQy9CVixlbEMyQ08sRWtDMUNSO0VBVkw7SUFRTSxvQmxDaUNZO0lrQ2hDWixlbEMwQ08sRWtDekNSO0VBVkw7SUFRTSxvQmxDa0NVO0lrQ2pDVixlbEMwQ08sRWtDekNSO0VBVkw7SUFRTSxvQmxDbUNVO0lrQ2xDVixlbEMwQ08sRWtDekNSO0VBVkw7SUFRTSxvQmxDb0NRO0lrQ25DUixlbEMyQ08sRWtDMUNSOztBQ2lETDtFQTNDQSxxQm5Da091QztFbUNqT3ZDLGlCQUFnQixFQWlEZjtFM0JzREQ7SUFFRSxlQUFjO0lBQ2QsYUFBWTtJQUdWLHNCQUFhO1FBQWIsMkJBQWE7WUFBYixjQUFhO0lBQ2IsaUJBQVE7UUFBUixrQkFBUTtZQUFSLFNBQVEsRUFFWDtFQUVEO0lBQ0UsWUFBVyxFQUNaO0UyQmpIRDtJQUNFLFlBQU87SUFFUCxxQnZCZ0JxRDtJdUJmckQsZW5DMkJXO0ltQzFCWCxnQkFBZTtJQUdiLDBCQUF5QixFQWtCNUI7SUFYRztNQUNFLG1CQUFrQjtNQUNsQixrQm5Da055QjtNbUNqTnpCLFdBQVU7TUFDVixhbkNtTjZCO01tQ2xON0IsZW5DUWEsRW1DUGQ7RUFRTDs7SUFDRSxlbkNWYyxFbUNlZjtJQUhDOztNQUNFLDJCQUEwQixFQUMzQjtFQUtIO0lBSUksZW5DZmU7SW1DZ0JmLG9CQUFtQixFQUNwQjs7QUNpRkg7RUEvSkEsb0JwQ3VTdUI7RW9DcFNyQixzQkFBYTtFQUFiLHFCQUFhO0VBQWIsY0FBYTtFQUNiLDBCQUFpQjtNQUFqQixzQkFBaUI7VUFBakIsa0JBQWlCO0VBQ2pCLDZCQUFvQjtNQUFwQix3QkFBb0I7VUFBcEIscUJBQW9CLEVBa05yQjtFNUJsRkQ7SUFFRSxlQUFjO0lBQ2QsYUFBWTtJQUdWLHNCQUFhO1FBQWIsMkJBQWE7WUFBYixjQUFhO0lBQ2IsaUJBQVE7UUFBUixrQkFBUTtZQUFSLFNBQVEsRUFFWDtFQUVEO0lBQ0UsWUFBVyxFQUNaO0U0QnZJRDtJQUNFLFVBQVM7SUFDVCxrQnBDMlJxQjtJb0MxUnJCLG1CcEMwUnFCO0lvQ3pSckIsa0JwQzRRYTtJb0N6UVgsdUJBQWM7UUFBZCxtQkFBYztZQUFkLGVBQWMsRUFxQmpCO0lBbEJDO01BQ0UsZ0JBQWlDLEVBQ2xDO0VBd0lIO0lBTU0sa0JwQ29ITSxFb0NuSFA7RUFQTDtJQU1NLG1CcENxSFEsRW9DcEhUO0VBUEw7SUFNTSxtQnBDdUhRLEVvQ3RIVDtFQTNHTDtJQUVJLHNCQUFhO1FBQWIsa0JBQWE7WUFBYixjQUFhLEVBdUJoQjtFQTJFRDtJZGpEQSwwQnRCekRnQjtJc0IwRGhCLGV0QjlDYSxFb0NnSE47SWRoRVA7TUFDRSx3QkFQb0Y7TUFRcEYsZXRCbERXLEVzQm1EWjtFYzJDRDtJZGpEQSwwQnRCeERrQjtJc0J5RGxCLGV0Qi9DYSxFb0NpSE47SWRoRVA7TUFDRSwwQkFQb0Y7TUFRcEYsZXRCbkRXLEVzQm9EWjtFYzJDRDtJZGpEQSwwQnRCdkRnQjtJc0J3RGhCLGV0Qi9DYSxFb0NpSE47SWRoRVA7TUFDRSwwQkFQb0Y7TUFRcEYsZXRCbkRXLEVzQm9EWjtFYzJDRDtJZGpEQSwwQnRCdERnQjtJc0J1RGhCLGV0Qi9DYSxFb0NpSE47SWRoRVA7TUFDRSwwQkFQb0Y7TUFRcEYsZXRCbkRXLEVzQm9EWjtFYzJDRDtJZGpEQSwwQnRCckRjO0lzQnNEZCxldEI5Q2EsRW9DZ0hOO0lkaEVQO01BQ0UsMEJBUG9GO01BUXBGLGV0QmxEVyxFc0JtRFo7RWMyQ0Q7SUFsRUUsd0JBQWU7UUFBZixvQkFBZTtZQUFmLGdCQUFlLEVBa0dkO0lBL0ZIO01BRUksdUJBQWM7VUFBZCxtQkFBYztjQUFkLGVBQWMsRUEwQmpCO01BcEJDO1FBQ0UsaUJBQWdCLEVBQ2pCO0VsQ3FCQztJa0NLSjtNQUVJLHNCQUFhO1VBQWIsa0JBQWE7Y0FBYixjQUFhO01BS2YsaUJBQWdCLEVBZ0JqQixFQUFBO0VsQzVCRztJa0NLSjtNQUVJLHNCQUFhO1VBQWIsa0JBQWE7Y0FBYixjQUFhO01BS2YsaUJBQWdCLEVBZ0JqQixFQUFBO0VsQ3ZCRztJa0MyQko7TUFnRE0sZUFBYyxFQU9qQjtNQXZESDtRQW1EUSxlQUFjO1FBQ2QsZ0JBQWlDLEVBQ2xDLEVBQUE7O0FDaEtQO0VBMUNBLG1CQUFrQjtFQUNsQixtQnJDd1N5QjtFcUN2U3pCLGNyQ3dTb0I7RXFDdFNwQix5Q3JDa0RhO0VxQ2pEYixpQnJDZ0VlO0VxQy9DZix3QkFGc0U7RUFHdEUsZXJDK0JhLEVxQ0laO0VBbEREO0lBQ0UsY0FBYSxFQUNkO0VBRUQ7SUFDRSxpQkFBZ0IsRUFDakI7RUE0QkQ7SUFwQkEsMEJBRnNFO0lBR3RFLGVyQytCYSxFcUNOUjtFQU5MO0lBcEJBLHdCQUZzRTtJQUd0RSxlckMrQmEsRXFDTlI7RUFOTDtJQXBCQSwwQkFGc0U7SUFHdEUsZXJDK0JhLEVxQ05SO0VBTkw7SUFwQkEsMEJBRnNFO0lBR3RFLGVyQytCYSxFcUNOUjtFQU5MO0lBcEJBLDBCQUZzRTtJQUd0RSxlckMrQmEsRXFDTlI7RUFOTDtJQWZBLG9CQXlCZ0M7SUF4QmhDLHNCQXdCZ0M7SUF2QmhDLHVCQXVCZ0M7SUF0QmhDLHFCQXNCZ0MsRUFDN0I7RUFYSDtJQWZBLGtCQTZCOEI7SUE1QjlCLG9CQTRCOEI7SUEzQjlCLHFCQTJCOEI7SUExQjlCLG1CQTBCOEIsRUFDM0I7O0FDUUg7RUF2REUsc0JBQWE7RUFBYixxQkFBYTtFQUFiLGNBQWE7RUFDYiwrQkFBc0I7TUFBdEIsMkJBQXNCO1VBQXRCLHVCQUFzQjtFQUN0QixxQkFBWTtNQUFaLHFCQUFZO1VBQVosYUFBWTtFQUdkLHNCdENpRG9CO0VzQy9DcEIsMEJ0Q2lDa0I7RXNDaENsQixpQnRDbURlO0VzQ2pEZixvQnRDbUNhO0VzQ2xDYixpQnRDa1NnQjtFc0NoU2hCLGlCQUFnQjtFQUNoQixldEM4QmEsRXNDYVo7RUF6Q0Q7SUFDRSxpQkFBZ0IsRUFDakI7O0FBeUNEO0VBaENFLHVCQUFjO01BQWQsbUJBQWM7VUFBZCxlQUFjO0VBQ2Qsc0JBQWE7RUFBYixxQkFBYTtFQUFiLGNBQWE7RUFHZixjdEN3Qm1CO0VzQ3ZCbkIsb0J0Q1FrQixFc0NxQmpCO0VBM0JEO0lBQ0UsaUJBQWdCLEVBQ2pCOztBQTJCRDtFQW5CRSx1QkFBYztNQUFkLG1CQUFjO1VBQWQsZUFBYztFQUdoQixjdENRbUIsRXNDVWxCO0VBaEJEO0lBQ0UsaUJBQWdCLEVBQ2pCOztBQWtCRDtFQUNFLGdCQUFlLEVBQ2hCOztBQ2hDRDtFQVhBLG1CQUFrQjtFQUNsQixldkNhaUI7RXVDWmpCLGdCQUFlLEVBY2Q7RXhDaThGRDtJUzMxRkUsV0FBVSxFQUNYO0UrQm5IRDtJQUVFLGV2Q1VXLEV1Q1RaO0VBSUQ7SUF2QkEsZXZDdVNjO0l1Q3RTZCxZdkMwU2E7SXVDelNiLGlCdkM2U1k7SXVDNVNaLGV2QytTd0IsRXVDeFJ3QjtFQUhoRDtJQXZCQSxZdkN3U1k7SXVDdlNaLFl2QzJTYztJdUMxU2QsZXZDOFNXO0l1QzdTWCxldkMrU3dCLEV1Q3ZSNkI7O0FOcVFyRDtFQS9TQSxXQUFVO0VBQ1YsVUFBUztFQUNULGlCQUFnQjtFQUNoQixtQkFBa0I7RUFHaEIsc0JBQWE7RUFBYixxQkFBYTtFQUFiLGNBQWE7RUFDYix3QkFBZTtNQUFmLG9CQUFlO1VBQWYsZ0JBQWUsRUE0WmhCO0VsQytsRkQ7SVNqM0ZFLFdBQVUsRUFDWDtFeUJwSUQ7Ozs7Ozs7SUFFRSxlQUFjO0lBQ2Qsc0JBQXFCO0lBQ3JCLGVBQWM7SUFDZCxxQmpDd0M2QixFaUN2QzlCO0VBR0Q7Ozs7SUFJRSxpQkFBZ0IsRUFDakI7RUFFRDtJQUNFLHNCQUFxQixFQUN0QjtFQStRRDtJQXBMSSx3QkFBZTtRQUFmLG9CQUFlO1lBQWYsZ0JBQWU7SUFDZiw0QkFBbUI7UUFBbkIsd0JBQW1CO1lBQW5CLG9CQUFtQixFQXlMcEI7RUFOSDtJQXpLSSwwQkFBaUI7UUFBakIsc0JBQWlCO1lBQWpCLGtCQUFpQjtJQUNqQiwrQkFBc0I7UUFBdEIsMkJBQXNCO1lBQXRCLHVCQUFzQixFQW1MdkI7RUFwUkQ7SUFDRSxzQkFBYTtRQUFiLGtCQUFhO1lBQWIsY0FBYSxFQUNkO0VBdVFIO0lBdEpFLDRCQUFtQjtRQUFuQix1QkFBbUI7WUFBbkIsb0JBQW1CLEVBMktsQjtJQXhLSDtNQUNFLGtCakM2UnFCLEVpQzVSdEI7SUFFRDs7TUFDRSxXQUFVLEVBQ1g7RS9CeERHO0krQnFNSjtNQXBMSSx3QkFBZTtVQUFmLG9CQUFlO2NBQWYsZ0JBQWU7TUFDZiw0QkFBbUI7VUFBbkIsd0JBQW1CO2NBQW5CLG9CQUFtQixFQThNbEI7SUEzQkw7TUF6S0ksMEJBQWlCO1VBQWpCLHNCQUFpQjtjQUFqQixrQkFBaUI7TUFDakIsK0JBQXNCO1VBQXRCLDJCQUFzQjtjQUF0Qix1QkFBc0IsRUF1TXJCO0lBeFNIO01BQ0Usc0JBQWE7VUFBYixrQkFBYTtjQUFiLGNBQWEsRUFDZDtJQUZEO01BQ0Usc0JBQWE7VUFBYixrQkFBYTtjQUFiLGNBQWEsRUFDZCxFQUFBO0UvQmtFQztJK0JxTUo7TUFwTEksd0JBQWU7VUFBZixvQkFBZTtjQUFmLGdCQUFlO01BQ2YsNEJBQW1CO1VBQW5CLHdCQUFtQjtjQUFuQixvQkFBbUIsRUE4TWxCO0lBM0JMO01BektJLDBCQUFpQjtVQUFqQixzQkFBaUI7Y0FBakIsa0JBQWlCO01BQ2pCLCtCQUFzQjtVQUF0QiwyQkFBc0I7Y0FBdEIsdUJBQXNCLEVBdU1yQjtJQXhTSDtNQUNFLHNCQUFhO1VBQWIsa0JBQWE7Y0FBYixjQUFhLEVBQ2Q7SUFGRDtNQUNFLHNCQUFhO1VBQWIsa0JBQWE7Y0FBYixjQUFhLEVBQ2QsRUFBQTtFQXVRSDtJQTlIRSxnQkFBaUM7SUFDakMsa0JqQ3RINEIsRWlDZ1MzQjtFQWxLRDs7SUFDRSxzQkFBYTtJQUFiLHFCQUFhO0lBQWIsY0FBYSxFQUNkO0VBRkQ7Ozs7O0lBQ0Usc0JBQWE7SUFBYixxQkFBYTtJQUFiLGNBQWEsRUFDZDtFQWtCRDs7SUFFSSw4QkFBcUI7UUFBckIsMEJBQXFCO1lBQXJCLHNCQUFxQixFQVl4QjtJQVRDOzs7Ozs7Ozs7OztNQUdFLHNCakN1T21CLEVpQ2xPcEI7RUFJSDs7SUFFSSw4QkFBcUI7UUFBckIsMEJBQXFCO1lBQXJCLHNCQUFxQixFQVl4QjtJQVRDOzs7Ozs7Ozs7OztNQUdFLHFCakNzTm1CLEVpQ2pOcEI7RUFJSDs7SUFFSSxpQ0FBd0I7UUFBeEIsNkJBQXdCO1lBQXhCLHlCQUF3QixFQW1CM0I7SUFiQzs7Ozs7Ozs7Ozs7TUFRSSw0QkFBbUI7VUFBbkIsNkJBQW1CO2tCQUFuQiw0QkFBbUI7Y0FBbkIsb0JBQW1CO01BQ25CLHVCakM0TGlCO01pQzNMakIsbUJBQWtCLEVBRXJCO0VBSUg7O0lBRUksaUNBQXdCO1FBQXhCLDZCQUF3QjtZQUF4Qix5QkFBd0IsRUFtQjNCO0lBYkM7Ozs7Ozs7Ozs7O01BUUksNEJBQW1CO1VBQW5CLDZCQUFtQjtrQkFBbkIsNEJBQW1CO2NBQW5CLG9CQUFtQjtNQUNuQix1QmpDb0tpQjtNaUNuS2pCLG1CQUFrQixFQUVyQjtFQW1CTDs7SUFMQSxvQmpDMVFnQjtJaUMyUWhCLGVqQy9QYSxFaUN3VlY7RUFyRkg7O0lBTEEsb0JqQzFRZ0I7SWlDMlFoQixlakMvUGEsRWlDOFZSO0VBM0ZMO0lBdFBJLG9DQUEyQjtRQUEzQixxQkFBMkI7WUFBM0IsNEJBQTJCLEVBdVY1QjtFQS9VQztJQUNFLHNCQUFhO0lBQWIscUJBQWE7SUFBYixjQUFhO0lBQ2Isa0NBQXlCO1FBQXpCLG1CQUF5QjtZQUF6QiwwQkFBeUIsRUFLMUI7SUFIQztNQUNFLG9DQUEyQjtVQUEzQixxQkFBMkI7Y0FBM0IsNEJBQTJCLEVBQzVCO0VBR0g7SUFDRSxlQUFjO0lBQ2Qsa0IxQlpvRCxFMEJpQnJEO0lBSEM7TUFDRSxrQjFCZmtELEUwQmdCbkQ7RUErTlA7SUFsSUUsbUJqQ2pINEI7SWlDa0g1QixlQUFnQyxFQTBPN0I7RUFyVEQ7SUFDRSxzQkFBYTtJQUFiLHFCQUFhO0lBQWIsY0FBYTtJQUNiLGdDQUF1QjtRQUF2QixzQkFBdUI7WUFBdkIsd0JBQXVCLEVBS3hCO0lBSEM7TUFDRSxvQ0FBMkI7VUFBM0IscUJBQTJCO2NBQTNCLDRCQUEyQixFQUM1QjtFQXNNUDtJQWJBLHFCakN2TytCO0lpQ3lPL0Isa0JBQWlCO0lBQ2pCLGVBQWM7SUFDZCxlQUFjLEVBNEhYOztBQUlEO0VBR00sZ0NBQXVCO01BQXZCLHNCQUF1QjtVQUF2Qix3QkFBdUIsRUFJMUI7RUExVUQ7SUFDRSxzQkFBYTtJQUFiLHFCQUFhO0lBQWIsY0FBYTtJQUNiLGdDQUF1QjtRQUF2QixzQkFBdUI7WUFBdkIsd0JBQXVCLEVBS3hCO0lBSEM7TUFDRSxvQ0FBMkI7VUFBM0IscUJBQTJCO2NBQTNCLDRCQUEyQixFQUM1Qjs7QUF5VVA7RUFDRSxjQUFhLEVBQ2Q7O0FPNWVEO0VoQ3dHQSxtQkFBa0I7RUFDbEIsc0JBQXFCO0VBQ3JCLHVCQUFzQjtFQUN0QixZQXpCWTtFQTBCWixhQXpCYTtFQTBCYixnQkFBZSxFZ0MzR2Q7RWhDOEdEO0lBQ0UsbUJBQWtCO0lBQ2xCLE9BQU07SUFDTixRQUFPO0lBRVAsZUFBYztJQUNkLFlBQVc7SUFDWCxZQW5DVTtJQXFDVixvQlJyQlc7SVFzQlgsOENSdEJXO0lRd0JYLFlBQVcsRUFDWjtFQVVDO0lBQ0Usb0JSeENlO0lReUNmLDhDUnpDZSxFUTBDaEI7O0FnQ3RJSDtFaENvR0EsbUJBQWtCO0VBQ2xCLHNCQUFxQjtFQUNyQix1QkFBc0I7RUFDdEIsWUF6Qlk7RUEwQlosYUF6QmE7RUEwQmIsZ0JBQWUsRWdDdkdkO0VoQzBHRDtJQUNFLG1CQUFrQjtJQUNsQixPQUFNO0lBQ04sUUFBTztJQUVQLGVBQWM7SUFDZCxZQUFXO0lBQ1gsWUFuQ1U7SUFxQ1Ysb0JSdEJXO0lRdUJYLDhDUnZCVztJUXlCWCxZQUFXLEVBQ1o7RUFVQztJQUNFLG9CUnZDYTtJUXdDYiw4Q1J4Q2EsRVF5Q2Q7O0FpQ25FSDtFQUNFLG1CQUFrQjtFQUNsQixpQkFBZ0IsRUFTakI7RUFYRDtJQUtJLGVBQWMsRUFDZjtFQU5IO0lBU0ksd0JBQXVCLEVBQ3hCOztBQUlIOztFQUVJLHFCekM0QjJCO0V5QzNCM0Isb0J6Q1lTLEV5Q1hWOztBQUpIO0VBUUksbUJBQWtCO0VBQ2xCLE9BQU07RUFDTixXQUFxQjtFQUNyQixZQUFXO0VBRVgsWUFBVztFQUNYLG9CekNDUztFeUNBVCwyQ3pDNFJ1QztFeUM1UnZDLG1DekM0UnVDO0V5QzVSdkMsbUV6QzRSdUMsRXlDNVF4QztFQS9CSDtJQWtCTSxXQUFVO0lBQ1YsZUFBYztJQUNkLHFDQUFxRTtRQUFyRSxpQ0FBcUU7WUFBckUsNkJBQXFFLEVBQ3RFO0VBckJMO0lBd0JNLG9DQUFxRTtRQUFyRSxnQ0FBcUU7WUFBckUsNEJBQXFFLEVBQ3RFO0VBekJMOztJQTZCTSxxQnpDQ3lCLEV5Q0ExQjs7QUE5Qkw7RVJvSkUsZ0JBQWlDO0VBQ2pDLGVqQ3lKdUIsRXlDM1F0Qjs7QUFuQ0g7RUFzQ0ksaUJBQWdCLEVBQ2pCOztBQWhGSDs7RUFDRSxtQkFBa0IsRUFRbkI7RUFQQzs7SUFDRSxtQkFBa0I7SUFDbEIsU0FBUTtJQUNSLGlCQUFzQztJQUN0QyxZQUFzQjtJakNUMUIsZUFBYztJQUNkLFNBQVE7SUFDUixVQUFTO0lBRVQsa0JSMlZ3QjtJUXpWeEIsWUFBVztJQWFULHNCQUFxQjtJQUNyQix5QkFBd0I7SUFDeEIsMERSMEJjLEV5Q3BDYjs7QUFHSDs7RUFDRSxXQUFVO0VBQ1YsWUFBVztFakNoQmIsZUFBYztFQUNkLFNBQVE7RUFDUixVQUFTO0VBRVQsa0JSaVgyQjtFUS9XM0IsWUFBVztFQWFULHNCQUFxQjtFQUNyQix5QkFBd0I7RUFDeEIsMERSb0NrQixFeUN2Q25COztBQUVEOztFQUNFLFlBQVc7RUFDWCxXQUFVO0VqQ3RCWixlQUFjO0VBQ2QsU0FBUTtFQUNSLFVBQVM7RUFFVCxrQlJpWDJCO0VRL1czQixZQUFXO0VBa0JULHFCQUFvQjtFQUNwQiwwQkFBeUI7RUFDekIsMERBQWlFLEVpQ0ZsRTs7QUFvQkQ7O0VqQzVDQSxlQUFjO0VBQ2QsU0FBUTtFQUNSLFVBQVM7RUFFVCxrQlIyVndCO0VRelZ4QixZQUFXO0VBa0JULHFCQUFvQjtFQUNwQiwwQkFBeUI7RUFDekIsMERBQWlFO0VpQ2dFN0QscUJBQTRDO0VBQzVDLHNCQUFxQjtFQUNyQix1QkFBc0I7RUFDdEIsc0JBQXVDO0VBRXZDLHFCQUE0QyxFQUM3Qzs7QUNyRUw7RUEzQkEsbUJBQWtCO0VBQ2xCLFlBQVc7RUFFWCxhMUNxV29CO0UwQ3BXcEIsYzFDZ1dxQjtFMEM5VnJCLG1CQUFrQjtFQUNsQixjQUFhO0VBQ2IsMEIxQytDbUI7RTBDOUNuQixpQjFDZ0VlO0UwQy9EZiwwQjFDaURhO0UwQy9DYixnQjFDMlZ1QixFMEMxVXRCO0VBYkQ7SUFDRSxlQUFjLEVBQ2Y7RUFFRDtJQUNFLG9CQUFtQjtJQUNuQixlQUFjLEVBQ2Y7O0FBU0M7RUFDRSxhMUMwVU8sRTBDelVSOztBQUZEO0VBQ0UsYTFDMlVRLEUwQzFVVDs7QUFGRDtFQUNFLGExQzRVUSxFMEMzVVQ7O0FDUUM7RUFDRSxVQUFTO0VBQ1QsU0FBUTtFQUNSLFdBQVUsRUFDWDs7QUFJRDtFQUNFLFVBQVM7RUFDVCxZQUFXO0VBQ1gsUUFBTyxFQUNSOztBQUlEOztFQUNFLG1CQUFrQjtFQUNsQixzQjNDMFQyQixFMkN6VDVCOztBQUVEOztFbkMvREosZUFBYztFQUNkLFNBQVE7RUFDUixVQUFTO0VBRVQsa0JSaVgyQjtFUS9XM0IsWUFBVztFQUdULHVCQUFzQjtFQUN0Qix3QkFBdUI7RUFDdkIsOENBQXFEO0VtQ3NEakQsV0FBcUI7RUFDckIsV0FBcUI7RUFDckIsaUJBQStDLEVBQ2hEOztBQW1DTDs7RUFLSSxxQjNDbEMyQixFMkNtQzVCO0U1QzR4R0g7O0lTenVHRSxXQUFVLEVBQ1g7O0FtQzFERDs7RUFVSSx3QjNDOFE0QztFMkM3UTVDLGUzQzVEYyxFMkM2RGY7O0FBRUQ7RUFDRSxjQUFhLEVBQ2Q7O0FBaEJIO0VWeUZFLGdCQUFpQztFQUNqQyxlakMwTDBCLEUyQ2hRekI7O0FBbERDO0VBQ0UsT0FBTSxFQUNQOztBQUdDO0VBQ0UsWUFBVztFQUNYLFdBQVU7RUFDVixPQUFNLEVBQ1A7O0FBSUQ7RUFDRSxZQUFXO0VBQ1gsV0FBVSxFQUNYOztBQWpFUDs7RUFDRSxZQUFzQixFQUN2Qjs7QUFFRDs7RUFDRSxZQUFXO0VBQ1gsVUFBUztFbkM5QlgsZUFBYztFQUNkLFNBQVE7RUFDUixVQUFTO0VBRVQsa0JSaVgyQjtFUS9XM0IsWUFBVztFQWtCVCxxQkFBb0I7RUFDcEIsMEJBQXlCO0VBQ3pCLDBEQUFpRSxFbUNNbEU7O0FBRUQ7O0VuQ2xDQSxlQUFjO0VBQ2QsU0FBUTtFQUNSLFVBQVM7RUFFVCxrQlJpWDJCO0VRL1czQixZQUFXO0VBYVQsc0JBQXFCO0VBQ3JCLHlCQUF3QjtFQUN4QiwwRFJvQ2tCLEUyQ3JCbkI7O0F6Q3FGRztFeUMvRUE7SUFDRSxVQUFTO0lBQ1QsU0FBUTtJQUNSLFdBQVUsRUFDWDtFQUlEO0lBQ0UsVUFBUztJQUNULFlBQVc7SUFDWCxRQUFPLEVBQ1I7RUFJRDs7SUFDRSxtQkFBa0I7SUFDbEIsc0IzQzBUMkIsRTJDelQ1QjtFQUVEOztJbkMvREosZUFBYztJQUNkLFNBQVE7SUFDUixVQUFTO0lBRVQsa0JSaVgyQjtJUS9XM0IsWUFBVztJQUdULHVCQUFzQjtJQUN0Qix3QkFBdUI7SUFDdkIsOENBQXFEO0ltQ3NEakQsV0FBcUI7SUFDckIsV0FBcUI7SUFDckIsaUJBQStDLEVBQ2hEO0VBS0Q7SUFDRSxPQUFNLEVBQ1A7RUFHQztJQUNFLFlBQVc7SUFDWCxXQUFVO0lBQ1YsT0FBTSxFQUNQO0VBSUQ7SUFDRSxZQUFXO0lBQ1gsV0FBVSxFQUNYO0VBakVQOztJQUNFLFlBQXNCLEVBQ3ZCO0VBRUQ7O0lBQ0UsWUFBVztJQUNYLFVBQVM7SW5DOUJYLGVBQWM7SUFDZCxTQUFRO0lBQ1IsVUFBUztJQUVULGtCUmlYMkI7SVEvVzNCLFlBQVc7SUFrQlQscUJBQW9CO0lBQ3BCLDBCQUF5QjtJQUN6QiwwREFBaUUsRW1DTWxFO0VBRUQ7O0luQ2xDQSxlQUFjO0lBQ2QsU0FBUTtJQUNSLFVBQVM7SUFFVCxrQlJpWDJCO0lRL1czQixZQUFXO0lBYVQsc0JBQXFCO0lBQ3JCLHlCQUF3QjtJQUN4QiwwRFJvQ2tCLEUyQ3JCbkIsRUFBQTs7QXpDcUZHO0V5Qy9FQTtJQUNFLFVBQVM7SUFDVCxTQUFRO0lBQ1IsV0FBVSxFQUNYO0VBSUQ7SUFDRSxVQUFTO0lBQ1QsWUFBVztJQUNYLFFBQU8sRUFDUjtFQUlEOztJQUNFLG1CQUFrQjtJQUNsQixzQjNDMFQyQixFMkN6VDVCO0VBRUQ7O0luQy9ESixlQUFjO0lBQ2QsU0FBUTtJQUNSLFVBQVM7SUFFVCxrQlJpWDJCO0lRL1czQixZQUFXO0lBR1QsdUJBQXNCO0lBQ3RCLHdCQUF1QjtJQUN2Qiw4Q0FBcUQ7SW1Dc0RqRCxXQUFxQjtJQUNyQixXQUFxQjtJQUNyQixpQkFBK0MsRUFDaEQ7RUFLRDtJQUNFLE9BQU0sRUFDUDtFQUdDO0lBQ0UsWUFBVztJQUNYLFdBQVU7SUFDVixPQUFNLEVBQ1A7RUFJRDtJQUNFLFlBQVc7SUFDWCxXQUFVLEVBQ1g7RUFqRVA7O0lBQ0UsWUFBc0IsRUFDdkI7RUFFRDs7SUFDRSxZQUFXO0lBQ1gsVUFBUztJbkM5QlgsZUFBYztJQUNkLFNBQVE7SUFDUixVQUFTO0lBRVQsa0JSaVgyQjtJUS9XM0IsWUFBVztJQWtCVCxxQkFBb0I7SUFDcEIsMEJBQXlCO0lBQ3pCLDBEQUFpRSxFbUNNbEU7RUFFRDs7SW5DbENBLGVBQWM7SUFDZCxTQUFRO0lBQ1IsVUFBUztJQUVULGtCUmlYMkI7SVEvVzNCLFlBQVc7SUFhVCxzQkFBcUI7SUFDckIseUJBQXdCO0lBQ3hCLDBEUm9Da0IsRTJDckJuQixFQUFBOztBQW1FRDtFQTBDTSxVQUFTO0VBQ1QsU0FBUTtFQUNSLFdBQVUsRUFDWDs7QUFJTDtFQUNFLGFBQVksRUFLYjtFQU5EO0lBSUksYUFBWSxFQUNiOztBQUdIO0VBQ0UsbUJBQWtCLEVBOEJuQjtFQS9CRDs7SUFJSSxtQkFBa0I7SUFDbEIsU0FBUTtJQUNSLFdBQXFCO0lBQ3JCLFdBQXFCO0lBQ3JCLGlCQUF5QyxFQUMxQztFQVRIO0lBYUksVUFBUztJQUtQLFdBQVUsRUFFYjtFQXBCSDtJQXVCSSxZQUFXO0lBQ1gsV0FBVSxFQUNYO0VBekJIO0lBNEJJLFlBQVc7SUFDWCxXQUFVLEVBQ1g7O0FBR0g7RUFDRSxtQkFBa0I7RUFDbEIsT0FBTTtFQUNOLFdBQXFCO0VBQ3JCLFdBQVU7RUFFVixjQUFhO0VBQ2IsaUIzQytLMEI7RTJDN0sxQiwwQjNDbkppQjtFMkNvSmpCLG9CM0NoSlcsRTJDMktaO0VBekJDOztJQUNFLHFCM0NwSTJCLEUyQ3FJNUI7RUF2TEg7O0lBQ0UsWUFBc0IsRUFDdkI7RUFFRDs7SUFDRSxZQUFXO0lBQ1gsVUFBUztJbkM5QlgsZUFBYztJQUNkLFNBQVE7SUFDUixVQUFTO0lBRVQsa0JSaVgyQjtJUS9XM0IsWUFBVztJQWtCVCxxQkFBb0I7SUFDcEIsMEJBQXlCO0lBQ3pCLDBEQUFpRSxFbUNNbEU7RUFFRDs7SW5DbENBLGVBQWM7SUFDZCxTQUFRO0lBQ1IsVUFBUztJQUVULGtCUmlYMkI7SVEvVzNCLFlBQVc7SUFhVCxzQkFBcUI7SUFDckIseUJBQXdCO0lBQ3hCLDBEUm9Da0IsRTJDckJuQjtFQTZKRDtJQXdCTSxpQjNDb0tpQixFMkNuS2xCO0VBekJMO0lBNkJJLFlBQVcsRUFDWjtFQTlCSDtJQW1DSSxlQUFjLEVBQ2Y7O0FDaE9IOztFQW5CQSxtQkFBa0I7RUFDbEIsVUFBUztFQUNULG9CaEMwRHVEO0VnQ3pEdkQsb0JDdUNzQjtFRHRDdEIsaUJBQWdCLEVBMEJmO0VBeEJEOzs7Ozs7OztJQUlFLG1CQUFrQjtJQUNsQixPQUFNO0lBQ04sUUFBa0I7SUFDbEIsWUFBVztJQUNYLGFBQVksRUFDYjtFQUlEOztJQVFNLHVCQ2VnQixFRGRqQjs7QUVOTDtFQVpBLHNCQUFxQjtFQUNyQiwyQjlDNGIrQjtFOEMxYi9CLGlCOUMwRWU7RThDeEVmLGtCOUN1YnNCO0U4Q3RidEIsZUFBYztFQUNkLG9CQUFtQjtFQUNuQixnQkFBZTtFQU9iLG9COUNvQ2M7RThDbkNkLGU5QytDVyxFOEN2Q1o7RUFaRDtJQVFNLG9COUMrQlU7SThDOUJWLGU5QzBDTyxFOEN6Q1I7RUFWTDtJQVFNLG9COUNnQ1k7SThDL0JaLGU5Q3lDTyxFOEN4Q1I7RUFWTDtJQVFNLG9COUNpQ1U7SThDaENWLGU5Q3lDTyxFOEN4Q1I7RUFWTDtJQVFNLG9COUNrQ1U7SThDakNWLGU5Q3lDTyxFOEN4Q1I7RUFWTDtJQVFNLG9COUNtQ1E7SThDbENSLGU5QzBDTyxFOEN6Q1I7O0FDYUw7RUFuREEsc0JBQWlDO0VBQWpDLHFCQUFpQztFQUFqQyxjQUFpQztFQUNqQyxzQi9DdUZvQjtFK0NwRmxCLDBCQUFpQjtNQUFqQixzQkFBaUI7VUFBakIsa0JBQWlCLEVBbUVsQjtFQXBCRDtJQUlJLGdCQUFlLEVBQ2hCO0U3QzBGQztJNkMvRko7TUFVUSx3QkFBZTtVQUFmLG9CQUFlO2NBQWYsZ0JBQWUsRUFFbEIsRUFBQTtFN0NtRkQ7STZDL0ZKO01BakJBLFdBQVU7TUFDVixxQi9Dc0RtQjtNK0NuRGpCLHlCQUFnQjtVQUFoQiw4QkFBZ0I7Y0FBaEIsaUJBQWdCO01BQ2hCLGdCQUFlLEVBK0JkO01BekJIO1FBQ0UsWS9DdWFrQyxFK0N0YW5DLEVBQUE7O0FBMEJEO0VBN0RFLHVCQUFjO01BQWQsbUJBQWM7VUFBZCxlQUFjLEVBOEVmO0VBdkVEO0lBQ0Usb0IvQ3FFaUIsRStDcEVsQjtFQUVEO0lBQ0UsbUIvQ2lFaUIsRStDaEVsQjtFQUVEO0lBQ0UsaUJBQWdCLEVBQ2pCO0VBNENEO0lBS00sc0JBQWE7UUFBYixrQkFBYTtZQUFiLGNBQWEsRUFDZDs7QUNWTDtFQUNFLGlCQUFnQixFQUNqQjs7QUFHRDtFQUNFLG1CQUFrQjtFQUNsQixPQUFNO0VBQ04sUUFBTztFQUNQLFloRCtheUI7RWdEN2F6QixZQUFXO0VBQ1gsYUFBWTtFQUVaLG9EaEQrYThCO0VnRDdhOUIsc0NoRE5XO0VnRFFYLFdBQVU7RUFDVixtQkFBa0I7RUFFbEIsaUJBQWdCLEVBa0JqQjtFQWxDRDtJQW1CSSxXQUFVO0lBQ1Ysb0JBQW1CLEVBQ3BCO0VBckJIO0lBd0JJLGdCQUFlLEVBQ2hCO0VBekJIO0lBNEJJLG1CQUFrQixFQUNuQjtFQTdCSDtJQWdDSSxnQkFBZSxFQUNoQjs7QUF3VEg7RUFsVEEsbUJBQWtCO0VBQ2xCLGlCQUFnQixFQW1UZjs7QUFHRDtFQTFTRSxnQkFBZTtFQU9qQixZaER5WHdCO0VnRGxYeEIsd0NoRHNYZ0M7RWdEdFhoQyxnQ2hEc1hnQztFZ0R0WGhDLDZEaERzWGdDO0VnRHJYaEMsb0NBQTJCO1VBQTNCLDRCQUEyQjtFQUUzQixvQmhEdEV1QixFZ0R1V3RCO0VqRDAxR0Q7SVN0bEhFLFdBQVUsRUFDWDtFd0M3Q0Q7SUFDRSxZaERxWHNCLEVnRHBYdkI7RUFRRDtJQUNFLG1CQUFrQixFQUNuQjtFQUdEO0lBQ0UsWWhEdVd5QixFZ0RsVzFCO0lBSEM7TUFDRSwyQ2hEN0VTLEVnRDhFVjtFQUlIO0lBQ0UsbUNBQTBCO1FBQTFCLCtCQUEwQjtZQUExQiwyQkFBMEIsRUFDM0I7O0FBaVJEO0VBbFRFLG1CQUFrQjtFQUlwQixZaER5WHdCO0VnRGxYeEIsd0NoRHNYZ0M7RWdEdFhoQyxnQ2hEc1hnQztFZ0R0WGhDLDZEaERzWGdDO0VnRHJYaEMsb0NBQTJCO1VBQTNCLDRCQUEyQjtFQUUzQixvQmhEdEV1QixFZ0Q0V3RCO0VqRHcyR0Q7SVN6bUhFLFdBQVUsRUFDWDtFd0M3Q0Q7SUFDRSxZaERxWHNCLEVnRHBYdkI7RUFRRDtJQUNFLG1CQUFrQixFQUNuQjtFQUdEO0lBQ0UsWWhEdVd5QixFZ0RsVzFCO0lBSEM7TUFDRSwyQ2hEN0VTLEVnRDhFVjtFQUlIO0lBQ0UsbUNBQTBCO1FBQTFCLCtCQUEwQjtZQUExQiwyQkFBMEIsRUFDM0I7O0FBc1JEO0VBNVFFLE9BQU07RUFDTixRQUFPO0VBQ1AsYUFBWTtFQUNaLGlCQUFnQjtFQUlaLFloRGlVSztFZ0RoVUwscUNBQTZCO01BQTdCLGlDQUE2QjtVQUE3Qiw2QkFBNkIsRUFvUXFDO0VBL1A5RDtJQUlGLHFDQUE2QjtRQUE3QixpQ0FBNkI7WUFBN0IsNkJBQTZCLEVBTWxDO0lBVk87TUFRSixtQ0FBMEI7VUFBMUIsK0JBQTBCO2NBQTFCLDJCQUEwQixFQUMzQjtFQUlLO0lBSUEsb0NBQTRCO1FBQTVCLGdDQUE0QjtZQUE1Qiw0QkFBNEIsRUFHakM7RUFvSEg7SXhDN1RBLDREUjBFVyxFZ0RnUVY7O0FBMkdIO0VBeE9FLE9BQU07RUFDTixTQUFRO0VBQ1IsYUFBWTtFQUNaLGlCQUFnQjtFQUlaLFloRDRSSztFZ0QzUkwsb0NBQTRCO01BQTVCLGdDQUE0QjtVQUE1Qiw0QkFBNEIsRUFnT3NDO0VBM045RDtJQUlGLG9DQUE0QjtRQUE1QixnQ0FBNEI7WUFBNUIsNEJBQTRCLEVBTWpDO0lBVk87TUFRSixtQ0FBMEI7VUFBMUIsK0JBQTBCO2NBQTFCLDJCQUEwQixFQUMzQjtFQUlLO0lBSUEscUNBQTZCO1FBQTdCLGlDQUE2QjtZQUE3Qiw2QkFBNkIsRUFHbEM7RUErRUg7SXhDL1RBLDJEUjRFVyxFZ0RnUVY7O0FBNEdIO0VBcE1FLE9BQU07RUFDTixRQUFPO0VBQ1AsWUFBVztFQUNYLGlCQUFnQjtFQUlaLGNoRDBQTTtFZ0R6UE4sc0NBQTZCO01BQTdCLGtDQUE2QjtVQUE3Qiw4QkFBNkIsRUE0TG1DO0VBdkw1RDtJQUdGLHNDQUE2QjtRQUE3QixrQ0FBNkI7WUFBN0IsOEJBQTZCLEVBTWxDO0lBVE87TUFPSixtQ0FBMEI7VUFBMUIsK0JBQTBCO2NBQTFCLDJCQUEwQixFQUMzQjtFQUlLO0lBSUEscUNBQTRCO1FBQTVCLGlDQUE0QjtZQUE1Qiw2QkFBNEIsRUFHakM7RUEyQ0g7SXhDM1RBLDREUndFVyxFZ0RnUVY7O0FBNkdIO0VBaktFLFVBQVM7RUFDVCxRQUFPO0VBQ1AsWUFBVztFQUNYLGlCQUFnQjtFQUlaLGNoRHNOTTtFZ0RyTk4scUNBQTRCO01BQTVCLGlDQUE0QjtVQUE1Qiw2QkFBNEIsRUF5Sm9DO0VBcEo1RDtJQUdGLHFDQUE0QjtRQUE1QixpQ0FBNEI7WUFBNUIsNkJBQTRCLEVBTWpDO0lBVE87TUFPSixtQ0FBMEI7VUFBMUIsK0JBQTBCO2NBQTFCLDJCQUEwQixFQUMzQjtFQUlLO0lBSUEsc0NBQTZCO1FBQTdCLGtDQUE2QjtZQUE3Qiw4QkFBNkIsRUFHbEM7RUFPSDtJeENqVUEsMkRSOEVXLEVnRGdRVjs7QUErR0g7RUF4R0Esd0JBQWU7TUFBZixvQkFBZTtVQUFmLGdCQUFlO0VBQ2Ysd0NoRDRLZ0M7RWdENUtoQyxnQ2hENEtnQztFZ0Q1S2hDLDZEaEQ0S2dDO0VnRDNLaEMsb0NBQTJCO1VBQTNCLDRCQUEyQixFQXdHMUI7RUFyR0Q7SUFDRSxtQ0FBMEI7UUFBMUIsK0JBQTBCO1lBQTFCLDJCQUEwQixFQUMzQjtFQUdEO0lBQ0UsbUNBQTBCO1FBQTFCLCtCQUEwQjtZQUExQiwyQkFBMEIsRUFDM0I7O0E5Q3BORztFOEN3VEU7SUExRk4sd0JBQWU7UUFBZixvQkFBZTtZQUFmLGdCQUFlO0lBQ2YsWWhEb0owQjtJZ0RuSjFCLGlCQUFnQjtJQUNoQixvQkFBbUIsRUF5Rlo7SUFuRlA7TUFDRSxjQUFhLEVBQ2Q7SUFHRDtNQUNFLHdCQUFlO1VBQWYsb0JBQWU7Y0FBZixnQkFBZSxFQUNoQjtJQUVPO01BQ04sa0JoRHNIUyxFZ0RySFY7SUFHRDtNQUNFLGtCaERpSFMsRWdEaEhWO0VBcUVLO0lBOUZOLHdCQUFlO1FBQWYsb0JBQWU7WUFBZixnQkFBZTtJQUNmLFloRG9KMEI7SWdEbkoxQixpQkFBZ0I7SUFDaEIsb0JBQW1CLEVBNkZaO0lBdkZQO01BQ0UsY0FBYSxFQUNkO0lBR0Q7TUFDRSx3QkFBZTtVQUFmLG9CQUFlO2NBQWYsZ0JBQWUsRUFDaEI7SUFFTztNQUNOLG1CaERzSFMsRWdEckhWO0lBR0Q7TUFDRSxtQmhEaUhTLEVnRGhIVjtFQXlFSztJQWxHTix3QkFBZTtRQUFmLG9CQUFlO1lBQWYsZ0JBQWU7SUFDZixZaERvSjBCO0lnRG5KMUIsaUJBQWdCO0lBQ2hCLG9CQUFtQixFQWlHWjtJQTNGUDtNQUNFLGNBQWEsRUFDZDtJQUdEO01BQ0Usd0JBQWU7VUFBZixvQkFBZTtjQUFmLGdCQUFlLEVBQ2hCO0lBRU87TUFDTixpQmhEc0hTLEVnRHJIVjtJQUdEO01BQ0UsaUJoRGlIUyxFZ0RoSFY7RUE2RUs7SUF0R04sd0JBQWU7UUFBZixvQkFBZTtZQUFmLGdCQUFlO0lBQ2YsWWhEb0owQjtJZ0RuSjFCLGlCQUFnQjtJQUNoQixvQkFBbUIsRUFxR1o7SUEvRlA7TUFDRSxjQUFhLEVBQ2Q7SUFHRDtNQUNFLHdCQUFlO1VBQWYsb0JBQWU7Y0FBZixnQkFBZSxFQUNoQjtJQUVPO01BQ04sb0JoRHNIUyxFZ0RySFY7SUFHRDtNQUNFLG9CaERpSFMsRWdEaEhWLEVBQUE7O0E5Q3ZQRztFOEN3VEU7SUExRk4sd0JBQWU7UUFBZixvQkFBZTtZQUFmLGdCQUFlO0lBQ2YsWWhEb0owQjtJZ0RuSjFCLGlCQUFnQjtJQUNoQixvQkFBbUIsRUF5Rlo7SUFuRlA7TUFDRSxjQUFhLEVBQ2Q7SUFHRDtNQUNFLHdCQUFlO1VBQWYsb0JBQWU7Y0FBZixnQkFBZSxFQUNoQjtJQUVPO01BQ04sa0JoRHNIUyxFZ0RySFY7SUFHRDtNQUNFLGtCaERpSFMsRWdEaEhWO0VBcUVLO0lBOUZOLHdCQUFlO1FBQWYsb0JBQWU7WUFBZixnQkFBZTtJQUNmLFloRG9KMEI7SWdEbkoxQixpQkFBZ0I7SUFDaEIsb0JBQW1CLEVBNkZaO0lBdkZQO01BQ0UsY0FBYSxFQUNkO0lBR0Q7TUFDRSx3QkFBZTtVQUFmLG9CQUFlO2NBQWYsZ0JBQWUsRUFDaEI7SUFFTztNQUNOLG1CaERzSFMsRWdEckhWO0lBR0Q7TUFDRSxtQmhEaUhTLEVnRGhIVjtFQXlFSztJQWxHTix3QkFBZTtRQUFmLG9CQUFlO1lBQWYsZ0JBQWU7SUFDZixZaERvSjBCO0lnRG5KMUIsaUJBQWdCO0lBQ2hCLG9CQUFtQixFQWlHWjtJQTNGUDtNQUNFLGNBQWEsRUFDZDtJQUdEO01BQ0Usd0JBQWU7VUFBZixvQkFBZTtjQUFmLGdCQUFlLEVBQ2hCO0lBRU87TUFDTixpQmhEc0hTLEVnRHJIVjtJQUdEO01BQ0UsaUJoRGlIUyxFZ0RoSFY7RUE2RUs7SUF0R04sd0JBQWU7UUFBZixvQkFBZTtZQUFmLGdCQUFlO0lBQ2YsWWhEb0owQjtJZ0RuSjFCLGlCQUFnQjtJQUNoQixvQkFBbUIsRUFxR1o7SUEvRlA7TUFDRSxjQUFhLEVBQ2Q7SUFHRDtNQUNFLHdCQUFlO1VBQWYsb0JBQWU7Y0FBZixnQkFBZSxFQUNoQjtJQUVPO01BQ04sb0JoRHNIUyxFZ0RySFY7SUFHRDtNQUNFLG9CaERpSFMsRWdEaEhWLEVBQUE7O0E5Q3ZQRztFOEMrVUU7SUFuRk4sb0JBQW1CO0lBQ25CLGFBQVk7SUFDWixpQkFBZ0I7SUFDaEIsb0JBQW1CO0lBQ25CLGVBQWM7SUFDZCxrQkFBaUI7SUFDakIsb0JBQW1CLEVBK0VaO0lBNUVQO01BSUUsaUJBQWdCO01BQ2hCLHdCQUFlO1VBQWYsb0JBQWU7Y0FBZixnQkFBZSxFQUNoQjtJQUVEO01BQ0UsY0FBYSxFQUNkLEVBQUE7O0E5Qy9RRztFOEMrVUU7SUFuRk4sb0JBQW1CO0lBQ25CLGFBQVk7SUFDWixpQkFBZ0I7SUFDaEIsb0JBQW1CO0lBQ25CLGVBQWM7SUFDZCxrQkFBaUI7SUFDakIsb0JBQW1CLEVBK0VaO0lBNUVQO01BSUUsaUJBQWdCO01BQ2hCLHdCQUFlO1VBQWYsb0JBQWU7Y0FBZixnQkFBZSxFQUNoQjtJQUVEO01BQ0UsY0FBYSxFQUNkLEVBQUE7O0FDeFJEO0VBcEdBLG1CQUFrQixFQXNHakI7O0FBRUQ7RUFuR0EsbUJBQWtCO0VBQ2xCLFVBQVM7RUFDVCxVQUFTO0VBQ1QsaUJBQWdCO0VBQ2hCLGlCQUFnQixFQWlHZjs7QUFFRDtFQTlGQSxZQUFXLEVBZ0dWO0VBN0ZDO0lBQ0UsT0FBTTtJQUNOLFFBQU8sRUFDUjs7QUE0Rkg7RUF2RkEsVUFBUyxFQXlGUjs7QUFFRDtFQXRGQSxZQUFXO0VBQ1gsZ0JBQWU7RUFDZixVQUFTLEVBc0ZSOztBQUVEO0VBbkZBLG1CQUFrQjtFQUNsQixVQUFTO0VBQ1QsWUFBVztFQUNYLGlCQUFnQjtFQUNoQixjakR3YzBCO0VpRHRjMUIsd0NqREdhO0VpREZiLGVqREdhLEVpRDJFWjs7QUFFRDtFekN5REEsbUJBQWtCO0VBQ2xCLFNBQVE7RUFDUixvQ0FBMkI7TUFBM0IsZ0NBQTJCO1VBQTNCLDRCQUEyQjtFeUNwSTNCLFlqRGljdUI7RWlEaGN2QixjakQrYjBCO0VpRDliMUIsZWpETmEsRWlEK0VaO0VsRHU0SEQ7SVNqM0hFLFdBQVUsRUFDWDtFeUM5RkQ7SUFHRSx3Q2pEWlcsRWlEYVo7O0FBcUVEO0VBaEVBLFFBQWtCLEVBbUVqQjs7QUFFRDtFQWhFQSxXQUFxQjtFQUNyQixTQUFtQixFQWtFbEI7O0FBRUQ7RUE5REEsbUJBQWtCO0VBQ2xCLG1CakRpYThCO0VpRGhhOUIsc0JqRGlhaUM7RWlEaGFqQyxtQkFBa0IsRUE2RGpCO0VsRDA0SEQ7SVNsNEhFLFdBQVUsRUFDWDtFeUNwRUQ7SUFDRSxjakQwWjBCO0lpRHpaMUIsZWpEeVowQjtJaUR4WjFCLGVqRHlad0I7SWlEdlp4QixtQkFBa0I7SUFDbEIsMEJqRDVDaUIsRWlEcURsQjtJQVBDO01BQ0UsMEJqRDlDYSxFaUQrQ2Q7SUFFRDtNQUNFLDBCakRsRGEsRWlEbURkOztBQ1lIO0VBbkZBLGVBQWdDO0VBQ2hDLHNCbEQrQm9CLEVrRGlFbkI7RTFDTkQ7SUFFRSxlQUFjO0lBQ2QsYUFBWTtJQUdWLHNCQUFhO1FBQWIsMkJBQWE7WUFBYixjQUFhO0lBQ2IsaUJBQVE7UUFBUixrQkFBUTtZQUFSLFNBQVEsRUFFWDtFQUVEO0lBQ0UsWUFBVyxFQUNaO0UwQ3BHRDtJQUNFLHdCdENLcUQ7SXNDSnJELGlCbEQrQmE7SWtEOUJiLG9CdENHcUQ7SXNDR25ELGNBQWEsRUFpQmhCO0lBZkc7TUFFRSxzQkFBcUIsRUFDdEI7SWhEbUVEO01nRGpGSjtRQXVCTSxzQkFBcUIsRUFHMUIsRUFBQTtFQUdEOzs7SUFFRSxlQUFjO0lBQ2QsNEJ0QzFCcUQ7SXNDMkJyRCxpQmxEQWE7SWtEQ2IsZWxEaEJXLEVrRHFCWjtJQUhDOzs7TUFDRSxvQmxEdkJjLEVrRHdCZjtFQXlDSDtJQS9CQSw0QnRDMUN1RDtJc0MyQ3ZELG9CbEQxQ2dCO0lrRDJDaEIsZWxEL0JhO0lrRGdDYixnQkFBZSxFQWlDWjtFQUxIO0lBcEJBLDRCdENyRHVEO0lzQ3NEdkQsZWxEN0NtQjtJa0Q4Q25CLG9CQUFtQixFQTJCaEI7SUF6Qkg7TUFDRSx3QkFBdUIsRUFDeEI7RUFjRDtJQU5BLDRCdENuRXVEO0lzQ29FdkQsaUJBQWdCO0lBQ2hCLGVsRHpEYSxFa0QwRVY7O0FBSUQ7OztFQUVFLHNCQUFxQjtFQUNyQixxQkFBc0M7RUFDdEMsaUJBQWdCLEVBQ2pCOztBQUVEOzs7RUFFRSxzQkFBcUI7RUFDckIsb0JBQXFDO0VBQ3JDLGlCQUFnQixFQUNqQjs7QUNwSkg7RUFwQ0EsYW5EMmpCb0I7RW1EMWpCcEIsc0JuRHVHb0I7RW1EdEdwQixpQm5EMkdlO0VtRDFHZiwwQm5Ed0ZtQixFbUQ3Q2xCO0VBVkQ7SUFNUSwwQm5EeUNRLEVtRHhDVDtFQVBQO0lBTVEsMEJuRDBDVSxFbUR6Q1g7RUFQUDtJQU1RLDBCbkQyQ1EsRW1EMUNUO0VBUFA7SUFNUSwwQm5ENENRLEVtRDNDVDtFQVBQO0lBTVEsMEJuRDZDTSxFbUQ1Q1A7O0FBTVA7RUF6Q0EsbUJBQWtCO0VBQ2xCLGVBQWM7RUFDZCxVQUFTO0VBQ1QsYUFBWTtFQUNaLDBCbkR1RWdCLEVtRGhDZjs7QUFHRDtFM0MrTEEsbUJBQWtCO0VBQ2xCLFNBQVE7RUFDUixVQUFTO0VBQ1QseUNBQWdDO01BQWhDLHFDQUFnQztVQUFoQyxpQ0FBZ0M7RTJDbE9oQyxtQkFBa0I7RUFDbEIsVUFBUztFQUNULG1CQUFrQjtFQUNsQixrQkFBaUI7RUFDakIsZW5EcUVhO0VtRHBFYixvQkFBbUIsRUE2QmxCOztBQzJDRDtFQXBGQSxtQkFBa0I7RUFDbEIsZXBENHVCb0I7RW9EM3VCcEIsb0JBQW1CO0VBQ25CLHVCQUFzQjtFQUV0QiwwQnBEc0VrQjtFb0RyRWxCLGdCQUFlO0VBQ2YsMEJBQWlCO0tBQWpCLHVCQUFpQjtNQUFqQixzQkFBaUI7VUFBakIsa0JBQWlCO0VBQ2pCLHVCQUFrQjtNQUFsQixtQkFBa0IsRUE4RWpCOztBQUdEO0VBNUVBLG1CQUFrQjtFQUNsQixPQUFNO0VBQ04sUUFBTztFQUVQLHNCQUFxQjtFQUNyQixnQkFBZTtFQUNmLGVwRDB0Qm9CO0VvRHh0QnBCLDBCcER1RG1CO0VvRHREbkIsaUNwRHN0QnNDLEVvRGpwQnJDO0VBbkVEO0lBQ0UsMEJBQXlCLEVBQzFCOztBQW9FRDtFNUN3SEEsbUJBQWtCO0VBQ2xCLFNBQVE7RUFDUixvQ0FBMkI7TUFBM0IsZ0NBQTJCO1VBQTNCLDRCQUEyQjtFNEN2TDNCLFFBQU87RUFDUCxXQUFVO0VBRVYsc0JBQXFCO0VBQ3JCLGNwRDRzQjBCO0VvRDNzQjFCLGVwRDBzQjJCO0VvRHhzQjNCLGlCcERzRGU7RW9EckRmLDBCcEQyQmdCO0VvRDFCaEIsaUNwRGtzQnNDO0VvRGpzQnRDLCtCQUEwQjtNQUExQiwyQkFBMEIsRUFxRHpCO0VyRHVtSUQ7SVNsaElFLFdBQVUsRUFDWDtFNEN6SUQ7SUFDRSx3QkFBMEUsRUFDM0U7RUFFRDtJQUNFLDBCQUF5QixFQUMxQjs7QUFnREQ7O0VBNUNBLGNwRDRyQjRCO0VvRDNyQjVCLG9CQUFtQixFQThDbEI7O0FBR0Q7RUE3Q0Esc0JBQXFCO0VBQ3JCLGNwRDhxQjRCO0VvRDdxQjVCLGdCQUFlO0VBQ2Ysa0JBQWlCO0VBQ2pCLGdDQUF1QjtNQUF2Qiw0QkFBdUI7VUFBdkIsd0JBQXVCLEVBMkN0QjtFQXpDRDtJQUNFLE9BQU07SUFDTixjcER1cUIwQjtJb0R0cUIxQixpQkFBZ0IsRUFDakI7RUFFRDtJQUNFLG1CQUFrQjtJQUNsQixPQUFNO0lBQ04sVUFBUztJQUNULGNwRG9xQnlCO0lvRG5xQnpCLGVwRG9xQndCO0lvRG5xQnhCLG9DQUEyQjtRQUEzQixnQ0FBMkI7WUFBM0IsNEJBQTJCLEVBQzVCOztBQy9GRDtFQUNFLG1CQUFrQixFQUNuQjs7QUFFRDtFQUNFLG1CQUFrQjtFQUNsQixXQUFVO0VBQ1Ysd0NBQStCO1VBQS9CLGdDQUErQixFQUNoQzs7QUFFRDtFQUNFLGdCQUFlO0VBQ2YsV0FBVTtFQUNWLFlBQVcsRUFTWjtFQVpEO0lBTUksT0FBTSxFQUNQO0VBUEg7SUFVSSxVQUFTLEVBQ1Y7O0FBR0g7RUFDRSxtQkFBa0I7RUFDbEIsWUFBVztFQUNYLFdBQVUsRUFLWDtFQVJEO0lBTUksVUFBUyxFQUNWOztBbEQ0Rkg7RUFDRSxpQkFBZ0IsRUFDakI7O0FBR0Q7O0VBRUUsaUJBQWdCO0VBQ2hCLGlCQUFnQjtFQUNoQixnQkFBZTtFQUNmLDBCQUFpQjtLQUFqQix1QkFBaUI7TUFBakIsc0JBQWlCO1VBQWpCLGtCQUFpQixFQUNsQjs7QUFHRDtFQXZGQSxnQkFBZTtFQUNmLE9BQU07RUFDTixTQUFRO0VBQ1IsVUFBUztFQUNULFFBQU87RUFDUCxjSDhyQmtCO0VHNXJCbEIsY0FBYTtFQUNiLHlDSHFDYTtFR3BDYixtQkFBa0IsRUFnRmpCOztBQUdEO0VBN0VBLGNIb3JCa0I7RUdsckJsQixvQ0FBMkI7VUFBM0IsNEJBQTJCO0VBRTNCLGNBQWE7RUFDYixjSG9DbUI7RUdsQ25CLDBCSG9CbUI7RUduQm5CLGlCSHFDZTtFR3BDZiwwQkhzQmE7RUdpRFgsbUJBQWtCO0VBQ2xCLFdBQVU7RUFDVixtQkFBa0I7RUFDbEIsa0JBQWlCO0VBQ2pCLGlCQUFnQixFQXdCakI7RUprb0lEO0lTMW1JRSxXQUFVLEVBQ1g7RU54Q0c7SUNoQko7TUFqRUUsY0FBYSxFQWdHZCxFQUFBO0VBNUZEO0lBQ0UsYUFBWSxFQUNiO0VBR0Q7SUFDRSxpQkFBZ0IsRUFDakI7RURzRUc7SUNoQko7TUExQ0UsYUg0b0JnQjtNRzNvQmhCLGlCU2xCcUQsRVQwRnRELEVBQUE7RUEvQkQ7SUFXSSxXQUFVLEVBQ1g7RURJQztJQ2hCSjtNQTFDRSxXQXlEeUM7TUF4RHpDLGlCU2xCcUQsRVQwRVAsRUFBQTtFREM1QztJQ2hCSjtNQTFDRSxXQTBEeUM7TUF6RHpDLGlCU2xCcUQsRVQyRVAsRUFBQTtFREE1QztJQ2hCSjtNQTFDRSxXQTJEeUM7TUExRHpDLGlCU2xCcUQsRVQ0RVAsRUFBQTtFQWpCaEQ7SUFuQ0EsT0FBTTtJQUNOLFFBQU87SUFFUCxZQUFXO0lBQ1gsZ0JBQWU7SUFDZixhQUFZO0lBQ1osY0FBYTtJQUNiLGtCQUFpQjtJQUNqQixlQUFjO0lBRWQsVUFBUztJQUNULGlCQUFnQixFQThDYjtFRERDO0lDckJKO01BbkNBLE9BQU07TUFDTixRQUFPO01BRVAsWUFBVztNQUNYLGdCQUFlO01BQ2YsYUFBWTtNQUNaLGNBQWE7TUFDYixrQkFBaUI7TUFDakIsZUFBYztNQUVkLFVBQVM7TUFDVCxpQkFBZ0IsRUF1RGYsRUFBQTtFQS9CRDtJQTZCSSxnQkFBZSxFQUNoQjs7QW1EeUJIO0VBQ0UsYXREcWtCZ0I7RXNEbHRCbEIsbUJBQWtCO0VBQ2xCLHNCdEQrQ29CO0VzRDlDcEIsV0FBVTtFQUdWLG9CMUNxQnVEO0UwQ3BCdkQsa0JBQWlCO0VBQ2pCLGV0RGdDYTtFc0Q5QmIsMEJBQWlCO0tBQWpCLHVCQUFpQjtNQUFqQixzQkFBaUI7VUFBakIsa0JBQWlCLEVBc0loQjs7QUFHRDtFQXBJQSxtQkFBa0I7RUFDbEIsaUJBQWdCO0VBQ2hCLFdBQVUsRUFvSVQ7O0FBR0Q7RUE3SEEsbUJBQWtCO0VBQ2xCLGVBQWM7RUFDZCxZQVBpQztFQVFqQyxhdERxckJrQjtFc0RuckJsQixpQnREc0JlO0VzRHJCZixvQnRER21CO0VzREZuQiwrQnREMHJCMkM7RXNEdnJCM0MscUJBQW9CO0VBQ3BCLGVBQWM7RUFFZCxnQkFBZSxFQWtIZDtFQS9HRDtJQUNFLFVBQVMsRUFDVjtFQUdEO0lBQ0UsbUJBQWtCO0lBQ2xCLGF0RHdxQjBCO0lzRHZxQjFCLGN0RHVxQjBCO0lzRHJxQjFCLGVBQWM7SUFDZCxjQTlCeUQ7SUErQnpELGVBaEMwRDtJQWtDMUQsd0NBQStCO1lBQS9CLGdDQUErQjtJQUMvQixpQnRESmE7SXNES2Isb0J0RG5CVztJc0RvQlgsK0J0RGdxQnlDO0lzRC9wQnpDLFlBQVcsRUFDWjtFQUdEO0lBQ0Usb0J0RHRDYyxFc0QyQ2Y7SUFORDtNQUlJLGNBNUN3RSxFQTZDekU7RXZEa3hJSDtJUzNzSUUsV0FBVSxFQUNYOztBOENlRDtFQTdFQSxtQkFBa0I7RUFDbEIsU0FBUTtFQUNSLG9DQUEyQjtNQUEzQixnQ0FBMkI7VUFBM0IsNEJBQTJCLEVBNkUxQjs7QUFHRDtFQTNFQSxTQUFtQjtFQUNuQixjQUFhLEVBNkVaO0VBM0VEO0lBQ0UsZUFBYyxFQUNmOztBQTRFRDtFQXZFQSxXQUFxQixFQTBFcEI7RUF4RUQ7SUFDRSxjQUFhLEVBQ2Q7O0FBeUVEO0VBdkRBLGV0RDZsQnlCLEVzRHBpQnhCO0VBdkREO0lBQ0UsWUFSK0I7SUFTL0IsZXREeWxCdUI7SXNEeGxCdkIsb0IxQ2pHcUQsRTBDa0d0RDtFQUVEO0lBQ0UsYXREMGxCMEI7SXNEemxCMUIsY3REeWxCMEI7SXNEeGxCMUIsWUFma0Q7SUFnQmxELGFBZm1ELEVBZ0JwRDtFQUVEO0lBQ0UsY0FsQm1FLEVBbUJwRTs7QUEwQ0Q7RUEzREEsZ0J0RDhsQjJCLEVzRGppQjFCO0VBM0REO0lBQ0UsY0FSK0I7SUFTL0IsZ0J0RDBsQnlCO0lzRHpsQnpCLG1CMUNqR3FELEUwQ2tHdEQ7RUFFRDtJQUNFLGF0RDBsQjBCO0lzRHpsQjFCLGN0RHlsQjBCO0lzRHhsQjFCLGVBZmtEO0lBZ0JsRCxnQkFmbUQsRUFnQnBEO0VBRUQ7SUFDRSxXQWxCbUUsRUFtQnBFOztBQThDRDtFQS9EQSxldEQrbEIwQixFc0Q5aEJ6QjtFQS9ERDtJQUNFLFlBUitCO0lBUy9CLGV0RDJsQndCO0lzRDFsQnhCLGdCMUNqR3FELEUwQ2tHdEQ7RUFFRDtJQUNFLGF0RDBsQjBCO0lzRHpsQjFCLGN0RHlsQjBCO0lzRHhsQjFCLFlBZmtEO0lBZ0JsRCxhQWZtRCxFQWdCcEQ7RUFFRDtJQUNFLGNBbEJtRSxFQW1CcEU7O0FDMkdEO0VBOUdBLDBCQUF5QjtFQUN6QixZQUFXO0VBQ1gsc0J2RHRGb0I7RXVEdUZwQixpQnZEbEZlLEV1RCtMZDtFQXBNRDs7O0lBR0UsMEJDbkI2QztJRG9CN0MsMEJ2RGJXLEV1RGNaO0VBR0Q7SUFDRSxrQzNDL0JxRDtJMkNnQ3JELGtCdkROcUIsRXVET3RCO0VsQzdEQztJa0NpRUEsb0JDL0I2QztJRGdDN0MsZXZEMUJXLEV1RDJCWjtFQUdEO0lBQ0Usb0JDckM2QztJRHNDN0MsZXZEaENXLEV1RGlDWjtFQUdEOztJQUlJLHdCQUF1QixFQUN4QjtFQUxIOzs7O0lBVUksa0MzQzFEbUQ7STJDMkRuRCxrQnZEakNtQjtJdURrQ25CLGlCQUFZLEVBQ2I7RUFJSDs7SUFHSSxrQzNDcEVtRCxFMkNxRXBEO0VBdkVDO0lBQ0UsaUJBQWdCO0lBQ2hCLDBCQ015QyxFREwxQztFQThFRDtJQUVFLDBCdkRwRU8sRXVEcUVSO0lBcEVMO01BQ0UsaUJBQWdCO01BQ2hCLGlDQ1Y2QztNRFc3QywwQnZESlcsRXVES1o7O0FyRDhERztFcURtSEY7SUFDRSxjQUFhLEVBQ2Q7RUFHSDtJQUNFLGNBQWEsRUFDZDtFQUVEOzs7SUFHRSxlQUFjLEVBQ2Y7RUFFRDtJQUNFLGNBQWEsRUFDZCxFQUFBOztBQWNEO0VBdkdBLGVBQWM7RUFDZCxZQUFXO0VBQ1gsaUJBQWdCLEVBdUdmOztBQWhHQztFQUNFLDBCdkQ0a0JtRSxFdUQza0JwRTs7QUFLRDtFQUNFLDBCdkR1a0JtRSxFdUR0a0JwRTs7QUFLRDtFQUNFLDBCdkR3akJ5RCxFdUR2akIxRDs7QUFNQztFQUNFLDBCdkRpakJtRixFdURoakJwRjs7QUE4RUw7RUFDRSxpQkFBZ0IsRUFLakI7RUFORDtJQUlJLFlBQVcsRUFDWjs7QUVyTEg7RUFoRkEsVXpEa3ZCWTtFeURqdkJaLDBCekQ2QmtCO0V5RDVCbEIsb0J6RGlDYTtFeURoQ2Isc0JBQXFCLEVBK0VwQjtFakRxQkQ7SUFFRSxlQUFjO0lBQ2QsYUFBWTtJQUdWLHNCQUFhO1FBQWIsMkJBQWE7WUFBYixjQUFhO0lBQ2IsaUJBQVE7UUFBUixrQkFBUTtZQUFSLFNBQVEsRUFFWDtFQUVEO0lBQ0UsWUFBVyxFQUNaOztBaUQ1R0Q7RUFDRSxlQUFjO0VBQ2QsWUFBVztFQUNYLFlBQVcsRUFDWjs7QUE4RUQ7O0VBRUksV0FBVSxFQUtYO0VBUEg7O0lBS00sd0JBQXVCLEVBQ3hCOztBQUtMO0VBQ0Usb0J6RC9FYyxFeUR5RmY7RUFYRDs7SUFJSSxlekR0RVMsRXlENEVWO0lBVkg7OztNQVFNLG9CRGpGeUMsRUNrRjFDOztBQUlMO0VBMUZBLFlBQU8sRUE0Rk47RUExRkQ7O0lBQ0UsZUFBYztJQUNkLHdCekQ2dEI2QjtJeUQ1dEI3QixtQjdDUHFEO0k2Q1FyRCxlQUFjO0lBQ2QsZXpEUmMsRXlEb0JmO0lBVkM7O01BQ0Usb0J6RENTO015REFULGFBQTRDLEVBQzdDO0lBRUQ7OztNQUVFLG9CekRWYztNeURXZCxlekRsQlksRXlEbUJiOztBQTRFSDtFQWxFQSwwQnpEdEJrQjtFeUR1QmxCLGNBQWE7RUFDYixvQnpEbkJhO0V5RG9CYixlekRyQmE7RXlEc0JiLDBCQUF5QixFQWdFeEI7O0FBRUQ7RUEzREEsMEJ6RGpDa0I7RXlEa0NsQixlQUFnQyxFQTREL0I7O0FBRUQ7RUF2REEsY0FBYTtFQUNiLGN6RHNyQndCLEV5RDluQnZCO0VBdEREO0lBQ0UsZUFBYyxFQUNmOztBQ25GRDtFQXpCQSxzQkFBcUI7RUFDckIsZ0JBQWU7RUFDZixzQjFEMEVvQjtFMER4RXBCLDBCMUQrRGE7RTBEOURiLGlCMUQ0RWU7RTBEM0VmLDRDMUQ0RGE7RTBEMURiLGVBQWMsRUFtQmI7O0FBRUQ7O0VBakJBLHNDMUQyeEI4QyxFMER4d0I3QztFQWpCRDs7O0lBRUUsMkMxRHVDYyxFMER0Q2Y7RUFFRDtJQUNFLGlCQUFnQixFQUNqQjs7QUNsQkQ7RUFDRSxnQjNEMnlCcUI7RTJEMXlCckIsb0IzRG1EZ0I7RTJEbERoQixlM0RpRGM7RTJEOUNaLHNCQUFhO0VBQWIscUJBQWE7RUFBYixjQUFhO0VBQ2Isb0NBQTJCO01BQTNCLHFCQUEyQjtVQUEzQiw0QkFBMkI7RUFDM0IsNEJBQW1CO01BQW5CLHVCQUFtQjtVQUFuQixvQkFBbUIsRUFVdEI7RUFsQkQ7SUFlSSxxQjNEaXlCeUI7STJEaHlCekIsc0IzRGd5QnlCLEUyRC94QjFCOztBQUlEOztFQUVFLHNCQUFhO01BQWIsa0JBQWE7VUFBYixjQUFhLEVBQ2Q7O0FBRUQ7RUFDRSxrQkFBaUIsRUFDbEI7O0FBYUg7RUFDRSxzQkFBcUI7RUFDckIsdUJBQXNCO0VBQ3RCLGtCM0Rpd0I0QixFMkRod0I3Qjs7QUNzRUQ7RUFuR0EsbUJBQWtCO0VBQ2xCLHNCQUFxQjtFQUVyQixrQzVEMENpQjtFNER6Q2pCLGtCNUR5RHVCO0U0RHhEdkIsYTVEZ3lCbUIsRTREaHNCbEI7O0FBRUQ7RUE5RkEsbUJBQWtCO0VBQ2xCLDRCQUF3QztFQUN4QyxjQUFhO0VBRWIsaUI1RDh4QnVCO0U0RDd4QnZCLGlCNUQ0eEJ1QjtFNEQxeEJ2QixpQjVEOENlO0U0RDdDZiwwQjVEOEJhO0U0RDdCYixlNURpSG1CO0U0RGhIbkIsZTVENkJhLEU0RHlEWjtFQXBGRDtJQUNFLG1CQUFrQixFQUNuQjtFQUdDO0lwRHJDRixlQUFjO0lBQ2QsU0FBUTtJQUNSLFVBQVM7SUFFVCxzQlJvekJ5QjtJUWx6QnpCLFlBQVc7SUFRVCxvQkFBbUI7SUFDbkIsMkJBQTBCO0lBQzFCLDhDUjBDVztJNERuQlQsYUFBWSxFQUNiO0VBRUQ7SUFDRSxVQUFTO0lBQ1Qsb0NBQTJCO1FBQTNCLGdDQUEyQjtZQUEzQiw0QkFBMkIsRUFDNUI7RUFJRDtJcERqREYsZUFBYztJQUNkLFNBQVE7SUFDUixVQUFTO0lBRVQsc0JSb3pCeUI7SVFsekJ6QixZQUFXO0lBR1QsdUJBQXNCO0lBQ3RCLHdCQUF1QjtJQUN2Qiw4Q0FBcUQ7SW9Ed0NuRCxVQUFTO0lBQ1QsYUFBWSxFQUNiO0VBRUQ7SUFDRSxVQUFTO0lBQ1Qsb0NBQTJCO1FBQTNCLGdDQUEyQjtZQUEzQiw0QkFBMkIsRUFDNUI7RUFJRDtJcEQ5REYsZUFBYztJQUNkLFNBQVE7SUFDUixVQUFTO0lBRVQsc0JSb3pCeUI7SVFsekJ6QixZQUFXO0lBYVQsc0JBQXFCO0lBQ3JCLHlCQUF3QjtJQUN4QiwwRFJxQ1c7STRETVQsV0FBVSxFQUNYO0VBRUQ7SUFDRSxhQUFZO0lBQ1osU0FBUTtJQUNSLG9DQUEyQjtRQUEzQixnQ0FBMkI7WUFBM0IsNEJBQTJCLEVBQzVCO0VBSUQ7SXBEM0VGLGVBQWM7SUFDZCxTQUFRO0lBQ1IsVUFBUztJQUVULHNCUm96QnlCO0lRbHpCekIsWUFBVztJQWtCVCxxQkFBb0I7SUFDcEIsMEJBQXlCO0lBQ3pCLDBEQUFpRTtJb0RtRC9ELFlBQVc7SUFDWCxXQUFVLEVBQ1g7RUFFRDtJQUNFLGFBQVk7SUFDWixTQUFRO0lBQ1Isb0NBQTJCO1FBQTNCLGdDQUEyQjtZQUEzQiw0QkFBMkIsRUFDNUI7RUFHSDtJQUNFLGFBQVk7SUFDWixTQUFRLEVBQ1Q7RUFFRDtJQUNFLFlBQVc7SUFDWCxVQUFTLEVBQ1Y7RUFFRDtJQUNFLFVBQVM7SUFDVCxZQUFXLEVBQ1o7RUFFRDtJQUNFLFdBQVU7SUFDVixXQUFVLEVBQ1g7O0FDM0JEO0VBdEZFLHNCQUFhO0VBQWIscUJBQWE7RUFBYixjQUFhO0VBQ2IsMEJBQWlCO01BQWpCLHNCQUFpQjtVQUFqQixrQkFBaUI7RUFDakIsdUNBQThCO01BQTlCLHVCQUE4QjtVQUE5QiwrQkFBOEI7RUFDOUIsNEJBQW1CO01BQW5CLHVCQUFtQjtVQUFuQixvQkFBbUI7RUFNckIsVzdENnpCZ0I7RTZEM3hCZCx3QkFBZTtNQUFmLG9CQUFlO1VBQWYsZ0JBQWUsRUErRGhCO0VBL0ZEOztJQUVFLDBCN0QwQ2dCLEU2RHpDakI7RUFVRDtJQUNFLGlCN0RpekJzQjtJNkRoekJ0QixtQkFBb0MsRUFDckM7RUFHRDtJQUNFLFlBQVc7SUFDWCxnQkFBaUMsRUFDbEM7RUFFRDtJQUNFLFlBQVcsRUFDWjtFQVNDOztJQUVFLHVCQUFjO1FBQWQsbUJBQWM7WUFBZCxlQUFjO0lBQ2QsZ0JBQWUsRUFDaEI7RTNEOEVDO0kyRDFDSjtNQXRCRSwwQkFBaUI7VUFBakIsc0JBQWlCO2NBQWpCLGtCQUFpQixFQTBDbEI7TUF4Q0M7UUFDRSx1QkFBYztZQUFkLG1CQUFjO2dCQUFkLGVBQWM7UUFDZCxtQkFBa0IsRUFDbkI7TUFFRDtRQUNFLHVCQUFjO1lBQWQsbUJBQWM7Z0JBQWQsZUFBYztRQUNkLGtCQUFpQixFQUNsQixFQUFBO0UzRDJEQztJMkQvQ0o7TUEzQ0Usd0JBQWU7VUFBZixvQkFBZTtjQUFmLGdCQUFlLEVBNERWO01BekRMOztRQUVFLHVCQUFjO1lBQWQsbUJBQWM7Z0JBQWQsZUFBYztRQUNkLGdCQUFlLEVBQ2hCLEVBQUE7RTNEbUZDO0kyRC9DSjtNQTNDRSx3QkFBZTtVQUFmLG9CQUFlO2NBQWYsZ0JBQWUsRUE0RFY7TUF6REw7O1FBRUUsdUJBQWM7WUFBZCxtQkFBYztnQkFBZCxlQUFjO1FBQ2QsZ0JBQWUsRUFDaEIsRUFBQTs7QUE0REQ7RUFDRSx1QkFBYztNQUFkLG1CQUFjO1VBQWQsZUFBYztFQUNkLDZCN0R5dEJxQyxFNkR4dEJ0Qzs7QUFFRDs7RUFFRSx1QkFBYztNQUFkLG1CQUFjO1VBQWQsZUFBYyxFQUNmOztBQzVGSDtFQUNFLHlCQUF3QixFQUN6Qjs7QUFFRDtFQUNFLG1CQUFrQixFQUNuQjs7QTVEcUdHO0U0RHZGRjtJQTFCQSx5QkFBd0IsRUE0QnZCLEVBQUE7O0FBL0NEO0VBaURBO0lBaERFLHlCQUF3QixFQWtEekIsRUFBQTs7QTVENEVDO0U0RDNGQTtJQXpCRix5QkFBd0IsRUEyQnJCLEVBQUE7O0E1RDhGRDtFNEQ1RkE7SUFqRUYseUJBQXdCLEVBbUVyQixFQUFBOztBNUQwRkQ7RTREdkZGO0lBMUJBLHlCQUF3QixFQTRCdkIsRUFBQTs7QUEvQ0Q7RUFpREE7SUFoREUseUJBQXdCLEVBa0R6QixFQUFBOztBNUQ0RUM7RTREM0ZBO0lBekJGLHlCQUF3QixFQTJCckIsRUFBQTs7QTVEOEZEO0U0RDVGQTtJQWpFRix5QkFBd0IsRUFtRXJCLEVBQUE7O0E1RDBGRDtFNER2RkY7SUExQkEseUJBQXdCLEVBNEJ2QixFQUFBOztBQS9DRDtFQWlEQTtJQWhERSx5QkFBd0IsRUFrRHpCLEVBQUE7O0FBS0g7O0V0RHNIQSw4QkFBNkI7RUFDN0IsV0FBVTtFQUNWLFlBQVc7RUFDWCxXQUFVO0VBQ1YsaUJBQWdCO0VBQ2hCLHVCQUFtQjtFQUNuQixvQkFBbUI7RUFDbkIsOEJBQXFCO1VBQXJCLHNCQUFxQjtFQUNyQixVQUFTLEVzRDNIUjs7QUFHRDtFdEQ2SEEsNEJBQTJCO0VBQzNCLFlBQVc7RUFDWCxhQUFZO0VBQ1osa0JBQWlCO0VBQ2pCLFdBQVU7RUFDVixvQkFBbUI7RUFDbkIsd0JBQWU7VUFBZixnQkFBZSxFc0QvSFo7O0FBSUg7O0VBRUUsMEJBQXlCLEVBUzFCO0U1RG1ERztJNEQ5REo7O01BS0ksMEJBQXlCLEVBTTVCLEVBQUE7RTVEbURHO0k0RDlESjs7TUFTSSx5QkFBd0IsRUFFM0IsRUFBQTs7QUFFRDs7RUFFRSx5QkFBd0IsRUFTekI7RTVEc0NHO0k0RGpESjs7TUFLSSx5QkFBd0IsRUFNM0IsRUFBQTtFNURzQ0c7STREakRKOztNQVNJLDBCQUF5QixFQUU1QixFQUFBOztBQ3hEQztFQ3hCRixrQ0FoRGlCO01BZ0RqQixtQkFoRGlCO1VBZ0RqQiwwQkFoRGlCLEVEMEVkOztBQUZEO0VDeEJGLGdDQS9DZ0I7TUErQ2hCLHNCQS9DZ0I7VUErQ2hCLHdCQS9DZ0IsRUR5RWI7O0FBRkQ7RUN4QkYsdUNBOUN3QjtNQThDeEIsdUJBOUN3QjtVQThDeEIsK0JBOUN3QixFRHdFckI7O0FBRkQ7RUN4QkYsc0NBN0NzQjtNQTZDdEIsMEJBN0NzQjtVQTZDdEIsOEJBN0NzQixFRHVFbkI7O0FBS0Q7O0VDL0JGLGtDQWhEaUI7TUFnRGpCLG1CQWhEaUI7VUFnRGpCLDBCQWhEaUIsRURrRlo7O0FBSEg7O0VDL0JGLGdDQS9DZ0I7TUErQ2hCLHNCQS9DZ0I7VUErQ2hCLHdCQS9DZ0IsRURpRlg7O0FBTUg7RUN2Q0YsZ0NBMUNpQjtNQTBDakIsc0JBMUNpQjtVQTBDakIsd0JBMUNpQixFRG1GZDs7QUFFRDtFQzNCRiwrQkExRGlCO01BMERqQiwyQkExRGlCO1VBMERqQix1QkExRGlCLEVEdUZkOztBQU5EO0VDdkNGLDhCQXpDa0I7TUF5Q2xCLG9CQXpDa0I7VUF5Q2xCLHNCQXpDa0IsRURrRmY7O0FBRUQ7RUMzQkYsNkJBekRrQjtNQXlEbEIseUJBekRrQjtVQXlEbEIscUJBekRrQixFRHNGZjs7QUFORDtFQ3ZDRiw0QkF4Q2dCO01Bd0NoQix1QkF4Q2dCO1VBd0NoQixvQkF4Q2dCLEVEaUZiOztBQUVEO0VDM0JGLDJCQXhEZ0I7TUF3RGhCLDRCQXhEZ0I7Y0F3RGhCLDJCQXhEZ0I7VUF3RGhCLG1CQXhEZ0IsRURxRmI7O0FBTkQ7RUN2Q0YsNkJBdkNrQjtNQXVDbEIsd0JBdkNrQjtVQXVDbEIscUJBdkNrQixFRGdGZjs7QUFFRDtFQzNCRiw0QkF2RGtCO01BdURsQiw2QkF2RGtCO2NBdURsQiw0QkF2RGtCO1VBdURsQixvQkF2RGtCLEVEb0ZmOztBQUlIO0VDbERBLGdDQS9DZ0I7TUErQ2hCLHNCQS9DZ0I7VUErQ2hCLHdCQS9DZ0I7RUFnRGhCLDRCQXhDZ0I7TUF3Q2hCLHVCQXhDZ0I7VUF3Q2hCLG9CQXhDZ0I7RUQyRmQsOEJBQXFCO01BQXJCLDJCQUFxQjtVQUFyQixzQkFBcUIsRUFDdEI7O0FBS0c7RUNuQ0osaUJEa0NnQjtNQ2xDaEIsa0JEa0NnQjtVQ2xDaEIsU0RrQ2dCLEVBR1g7O0FBRkQ7RUNuQ0osaUJEa0NnQjtNQ2xDaEIsa0JEa0NnQjtVQ2xDaEIsU0RrQ2dCLEVBR1g7O0FBRkQ7RUNuQ0osaUJEa0NnQjtNQ2xDaEIsa0JEa0NnQjtVQ2xDaEIsU0RrQ2dCLEVBR1g7O0FBRkQ7RUNuQ0osaUJEa0NnQjtNQ2xDaEIsa0JEa0NnQjtVQ2xDaEIsU0RrQ2dCLEVBR1g7O0FBRkQ7RUNuQ0osaUJEa0NnQjtNQ2xDaEIsa0JEa0NnQjtVQ2xDaEIsU0RrQ2dCLEVBR1g7O0FBRkQ7RUNuQ0osaUJEa0NnQjtNQ2xDaEIsa0JEa0NnQjtVQ2xDaEIsU0RrQ2dCLEVBR1g7O0E3RHFERDtFNkR2REE7SUNuQ0osaUJEa0NnQjtRQ2xDaEIsa0JEa0NnQjtZQ2xDaEIsU0RrQ2dCLEVBR1g7RUFGRDtJQ25DSixpQkRrQ2dCO1FDbENoQixrQkRrQ2dCO1lDbENoQixTRGtDZ0IsRUFHWDtFQUZEO0lDbkNKLGlCRGtDZ0I7UUNsQ2hCLGtCRGtDZ0I7WUNsQ2hCLFNEa0NnQixFQUdY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RDtFR29CQSxvREdWNEM7VUhVNUMsNENHVjRDO0VDSjFDLFdBQTJCLEVQSjVCOztBQWREO0VDbEJGLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsdURHcENxQztVSG9DckMsK0NHcENxQztFSG9DckMsZ0NGM0JxRDtNRTJCckQsNEJGM0JxRDtVRTJCckQsd0JGM0JxRDtFTUVuRCxnREFBdUM7RUFBdkMsd0NBQXVDO0VBQXZDLDJEQUF1QztFQUN2QyxXQUEyQixFUE41Qjs7QUFVRDtFR29CQSxvREdWNEM7VUhVNUMsNENHVjRDO0VDSjFDLFdBQTJCLEVQSjVCOztBQWREO0VDbEJGLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsc0RHbkNpQztVSG1DakMsOENHbkNpQztFSG1DakMsaUNGMUJzRDtNRTBCdEQsNkJGMUJzRDtVRTBCdEQseUJGMUJzRDtFTUNwRCxnREFBdUM7RUFBdkMsd0NBQXVDO0VBQXZDLDJEQUF1QztFQUN2QyxXQUEyQixFUE41Qjs7QUFVRDtFR29CQSxvREdWNEM7VUhVNUMsNENHVjRDO0VDSjFDLFdBQTJCLEVQSjVCOztBQWREO0VDbEJGLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsc0RHbEMrQjtVSGtDL0IsOENHbEMrQjtFSGtDL0IsK0JGekJvRDtNRXlCcEQsMkJGekJvRDtVRXlCcEQsdUJGekJvRDtFTUFsRCxnREFBdUM7RUFBdkMsd0NBQXVDO0VBQXZDLDJEQUF1QztFQUN2QyxXQUEyQixFUE41Qjs7QUFVRDtFR29CQSxvREdWNEM7VUhVNUMsNENHVjRDO0VDSjFDLFdBQTJCLEVQSjVCOztBQWREO0VDbEJGLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsdURHckNtQztVSHFDbkMsK0NHckNtQztFSHFDbkMsaUNHQ2U7TUhEZiw2QkdDZTtVSERmLHlCR0NlO0VDMUJiLGdEQUF1QztFQUF2Qyx3Q0FBdUM7RUFBdkMsMkRBQXVDO0VBQ3ZDLFdBQTJCLEVQTjVCOztBQVVEO0VHb0JBLG9ER1Y0QztVSFU1Qyw0Q0dWNEM7RUNKMUMsV0FBMkIsRVBKNUI7O0FBZEQ7RUNsQkYsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYix1REdwQ3FDO1VIb0NyQywrQ0dwQ3FDO0VIb0NyQyxpQ0dDZTtNSERmLDZCR0NlO1VIRGYseUJHQ2U7RUMxQmIsZ0RBQXVDO0VBQXZDLHdDQUF1QztFQUF2QywyREFBdUM7RUFDdkMsV0FBMkIsRVBONUI7O0FBVUQ7RUdvQkEsb0RHVjRDO1VIVTVDLDRDR1Y0QztFQ0oxQyxXQUEyQixFUEo1Qjs7QUFkRDtFQ2xCRiwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLG9ER1I4QztVSFE5Qyw0Q0dSOEM7RUhROUMsOEJGdEJtRDtNRXNCbkQsMEJGdEJtRDtVRXNCbkQsc0JGdEJtRDtFTUhqRCxnREFBdUM7RUFBdkMsd0NBQXVDO0VBQXZDLDJEQUF1QztFQUN2QyxXQUE4QixFUE4vQjs7QUFVRDtFR29CQSx1REdyQ21DO1VIcUNuQywrQ0dyQ21DO0VDdUJqQyxXQUE4QixFUEovQjs7QUFkRDtFQ2xCRiwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLG9ER1I4QztVSFE5Qyw0Q0dSOEM7RUhROUMsZ0NGckJxRDtNRXFCckQsNEJGckJxRDtVRXFCckQsd0JGckJxRDtFTUpuRCxnREFBdUM7RUFBdkMsd0NBQXVDO0VBQXZDLDJEQUF1QztFQUN2QyxXQUE4QixFUE4vQjs7QUFVRDtFR29CQSx1REdwQ3FDO1VIb0NyQywrQ0dwQ3FDO0VDc0JuQyxXQUE4QixFUEovQjs7QUFkRDtFQ2xCRiwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLG9ER1I4QztVSFE5Qyw0Q0dSOEM7RUhROUMsaUNGcEJzRDtNRW9CdEQsNkJGcEJzRDtVRW9CdEQseUJGcEJzRDtFTUxwRCxnREFBdUM7RUFBdkMsd0NBQXVDO0VBQXZDLDJEQUF1QztFQUN2QyxXQUE4QixFUE4vQjs7QUFVRDtFR29CQSxzREduQ2lDO1VIbUNqQyw4Q0duQ2lDO0VDcUIvQixXQUE4QixFUEovQjs7QUFkRDtFQ2xCRiwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLG9ER1I4QztVSFE5Qyw0Q0dSOEM7RUhROUMsK0JGbkJvRDtNRW1CcEQsMkJGbkJvRDtVRW1CcEQsdUJGbkJvRDtFTU5sRCxnREFBdUM7RUFBdkMsd0NBQXVDO0VBQXZDLDJEQUF1QztFQUN2QyxXQUE4QixFUE4vQjs7QUFVRDtFR29CQSxzREdsQytCO1VIa0MvQiw4Q0dsQytCO0VDb0I3QixXQUE4QixFUEovQjs7QUFkRDtFQ2xCRiwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLG9ER1I4QztVSFE5Qyw0Q0dSOEM7RUhROUMsaUNHQ2U7TUhEZiw2QkdDZTtVSERmLHlCR0NlO0VDMUJiLGdEQUF1QztFQUF2Qyx3Q0FBdUM7RUFBdkMsMkRBQXVDO0VBQ3ZDLFdBQThCLEVQTi9COztBQVVEO0VHb0JBLHVER3JDbUM7VUhxQ25DLCtDR3JDbUM7RUN1QmpDLFdBQThCLEVQSi9COztBQWREO0VDbEJGLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsb0RHUjhDO1VIUTlDLDRDR1I4QztFSFE5QyxpQ0dDZTtNSERmLDZCR0NlO1VIRGYseUJHQ2U7RUMxQmIsZ0RBQXVDO0VBQXZDLHdDQUF1QztFQUF2QywyREFBdUM7RUFDdkMsV0FBOEIsRVBOL0I7O0FBVUQ7RUdvQkEsdURHcENxQztVSG9DckMsK0NHcENxQztFQ3NCbkMsV0FBOEIsRVBKL0I7O0FBZEQ7RUNsQkYsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYiw4QkFGeUI7TUFFekIsMEJBRnlCO1VBRXpCLHNCQUZ5QjtFSzNCdkIsZ0RBQXVDO0VBQXZDLHdDQUF1QztFQUF2QywyREFBdUM7RUFDdkMsV0FBMkIsRVJGNUI7O0FBVUQ7RUdvQkEsNEJBRnlCO01BRXpCLHdCQUZ5QjtVQUV6QixvQkFGeUI7RUtoQnZCLFdBQTJCLEVSQTVCOztBQWREO0VDbEJGLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsOEJBRnlCO01BRXpCLDBCQUZ5QjtVQUV6QixzQkFGeUI7RUszQnZCLGdEQUF1QztFQUF2Qyx3Q0FBdUM7RUFBdkMsMkRBQXVDO0VBQ3ZDLFdBQTJCLEVSRjVCOztBQVVEO0VHb0JBLDRCQUZ5QjtNQUV6Qix3QkFG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Qix5QkFBd0IsRUFDekI7O0FDMUNQOztLQUVHO0FBQ0g7RUFFSSwwQkFBeUI7RUFDekIsMkRBQTBELEVBZ0IzRDtFQW5CSDtJQU9NLHdCQUF1QjtJQUN2Qix1QkFBc0I7SUFDdEIsbUNBQWtDLEVBQ25DO0VBVkw7SUFhTSxrQ0FBaUMsRUFDbEM7RUFkTDtJQWlCTSwrQ0FBc0M7SUFBdEMsdUNBQXNDO0lBQXRDLDBEQUFzQyxFQUN2Qzs7QUFsQkw7RUF1Qk0sbUNBQTBCO01BQTFCLCtCQUEwQjtVQUExQiwyQkFBMEI7RUFDMUIsMkRBQTBELEVBZ0IzRDtFQXhDTDtJQTRCUSxxQkFBb0IsRUFDckI7RUE3QlA7SUFnQ1EsT0FBTTtJQUNOLFdBQVUsRUFDWDtFQWxDUDtJQXFDUSxVQUFTO0lBQ1Qsa0NBQXlCO1FBQXpCLDhCQUF5QjtZQUF6QiwwQkFBeUIsRUFDMUIiLCJmaWxlIjoiYXBwLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJEaWRvdCBJdGFsaWNcIjtcbiAgc3JjOiB1cmwoXCIvL2RiLm9ubGluZXdlYmZvbnRzLmNvbS90L2RkZWM3ZGI2NWIyYjliMjU3ZDA2YmJjMmQ0ZWZhY2VhLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCIvL2RiLm9ubGluZXdlYmZvbnRzLmNvbS90L2RkZWM3ZGI2NWIyYjliMjU3ZDA2YmJjMmQ0ZWZhY2VhLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcIi8vZGIub25saW5ld2ViZm9udHMuY29tL3QvZGRlYzdkYjY1YjJiOWIyNTdkMDZiYmMyZDRlZmFjZWEud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi8vZGIub25saW5ld2ViZm9udHMuY29tL3QvZGRlYzdkYjY1YjJiOWIyNTdkMDZiYmMyZDRlZmFjZWEud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIvL2RiLm9ubGluZXdlYmZvbnRzLmNvbS90L2RkZWM3ZGI2NWIyYjliMjU3ZDA2YmJjMmQ0ZWZhY2VhLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiLy9kYi5vbmxpbmV3ZWJmb250cy5jb20vdC9kZGVjN2RiNjViMmI5YjI1N2QwNmJiYzJkNGVmYWNlYS5zdmcjRGlkb3RcIikgZm9ybWF0KFwic3ZnXCIpOyB9XG5cbmEsIC5zdWItbWVudSAuZm9udC0tYmxhY2ssXG4uY29weXJpZ2h0IC5mb250LS1ibGFjayB7XG4gIGNvbG9yOiAjQUFBQUFBOyB9XG5cbnAgc3Ryb25nIHtcbiAgZm9udC1mYW1pbHk6IFwiQXZlbmlyIExUIFcwMV84NSBIZWF2eTE0NzU1NDRcIiwgU2Fucy1zZXJpZjsgfVxuXG4vKipcbiAqIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbiAqIFZlcnNpb24gNi40LjNcbiAqIGZvdW5kYXRpb24uenVyYi5jb21cbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuICovXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucmV2ZWFsLCAucmV2ZWFsLnRpbnksIC5yZXZlYWwuc21hbGwsIC5yZXZlYWwubGFyZ2Uge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luOiAwIGF1dG87IH0gfVxuXG4vKiEgbm9ybWFsaXplLXNjc3MgfCBNSVQvR1BMdjIgTGljZW5zZSB8IGJpdC5seS9ub3JtYWxpemUtc2NzcyAqL1xuLyogRG9jdW1lbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogMS4gQ2hhbmdlIHRoZSBkZWZhdWx0IGZvbnQgZmFtaWx5IGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAzLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluXG4gICAgICogICAgSUUgb24gV2luZG93cyBQaG9uZSBhbmQgaW4gaU9TLlxuICAgICAqL1xuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAyICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAzICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMyAqLyB9XG5cbi8qIFNlY3Rpb25zXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqL1xuYm9keSB7XG4gIG1hcmdpbjogMDsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cbmFydGljbGUsXG5hc2lkZSxcbmZvb3RlcixcbmhlYWRlcixcbm5hdixcbnNlY3Rpb24ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKipcbiAgICAgKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gICAgICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAgICAgKi9cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7IH1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cbmZpZ2NhcHRpb24sXG5maWd1cmUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgbWFyZ2luIGluIElFIDguXG4gICAgICovXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4OyB9XG5cbi8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gICAgICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gICAgICovXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAvKiAxICovXG4gIGhlaWdodDogMDtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICAgICAqL1xubWFpbiB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovIH1cblxuLyogTGlua3NcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogMS4gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICAgICAqIDIuIFJlbW92ZSBnYXBzIGluIGxpbmtzIHVuZGVybGluZSBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cbiAgICAgKi9cbmEsIC5zdWItbWVudSAuZm9udC0tYmxhY2ssXG4uY29weXJpZ2h0IC5mb250LS1ibGFjayB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHM7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBSZW1vdmUgdGhlIG91dGxpbmUgb24gZm9jdXNlZCBsaW5rcyB3aGVuIHRoZXkgYXJlIGFsc28gYWN0aXZlIG9yIGhvdmVyZWRcbiAgICAgKiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cbmE6YWN0aXZlLCAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrOmFjdGl2ZSxcbi5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrOmFjdGl2ZSxcbmE6aG92ZXIsXG4uc3ViLW1lbnUgLmZvbnQtLWJsYWNrOmhvdmVyLFxuLmNvcHlyaWdodCAuZm9udC0tYmxhY2s6aG92ZXIge1xuICBvdXRsaW5lLXdpZHRoOiAwOyB9XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBGaXJlZm94IDM5LS5cbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICAgICAqL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIFByZXZlbnQgdGhlIGR1cGxpY2F0ZSBhcHBsaWNhdGlvbiBvZiBgYm9sZGVyYCBieSB0aGUgbmV4dCBydWxlIGluIFNhZmFyaSA2LlxuICAgICAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0OyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gICAgICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjsgfVxuXG4vKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc3R5bGUgaW4gQW5kcm9pZCA0LjMtLlxuICAgICAqL1xuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBiYWNrZ3JvdW5kIGFuZCBjb2xvciBpbiBJRSA5LS5cbiAgICAgKi9cbm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwO1xuICBjb2xvcjogIzAwMDsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7IH1cblxuLyoqXG4gICAgICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gICAgICogYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07IH1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07IH1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cbmF1ZGlvLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gaU9TIDQtNy5cbiAgICAgKi9cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDsgfVxuXG4vKipcbiAgICAgKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLS5cbiAgICAgKi9cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTsgfVxuXG4vKipcbiAgICAgKiBIaWRlIHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAgICAgKi9cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4vKiBGb3Jtc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAgICAgKi9cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMSAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAgICAgKi9cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi8qKlxuICAgICAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICAgICAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAgICAgKi9cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLyoqXG4gICAgICogMS4gUHJldmVudCBhIFdlYktpdCBidWcgd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gXG4gICAgICogICAgY29udHJvbHMgaW4gQW5kcm9pZCA0LlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gICAgICovXG5idXR0b24sXG5odG1sIFt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDIgKi8gfVxuXG5idXR0b24sXG5bdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC8qKlxuICAgICAgICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAgICAgICAqL1xuICAvKipcbiAgICAgICAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAgICAgICAqLyB9XG4gIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDsgfVxuICBidXR0b246LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gICAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0OyB9XG5cbi8qKlxuICAgICAqIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gICAgICovXG5pbnB1dCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLS5cbiAgICAgKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtLlxuICAgICAqL1xuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gICAgICovXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbi8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICAgICAqL1xuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgLyogMiAqL1xuICAvKipcbiAgICAgICAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gICAgICAgKi8gfVxuICBbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiwgW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4vKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgICAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAgICAgKi9cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMSAqL1xuICBmb250OiBpbmhlcml0O1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogQ2hhbmdlIHRoZSBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTsgfVxuXG4vKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAgICAgKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gICAgICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIGRpc3BsYXk6IHRhYmxlO1xuICAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAzICovXG4gIGNvbG9yOiBpbmhlcml0O1xuICAvKiAyICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIC8qIDEgKi8gfVxuXG4vKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICAgICAqL1xucHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRS5cbiAgICAgKi9cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuLyogSW50ZXJhY3RpdmVcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSwgYW5kIEZpcmVmb3guXG4gICAgICovXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtOyB9XG5cbi8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyogU2NyaXB0aW5nXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuY2FudmFzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICAgICAqL1xudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qIEhpZGRlblxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC0uXG4gICAgICovXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmZvdW5kYXRpb24tbXEge1xuICBmb250LWZhbWlseTogXCJzbWFsbD0wZW0mbWVkaXVtPTQwZW0mbGFyZ2U9NjRlbSZ4bGFyZ2U9NzVlbSZ4eGxhcmdlPTkwZW1cIjsgfVxuXG5odG1sIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZm9udC1zaXplOiAxMDAlOyB9XG5cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7IH1cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgZm9udC1mYW1pbHk6IFwiQXZlbmlyIExUIFcwMV81NSBSb21hbjE0NzU1MjBcIiwgU2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyB9XG5cbmltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7IH1cblxudGV4dGFyZWEge1xuICBoZWlnaHQ6IGF1dG87XG4gIG1pbi1oZWlnaHQ6IDUwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuc2VsZWN0IHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuLm1hcF9jYW52YXMgaW1nLFxuLm1hcF9jYW52YXMgZW1iZWQsXG4ubWFwX2NhbnZhcyBvYmplY3QsXG4ubXFhLWRpc3BsYXkgaW1nLFxuLm1xYS1kaXNwbGF5IGVtYmVkLFxuLm1xYS1kaXNwbGF5IG9iamVjdCB7XG4gIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50OyB9XG5cbmJ1dHRvbiB7XG4gIHBhZGRpbmc6IDA7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjdXJzb3I6IGF1dG87IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIGJ1dHRvbiB7XG4gICAgb3V0bGluZTogMDsgfVxuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgfVxuXG4uaXMtdmlzaWJsZSB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cblxuLmlzLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uZ3JpZC1jb250YWluZXIge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgbWFyZ2luOiAwIGF1dG87IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZ3JpZC1jb250YWluZXIge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICAuZ3JpZC1jb250YWluZXIuZmx1aWQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCBhdXRvOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5ncmlkLWNvbnRhaW5lci5mbHVpZCB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICAuZ3JpZC1jb250YWluZXIuZnVsbCB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCBhdXRvOyB9XG5cbi5ncmlkLXgge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwOyB9XG5cbi5jZWxsIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIG1pbi1oZWlnaHQ6IDBweDtcbiAgbWluLXdpZHRoOiAwcHg7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5jZWxsLmF1dG8ge1xuICAgIGZsZXg6IDEgMSAwcHg7IH1cbiAgLmNlbGwuc2hyaW5rIHtcbiAgICBmbGV4OiAwIDAgYXV0bzsgfVxuXG4uZ3JpZC14ID4gLmF1dG8ge1xuICB3aWR0aDogYXV0bzsgfVxuXG4uZ3JpZC14ID4gLnNocmluayB7XG4gIHdpZHRoOiBhdXRvOyB9XG5cbi5ncmlkLXggPiAuc21hbGwtc2hyaW5rLCAuZ3JpZC14ID4gLnNtYWxsLWZ1bGwsIC5ncmlkLXggPiAuc21hbGwtMSwgLmdyaWQteCA+IC5zbWFsbC0yLCAuZ3JpZC14ID4gLnNtYWxsLTMsIC5ncmlkLXggPiAuc21hbGwtNCwgLmdyaWQteCA+IC5zbWFsbC01LCAuZ3JpZC14ID4gLnNtYWxsLTYsIC5ncmlkLXggPiAuc21hbGwtNywgLmdyaWQteCA+IC5zbWFsbC04LCAuZ3JpZC14ID4gLnNtYWxsLTksIC5ncmlkLXggPiAuc21hbGwtMTAsIC5ncmlkLXggPiAuc21hbGwtMTEsIC5ncmlkLXggPiAuc21hbGwtMTIge1xuICBmbGV4LWJhc2lzOiBhdXRvOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5ncmlkLXggPiAubWVkaXVtLXNocmluaywgLmdyaWQteCA+IC5tZWRpdW0tZnVsbCwgLmdyaWQteCA+IC5tZWRpdW0tMSwgLmdyaWQteCA+IC5tZWRpdW0tMiwgLmdyaWQteCA+IC5tZWRpdW0tMywgLmdyaWQteCA+IC5tZWRpdW0tNCwgLmdyaWQteCA+IC5tZWRpdW0tNSwgLmdyaWQteCA+IC5tZWRpdW0tNiwgLmdyaWQteCA+IC5tZWRpdW0tNywgLmdyaWQteCA+IC5tZWRpdW0tOCwgLmdyaWQteCA+IC5tZWRpdW0tOSwgLmdyaWQteCA+IC5tZWRpdW0tMTAsIC5ncmlkLXggPiAubWVkaXVtLTExLCAuZ3JpZC14ID4gLm1lZGl1bS0xMiB7XG4gICAgZmxleC1iYXNpczogYXV0bzsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5ncmlkLXggPiAubGFyZ2Utc2hyaW5rLCAuZ3JpZC14ID4gLmxhcmdlLWZ1bGwsIC5ncmlkLXggPiAubGFyZ2UtMSwgLmdyaWQteCA+IC5sYXJnZS0yLCAuZ3JpZC14ID4gLmxhcmdlLTMsIC5ncmlkLXggPiAubGFyZ2UtNCwgLmdyaWQteCA+IC5sYXJnZS01LCAuZ3JpZC14ID4gLmxhcmdlLTYsIC5ncmlkLXggPiAubGFyZ2UtNywgLmdyaWQteCA+IC5sYXJnZS04LCAuZ3JpZC14ID4gLmxhcmdlLTksIC5ncmlkLXggPiAubGFyZ2UtMTAsIC5ncmlkLXggPiAubGFyZ2UtMTEsIC5ncmlkLXggPiAubGFyZ2UtMTIge1xuICAgIGZsZXgtYmFzaXM6IGF1dG87IH0gfVxuXG4uZ3JpZC14ID4gLnNtYWxsLTEge1xuICB3aWR0aDogOC4zMzMzMyU7IH1cblxuLmdyaWQteCA+IC5zbWFsbC0yIHtcbiAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuXG4uZ3JpZC14ID4gLnNtYWxsLTMge1xuICB3aWR0aDogMjUlOyB9XG5cbi5ncmlkLXggPiAuc21hbGwtNCB7XG4gIHdpZHRoOiAzMy4zMzMzMyU7IH1cblxuLmdyaWQteCA+IC5zbWFsbC01IHtcbiAgd2lkdGg6IDQxLjY2NjY3JTsgfVxuXG4uZ3JpZC14ID4gLnNtYWxsLTYge1xuICB3aWR0aDogNTAlOyB9XG5cbi5ncmlkLXggPiAuc21hbGwtNyB7XG4gIHdpZHRoOiA1OC4zMzMzMyU7IH1cblxuLmdyaWQteCA+IC5zbWFsbC04IHtcbiAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuXG4uZ3JpZC14ID4gLnNtYWxsLTkge1xuICB3aWR0aDogNzUlOyB9XG5cbi5ncmlkLXggPiAuc21hbGwtMTAge1xuICB3aWR0aDogODMuMzMzMzMlOyB9XG5cbi5ncmlkLXggPiAuc21hbGwtMTEge1xuICB3aWR0aDogOTEuNjY2NjclOyB9XG5cbi5ncmlkLXggPiAuc21hbGwtMTIge1xuICB3aWR0aDogMTAwJTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuZ3JpZC14ID4gLm1lZGl1bS1hdXRvIHtcbiAgICBmbGV4OiAxIDEgMHB4O1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC5ncmlkLXggPiAubWVkaXVtLXNocmluayB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLmdyaWQteCA+IC5tZWRpdW0tMSB7XG4gICAgd2lkdGg6IDguMzMzMzMlOyB9XG4gIC5ncmlkLXggPiAubWVkaXVtLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLmdyaWQteCA+IC5tZWRpdW0tMyB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAuZ3JpZC14ID4gLm1lZGl1bS00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5ncmlkLXggPiAubWVkaXVtLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NyU7IH1cbiAgLmdyaWQteCA+IC5tZWRpdW0tNiB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAuZ3JpZC14ID4gLm1lZGl1bS03IHtcbiAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gIC5ncmlkLXggPiAubWVkaXVtLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgLmdyaWQteCA+IC5tZWRpdW0tOSB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAuZ3JpZC14ID4gLm1lZGl1bS0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAuZ3JpZC14ID4gLm1lZGl1bS0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAuZ3JpZC14ID4gLm1lZGl1bS0xMiB7XG4gICAgd2lkdGg6IDEwMCU7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuZ3JpZC14ID4gLmxhcmdlLWF1dG8ge1xuICAgIGZsZXg6IDEgMSAwcHg7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLmdyaWQteCA+IC5sYXJnZS1zaHJpbmsge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC5ncmlkLXggPiAubGFyZ2UtMSB7XG4gICAgd2lkdGg6IDguMzMzMzMlOyB9XG4gIC5ncmlkLXggPiAubGFyZ2UtMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAuZ3JpZC14ID4gLmxhcmdlLTMge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLmdyaWQteCA+IC5sYXJnZS00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5ncmlkLXggPiAubGFyZ2UtNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAuZ3JpZC14ID4gLmxhcmdlLTYge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLmdyaWQteCA+IC5sYXJnZS03IHtcbiAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gIC5ncmlkLXggPiAubGFyZ2UtOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAuZ3JpZC14ID4gLmxhcmdlLTkge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLmdyaWQteCA+IC5sYXJnZS0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAuZ3JpZC14ID4gLmxhcmdlLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjclOyB9XG4gIC5ncmlkLXggPiAubGFyZ2UtMTIge1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLmdyaWQtbWFyZ2luLXg6bm90KC5ncmlkLXgpID4gLmNlbGwge1xuICB3aWR0aDogYXV0bzsgfVxuXG4uZ3JpZC1tYXJnaW4teTpub3QoLmdyaWQteSkgPiAuY2VsbCB7XG4gIGhlaWdodDogYXV0bzsgfVxuXG4uZ3JpZC1tYXJnaW4teCB7XG4gIG1hcmdpbi1sZWZ0OiAtMC42MjVyZW07XG4gIG1hcmdpbi1yaWdodDogLTAuNjI1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdyaWQtbWFyZ2luLXgge1xuICAgICAgbWFyZ2luLWxlZnQ6IC0wLjkzNzVyZW07XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0wLjkzNzVyZW07IH0gfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMS4yNXJlbSk7XG4gICAgbWFyZ2luLWxlZnQ6IDAuNjI1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5jZWxsIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7XG4gICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07IH0gfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5hdXRvIHtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5zaHJpbmsge1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTEge1xuICAgIHdpZHRoOiBjYWxjKDguMzMzMzMlIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtMiB7XG4gICAgd2lkdGg6IGNhbGMoMTYuNjY2NjclIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtMyB7XG4gICAgd2lkdGg6IGNhbGMoMjUlIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtNCB7XG4gICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMlIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtNSB7XG4gICAgd2lkdGg6IGNhbGMoNDEuNjY2NjclIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtNiB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtNyB7XG4gICAgd2lkdGg6IGNhbGMoNTguMzMzMzMlIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtOCB7XG4gICAgd2lkdGg6IGNhbGMoNjYuNjY2NjclIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtOSB7XG4gICAgd2lkdGg6IGNhbGMoNzUlIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtMTAge1xuICAgIHdpZHRoOiBjYWxjKDgzLjMzMzMzJSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTExIHtcbiAgICB3aWR0aDogY2FsYyg5MS42NjY2NyUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC0xMiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuMjVyZW0pOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdyaWQtbWFyZ2luLXggPiAuYXV0byB7XG4gICAgICB3aWR0aDogYXV0bzsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLnNocmluayB7XG4gICAgICB3aWR0aDogYXV0bzsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTEge1xuICAgICAgd2lkdGg6IGNhbGMoOC4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC0yIHtcbiAgICAgIHdpZHRoOiBjYWxjKDE2LjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTMge1xuICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtNCB7XG4gICAgICB3aWR0aDogY2FsYygzMy4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC01IHtcbiAgICAgIHdpZHRoOiBjYWxjKDQxLjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTYge1xuICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtNyB7XG4gICAgICB3aWR0aDogY2FsYyg1OC4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC04IHtcbiAgICAgIHdpZHRoOiBjYWxjKDY2LjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTkge1xuICAgICAgd2lkdGg6IGNhbGMoNzUlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtMTAge1xuICAgICAgd2lkdGg6IGNhbGMoODMuMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtMTEge1xuICAgICAgd2lkdGg6IGNhbGMoOTEuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtMTIge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS1hdXRvIHtcbiAgICAgIHdpZHRoOiBhdXRvOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLXNocmluayB7XG4gICAgICB3aWR0aDogYXV0bzsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS0xIHtcbiAgICAgIHdpZHRoOiBjYWxjKDguMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLTIge1xuICAgICAgd2lkdGg6IGNhbGMoMTYuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLTMge1xuICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLTQge1xuICAgICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLTUge1xuICAgICAgd2lkdGg6IGNhbGMoNDEuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLTYge1xuICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLTcge1xuICAgICAgd2lkdGg6IGNhbGMoNTguMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLTgge1xuICAgICAgd2lkdGg6IGNhbGMoNjYuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLTkge1xuICAgICAgd2lkdGg6IGNhbGMoNzUlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLTEwIHtcbiAgICAgIHdpZHRoOiBjYWxjKDgzLjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS0xMSB7XG4gICAgICB3aWR0aDogY2FsYyg5MS42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5tZWRpdW0tMTIge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2UtYXV0byB7XG4gICAgICB3aWR0aDogYXV0bzsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLXNocmluayB7XG4gICAgICB3aWR0aDogYXV0bzsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLTEge1xuICAgICAgd2lkdGg6IGNhbGMoOC4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS0yIHtcbiAgICAgIHdpZHRoOiBjYWxjKDE2LjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLTMge1xuICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2UtNCB7XG4gICAgICB3aWR0aDogY2FsYygzMy4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS01IHtcbiAgICAgIHdpZHRoOiBjYWxjKDQxLjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLTYge1xuICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2UtNyB7XG4gICAgICB3aWR0aDogY2FsYyg1OC4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS04IHtcbiAgICAgIHdpZHRoOiBjYWxjKDY2LjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLTkge1xuICAgICAgd2lkdGg6IGNhbGMoNzUlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2UtMTAge1xuICAgICAgd2lkdGg6IGNhbGMoODMuMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2UtMTEge1xuICAgICAgd2lkdGg6IGNhbGMoOTEuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2UtMTIge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTsgfSB9XG5cbi5ncmlkLXBhZGRpbmcteCAuZ3JpZC1wYWRkaW5nLXgge1xuICBtYXJnaW4tcmlnaHQ6IC0wLjYyNXJlbTtcbiAgbWFyZ2luLWxlZnQ6IC0wLjYyNXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5ncmlkLXBhZGRpbmcteCAuZ3JpZC1wYWRkaW5nLXgge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0wLjkzNzVyZW07IH0gfVxuXG4uZ3JpZC1jb250YWluZXI6bm90KC5mdWxsKSA+IC5ncmlkLXBhZGRpbmcteCB7XG4gIG1hcmdpbi1yaWdodDogLTAuNjI1cmVtO1xuICBtYXJnaW4tbGVmdDogLTAuNjI1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdyaWQtY29udGFpbmVyOm5vdCguZnVsbCkgPiAuZ3JpZC1wYWRkaW5nLXgge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0wLjkzNzVyZW07IH0gfVxuXG4uZ3JpZC1wYWRkaW5nLXggPiAuY2VsbCB7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdyaWQtcGFkZGluZy14ID4gLmNlbGwge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuXG4uc21hbGwtdXAtMSA+IC5jZWxsIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLnNtYWxsLXVwLTIgPiAuY2VsbCB7XG4gIHdpZHRoOiA1MCU7IH1cblxuLnNtYWxsLXVwLTMgPiAuY2VsbCB7XG4gIHdpZHRoOiAzMy4zMzMzMyU7IH1cblxuLnNtYWxsLXVwLTQgPiAuY2VsbCB7XG4gIHdpZHRoOiAyNSU7IH1cblxuLnNtYWxsLXVwLTUgPiAuY2VsbCB7XG4gIHdpZHRoOiAyMCU7IH1cblxuLnNtYWxsLXVwLTYgPiAuY2VsbCB7XG4gIHdpZHRoOiAxNi42NjY2NyU7IH1cblxuLnNtYWxsLXVwLTcgPiAuY2VsbCB7XG4gIHdpZHRoOiAxNC4yODU3MSU7IH1cblxuLnNtYWxsLXVwLTggPiAuY2VsbCB7XG4gIHdpZHRoOiAxMi41JTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLXVwLTEgPiAuY2VsbCB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1lZGl1bS11cC0yID4gLmNlbGwge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLm1lZGl1bS11cC0zID4gLmNlbGwge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLm1lZGl1bS11cC00ID4gLmNlbGwge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLm1lZGl1bS11cC01ID4gLmNlbGwge1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgLm1lZGl1bS11cC02ID4gLmNlbGwge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLm1lZGl1bS11cC03ID4gLmNlbGwge1xuICAgIHdpZHRoOiAxNC4yODU3MSU7IH1cbiAgLm1lZGl1bS11cC04ID4gLmNlbGwge1xuICAgIHdpZHRoOiAxMi41JTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS11cC0xID4gLmNlbGwge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5sYXJnZS11cC0yID4gLmNlbGwge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLmxhcmdlLXVwLTMgPiAuY2VsbCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAubGFyZ2UtdXAtNCA+IC5jZWxsIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC5sYXJnZS11cC01ID4gLmNlbGwge1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgLmxhcmdlLXVwLTYgPiAuY2VsbCB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAubGFyZ2UtdXAtNyA+IC5jZWxsIHtcbiAgICB3aWR0aDogMTQuMjg1NzElOyB9XG4gIC5sYXJnZS11cC04ID4gLmNlbGwge1xuICAgIHdpZHRoOiAxMi41JTsgfSB9XG5cbi5ncmlkLW1hcmdpbi14LnNtYWxsLXVwLTEgPiAuY2VsbCB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjI1cmVtKTsgfVxuXG4uZ3JpZC1tYXJnaW4teC5zbWFsbC11cC0yID4gLmNlbGwge1xuICB3aWR0aDogY2FsYyg1MCUgLSAxLjI1cmVtKTsgfVxuXG4uZ3JpZC1tYXJnaW4teC5zbWFsbC11cC0zID4gLmNlbGwge1xuICB3aWR0aDogY2FsYygzMy4zMzMzMyUgLSAxLjI1cmVtKTsgfVxuXG4uZ3JpZC1tYXJnaW4teC5zbWFsbC11cC00ID4gLmNlbGwge1xuICB3aWR0aDogY2FsYygyNSUgLSAxLjI1cmVtKTsgfVxuXG4uZ3JpZC1tYXJnaW4teC5zbWFsbC11cC01ID4gLmNlbGwge1xuICB3aWR0aDogY2FsYygyMCUgLSAxLjI1cmVtKTsgfVxuXG4uZ3JpZC1tYXJnaW4teC5zbWFsbC11cC02ID4gLmNlbGwge1xuICB3aWR0aDogY2FsYygxNi42NjY2NyUgLSAxLjI1cmVtKTsgfVxuXG4uZ3JpZC1tYXJnaW4teC5zbWFsbC11cC03ID4gLmNlbGwge1xuICB3aWR0aDogY2FsYygxNC4yODU3MSUgLSAxLjI1cmVtKTsgfVxuXG4uZ3JpZC1tYXJnaW4teC5zbWFsbC11cC04ID4gLmNlbGwge1xuICB3aWR0aDogY2FsYygxMi41JSAtIDEuMjVyZW0pOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5ncmlkLW1hcmdpbi14LnNtYWxsLXVwLTEgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14LnNtYWxsLXVwLTIgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXguc21hbGwtdXAtMyA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygzMy4zMzMzMyUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teC5zbWFsbC11cC00ID4gLmNlbGwge1xuICAgIHdpZHRoOiBjYWxjKDI1JSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14LnNtYWxsLXVwLTUgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMjAlIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXguc21hbGwtdXAtNiA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygxNi42NjY2NyUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teC5zbWFsbC11cC03ID4gLmNlbGwge1xuICAgIHdpZHRoOiBjYWxjKDE0LjI4NTcxJSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14LnNtYWxsLXVwLTggPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMTIuNSUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teC5tZWRpdW0tdXAtMSA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMS44NzVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14Lm1lZGl1bS11cC0yID4gLmNlbGwge1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEuODc1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teC5tZWRpdW0tdXAtMyA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygzMy4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXgubWVkaXVtLXVwLTQgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMjUlIC0gMS44NzVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14Lm1lZGl1bS11cC01ID4gLmNlbGwge1xuICAgIHdpZHRoOiBjYWxjKDIwJSAtIDEuODc1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teC5tZWRpdW0tdXAtNiA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygxNi42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXgubWVkaXVtLXVwLTcgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMTQuMjg1NzElIC0gMS44NzVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14Lm1lZGl1bS11cC04ID4gLmNlbGwge1xuICAgIHdpZHRoOiBjYWxjKDEyLjUlIC0gMS44NzVyZW0pOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmdyaWQtbWFyZ2luLXgubGFyZ2UtdXAtMSA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMS44NzVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14LmxhcmdlLXVwLTIgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMS44NzVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14LmxhcmdlLXVwLTMgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14LmxhcmdlLXVwLTQgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMjUlIC0gMS44NzVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14LmxhcmdlLXVwLTUgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMjAlIC0gMS44NzVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14LmxhcmdlLXVwLTYgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMTYuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14LmxhcmdlLXVwLTcgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMTQuMjg1NzElIC0gMS44NzVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14LmxhcmdlLXVwLTggPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMTIuNSUgLSAxLjg3NXJlbSk7IH0gfVxuXG4uc21hbGwtbWFyZ2luLWNvbGxhcHNlIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDsgfVxuICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLmNlbGwge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzJTsgfVxuICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC0zIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NyU7IH1cbiAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC02IHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC05IHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTEyIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTEge1xuICAgICAgd2lkdGg6IDguMzMzMzMlOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tMiB7XG4gICAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tMyB7XG4gICAgICB3aWR0aDogMjUlOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tNCB7XG4gICAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tNSB7XG4gICAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tNiB7XG4gICAgICB3aWR0aDogNTAlOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tNyB7XG4gICAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tOCB7XG4gICAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tOSB7XG4gICAgICB3aWR0aDogNzUlOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tMTAge1xuICAgICAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAgIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTExIHtcbiAgICAgIHdpZHRoOiA5MS42NjY2NyU7IH1cbiAgICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS0xMiB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS0xIHtcbiAgICAgIHdpZHRoOiA4LjMzMzMzJTsgfVxuICAgIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtMiB7XG4gICAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS0zIHtcbiAgICAgIHdpZHRoOiAyNSU7IH1cbiAgICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTQge1xuICAgICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAgIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtNSB7XG4gICAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS02IHtcbiAgICAgIHdpZHRoOiA1MCU7IH1cbiAgICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTcge1xuICAgICAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAgIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtOCB7XG4gICAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS05IHtcbiAgICAgIHdpZHRoOiA3NSU7IH1cbiAgICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTEwIHtcbiAgICAgIHdpZHRoOiA4My4zMzMzMyU7IH1cbiAgICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTExIHtcbiAgICAgIHdpZHRoOiA5MS42NjY2NyU7IH1cbiAgICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTEyIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLnNtYWxsLXBhZGRpbmctY29sbGFwc2Uge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5zbWFsbC1wYWRkaW5nLWNvbGxhcHNlID4gLmNlbGwge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5jZWxsIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtMSB7XG4gICAgd2lkdGg6IDguMzMzMzMlOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtMyB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtNiB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC03IHtcbiAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtOSB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC0xMiB7XG4gICAgd2lkdGg6IDEwMCU7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tMSB7XG4gICAgd2lkdGg6IDguMzMzMzMlOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS0zIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS01IHtcbiAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS02IHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS03IHtcbiAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS04IHtcbiAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS05IHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTEyIHtcbiAgICB3aWR0aDogMTAwJTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzJTsgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTMge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS01IHtcbiAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTYge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS04IHtcbiAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTkge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtMTIge1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lZGl1bS1wYWRkaW5nLWNvbGxhcHNlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAubWVkaXVtLXBhZGRpbmctY29sbGFwc2UgPiAuY2VsbCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5jZWxsIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC0xIHtcbiAgICB3aWR0aDogOC4zMzMzMyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtMyB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC01IHtcbiAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtNiB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC04IHtcbiAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtOSB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMlOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC0xMiB7XG4gICAgd2lkdGg6IDEwMCU7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS0xIHtcbiAgICB3aWR0aDogOC4zMzMzMyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS0zIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS02IHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS05IHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMlOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjclOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTEyIHtcbiAgICB3aWR0aDogMTAwJTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtMSB7XG4gICAgd2lkdGg6IDguMzMzMzMlOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTMge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTYge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS03IHtcbiAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTkge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjclOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtMTIge1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLXBhZGRpbmctY29sbGFwc2Uge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgIC5sYXJnZS1wYWRkaW5nLWNvbGxhcHNlID4gLmNlbGwge1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIHBhZGRpbmctbGVmdDogMDsgfSB9XG5cbi5zbWFsbC1vZmZzZXQtMCB7XG4gIG1hcmdpbi1sZWZ0OiAwJTsgfVxuXG4uZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC1vZmZzZXQtMCB7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDAlICsgMC42MjVyZW0pOyB9XG5cbi5zbWFsbC1vZmZzZXQtMSB7XG4gIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuXG4uZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC1vZmZzZXQtMSB7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDguMzMzMzMlICsgMC42MjVyZW0pOyB9XG5cbi5zbWFsbC1vZmZzZXQtMiB7XG4gIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cblxuLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtb2Zmc2V0LTIge1xuICBtYXJnaW4tbGVmdDogY2FsYygxNi42NjY2NyUgKyAwLjYyNXJlbSk7IH1cblxuLnNtYWxsLW9mZnNldC0zIHtcbiAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuXG4uZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC1vZmZzZXQtMyB7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDI1JSArIDAuNjI1cmVtKTsgfVxuXG4uc21hbGwtb2Zmc2V0LTQge1xuICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG5cbi5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLW9mZnNldC00IHtcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoMzMuMzMzMzMlICsgMC42MjVyZW0pOyB9XG5cbi5zbWFsbC1vZmZzZXQtNSB7XG4gIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cblxuLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtb2Zmc2V0LTUge1xuICBtYXJnaW4tbGVmdDogY2FsYyg0MS42NjY2NyUgKyAwLjYyNXJlbSk7IH1cblxuLnNtYWxsLW9mZnNldC02IHtcbiAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuXG4uZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC1vZmZzZXQtNiB7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDUwJSArIDAuNjI1cmVtKTsgfVxuXG4uc21hbGwtb2Zmc2V0LTcge1xuICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG5cbi5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLW9mZnNldC03IHtcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoNTguMzMzMzMlICsgMC42MjVyZW0pOyB9XG5cbi5zbWFsbC1vZmZzZXQtOCB7XG4gIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cblxuLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtb2Zmc2V0LTgge1xuICBtYXJnaW4tbGVmdDogY2FsYyg2Ni42NjY2NyUgKyAwLjYyNXJlbSk7IH1cblxuLnNtYWxsLW9mZnNldC05IHtcbiAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuXG4uZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC1vZmZzZXQtOSB7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDc1JSArIDAuNjI1cmVtKTsgfVxuXG4uc21hbGwtb2Zmc2V0LTEwIHtcbiAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuXG4uZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC1vZmZzZXQtMTAge1xuICBtYXJnaW4tbGVmdDogY2FsYyg4My4zMzMzMyUgKyAwLjYyNXJlbSk7IH1cblxuLnNtYWxsLW9mZnNldC0xMSB7XG4gIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cblxuLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtb2Zmc2V0LTExIHtcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoOTEuNjY2NjclICsgMC42MjVyZW0pOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5tZWRpdW0tb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDAlICsgMC45Mzc1cmVtKTsgfVxuICAubWVkaXVtLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyg4LjMzMzMzJSArIDAuOTM3NXJlbSk7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5tZWRpdW0tb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDE2LjY2NjY3JSArIDAuOTM3NXJlbSk7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5tZWRpdW0tb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDI1JSArIDAuOTM3NXJlbSk7IH1cbiAgLm1lZGl1bS1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5tZWRpdW0tb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDMzLjMzMzMzJSArIDAuOTM3NXJlbSk7IH1cbiAgLm1lZGl1bS1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5tZWRpdW0tb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDQxLjY2NjY3JSArIDAuOTM3NXJlbSk7IH1cbiAgLm1lZGl1bS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5tZWRpdW0tb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDUwJSArIDAuOTM3NXJlbSk7IH1cbiAgLm1lZGl1bS1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5tZWRpdW0tb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDU4LjMzMzMzJSArIDAuOTM3NXJlbSk7IH1cbiAgLm1lZGl1bS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5tZWRpdW0tb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDY2LjY2NjY3JSArIDAuOTM3NXJlbSk7IH1cbiAgLm1lZGl1bS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5tZWRpdW0tb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDc1JSArIDAuOTM3NXJlbSk7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoODMuMzMzMzMlICsgMC45Mzc1cmVtKTsgfVxuICAubWVkaXVtLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5tZWRpdW0tb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyg5MS42NjY2NyUgKyAwLjkzNzVyZW0pOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2Utb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDAlICsgMC45Mzc1cmVtKTsgfVxuICAubGFyZ2Utb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoOC4zMzMzMyUgKyAwLjkzNzVyZW0pOyB9XG4gIC5sYXJnZS1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoMTYuNjY2NjclICsgMC45Mzc1cmVtKTsgfVxuICAubGFyZ2Utb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2Utb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDI1JSArIDAuOTM3NXJlbSk7IH1cbiAgLmxhcmdlLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygzMy4zMzMzMyUgKyAwLjkzNzVyZW0pOyB9XG4gIC5sYXJnZS1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNDEuNjY2NjclICsgMC45Mzc1cmVtKTsgfVxuICAubGFyZ2Utb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2Utb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDUwJSArIDAuOTM3NXJlbSk7IH1cbiAgLmxhcmdlLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyg1OC4zMzMzMyUgKyAwLjkzNzVyZW0pOyB9XG4gIC5sYXJnZS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNjYuNjY2NjclICsgMC45Mzc1cmVtKTsgfVxuICAubGFyZ2Utb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2Utb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDc1JSArIDAuOTM3NXJlbSk7IH1cbiAgLmxhcmdlLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDgzLjMzMzMzJSArIDAuOTM3NXJlbSk7IH1cbiAgLmxhcmdlLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDkxLjY2NjY3JSArIDAuOTM3NXJlbSk7IH0gfVxuXG4uZ3JpZC15IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwOyB9XG4gIC5ncmlkLXkgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLmdyaWQteSA+IC5hdXRvIHtcbiAgICBoZWlnaHQ6IGF1dG87IH1cbiAgLmdyaWQteSA+IC5zaHJpbmsge1xuICAgIGhlaWdodDogYXV0bzsgfVxuICAuZ3JpZC15ID4gLnNtYWxsLXNocmluaywgLmdyaWQteSA+IC5zbWFsbC1mdWxsLCAuZ3JpZC15ID4gLnNtYWxsLTEsIC5ncmlkLXkgPiAuc21hbGwtMiwgLmdyaWQteSA+IC5zbWFsbC0zLCAuZ3JpZC15ID4gLnNtYWxsLTQsIC5ncmlkLXkgPiAuc21hbGwtNSwgLmdyaWQteSA+IC5zbWFsbC02LCAuZ3JpZC15ID4gLnNtYWxsLTcsIC5ncmlkLXkgPiAuc21hbGwtOCwgLmdyaWQteSA+IC5zbWFsbC05LCAuZ3JpZC15ID4gLnNtYWxsLTEwLCAuZ3JpZC15ID4gLnNtYWxsLTExLCAuZ3JpZC15ID4gLnNtYWxsLTEyIHtcbiAgICBmbGV4LWJhc2lzOiBhdXRvOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdyaWQteSA+IC5tZWRpdW0tc2hyaW5rLCAuZ3JpZC15ID4gLm1lZGl1bS1mdWxsLCAuZ3JpZC15ID4gLm1lZGl1bS0xLCAuZ3JpZC15ID4gLm1lZGl1bS0yLCAuZ3JpZC15ID4gLm1lZGl1bS0zLCAuZ3JpZC15ID4gLm1lZGl1bS00LCAuZ3JpZC15ID4gLm1lZGl1bS01LCAuZ3JpZC15ID4gLm1lZGl1bS02LCAuZ3JpZC15ID4gLm1lZGl1bS03LCAuZ3JpZC15ID4gLm1lZGl1bS04LCAuZ3JpZC15ID4gLm1lZGl1bS05LCAuZ3JpZC15ID4gLm1lZGl1bS0xMCwgLmdyaWQteSA+IC5tZWRpdW0tMTEsIC5ncmlkLXkgPiAubWVkaXVtLTEyIHtcbiAgICAgIGZsZXgtYmFzaXM6IGF1dG87IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5ncmlkLXkgPiAubGFyZ2Utc2hyaW5rLCAuZ3JpZC15ID4gLmxhcmdlLWZ1bGwsIC5ncmlkLXkgPiAubGFyZ2UtMSwgLmdyaWQteSA+IC5sYXJnZS0yLCAuZ3JpZC15ID4gLmxhcmdlLTMsIC5ncmlkLXkgPiAubGFyZ2UtNCwgLmdyaWQteSA+IC5sYXJnZS01LCAuZ3JpZC15ID4gLmxhcmdlLTYsIC5ncmlkLXkgPiAubGFyZ2UtNywgLmdyaWQteSA+IC5sYXJnZS04LCAuZ3JpZC15ID4gLmxhcmdlLTksIC5ncmlkLXkgPiAubGFyZ2UtMTAsIC5ncmlkLXkgPiAubGFyZ2UtMTEsIC5ncmlkLXkgPiAubGFyZ2UtMTIge1xuICAgICAgZmxleC1iYXNpczogYXV0bzsgfSB9XG4gIC5ncmlkLXkgPiAuc21hbGwtMSB7XG4gICAgaGVpZ2h0OiA4LjMzMzMzJTsgfVxuICAuZ3JpZC15ID4gLnNtYWxsLTIge1xuICAgIGhlaWdodDogMTYuNjY2NjclOyB9XG4gIC5ncmlkLXkgPiAuc21hbGwtMyB7XG4gICAgaGVpZ2h0OiAyNSU7IH1cbiAgLmdyaWQteSA+IC5zbWFsbC00IHtcbiAgICBoZWlnaHQ6IDMzLjMzMzMzJTsgfVxuICAuZ3JpZC15ID4gLnNtYWxsLTUge1xuICAgIGhlaWdodDogNDEuNjY2NjclOyB9XG4gIC5ncmlkLXkgPiAuc21hbGwtNiB7XG4gICAgaGVpZ2h0OiA1MCU7IH1cbiAgLmdyaWQteSA+IC5zbWFsbC03IHtcbiAgICBoZWlnaHQ6IDU4LjMzMzMzJTsgfVxuICAuZ3JpZC15ID4gLnNtYWxsLTgge1xuICAgIGhlaWdodDogNjYuNjY2NjclOyB9XG4gIC5ncmlkLXkgPiAuc21hbGwtOSB7XG4gICAgaGVpZ2h0OiA3NSU7IH1cbiAgLmdyaWQteSA+IC5zbWFsbC0xMCB7XG4gICAgaGVpZ2h0OiA4My4zMzMzMyU7IH1cbiAgLmdyaWQteSA+IC5zbWFsbC0xMSB7XG4gICAgaGVpZ2h0OiA5MS42NjY2NyU7IH1cbiAgLmdyaWQteSA+IC5zbWFsbC0xMiB7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdyaWQteSA+IC5tZWRpdW0tYXV0byB7XG4gICAgICBmbGV4OiAxIDEgMHB4O1xuICAgICAgaGVpZ2h0OiBhdXRvOyB9XG4gICAgLmdyaWQteSA+IC5tZWRpdW0tc2hyaW5rIHtcbiAgICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC5ncmlkLXkgPiAubWVkaXVtLTEge1xuICAgICAgaGVpZ2h0OiA4LjMzMzMzJTsgfVxuICAgIC5ncmlkLXkgPiAubWVkaXVtLTIge1xuICAgICAgaGVpZ2h0OiAxNi42NjY2NyU7IH1cbiAgICAuZ3JpZC15ID4gLm1lZGl1bS0zIHtcbiAgICAgIGhlaWdodDogMjUlOyB9XG4gICAgLmdyaWQteSA+IC5tZWRpdW0tNCB7XG4gICAgICBoZWlnaHQ6IDMzLjMzMzMzJTsgfVxuICAgIC5ncmlkLXkgPiAubWVkaXVtLTUge1xuICAgICAgaGVpZ2h0OiA0MS42NjY2NyU7IH1cbiAgICAuZ3JpZC15ID4gLm1lZGl1bS02IHtcbiAgICAgIGhlaWdodDogNTAlOyB9XG4gICAgLmdyaWQteSA+IC5tZWRpdW0tNyB7XG4gICAgICBoZWlnaHQ6IDU4LjMzMzMzJTsgfVxuICAgIC5ncmlkLXkgPiAubWVkaXVtLTgge1xuICAgICAgaGVpZ2h0OiA2Ni42NjY2NyU7IH1cbiAgICAuZ3JpZC15ID4gLm1lZGl1bS05IHtcbiAgICAgIGhlaWdodDogNzUlOyB9XG4gICAgLmdyaWQteSA+IC5tZWRpdW0tMTAge1xuICAgICAgaGVpZ2h0OiA4My4zMzMzMyU7IH1cbiAgICAuZ3JpZC15ID4gLm1lZGl1bS0xMSB7XG4gICAgICBoZWlnaHQ6IDkxLjY2NjY3JTsgfVxuICAgIC5ncmlkLXkgPiAubWVkaXVtLTEyIHtcbiAgICAgIGhlaWdodDogMTAwJTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmdyaWQteSA+IC5sYXJnZS1hdXRvIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7XG4gICAgICBoZWlnaHQ6IGF1dG87IH1cbiAgICAuZ3JpZC15ID4gLmxhcmdlLXNocmluayB7XG4gICAgICBoZWlnaHQ6IGF1dG87IH1cbiAgICAuZ3JpZC15ID4gLmxhcmdlLTEge1xuICAgICAgaGVpZ2h0OiA4LjMzMzMzJTsgfVxuICAgIC5ncmlkLXkgPiAubGFyZ2UtMiB7XG4gICAgICBoZWlnaHQ6IDE2LjY2NjY3JTsgfVxuICAgIC5ncmlkLXkgPiAubGFyZ2UtMyB7XG4gICAgICBoZWlnaHQ6IDI1JTsgfVxuICAgIC5ncmlkLXkgPiAubGFyZ2UtNCB7XG4gICAgICBoZWlnaHQ6IDMzLjMzMzMzJTsgfVxuICAgIC5ncmlkLXkgPiAubGFyZ2UtNSB7XG4gICAgICBoZWlnaHQ6IDQxLjY2NjY3JTsgfVxuICAgIC5ncmlkLXkgPiAubGFyZ2UtNiB7XG4gICAgICBoZWlnaHQ6IDUwJTsgfVxuICAgIC5ncmlkLXkgPiAubGFyZ2UtNyB7XG4gICAgICBoZWlnaHQ6IDU4LjMzMzMzJTsgfVxuICAgIC5ncmlkLXkgPiAubGFyZ2UtOCB7XG4gICAgICBoZWlnaHQ6IDY2LjY2NjY3JTsgfVxuICAgIC5ncmlkLXkgPiAubGFyZ2UtOSB7XG4gICAgICBoZWlnaHQ6IDc1JTsgfVxuICAgIC5ncmlkLXkgPiAubGFyZ2UtMTAge1xuICAgICAgaGVpZ2h0OiA4My4zMzMzMyU7IH1cbiAgICAuZ3JpZC15ID4gLmxhcmdlLTExIHtcbiAgICAgIGhlaWdodDogOTEuNjY2NjclOyB9XG4gICAgLmdyaWQteSA+IC5sYXJnZS0xMiB7XG4gICAgICBoZWlnaHQ6IDEwMCU7IH0gfVxuXG4uZ3JpZC1wYWRkaW5nLXkgLmdyaWQtcGFkZGluZy15IHtcbiAgbWFyZ2luLXRvcDogLTAuNjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAtMC42MjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZ3JpZC1wYWRkaW5nLXkgLmdyaWQtcGFkZGluZy15IHtcbiAgICAgIG1hcmdpbi10b3A6IC0wLjkzNzVyZW07XG4gICAgICBtYXJnaW4tYm90dG9tOiAtMC45Mzc1cmVtOyB9IH1cblxuLmdyaWQtcGFkZGluZy15ID4gLmNlbGwge1xuICBwYWRkaW5nLXRvcDogMC42MjVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5ncmlkLXBhZGRpbmcteSA+IC5jZWxsIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMC45Mzc1cmVtOyB9IH1cblxuLmdyaWQtbWFyZ2luLXkge1xuICBtYXJnaW4tdG9wOiAtMC42MjVyZW07XG4gIG1hcmdpbi1ib3R0b206IC0wLjYyNXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5ncmlkLW1hcmdpbi15IHtcbiAgICAgIG1hcmdpbi10b3A6IC0wLjkzNzVyZW07XG4gICAgICBtYXJnaW4tYm90dG9tOiAtMC45Mzc1cmVtOyB9IH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuY2VsbCB7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxLjI1cmVtKTtcbiAgICBtYXJnaW4tdG9wOiAwLjYyNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjYyNXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5ncmlkLW1hcmdpbi15ID4gLmNlbGwge1xuICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7XG4gICAgICBtYXJnaW4tdG9wOiAwLjkzNzVyZW07XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjkzNzVyZW07IH0gfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5hdXRvIHtcbiAgICBoZWlnaHQ6IGF1dG87IH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc2hyaW5rIHtcbiAgICBoZWlnaHQ6IGF1dG87IH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtMSB7XG4gICAgaGVpZ2h0OiBjYWxjKDguMzMzMzMlIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtMiB7XG4gICAgaGVpZ2h0OiBjYWxjKDE2LjY2NjY3JSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTMge1xuICAgIGhlaWdodDogY2FsYygyNSUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC00IHtcbiAgICBoZWlnaHQ6IGNhbGMoMzMuMzMzMzMlIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtNSB7XG4gICAgaGVpZ2h0OiBjYWxjKDQxLjY2NjY3JSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTYge1xuICAgIGhlaWdodDogY2FsYyg1MCUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC03IHtcbiAgICBoZWlnaHQ6IGNhbGMoNTguMzMzMzMlIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtOCB7XG4gICAgaGVpZ2h0OiBjYWxjKDY2LjY2NjY3JSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTkge1xuICAgIGhlaWdodDogY2FsYyg3NSUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0xMCB7XG4gICAgaGVpZ2h0OiBjYWxjKDgzLjMzMzMzJSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTExIHtcbiAgICBoZWlnaHQ6IGNhbGMoOTEuNjY2NjclIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtMTIge1xuICAgIGhlaWdodDogY2FsYygxMDAlIC0gMS4yNXJlbSk7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5hdXRvIHtcbiAgICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLnNocmluayB7XG4gICAgICBoZWlnaHQ6IGF1dG87IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0xIHtcbiAgICAgIGhlaWdodDogY2FsYyg4LjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTIge1xuICAgICAgaGVpZ2h0OiBjYWxjKDE2LjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTMge1xuICAgICAgaGVpZ2h0OiBjYWxjKDI1JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTQge1xuICAgICAgaGVpZ2h0OiBjYWxjKDMzLjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTUge1xuICAgICAgaGVpZ2h0OiBjYWxjKDQxLjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTYge1xuICAgICAgaGVpZ2h0OiBjYWxjKDUwJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTcge1xuICAgICAgaGVpZ2h0OiBjYWxjKDU4LjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTgge1xuICAgICAgaGVpZ2h0OiBjYWxjKDY2LjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTkge1xuICAgICAgaGVpZ2h0OiBjYWxjKDc1JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTEwIHtcbiAgICAgIGhlaWdodDogY2FsYyg4My4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0xMSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoOTEuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtMTIge1xuICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tYXV0byB7XG4gICAgICBoZWlnaHQ6IGF1dG87IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tc2hyaW5rIHtcbiAgICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS0xIHtcbiAgICAgIGhlaWdodDogY2FsYyg4LjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS0yIHtcbiAgICAgIGhlaWdodDogY2FsYygxNi42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tMyB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMjUlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTQge1xuICAgICAgaGVpZ2h0OiBjYWxjKDMzLjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS01IHtcbiAgICAgIGhlaWdodDogY2FsYyg0MS42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tNiB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNTAlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTcge1xuICAgICAgaGVpZ2h0OiBjYWxjKDU4LjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS04IHtcbiAgICAgIGhlaWdodDogY2FsYyg2Ni42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tOSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNzUlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTEwIHtcbiAgICAgIGhlaWdodDogY2FsYyg4My4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tMTEge1xuICAgICAgaGVpZ2h0OiBjYWxjKDkxLjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS0xMiB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtYXV0byB7XG4gICAgICBoZWlnaHQ6IGF1dG87IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS1zaHJpbmsge1xuICAgICAgaGVpZ2h0OiBhdXRvOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtMSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoOC4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS0yIHtcbiAgICAgIGhlaWdodDogY2FsYygxNi42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS0zIHtcbiAgICAgIGhlaWdodDogY2FsYygyNSUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS00IHtcbiAgICAgIGhlaWdodDogY2FsYygzMy4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS01IHtcbiAgICAgIGhlaWdodDogY2FsYyg0MS42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS02IHtcbiAgICAgIGhlaWdodDogY2FsYyg1MCUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS03IHtcbiAgICAgIGhlaWdodDogY2FsYyg1OC4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS04IHtcbiAgICAgIGhlaWdodDogY2FsYyg2Ni42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS05IHtcbiAgICAgIGhlaWdodDogY2FsYyg3NSUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS0xMCB7XG4gICAgICBoZWlnaHQ6IGNhbGMoODMuMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtMTEge1xuICAgICAgaGVpZ2h0OiBjYWxjKDkxLjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLmxhcmdlLTEyIHtcbiAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMS44NzVyZW0pOyB9IH1cblxuLmdyaWQtZnJhbWUge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgd2lkdGg6IDEwMHZ3OyB9XG5cbi5jZWxsIC5ncmlkLWZyYW1lIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmNlbGwtYmxvY2sge1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgLW1zLW92ZXJmbG93LXN0eXBlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7IH1cblxuLmNlbGwtYmxvY2steSB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgLW1zLW92ZXJmbG93LXN0eXBlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7IH1cblxuLmNlbGwtYmxvY2stY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWF4LWhlaWdodDogMTAwJTsgfVxuICAuY2VsbC1ibG9jay1jb250YWluZXIgPiAuZ3JpZC14IHtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIGZsZXgtd3JhcDogbm93cmFwOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tZ3JpZC1mcmFtZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgd2lkdGg6IDEwMHZ3OyB9XG4gIC5jZWxsIC5tZWRpdW0tZ3JpZC1mcmFtZSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1lZGl1bS1jZWxsLWJsb2NrIHtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgLW1zLW92ZXJmbG93LXN0eXBlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7IH1cbiAgLm1lZGl1bS1jZWxsLWJsb2NrLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7IH1cbiAgICAubWVkaXVtLWNlbGwtYmxvY2stY29udGFpbmVyID4gLmdyaWQteCB7XG4gICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7IH1cbiAgLm1lZGl1bS1jZWxsLWJsb2NrLXkge1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgLW1zLW92ZXJmbG93LXN0eXBlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2UtZ3JpZC1mcmFtZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgd2lkdGg6IDEwMHZ3OyB9XG4gIC5jZWxsIC5sYXJnZS1ncmlkLWZyYW1lIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAubGFyZ2UtY2VsbC1ibG9jayB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgIC1tcy1vdmVyZmxvdy1zdHlwZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyOyB9XG4gIC5sYXJnZS1jZWxsLWJsb2NrLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7IH1cbiAgICAubGFyZ2UtY2VsbC1ibG9jay1jb250YWluZXIgPiAuZ3JpZC14IHtcbiAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDsgfVxuICAubGFyZ2UtY2VsbC1ibG9jay15IHtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgIC1tcy1vdmVyZmxvdy1zdHlwZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyOyB9IH1cblxuLmdyaWQteS5ncmlkLWZyYW1lIHtcbiAgd2lkdGg6IGF1dG87XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBoZWlnaHQ6IDEwMHZoOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5ncmlkLXkubWVkaXVtLWdyaWQtZnJhbWUge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGhlaWdodDogMTAwdmg7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuZ3JpZC15LmxhcmdlLWdyaWQtZnJhbWUge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGhlaWdodDogMTAwdmg7IH0gfVxuXG4uY2VsbCAuZ3JpZC15LmdyaWQtZnJhbWUge1xuICBoZWlnaHQ6IDEwMCU7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmNlbGwgLmdyaWQteS5tZWRpdW0tZ3JpZC1mcmFtZSB7XG4gICAgaGVpZ2h0OiAxMDAlOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmNlbGwgLmdyaWQteS5sYXJnZS1ncmlkLWZyYW1lIHtcbiAgICBoZWlnaHQ6IDEwMCU7IH0gfVxuXG4uZ3JpZC1tYXJnaW4teSB7XG4gIG1hcmdpbi10b3A6IC0wLjYyNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogLTAuNjI1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdyaWQtbWFyZ2luLXkge1xuICAgICAgbWFyZ2luLXRvcDogLTAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IC0wLjkzNzVyZW07IH0gfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5jZWxsIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEuMjVyZW0pO1xuICAgIG1hcmdpbi10b3A6IDAuNjI1cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDAuNjI1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuY2VsbCB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTtcbiAgICAgIG1hcmdpbi10b3A6IDAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuOTM3NXJlbTsgfSB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLmF1dG8ge1xuICAgIGhlaWdodDogYXV0bzsgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zaHJpbmsge1xuICAgIGhlaWdodDogYXV0bzsgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0xIHtcbiAgICBoZWlnaHQ6IGNhbGMoOC4zMzMzMyUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0yIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTYuNjY2NjclIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtMyB7XG4gICAgaGVpZ2h0OiBjYWxjKDI1JSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTQge1xuICAgIGhlaWdodDogY2FsYygzMy4zMzMzMyUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC01IHtcbiAgICBoZWlnaHQ6IGNhbGMoNDEuNjY2NjclIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtNiB7XG4gICAgaGVpZ2h0OiBjYWxjKDUwJSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTcge1xuICAgIGhlaWdodDogY2FsYyg1OC4zMzMzMyUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC04IHtcbiAgICBoZWlnaHQ6IGNhbGMoNjYuNjY2NjclIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtOSB7XG4gICAgaGVpZ2h0OiBjYWxjKDc1JSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTEwIHtcbiAgICBoZWlnaHQ6IGNhbGMoODMuMzMzMzMlIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtMTEge1xuICAgIGhlaWdodDogY2FsYyg5MS42NjY2NyUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0xMiB7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxLjI1cmVtKTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5ncmlkLW1hcmdpbi15ID4gLmF1dG8ge1xuICAgICAgaGVpZ2h0OiBhdXRvOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuc2hyaW5rIHtcbiAgICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTEge1xuICAgICAgaGVpZ2h0OiBjYWxjKDguMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtMiB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTYuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtMyB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMjUlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtNCB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMzMuMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtNSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNDEuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtNiB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNTAlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtNyB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNTguMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtOCB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNjYuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtOSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNzUlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtMTAge1xuICAgICAgaGVpZ2h0OiBjYWxjKDgzLjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTExIHtcbiAgICAgIGhlaWdodDogY2FsYyg5MS42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0xMiB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS1hdXRvIHtcbiAgICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS1zaHJpbmsge1xuICAgICAgaGVpZ2h0OiBhdXRvOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTEge1xuICAgICAgaGVpZ2h0OiBjYWxjKDguMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTIge1xuICAgICAgaGVpZ2h0OiBjYWxjKDE2LjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS0zIHtcbiAgICAgIGhlaWdodDogY2FsYygyNSUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tNCB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMzMuMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTUge1xuICAgICAgaGVpZ2h0OiBjYWxjKDQxLjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS02IHtcbiAgICAgIGhlaWdodDogY2FsYyg1MCUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tNyB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNTguMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTgge1xuICAgICAgaGVpZ2h0OiBjYWxjKDY2LjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS05IHtcbiAgICAgIGhlaWdodDogY2FsYyg3NSUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tMTAge1xuICAgICAgaGVpZ2h0OiBjYWxjKDgzLjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS0xMSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoOTEuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTEyIHtcbiAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMS44NzVyZW0pOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS1hdXRvIHtcbiAgICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLmxhcmdlLXNocmluayB7XG4gICAgICBoZWlnaHQ6IGF1dG87IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS0xIHtcbiAgICAgIGhlaWdodDogY2FsYyg4LjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLmxhcmdlLTIge1xuICAgICAgaGVpZ2h0OiBjYWxjKDE2LjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLmxhcmdlLTMge1xuICAgICAgaGVpZ2h0OiBjYWxjKDI1JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLmxhcmdlLTQge1xuICAgICAgaGVpZ2h0OiBjYWxjKDMzLjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLmxhcmdlLTUge1xuICAgICAgaGVpZ2h0OiBjYWxjKDQxLjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLmxhcmdlLTYge1xuICAgICAgaGVpZ2h0OiBjYWxjKDUwJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLmxhcmdlLTcge1xuICAgICAgaGVpZ2h0OiBjYWxjKDU4LjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLmxhcmdlLTgge1xuICAgICAgaGVpZ2h0OiBjYWxjKDY2LjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLmxhcmdlLTkge1xuICAgICAgaGVpZ2h0OiBjYWxjKDc1JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLmxhcmdlLTEwIHtcbiAgICAgIGhlaWdodDogY2FsYyg4My4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS0xMSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoOTEuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtMTIge1xuICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7IH0gfVxuXG4uZ3JpZC1mcmFtZS5ncmlkLW1hcmdpbi15IHtcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoICsgMS4yNXJlbSk7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZ3JpZC1mcmFtZS5ncmlkLW1hcmdpbi15IHtcbiAgICAgIGhlaWdodDogY2FsYygxMDB2aCArIDEuODc1cmVtKTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmdyaWQtZnJhbWUuZ3JpZC1tYXJnaW4teSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggKyAxLjg3NXJlbSk7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuZ3JpZC1tYXJnaW4teS5tZWRpdW0tZ3JpZC1mcmFtZSB7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMHZoICsgMS44NzVyZW0pOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmdyaWQtbWFyZ2luLXkubGFyZ2UtZ3JpZC1mcmFtZSB7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMHZoICsgMS44NzVyZW0pOyB9IH1cblxuZGl2LFxuZGwsXG5kdCxcbmRkLFxudWwsXG5vbCxcbmxpLFxuaDEsXG5oMixcbmgzLFxuaDQsXG4uYWJvdXRfX2hlYWRlciBwLFxuaDUsXG5oNixcbi5hdWN0aW9uLWNhdGFsb2d1ZSAuYXVjdGlvbi1jYXRhbG9ndWVfX2l0ZW0gLmF1Y3Rpb24tY2F0YWxvZ3VlX19pdGVtX19oZWFkaW5nLFxucHJlLFxuZm9ybSxcbnAsXG5ibG9ja3F1b3RlLFxudGgsXG50ZCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG5wIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogMS42O1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5OyB9XG5cbmVtLFxuaSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuc3Ryb25nLFxuYiB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxuXG5oMSwgLmgxLFxuaDIsIC5oMixcbmgzLCAuaDMsXG5oNCxcbi5hYm91dF9faGVhZGVyIHAsIC5oNCxcbmg1LCAuaDUsXG5oNixcbi5hdWN0aW9uLWNhdGFsb2d1ZSAuYXVjdGlvbi1jYXRhbG9ndWVfX2l0ZW0gLmF1Y3Rpb24tY2F0YWxvZ3VlX19pdGVtX19oZWFkaW5nLCAuaDYge1xuICBmb250LWZhbWlseTogXCJBdmVuaXIgTFQgVzAxXzU1IFJvbWFuMTQ3NTUyMFwiLCBTYW5zLXNlcmlmO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5OyB9XG4gIGgxIHNtYWxsLCAuaDEgc21hbGwsXG4gIGgyIHNtYWxsLCAuaDIgc21hbGwsXG4gIGgzIHNtYWxsLCAuaDMgc21hbGwsXG4gIGg0IHNtYWxsLFxuICAuYWJvdXRfX2hlYWRlciBwIHNtYWxsLCAuaDQgc21hbGwsXG4gIGg1IHNtYWxsLCAuaDUgc21hbGwsXG4gIGg2IHNtYWxsLFxuICAuYXVjdGlvbi1jYXRhbG9ndWUgLmF1Y3Rpb24tY2F0YWxvZ3VlX19pdGVtIC5hdWN0aW9uLWNhdGFsb2d1ZV9faXRlbV9faGVhZGluZyBzbWFsbCwgLmg2IHNtYWxsIHtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBjb2xvcjogI0RFREVERTsgfVxuXG5oMSwgLmgxIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oMiwgLmgyIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuaDMsIC5oMyB7XG4gIGZvbnQtc2l6ZTogMS4xODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuXG5oNCxcbi5hYm91dF9faGVhZGVyIHAsIC5oNCB7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oNSwgLmg1IHtcbiAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5cbmg2LFxuLmF1Y3Rpb24tY2F0YWxvZ3VlIC5hdWN0aW9uLWNhdGFsb2d1ZV9faXRlbSAuYXVjdGlvbi1jYXRhbG9ndWVfX2l0ZW1fX2hlYWRpbmcsIC5oNiB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIGgxLCAuaDEge1xuICAgIGZvbnQtc2l6ZTogM3JlbTsgfVxuICBoMiwgLmgyIHtcbiAgICBmb250LXNpemU6IDIuNXJlbTsgfVxuICBoMywgLmgzIHtcbiAgICBmb250LXNpemU6IDEuOTM3NXJlbTsgfVxuICBcbiAgaDQsXG4gIC5hYm91dF9faGVhZGVyIHAsIC5oNCB7XG4gICAgZm9udC1zaXplOiAxLjU2MjVyZW07IH1cbiAgaDUsIC5oNSB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG4gIFxuICBoNixcbiAgLmF1Y3Rpb24tY2F0YWxvZ3VlIC5hdWN0aW9uLWNhdGFsb2d1ZV9faXRlbSAuYXVjdGlvbi1jYXRhbG9ndWVfX2l0ZW1fX2hlYWRpbmcsIC5oNiB7XG4gICAgZm9udC1zaXplOiAxcmVtOyB9IH1cblxuYSwgLnN1Yi1tZW51IC5mb250LS1ibGFjayxcbi5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrIHtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiAjODA4MDgwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICBcbiAgYTpob3ZlcixcbiAgLnN1Yi1tZW51IC5mb250LS1ibGFjazpob3ZlcixcbiAgLmNvcHlyaWdodCAuZm9udC0tYmxhY2s6aG92ZXIsIGE6Zm9jdXMsIC5zdWItbWVudSAuZm9udC0tYmxhY2s6Zm9jdXMsXG4gIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrOmZvY3VzIHtcbiAgICBjb2xvcjogIzZlNmU2ZTsgfVxuICBhIGltZywgLnN1Yi1tZW51IC5mb250LS1ibGFjayBpbWcsIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrIGltZyB7XG4gICAgYm9yZGVyOiAwOyB9XG5cbmhyIHtcbiAgY2xlYXI6IGJvdGg7XG4gIG1heC13aWR0aDogMTA2LjI1cmVtO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbjogMS4yNXJlbSBhdXRvO1xuICBib3JkZXItdG9wOiAwO1xuICBib3JkZXItcmlnaHQ6IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjVmNWY1O1xuICBib3JkZXItbGVmdDogMDsgfVxuXG51bCxcbm9sLFxuZGwge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlO1xuICBsaW5lLWhlaWdodDogMS42OyB9XG5cbmxpIHtcbiAgZm9udC1zaXplOiBpbmhlcml0OyB9XG5cbnVsIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgfVxuXG5vbCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtOyB9XG5cbnVsIHVsLCBvbCB1bCwgdWwgb2wsIG9sIG9sIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuZGwge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gIGRsIGR0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjNyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuYmxvY2txdW90ZSB7XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIHBhZGRpbmc6IDAuNTYyNXJlbSAxLjI1cmVtIDAgMS4xODc1cmVtO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNERURFREU7IH1cbiAgYmxvY2txdW90ZSwgYmxvY2txdW90ZSBwIHtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIGNvbG9yOiAjQUFBQUFBOyB9XG5cbmNpdGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gIGNvbG9yOiAjQUFBQUFBOyB9XG4gIGNpdGU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIuKAlCBcIjsgfVxuXG5hYmJyLCBhYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzBhMGEwYTtcbiAgY3Vyc29yOiBoZWxwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAwOyB9XG5cbmNvZGUge1xuICBwYWRkaW5nOiAwLjEyNXJlbSAwLjMxMjVyZW0gMC4wNjI1cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjREVERURFO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICBmb250LWZhbWlseTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICMwYTBhMGE7IH1cblxua2JkIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwLjEyNXJlbSAwLjI1cmVtIDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gIGZvbnQtZmFtaWx5OiBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgQ291cmllciwgbW9ub3NwYWNlO1xuICBjb2xvcjogIzBhMGEwYTsgfVxuXG4uc3ViaGVhZGVyIHtcbiAgbWFyZ2luLXRvcDogMC4ycmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIGNvbG9yOiAjQUFBQUFBOyB9XG5cbi5sZWFkIHtcbiAgZm9udC1zaXplOiAxMjUlO1xuICBsaW5lLWhlaWdodDogMS42OyB9XG5cbi5zdGF0IHtcbiAgZm9udC1zaXplOiAyLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG4gIHAgKyAuc3RhdCB7XG4gICAgbWFyZ2luLXRvcDogLTFyZW07IH1cblxudWwubm8tYnVsbGV0LCBvbC5uby1idWxsZXQge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuXG4udGV4dC1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4udGV4dC1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbi50ZXh0LWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4udGV4dC1qdXN0aWZ5IHtcbiAgdGV4dC1hbGlnbjoganVzdGlmeTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLXRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAubWVkaXVtLXRleHQtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC5tZWRpdW0tdGV4dC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAubWVkaXVtLXRleHQtanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS10ZXh0LWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLmxhcmdlLXRleHQtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC5sYXJnZS10ZXh0LWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5sYXJnZS10ZXh0LWp1c3RpZnkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7IH0gfVxuXG4uc2hvdy1mb3ItcHJpbnQge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuQG1lZGlhIHByaW50IHtcbiAgKiB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDsgfVxuICAuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgLmhpZGUtZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgdGFibGUuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgdGhlYWQuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gIHRib2R5LnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICB0ci5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgdGQuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICB0aC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIGEsIC5zdWItbWVudSAuZm9udC0tYmxhY2ssXG4gIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrLFxuICBhOnZpc2l0ZWQsXG4gIC5zdWItbWVudSAuZm9udC0tYmxhY2s6dmlzaXRlZCxcbiAgLmNvcHlyaWdodCAuZm9udC0tYmxhY2s6dmlzaXRlZCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgYVtocmVmXTphZnRlciwgLnN1Yi1tZW51IC5mb250LS1ibGFja1tocmVmXTphZnRlcixcbiAgLmNvcHlyaWdodCAuZm9udC0tYmxhY2tbaHJlZl06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKGhyZWYpIFwiKVwiOyB9XG4gIC5pciBhOmFmdGVyLCAuaXIgLnN1Yi1tZW51IC5mb250LS1ibGFjazphZnRlciwgLnN1Yi1tZW51IC5pciAuZm9udC0tYmxhY2s6YWZ0ZXIsXG4gIC5pciAuY29weXJpZ2h0IC5mb250LS1ibGFjazphZnRlciwgLmNvcHlyaWdodCAuaXIgLmZvbnQtLWJsYWNrOmFmdGVyLFxuICBhW2hyZWZePSdqYXZhc2NyaXB0OiddOmFmdGVyLFxuICAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrW2hyZWZePSdqYXZhc2NyaXB0OiddOmFmdGVyLFxuICAuY29weXJpZ2h0IC5mb250LS1ibGFja1tocmVmXj0namF2YXNjcmlwdDonXTphZnRlcixcbiAgYVtocmVmXj0nIyddOmFmdGVyLFxuICAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrW2hyZWZePScjJ106YWZ0ZXIsXG4gIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrW2hyZWZePScjJ106YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnOyB9XG4gIGFiYnJbdGl0bGVdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7IH1cbiAgcHJlLFxuICBibG9ja3F1b3RlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjQUFBQUFBO1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuICB0aGVhZCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG4gIHRyLFxuICBpbWcge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuICBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIEBwYWdlIHtcbiAgICBtYXJnaW46IDAuNWNtOyB9XG4gIHAsXG4gIGgyLFxuICBoMyB7XG4gICAgb3JwaGFuczogMztcbiAgICB3aWRvd3M6IDM7IH1cbiAgaDIsXG4gIGgzIHtcbiAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfVxuICAucHJpbnQtYnJlYWstaW5zaWRlIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXV0bzsgfSB9XG5cbi5idXR0b24sIC5idXR0b24tLW91dGxpbmUtb25seSwgI25ld3NsZXR0ZXItc2lnbnVwICNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsIC5idXR0b24tLXRleHQtb25seSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAwIDAgMi41cmVtIDA7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBwYWRkaW5nOiAwLjg1ZW0gMWVtO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dDtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgY29sb3I6ICNmZWZlZmU7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5idXR0b24sIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuYnV0dG9uLS1vdXRsaW5lLW9ubHksIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAjbmV3c2xldHRlci1zaWdudXAgI21jLWVtYmVkZGVkLXN1YnNjcmliZSwgI25ld3NsZXR0ZXItc2lnbnVwIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLmJ1dHRvbi0tdGV4dC1vbmx5IHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5idXR0b246aG92ZXIsIC5idXR0b24tLW91dGxpbmUtb25seTpob3ZlciwgI25ld3NsZXR0ZXItc2lnbnVwICNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6aG92ZXIsIC5idXR0b24tLXRleHQtb25seTpob3ZlciwgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbi0tb3V0bGluZS1vbmx5OmZvY3VzLCAjbmV3c2xldHRlci1zaWdudXAgI21jLWVtYmVkZGVkLXN1YnNjcmliZTpmb2N1cywgLmJ1dHRvbi0tdGV4dC1vbmx5OmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLnRpbnksIC50aW55LmJ1dHRvbi0tb3V0bGluZS1vbmx5LCAjbmV3c2xldHRlci1zaWdudXAgLnRpbnkjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAudGlueS5idXR0b24tLXRleHQtb25seSB7XG4gICAgZm9udC1zaXplOiAwLjZyZW07IH1cbiAgLmJ1dHRvbi5zbWFsbCwgLnNtYWxsLmJ1dHRvbi0tb3V0bGluZS1vbmx5LCAjbmV3c2xldHRlci1zaWdudXAgLnNtYWxsI21jLWVtYmVkZGVkLXN1YnNjcmliZSwgLnNtYWxsLmJ1dHRvbi0tdGV4dC1vbmx5IHtcbiAgICBmb250LXNpemU6IDAuNzVyZW07IH1cbiAgLmJ1dHRvbi5sYXJnZSwgLmxhcmdlLmJ1dHRvbi0tb3V0bGluZS1vbmx5LCAjbmV3c2xldHRlci1zaWdudXAgLmxhcmdlI21jLWVtYmVkZGVkLXN1YnNjcmliZSwgLmxhcmdlLmJ1dHRvbi0tdGV4dC1vbmx5IHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07IH1cbiAgLmJ1dHRvbi5leHBhbmRlZCwgLmV4cGFuZGVkLmJ1dHRvbi0tb3V0bGluZS1vbmx5LCAjbmV3c2xldHRlci1zaWdudXAgLmV4cGFuZGVkI21jLWVtYmVkZGVkLXN1YnNjcmliZSwgLmV4cGFuZGVkLmJ1dHRvbi0tdGV4dC1vbmx5IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLmJ1dHRvbi5wcmltYXJ5LCAucHJpbWFyeS5idXR0b24tLW91dGxpbmUtb25seSwgI25ld3NsZXR0ZXItc2lnbnVwIC5wcmltYXJ5I21jLWVtYmVkZGVkLXN1YnNjcmliZSwgLnByaW1hcnkuYnV0dG9uLS10ZXh0LW9ubHkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAuYnV0dG9uLnByaW1hcnk6aG92ZXIsIC5wcmltYXJ5LmJ1dHRvbi0tb3V0bGluZS1vbmx5OmhvdmVyLCAjbmV3c2xldHRlci1zaWdudXAgLnByaW1hcnkjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyLCAucHJpbWFyeS5idXR0b24tLXRleHQtb25seTpob3ZlciwgLmJ1dHRvbi5wcmltYXJ5OmZvY3VzLCAucHJpbWFyeS5idXR0b24tLW91dGxpbmUtb25seTpmb2N1cywgI25ld3NsZXR0ZXItc2lnbnVwIC5wcmltYXJ5I21jLWVtYmVkZGVkLXN1YnNjcmliZTpmb2N1cywgLnByaW1hcnkuYnV0dG9uLS10ZXh0LW9ubHk6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLnNlY29uZGFyeSwgLnNlY29uZGFyeS5idXR0b24tLW91dGxpbmUtb25seSwgI25ld3NsZXR0ZXItc2lnbnVwIC5zZWNvbmRhcnkjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAuc2Vjb25kYXJ5LmJ1dHRvbi0tdGV4dC1vbmx5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gICAgLmJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIsIC5zZWNvbmRhcnkuYnV0dG9uLS1vdXRsaW5lLW9ubHk6aG92ZXIsICNuZXdzbGV0dGVyLXNpZ251cCAuc2Vjb25kYXJ5I21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3ZlciwgLnNlY29uZGFyeS5idXR0b24tLXRleHQtb25seTpob3ZlciwgLmJ1dHRvbi5zZWNvbmRhcnk6Zm9jdXMsIC5zZWNvbmRhcnkuYnV0dG9uLS1vdXRsaW5lLW9ubHk6Zm9jdXMsICNuZXdzbGV0dGVyLXNpZ251cCAuc2Vjb25kYXJ5I21jLWVtYmVkZGVkLXN1YnNjcmliZTpmb2N1cywgLnNlY29uZGFyeS5idXR0b24tLXRleHQtb25seTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjY2NjO1xuICAgICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmJ1dHRvbi5zdWNjZXNzLCAuc3VjY2Vzcy5idXR0b24tLW91dGxpbmUtb25seSwgI25ld3NsZXR0ZXItc2lnbnVwIC5zdWNjZXNzI21jLWVtYmVkZGVkLXN1YnNjcmliZSwgLnN1Y2Nlc3MuYnV0dG9uLS10ZXh0LW9ubHkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzYWRiNzY7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgICAuYnV0dG9uLnN1Y2Nlc3M6aG92ZXIsIC5zdWNjZXNzLmJ1dHRvbi0tb3V0bGluZS1vbmx5OmhvdmVyLCAjbmV3c2xldHRlci1zaWdudXAgLnN1Y2Nlc3MjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyLCAuc3VjY2Vzcy5idXR0b24tLXRleHQtb25seTpob3ZlciwgLmJ1dHRvbi5zdWNjZXNzOmZvY3VzLCAuc3VjY2Vzcy5idXR0b24tLW91dGxpbmUtb25seTpmb2N1cywgI25ld3NsZXR0ZXItc2lnbnVwIC5zdWNjZXNzI21jLWVtYmVkZGVkLXN1YnNjcmliZTpmb2N1cywgLnN1Y2Nlc3MuYnV0dG9uLS10ZXh0LW9ubHk6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzIyYmI1YjtcbiAgICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5idXR0b24ud2FybmluZywgLndhcm5pbmcuYnV0dG9uLS1vdXRsaW5lLW9ubHksICNuZXdzbGV0dGVyLXNpZ251cCAud2FybmluZyNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsIC53YXJuaW5nLmJ1dHRvbi0tdGV4dC1vbmx5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhZTAwO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gICAgLmJ1dHRvbi53YXJuaW5nOmhvdmVyLCAud2FybmluZy5idXR0b24tLW91dGxpbmUtb25seTpob3ZlciwgI25ld3NsZXR0ZXItc2lnbnVwIC53YXJuaW5nI21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3ZlciwgLndhcm5pbmcuYnV0dG9uLS10ZXh0LW9ubHk6aG92ZXIsIC5idXR0b24ud2FybmluZzpmb2N1cywgLndhcm5pbmcuYnV0dG9uLS1vdXRsaW5lLW9ubHk6Zm9jdXMsICNuZXdzbGV0dGVyLXNpZ251cCAud2FybmluZyNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6Zm9jdXMsIC53YXJuaW5nLmJ1dHRvbi0tdGV4dC1vbmx5OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjYzhiMDA7XG4gICAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAuYnV0dG9uLmFsZXJ0LCAuYWxlcnQuYnV0dG9uLS1vdXRsaW5lLW9ubHksICNuZXdzbGV0dGVyLXNpZ251cCAuYWxlcnQjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAuYWxlcnQuYnV0dG9uLS10ZXh0LW9ubHkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjYzRiMzc7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAuYnV0dG9uLmFsZXJ0OmhvdmVyLCAuYWxlcnQuYnV0dG9uLS1vdXRsaW5lLW9ubHk6aG92ZXIsICNuZXdzbGV0dGVyLXNpZ251cCAuYWxlcnQjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyLCAuYWxlcnQuYnV0dG9uLS10ZXh0LW9ubHk6aG92ZXIsIC5idXR0b24uYWxlcnQ6Zm9jdXMsIC5hbGVydC5idXR0b24tLW91dGxpbmUtb25seTpmb2N1cywgI25ld3NsZXR0ZXItc2lnbnVwIC5hbGVydCNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6Zm9jdXMsIC5hbGVydC5idXR0b24tLXRleHQtb25seTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTUzYjJhO1xuICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJ1dHRvbi5kaXNhYmxlZCwgLmRpc2FibGVkLmJ1dHRvbi0tb3V0bGluZS1vbmx5LCAjbmV3c2xldHRlci1zaWdudXAgLmRpc2FibGVkI21jLWVtYmVkZGVkLXN1YnNjcmliZSwgLmRpc2FibGVkLmJ1dHRvbi0tdGV4dC1vbmx5LCAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi0tb3V0bGluZS1vbmx5W2Rpc2FibGVkXSwgI25ld3NsZXR0ZXItc2lnbnVwICNtYy1lbWJlZGRlZC1zdWJzY3JpYmVbZGlzYWJsZWRdLCAuYnV0dG9uLS10ZXh0LW9ubHlbZGlzYWJsZWRdIHtcbiAgICBvcGFjaXR5OiAwLjI1O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAuYnV0dG9uLmRpc2FibGVkLCAuZGlzYWJsZWQuYnV0dG9uLS1vdXRsaW5lLW9ubHksICNuZXdzbGV0dGVyLXNpZ251cCAuZGlzYWJsZWQjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAuZGlzYWJsZWQuYnV0dG9uLS10ZXh0LW9ubHksIC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5kaXNhYmxlZC5idXR0b24tLW91dGxpbmUtb25seTpob3ZlciwgI25ld3NsZXR0ZXItc2lnbnVwIC5kaXNhYmxlZCNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6aG92ZXIsIC5kaXNhYmxlZC5idXR0b24tLXRleHQtb25seTpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmRpc2FibGVkLmJ1dHRvbi0tb3V0bGluZS1vbmx5OmZvY3VzLCAjbmV3c2xldHRlci1zaWdudXAgLmRpc2FibGVkI21jLWVtYmVkZGVkLXN1YnNjcmliZTpmb2N1cywgLmRpc2FibGVkLmJ1dHRvbi0tdGV4dC1vbmx5OmZvY3VzLCAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi0tb3V0bGluZS1vbmx5W2Rpc2FibGVkXSwgI25ld3NsZXR0ZXItc2lnbnVwICNtYy1lbWJlZGRlZC1zdWJzY3JpYmVbZGlzYWJsZWRdLCAuYnV0dG9uLS10ZXh0LW9ubHlbZGlzYWJsZWRdLCAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi0tb3V0bGluZS1vbmx5W2Rpc2FibGVkXTpob3ZlciwgI25ld3NsZXR0ZXItc2lnbnVwICNtYy1lbWJlZGRlZC1zdWJzY3JpYmVbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLS10ZXh0LW9ubHlbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi0tb3V0bGluZS1vbmx5W2Rpc2FibGVkXTpmb2N1cywgI25ld3NsZXR0ZXItc2lnbnVwICNtYy1lbWJlZGRlZC1zdWJzY3JpYmVbZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLS10ZXh0LW9ubHlbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgIC5idXR0b24uZGlzYWJsZWQucHJpbWFyeSwgLmRpc2FibGVkLnByaW1hcnkuYnV0dG9uLS1vdXRsaW5lLW9ubHksICNuZXdzbGV0dGVyLXNpZ251cCAuZGlzYWJsZWQucHJpbWFyeSNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsIC5kaXNhYmxlZC5wcmltYXJ5LmJ1dHRvbi0tdGV4dC1vbmx5LCAuYnV0dG9uW2Rpc2FibGVkXS5wcmltYXJ5LCAuYnV0dG9uLS1vdXRsaW5lLW9ubHlbZGlzYWJsZWRdLnByaW1hcnksICNuZXdzbGV0dGVyLXNpZ251cCAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlW2Rpc2FibGVkXS5wcmltYXJ5LCAuYnV0dG9uLS10ZXh0LW9ubHlbZGlzYWJsZWRdLnByaW1hcnkge1xuICAgICAgb3BhY2l0eTogMC4yNTtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAgIC5idXR0b24uZGlzYWJsZWQucHJpbWFyeSwgLmRpc2FibGVkLnByaW1hcnkuYnV0dG9uLS1vdXRsaW5lLW9ubHksICNuZXdzbGV0dGVyLXNpZ251cCAuZGlzYWJsZWQucHJpbWFyeSNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsIC5kaXNhYmxlZC5wcmltYXJ5LmJ1dHRvbi0tdGV4dC1vbmx5LCAuYnV0dG9uLmRpc2FibGVkLnByaW1hcnk6aG92ZXIsIC5kaXNhYmxlZC5wcmltYXJ5LmJ1dHRvbi0tb3V0bGluZS1vbmx5OmhvdmVyLCAjbmV3c2xldHRlci1zaWdudXAgLmRpc2FibGVkLnByaW1hcnkjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyLCAuZGlzYWJsZWQucHJpbWFyeS5idXR0b24tLXRleHQtb25seTpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZC5wcmltYXJ5OmZvY3VzLCAuZGlzYWJsZWQucHJpbWFyeS5idXR0b24tLW91dGxpbmUtb25seTpmb2N1cywgI25ld3NsZXR0ZXItc2lnbnVwIC5kaXNhYmxlZC5wcmltYXJ5I21jLWVtYmVkZGVkLXN1YnNjcmliZTpmb2N1cywgLmRpc2FibGVkLnByaW1hcnkuYnV0dG9uLS10ZXh0LW9ubHk6Zm9jdXMsIC5idXR0b25bZGlzYWJsZWRdLnByaW1hcnksIC5idXR0b24tLW91dGxpbmUtb25seVtkaXNhYmxlZF0ucHJpbWFyeSwgI25ld3NsZXR0ZXItc2lnbnVwICNtYy1lbWJlZGRlZC1zdWJzY3JpYmVbZGlzYWJsZWRdLnByaW1hcnksIC5idXR0b24tLXRleHQtb25seVtkaXNhYmxlZF0ucHJpbWFyeSwgLmJ1dHRvbltkaXNhYmxlZF0ucHJpbWFyeTpob3ZlciwgLmJ1dHRvbi0tb3V0bGluZS1vbmx5W2Rpc2FibGVkXS5wcmltYXJ5OmhvdmVyLCAjbmV3c2xldHRlci1zaWdudXAgI21jLWVtYmVkZGVkLXN1YnNjcmliZVtkaXNhYmxlZF0ucHJpbWFyeTpob3ZlciwgLmJ1dHRvbi0tdGV4dC1vbmx5W2Rpc2FibGVkXS5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXS5wcmltYXJ5OmZvY3VzLCAuYnV0dG9uLS1vdXRsaW5lLW9ubHlbZGlzYWJsZWRdLnByaW1hcnk6Zm9jdXMsICNuZXdzbGV0dGVyLXNpZ251cCAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlW2Rpc2FibGVkXS5wcmltYXJ5OmZvY3VzLCAuYnV0dG9uLS10ZXh0LW9ubHlbZGlzYWJsZWRdLnByaW1hcnk6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xuICAgICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgIC5idXR0b24uZGlzYWJsZWQuc2Vjb25kYXJ5LCAuZGlzYWJsZWQuc2Vjb25kYXJ5LmJ1dHRvbi0tb3V0bGluZS1vbmx5LCAjbmV3c2xldHRlci1zaWdudXAgLmRpc2FibGVkLnNlY29uZGFyeSNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsIC5kaXNhYmxlZC5zZWNvbmRhcnkuYnV0dG9uLS10ZXh0LW9ubHksIC5idXR0b25bZGlzYWJsZWRdLnNlY29uZGFyeSwgLmJ1dHRvbi0tb3V0bGluZS1vbmx5W2Rpc2FibGVkXS5zZWNvbmRhcnksICNuZXdzbGV0dGVyLXNpZ251cCAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlW2Rpc2FibGVkXS5zZWNvbmRhcnksIC5idXR0b24tLXRleHQtb25seVtkaXNhYmxlZF0uc2Vjb25kYXJ5IHtcbiAgICAgIG9wYWNpdHk6IDAuMjU7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgICAuYnV0dG9uLmRpc2FibGVkLnNlY29uZGFyeSwgLmRpc2FibGVkLnNlY29uZGFyeS5idXR0b24tLW91dGxpbmUtb25seSwgI25ld3NsZXR0ZXItc2lnbnVwIC5kaXNhYmxlZC5zZWNvbmRhcnkjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAuZGlzYWJsZWQuc2Vjb25kYXJ5LmJ1dHRvbi0tdGV4dC1vbmx5LCAuYnV0dG9uLmRpc2FibGVkLnNlY29uZGFyeTpob3ZlciwgLmRpc2FibGVkLnNlY29uZGFyeS5idXR0b24tLW91dGxpbmUtb25seTpob3ZlciwgI25ld3NsZXR0ZXItc2lnbnVwIC5kaXNhYmxlZC5zZWNvbmRhcnkjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyLCAuZGlzYWJsZWQuc2Vjb25kYXJ5LmJ1dHRvbi0tdGV4dC1vbmx5OmhvdmVyLCAuYnV0dG9uLmRpc2FibGVkLnNlY29uZGFyeTpmb2N1cywgLmRpc2FibGVkLnNlY29uZGFyeS5idXR0b24tLW91dGxpbmUtb25seTpmb2N1cywgI25ld3NsZXR0ZXItc2lnbnVwIC5kaXNhYmxlZC5zZWNvbmRhcnkjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmZvY3VzLCAuZGlzYWJsZWQuc2Vjb25kYXJ5LmJ1dHRvbi0tdGV4dC1vbmx5OmZvY3VzLCAuYnV0dG9uW2Rpc2FibGVkXS5zZWNvbmRhcnksIC5idXR0b24tLW91dGxpbmUtb25seVtkaXNhYmxlZF0uc2Vjb25kYXJ5LCAjbmV3c2xldHRlci1zaWdudXAgI21jLWVtYmVkZGVkLXN1YnNjcmliZVtkaXNhYmxlZF0uc2Vjb25kYXJ5LCAuYnV0dG9uLS10ZXh0LW9ubHlbZGlzYWJsZWRdLnNlY29uZGFyeSwgLmJ1dHRvbltkaXNhYmxlZF0uc2Vjb25kYXJ5OmhvdmVyLCAuYnV0dG9uLS1vdXRsaW5lLW9ubHlbZGlzYWJsZWRdLnNlY29uZGFyeTpob3ZlciwgI25ld3NsZXR0ZXItc2lnbnVwICNtYy1lbWJlZGRlZC1zdWJzY3JpYmVbZGlzYWJsZWRdLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi0tdGV4dC1vbmx5W2Rpc2FibGVkXS5zZWNvbmRhcnk6aG92ZXIsIC5idXR0b25bZGlzYWJsZWRdLnNlY29uZGFyeTpmb2N1cywgLmJ1dHRvbi0tb3V0bGluZS1vbmx5W2Rpc2FibGVkXS5zZWNvbmRhcnk6Zm9jdXMsICNuZXdzbGV0dGVyLXNpZ251cCAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlW2Rpc2FibGVkXS5zZWNvbmRhcnk6Zm9jdXMsIC5idXR0b24tLXRleHQtb25seVtkaXNhYmxlZF0uc2Vjb25kYXJ5OmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgICAuYnV0dG9uLmRpc2FibGVkLnN1Y2Nlc3MsIC5kaXNhYmxlZC5zdWNjZXNzLmJ1dHRvbi0tb3V0bGluZS1vbmx5LCAjbmV3c2xldHRlci1zaWdudXAgLmRpc2FibGVkLnN1Y2Nlc3MjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAuZGlzYWJsZWQuc3VjY2Vzcy5idXR0b24tLXRleHQtb25seSwgLmJ1dHRvbltkaXNhYmxlZF0uc3VjY2VzcywgLmJ1dHRvbi0tb3V0bGluZS1vbmx5W2Rpc2FibGVkXS5zdWNjZXNzLCAjbmV3c2xldHRlci1zaWdudXAgI21jLWVtYmVkZGVkLXN1YnNjcmliZVtkaXNhYmxlZF0uc3VjY2VzcywgLmJ1dHRvbi0tdGV4dC1vbmx5W2Rpc2FibGVkXS5zdWNjZXNzIHtcbiAgICAgIG9wYWNpdHk6IDAuMjU7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgICAuYnV0dG9uLmRpc2FibGVkLnN1Y2Nlc3MsIC5kaXNhYmxlZC5zdWNjZXNzLmJ1dHRvbi0tb3V0bGluZS1vbmx5LCAjbmV3c2xldHRlci1zaWdudXAgLmRpc2FibGVkLnN1Y2Nlc3MjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAuZGlzYWJsZWQuc3VjY2Vzcy5idXR0b24tLXRleHQtb25seSwgLmJ1dHRvbi5kaXNhYmxlZC5zdWNjZXNzOmhvdmVyLCAuZGlzYWJsZWQuc3VjY2Vzcy5idXR0b24tLW91dGxpbmUtb25seTpob3ZlciwgI25ld3NsZXR0ZXItc2lnbnVwIC5kaXNhYmxlZC5zdWNjZXNzI21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3ZlciwgLmRpc2FibGVkLnN1Y2Nlc3MuYnV0dG9uLS10ZXh0LW9ubHk6aG92ZXIsIC5idXR0b24uZGlzYWJsZWQuc3VjY2Vzczpmb2N1cywgLmRpc2FibGVkLnN1Y2Nlc3MuYnV0dG9uLS1vdXRsaW5lLW9ubHk6Zm9jdXMsICNuZXdzbGV0dGVyLXNpZ251cCAuZGlzYWJsZWQuc3VjY2VzcyNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6Zm9jdXMsIC5kaXNhYmxlZC5zdWNjZXNzLmJ1dHRvbi0tdGV4dC1vbmx5OmZvY3VzLCAuYnV0dG9uW2Rpc2FibGVkXS5zdWNjZXNzLCAuYnV0dG9uLS1vdXRsaW5lLW9ubHlbZGlzYWJsZWRdLnN1Y2Nlc3MsICNuZXdzbGV0dGVyLXNpZ251cCAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlW2Rpc2FibGVkXS5zdWNjZXNzLCAuYnV0dG9uLS10ZXh0LW9ubHlbZGlzYWJsZWRdLnN1Y2Nlc3MsIC5idXR0b25bZGlzYWJsZWRdLnN1Y2Nlc3M6aG92ZXIsIC5idXR0b24tLW91dGxpbmUtb25seVtkaXNhYmxlZF0uc3VjY2Vzczpob3ZlciwgI25ld3NsZXR0ZXItc2lnbnVwICNtYy1lbWJlZGRlZC1zdWJzY3JpYmVbZGlzYWJsZWRdLnN1Y2Nlc3M6aG92ZXIsIC5idXR0b24tLXRleHQtb25seVtkaXNhYmxlZF0uc3VjY2Vzczpob3ZlciwgLmJ1dHRvbltkaXNhYmxlZF0uc3VjY2Vzczpmb2N1cywgLmJ1dHRvbi0tb3V0bGluZS1vbmx5W2Rpc2FibGVkXS5zdWNjZXNzOmZvY3VzLCAjbmV3c2xldHRlci1zaWdudXAgI21jLWVtYmVkZGVkLXN1YnNjcmliZVtkaXNhYmxlZF0uc3VjY2Vzczpmb2N1cywgLmJ1dHRvbi0tdGV4dC1vbmx5W2Rpc2FibGVkXS5zdWNjZXNzOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzNhZGI3NjtcbiAgICAgICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgICAuYnV0dG9uLmRpc2FibGVkLndhcm5pbmcsIC5kaXNhYmxlZC53YXJuaW5nLmJ1dHRvbi0tb3V0bGluZS1vbmx5LCAjbmV3c2xldHRlci1zaWdudXAgLmRpc2FibGVkLndhcm5pbmcjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAuZGlzYWJsZWQud2FybmluZy5idXR0b24tLXRleHQtb25seSwgLmJ1dHRvbltkaXNhYmxlZF0ud2FybmluZywgLmJ1dHRvbi0tb3V0bGluZS1vbmx5W2Rpc2FibGVkXS53YXJuaW5nLCAjbmV3c2xldHRlci1zaWdudXAgI21jLWVtYmVkZGVkLXN1YnNjcmliZVtkaXNhYmxlZF0ud2FybmluZywgLmJ1dHRvbi0tdGV4dC1vbmx5W2Rpc2FibGVkXS53YXJuaW5nIHtcbiAgICAgIG9wYWNpdHk6IDAuMjU7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgICAuYnV0dG9uLmRpc2FibGVkLndhcm5pbmcsIC5kaXNhYmxlZC53YXJuaW5nLmJ1dHRvbi0tb3V0bGluZS1vbmx5LCAjbmV3c2xldHRlci1zaWdudXAgLmRpc2FibGVkLndhcm5pbmcjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAuZGlzYWJsZWQud2FybmluZy5idXR0b24tLXRleHQtb25seSwgLmJ1dHRvbi5kaXNhYmxlZC53YXJuaW5nOmhvdmVyLCAuZGlzYWJsZWQud2FybmluZy5idXR0b24tLW91dGxpbmUtb25seTpob3ZlciwgI25ld3NsZXR0ZXItc2lnbnVwIC5kaXNhYmxlZC53YXJuaW5nI21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3ZlciwgLmRpc2FibGVkLndhcm5pbmcuYnV0dG9uLS10ZXh0LW9ubHk6aG92ZXIsIC5idXR0b24uZGlzYWJsZWQud2FybmluZzpmb2N1cywgLmRpc2FibGVkLndhcm5pbmcuYnV0dG9uLS1vdXRsaW5lLW9ubHk6Zm9jdXMsICNuZXdzbGV0dGVyLXNpZ251cCAuZGlzYWJsZWQud2FybmluZyNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6Zm9jdXMsIC5kaXNhYmxlZC53YXJuaW5nLmJ1dHRvbi0tdGV4dC1vbmx5OmZvY3VzLCAuYnV0dG9uW2Rpc2FibGVkXS53YXJuaW5nLCAuYnV0dG9uLS1vdXRsaW5lLW9ubHlbZGlzYWJsZWRdLndhcm5pbmcsICNuZXdzbGV0dGVyLXNpZ251cCAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlW2Rpc2FibGVkXS53YXJuaW5nLCAuYnV0dG9uLS10ZXh0LW9ubHlbZGlzYWJsZWRdLndhcm5pbmcsIC5idXR0b25bZGlzYWJsZWRdLndhcm5pbmc6aG92ZXIsIC5idXR0b24tLW91dGxpbmUtb25seVtkaXNhYmxlZF0ud2FybmluZzpob3ZlciwgI25ld3NsZXR0ZXItc2lnbnVwICNtYy1lbWJlZGRlZC1zdWJzY3JpYmVbZGlzYWJsZWRdLndhcm5pbmc6aG92ZXIsIC5idXR0b24tLXRleHQtb25seVtkaXNhYmxlZF0ud2FybmluZzpob3ZlciwgLmJ1dHRvbltkaXNhYmxlZF0ud2FybmluZzpmb2N1cywgLmJ1dHRvbi0tb3V0bGluZS1vbmx5W2Rpc2FibGVkXS53YXJuaW5nOmZvY3VzLCAjbmV3c2xldHRlci1zaWdudXAgI21jLWVtYmVkZGVkLXN1YnNjcmliZVtkaXNhYmxlZF0ud2FybmluZzpmb2N1cywgLmJ1dHRvbi0tdGV4dC1vbmx5W2Rpc2FibGVkXS53YXJuaW5nOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYWUwMDtcbiAgICAgICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgICAuYnV0dG9uLmRpc2FibGVkLmFsZXJ0LCAuZGlzYWJsZWQuYWxlcnQuYnV0dG9uLS1vdXRsaW5lLW9ubHksICNuZXdzbGV0dGVyLXNpZ251cCAuZGlzYWJsZWQuYWxlcnQjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAuZGlzYWJsZWQuYWxlcnQuYnV0dG9uLS10ZXh0LW9ubHksIC5idXR0b25bZGlzYWJsZWRdLmFsZXJ0LCAuYnV0dG9uLS1vdXRsaW5lLW9ubHlbZGlzYWJsZWRdLmFsZXJ0LCAjbmV3c2xldHRlci1zaWdudXAgI21jLWVtYmVkZGVkLXN1YnNjcmliZVtkaXNhYmxlZF0uYWxlcnQsIC5idXR0b24tLXRleHQtb25seVtkaXNhYmxlZF0uYWxlcnQge1xuICAgICAgb3BhY2l0eTogMC4yNTtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAgIC5idXR0b24uZGlzYWJsZWQuYWxlcnQsIC5kaXNhYmxlZC5hbGVydC5idXR0b24tLW91dGxpbmUtb25seSwgI25ld3NsZXR0ZXItc2lnbnVwIC5kaXNhYmxlZC5hbGVydCNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsIC5kaXNhYmxlZC5hbGVydC5idXR0b24tLXRleHQtb25seSwgLmJ1dHRvbi5kaXNhYmxlZC5hbGVydDpob3ZlciwgLmRpc2FibGVkLmFsZXJ0LmJ1dHRvbi0tb3V0bGluZS1vbmx5OmhvdmVyLCAjbmV3c2xldHRlci1zaWdudXAgLmRpc2FibGVkLmFsZXJ0I21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3ZlciwgLmRpc2FibGVkLmFsZXJ0LmJ1dHRvbi0tdGV4dC1vbmx5OmhvdmVyLCAuYnV0dG9uLmRpc2FibGVkLmFsZXJ0OmZvY3VzLCAuZGlzYWJsZWQuYWxlcnQuYnV0dG9uLS1vdXRsaW5lLW9ubHk6Zm9jdXMsICNuZXdzbGV0dGVyLXNpZ251cCAuZGlzYWJsZWQuYWxlcnQjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmZvY3VzLCAuZGlzYWJsZWQuYWxlcnQuYnV0dG9uLS10ZXh0LW9ubHk6Zm9jdXMsIC5idXR0b25bZGlzYWJsZWRdLmFsZXJ0LCAuYnV0dG9uLS1vdXRsaW5lLW9ubHlbZGlzYWJsZWRdLmFsZXJ0LCAjbmV3c2xldHRlci1zaWdudXAgI21jLWVtYmVkZGVkLXN1YnNjcmliZVtkaXNhYmxlZF0uYWxlcnQsIC5idXR0b24tLXRleHQtb25seVtkaXNhYmxlZF0uYWxlcnQsIC5idXR0b25bZGlzYWJsZWRdLmFsZXJ0OmhvdmVyLCAuYnV0dG9uLS1vdXRsaW5lLW9ubHlbZGlzYWJsZWRdLmFsZXJ0OmhvdmVyLCAjbmV3c2xldHRlci1zaWdudXAgI21jLWVtYmVkZGVkLXN1YnNjcmliZVtkaXNhYmxlZF0uYWxlcnQ6aG92ZXIsIC5idXR0b24tLXRleHQtb25seVtkaXNhYmxlZF0uYWxlcnQ6aG92ZXIsIC5idXR0b25bZGlzYWJsZWRdLmFsZXJ0OmZvY3VzLCAuYnV0dG9uLS1vdXRsaW5lLW9ubHlbZGlzYWJsZWRdLmFsZXJ0OmZvY3VzLCAjbmV3c2xldHRlci1zaWdudXAgI21jLWVtYmVkZGVkLXN1YnNjcmliZVtkaXNhYmxlZF0uYWxlcnQ6Zm9jdXMsIC5idXR0b24tLXRleHQtb25seVtkaXNhYmxlZF0uYWxlcnQ6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M0YjM3O1xuICAgICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLmhvbGxvdywgLmhvbGxvdy5idXR0b24tLW91dGxpbmUtb25seSwgI25ld3NsZXR0ZXItc2lnbnVwIC5ob2xsb3cjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAuaG9sbG93LmJ1dHRvbi0tdGV4dC1vbmx5IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDAwMDAwO1xuICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gICAgLmJ1dHRvbi5ob2xsb3csIC5ob2xsb3cuYnV0dG9uLS1vdXRsaW5lLW9ubHksICNuZXdzbGV0dGVyLXNpZ251cCAuaG9sbG93I21jLWVtYmVkZGVkLXN1YnNjcmliZSwgLmhvbGxvdy5idXR0b24tLXRleHQtb25seSwgLmJ1dHRvbi5ob2xsb3c6aG92ZXIsIC5ob2xsb3cuYnV0dG9uLS1vdXRsaW5lLW9ubHk6aG92ZXIsICNuZXdzbGV0dGVyLXNpZ251cCAuaG9sbG93I21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3ZlciwgLmhvbGxvdy5idXR0b24tLXRleHQtb25seTpob3ZlciwgLmJ1dHRvbi5ob2xsb3c6Zm9jdXMsIC5ob2xsb3cuYnV0dG9uLS1vdXRsaW5lLW9ubHk6Zm9jdXMsICNuZXdzbGV0dGVyLXNpZ251cCAuaG9sbG93I21jLWVtYmVkZGVkLXN1YnNjcmliZTpmb2N1cywgLmhvbGxvdy5idXR0b24tLXRleHQtb25seTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5idXR0b24uaG9sbG93LmRpc2FibGVkLCAuaG9sbG93LmRpc2FibGVkLmJ1dHRvbi0tb3V0bGluZS1vbmx5LCAjbmV3c2xldHRlci1zaWdudXAgLmhvbGxvdy5kaXNhYmxlZCNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsIC5ob2xsb3cuZGlzYWJsZWQuYnV0dG9uLS10ZXh0LW9ubHksIC5idXR0b24uaG9sbG93LmRpc2FibGVkOmhvdmVyLCAuaG9sbG93LmRpc2FibGVkLmJ1dHRvbi0tb3V0bGluZS1vbmx5OmhvdmVyLCAjbmV3c2xldHRlci1zaWdudXAgLmhvbGxvdy5kaXNhYmxlZCNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6aG92ZXIsIC5ob2xsb3cuZGlzYWJsZWQuYnV0dG9uLS10ZXh0LW9ubHk6aG92ZXIsIC5idXR0b24uaG9sbG93LmRpc2FibGVkOmZvY3VzLCAuaG9sbG93LmRpc2FibGVkLmJ1dHRvbi0tb3V0bGluZS1vbmx5OmZvY3VzLCAjbmV3c2xldHRlci1zaWdudXAgLmhvbGxvdy5kaXNhYmxlZCNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6Zm9jdXMsIC5ob2xsb3cuZGlzYWJsZWQuYnV0dG9uLS10ZXh0LW9ubHk6Zm9jdXMsIC5idXR0b24uaG9sbG93W2Rpc2FibGVkXSwgLmhvbGxvdy5idXR0b24tLW91dGxpbmUtb25seVtkaXNhYmxlZF0sICNuZXdzbGV0dGVyLXNpZ251cCAuaG9sbG93I21jLWVtYmVkZGVkLXN1YnNjcmliZVtkaXNhYmxlZF0sIC5ob2xsb3cuYnV0dG9uLS10ZXh0LW9ubHlbZGlzYWJsZWRdLCAuYnV0dG9uLmhvbGxvd1tkaXNhYmxlZF06aG92ZXIsIC5ob2xsb3cuYnV0dG9uLS1vdXRsaW5lLW9ubHlbZGlzYWJsZWRdOmhvdmVyLCAjbmV3c2xldHRlci1zaWdudXAgLmhvbGxvdyNtYy1lbWJlZGRlZC1zdWJzY3JpYmVbZGlzYWJsZWRdOmhvdmVyLCAuaG9sbG93LmJ1dHRvbi0tdGV4dC1vbmx5W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5ob2xsb3dbZGlzYWJsZWRdOmZvY3VzLCAuaG9sbG93LmJ1dHRvbi0tb3V0bGluZS1vbmx5W2Rpc2FibGVkXTpmb2N1cywgI25ld3NsZXR0ZXItc2lnbnVwIC5ob2xsb3cjbWMtZW1iZWRkZWQtc3Vic2NyaWJlW2Rpc2FibGVkXTpmb2N1cywgLmhvbGxvdy5idXR0b24tLXRleHQtb25seVtkaXNhYmxlZF06Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuYnV0dG9uLmhvbGxvdzpob3ZlciwgLmhvbGxvdy5idXR0b24tLW91dGxpbmUtb25seTpob3ZlciwgI25ld3NsZXR0ZXItc2lnbnVwIC5ob2xsb3cjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyLCAuaG9sbG93LmJ1dHRvbi0tdGV4dC1vbmx5OmhvdmVyLCAuYnV0dG9uLmhvbGxvdzpmb2N1cywgLmhvbGxvdy5idXR0b24tLW91dGxpbmUtb25seTpmb2N1cywgI25ld3NsZXR0ZXItc2lnbnVwIC5ob2xsb3cjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmZvY3VzLCAuaG9sbG93LmJ1dHRvbi0tdGV4dC1vbmx5OmZvY3VzIHtcbiAgICAgIGJvcmRlci1jb2xvcjogYmxhY2s7XG4gICAgICBjb2xvcjogYmxhY2s7IH1cbiAgICAgIC5idXR0b24uaG9sbG93OmhvdmVyLmRpc2FibGVkLCAuaG9sbG93LmJ1dHRvbi0tb3V0bGluZS1vbmx5OmhvdmVyLmRpc2FibGVkLCAjbmV3c2xldHRlci1zaWdudXAgLmhvbGxvdyNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6aG92ZXIuZGlzYWJsZWQsIC5ob2xsb3cuYnV0dG9uLS10ZXh0LW9ubHk6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93OmhvdmVyW2Rpc2FibGVkXSwgLmhvbGxvdy5idXR0b24tLW91dGxpbmUtb25seTpob3ZlcltkaXNhYmxlZF0sICNuZXdzbGV0dGVyLXNpZ251cCAuaG9sbG93I21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3ZlcltkaXNhYmxlZF0sIC5ob2xsb3cuYnV0dG9uLS10ZXh0LW9ubHk6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmhvbGxvdzpmb2N1cy5kaXNhYmxlZCwgLmhvbGxvdy5idXR0b24tLW91dGxpbmUtb25seTpmb2N1cy5kaXNhYmxlZCwgI25ld3NsZXR0ZXItc2lnbnVwIC5ob2xsb3cjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmZvY3VzLmRpc2FibGVkLCAuaG9sbG93LmJ1dHRvbi0tdGV4dC1vbmx5OmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdzpmb2N1c1tkaXNhYmxlZF0sIC5ob2xsb3cuYnV0dG9uLS1vdXRsaW5lLW9ubHk6Zm9jdXNbZGlzYWJsZWRdLCAjbmV3c2xldHRlci1zaWdudXAgLmhvbGxvdyNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6Zm9jdXNbZGlzYWJsZWRdLCAuaG9sbG93LmJ1dHRvbi0tdGV4dC1vbmx5OmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDAwMDA7XG4gICAgICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gICAgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeSwgLmhvbGxvdy5wcmltYXJ5LmJ1dHRvbi0tb3V0bGluZS1vbmx5LCAjbmV3c2xldHRlci1zaWdudXAgLmhvbGxvdy5wcmltYXJ5I21jLWVtYmVkZGVkLXN1YnNjcmliZSwgLmhvbGxvdy5wcmltYXJ5LmJ1dHRvbi0tdGV4dC1vbmx5IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDAwMDA7XG4gICAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAgICAgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeTpob3ZlciwgLmhvbGxvdy5wcmltYXJ5LmJ1dHRvbi0tb3V0bGluZS1vbmx5OmhvdmVyLCAjbmV3c2xldHRlci1zaWdudXAgLmhvbGxvdy5wcmltYXJ5I21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3ZlciwgLmhvbGxvdy5wcmltYXJ5LmJ1dHRvbi0tdGV4dC1vbmx5OmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmZvY3VzLCAuaG9sbG93LnByaW1hcnkuYnV0dG9uLS1vdXRsaW5lLW9ubHk6Zm9jdXMsICNuZXdzbGV0dGVyLXNpZ251cCAuaG9sbG93LnByaW1hcnkjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmZvY3VzLCAuaG9sbG93LnByaW1hcnkuYnV0dG9uLS10ZXh0LW9ubHk6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6IGJsYWNrO1xuICAgICAgICBjb2xvcjogYmxhY2s7IH1cbiAgICAgICAgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeTpob3Zlci5kaXNhYmxlZCwgLmhvbGxvdy5wcmltYXJ5LmJ1dHRvbi0tb3V0bGluZS1vbmx5OmhvdmVyLmRpc2FibGVkLCAjbmV3c2xldHRlci1zaWdudXAgLmhvbGxvdy5wcmltYXJ5I21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3Zlci5kaXNhYmxlZCwgLmhvbGxvdy5wcmltYXJ5LmJ1dHRvbi0tdGV4dC1vbmx5OmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmhvdmVyW2Rpc2FibGVkXSwgLmhvbGxvdy5wcmltYXJ5LmJ1dHRvbi0tb3V0bGluZS1vbmx5OmhvdmVyW2Rpc2FibGVkXSwgI25ld3NsZXR0ZXItc2lnbnVwIC5ob2xsb3cucHJpbWFyeSNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6aG92ZXJbZGlzYWJsZWRdLCAuaG9sbG93LnByaW1hcnkuYnV0dG9uLS10ZXh0LW9ubHk6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmZvY3VzLmRpc2FibGVkLCAuaG9sbG93LnByaW1hcnkuYnV0dG9uLS1vdXRsaW5lLW9ubHk6Zm9jdXMuZGlzYWJsZWQsICNuZXdzbGV0dGVyLXNpZ251cCAuaG9sbG93LnByaW1hcnkjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmZvY3VzLmRpc2FibGVkLCAuaG9sbG93LnByaW1hcnkuYnV0dG9uLS10ZXh0LW9ubHk6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LnByaW1hcnk6Zm9jdXNbZGlzYWJsZWRdLCAuaG9sbG93LnByaW1hcnkuYnV0dG9uLS1vdXRsaW5lLW9ubHk6Zm9jdXNbZGlzYWJsZWRdLCAjbmV3c2xldHRlci1zaWdudXAgLmhvbGxvdy5wcmltYXJ5I21jLWVtYmVkZGVkLXN1YnNjcmliZTpmb2N1c1tkaXNhYmxlZF0sIC5ob2xsb3cucHJpbWFyeS5idXR0b24tLXRleHQtb25seTpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDAwMDA7XG4gICAgICAgICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgICAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnksIC5ob2xsb3cuc2Vjb25kYXJ5LmJ1dHRvbi0tb3V0bGluZS1vbmx5LCAjbmV3c2xldHRlci1zaWdudXAgLmhvbGxvdy5zZWNvbmRhcnkjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAuaG9sbG93LnNlY29uZGFyeS5idXR0b24tLXRleHQtb25seSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZmZmZmO1xuICAgICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgICAgIC5idXR0b24uaG9sbG93LnNlY29uZGFyeTpob3ZlciwgLmhvbGxvdy5zZWNvbmRhcnkuYnV0dG9uLS1vdXRsaW5lLW9ubHk6aG92ZXIsICNuZXdzbGV0dGVyLXNpZ251cCAuaG9sbG93LnNlY29uZGFyeSNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6aG92ZXIsIC5ob2xsb3cuc2Vjb25kYXJ5LmJ1dHRvbi0tdGV4dC1vbmx5OmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnk6Zm9jdXMsIC5ob2xsb3cuc2Vjb25kYXJ5LmJ1dHRvbi0tb3V0bGluZS1vbmx5OmZvY3VzLCAjbmV3c2xldHRlci1zaWdudXAgLmhvbGxvdy5zZWNvbmRhcnkjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmZvY3VzLCAuaG9sbG93LnNlY29uZGFyeS5idXR0b24tLXRleHQtb25seTpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogZ3JheTtcbiAgICAgICAgY29sb3I6IGdyYXk7IH1cbiAgICAgICAgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5OmhvdmVyLmRpc2FibGVkLCAuaG9sbG93LnNlY29uZGFyeS5idXR0b24tLW91dGxpbmUtb25seTpob3Zlci5kaXNhYmxlZCwgI25ld3NsZXR0ZXItc2lnbnVwIC5ob2xsb3cuc2Vjb25kYXJ5I21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3Zlci5kaXNhYmxlZCwgLmhvbGxvdy5zZWNvbmRhcnkuYnV0dG9uLS10ZXh0LW9ubHk6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LnNlY29uZGFyeTpob3ZlcltkaXNhYmxlZF0sIC5ob2xsb3cuc2Vjb25kYXJ5LmJ1dHRvbi0tb3V0bGluZS1vbmx5OmhvdmVyW2Rpc2FibGVkXSwgI25ld3NsZXR0ZXItc2lnbnVwIC5ob2xsb3cuc2Vjb25kYXJ5I21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3ZlcltkaXNhYmxlZF0sIC5ob2xsb3cuc2Vjb25kYXJ5LmJ1dHRvbi0tdGV4dC1vbmx5OmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5OmZvY3VzLmRpc2FibGVkLCAuaG9sbG93LnNlY29uZGFyeS5idXR0b24tLW91dGxpbmUtb25seTpmb2N1cy5kaXNhYmxlZCwgI25ld3NsZXR0ZXItc2lnbnVwIC5ob2xsb3cuc2Vjb25kYXJ5I21jLWVtYmVkZGVkLXN1YnNjcmliZTpmb2N1cy5kaXNhYmxlZCwgLmhvbGxvdy5zZWNvbmRhcnkuYnV0dG9uLS10ZXh0LW9ubHk6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LnNlY29uZGFyeTpmb2N1c1tkaXNhYmxlZF0sIC5ob2xsb3cuc2Vjb25kYXJ5LmJ1dHRvbi0tb3V0bGluZS1vbmx5OmZvY3VzW2Rpc2FibGVkXSwgI25ld3NsZXR0ZXItc2lnbnVwIC5ob2xsb3cuc2Vjb25kYXJ5I21jLWVtYmVkZGVkLXN1YnNjcmliZTpmb2N1c1tkaXNhYmxlZF0sIC5ob2xsb3cuc2Vjb25kYXJ5LmJ1dHRvbi0tdGV4dC1vbmx5OmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZmZmZmZjtcbiAgICAgICAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAgIC5idXR0b24uaG9sbG93LnN1Y2Nlc3MsIC5ob2xsb3cuc3VjY2Vzcy5idXR0b24tLW91dGxpbmUtb25seSwgI25ld3NsZXR0ZXItc2lnbnVwIC5ob2xsb3cuc3VjY2VzcyNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsIC5ob2xsb3cuc3VjY2Vzcy5idXR0b24tLXRleHQtb25seSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjM2FkYjc2O1xuICAgICAgY29sb3I6ICMzYWRiNzY7IH1cbiAgICAgIC5idXR0b24uaG9sbG93LnN1Y2Nlc3M6aG92ZXIsIC5ob2xsb3cuc3VjY2Vzcy5idXR0b24tLW91dGxpbmUtb25seTpob3ZlciwgI25ld3NsZXR0ZXItc2lnbnVwIC5ob2xsb3cuc3VjY2VzcyNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6aG92ZXIsIC5ob2xsb3cuc3VjY2Vzcy5idXR0b24tLXRleHQtb25seTpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzczpmb2N1cywgLmhvbGxvdy5zdWNjZXNzLmJ1dHRvbi0tb3V0bGluZS1vbmx5OmZvY3VzLCAjbmV3c2xldHRlci1zaWdudXAgLmhvbGxvdy5zdWNjZXNzI21jLWVtYmVkZGVkLXN1YnNjcmliZTpmb2N1cywgLmhvbGxvdy5zdWNjZXNzLmJ1dHRvbi0tdGV4dC1vbmx5OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMTU3NTM5O1xuICAgICAgICBjb2xvcjogIzE1NzUzOTsgfVxuICAgICAgICAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzOmhvdmVyLmRpc2FibGVkLCAuaG9sbG93LnN1Y2Nlc3MuYnV0dG9uLS1vdXRsaW5lLW9ubHk6aG92ZXIuZGlzYWJsZWQsICNuZXdzbGV0dGVyLXNpZ251cCAuaG9sbG93LnN1Y2Nlc3MjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyLmRpc2FibGVkLCAuaG9sbG93LnN1Y2Nlc3MuYnV0dG9uLS10ZXh0LW9ubHk6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LnN1Y2Nlc3M6aG92ZXJbZGlzYWJsZWRdLCAuaG9sbG93LnN1Y2Nlc3MuYnV0dG9uLS1vdXRsaW5lLW9ubHk6aG92ZXJbZGlzYWJsZWRdLCAjbmV3c2xldHRlci1zaWdudXAgLmhvbGxvdy5zdWNjZXNzI21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3ZlcltkaXNhYmxlZF0sIC5ob2xsb3cuc3VjY2Vzcy5idXR0b24tLXRleHQtb25seTpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93LnN1Y2Nlc3M6Zm9jdXMuZGlzYWJsZWQsIC5ob2xsb3cuc3VjY2Vzcy5idXR0b24tLW91dGxpbmUtb25seTpmb2N1cy5kaXNhYmxlZCwgI25ld3NsZXR0ZXItc2lnbnVwIC5ob2xsb3cuc3VjY2VzcyNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6Zm9jdXMuZGlzYWJsZWQsIC5ob2xsb3cuc3VjY2Vzcy5idXR0b24tLXRleHQtb25seTpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzczpmb2N1c1tkaXNhYmxlZF0sIC5ob2xsb3cuc3VjY2Vzcy5idXR0b24tLW91dGxpbmUtb25seTpmb2N1c1tkaXNhYmxlZF0sICNuZXdzbGV0dGVyLXNpZ251cCAuaG9sbG93LnN1Y2Nlc3MjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmZvY3VzW2Rpc2FibGVkXSwgLmhvbGxvdy5zdWNjZXNzLmJ1dHRvbi0tdGV4dC1vbmx5OmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzNhZGI3NjtcbiAgICAgICAgICBjb2xvcjogIzNhZGI3NjsgfVxuICAgIC5idXR0b24uaG9sbG93Lndhcm5pbmcsIC5ob2xsb3cud2FybmluZy5idXR0b24tLW91dGxpbmUtb25seSwgI25ld3NsZXR0ZXItc2lnbnVwIC5ob2xsb3cud2FybmluZyNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsIC5ob2xsb3cud2FybmluZy5idXR0b24tLXRleHQtb25seSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZhZTAwO1xuICAgICAgY29sb3I6ICNmZmFlMDA7IH1cbiAgICAgIC5idXR0b24uaG9sbG93Lndhcm5pbmc6aG92ZXIsIC5ob2xsb3cud2FybmluZy5idXR0b24tLW91dGxpbmUtb25seTpob3ZlciwgI25ld3NsZXR0ZXItc2lnbnVwIC5ob2xsb3cud2FybmluZyNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6aG92ZXIsIC5ob2xsb3cud2FybmluZy5idXR0b24tLXRleHQtb25seTpob3ZlciwgLmJ1dHRvbi5ob2xsb3cud2FybmluZzpmb2N1cywgLmhvbGxvdy53YXJuaW5nLmJ1dHRvbi0tb3V0bGluZS1vbmx5OmZvY3VzLCAjbmV3c2xldHRlci1zaWdudXAgLmhvbGxvdy53YXJuaW5nI21jLWVtYmVkZGVkLXN1YnNjcmliZTpmb2N1cywgLmhvbGxvdy53YXJuaW5nLmJ1dHRvbi0tdGV4dC1vbmx5OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjODA1NzAwO1xuICAgICAgICBjb2xvcjogIzgwNTcwMDsgfVxuICAgICAgICAuYnV0dG9uLmhvbGxvdy53YXJuaW5nOmhvdmVyLmRpc2FibGVkLCAuaG9sbG93Lndhcm5pbmcuYnV0dG9uLS1vdXRsaW5lLW9ubHk6aG92ZXIuZGlzYWJsZWQsICNuZXdzbGV0dGVyLXNpZ251cCAuaG9sbG93Lndhcm5pbmcjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyLmRpc2FibGVkLCAuaG9sbG93Lndhcm5pbmcuYnV0dG9uLS10ZXh0LW9ubHk6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93Lndhcm5pbmc6aG92ZXJbZGlzYWJsZWRdLCAuaG9sbG93Lndhcm5pbmcuYnV0dG9uLS1vdXRsaW5lLW9ubHk6aG92ZXJbZGlzYWJsZWRdLCAjbmV3c2xldHRlci1zaWdudXAgLmhvbGxvdy53YXJuaW5nI21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3ZlcltkaXNhYmxlZF0sIC5ob2xsb3cud2FybmluZy5idXR0b24tLXRleHQtb25seTpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93Lndhcm5pbmc6Zm9jdXMuZGlzYWJsZWQsIC5ob2xsb3cud2FybmluZy5idXR0b24tLW91dGxpbmUtb25seTpmb2N1cy5kaXNhYmxlZCwgI25ld3NsZXR0ZXItc2lnbnVwIC5ob2xsb3cud2FybmluZyNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6Zm9jdXMuZGlzYWJsZWQsIC5ob2xsb3cud2FybmluZy5idXR0b24tLXRleHQtb25seTpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cud2FybmluZzpmb2N1c1tkaXNhYmxlZF0sIC5ob2xsb3cud2FybmluZy5idXR0b24tLW91dGxpbmUtb25seTpmb2N1c1tkaXNhYmxlZF0sICNuZXdzbGV0dGVyLXNpZ251cCAuaG9sbG93Lndhcm5pbmcjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmZvY3VzW2Rpc2FibGVkXSwgLmhvbGxvdy53YXJuaW5nLmJ1dHRvbi0tdGV4dC1vbmx5OmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZmYWUwMDtcbiAgICAgICAgICBjb2xvcjogI2ZmYWUwMDsgfVxuICAgIC5idXR0b24uaG9sbG93LmFsZXJ0LCAuaG9sbG93LmFsZXJ0LmJ1dHRvbi0tb3V0bGluZS1vbmx5LCAjbmV3c2xldHRlci1zaWdudXAgLmhvbGxvdy5hbGVydCNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsIC5ob2xsb3cuYWxlcnQuYnV0dG9uLS10ZXh0LW9ubHkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2NjNGIzNztcbiAgICAgIGNvbG9yOiAjY2M0YjM3OyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy5hbGVydDpob3ZlciwgLmhvbGxvdy5hbGVydC5idXR0b24tLW91dGxpbmUtb25seTpob3ZlciwgI25ld3NsZXR0ZXItc2lnbnVwIC5ob2xsb3cuYWxlcnQjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyLCAuaG9sbG93LmFsZXJ0LmJ1dHRvbi0tdGV4dC1vbmx5OmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5hbGVydDpmb2N1cywgLmhvbGxvdy5hbGVydC5idXR0b24tLW91dGxpbmUtb25seTpmb2N1cywgI25ld3NsZXR0ZXItc2lnbnVwIC5ob2xsb3cuYWxlcnQjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmZvY3VzLCAuaG9sbG93LmFsZXJ0LmJ1dHRvbi0tdGV4dC1vbmx5OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNjcyNTFhO1xuICAgICAgICBjb2xvcjogIzY3MjUxYTsgfVxuICAgICAgICAuYnV0dG9uLmhvbGxvdy5hbGVydDpob3Zlci5kaXNhYmxlZCwgLmhvbGxvdy5hbGVydC5idXR0b24tLW91dGxpbmUtb25seTpob3Zlci5kaXNhYmxlZCwgI25ld3NsZXR0ZXItc2lnbnVwIC5ob2xsb3cuYWxlcnQjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyLmRpc2FibGVkLCAuaG9sbG93LmFsZXJ0LmJ1dHRvbi0tdGV4dC1vbmx5OmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5hbGVydDpob3ZlcltkaXNhYmxlZF0sIC5ob2xsb3cuYWxlcnQuYnV0dG9uLS1vdXRsaW5lLW9ubHk6aG92ZXJbZGlzYWJsZWRdLCAjbmV3c2xldHRlci1zaWdudXAgLmhvbGxvdy5hbGVydCNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6aG92ZXJbZGlzYWJsZWRdLCAuaG9sbG93LmFsZXJ0LmJ1dHRvbi0tdGV4dC1vbmx5OmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3cuYWxlcnQ6Zm9jdXMuZGlzYWJsZWQsIC5ob2xsb3cuYWxlcnQuYnV0dG9uLS1vdXRsaW5lLW9ubHk6Zm9jdXMuZGlzYWJsZWQsICNuZXdzbGV0dGVyLXNpZ251cCAuaG9sbG93LmFsZXJ0I21jLWVtYmVkZGVkLXN1YnNjcmliZTpmb2N1cy5kaXNhYmxlZCwgLmhvbGxvdy5hbGVydC5idXR0b24tLXRleHQtb25seTpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cuYWxlcnQ6Zm9jdXNbZGlzYWJsZWRdLCAuaG9sbG93LmFsZXJ0LmJ1dHRvbi0tb3V0bGluZS1vbmx5OmZvY3VzW2Rpc2FibGVkXSwgI25ld3NsZXR0ZXItc2lnbnVwIC5ob2xsb3cuYWxlcnQjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmZvY3VzW2Rpc2FibGVkXSwgLmhvbGxvdy5hbGVydC5idXR0b24tLXRleHQtb25seTpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjYzRiMzc7XG4gICAgICAgICAgY29sb3I6ICNjYzRiMzc7IH1cbiAgLmJ1dHRvbi5jbGVhciwgLmNsZWFyLmJ1dHRvbi0tb3V0bGluZS1vbmx5LCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyI21jLWVtYmVkZGVkLXN1YnNjcmliZSwgLmNsZWFyLmJ1dHRvbi0tdGV4dC1vbmx5IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDAwMDAwO1xuICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gICAgLmJ1dHRvbi5jbGVhciwgLmNsZWFyLmJ1dHRvbi0tb3V0bGluZS1vbmx5LCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyI21jLWVtYmVkZGVkLXN1YnNjcmliZSwgLmNsZWFyLmJ1dHRvbi0tdGV4dC1vbmx5LCAuYnV0dG9uLmNsZWFyOmhvdmVyLCAuY2xlYXIuYnV0dG9uLS1vdXRsaW5lLW9ubHk6aG92ZXIsICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyLCAuY2xlYXIuYnV0dG9uLS10ZXh0LW9ubHk6aG92ZXIsIC5idXR0b24uY2xlYXI6Zm9jdXMsIC5jbGVhci5idXR0b24tLW91dGxpbmUtb25seTpmb2N1cywgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhciNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6Zm9jdXMsIC5jbGVhci5idXR0b24tLXRleHQtb25seTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5idXR0b24uY2xlYXIuZGlzYWJsZWQsIC5jbGVhci5kaXNhYmxlZC5idXR0b24tLW91dGxpbmUtb25seSwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhci5kaXNhYmxlZCNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsIC5jbGVhci5kaXNhYmxlZC5idXR0b24tLXRleHQtb25seSwgLmJ1dHRvbi5jbGVhci5kaXNhYmxlZDpob3ZlciwgLmNsZWFyLmRpc2FibGVkLmJ1dHRvbi0tb3V0bGluZS1vbmx5OmhvdmVyLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyLmRpc2FibGVkI21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3ZlciwgLmNsZWFyLmRpc2FibGVkLmJ1dHRvbi0tdGV4dC1vbmx5OmhvdmVyLCAuYnV0dG9uLmNsZWFyLmRpc2FibGVkOmZvY3VzLCAuY2xlYXIuZGlzYWJsZWQuYnV0dG9uLS1vdXRsaW5lLW9ubHk6Zm9jdXMsICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIuZGlzYWJsZWQjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmZvY3VzLCAuY2xlYXIuZGlzYWJsZWQuYnV0dG9uLS10ZXh0LW9ubHk6Zm9jdXMsIC5idXR0b24uY2xlYXJbZGlzYWJsZWRdLCAuY2xlYXIuYnV0dG9uLS1vdXRsaW5lLW9ubHlbZGlzYWJsZWRdLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyI21jLWVtYmVkZGVkLXN1YnNjcmliZVtkaXNhYmxlZF0sIC5jbGVhci5idXR0b24tLXRleHQtb25seVtkaXNhYmxlZF0sIC5idXR0b24uY2xlYXJbZGlzYWJsZWRdOmhvdmVyLCAuY2xlYXIuYnV0dG9uLS1vdXRsaW5lLW9ubHlbZGlzYWJsZWRdOmhvdmVyLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyI21jLWVtYmVkZGVkLXN1YnNjcmliZVtkaXNhYmxlZF06aG92ZXIsIC5jbGVhci5idXR0b24tLXRleHQtb25seVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uY2xlYXJbZGlzYWJsZWRdOmZvY3VzLCAuY2xlYXIuYnV0dG9uLS1vdXRsaW5lLW9ubHlbZGlzYWJsZWRdOmZvY3VzLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyI21jLWVtYmVkZGVkLXN1YnNjcmliZVtkaXNhYmxlZF06Zm9jdXMsIC5jbGVhci5idXR0b24tLXRleHQtb25seVtkaXNhYmxlZF06Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuYnV0dG9uLmNsZWFyOmhvdmVyLCAuY2xlYXIuYnV0dG9uLS1vdXRsaW5lLW9ubHk6aG92ZXIsICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyLCAuY2xlYXIuYnV0dG9uLS10ZXh0LW9ubHk6aG92ZXIsIC5idXR0b24uY2xlYXI6Zm9jdXMsIC5jbGVhci5idXR0b24tLW91dGxpbmUtb25seTpmb2N1cywgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhciNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6Zm9jdXMsIC5jbGVhci5idXR0b24tLXRleHQtb25seTpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6IGJsYWNrO1xuICAgICAgY29sb3I6IGJsYWNrOyB9XG4gICAgICAuYnV0dG9uLmNsZWFyOmhvdmVyLmRpc2FibGVkLCAuY2xlYXIuYnV0dG9uLS1vdXRsaW5lLW9ubHk6aG92ZXIuZGlzYWJsZWQsICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyLmRpc2FibGVkLCAuY2xlYXIuYnV0dG9uLS10ZXh0LW9ubHk6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXI6aG92ZXJbZGlzYWJsZWRdLCAuY2xlYXIuYnV0dG9uLS1vdXRsaW5lLW9ubHk6aG92ZXJbZGlzYWJsZWRdLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyI21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3ZlcltkaXNhYmxlZF0sIC5jbGVhci5idXR0b24tLXRleHQtb25seTpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXI6Zm9jdXMuZGlzYWJsZWQsIC5jbGVhci5idXR0b24tLW91dGxpbmUtb25seTpmb2N1cy5kaXNhYmxlZCwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhciNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6Zm9jdXMuZGlzYWJsZWQsIC5jbGVhci5idXR0b24tLXRleHQtb25seTpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhcjpmb2N1c1tkaXNhYmxlZF0sIC5jbGVhci5idXR0b24tLW91dGxpbmUtb25seTpmb2N1c1tkaXNhYmxlZF0sICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmZvY3VzW2Rpc2FibGVkXSwgLmNsZWFyLmJ1dHRvbi0tdGV4dC1vbmx5OmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDAwMDA7XG4gICAgICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gICAgLmJ1dHRvbi5jbGVhciwgLmNsZWFyLmJ1dHRvbi0tb3V0bGluZS1vbmx5LCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyI21jLWVtYmVkZGVkLXN1YnNjcmliZSwgLmNsZWFyLmJ1dHRvbi0tdGV4dC1vbmx5LCAuYnV0dG9uLmNsZWFyLmRpc2FibGVkLCAuY2xlYXIuZGlzYWJsZWQuYnV0dG9uLS1vdXRsaW5lLW9ubHksICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIuZGlzYWJsZWQjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAuY2xlYXIuZGlzYWJsZWQuYnV0dG9uLS10ZXh0LW9ubHksIC5idXR0b24uY2xlYXJbZGlzYWJsZWRdLCAuY2xlYXIuYnV0dG9uLS1vdXRsaW5lLW9ubHlbZGlzYWJsZWRdLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyI21jLWVtYmVkZGVkLXN1YnNjcmliZVtkaXNhYmxlZF0sIC5jbGVhci5idXR0b24tLXRleHQtb25seVtkaXNhYmxlZF0sIC5idXR0b24uY2xlYXI6aG92ZXIsIC5jbGVhci5idXR0b24tLW91dGxpbmUtb25seTpob3ZlciwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhciNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6aG92ZXIsIC5jbGVhci5idXR0b24tLXRleHQtb25seTpob3ZlciwgLmJ1dHRvbi5jbGVhcjpob3Zlci5kaXNhYmxlZCwgLmNsZWFyLmJ1dHRvbi0tb3V0bGluZS1vbmx5OmhvdmVyLmRpc2FibGVkLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyI21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3Zlci5kaXNhYmxlZCwgLmNsZWFyLmJ1dHRvbi0tdGV4dC1vbmx5OmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyOmhvdmVyW2Rpc2FibGVkXSwgLmNsZWFyLmJ1dHRvbi0tb3V0bGluZS1vbmx5OmhvdmVyW2Rpc2FibGVkXSwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhciNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6aG92ZXJbZGlzYWJsZWRdLCAuY2xlYXIuYnV0dG9uLS10ZXh0LW9ubHk6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyOmZvY3VzLCAuY2xlYXIuYnV0dG9uLS1vdXRsaW5lLW9ubHk6Zm9jdXMsICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmZvY3VzLCAuY2xlYXIuYnV0dG9uLS10ZXh0LW9ubHk6Zm9jdXMsIC5idXR0b24uY2xlYXI6Zm9jdXMuZGlzYWJsZWQsIC5jbGVhci5idXR0b24tLW91dGxpbmUtb25seTpmb2N1cy5kaXNhYmxlZCwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhciNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6Zm9jdXMuZGlzYWJsZWQsIC5jbGVhci5idXR0b24tLXRleHQtb25seTpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhcjpmb2N1c1tkaXNhYmxlZF0sIC5jbGVhci5idXR0b24tLW91dGxpbmUtb25seTpmb2N1c1tkaXNhYmxlZF0sICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmZvY3VzW2Rpc2FibGVkXSwgLmNsZWFyLmJ1dHRvbi0tdGV4dC1vbmx5OmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLmJ1dHRvbi5jbGVhci5wcmltYXJ5LCAuY2xlYXIucHJpbWFyeS5idXR0b24tLW91dGxpbmUtb25seSwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhci5wcmltYXJ5I21jLWVtYmVkZGVkLXN1YnNjcmliZSwgLmNsZWFyLnByaW1hcnkuYnV0dG9uLS10ZXh0LW9ubHkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwMDAwMDtcbiAgICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gICAgICAuYnV0dG9uLmNsZWFyLnByaW1hcnk6aG92ZXIsIC5jbGVhci5wcmltYXJ5LmJ1dHRvbi0tb3V0bGluZS1vbmx5OmhvdmVyLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyLnByaW1hcnkjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyLCAuY2xlYXIucHJpbWFyeS5idXR0b24tLXRleHQtb25seTpob3ZlciwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmZvY3VzLCAuY2xlYXIucHJpbWFyeS5idXR0b24tLW91dGxpbmUtb25seTpmb2N1cywgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhci5wcmltYXJ5I21jLWVtYmVkZGVkLXN1YnNjcmliZTpmb2N1cywgLmNsZWFyLnByaW1hcnkuYnV0dG9uLS10ZXh0LW9ubHk6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6IGJsYWNrO1xuICAgICAgICBjb2xvcjogYmxhY2s7IH1cbiAgICAgICAgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmhvdmVyLmRpc2FibGVkLCAuY2xlYXIucHJpbWFyeS5idXR0b24tLW91dGxpbmUtb25seTpob3Zlci5kaXNhYmxlZCwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhci5wcmltYXJ5I21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3Zlci5kaXNhYmxlZCwgLmNsZWFyLnByaW1hcnkuYnV0dG9uLS10ZXh0LW9ubHk6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIucHJpbWFyeTpob3ZlcltkaXNhYmxlZF0sIC5jbGVhci5wcmltYXJ5LmJ1dHRvbi0tb3V0bGluZS1vbmx5OmhvdmVyW2Rpc2FibGVkXSwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhci5wcmltYXJ5I21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3ZlcltkaXNhYmxlZF0sIC5jbGVhci5wcmltYXJ5LmJ1dHRvbi0tdGV4dC1vbmx5OmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmZvY3VzLmRpc2FibGVkLCAuY2xlYXIucHJpbWFyeS5idXR0b24tLW91dGxpbmUtb25seTpmb2N1cy5kaXNhYmxlZCwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhci5wcmltYXJ5I21jLWVtYmVkZGVkLXN1YnNjcmliZTpmb2N1cy5kaXNhYmxlZCwgLmNsZWFyLnByaW1hcnkuYnV0dG9uLS10ZXh0LW9ubHk6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIucHJpbWFyeTpmb2N1c1tkaXNhYmxlZF0sIC5jbGVhci5wcmltYXJ5LmJ1dHRvbi0tb3V0bGluZS1vbmx5OmZvY3VzW2Rpc2FibGVkXSwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhci5wcmltYXJ5I21jLWVtYmVkZGVkLXN1YnNjcmliZTpmb2N1c1tkaXNhYmxlZF0sIC5jbGVhci5wcmltYXJ5LmJ1dHRvbi0tdGV4dC1vbmx5OmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwMDAwMDtcbiAgICAgICAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAgICAgLmJ1dHRvbi5jbGVhci5wcmltYXJ5LCAuY2xlYXIucHJpbWFyeS5idXR0b24tLW91dGxpbmUtb25seSwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhci5wcmltYXJ5I21jLWVtYmVkZGVkLXN1YnNjcmliZSwgLmNsZWFyLnByaW1hcnkuYnV0dG9uLS10ZXh0LW9ubHksIC5idXR0b24uY2xlYXIucHJpbWFyeS5kaXNhYmxlZCwgLmNsZWFyLnByaW1hcnkuZGlzYWJsZWQuYnV0dG9uLS1vdXRsaW5lLW9ubHksICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIucHJpbWFyeS5kaXNhYmxlZCNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsIC5jbGVhci5wcmltYXJ5LmRpc2FibGVkLmJ1dHRvbi0tdGV4dC1vbmx5LCAuYnV0dG9uLmNsZWFyLnByaW1hcnlbZGlzYWJsZWRdLCAuY2xlYXIucHJpbWFyeS5idXR0b24tLW91dGxpbmUtb25seVtkaXNhYmxlZF0sICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIucHJpbWFyeSNtYy1lbWJlZGRlZC1zdWJzY3JpYmVbZGlzYWJsZWRdLCAuY2xlYXIucHJpbWFyeS5idXR0b24tLXRleHQtb25seVtkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIucHJpbWFyeTpob3ZlciwgLmNsZWFyLnByaW1hcnkuYnV0dG9uLS1vdXRsaW5lLW9ubHk6aG92ZXIsICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIucHJpbWFyeSNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6aG92ZXIsIC5jbGVhci5wcmltYXJ5LmJ1dHRvbi0tdGV4dC1vbmx5OmhvdmVyLCAuYnV0dG9uLmNsZWFyLnByaW1hcnk6aG92ZXIuZGlzYWJsZWQsIC5jbGVhci5wcmltYXJ5LmJ1dHRvbi0tb3V0bGluZS1vbmx5OmhvdmVyLmRpc2FibGVkLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyLnByaW1hcnkjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyLmRpc2FibGVkLCAuY2xlYXIucHJpbWFyeS5idXR0b24tLXRleHQtb25seTpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmhvdmVyW2Rpc2FibGVkXSwgLmNsZWFyLnByaW1hcnkuYnV0dG9uLS1vdXRsaW5lLW9ubHk6aG92ZXJbZGlzYWJsZWRdLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyLnByaW1hcnkjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyW2Rpc2FibGVkXSwgLmNsZWFyLnByaW1hcnkuYnV0dG9uLS10ZXh0LW9ubHk6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLnByaW1hcnk6Zm9jdXMsIC5jbGVhci5wcmltYXJ5LmJ1dHRvbi0tb3V0bGluZS1vbmx5OmZvY3VzLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyLnByaW1hcnkjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmZvY3VzLCAuY2xlYXIucHJpbWFyeS5idXR0b24tLXRleHQtb25seTpmb2N1cywgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmZvY3VzLmRpc2FibGVkLCAuY2xlYXIucHJpbWFyeS5idXR0b24tLW91dGxpbmUtb25seTpmb2N1cy5kaXNhYmxlZCwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhci5wcmltYXJ5I21jLWVtYmVkZGVkLXN1YnNjcmliZTpmb2N1cy5kaXNhYmxlZCwgLmNsZWFyLnByaW1hcnkuYnV0dG9uLS10ZXh0LW9ubHk6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIucHJpbWFyeTpmb2N1c1tkaXNhYmxlZF0sIC5jbGVhci5wcmltYXJ5LmJ1dHRvbi0tb3V0bGluZS1vbmx5OmZvY3VzW2Rpc2FibGVkXSwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhci5wcmltYXJ5I21jLWVtYmVkZGVkLXN1YnNjcmliZTpmb2N1c1tkaXNhYmxlZF0sIC5jbGVhci5wcmltYXJ5LmJ1dHRvbi0tdGV4dC1vbmx5OmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeSwgLmNsZWFyLnNlY29uZGFyeS5idXR0b24tLW91dGxpbmUtb25seSwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhci5zZWNvbmRhcnkjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAuY2xlYXIuc2Vjb25kYXJ5LmJ1dHRvbi0tdGV4dC1vbmx5IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmZmZmY7XG4gICAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAgICAgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6aG92ZXIsIC5jbGVhci5zZWNvbmRhcnkuYnV0dG9uLS1vdXRsaW5lLW9ubHk6aG92ZXIsICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIuc2Vjb25kYXJ5I21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3ZlciwgLmNsZWFyLnNlY29uZGFyeS5idXR0b24tLXRleHQtb25seTpob3ZlciwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6Zm9jdXMsIC5jbGVhci5zZWNvbmRhcnkuYnV0dG9uLS1vdXRsaW5lLW9ubHk6Zm9jdXMsICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIuc2Vjb25kYXJ5I21jLWVtYmVkZGVkLXN1YnNjcmliZTpmb2N1cywgLmNsZWFyLnNlY29uZGFyeS5idXR0b24tLXRleHQtb25seTpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogZ3JheTtcbiAgICAgICAgY29sb3I6IGdyYXk7IH1cbiAgICAgICAgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6aG92ZXIuZGlzYWJsZWQsIC5jbGVhci5zZWNvbmRhcnkuYnV0dG9uLS1vdXRsaW5lLW9ubHk6aG92ZXIuZGlzYWJsZWQsICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIuc2Vjb25kYXJ5I21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3Zlci5kaXNhYmxlZCwgLmNsZWFyLnNlY29uZGFyeS5idXR0b24tLXRleHQtb25seTpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6aG92ZXJbZGlzYWJsZWRdLCAuY2xlYXIuc2Vjb25kYXJ5LmJ1dHRvbi0tb3V0bGluZS1vbmx5OmhvdmVyW2Rpc2FibGVkXSwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhci5zZWNvbmRhcnkjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyW2Rpc2FibGVkXSwgLmNsZWFyLnNlY29uZGFyeS5idXR0b24tLXRleHQtb25seTpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmZvY3VzLmRpc2FibGVkLCAuY2xlYXIuc2Vjb25kYXJ5LmJ1dHRvbi0tb3V0bGluZS1vbmx5OmZvY3VzLmRpc2FibGVkLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyLnNlY29uZGFyeSNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6Zm9jdXMuZGlzYWJsZWQsIC5jbGVhci5zZWNvbmRhcnkuYnV0dG9uLS10ZXh0LW9ubHk6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmZvY3VzW2Rpc2FibGVkXSwgLmNsZWFyLnNlY29uZGFyeS5idXR0b24tLW91dGxpbmUtb25seTpmb2N1c1tkaXNhYmxlZF0sICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIuc2Vjb25kYXJ5I21jLWVtYmVkZGVkLXN1YnNjcmliZTpmb2N1c1tkaXNhYmxlZF0sIC5jbGVhci5zZWNvbmRhcnkuYnV0dG9uLS10ZXh0LW9ubHk6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZmZmZmO1xuICAgICAgICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gICAgICAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeSwgLmNsZWFyLnNlY29uZGFyeS5idXR0b24tLW91dGxpbmUtb25seSwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhci5zZWNvbmRhcnkjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAuY2xlYXIuc2Vjb25kYXJ5LmJ1dHRvbi0tdGV4dC1vbmx5LCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeS5kaXNhYmxlZCwgLmNsZWFyLnNlY29uZGFyeS5kaXNhYmxlZC5idXR0b24tLW91dGxpbmUtb25seSwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhci5zZWNvbmRhcnkuZGlzYWJsZWQjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAuY2xlYXIuc2Vjb25kYXJ5LmRpc2FibGVkLmJ1dHRvbi0tdGV4dC1vbmx5LCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeVtkaXNhYmxlZF0sIC5jbGVhci5zZWNvbmRhcnkuYnV0dG9uLS1vdXRsaW5lLW9ubHlbZGlzYWJsZWRdLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyLnNlY29uZGFyeSNtYy1lbWJlZGRlZC1zdWJzY3JpYmVbZGlzYWJsZWRdLCAuY2xlYXIuc2Vjb25kYXJ5LmJ1dHRvbi0tdGV4dC1vbmx5W2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6aG92ZXIsIC5jbGVhci5zZWNvbmRhcnkuYnV0dG9uLS1vdXRsaW5lLW9ubHk6aG92ZXIsICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIuc2Vjb25kYXJ5I21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3ZlciwgLmNsZWFyLnNlY29uZGFyeS5idXR0b24tLXRleHQtb25seTpob3ZlciwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6aG92ZXIuZGlzYWJsZWQsIC5jbGVhci5zZWNvbmRhcnkuYnV0dG9uLS1vdXRsaW5lLW9ubHk6aG92ZXIuZGlzYWJsZWQsICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIuc2Vjb25kYXJ5I21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3Zlci5kaXNhYmxlZCwgLmNsZWFyLnNlY29uZGFyeS5idXR0b24tLXRleHQtb25seTpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6aG92ZXJbZGlzYWJsZWRdLCAuY2xlYXIuc2Vjb25kYXJ5LmJ1dHRvbi0tb3V0bGluZS1vbmx5OmhvdmVyW2Rpc2FibGVkXSwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhci5zZWNvbmRhcnkjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyW2Rpc2FibGVkXSwgLmNsZWFyLnNlY29uZGFyeS5idXR0b24tLXRleHQtb25seTpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmZvY3VzLCAuY2xlYXIuc2Vjb25kYXJ5LmJ1dHRvbi0tb3V0bGluZS1vbmx5OmZvY3VzLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyLnNlY29uZGFyeSNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6Zm9jdXMsIC5jbGVhci5zZWNvbmRhcnkuYnV0dG9uLS10ZXh0LW9ubHk6Zm9jdXMsIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmZvY3VzLmRpc2FibGVkLCAuY2xlYXIuc2Vjb25kYXJ5LmJ1dHRvbi0tb3V0bGluZS1vbmx5OmZvY3VzLmRpc2FibGVkLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyLnNlY29uZGFyeSNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6Zm9jdXMuZGlzYWJsZWQsIC5jbGVhci5zZWNvbmRhcnkuYnV0dG9uLS10ZXh0LW9ubHk6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmZvY3VzW2Rpc2FibGVkXSwgLmNsZWFyLnNlY29uZGFyeS5idXR0b24tLW91dGxpbmUtb25seTpmb2N1c1tkaXNhYmxlZF0sICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIuc2Vjb25kYXJ5I21jLWVtYmVkZGVkLXN1YnNjcmliZTpmb2N1c1tkaXNhYmxlZF0sIC5jbGVhci5zZWNvbmRhcnkuYnV0dG9uLS10ZXh0LW9ubHk6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5idXR0b24uY2xlYXIuc3VjY2VzcywgLmNsZWFyLnN1Y2Nlc3MuYnV0dG9uLS1vdXRsaW5lLW9ubHksICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIuc3VjY2VzcyNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsIC5jbGVhci5zdWNjZXNzLmJ1dHRvbi0tdGV4dC1vbmx5IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzYWRiNzY7XG4gICAgICBjb2xvcjogIzNhZGI3NjsgfVxuICAgICAgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmhvdmVyLCAuY2xlYXIuc3VjY2Vzcy5idXR0b24tLW91dGxpbmUtb25seTpob3ZlciwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhci5zdWNjZXNzI21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3ZlciwgLmNsZWFyLnN1Y2Nlc3MuYnV0dG9uLS10ZXh0LW9ubHk6aG92ZXIsIC5idXR0b24uY2xlYXIuc3VjY2Vzczpmb2N1cywgLmNsZWFyLnN1Y2Nlc3MuYnV0dG9uLS1vdXRsaW5lLW9ubHk6Zm9jdXMsICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIuc3VjY2VzcyNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6Zm9jdXMsIC5jbGVhci5zdWNjZXNzLmJ1dHRvbi0tdGV4dC1vbmx5OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMTU3NTM5O1xuICAgICAgICBjb2xvcjogIzE1NzUzOTsgfVxuICAgICAgICAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6aG92ZXIuZGlzYWJsZWQsIC5jbGVhci5zdWNjZXNzLmJ1dHRvbi0tb3V0bGluZS1vbmx5OmhvdmVyLmRpc2FibGVkLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyLnN1Y2Nlc3MjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyLmRpc2FibGVkLCAuY2xlYXIuc3VjY2Vzcy5idXR0b24tLXRleHQtb25seTpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmhvdmVyW2Rpc2FibGVkXSwgLmNsZWFyLnN1Y2Nlc3MuYnV0dG9uLS1vdXRsaW5lLW9ubHk6aG92ZXJbZGlzYWJsZWRdLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyLnN1Y2Nlc3MjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyW2Rpc2FibGVkXSwgLmNsZWFyLnN1Y2Nlc3MuYnV0dG9uLS10ZXh0LW9ubHk6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6Zm9jdXMuZGlzYWJsZWQsIC5jbGVhci5zdWNjZXNzLmJ1dHRvbi0tb3V0bGluZS1vbmx5OmZvY3VzLmRpc2FibGVkLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyLnN1Y2Nlc3MjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmZvY3VzLmRpc2FibGVkLCAuY2xlYXIuc3VjY2Vzcy5idXR0b24tLXRleHQtb25seTpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmZvY3VzW2Rpc2FibGVkXSwgLmNsZWFyLnN1Y2Nlc3MuYnV0dG9uLS1vdXRsaW5lLW9ubHk6Zm9jdXNbZGlzYWJsZWRdLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyLnN1Y2Nlc3MjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmZvY3VzW2Rpc2FibGVkXSwgLmNsZWFyLnN1Y2Nlc3MuYnV0dG9uLS10ZXh0LW9ubHk6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjM2FkYjc2O1xuICAgICAgICAgIGNvbG9yOiAjM2FkYjc2OyB9XG4gICAgICAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3MsIC5jbGVhci5zdWNjZXNzLmJ1dHRvbi0tb3V0bGluZS1vbmx5LCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyLnN1Y2Nlc3MjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAuY2xlYXIuc3VjY2Vzcy5idXR0b24tLXRleHQtb25seSwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzLmRpc2FibGVkLCAuY2xlYXIuc3VjY2Vzcy5kaXNhYmxlZC5idXR0b24tLW91dGxpbmUtb25seSwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhci5zdWNjZXNzLmRpc2FibGVkI21jLWVtYmVkZGVkLXN1YnNjcmliZSwgLmNsZWFyLnN1Y2Nlc3MuZGlzYWJsZWQuYnV0dG9uLS10ZXh0LW9ubHksIC5idXR0b24uY2xlYXIuc3VjY2Vzc1tkaXNhYmxlZF0sIC5jbGVhci5zdWNjZXNzLmJ1dHRvbi0tb3V0bGluZS1vbmx5W2Rpc2FibGVkXSwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhci5zdWNjZXNzI21jLWVtYmVkZGVkLXN1YnNjcmliZVtkaXNhYmxlZF0sIC5jbGVhci5zdWNjZXNzLmJ1dHRvbi0tdGV4dC1vbmx5W2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmhvdmVyLCAuY2xlYXIuc3VjY2Vzcy5idXR0b24tLW91dGxpbmUtb25seTpob3ZlciwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhci5zdWNjZXNzI21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3ZlciwgLmNsZWFyLnN1Y2Nlc3MuYnV0dG9uLS10ZXh0LW9ubHk6aG92ZXIsIC5idXR0b24uY2xlYXIuc3VjY2Vzczpob3Zlci5kaXNhYmxlZCwgLmNsZWFyLnN1Y2Nlc3MuYnV0dG9uLS1vdXRsaW5lLW9ubHk6aG92ZXIuZGlzYWJsZWQsICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIuc3VjY2VzcyNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6aG92ZXIuZGlzYWJsZWQsIC5jbGVhci5zdWNjZXNzLmJ1dHRvbi0tdGV4dC1vbmx5OmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6aG92ZXJbZGlzYWJsZWRdLCAuY2xlYXIuc3VjY2Vzcy5idXR0b24tLW91dGxpbmUtb25seTpob3ZlcltkaXNhYmxlZF0sICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIuc3VjY2VzcyNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6aG92ZXJbZGlzYWJsZWRdLCAuY2xlYXIuc3VjY2Vzcy5idXR0b24tLXRleHQtb25seTpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuc3VjY2Vzczpmb2N1cywgLmNsZWFyLnN1Y2Nlc3MuYnV0dG9uLS1vdXRsaW5lLW9ubHk6Zm9jdXMsICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIuc3VjY2VzcyNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6Zm9jdXMsIC5jbGVhci5zdWNjZXNzLmJ1dHRvbi0tdGV4dC1vbmx5OmZvY3VzLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6Zm9jdXMuZGlzYWJsZWQsIC5jbGVhci5zdWNjZXNzLmJ1dHRvbi0tb3V0bGluZS1vbmx5OmZvY3VzLmRpc2FibGVkLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyLnN1Y2Nlc3MjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmZvY3VzLmRpc2FibGVkLCAuY2xlYXIuc3VjY2Vzcy5idXR0b24tLXRleHQtb25seTpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmZvY3VzW2Rpc2FibGVkXSwgLmNsZWFyLnN1Y2Nlc3MuYnV0dG9uLS1vdXRsaW5lLW9ubHk6Zm9jdXNbZGlzYWJsZWRdLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyLnN1Y2Nlc3MjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmZvY3VzW2Rpc2FibGVkXSwgLmNsZWFyLnN1Y2Nlc3MuYnV0dG9uLS10ZXh0LW9ubHk6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5idXR0b24uY2xlYXIud2FybmluZywgLmNsZWFyLndhcm5pbmcuYnV0dG9uLS1vdXRsaW5lLW9ubHksICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIud2FybmluZyNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsIC5jbGVhci53YXJuaW5nLmJ1dHRvbi0tdGV4dC1vbmx5IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmFlMDA7XG4gICAgICBjb2xvcjogI2ZmYWUwMDsgfVxuICAgICAgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmhvdmVyLCAuY2xlYXIud2FybmluZy5idXR0b24tLW91dGxpbmUtb25seTpob3ZlciwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhci53YXJuaW5nI21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3ZlciwgLmNsZWFyLndhcm5pbmcuYnV0dG9uLS10ZXh0LW9ubHk6aG92ZXIsIC5idXR0b24uY2xlYXIud2FybmluZzpmb2N1cywgLmNsZWFyLndhcm5pbmcuYnV0dG9uLS1vdXRsaW5lLW9ubHk6Zm9jdXMsICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIud2FybmluZyNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6Zm9jdXMsIC5jbGVhci53YXJuaW5nLmJ1dHRvbi0tdGV4dC1vbmx5OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjODA1NzAwO1xuICAgICAgICBjb2xvcjogIzgwNTcwMDsgfVxuICAgICAgICAuYnV0dG9uLmNsZWFyLndhcm5pbmc6aG92ZXIuZGlzYWJsZWQsIC5jbGVhci53YXJuaW5nLmJ1dHRvbi0tb3V0bGluZS1vbmx5OmhvdmVyLmRpc2FibGVkLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyLndhcm5pbmcjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyLmRpc2FibGVkLCAuY2xlYXIud2FybmluZy5idXR0b24tLXRleHQtb25seTpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmhvdmVyW2Rpc2FibGVkXSwgLmNsZWFyLndhcm5pbmcuYnV0dG9uLS1vdXRsaW5lLW9ubHk6aG92ZXJbZGlzYWJsZWRdLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyLndhcm5pbmcjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyW2Rpc2FibGVkXSwgLmNsZWFyLndhcm5pbmcuYnV0dG9uLS10ZXh0LW9ubHk6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLndhcm5pbmc6Zm9jdXMuZGlzYWJsZWQsIC5jbGVhci53YXJuaW5nLmJ1dHRvbi0tb3V0bGluZS1vbmx5OmZvY3VzLmRpc2FibGVkLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyLndhcm5pbmcjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmZvY3VzLmRpc2FibGVkLCAuY2xlYXIud2FybmluZy5idXR0b24tLXRleHQtb25seTpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmZvY3VzW2Rpc2FibGVkXSwgLmNsZWFyLndhcm5pbmcuYnV0dG9uLS1vdXRsaW5lLW9ubHk6Zm9jdXNbZGlzYWJsZWRdLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyLndhcm5pbmcjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmZvY3VzW2Rpc2FibGVkXSwgLmNsZWFyLndhcm5pbmcuYnV0dG9uLS10ZXh0LW9ubHk6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZhZTAwO1xuICAgICAgICAgIGNvbG9yOiAjZmZhZTAwOyB9XG4gICAgICAuYnV0dG9uLmNsZWFyLndhcm5pbmcsIC5jbGVhci53YXJuaW5nLmJ1dHRvbi0tb3V0bGluZS1vbmx5LCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyLndhcm5pbmcjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAuY2xlYXIud2FybmluZy5idXR0b24tLXRleHQtb25seSwgLmJ1dHRvbi5jbGVhci53YXJuaW5nLmRpc2FibGVkLCAuY2xlYXIud2FybmluZy5kaXNhYmxlZC5idXR0b24tLW91dGxpbmUtb25seSwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhci53YXJuaW5nLmRpc2FibGVkI21jLWVtYmVkZGVkLXN1YnNjcmliZSwgLmNsZWFyLndhcm5pbmcuZGlzYWJsZWQuYnV0dG9uLS10ZXh0LW9ubHksIC5idXR0b24uY2xlYXIud2FybmluZ1tkaXNhYmxlZF0sIC5jbGVhci53YXJuaW5nLmJ1dHRvbi0tb3V0bGluZS1vbmx5W2Rpc2FibGVkXSwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhci53YXJuaW5nI21jLWVtYmVkZGVkLXN1YnNjcmliZVtkaXNhYmxlZF0sIC5jbGVhci53YXJuaW5nLmJ1dHRvbi0tdGV4dC1vbmx5W2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmhvdmVyLCAuY2xlYXIud2FybmluZy5idXR0b24tLW91dGxpbmUtb25seTpob3ZlciwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhci53YXJuaW5nI21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3ZlciwgLmNsZWFyLndhcm5pbmcuYnV0dG9uLS10ZXh0LW9ubHk6aG92ZXIsIC5idXR0b24uY2xlYXIud2FybmluZzpob3Zlci5kaXNhYmxlZCwgLmNsZWFyLndhcm5pbmcuYnV0dG9uLS1vdXRsaW5lLW9ubHk6aG92ZXIuZGlzYWJsZWQsICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIud2FybmluZyNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6aG92ZXIuZGlzYWJsZWQsIC5jbGVhci53YXJuaW5nLmJ1dHRvbi0tdGV4dC1vbmx5OmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLndhcm5pbmc6aG92ZXJbZGlzYWJsZWRdLCAuY2xlYXIud2FybmluZy5idXR0b24tLW91dGxpbmUtb25seTpob3ZlcltkaXNhYmxlZF0sICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIud2FybmluZyNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6aG92ZXJbZGlzYWJsZWRdLCAuY2xlYXIud2FybmluZy5idXR0b24tLXRleHQtb25seTpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIud2FybmluZzpmb2N1cywgLmNsZWFyLndhcm5pbmcuYnV0dG9uLS1vdXRsaW5lLW9ubHk6Zm9jdXMsICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIud2FybmluZyNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6Zm9jdXMsIC5jbGVhci53YXJuaW5nLmJ1dHRvbi0tdGV4dC1vbmx5OmZvY3VzLCAuYnV0dG9uLmNsZWFyLndhcm5pbmc6Zm9jdXMuZGlzYWJsZWQsIC5jbGVhci53YXJuaW5nLmJ1dHRvbi0tb3V0bGluZS1vbmx5OmZvY3VzLmRpc2FibGVkLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyLndhcm5pbmcjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmZvY3VzLmRpc2FibGVkLCAuY2xlYXIud2FybmluZy5idXR0b24tLXRleHQtb25seTpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmZvY3VzW2Rpc2FibGVkXSwgLmNsZWFyLndhcm5pbmcuYnV0dG9uLS1vdXRsaW5lLW9ubHk6Zm9jdXNbZGlzYWJsZWRdLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyLndhcm5pbmcjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmZvY3VzW2Rpc2FibGVkXSwgLmNsZWFyLndhcm5pbmcuYnV0dG9uLS10ZXh0LW9ubHk6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5idXR0b24uY2xlYXIuYWxlcnQsIC5jbGVhci5hbGVydC5idXR0b24tLW91dGxpbmUtb25seSwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhci5hbGVydCNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsIC5jbGVhci5hbGVydC5idXR0b24tLXRleHQtb25seSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2M0YjM3O1xuICAgICAgY29sb3I6ICNjYzRiMzc7IH1cbiAgICAgIC5idXR0b24uY2xlYXIuYWxlcnQ6aG92ZXIsIC5jbGVhci5hbGVydC5idXR0b24tLW91dGxpbmUtb25seTpob3ZlciwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhci5hbGVydCNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6aG92ZXIsIC5jbGVhci5hbGVydC5idXR0b24tLXRleHQtb25seTpob3ZlciwgLmJ1dHRvbi5jbGVhci5hbGVydDpmb2N1cywgLmNsZWFyLmFsZXJ0LmJ1dHRvbi0tb3V0bGluZS1vbmx5OmZvY3VzLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyLmFsZXJ0I21jLWVtYmVkZGVkLXN1YnNjcmliZTpmb2N1cywgLmNsZWFyLmFsZXJ0LmJ1dHRvbi0tdGV4dC1vbmx5OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNjcyNTFhO1xuICAgICAgICBjb2xvcjogIzY3MjUxYTsgfVxuICAgICAgICAuYnV0dG9uLmNsZWFyLmFsZXJ0OmhvdmVyLmRpc2FibGVkLCAuY2xlYXIuYWxlcnQuYnV0dG9uLS1vdXRsaW5lLW9ubHk6aG92ZXIuZGlzYWJsZWQsICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIuYWxlcnQjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyLmRpc2FibGVkLCAuY2xlYXIuYWxlcnQuYnV0dG9uLS10ZXh0LW9ubHk6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuYWxlcnQ6aG92ZXJbZGlzYWJsZWRdLCAuY2xlYXIuYWxlcnQuYnV0dG9uLS1vdXRsaW5lLW9ubHk6aG92ZXJbZGlzYWJsZWRdLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyLmFsZXJ0I21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3ZlcltkaXNhYmxlZF0sIC5jbGVhci5hbGVydC5idXR0b24tLXRleHQtb25seTpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuYWxlcnQ6Zm9jdXMuZGlzYWJsZWQsIC5jbGVhci5hbGVydC5idXR0b24tLW91dGxpbmUtb25seTpmb2N1cy5kaXNhYmxlZCwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhci5hbGVydCNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6Zm9jdXMuZGlzYWJsZWQsIC5jbGVhci5hbGVydC5idXR0b24tLXRleHQtb25seTpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5hbGVydDpmb2N1c1tkaXNhYmxlZF0sIC5jbGVhci5hbGVydC5idXR0b24tLW91dGxpbmUtb25seTpmb2N1c1tkaXNhYmxlZF0sICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIuYWxlcnQjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmZvY3VzW2Rpc2FibGVkXSwgLmNsZWFyLmFsZXJ0LmJ1dHRvbi0tdGV4dC1vbmx5OmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2NjNGIzNztcbiAgICAgICAgICBjb2xvcjogI2NjNGIzNzsgfVxuICAgICAgLmJ1dHRvbi5jbGVhci5hbGVydCwgLmNsZWFyLmFsZXJ0LmJ1dHRvbi0tb3V0bGluZS1vbmx5LCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyLmFsZXJ0I21jLWVtYmVkZGVkLXN1YnNjcmliZSwgLmNsZWFyLmFsZXJ0LmJ1dHRvbi0tdGV4dC1vbmx5LCAuYnV0dG9uLmNsZWFyLmFsZXJ0LmRpc2FibGVkLCAuY2xlYXIuYWxlcnQuZGlzYWJsZWQuYnV0dG9uLS1vdXRsaW5lLW9ubHksICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIuYWxlcnQuZGlzYWJsZWQjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAuY2xlYXIuYWxlcnQuZGlzYWJsZWQuYnV0dG9uLS10ZXh0LW9ubHksIC5idXR0b24uY2xlYXIuYWxlcnRbZGlzYWJsZWRdLCAuY2xlYXIuYWxlcnQuYnV0dG9uLS1vdXRsaW5lLW9ubHlbZGlzYWJsZWRdLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyLmFsZXJ0I21jLWVtYmVkZGVkLXN1YnNjcmliZVtkaXNhYmxlZF0sIC5jbGVhci5hbGVydC5idXR0b24tLXRleHQtb25seVtkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuYWxlcnQ6aG92ZXIsIC5jbGVhci5hbGVydC5idXR0b24tLW91dGxpbmUtb25seTpob3ZlciwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhci5hbGVydCNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6aG92ZXIsIC5jbGVhci5hbGVydC5idXR0b24tLXRleHQtb25seTpob3ZlciwgLmJ1dHRvbi5jbGVhci5hbGVydDpob3Zlci5kaXNhYmxlZCwgLmNsZWFyLmFsZXJ0LmJ1dHRvbi0tb3V0bGluZS1vbmx5OmhvdmVyLmRpc2FibGVkLCAjbmV3c2xldHRlci1zaWdudXAgLmNsZWFyLmFsZXJ0I21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3Zlci5kaXNhYmxlZCwgLmNsZWFyLmFsZXJ0LmJ1dHRvbi0tdGV4dC1vbmx5OmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLmFsZXJ0OmhvdmVyW2Rpc2FibGVkXSwgLmNsZWFyLmFsZXJ0LmJ1dHRvbi0tb3V0bGluZS1vbmx5OmhvdmVyW2Rpc2FibGVkXSwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhci5hbGVydCNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6aG92ZXJbZGlzYWJsZWRdLCAuY2xlYXIuYWxlcnQuYnV0dG9uLS10ZXh0LW9ubHk6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLmFsZXJ0OmZvY3VzLCAuY2xlYXIuYWxlcnQuYnV0dG9uLS1vdXRsaW5lLW9ubHk6Zm9jdXMsICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIuYWxlcnQjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmZvY3VzLCAuY2xlYXIuYWxlcnQuYnV0dG9uLS10ZXh0LW9ubHk6Zm9jdXMsIC5idXR0b24uY2xlYXIuYWxlcnQ6Zm9jdXMuZGlzYWJsZWQsIC5jbGVhci5hbGVydC5idXR0b24tLW91dGxpbmUtb25seTpmb2N1cy5kaXNhYmxlZCwgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhci5hbGVydCNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6Zm9jdXMuZGlzYWJsZWQsIC5jbGVhci5hbGVydC5idXR0b24tLXRleHQtb25seTpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5hbGVydDpmb2N1c1tkaXNhYmxlZF0sIC5jbGVhci5hbGVydC5idXR0b24tLW91dGxpbmUtb25seTpmb2N1c1tkaXNhYmxlZF0sICNuZXdzbGV0dGVyLXNpZ251cCAuY2xlYXIuYWxlcnQjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmZvY3VzW2Rpc2FibGVkXSwgLmNsZWFyLmFsZXJ0LmJ1dHRvbi0tdGV4dC1vbmx5OmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgLmJ1dHRvbi5kcm9wZG93bjo6YWZ0ZXIsIC5kcm9wZG93bi5idXR0b24tLW91dGxpbmUtb25seTo6YWZ0ZXIsICNuZXdzbGV0dGVyLXNpZ251cCAuZHJvcGRvd24jbWMtZW1iZWRkZWQtc3Vic2NyaWJlOjphZnRlciwgLmRyb3Bkb3duLmJ1dHRvbi0tdGV4dC1vbmx5OjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgMC40ZW07XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICNmZWZlZmUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC40ZW07XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tbGVmdDogMWVtOyB9XG4gIC5idXR0b24uZHJvcGRvd24uaG9sbG93OjphZnRlciwgLmRyb3Bkb3duLmhvbGxvdy5idXR0b24tLW91dGxpbmUtb25seTo6YWZ0ZXIsICNuZXdzbGV0dGVyLXNpZ251cCAuZHJvcGRvd24uaG9sbG93I21jLWVtYmVkZGVkLXN1YnNjcmliZTo6YWZ0ZXIsIC5kcm9wZG93bi5ob2xsb3cuYnV0dG9uLS10ZXh0LW9ubHk6OmFmdGVyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjMDAwMDAwOyB9XG4gIC5idXR0b24uZHJvcGRvd24uaG9sbG93LnByaW1hcnk6OmFmdGVyLCAuZHJvcGRvd24uaG9sbG93LnByaW1hcnkuYnV0dG9uLS1vdXRsaW5lLW9ubHk6OmFmdGVyLCAjbmV3c2xldHRlci1zaWdudXAgLmRyb3Bkb3duLmhvbGxvdy5wcmltYXJ5I21jLWVtYmVkZGVkLXN1YnNjcmliZTo6YWZ0ZXIsIC5kcm9wZG93bi5ob2xsb3cucHJpbWFyeS5idXR0b24tLXRleHQtb25seTo6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICMwMDAwMDA7IH1cbiAgLmJ1dHRvbi5kcm9wZG93bi5ob2xsb3cuc2Vjb25kYXJ5OjphZnRlciwgLmRyb3Bkb3duLmhvbGxvdy5zZWNvbmRhcnkuYnV0dG9uLS1vdXRsaW5lLW9ubHk6OmFmdGVyLCAjbmV3c2xldHRlci1zaWdudXAgLmRyb3Bkb3duLmhvbGxvdy5zZWNvbmRhcnkjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOjphZnRlciwgLmRyb3Bkb3duLmhvbGxvdy5zZWNvbmRhcnkuYnV0dG9uLS10ZXh0LW9ubHk6OmFmdGVyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjZmZmZmZmOyB9XG4gIC5idXR0b24uZHJvcGRvd24uaG9sbG93LnN1Y2Nlc3M6OmFmdGVyLCAuZHJvcGRvd24uaG9sbG93LnN1Y2Nlc3MuYnV0dG9uLS1vdXRsaW5lLW9ubHk6OmFmdGVyLCAjbmV3c2xldHRlci1zaWdudXAgLmRyb3Bkb3duLmhvbGxvdy5zdWNjZXNzI21jLWVtYmVkZGVkLXN1YnNjcmliZTo6YWZ0ZXIsIC5kcm9wZG93bi5ob2xsb3cuc3VjY2Vzcy5idXR0b24tLXRleHQtb25seTo6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICMzYWRiNzY7IH1cbiAgLmJ1dHRvbi5kcm9wZG93bi5ob2xsb3cud2FybmluZzo6YWZ0ZXIsIC5kcm9wZG93bi5ob2xsb3cud2FybmluZy5idXR0b24tLW91dGxpbmUtb25seTo6YWZ0ZXIsICNuZXdzbGV0dGVyLXNpZ251cCAuZHJvcGRvd24uaG9sbG93Lndhcm5pbmcjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOjphZnRlciwgLmRyb3Bkb3duLmhvbGxvdy53YXJuaW5nLmJ1dHRvbi0tdGV4dC1vbmx5OjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmYWUwMDsgfVxuICAuYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy5hbGVydDo6YWZ0ZXIsIC5kcm9wZG93bi5ob2xsb3cuYWxlcnQuYnV0dG9uLS1vdXRsaW5lLW9ubHk6OmFmdGVyLCAjbmV3c2xldHRlci1zaWdudXAgLmRyb3Bkb3duLmhvbGxvdy5hbGVydCNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6OmFmdGVyLCAuZHJvcGRvd24uaG9sbG93LmFsZXJ0LmJ1dHRvbi0tdGV4dC1vbmx5OjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogI2NjNGIzNzsgfVxuICAuYnV0dG9uLmFycm93LW9ubHk6OmFmdGVyLCAuYXJyb3ctb25seS5idXR0b24tLW91dGxpbmUtb25seTo6YWZ0ZXIsICNuZXdzbGV0dGVyLXNpZ251cCAuYXJyb3ctb25seSNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6OmFmdGVyLCAuYXJyb3ctb25seS5idXR0b24tLXRleHQtb25seTo6YWZ0ZXIge1xuICAgIHRvcDogLTAuMWVtO1xuICAgIGZsb2F0OiBub25lO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbmEuYnV0dG9uOmhvdmVyLCAuc3ViLW1lbnUgLmJ1dHRvbi5mb250LS1ibGFjazpob3ZlciwgLnN1Yi1tZW51IC5mb250LS1ibGFjay5idXR0b24tLW91dGxpbmUtb25seTpob3ZlciwgLnN1Yi1tZW51ICNuZXdzbGV0dGVyLXNpZ251cCAuZm9udC0tYmxhY2sjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyLCAjbmV3c2xldHRlci1zaWdudXAgLnN1Yi1tZW51IC5mb250LS1ibGFjayNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6aG92ZXIsIC5zdWItbWVudSAuZm9udC0tYmxhY2suYnV0dG9uLS10ZXh0LW9ubHk6aG92ZXIsXG4uY29weXJpZ2h0IC5idXR0b24uZm9udC0tYmxhY2s6aG92ZXIsIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrLmJ1dHRvbi0tb3V0bGluZS1vbmx5OmhvdmVyLCAuY29weXJpZ2h0ICNuZXdzbGV0dGVyLXNpZ251cCAuZm9udC0tYmxhY2sjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyLCAjbmV3c2xldHRlci1zaWdudXAgLmNvcHlyaWdodCAuZm9udC0tYmxhY2sjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyLCAuY29weXJpZ2h0IC5mb250LS1ibGFjay5idXR0b24tLXRleHQtb25seTpob3ZlciwgYS5idXR0b24tLW91dGxpbmUtb25seTpob3ZlciwgI25ld3NsZXR0ZXItc2lnbnVwIGEjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyLCBhLmJ1dHRvbi0tdGV4dC1vbmx5OmhvdmVyLCBhLmJ1dHRvbjpmb2N1cywgLnN1Yi1tZW51IC5idXR0b24uZm9udC0tYmxhY2s6Zm9jdXMsIC5zdWItbWVudSAuZm9udC0tYmxhY2suYnV0dG9uLS1vdXRsaW5lLW9ubHk6Zm9jdXMsIC5zdWItbWVudSAjbmV3c2xldHRlci1zaWdudXAgLmZvbnQtLWJsYWNrI21jLWVtYmVkZGVkLXN1YnNjcmliZTpmb2N1cywgI25ld3NsZXR0ZXItc2lnbnVwIC5zdWItbWVudSAuZm9udC0tYmxhY2sjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmZvY3VzLCAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrLmJ1dHRvbi0tdGV4dC1vbmx5OmZvY3VzLFxuLmNvcHlyaWdodCAuYnV0dG9uLmZvbnQtLWJsYWNrOmZvY3VzLCAuY29weXJpZ2h0IC5mb250LS1ibGFjay5idXR0b24tLW91dGxpbmUtb25seTpmb2N1cywgLmNvcHlyaWdodCAjbmV3c2xldHRlci1zaWdudXAgLmZvbnQtLWJsYWNrI21jLWVtYmVkZGVkLXN1YnNjcmliZTpmb2N1cywgI25ld3NsZXR0ZXItc2lnbnVwIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrI21jLWVtYmVkZGVkLXN1YnNjcmliZTpmb2N1cywgLmNvcHlyaWdodCAuZm9udC0tYmxhY2suYnV0dG9uLS10ZXh0LW9ubHk6Zm9jdXMsIGEuYnV0dG9uLS1vdXRsaW5lLW9ubHk6Zm9jdXMsICNuZXdzbGV0dGVyLXNpZ251cCBhI21jLWVtYmVkZGVkLXN1YnNjcmliZTpmb2N1cywgYS5idXR0b24tLXRleHQtb25seTpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG5bdHlwZT0ndGV4dCddLCBbdHlwZT0ncGFzc3dvcmQnXSwgW3R5cGU9J2RhdGUnXSwgW3R5cGU9J2RhdGV0aW1lJ10sIFt0eXBlPSdkYXRldGltZS1sb2NhbCddLCBbdHlwZT0nbW9udGgnXSwgW3R5cGU9J3dlZWsnXSwgW3R5cGU9J2VtYWlsJ10sIFt0eXBlPSdudW1iZXInXSwgW3R5cGU9J3NlYXJjaCddLCBbdHlwZT0ndGVsJ10sIFt0eXBlPSd0aW1lJ10sIFt0eXBlPSd1cmwnXSwgW3R5cGU9J2NvbG9yJ10sXG50ZXh0YXJlYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAyLjQzNzVyZW07XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0RFREVERTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMTAsIDEwLCAxMCwgMC4xKTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xuICBhcHBlYXJhbmNlOiBub25lOyB9XG4gIFt0eXBlPSd0ZXh0J106Zm9jdXMsIFt0eXBlPSdwYXNzd29yZCddOmZvY3VzLCBbdHlwZT0nZGF0ZSddOmZvY3VzLCBbdHlwZT0nZGF0ZXRpbWUnXTpmb2N1cywgW3R5cGU9J2RhdGV0aW1lLWxvY2FsJ106Zm9jdXMsIFt0eXBlPSdtb250aCddOmZvY3VzLCBbdHlwZT0nd2VlayddOmZvY3VzLCBbdHlwZT0nZW1haWwnXTpmb2N1cywgW3R5cGU9J251bWJlciddOmZvY3VzLCBbdHlwZT0nc2VhcmNoJ106Zm9jdXMsIFt0eXBlPSd0ZWwnXTpmb2N1cywgW3R5cGU9J3RpbWUnXTpmb2N1cywgW3R5cGU9J3VybCddOmZvY3VzLCBbdHlwZT0nY29sb3InXTpmb2N1cyxcbiAgdGV4dGFyZWE6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI0FBQUFBQTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggI0RFREVERTtcbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDsgfVxuXG50ZXh0YXJlYSB7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuICB0ZXh0YXJlYVtyb3dzXSB7XG4gICAgaGVpZ2h0OiBhdXRvOyB9XG5cbmlucHV0OjpwbGFjZWhvbGRlcixcbnRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjREVERURFOyB9XG5cbmlucHV0OmRpc2FibGVkLCBpbnB1dFtyZWFkb25seV0sXG50ZXh0YXJlYTpkaXNhYmxlZCxcbnRleHRhcmVhW3JlYWRvbmx5XSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cblxuW3R5cGU9J3N1Ym1pdCddLFxuW3R5cGU9J2J1dHRvbiddIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuXG5pbnB1dFt0eXBlPSdzZWFyY2gnXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuW3R5cGU9J2ZpbGUnXSxcblt0eXBlPSdjaGVja2JveCddLFxuW3R5cGU9J3JhZGlvJ10ge1xuICBtYXJnaW46IDAgMCAxcmVtOyB9XG5cblt0eXBlPSdjaGVja2JveCddICsgbGFiZWwsXG5bdHlwZT0ncmFkaW8nXSArIGxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsW2Zvcl0sXG4gIFt0eXBlPSdyYWRpbyddICsgbGFiZWxbZm9yXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbmxhYmVsID4gW3R5cGU9J2NoZWNrYm94J10sXG5sYWJlbCA+IFt0eXBlPSdyYWRpbyddIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07IH1cblxuW3R5cGU9J2ZpbGUnXSB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbmxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuODtcbiAgY29sb3I6ICMwYTBhMGE7IH1cbiAgbGFiZWwubWlkZGxlIHtcbiAgICBtYXJnaW46IDAgMCAxcmVtO1xuICAgIHBhZGRpbmc6IDAuNTYyNXJlbSAwOyB9XG5cbi5oZWxwLXRleHQge1xuICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBjb2xvcjogIzBhMGEwYTsgfVxuXG4uaW5wdXQtZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cbiAgLmlucHV0LWdyb3VwID4gOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAwOyB9XG4gIC5pbnB1dC1ncm91cCA+IDpsYXN0LWNoaWxkID4gKiB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDsgfVxuXG4uaW5wdXQtZ3JvdXAtbGFiZWwsIC5pbnB1dC1ncm91cC1maWVsZCwgLmlucHV0LWdyb3VwLWJ1dHRvbiwgLmlucHV0LWdyb3VwLWJ1dHRvbiBhLCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5zdWItbWVudSAuZm9udC0tYmxhY2ssIC5zdWItbWVudSAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5mb250LS1ibGFjayxcbi5pbnB1dC1ncm91cC1idXR0b24gLmNvcHlyaWdodCAuZm9udC0tYmxhY2ssIC5jb3B5cmlnaHQgLmlucHV0LWdyb3VwLWJ1dHRvbiAuZm9udC0tYmxhY2ssXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIGlucHV0LFxuLmlucHV0LWdyb3VwLWJ1dHRvbiBidXR0b24sXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIGxhYmVsIHtcbiAgbWFyZ2luOiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi5pbnB1dC1ncm91cC1sYWJlbCB7XG4gIHBhZGRpbmc6IDAgMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0RFREVERTtcbiAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMCAwIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmlucHV0LWdyb3VwLWxhYmVsOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItcmlnaHQ6IDA7IH1cbiAgLmlucHV0LWdyb3VwLWxhYmVsOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1sZWZ0OiAwOyB9XG5cbi5pbnB1dC1ncm91cC1maWVsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGZsZXg6IDEgMSAwcHg7XG4gIGhlaWdodDogYXV0bztcbiAgbWluLXdpZHRoOiAwOyB9XG5cbi5pbnB1dC1ncm91cC1idXR0b24ge1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMCAwIGF1dG87IH1cbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBhLCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5zdWItbWVudSAuZm9udC0tYmxhY2ssIC5zdWItbWVudSAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5mb250LS1ibGFjayxcbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiAuY29weXJpZ2h0IC5mb250LS1ibGFjaywgLmNvcHlyaWdodCAuaW5wdXQtZ3JvdXAtYnV0dG9uIC5mb250LS1ibGFjayxcbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBpbnB1dCxcbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBidXR0b24sXG4gIC5pbnB1dC1ncm91cC1idXR0b24gbGFiZWwge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfVxuXG5maWVsZHNldCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwOyB9XG5cbmxlZ2VuZCB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbi5maWVsZHNldCB7XG4gIG1hcmdpbjogMS4xMjVyZW0gMDtcbiAgcGFkZGluZzogMS4yNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0RFREVERTsgfVxuICAuZmllbGRzZXQgbGVnZW5kIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLWxlZnQ6IC0wLjE4NzVyZW07XG4gICAgcGFkZGluZzogMCAwLjE4NzVyZW07IH1cblxuc2VsZWN0IHtcbiAgaGVpZ2h0OiAyLjQzNzVyZW07XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0RFREVERTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIHdpZHRoPSczMicgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDMyIDI0Jz48cG9seWdvbiBwb2ludHM9JzAsMCAzMiwwIDE2LDI0JyBzdHlsZT0nZmlsbDogcmdiJTI4MTcwLCAxNzAsIDE3MCUyOSc+PC9wb2x5Z29uPjwvc3ZnPlwiKTtcbiAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAtMXJlbSBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogOXB4IDZweDtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwXFwwKSB7XG4gICAgc2VsZWN0IHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBTUJKUkVGVWVOckVsbHNPaENBTVJWc3pDOUlselU3S0NtVkhUSnNvTVdZTVV0cHl2OUJnYnVYUUI1WlNkZ0JZWVk0eWNnQml2azhLWUZzUU1mTWlUVEJQNG8zblV6Q0t6T2FiTEpiTHkyL2czMWV2R2tBZ2luUjQvWmVnS0g1cVgzYkpDc2NBM3QweDNrZ081dFFGeWhoRmY1MHhScUZMYnlNVU5KUXpneWpHUy93Z0Nwdktxa1JCcHVXckU0VjlkKzFFNGRQVVhxSWcxMDdTUU9FLzJEUlF4TXdURHlnSUluVkRFVDlUM2xDb2ovNmovVkNtR2paT2wybEtwWjhBQXdEUVA3eklpbURHRlFBQUFBQkpSVTVFcmtKZ2dnPT1cIik7IH0gfVxuICBzZWxlY3Q6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI0FBQUFBQTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggI0RFREVERTtcbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDsgfVxuICBzZWxlY3Q6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICBzZWxlY3Q6Oi1tcy1leHBhbmQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgc2VsZWN0W211bHRpcGxlXSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IH1cblxuLmlzLWludmFsaWQtaW5wdXQ6bm90KDpmb2N1cykge1xuICBib3JkZXItY29sb3I6ICNjYzRiMzc7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWVjZWE7IH1cbiAgLmlzLWludmFsaWQtaW5wdXQ6bm90KDpmb2N1cyk6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogI2NjNGIzNzsgfVxuXG4uaXMtaW52YWxpZC1sYWJlbCB7XG4gIGNvbG9yOiAjY2M0YjM3OyB9XG5cbi5mb3JtLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNjYzRiMzc7IH1cbiAgLmZvcm0tZXJyb3IuaXMtdmlzaWJsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLmFjY29yZGlvbiB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IH1cbiAgLmFjY29yZGlvbltkaXNhYmxlZF0gLmFjY29yZGlvbi10aXRsZSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuXG4uYWNjb3JkaW9uLWl0ZW06Zmlyc3QtY2hpbGQgPiA6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwIDAgMCAwOyB9XG5cbi5hY2NvcmRpb24taXRlbTpsYXN0LWNoaWxkID4gOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwIDAgMCAwOyB9XG5cbi5hY2NvcmRpb24tdGl0bGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxLjI1cmVtIDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmNWY1ZjU7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjMDAwMDAwOyB9XG4gIDpsYXN0LWNoaWxkOm5vdCguaXMtYWN0aXZlKSA+IC5hY2NvcmRpb24tdGl0bGUge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjVmNWY1O1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cbiAgLmFjY29yZGlvbi10aXRsZTpob3ZlciwgLmFjY29yZGlvbi10aXRsZTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTsgfVxuICAuYWNjb3JkaW9uLXRpdGxlOjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogMXJlbTtcbiAgICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICAgIGNvbnRlbnQ6ICcrJzsgfVxuICAuaXMtYWN0aXZlID4gLmFjY29yZGlvbi10aXRsZTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnXFwyMDEzJzsgfVxuXG4uYWNjb3JkaW9uLWNvbnRlbnQge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZjVmNWY1O1xuICBib3JkZXItYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBjb2xvcjogIzBhMGEwYTsgfVxuICA6bGFzdC1jaGlsZCA+IC5hY2NvcmRpb24tY29udGVudDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Y1ZjVmNTsgfVxuXG4uYWNjb3JkaW9uLW1lbnUgbGkge1xuICB3aWR0aDogMTAwJTsgfVxuXG4uYWNjb3JkaW9uLW1lbnUgYSwgLmFjY29yZGlvbi1tZW51IC5zdWItbWVudSAuZm9udC0tYmxhY2ssIC5zdWItbWVudSAuYWNjb3JkaW9uLW1lbnUgLmZvbnQtLWJsYWNrLFxuLmFjY29yZGlvbi1tZW51IC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrLCAuY29weXJpZ2h0IC5hY2NvcmRpb24tbWVudSAuZm9udC0tYmxhY2sge1xuICBwYWRkaW5nOiAwLjdyZW0gMXJlbTsgfVxuXG4uYWNjb3JkaW9uLW1lbnUgLmlzLWFjY29yZGlvbi1zdWJtZW51IGEsIC5hY2NvcmRpb24tbWVudSAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUgLnN1Yi1tZW51IC5mb250LS1ibGFjaywgLnN1Yi1tZW51IC5hY2NvcmRpb24tbWVudSAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUgLmZvbnQtLWJsYWNrLFxuLmFjY29yZGlvbi1tZW51IC5pcy1hY2NvcmRpb24tc3VibWVudSAuY29weXJpZ2h0IC5mb250LS1ibGFjaywgLmNvcHlyaWdodCAuYWNjb3JkaW9uLW1lbnUgLmlzLWFjY29yZGlvbi1zdWJtZW51IC5mb250LS1ibGFjayB7XG4gIHBhZGRpbmc6IDAuN3JlbSAxcmVtOyB9XG5cbi5hY2NvcmRpb24tbWVudSAubmVzdGVkLmlzLWFjY29yZGlvbi1zdWJtZW51IHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuXG4uYWNjb3JkaW9uLW1lbnUuYWxpZ24tcmlnaHQgLm5lc3RlZC5pcy1hY2NvcmRpb24tc3VibWVudSB7XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLmFjY29yZGlvbi1tZW51IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQ6bm90KC5oYXMtc3VibWVudS10b2dnbGUpID4gYSwgLmFjY29yZGlvbi1tZW51IC5zdWItbWVudSAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50Om5vdCguaGFzLXN1Ym1lbnUtdG9nZ2xlKSA+IC5mb250LS1ibGFjaywgLnN1Yi1tZW51IC5hY2NvcmRpb24tbWVudSAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50Om5vdCguaGFzLXN1Ym1lbnUtdG9nZ2xlKSA+IC5mb250LS1ibGFjayxcbi5hY2NvcmRpb24tbWVudSAuY29weXJpZ2h0IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQ6bm90KC5oYXMtc3VibWVudS10b2dnbGUpID4gLmZvbnQtLWJsYWNrLCAuY29weXJpZ2h0IC5hY2NvcmRpb24tbWVudSAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50Om5vdCguaGFzLXN1Ym1lbnUtdG9nZ2xlKSA+IC5mb250LS1ibGFjayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuYWNjb3JkaW9uLW1lbnUgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudDpub3QoLmhhcy1zdWJtZW51LXRvZ2dsZSkgPiBhOjphZnRlciwgLmFjY29yZGlvbi1tZW51IC5zdWItbWVudSAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50Om5vdCguaGFzLXN1Ym1lbnUtdG9nZ2xlKSA+IC5mb250LS1ibGFjazo6YWZ0ZXIsIC5zdWItbWVudSAuYWNjb3JkaW9uLW1lbnUgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudDpub3QoLmhhcy1zdWJtZW51LXRvZ2dsZSkgPiAuZm9udC0tYmxhY2s6OmFmdGVyLFxuICAuYWNjb3JkaW9uLW1lbnUgLmNvcHlyaWdodCAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50Om5vdCguaGFzLXN1Ym1lbnUtdG9nZ2xlKSA+IC5mb250LS1ibGFjazo6YWZ0ZXIsIC5jb3B5cmlnaHQgLmFjY29yZGlvbi1tZW51IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQ6bm90KC5oYXMtc3VibWVudS10b2dnbGUpID4gLmZvbnQtLWJsYWNrOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjZmVmZWZlIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtM3B4O1xuICAgIHJpZ2h0OiAxcmVtOyB9XG5cbi5hY2NvcmRpb24tbWVudS5hbGlnbi1sZWZ0IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciwgLmFjY29yZGlvbi1tZW51LmFsaWduLWxlZnQgLnN1Yi1tZW51IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiAuZm9udC0tYmxhY2s6OmFmdGVyLCAuc3ViLW1lbnUgLmFjY29yZGlvbi1tZW51LmFsaWduLWxlZnQgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCA+IC5mb250LS1ibGFjazo6YWZ0ZXIsXG4uYWNjb3JkaW9uLW1lbnUuYWxpZ24tbGVmdCAuY29weXJpZ2h0IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiAuZm9udC0tYmxhY2s6OmFmdGVyLCAuY29weXJpZ2h0IC5hY2NvcmRpb24tbWVudS5hbGlnbi1sZWZ0IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiAuZm9udC0tYmxhY2s6OmFmdGVyIHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDFyZW07IH1cblxuLmFjY29yZGlvbi1tZW51LmFsaWduLXJpZ2h0IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciwgLmFjY29yZGlvbi1tZW51LmFsaWduLXJpZ2h0IC5zdWItbWVudSAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50ID4gLmZvbnQtLWJsYWNrOjphZnRlciwgLnN1Yi1tZW51IC5hY2NvcmRpb24tbWVudS5hbGlnbi1yaWdodCAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50ID4gLmZvbnQtLWJsYWNrOjphZnRlcixcbi5hY2NvcmRpb24tbWVudS5hbGlnbi1yaWdodCAuY29weXJpZ2h0IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiAuZm9udC0tYmxhY2s6OmFmdGVyLCAuY29weXJpZ2h0IC5hY2NvcmRpb24tbWVudS5hbGlnbi1yaWdodCAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50ID4gLmZvbnQtLWJsYWNrOjphZnRlciB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAxcmVtOyB9XG5cbi5hY2NvcmRpb24tbWVudSAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50W2FyaWEtZXhwYW5kZWQ9J3RydWUnXSA+IGE6OmFmdGVyLCAuYWNjb3JkaW9uLW1lbnUgLnN1Yi1tZW51IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnRbYXJpYS1leHBhbmRlZD0ndHJ1ZSddID4gLmZvbnQtLWJsYWNrOjphZnRlciwgLnN1Yi1tZW51IC5hY2NvcmRpb24tbWVudSAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50W2FyaWEtZXhwYW5kZWQ9J3RydWUnXSA+IC5mb250LS1ibGFjazo6YWZ0ZXIsXG4uYWNjb3JkaW9uLW1lbnUgLmNvcHlyaWdodCAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50W2FyaWEtZXhwYW5kZWQ9J3RydWUnXSA+IC5mb250LS1ibGFjazo6YWZ0ZXIsIC5jb3B5cmlnaHQgLmFjY29yZGlvbi1tZW51IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnRbYXJpYS1leHBhbmRlZD0ndHJ1ZSddID4gLmZvbnQtLWJsYWNrOjphZnRlciB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7IH1cblxuLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uaGFzLXN1Ym1lbnUtdG9nZ2xlID4gYSwgLnN1Yi1tZW51IC5oYXMtc3VibWVudS10b2dnbGUgPiAuZm9udC0tYmxhY2ssXG4uY29weXJpZ2h0IC5oYXMtc3VibWVudS10b2dnbGUgPiAuZm9udC0tYmxhY2sge1xuICBtYXJnaW4tcmlnaHQ6IDQwcHg7IH1cblxuLnN1Ym1lbnUtdG9nZ2xlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7IH1cbiAgLnN1Ym1lbnUtdG9nZ2xlOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjZmVmZWZlIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbWFyZ2luOiBhdXRvOyB9XG5cbi5zdWJtZW51LXRvZ2dsZVthcmlhLWV4cGFuZGVkPSd0cnVlJ106OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZVkoLTEpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlOyB9XG5cbi5zdWJtZW51LXRvZ2dsZS10ZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gIGJvcmRlcjogMDsgfVxuXG4uYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi13aWR0aDogMi4xZW07XG4gIHBhZGRpbmc6IDAuM2VtO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGZvbnQtc2l6ZTogMC42cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5iYWRnZS5wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5iYWRnZS5zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmJhZGdlLnN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQ6ICMzYWRiNzY7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmJhZGdlLndhcm5pbmcge1xuICAgIGJhY2tncm91bmQ6ICNmZmFlMDA7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmJhZGdlLmFsZXJ0IHtcbiAgICBiYWNrZ3JvdW5kOiAjY2M0YjM3O1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG5cbi5icmVhZGNydW1icyB7XG4gIG1hcmdpbjogMCAwIDIuNXJlbSAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG4gIC5icmVhZGNydW1iczo6YmVmb3JlLCAuYnJlYWRjcnVtYnM6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBvcmRlcjogMTsgfVxuICAuYnJlYWRjcnVtYnM6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuYnJlYWRjcnVtYnMgbGkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogMC42ODc1cmVtO1xuICAgIGNvbG9yOiAjMGEwYTBhO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgLmJyZWFkY3J1bWJzIGxpOm5vdCg6bGFzdC1jaGlsZCk6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1hcmdpbjogMCAwLjc1cmVtO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGNvbnRlbnQ6IFwiL1wiO1xuICAgICAgY29sb3I6ICNERURFREU7IH1cbiAgLmJyZWFkY3J1bWJzIGEsIC5icmVhZGNydW1icyAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrLCAuc3ViLW1lbnUgLmJyZWFkY3J1bWJzIC5mb250LS1ibGFjayxcbiAgLmJyZWFkY3J1bWJzIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrLCAuY29weXJpZ2h0IC5icmVhZGNydW1icyAuZm9udC0tYmxhY2sge1xuICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gICAgLmJyZWFkY3J1bWJzIGE6aG92ZXIsIC5icmVhZGNydW1icyAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrOmhvdmVyLCAuc3ViLW1lbnUgLmJyZWFkY3J1bWJzIC5mb250LS1ibGFjazpob3ZlcixcbiAgICAuYnJlYWRjcnVtYnMgLmNvcHlyaWdodCAuZm9udC0tYmxhY2s6aG92ZXIsIC5jb3B5cmlnaHQgLmJyZWFkY3J1bWJzIC5mb250LS1ibGFjazpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAuYnJlYWRjcnVtYnMgLmRpc2FibGVkIHtcbiAgICBjb2xvcjogI0RFREVERTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG5cbi5idXR0b24tZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cbiAgLmJ1dHRvbi1ncm91cDo6YmVmb3JlLCAuYnV0dG9uLWdyb3VwOjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgb3JkZXI6IDE7IH1cbiAgLmJ1dHRvbi1ncm91cDo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5idXR0b24tZ3JvdXAgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cCAuYnV0dG9uLS1vdXRsaW5lLW9ubHksIC5idXR0b24tZ3JvdXAgI25ld3NsZXR0ZXItc2lnbnVwICNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsICNuZXdzbGV0dGVyLXNpZ251cCAuYnV0dG9uLWdyb3VwICNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsIC5idXR0b24tZ3JvdXAgLmJ1dHRvbi0tdGV4dC1vbmx5IHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMXB4O1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIGZsZXg6IDAgMCBhdXRvOyB9XG4gICAgLmJ1dHRvbi1ncm91cCAuYnV0dG9uOmxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAgLmJ1dHRvbi0tb3V0bGluZS1vbmx5Omxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAgI25ld3NsZXR0ZXItc2lnbnVwICNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6bGFzdC1jaGlsZCwgI25ld3NsZXR0ZXItc2lnbnVwIC5idXR0b24tZ3JvdXAgI21jLWVtYmVkZGVkLXN1YnNjcmliZTpsYXN0LWNoaWxkLCAuYnV0dG9uLWdyb3VwIC5idXR0b24tLXRleHQtb25seTpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAuYnV0dG9uLWdyb3VwLnRpbnkgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC50aW55IC5idXR0b24tLW91dGxpbmUtb25seSwgLmJ1dHRvbi1ncm91cC50aW55ICNuZXdzbGV0dGVyLXNpZ251cCAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAjbmV3c2xldHRlci1zaWdudXAgLmJ1dHRvbi1ncm91cC50aW55ICNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsIC5idXR0b24tZ3JvdXAudGlueSAuYnV0dG9uLS10ZXh0LW9ubHkge1xuICAgIGZvbnQtc2l6ZTogMC42cmVtOyB9XG4gIC5idXR0b24tZ3JvdXAuc21hbGwgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zbWFsbCAuYnV0dG9uLS1vdXRsaW5lLW9ubHksIC5idXR0b24tZ3JvdXAuc21hbGwgI25ld3NsZXR0ZXItc2lnbnVwICNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsICNuZXdzbGV0dGVyLXNpZ251cCAuYnV0dG9uLWdyb3VwLnNtYWxsICNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsIC5idXR0b24tZ3JvdXAuc21hbGwgLmJ1dHRvbi0tdGV4dC1vbmx5IHtcbiAgICBmb250LXNpemU6IDAuNzVyZW07IH1cbiAgLmJ1dHRvbi1ncm91cC5sYXJnZSAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmxhcmdlIC5idXR0b24tLW91dGxpbmUtb25seSwgLmJ1dHRvbi1ncm91cC5sYXJnZSAjbmV3c2xldHRlci1zaWdudXAgI21jLWVtYmVkZGVkLXN1YnNjcmliZSwgI25ld3NsZXR0ZXItc2lnbnVwIC5idXR0b24tZ3JvdXAubGFyZ2UgI21jLWVtYmVkZGVkLXN1YnNjcmliZSwgLmJ1dHRvbi1ncm91cC5sYXJnZSAuYnV0dG9uLS10ZXh0LW9ubHkge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuICAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b24sIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbi0tb3V0bGluZS1vbmx5LCAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkICNuZXdzbGV0dGVyLXNpZ251cCAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAjbmV3c2xldHRlci1zaWdudXAgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b24tLXRleHQtb25seSB7XG4gICAgZmxleDogMSAxIDBweDsgfVxuICAuYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b24tLW91dGxpbmUtb25seSwgLmJ1dHRvbi1ncm91cC5wcmltYXJ5ICNuZXdzbGV0dGVyLXNpZ251cCAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAjbmV3c2xldHRlci1zaWdudXAgLmJ1dHRvbi1ncm91cC5wcmltYXJ5ICNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsIC5idXR0b24tZ3JvdXAucHJpbWFyeSAuYnV0dG9uLS10ZXh0LW9ubHkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAuYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b24tLW91dGxpbmUtb25seTpob3ZlciwgLmJ1dHRvbi1ncm91cC5wcmltYXJ5ICNuZXdzbGV0dGVyLXNpZ251cCAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyLCAjbmV3c2xldHRlci1zaWdudXAgLmJ1dHRvbi1ncm91cC5wcmltYXJ5ICNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6aG92ZXIsIC5idXR0b24tZ3JvdXAucHJpbWFyeSAuYnV0dG9uLS10ZXh0LW9ubHk6aG92ZXIsIC5idXR0b24tZ3JvdXAucHJpbWFyeSAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbi0tb3V0bGluZS1vbmx5OmZvY3VzLCAuYnV0dG9uLWdyb3VwLnByaW1hcnkgI25ld3NsZXR0ZXItc2lnbnVwICNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6Zm9jdXMsICNuZXdzbGV0dGVyLXNpZ251cCAuYnV0dG9uLWdyb3VwLnByaW1hcnkgI21jLWVtYmVkZGVkLXN1YnNjcmliZTpmb2N1cywgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b24tLXRleHQtb25seTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b24sIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b24tLW91dGxpbmUtb25seSwgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgI25ld3NsZXR0ZXItc2lnbnVwICNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsICNuZXdzbGV0dGVyLXNpZ251cCAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uLS10ZXh0LW9ubHkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgICAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uLS1vdXRsaW5lLW9ubHk6aG92ZXIsIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5ICNuZXdzbGV0dGVyLXNpZ251cCAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyLCAjbmV3c2xldHRlci1zaWdudXAgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgI21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3ZlciwgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmJ1dHRvbi0tdGV4dC1vbmx5OmhvdmVyLCAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uLS1vdXRsaW5lLW9ubHk6Zm9jdXMsIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5ICNuZXdzbGV0dGVyLXNpZ251cCAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmZvY3VzLCAjbmV3c2xldHRlci1zaWdudXAgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgI21jLWVtYmVkZGVkLXN1YnNjcmliZTpmb2N1cywgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmJ1dHRvbi0tdGV4dC1vbmx5OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2NjY2M7XG4gICAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5idXR0b24tLW91dGxpbmUtb25seSwgLmJ1dHRvbi1ncm91cC5zdWNjZXNzICNuZXdzbGV0dGVyLXNpZ251cCAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAjbmV3c2xldHRlci1zaWdudXAgLmJ1dHRvbi1ncm91cC5zdWNjZXNzICNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uLS10ZXh0LW9ubHkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzYWRiNzY7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgICAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5idXR0b24tLW91dGxpbmUtb25seTpob3ZlciwgLmJ1dHRvbi1ncm91cC5zdWNjZXNzICNuZXdzbGV0dGVyLXNpZ251cCAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyLCAjbmV3c2xldHRlci1zaWdudXAgLmJ1dHRvbi1ncm91cC5zdWNjZXNzICNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6aG92ZXIsIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uLS10ZXh0LW9ubHk6aG92ZXIsIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbi0tb3V0bGluZS1vbmx5OmZvY3VzLCAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgI25ld3NsZXR0ZXItc2lnbnVwICNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6Zm9jdXMsICNuZXdzbGV0dGVyLXNpZ251cCAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgI21jLWVtYmVkZGVkLXN1YnNjcmliZTpmb2N1cywgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5idXR0b24tLXRleHQtb25seTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjJiYjViO1xuICAgICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmJ1dHRvbi1ncm91cC53YXJuaW5nIC5idXR0b24sIC5idXR0b24tZ3JvdXAud2FybmluZyAuYnV0dG9uLS1vdXRsaW5lLW9ubHksIC5idXR0b24tZ3JvdXAud2FybmluZyAjbmV3c2xldHRlci1zaWdudXAgI21jLWVtYmVkZGVkLXN1YnNjcmliZSwgI25ld3NsZXR0ZXItc2lnbnVwIC5idXR0b24tZ3JvdXAud2FybmluZyAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbi0tdGV4dC1vbmx5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhZTAwO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gICAgLmJ1dHRvbi1ncm91cC53YXJuaW5nIC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAud2FybmluZyAuYnV0dG9uLS1vdXRsaW5lLW9ubHk6aG92ZXIsIC5idXR0b24tZ3JvdXAud2FybmluZyAjbmV3c2xldHRlci1zaWdudXAgI21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3ZlciwgI25ld3NsZXR0ZXItc2lnbnVwIC5idXR0b24tZ3JvdXAud2FybmluZyAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmhvdmVyLCAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbi0tdGV4dC1vbmx5OmhvdmVyLCAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbi1ncm91cC53YXJuaW5nIC5idXR0b24tLW91dGxpbmUtb25seTpmb2N1cywgLmJ1dHRvbi1ncm91cC53YXJuaW5nICNuZXdzbGV0dGVyLXNpZ251cCAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmZvY3VzLCAjbmV3c2xldHRlci1zaWdudXAgLmJ1dHRvbi1ncm91cC53YXJuaW5nICNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6Zm9jdXMsIC5idXR0b24tZ3JvdXAud2FybmluZyAuYnV0dG9uLS10ZXh0LW9ubHk6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NjOGIwMDtcbiAgICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uLS1vdXRsaW5lLW9ubHksIC5idXR0b24tZ3JvdXAuYWxlcnQgI25ld3NsZXR0ZXItc2lnbnVwICNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsICNuZXdzbGV0dGVyLXNpZ251cCAuYnV0dG9uLWdyb3VwLmFsZXJ0ICNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbi0tdGV4dC1vbmx5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M0YjM3O1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICAgLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmFsZXJ0IC5idXR0b24tLW91dGxpbmUtb25seTpob3ZlciwgLmJ1dHRvbi1ncm91cC5hbGVydCAjbmV3c2xldHRlci1zaWdudXAgI21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3ZlciwgI25ld3NsZXR0ZXItc2lnbnVwIC5idXR0b24tZ3JvdXAuYWxlcnQgI21jLWVtYmVkZGVkLXN1YnNjcmliZTpob3ZlciwgLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uLS10ZXh0LW9ubHk6aG92ZXIsIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uLS1vdXRsaW5lLW9ubHk6Zm9jdXMsIC5idXR0b24tZ3JvdXAuYWxlcnQgI25ld3NsZXR0ZXItc2lnbnVwICNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6Zm9jdXMsICNuZXdzbGV0dGVyLXNpZ251cCAuYnV0dG9uLWdyb3VwLmFsZXJ0ICNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6Zm9jdXMsIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbi0tdGV4dC1vbmx5OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhNTNiMmE7XG4gICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zdGFja2VkIC5idXR0b24tLW91dGxpbmUtb25seSwgLmJ1dHRvbi1ncm91cC5zdGFja2VkICNuZXdzbGV0dGVyLXNpZ251cCAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAjbmV3c2xldHRlci1zaWdudXAgLmJ1dHRvbi1ncm91cC5zdGFja2VkICNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsIC5idXR0b24tZ3JvdXAuc3RhY2tlZCAuYnV0dG9uLS10ZXh0LW9ubHksIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCAuYnV0dG9uLS1vdXRsaW5lLW9ubHksIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgI25ld3NsZXR0ZXItc2lnbnVwICNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsICNuZXdzbGV0dGVyLXNpZ251cCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsICNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgLmJ1dHRvbi0tdGV4dC1vbmx5LCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSAuYnV0dG9uLS1vdXRsaW5lLW9ubHksIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtICNuZXdzbGV0dGVyLXNpZ251cCAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAjbmV3c2xldHRlci1zaWdudXAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gI21jLWVtYmVkZGVkLXN1YnNjcmliZSwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gLmJ1dHRvbi0tdGV4dC1vbmx5IHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlOyB9XG4gICAgICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQgLmJ1dHRvbjpsYXN0LWNoaWxkLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQgLmJ1dHRvbi0tb3V0bGluZS1vbmx5Omxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuc3RhY2tlZCAjbmV3c2xldHRlci1zaWdudXAgI21jLWVtYmVkZGVkLXN1YnNjcmliZTpsYXN0LWNoaWxkLCAjbmV3c2xldHRlci1zaWdudXAgLmJ1dHRvbi1ncm91cC5zdGFja2VkICNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6bGFzdC1jaGlsZCwgLmJ1dHRvbi1ncm91cC5zdGFja2VkIC5idXR0b24tLXRleHQtb25seTpsYXN0LWNoaWxkLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsIC5idXR0b246bGFzdC1jaGlsZCwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCAuYnV0dG9uLS1vdXRsaW5lLW9ubHk6bGFzdC1jaGlsZCwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCAjbmV3c2xldHRlci1zaWdudXAgI21jLWVtYmVkZGVkLXN1YnNjcmliZTpsYXN0LWNoaWxkLCAjbmV3c2xldHRlci1zaWdudXAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgLmJ1dHRvbi0tdGV4dC1vbmx5Omxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtIC5idXR0b246bGFzdC1jaGlsZCwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gLmJ1dHRvbi0tb3V0bGluZS1vbmx5Omxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtICNuZXdzbGV0dGVyLXNpZ251cCAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmxhc3QtY2hpbGQsICNuZXdzbGV0dGVyLXNpZ251cCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOmxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtIC5idXR0b24tLXRleHQtb25seTpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCAuYnV0dG9uLS1vdXRsaW5lLW9ubHksIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgI25ld3NsZXR0ZXItc2lnbnVwICNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsICNuZXdzbGV0dGVyLXNpZ251cCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsICNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgLmJ1dHRvbi0tdGV4dC1vbmx5IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSAuYnV0dG9uLS1vdXRsaW5lLW9ubHksIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtICNuZXdzbGV0dGVyLXNpZ251cCAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAjbmV3c2xldHRlci1zaWdudXAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gI21jLWVtYmVkZGVkLXN1YnNjcmliZSwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gLmJ1dHRvbi0tdGV4dC1vbmx5IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsLmV4cGFuZGVkIC5idXR0b24tLW91dGxpbmUtb25seSwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCAjbmV3c2xldHRlci1zaWdudXAgI21jLWVtYmVkZGVkLXN1YnNjcmliZSwgI25ld3NsZXR0ZXItc2lnbnVwIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwuZXhwYW5kZWQgI21jLWVtYmVkZGVkLXN1YnNjcmliZSwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCAuYnV0dG9uLS10ZXh0LW9ubHkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cblxuLmNhbGxvdXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbiAgcGFkZGluZzogMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMCwgMTAsIDEwLCAwLjI1KTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5jYWxsb3V0ID4gOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwOyB9XG4gIC5jYWxsb3V0ID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmNhbGxvdXQucHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZDlkOTtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAuY2FsbG91dC5zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5jYWxsb3V0LnN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlMWZhZWE7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmNhbGxvdXQud2FybmluZyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjNkOTtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAuY2FsbG91dC5hbGVydCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZTRlMTtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAuY2FsbG91dC5zbWFsbCB7XG4gICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTsgfVxuICAuY2FsbG91dC5sYXJnZSB7XG4gICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgcGFkZGluZy1yaWdodDogM3JlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDNyZW07IH1cblxuLmNhcmQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4LWdyb3c6IDE7XG4gIG1hcmdpbi1ib3R0b206IDIuNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2Y1ZjVmNTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmNhcmQgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uY2FyZC1kaXZpZGVyIHtcbiAgZmxleDogMCAxIGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJhY2tncm91bmQ6ICNmNWY1ZjU7IH1cbiAgLmNhcmQtZGl2aWRlciA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5jYXJkLXNlY3Rpb24ge1xuICBmbGV4OiAxIDAgYXV0bztcbiAgcGFkZGluZzogMXJlbTsgfVxuICAuY2FyZC1zZWN0aW9uID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmNhcmQtaW1hZ2Uge1xuICBtaW4taGVpZ2h0OiAxcHg7IH1cblxuLmNsb3NlLWJ1dHRvbiwgLnNlYXJjaF9fY29udGFpbmVyIC5zZWFyY2gtY2xvc2UtYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb2xvcjogI0FBQUFBQTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuY2xvc2UtYnV0dG9uLCBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLnNlYXJjaF9fY29udGFpbmVyIC5zZWFyY2gtY2xvc2UtYnV0dG9uLCAuc2VhcmNoX19jb250YWluZXIgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5zZWFyY2gtY2xvc2UtYnV0dG9uIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5jbG9zZS1idXR0b246aG92ZXIsIC5zZWFyY2hfX2NvbnRhaW5lciAuc2VhcmNoLWNsb3NlLWJ1dHRvbjpob3ZlciwgLmNsb3NlLWJ1dHRvbjpmb2N1cywgLnNlYXJjaF9fY29udGFpbmVyIC5zZWFyY2gtY2xvc2UtYnV0dG9uOmZvY3VzIHtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAuY2xvc2UtYnV0dG9uLnNtYWxsLCAuc2VhcmNoX19jb250YWluZXIgLnNtYWxsLnNlYXJjaC1jbG9zZS1idXR0b24ge1xuICAgIHJpZ2h0OiAwLjY2cmVtO1xuICAgIHRvcDogMC4zM2VtO1xuICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgLmNsb3NlLWJ1dHRvbiwgLnNlYXJjaF9fY29udGFpbmVyIC5zZWFyY2gtY2xvc2UtYnV0dG9uLCAuY2xvc2UtYnV0dG9uLm1lZGl1bSwgLnNlYXJjaF9fY29udGFpbmVyIC5tZWRpdW0uc2VhcmNoLWNsb3NlLWJ1dHRvbiB7XG4gICAgcmlnaHQ6IDFyZW07XG4gICAgdG9wOiAwLjVyZW07XG4gICAgZm9udC1zaXplOiAyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7IH1cblxuLm1lbnUge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAubWVudSBsaSB7XG4gICAgb3V0bGluZTogMDsgfVxuICAubWVudSBhLCAubWVudSAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrLCAuc3ViLW1lbnUgLm1lbnUgLmZvbnQtLWJsYWNrLFxuICAubWVudSAuY29weXJpZ2h0IC5mb250LS1ibGFjaywgLmNvcHlyaWdodCAubWVudSAuZm9udC0tYmxhY2ssXG4gIC5tZW51IC5idXR0b24sXG4gIC5tZW51IC5idXR0b24tLW91dGxpbmUtb25seSxcbiAgLm1lbnUgI25ld3NsZXR0ZXItc2lnbnVwICNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsXG4gICNuZXdzbGV0dGVyLXNpZ251cCAubWVudSAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLFxuICAubWVudSAuYnV0dG9uLS10ZXh0LW9ubHkge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwLjdyZW0gMXJlbTsgfVxuICAubWVudSBpbnB1dCxcbiAgLm1lbnUgc2VsZWN0LCAubWVudSBhLCAubWVudSAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrLCAuc3ViLW1lbnUgLm1lbnUgLmZvbnQtLWJsYWNrLFxuICAubWVudSAuY29weXJpZ2h0IC5mb250LS1ibGFjaywgLmNvcHlyaWdodCAubWVudSAuZm9udC0tYmxhY2ssXG4gIC5tZW51IGJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAubWVudSBpbnB1dCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5tZW51LCAubWVudS5ob3Jpem9udGFsIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAubWVudS52ZXJ0aWNhbCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAubWVudS5leHBhbmRlZCBsaSB7XG4gICAgZmxleDogMSAxIDBweDsgfVxuICAubWVudS5zaW1wbGUge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAubWVudS5zaW1wbGUgbGkgKyBsaSB7XG4gICAgICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuICAgIC5tZW51LnNpbXBsZSBhLCAubWVudS5zaW1wbGUgLnN1Yi1tZW51IC5mb250LS1ibGFjaywgLnN1Yi1tZW51IC5tZW51LnNpbXBsZSAuZm9udC0tYmxhY2ssXG4gICAgLm1lbnUuc2ltcGxlIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrLCAuY29weXJpZ2h0IC5tZW51LnNpbXBsZSAuZm9udC0tYmxhY2sge1xuICAgICAgcGFkZGluZzogMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5tZW51Lm1lZGl1bS1ob3Jpem9udGFsIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgICAubWVudS5tZWRpdW0tdmVydGljYWwge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgLm1lbnUubWVkaXVtLWV4cGFuZGVkIGxpIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IH1cbiAgICAubWVudS5tZWRpdW0tc2ltcGxlIGxpIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5tZW51LmxhcmdlLWhvcml6b250YWwge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAgIC5tZW51LmxhcmdlLXZlcnRpY2FsIHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgIC5tZW51LmxhcmdlLWV4cGFuZGVkIGxpIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IH1cbiAgICAubWVudS5sYXJnZS1zaW1wbGUgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgfSB9XG4gIC5tZW51Lm5lc3RlZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtOyB9XG4gIC5tZW51Lmljb25zIGEsIC5tZW51Lmljb25zIC5zdWItbWVudSAuZm9udC0tYmxhY2ssIC5zdWItbWVudSAubWVudS5pY29ucyAuZm9udC0tYmxhY2ssXG4gIC5tZW51Lmljb25zIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrLCAuY29weXJpZ2h0IC5tZW51Lmljb25zIC5mb250LS1ibGFjayB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAubWVudS5pY29uLXRvcCBhLCAubWVudS5pY29uLXRvcCAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrLCAuc3ViLW1lbnUgLm1lbnUuaWNvbi10b3AgLmZvbnQtLWJsYWNrLFxuICAubWVudS5pY29uLXRvcCAuY29weXJpZ2h0IC5mb250LS1ibGFjaywgLmNvcHlyaWdodCAubWVudS5pY29uLXRvcCAuZm9udC0tYmxhY2ssIC5tZW51Lmljb24tcmlnaHQgYSwgLm1lbnUuaWNvbi1yaWdodCAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrLCAuc3ViLW1lbnUgLm1lbnUuaWNvbi1yaWdodCAuZm9udC0tYmxhY2ssXG4gIC5tZW51Lmljb24tcmlnaHQgLmNvcHlyaWdodCAuZm9udC0tYmxhY2ssIC5jb3B5cmlnaHQgLm1lbnUuaWNvbi1yaWdodCAuZm9udC0tYmxhY2ssIC5tZW51Lmljb24tYm90dG9tIGEsIC5tZW51Lmljb24tYm90dG9tIC5zdWItbWVudSAuZm9udC0tYmxhY2ssIC5zdWItbWVudSAubWVudS5pY29uLWJvdHRvbSAuZm9udC0tYmxhY2ssXG4gIC5tZW51Lmljb24tYm90dG9tIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrLCAuY29weXJpZ2h0IC5tZW51Lmljb24tYm90dG9tIC5mb250LS1ibGFjaywgLm1lbnUuaWNvbi1sZWZ0IGEsIC5tZW51Lmljb24tbGVmdCAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrLCAuc3ViLW1lbnUgLm1lbnUuaWNvbi1sZWZ0IC5mb250LS1ibGFjayxcbiAgLm1lbnUuaWNvbi1sZWZ0IC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrLCAuY29weXJpZ2h0IC5tZW51Lmljb24tbGVmdCAuZm9udC0tYmxhY2sge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgLm1lbnUuaWNvbi1sZWZ0IGxpIGEsIC5tZW51Lmljb24tbGVmdCBsaSAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrLCAuc3ViLW1lbnUgLm1lbnUuaWNvbi1sZWZ0IGxpIC5mb250LS1ibGFjayxcbiAgLm1lbnUuaWNvbi1sZWZ0IGxpIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrLCAuY29weXJpZ2h0IC5tZW51Lmljb24tbGVmdCBsaSAuZm9udC0tYmxhY2sge1xuICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDsgfVxuICAgIC5tZW51Lmljb24tbGVmdCBsaSBhIGltZywgLm1lbnUuaWNvbi1sZWZ0IGxpIC5zdWItbWVudSAuZm9udC0tYmxhY2sgaW1nLCAuc3ViLW1lbnUgLm1lbnUuaWNvbi1sZWZ0IGxpIC5mb250LS1ibGFjayBpbWcsIC5tZW51Lmljb24tbGVmdCBsaSAuY29weXJpZ2h0IC5mb250LS1ibGFjayBpbWcsIC5jb3B5cmlnaHQgLm1lbnUuaWNvbi1sZWZ0IGxpIC5mb250LS1ibGFjayBpbWcsXG4gICAgLm1lbnUuaWNvbi1sZWZ0IGxpIGEgaSxcbiAgICAubWVudS5pY29uLWxlZnQgbGkgLnN1Yi1tZW51IC5mb250LS1ibGFjayBpLFxuICAgIC5zdWItbWVudSAubWVudS5pY29uLWxlZnQgbGkgLmZvbnQtLWJsYWNrIGksXG4gICAgLm1lbnUuaWNvbi1sZWZ0IGxpIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrIGksXG4gICAgLmNvcHlyaWdodCAubWVudS5pY29uLWxlZnQgbGkgLmZvbnQtLWJsYWNrIGksXG4gICAgLm1lbnUuaWNvbi1sZWZ0IGxpIGEgc3ZnLFxuICAgIC5tZW51Lmljb24tbGVmdCBsaSAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrIHN2ZyxcbiAgICAuc3ViLW1lbnUgLm1lbnUuaWNvbi1sZWZ0IGxpIC5mb250LS1ibGFjayBzdmcsXG4gICAgLm1lbnUuaWNvbi1sZWZ0IGxpIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrIHN2ZyxcbiAgICAuY29weXJpZ2h0IC5tZW51Lmljb24tbGVmdCBsaSAuZm9udC0tYmxhY2sgc3ZnIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTsgfVxuICAubWVudS5pY29uLXJpZ2h0IGxpIGEsIC5tZW51Lmljb24tcmlnaHQgbGkgLnN1Yi1tZW51IC5mb250LS1ibGFjaywgLnN1Yi1tZW51IC5tZW51Lmljb24tcmlnaHQgbGkgLmZvbnQtLWJsYWNrLFxuICAubWVudS5pY29uLXJpZ2h0IGxpIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrLCAuY29weXJpZ2h0IC5tZW51Lmljb24tcmlnaHQgbGkgLmZvbnQtLWJsYWNrIHtcbiAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7IH1cbiAgICAubWVudS5pY29uLXJpZ2h0IGxpIGEgaW1nLCAubWVudS5pY29uLXJpZ2h0IGxpIC5zdWItbWVudSAuZm9udC0tYmxhY2sgaW1nLCAuc3ViLW1lbnUgLm1lbnUuaWNvbi1yaWdodCBsaSAuZm9udC0tYmxhY2sgaW1nLCAubWVudS5pY29uLXJpZ2h0IGxpIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrIGltZywgLmNvcHlyaWdodCAubWVudS5pY29uLXJpZ2h0IGxpIC5mb250LS1ibGFjayBpbWcsXG4gICAgLm1lbnUuaWNvbi1yaWdodCBsaSBhIGksXG4gICAgLm1lbnUuaWNvbi1yaWdodCBsaSAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrIGksXG4gICAgLnN1Yi1tZW51IC5tZW51Lmljb24tcmlnaHQgbGkgLmZvbnQtLWJsYWNrIGksXG4gICAgLm1lbnUuaWNvbi1yaWdodCBsaSAuY29weXJpZ2h0IC5mb250LS1ibGFjayBpLFxuICAgIC5jb3B5cmlnaHQgLm1lbnUuaWNvbi1yaWdodCBsaSAuZm9udC0tYmxhY2sgaSxcbiAgICAubWVudS5pY29uLXJpZ2h0IGxpIGEgc3ZnLFxuICAgIC5tZW51Lmljb24tcmlnaHQgbGkgLnN1Yi1tZW51IC5mb250LS1ibGFjayBzdmcsXG4gICAgLnN1Yi1tZW51IC5tZW51Lmljb24tcmlnaHQgbGkgLmZvbnQtLWJsYWNrIHN2ZyxcbiAgICAubWVudS5pY29uLXJpZ2h0IGxpIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrIHN2ZyxcbiAgICAuY29weXJpZ2h0IC5tZW51Lmljb24tcmlnaHQgbGkgLmZvbnQtLWJsYWNrIHN2ZyB7XG4gICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTsgfVxuICAubWVudS5pY29uLXRvcCBsaSBhLCAubWVudS5pY29uLXRvcCBsaSAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrLCAuc3ViLW1lbnUgLm1lbnUuaWNvbi10b3AgbGkgLmZvbnQtLWJsYWNrLFxuICAubWVudS5pY29uLXRvcCBsaSAuY29weXJpZ2h0IC5mb250LS1ibGFjaywgLmNvcHlyaWdodCAubWVudS5pY29uLXRvcCBsaSAuZm9udC0tYmxhY2sge1xuICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDsgfVxuICAgIC5tZW51Lmljb24tdG9wIGxpIGEgaW1nLCAubWVudS5pY29uLXRvcCBsaSAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrIGltZywgLnN1Yi1tZW51IC5tZW51Lmljb24tdG9wIGxpIC5mb250LS1ibGFjayBpbWcsIC5tZW51Lmljb24tdG9wIGxpIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrIGltZywgLmNvcHlyaWdodCAubWVudS5pY29uLXRvcCBsaSAuZm9udC0tYmxhY2sgaW1nLFxuICAgIC5tZW51Lmljb24tdG9wIGxpIGEgaSxcbiAgICAubWVudS5pY29uLXRvcCBsaSAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrIGksXG4gICAgLnN1Yi1tZW51IC5tZW51Lmljb24tdG9wIGxpIC5mb250LS1ibGFjayBpLFxuICAgIC5tZW51Lmljb24tdG9wIGxpIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrIGksXG4gICAgLmNvcHlyaWdodCAubWVudS5pY29uLXRvcCBsaSAuZm9udC0tYmxhY2sgaSxcbiAgICAubWVudS5pY29uLXRvcCBsaSBhIHN2ZyxcbiAgICAubWVudS5pY29uLXRvcCBsaSAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrIHN2ZyxcbiAgICAuc3ViLW1lbnUgLm1lbnUuaWNvbi10b3AgbGkgLmZvbnQtLWJsYWNrIHN2ZyxcbiAgICAubWVudS5pY29uLXRvcCBsaSAuY29weXJpZ2h0IC5mb250LS1ibGFjayBzdmcsXG4gICAgLmNvcHlyaWdodCAubWVudS5pY29uLXRvcCBsaSAuZm9udC0tYmxhY2sgc3ZnIHtcbiAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5tZW51Lmljb24tYm90dG9tIGxpIGEsIC5tZW51Lmljb24tYm90dG9tIGxpIC5zdWItbWVudSAuZm9udC0tYmxhY2ssIC5zdWItbWVudSAubWVudS5pY29uLWJvdHRvbSBsaSAuZm9udC0tYmxhY2ssXG4gIC5tZW51Lmljb24tYm90dG9tIGxpIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrLCAuY29weXJpZ2h0IC5tZW51Lmljb24tYm90dG9tIGxpIC5mb250LS1ibGFjayB7XG4gICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwOyB9XG4gICAgLm1lbnUuaWNvbi1ib3R0b20gbGkgYSBpbWcsIC5tZW51Lmljb24tYm90dG9tIGxpIC5zdWItbWVudSAuZm9udC0tYmxhY2sgaW1nLCAuc3ViLW1lbnUgLm1lbnUuaWNvbi1ib3R0b20gbGkgLmZvbnQtLWJsYWNrIGltZywgLm1lbnUuaWNvbi1ib3R0b20gbGkgLmNvcHlyaWdodCAuZm9udC0tYmxhY2sgaW1nLCAuY29weXJpZ2h0IC5tZW51Lmljb24tYm90dG9tIGxpIC5mb250LS1ibGFjayBpbWcsXG4gICAgLm1lbnUuaWNvbi1ib3R0b20gbGkgYSBpLFxuICAgIC5tZW51Lmljb24tYm90dG9tIGxpIC5zdWItbWVudSAuZm9udC0tYmxhY2sgaSxcbiAgICAuc3ViLW1lbnUgLm1lbnUuaWNvbi1ib3R0b20gbGkgLmZvbnQtLWJsYWNrIGksXG4gICAgLm1lbnUuaWNvbi1ib3R0b20gbGkgLmNvcHlyaWdodCAuZm9udC0tYmxhY2sgaSxcbiAgICAuY29weXJpZ2h0IC5tZW51Lmljb24tYm90dG9tIGxpIC5mb250LS1ibGFjayBpLFxuICAgIC5tZW51Lmljb24tYm90dG9tIGxpIGEgc3ZnLFxuICAgIC5tZW51Lmljb24tYm90dG9tIGxpIC5zdWItbWVudSAuZm9udC0tYmxhY2sgc3ZnLFxuICAgIC5zdWItbWVudSAubWVudS5pY29uLWJvdHRvbSBsaSAuZm9udC0tYmxhY2sgc3ZnLFxuICAgIC5tZW51Lmljb24tYm90dG9tIGxpIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrIHN2ZyxcbiAgICAuY29weXJpZ2h0IC5tZW51Lmljb24tYm90dG9tIGxpIC5mb250LS1ibGFjayBzdmcge1xuICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLm1lbnUgLmlzLWFjdGl2ZSA+IGEsIC5tZW51IC5zdWItbWVudSAuaXMtYWN0aXZlID4gLmZvbnQtLWJsYWNrLCAuc3ViLW1lbnUgLm1lbnUgLmlzLWFjdGl2ZSA+IC5mb250LS1ibGFjayxcbiAgLm1lbnUgLmNvcHlyaWdodCAuaXMtYWN0aXZlID4gLmZvbnQtLWJsYWNrLCAuY29weXJpZ2h0IC5tZW51IC5pcy1hY3RpdmUgPiAuZm9udC0tYmxhY2sge1xuICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLm1lbnUgLmFjdGl2ZSA+IGEsIC5tZW51IC5zdWItbWVudSAuYWN0aXZlID4gLmZvbnQtLWJsYWNrLCAuc3ViLW1lbnUgLm1lbnUgLmFjdGl2ZSA+IC5mb250LS1ibGFjayxcbiAgLm1lbnUgLmNvcHlyaWdodCAuYWN0aXZlID4gLmZvbnQtLWJsYWNrLCAuY29weXJpZ2h0IC5tZW51IC5hY3RpdmUgPiAuZm9udC0tYmxhY2sge1xuICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLm1lbnUuYWxpZ24tbGVmdCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gIC5tZW51LmFsaWduLXJpZ2h0IGxpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cbiAgICAubWVudS5hbGlnbi1yaWdodCBsaSAuc3VibWVudSBsaSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgLm1lbnUuYWxpZ24tcmlnaHQudmVydGljYWwgbGkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgLm1lbnUuYWxpZ24tcmlnaHQudmVydGljYWwgbGkgLnN1Ym1lbnUgbGkge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLm1lbnUuYWxpZ24tcmlnaHQgLm5lc3RlZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5tZW51LmFsaWduLWNlbnRlciBsaSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgIC5tZW51LmFsaWduLWNlbnRlciBsaSAuc3VibWVudSBsaSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgLm1lbnUgLm1lbnUtdGV4dCB7XG4gICAgcGFkZGluZzogMC43cmVtIDFyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6IGluaGVyaXQ7IH1cblxuLm1lbnUtY2VudGVyZWQgPiAubWVudSB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC5tZW51LWNlbnRlcmVkID4gLm1lbnUgbGkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAubWVudS1jZW50ZXJlZCA+IC5tZW51IGxpIC5zdWJtZW51IGxpIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuXG4ubm8tanMgW2RhdGEtcmVzcG9uc2l2ZS1tZW51XSB1bCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLm1lbnUtaWNvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLm1lbnUtaWNvbjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICAgIGJveC1zaGFkb3c6IDAgN3B4IDAgI2ZlZmVmZSwgMCAxNHB4IDAgI2ZlZmVmZTtcbiAgICBjb250ZW50OiAnJzsgfVxuICAubWVudS1pY29uOmhvdmVyOjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogI0RFREVERTtcbiAgICBib3gtc2hhZG93OiAwIDdweCAwICNERURFREUsIDAgMTRweCAwICNERURFREU7IH1cblxuLm1lbnUtaWNvbi5kYXJrIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICAubWVudS1pY29uLmRhcms6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYmFja2dyb3VuZDogIzBhMGEwYTtcbiAgICBib3gtc2hhZG93OiAwIDdweCAwICMwYTBhMGEsIDAgMTRweCAwICMwYTBhMGE7XG4gICAgY29udGVudDogJyc7IH1cbiAgLm1lbnUtaWNvbi5kYXJrOmhvdmVyOjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogI0FBQUFBQTtcbiAgICBib3gtc2hhZG93OiAwIDdweCAwICNBQUFBQUEsIDAgMTRweCAwICNBQUFBQUE7IH1cblxuLmlzLWRyaWxsZG93biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuaXMtZHJpbGxkb3duIGxpIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuaXMtZHJpbGxkb3duLmFuaW1hdGUtaGVpZ2h0IHtcbiAgICB0cmFuc2l0aW9uOiBoZWlnaHQgMC41czsgfVxuXG4uZHJpbGxkb3duIGEsIC5kcmlsbGRvd24gLnN1Yi1tZW51IC5mb250LS1ibGFjaywgLnN1Yi1tZW51IC5kcmlsbGRvd24gLmZvbnQtLWJsYWNrLFxuLmRyaWxsZG93biAuY29weXJpZ2h0IC5mb250LS1ibGFjaywgLmNvcHlyaWdodCAuZHJpbGxkb3duIC5mb250LS1ibGFjayB7XG4gIHBhZGRpbmc6IDAuN3JlbSAxcmVtO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlOyB9XG5cbi5kcmlsbGRvd24gLmlzLWRyaWxsZG93bi1zdWJtZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDEwMCU7XG4gIHotaW5kZXg6IC0xO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhcjsgfVxuICAuZHJpbGxkb3duIC5pcy1kcmlsbGRvd24tc3VibWVudS5pcy1hY3RpdmUge1xuICAgIHotaW5kZXg6IDE7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsgfVxuICAuZHJpbGxkb3duIC5pcy1kcmlsbGRvd24tc3VibWVudS5pcy1jbG9zaW5nIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IH1cbiAgLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUgYSwgLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUgLnN1Yi1tZW51IC5mb250LS1ibGFjaywgLnN1Yi1tZW51IC5kcmlsbGRvd24gLmlzLWRyaWxsZG93bi1zdWJtZW51IC5mb250LS1ibGFjayxcbiAgLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUgLmNvcHlyaWdodCAuZm9udC0tYmxhY2ssIC5jb3B5cmlnaHQgLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUgLmZvbnQtLWJsYWNrIHtcbiAgICBwYWRkaW5nOiAwLjdyZW0gMXJlbTsgfVxuXG4uZHJpbGxkb3duIC5uZXN0ZWQuaXMtZHJpbGxkb3duLXN1Ym1lbnUge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi5kcmlsbGRvd24gLmRyaWxsZG93bi1zdWJtZW51LWNvdmVyLXByZXZpb3VzIHtcbiAgbWluLWhlaWdodDogMTAwJTsgfVxuXG4uZHJpbGxkb3duIC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhLCAuZHJpbGxkb3duIC5zdWItbWVudSAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gLmZvbnQtLWJsYWNrLCAuc3ViLW1lbnUgLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gLmZvbnQtLWJsYWNrLFxuLmRyaWxsZG93biAuY29weXJpZ2h0IC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiAuZm9udC0tYmxhY2ssIC5jb3B5cmlnaHQgLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gLmZvbnQtLWJsYWNrIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5kcmlsbGRvd24gLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyLCAuZHJpbGxkb3duIC5zdWItbWVudSAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gLmZvbnQtLWJsYWNrOjphZnRlciwgLnN1Yi1tZW51IC5kcmlsbGRvd24gLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IC5mb250LS1ibGFjazo6YWZ0ZXIsXG4gIC5kcmlsbGRvd24gLmNvcHlyaWdodCAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gLmZvbnQtLWJsYWNrOjphZnRlciwgLmNvcHlyaWdodCAuZHJpbGxkb3duIC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiAuZm9udC0tYmxhY2s6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTZweDtcbiAgICByaWdodDogMXJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMwMDAwMDA7IH1cblxuLmRyaWxsZG93bi5hbGlnbi1sZWZ0IC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciwgLmRyaWxsZG93bi5hbGlnbi1sZWZ0IC5zdWItbWVudSAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gLmZvbnQtLWJsYWNrOjphZnRlciwgLnN1Yi1tZW51IC5kcmlsbGRvd24uYWxpZ24tbGVmdCAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gLmZvbnQtLWJsYWNrOjphZnRlcixcbi5kcmlsbGRvd24uYWxpZ24tbGVmdCAuY29weXJpZ2h0IC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiAuZm9udC0tYmxhY2s6OmFmdGVyLCAuY29weXJpZ2h0IC5kcmlsbGRvd24uYWxpZ24tbGVmdCAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gLmZvbnQtLWJsYWNrOjphZnRlciB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAxcmVtO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA2cHg7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjODA4MDgwOyB9XG5cbi5kcmlsbGRvd24uYWxpZ24tcmlnaHQgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyLCAuZHJpbGxkb3duLmFsaWduLXJpZ2h0IC5zdWItbWVudSAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gLmZvbnQtLWJsYWNrOjphZnRlciwgLnN1Yi1tZW51IC5kcmlsbGRvd24uYWxpZ24tcmlnaHQgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IC5mb250LS1ibGFjazo6YWZ0ZXIsXG4uZHJpbGxkb3duLmFsaWduLXJpZ2h0IC5jb3B5cmlnaHQgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IC5mb250LS1ibGFjazo6YWZ0ZXIsIC5jb3B5cmlnaHQgLmRyaWxsZG93bi5hbGlnbi1yaWdodCAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gLmZvbnQtLWJsYWNrOjphZnRlciB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAxcmVtO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA2cHg7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjODA4MDgwIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG5cbi5kcmlsbGRvd24gLmpzLWRyaWxsZG93bi1iYWNrID4gYTo6YmVmb3JlLCAuZHJpbGxkb3duIC5zdWItbWVudSAuanMtZHJpbGxkb3duLWJhY2sgPiAuZm9udC0tYmxhY2s6OmJlZm9yZSwgLnN1Yi1tZW51IC5kcmlsbGRvd24gLmpzLWRyaWxsZG93bi1iYWNrID4gLmZvbnQtLWJsYWNrOjpiZWZvcmUsXG4uZHJpbGxkb3duIC5jb3B5cmlnaHQgLmpzLWRyaWxsZG93bi1iYWNrID4gLmZvbnQtLWJsYWNrOjpiZWZvcmUsIC5jb3B5cmlnaHQgLmRyaWxsZG93biAuanMtZHJpbGxkb3duLWJhY2sgPiAuZm9udC0tYmxhY2s6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMwMDAwMDAgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7IH1cblxuLmRyb3Bkb3duLXBhbmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuICB3aWR0aDogMzAwcHg7XG4gIHBhZGRpbmc6IDFyZW07XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgZGlzcGxheTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0RFREVERTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgZm9udC1zaXplOiAxcmVtOyB9XG4gIC5kcm9wZG93bi1wYW5lLmlzLW9wZW5pbmcge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5kcm9wZG93bi1wYW5lLmlzLW9wZW4ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLmRyb3Bkb3duLXBhbmUudGlueSB7XG4gIHdpZHRoOiAxMDBweDsgfVxuXG4uZHJvcGRvd24tcGFuZS5zbWFsbCB7XG4gIHdpZHRoOiAyMDBweDsgfVxuXG4uZHJvcGRvd24tcGFuZS5sYXJnZSB7XG4gIHdpZHRoOiA0MDBweDsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHRvcDogMTAwJTtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IGF1dG87IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgdG9wOiAxMDAlO1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMDsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSwgLnN1Yi1tZW51IC5kcm9wZG93bi5tZW51ID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiAuZm9udC0tYmxhY2ssXG4uY29weXJpZ2h0IC5kcm9wZG93bi5tZW51ID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiAuZm9udC0tYmxhY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIsIC5zdWItbWVudSAuZHJvcGRvd24ubWVudSA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gLmZvbnQtLWJsYWNrOjphZnRlcixcbi5jb3B5cmlnaHQgLmRyb3Bkb3duLm1lbnUgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IC5mb250LS1ibGFjazo6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA2cHg7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiAjODA4MDgwIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICByaWdodDogNXB4O1xuICBsZWZ0OiBhdXRvO1xuICBtYXJnaW4tdG9wOiAtM3B4OyB9XG5cbi5kcm9wZG93bi5tZW51IGEsIC5kcm9wZG93bi5tZW51IC5zdWItbWVudSAuZm9udC0tYmxhY2ssIC5zdWItbWVudSAuZHJvcGRvd24ubWVudSAuZm9udC0tYmxhY2ssXG4uZHJvcGRvd24ubWVudSAuY29weXJpZ2h0IC5mb250LS1ibGFjaywgLmNvcHlyaWdodCAuZHJvcGRvd24ubWVudSAuZm9udC0tYmxhY2sge1xuICBwYWRkaW5nOiAwLjdyZW0gMXJlbTsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLmRyb3Bkb3duLm1lbnUgYSwgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5kcm9wZG93bi5tZW51IC5zdWItbWVudSAuZm9udC0tYmxhY2ssIC5zdWItbWVudSBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLmRyb3Bkb3duLm1lbnUgLmZvbnQtLWJsYWNrLFxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLmRyb3Bkb3duLm1lbnUgLmNvcHlyaWdodCAuZm9udC0tYmxhY2ssIC5jb3B5cmlnaHQgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5kcm9wZG93bi5tZW51IC5mb250LS1ibGFjayB7XG4gICAgb3V0bGluZTogMDsgfVxuXG4uZHJvcGRvd24ubWVudSAuaXMtYWN0aXZlID4gYSwgLmRyb3Bkb3duLm1lbnUgLnN1Yi1tZW51IC5pcy1hY3RpdmUgPiAuZm9udC0tYmxhY2ssIC5zdWItbWVudSAuZHJvcGRvd24ubWVudSAuaXMtYWN0aXZlID4gLmZvbnQtLWJsYWNrLFxuLmRyb3Bkb3duLm1lbnUgLmNvcHlyaWdodCAuaXMtYWN0aXZlID4gLmZvbnQtLWJsYWNrLCAuY29weXJpZ2h0IC5kcm9wZG93bi5tZW51IC5pcy1hY3RpdmUgPiAuZm9udC0tYmxhY2sge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICNmNWY1ZjU7IH1cblxuLm5vLWpzIC5kcm9wZG93bi5tZW51IHVsIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uZHJvcGRvd24ubWVudSAubmVzdGVkLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICB0b3A6IDA7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICByaWdodDogMTAwJTtcbiAgbGVmdDogYXV0bztcbiAgdG9wOiAwOyB9XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAxMDAlOyB9XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkgPiBhOjphZnRlciwgLnN1Yi1tZW51IC5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkgPiAuZm9udC0tYmxhY2s6OmFmdGVyLFxuLmNvcHlyaWdodCAuZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpID4gLmZvbnQtLWJsYWNrOjphZnRlciB7XG4gIHJpZ2h0OiAxNHB4OyB9XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IGE6OmFmdGVyLCAuc3ViLW1lbnUgLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmZvbnQtLWJsYWNrOjphZnRlcixcbi5jb3B5cmlnaHQgLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmZvbnQtLWJsYWNrOjphZnRlciB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiA1cHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICM4MDgwODAgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IGE6OmFmdGVyLCAuc3ViLW1lbnUgLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IC5mb250LS1ibGFjazo6YWZ0ZXIsXG4uY29weXJpZ2h0IC5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiAuZm9udC0tYmxhY2s6OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgNnB4O1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzgwODA4MDsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSwgLnN1Yi1tZW51IC5kcm9wZG93bi5tZW51Lm1lZGl1bS1ob3Jpem9udGFsID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiAuZm9udC0tYmxhY2ssXG4gIC5jb3B5cmlnaHQgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IC5mb250LS1ibGFjayB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIsIC5zdWItbWVudSAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gLmZvbnQtLWJsYWNrOjphZnRlcixcbiAgLmNvcHlyaWdodCAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gLmZvbnQtLWJsYWNrOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjODA4MDgwIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgbGVmdDogYXV0bztcbiAgICBtYXJnaW4tdG9wOiAtM3B4OyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogMTAwJTtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHRvcDogMDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxMDAlOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpID4gYTo6YWZ0ZXIsIC5zdWItbWVudSAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaSA+IC5mb250LS1ibGFjazo6YWZ0ZXIsXG4gIC5jb3B5cmlnaHQgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkgPiAuZm9udC0tYmxhY2s6OmFmdGVyIHtcbiAgICByaWdodDogMTRweDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIsIC5zdWItbWVudSAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmZvbnQtLWJsYWNrOjphZnRlcixcbiAgLmNvcHlyaWdodCAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmZvbnQtLWJsYWNrOjphZnRlciB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogNXB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzgwODA4MCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IGE6OmFmdGVyLCAuc3ViLW1lbnUgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiAuZm9udC0tYmxhY2s6OmFmdGVyLFxuICAuY29weXJpZ2h0IC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmZvbnQtLWJsYWNrOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjODA4MDgwOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAwOyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEsIC5zdWItbWVudSAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiAuZm9udC0tYmxhY2ssXG4gIC5jb3B5cmlnaHQgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gLmZvbnQtLWJsYWNrIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtOyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyLCAuc3ViLW1lbnUgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gLmZvbnQtLWJsYWNrOjphZnRlcixcbiAgLmNvcHlyaWdodCAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiAuZm9udC0tYmxhY2s6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICM4MDgwODAgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgcmlnaHQ6IDVweDtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IC0zcHg7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaSAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAwOyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogMTAwJTtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHRvcDogMDsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaSA+IGE6OmFmdGVyLCAuc3ViLW1lbnUgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaSA+IC5mb250LS1ibGFjazo6YWZ0ZXIsXG4gIC5jb3B5cmlnaHQgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaSA+IC5mb250LS1ibGFjazo6YWZ0ZXIge1xuICAgIHJpZ2h0OiAxNHB4OyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IGE6OmFmdGVyLCAuc3ViLW1lbnUgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmZvbnQtLWJsYWNrOjphZnRlcixcbiAgLmNvcHlyaWdodCAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiAuZm9udC0tYmxhY2s6OmFmdGVyIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiA1cHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjODA4MDgwIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiBhOjphZnRlciwgLnN1Yi1tZW51IC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiAuZm9udC0tYmxhY2s6OmFmdGVyLFxuICAuY29weXJpZ2h0IC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiAuZm9udC0tYmxhY2s6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM4MDgwODA7IH0gfVxuXG4uZHJvcGRvd24ubWVudS5hbGlnbi1yaWdodCAuaXMtZHJvcGRvd24tc3VibWVudS5maXJzdC1zdWIge1xuICB0b3A6IDEwMCU7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvOyB9XG5cbi5pcy1kcm9wZG93bi1tZW51LnZlcnRpY2FsIHtcbiAgd2lkdGg6IDEwMHB4OyB9XG4gIC5pcy1kcm9wZG93bi1tZW51LnZlcnRpY2FsLmFsaWduLXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCBhOjphZnRlciwgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IC5zdWItbWVudSAuZm9udC0tYmxhY2s6OmFmdGVyLCAuc3ViLW1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IC5mb250LS1ibGFjazo6YWZ0ZXIsXG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCAuY29weXJpZ2h0IC5mb250LS1ibGFjazo6YWZ0ZXIsIC5jb3B5cmlnaHQgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IC5mb250LS1ibGFjazo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogNXB4O1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogLTZweDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtaW5uZXIgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMTAwJTsgfVxuXG4uaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAxMDAlO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBub25lO1xuICBtaW4td2lkdGg6IDIwMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjREVERURFO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlOyB9XG4gIC5kcm9wZG93biAuaXMtZHJvcGRvd24tc3VibWVudSBhLCAuZHJvcGRvd24gLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLnN1Yi1tZW51IC5mb250LS1ibGFjaywgLnN1Yi1tZW51IC5kcm9wZG93biAuaXMtZHJvcGRvd24tc3VibWVudSAuZm9udC0tYmxhY2ssXG4gIC5kcm9wZG93biAuaXMtZHJvcGRvd24tc3VibWVudSAuY29weXJpZ2h0IC5mb250LS1ibGFjaywgLmNvcHlyaWdodCAuZHJvcGRvd24gLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmZvbnQtLWJsYWNrIHtcbiAgICBwYWRkaW5nOiAwLjdyZW0gMXJlbTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciwgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLnN1Yi1tZW51IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IC5mb250LS1ibGFjazo6YWZ0ZXIsIC5zdWItbWVudSAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiAuZm9udC0tYmxhY2s6OmFmdGVyLFxuICAuaXMtZHJvcGRvd24tc3VibWVudSAuY29weXJpZ2h0IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IC5mb250LS1ibGFjazo6YWZ0ZXIsIC5jb3B5cmlnaHQgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gLmZvbnQtLWJsYWNrOjphZnRlciB7XG4gICAgcmlnaHQ6IDE0cHg7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLWxlZnQgPiBhOjphZnRlciwgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLnN1Yi1tZW51IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1sZWZ0ID4gLmZvbnQtLWJsYWNrOjphZnRlciwgLnN1Yi1tZW51IC5pcy1kcm9wZG93bi1zdWJtZW51IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1sZWZ0ID4gLmZvbnQtLWJsYWNrOjphZnRlcixcbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmNvcHlyaWdodCAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtbGVmdCA+IC5mb250LS1ibGFjazo6YWZ0ZXIsIC5jb3B5cmlnaHQgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLWxlZnQgPiAuZm9udC0tYmxhY2s6OmFmdGVyIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiA1cHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjODA4MDgwIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1yaWdodCA+IGE6OmFmdGVyLCAuaXMtZHJvcGRvd24tc3VibWVudSAuc3ViLW1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLXJpZ2h0ID4gLmZvbnQtLWJsYWNrOjphZnRlciwgLnN1Yi1tZW51IC5pcy1kcm9wZG93bi1zdWJtZW51IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1yaWdodCA+IC5mb250LS1ibGFjazo6YWZ0ZXIsXG4gIC5pcy1kcm9wZG93bi1zdWJtZW51IC5jb3B5cmlnaHQgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLXJpZ2h0ID4gLmZvbnQtLWJsYWNrOjphZnRlciwgLmNvcHlyaWdodCAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtcmlnaHQgPiAuZm9udC0tYmxhY2s6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM4MDgwODA7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIG1hcmdpbi10b3A6IC0xcHg7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgPiBsaSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUuanMtZHJvcGRvd24tYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4ucmVzcG9uc2l2ZS1lbWJlZCxcbi5mbGV4LXZpZGVvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIHBhZGRpbmctYm90dG9tOiA3NSU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLnJlc3BvbnNpdmUtZW1iZWQgaWZyYW1lLFxuICAucmVzcG9uc2l2ZS1lbWJlZCBvYmplY3QsXG4gIC5yZXNwb25zaXZlLWVtYmVkIGVtYmVkLFxuICAucmVzcG9uc2l2ZS1lbWJlZCB2aWRlbyxcbiAgLmZsZXgtdmlkZW8gaWZyYW1lLFxuICAuZmxleC12aWRlbyBvYmplY3QsXG4gIC5mbGV4LXZpZGVvIGVtYmVkLFxuICAuZmxleC12aWRlbyB2aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAucmVzcG9uc2l2ZS1lbWJlZC53aWRlc2NyZWVuLFxuICAuZmxleC12aWRlby53aWRlc2NyZWVuIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlOyB9XG5cbi5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICBjb2xvcjogI2ZlZmVmZTsgfVxuICAubGFiZWwucHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZDogIzAwMDAwMDtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAubGFiZWwuc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5sYWJlbC5zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kOiAjM2FkYjc2O1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5sYWJlbC53YXJuaW5nIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZhZTAwO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5sYWJlbC5hbGVydCB7XG4gICAgYmFja2dyb3VuZDogI2NjNGIzNztcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuXG4ubWVkaWEtb2JqZWN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luLWJvdHRvbTogMi41cmVtO1xuICBmbGV4LXdyYXA6IG5vd3JhcDsgfVxuICAubWVkaWEtb2JqZWN0IGltZyB7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5tZWRpYS1vYmplY3Quc3RhY2stZm9yLXNtYWxsIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5tZWRpYS1vYmplY3Quc3RhY2stZm9yLXNtYWxsIC5tZWRpYS1vYmplY3Qtc2VjdGlvbiB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gICAgICAubWVkaWEtb2JqZWN0LnN0YWNrLWZvci1zbWFsbCAubWVkaWEtb2JqZWN0LXNlY3Rpb24gaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4ubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICBmbGV4OiAwIDEgYXV0bzsgfVxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb246Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07IH1cbiAgLm1lZGlhLW9iamVjdC1zZWN0aW9uOmxhc3QtY2hpbGQ6bm90KDpudGgtY2hpbGQoMikpIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW07IH1cbiAgLm1lZGlhLW9iamVjdC1zZWN0aW9uID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLm1lZGlhLW9iamVjdC1zZWN0aW9uLm1haW4tc2VjdGlvbiB7XG4gICAgZmxleDogMSAxIDBweDsgfVxuXG4uaXMtb2ZmLWNhbnZhcy1vcGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4uanMtb2ZmLWNhbnZhcy1vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDExO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgZWFzZSwgdmlzaWJpbGl0eSAwLjVzIGVhc2U7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU0LCAyNTQsIDI1NCwgMC4yNSk7XG4gIG9wYWNpdHk6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuanMtb2ZmLWNhbnZhcy1vdmVybGF5LmlzLXZpc2libGUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAuanMtb2ZmLWNhbnZhcy1vdmVybGF5LmlzLWNsb3NhYmxlIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLmpzLW9mZi1jYW52YXMtb3ZlcmxheS5pcy1vdmVybGF5LWFic29sdXRlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cbiAgLmpzLW9mZi1jYW52YXMtb3ZlcmxheS5pcy1vdmVybGF5LWZpeGVkIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7IH1cblxuLm9mZi1jYW52YXMtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4ub2ZmLWNhbnZhcyB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogMTI7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2U7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogI0ZGOUUzMTsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLm9mZi1jYW52YXMge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLm9mZi1jYW52YXMuaXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB6LWluZGV4OiAxMjsgfVxuICAub2ZmLWNhbnZhcy5pcy1jbG9zZWQge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAub2ZmLWNhbnZhcy5pcy10cmFuc2l0aW9uLW92ZXJsYXAge1xuICAgIHotaW5kZXg6IDEzOyB9XG4gICAgLm9mZi1jYW52YXMuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgxMCwgMTAsIDEwLCAwLjcpOyB9XG4gIC5vZmYtY2FudmFzLmlzLW9wZW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9XG5cbi5vZmYtY2FudmFzLWFic29sdXRlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMjtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgZWFzZTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiAjRkY5RTMxOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAub2ZmLWNhbnZhcy1hYnNvbHV0ZSB7XG4gICAgb3V0bGluZTogMDsgfVxuICAub2ZmLWNhbnZhcy1hYnNvbHV0ZS5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHotaW5kZXg6IDEyOyB9XG4gIC5vZmYtY2FudmFzLWFic29sdXRlLmlzLWNsb3NlZCB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIC5vZmYtY2FudmFzLWFic29sdXRlLmlzLXRyYW5zaXRpb24tb3ZlcmxhcCB7XG4gICAgei1pbmRleDogMTM7IH1cbiAgICAub2ZmLWNhbnZhcy1hYnNvbHV0ZS5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDEwLCAxMCwgMTAsIDAuNyk7IH1cbiAgLm9mZi1jYW52YXMtYWJzb2x1dGUuaXMtb3BlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IH1cblxuLnBvc2l0aW9uLWxlZnQge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7IH1cbiAgLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5wb3NpdGlvbi1sZWZ0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5wb3NpdGlvbi1sZWZ0LmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQuaXMtb3Blbi1sZWZ0Lmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgfVxuICAucG9zaXRpb24tbGVmdC5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IC0xM3B4IDAgMjBweCAtMTNweCByZ2JhKDEwLCAxMCwgMTAsIDAuMjUpOyB9XG5cbi5wb3NpdGlvbi1yaWdodCB7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLXJpZ2h0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLXJpZ2h0LmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQuaXMtb3Blbi1yaWdodC5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpOyB9XG4gIC5wb3NpdGlvbi1yaWdodC5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDEzcHggMCAyMHB4IC0xM3B4IHJnYmEoMTAsIDEwLCAxMCwgMC4yNSk7IH1cblxuLnBvc2l0aW9uLXRvcCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIGhlaWdodDogMjUwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjUwcHgpOyB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tdG9wIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI1MHB4KTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tdG9wLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQuaXMtb3Blbi10b3AuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDI1MHB4KTsgfVxuICAucG9zaXRpb24tdG9wLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMTNweCAyMHB4IC0xM3B4IHJnYmEoMTAsIDEwLCAxMCwgMC4yNSk7IH1cblxuLnBvc2l0aW9uLWJvdHRvbSB7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIGhlaWdodDogMjUwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNTBweCk7IH1cbiAgLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5wb3NpdGlvbi1ib3R0b20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNTBweCk7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLWJvdHRvbS5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50LmlzLW9wZW4tYm90dG9tLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjUwcHgpOyB9XG4gIC5wb3NpdGlvbi1ib3R0b20uaXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDEzcHggMjBweCAtMTNweCByZ2JhKDEwLCAxMCwgMTAsIDAuMjUpOyB9XG5cbi5vZmYtY2FudmFzLWNvbnRlbnQge1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2U7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMuaXMtb3BlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLW1lZGl1bSAuY2xvc2UtYnV0dG9uLCAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLW1lZGl1bSAuc2VhcmNoX19jb250YWluZXIgLnNlYXJjaC1jbG9zZS1idXR0b24sIC5zZWFyY2hfX2NvbnRhaW5lciAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLW1lZGl1bSAuc2VhcmNoLWNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtbGVmdCB7XG4gICAgICBtYXJnaW4tbGVmdDogMTAwJTsgfVxuICAgIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tbGVmdDogMTAwJTsgfVxuICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1tZWRpdW0gLmNsb3NlLWJ1dHRvbiwgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIC5zZWFyY2hfX2NvbnRhaW5lciAuc2VhcmNoLWNsb3NlLWJ1dHRvbiwgLnNlYXJjaF9fY29udGFpbmVyIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLW1lZGl1bSAuc2VhcmNoLWNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgICAgdHJhbnNmb3JtOiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudC5oYXMtcmV2ZWFsLXJpZ2h0IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMTAwJTsgfVxuICAgIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLW1lZGl1bSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMDAlOyB9XG4gIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItbWVkaXVtIC5jbG9zZS1idXR0b24sIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1tZWRpdW0gLnNlYXJjaF9fY29udGFpbmVyIC5zZWFyY2gtY2xvc2UtYnV0dG9uLCAuc2VhcmNoX19jb250YWluZXIgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLW1lZGl1bSAuc2VhcmNoLWNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC10b3Age1xuICAgICAgbWFyZ2luLXRvcDogMTAwJTsgfVxuICAgIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1tZWRpdW0gfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi10b3A6IDEwMCU7IH1cbiAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1tZWRpdW0gLmNsb3NlLWJ1dHRvbiwgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLW1lZGl1bSAuc2VhcmNoX19jb250YWluZXIgLnNlYXJjaC1jbG9zZS1idXR0b24sIC5zZWFyY2hfX2NvbnRhaW5lciAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbWVkaXVtIC5zZWFyY2gtY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgICAgdHJhbnNmb3JtOiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudC5oYXMtcmV2ZWFsLWJvdHRvbSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMDAlOyB9XG4gICAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLW1lZGl1bSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTAwJTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLWxhcmdlIC5jbG9zZS1idXR0b24sIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbGFyZ2UgLnNlYXJjaF9fY29udGFpbmVyIC5zZWFyY2gtY2xvc2UtYnV0dG9uLCAuc2VhcmNoX19jb250YWluZXIgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1sYXJnZSAuc2VhcmNoLWNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1sZWZ0IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMDAlOyB9XG4gICAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1sYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDEwMCU7IH1cbiAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1sYXJnZSAuY2xvc2UtYnV0dG9uLCAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1sYXJnZSAuc2VhcmNoX19jb250YWluZXIgLnNlYXJjaC1jbG9zZS1idXR0b24sIC5zZWFyY2hfX2NvbnRhaW5lciAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1sYXJnZSAuc2VhcmNoLWNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtcmlnaHQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMDAlOyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMTAwJTsgfVxuICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItbGFyZ2UgLmNsb3NlLWJ1dHRvbiwgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLWxhcmdlIC5zZWFyY2hfX2NvbnRhaW5lciAuc2VhcmNoLWNsb3NlLWJ1dHRvbiwgLnNlYXJjaF9fY29udGFpbmVyIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1sYXJnZSAuc2VhcmNoLWNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgICAgdHJhbnNmb3JtOiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudC5oYXMtcmV2ZWFsLXRvcCB7XG4gICAgICBtYXJnaW4tdG9wOiAxMDAlOyB9XG4gICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLWxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tdG9wOiAxMDAlOyB9XG4gIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1sYXJnZSAuY2xvc2UtYnV0dG9uLCAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbGFyZ2UgLnNlYXJjaF9fY29udGFpbmVyIC5zZWFyY2gtY2xvc2UtYnV0dG9uLCAuc2VhcmNoX19jb250YWluZXIgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLWxhcmdlIC5zZWFyY2gtY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtYm90dG9tIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwMCU7IH1cbiAgICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwMCU7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLW1lZGl1bSB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICAgIHdpZHRoOiBpbmhlcml0O1xuICAgIG92ZXJmbG93OiBpbmhlcml0O1xuICAgIHRyYW5zaXRpb246IGluaGVyaXQ7IH1cbiAgICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLW1lZGl1bS5wb3NpdGlvbi1sZWZ0LCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLW1lZGl1bS5wb3NpdGlvbi1yaWdodCwgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1tZWRpdW0ucG9zaXRpb24tdG9wLCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLW1lZGl1bS5wb3NpdGlvbi1ib3R0b20ge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtIC5jbG9zZS1idXR0b24sIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtIC5zZWFyY2hfX2NvbnRhaW5lciAuc2VhcmNoLWNsb3NlLWJ1dHRvbiwgLnNlYXJjaF9fY29udGFpbmVyIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtIC5zZWFyY2gtY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLWxhcmdlIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgb3ZlcmZsb3c6IGluaGVyaXQ7XG4gICAgdHJhbnNpdGlvbjogaW5oZXJpdDsgfVxuICAgIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbGFyZ2UucG9zaXRpb24tbGVmdCwgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1sYXJnZS5wb3NpdGlvbi1yaWdodCwgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1sYXJnZS5wb3NpdGlvbi10b3AsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbGFyZ2UucG9zaXRpb24tYm90dG9tIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLWxhcmdlIC5jbG9zZS1idXR0b24sIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbGFyZ2UgLnNlYXJjaF9fY29udGFpbmVyIC5zZWFyY2gtY2xvc2UtYnV0dG9uLCAuc2VhcmNoX19jb250YWluZXIgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1sYXJnZSAuc2VhcmNoLWNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLm9yYml0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5vcmJpdC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5vcmJpdC1zbGlkZSB7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5vcmJpdC1zbGlkZS5uby1tb3Rpb251aS5pcy1hY3RpdmUge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwOyB9XG5cbi5vcmJpdC1maWd1cmUge1xuICBtYXJnaW46IDA7IH1cblxuLm9yYml0LWltYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwOyB9XG5cbi5vcmJpdC1jYXB0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nOiAxcmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwLCAxMCwgMTAsIDAuNSk7XG4gIGNvbG9yOiAjZmVmZWZlOyB9XG5cbi5vcmJpdC1wcmV2aW91cywgLm9yYml0LW5leHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHotaW5kZXg6IDEwO1xuICBwYWRkaW5nOiAxcmVtO1xuICBjb2xvcjogI2ZlZmVmZTsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLm9yYml0LXByZXZpb3VzLCBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLm9yYml0LW5leHQge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLm9yYml0LXByZXZpb3VzOmhvdmVyLCAub3JiaXQtbmV4dDpob3ZlciwgLm9yYml0LXByZXZpb3VzOmFjdGl2ZSwgLm9yYml0LW5leHQ6YWN0aXZlLCAub3JiaXQtcHJldmlvdXM6Zm9jdXMsIC5vcmJpdC1uZXh0OmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwLCAxMCwgMTAsIDAuNSk7IH1cblxuLm9yYml0LXByZXZpb3VzIHtcbiAgbGVmdDogMDsgfVxuXG4ub3JiaXQtbmV4dCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwOyB9XG5cbi5vcmJpdC1idWxsZXRzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiAwLjhyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuOHJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAub3JiaXQtYnVsbGV0cyB7XG4gICAgb3V0bGluZTogMDsgfVxuICAub3JiaXQtYnVsbGV0cyBidXR0b24ge1xuICAgIHdpZHRoOiAxLjJyZW07XG4gICAgaGVpZ2h0OiAxLjJyZW07XG4gICAgbWFyZ2luOiAwLjFyZW07XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNERURFREU7IH1cbiAgICAub3JiaXQtYnVsbGV0cyBidXR0b246aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0FBQUFBQTsgfVxuICAgIC5vcmJpdC1idWxsZXRzIGJ1dHRvbi5pcy1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0FBQUFBQTsgfVxuXG4ucGFnaW5hdGlvbiB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAyLjVyZW07IH1cbiAgLnBhZ2luYXRpb246OmJlZm9yZSwgLnBhZ2luYXRpb246OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBvcmRlcjogMTsgfVxuICAucGFnaW5hdGlvbjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5wYWdpbmF0aW9uIGxpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuMDYyNXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5wYWdpbmF0aW9uIGxpOmxhc3QtY2hpbGQsIC5wYWdpbmF0aW9uIGxpOmZpcnN0LWNoaWxkIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAucGFnaW5hdGlvbiBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfSB9XG4gIC5wYWdpbmF0aW9uIGEsIC5wYWdpbmF0aW9uIC5zdWItbWVudSAuZm9udC0tYmxhY2ssIC5zdWItbWVudSAucGFnaW5hdGlvbiAuZm9udC0tYmxhY2ssXG4gIC5wYWdpbmF0aW9uIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrLCAuY29weXJpZ2h0IC5wYWdpbmF0aW9uIC5mb250LS1ibGFjayxcbiAgLnBhZ2luYXRpb24gYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwLjE4NzVyZW0gMC42MjVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAgIC5wYWdpbmF0aW9uIGE6aG92ZXIsIC5wYWdpbmF0aW9uIC5zdWItbWVudSAuZm9udC0tYmxhY2s6aG92ZXIsIC5zdWItbWVudSAucGFnaW5hdGlvbiAuZm9udC0tYmxhY2s6aG92ZXIsXG4gICAgLnBhZ2luYXRpb24gLmNvcHlyaWdodCAuZm9udC0tYmxhY2s6aG92ZXIsIC5jb3B5cmlnaHQgLnBhZ2luYXRpb24gLmZvbnQtLWJsYWNrOmhvdmVyLFxuICAgIC5wYWdpbmF0aW9uIGJ1dHRvbjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1OyB9XG4gIC5wYWdpbmF0aW9uIC5jdXJyZW50IHtcbiAgICBwYWRkaW5nOiAwLjE4NzVyZW0gMC42MjVyZW07XG4gICAgYmFja2dyb3VuZDogIzAwMDAwMDtcbiAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cbiAgLnBhZ2luYXRpb24gLmRpc2FibGVkIHtcbiAgICBwYWRkaW5nOiAwLjE4NzVyZW0gMC42MjVyZW07XG4gICAgY29sb3I6ICNERURFREU7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICAgIC5wYWdpbmF0aW9uIC5kaXNhYmxlZDpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAucGFnaW5hdGlvbiAuZWxsaXBzaXM6OmFmdGVyIHtcbiAgICBwYWRkaW5nOiAwLjE4NzVyZW0gMC42MjVyZW07XG4gICAgY29udGVudDogJ1xcMjAyNic7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cblxuLnBhZ2luYXRpb24tcHJldmlvdXMgYTo6YmVmb3JlLCAucGFnaW5hdGlvbi1wcmV2aW91cyAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrOjpiZWZvcmUsIC5zdWItbWVudSAucGFnaW5hdGlvbi1wcmV2aW91cyAuZm9udC0tYmxhY2s6OmJlZm9yZSxcbi5wYWdpbmF0aW9uLXByZXZpb3VzIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrOjpiZWZvcmUsIC5jb3B5cmlnaHQgLnBhZ2luYXRpb24tcHJldmlvdXMgLmZvbnQtLWJsYWNrOjpiZWZvcmUsXG4ucGFnaW5hdGlvbi1wcmV2aW91cy5kaXNhYmxlZDo6YmVmb3JlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgY29udGVudDogJ1xcMDBhYic7IH1cblxuLnBhZ2luYXRpb24tbmV4dCBhOjphZnRlciwgLnBhZ2luYXRpb24tbmV4dCAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrOjphZnRlciwgLnN1Yi1tZW51IC5wYWdpbmF0aW9uLW5leHQgLmZvbnQtLWJsYWNrOjphZnRlcixcbi5wYWdpbmF0aW9uLW5leHQgLmNvcHlyaWdodCAuZm9udC0tYmxhY2s6OmFmdGVyLCAuY29weXJpZ2h0IC5wYWdpbmF0aW9uLW5leHQgLmZvbnQtLWJsYWNrOjphZnRlcixcbi5wYWdpbmF0aW9uLW5leHQuZGlzYWJsZWQ6OmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICBjb250ZW50OiAnXFwwMGJiJzsgfVxuXG4ucHJvZ3Jlc3Mge1xuICBoZWlnaHQ6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDIuNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RFREVERTsgfVxuICAucHJvZ3Jlc3MucHJpbWFyeSAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7IH1cbiAgLnByb2dyZXNzLnNlY29uZGFyeSAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cbiAgLnByb2dyZXNzLnN1Y2Nlc3MgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2FkYjc2OyB9XG4gIC5wcm9ncmVzcy53YXJuaW5nIC5wcm9ncmVzcy1tZXRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYWUwMDsgfVxuICAucHJvZ3Jlc3MuYWxlcnQgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M0YjM3OyB9XG5cbi5wcm9ncmVzcy1tZXRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwOyB9XG5cbi5wcm9ncmVzcy1tZXRlci10ZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjZmVmZWZlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi5zbGlkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMC41cmVtO1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAyLjI1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0b3VjaC1hY3Rpb246IG5vbmU7IH1cblxuLnNsaWRlci1maWxsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDAuNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RFREVERTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7IH1cbiAgLnNsaWRlci1maWxsLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyOyB9XG5cbi5zbGlkZXItaGFuZGxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxLjRyZW07XG4gIGhlaWdodDogMS40cmVtO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5zbGlkZXItaGFuZGxlIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5zbGlkZXItaGFuZGxlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsgfVxuICAuc2xpZGVyLWhhbmRsZS5pcy1kcmFnZ2luZyB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDBzIGxpbmVhcjsgfVxuXG4uc2xpZGVyLmRpc2FibGVkLFxuLnNsaWRlcltkaXNhYmxlZF0ge1xuICBvcGFjaXR5OiAwLjI1O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG5cbi5zbGlkZXIudmVydGljYWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAwLjVyZW07XG4gIGhlaWdodDogMTIuNXJlbTtcbiAgbWFyZ2luOiAwIDEuMjVyZW07XG4gIHRyYW5zZm9ybTogc2NhbGUoMSwgLTEpOyB9XG4gIC5zbGlkZXIudmVydGljYWwgLnNsaWRlci1maWxsIHtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDAuNXJlbTtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlOyB9XG4gIC5zbGlkZXIudmVydGljYWwgLnNsaWRlci1oYW5kbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIHdpZHRoOiAxLjRyZW07XG4gICAgaGVpZ2h0OiAxLjRyZW07XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB9XG5cbi5zdGlja3ktY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5zdGlja3kge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7IH1cblxuLnN0aWNreS5pcy1zdHVjayB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogNTtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLnN0aWNreS5pcy1zdHVjay5pcy1hdC10b3Age1xuICAgIHRvcDogMDsgfVxuICAuc3RpY2t5LmlzLXN0dWNrLmlzLWF0LWJvdHRvbSB7XG4gICAgYm90dG9tOiAwOyB9XG5cbi5zdGlja3kuaXMtYW5jaG9yZWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiBhdXRvOyB9XG4gIC5zdGlja3kuaXMtYW5jaG9yZWQuaXMtYXQtYm90dG9tIHtcbiAgICBib3R0b206IDA7IH1cblxuYm9keS5pcy1yZXZlYWwtb3BlbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuaHRtbC5pcy1yZXZlYWwtb3Blbixcbmh0bWwuaXMtcmV2ZWFsLW9wZW4gYm9keSB7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cblxuLnJldmVhbC1vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwMDU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTAsIDEwLCAxMCwgMC40NSk7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDsgfVxuXG4ucmV2ZWFsIHtcbiAgei1pbmRleDogMTAwNjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjREVERURFO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMTAwcHg7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG92ZXJmbG93LXk6IGF1dG87IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5yZXZlYWwge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucmV2ZWFsIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDA7IH0gfVxuICAucmV2ZWFsIC5jb2x1bW4ge1xuICAgIG1pbi13aWR0aDogMDsgfVxuICAucmV2ZWFsID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucmV2ZWFsIHtcbiAgICAgIHdpZHRoOiA2MDBweDtcbiAgICAgIG1heC13aWR0aDogNzVyZW07IH0gfVxuICAucmV2ZWFsLmNvbGxhcHNlIHtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnJldmVhbC50aW55IHtcbiAgICAgIHdpZHRoOiAzMCU7XG4gICAgICBtYXgtd2lkdGg6IDc1cmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucmV2ZWFsLnNtYWxsIHtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICBtYXgtd2lkdGg6IDc1cmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucmV2ZWFsLmxhcmdlIHtcbiAgICAgIHdpZHRoOiA5MCU7XG4gICAgICBtYXgtd2lkdGg6IDc1cmVtOyB9IH1cbiAgLnJldmVhbC5mdWxsIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGhlaWdodDogMTAwdmg7XG4gICAgbWluLWhlaWdodDogMTAwdmg7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLnJldmVhbCB7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgbWluLWhlaWdodDogMTAwdmg7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7IH0gfVxuICAucmV2ZWFsLndpdGhvdXQtb3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGZpeGVkOyB9XG5cbi5zd2l0Y2gge1xuICBoZWlnaHQ6IDJyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogMi41cmVtO1xuICBvdXRsaW5lOiAwO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNmZWZlZmU7XG4gIHVzZXItc2VsZWN0OiBub25lOyB9XG5cbi5zd2l0Y2gtaW5wdXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnN3aXRjaC1wYWRkbGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogNHJlbTtcbiAgaGVpZ2h0OiAycmVtO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiAjREVERURFO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIGlucHV0ICsgLnN3aXRjaC1wYWRkbGUge1xuICAgIG1hcmdpbjogMDsgfVxuICAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDAuMjVyZW07XG4gICAgbGVmdDogMC4yNXJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMS41cmVtO1xuICAgIGhlaWdodDogMS41cmVtO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dDtcbiAgICBjb250ZW50OiAnJzsgfVxuICBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGUge1xuICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7IH1cbiAgICBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICAgIGxlZnQ6IDIuMjVyZW07IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIGlucHV0OmZvY3VzIH4gLnN3aXRjaC1wYWRkbGUge1xuICAgIG91dGxpbmU6IDA7IH1cblxuLnN3aXRjaC1hY3RpdmUsIC5zd2l0Y2gtaW5hY3RpdmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cblxuLnN3aXRjaC1hY3RpdmUge1xuICBsZWZ0OiA4JTtcbiAgZGlzcGxheTogbm9uZTsgfVxuICBpbnB1dDpjaGVja2VkICsgbGFiZWwgPiAuc3dpdGNoLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLnN3aXRjaC1pbmFjdGl2ZSB7XG4gIHJpZ2h0OiAxNSU7IH1cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gLnN3aXRjaC1pbmFjdGl2ZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4uc3dpdGNoLnRpbnkge1xuICBoZWlnaHQ6IDEuNXJlbTsgfVxuICAuc3dpdGNoLnRpbnkgLnN3aXRjaC1wYWRkbGUge1xuICAgIHdpZHRoOiAzcmVtO1xuICAgIGhlaWdodDogMS41cmVtO1xuICAgIGZvbnQtc2l6ZTogMC42MjVyZW07IH1cbiAgLnN3aXRjaC50aW55IC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgdG9wOiAwLjI1cmVtO1xuICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgd2lkdGg6IDFyZW07XG4gICAgaGVpZ2h0OiAxcmVtOyB9XG4gIC5zd2l0Y2gudGlueSBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICBsZWZ0OiAxLjc1cmVtOyB9XG5cbi5zd2l0Y2guc21hbGwge1xuICBoZWlnaHQ6IDEuNzVyZW07IH1cbiAgLnN3aXRjaC5zbWFsbCAuc3dpdGNoLXBhZGRsZSB7XG4gICAgd2lkdGg6IDMuNXJlbTtcbiAgICBoZWlnaHQ6IDEuNzVyZW07XG4gICAgZm9udC1zaXplOiAwLjc1cmVtOyB9XG4gIC5zd2l0Y2guc21hbGwgLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICB0b3A6IDAuMjVyZW07XG4gICAgbGVmdDogMC4yNXJlbTtcbiAgICB3aWR0aDogMS4yNXJlbTtcbiAgICBoZWlnaHQ6IDEuMjVyZW07IH1cbiAgLnN3aXRjaC5zbWFsbCBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICBsZWZ0OiAycmVtOyB9XG5cbi5zd2l0Y2gubGFyZ2Uge1xuICBoZWlnaHQ6IDIuNXJlbTsgfVxuICAuc3dpdGNoLmxhcmdlIC5zd2l0Y2gtcGFkZGxlIHtcbiAgICB3aWR0aDogNXJlbTtcbiAgICBoZWlnaHQ6IDIuNXJlbTtcbiAgICBmb250LXNpemU6IDFyZW07IH1cbiAgLnN3aXRjaC5sYXJnZSAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIHRvcDogMC4yNXJlbTtcbiAgICBsZWZ0OiAwLjI1cmVtO1xuICAgIHdpZHRoOiAycmVtO1xuICAgIGhlaWdodDogMnJlbTsgfVxuICAuc3dpdGNoLmxhcmdlIGlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIGxlZnQ6IDIuNzVyZW07IH1cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMi41cmVtO1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG4gIHRoZWFkLFxuICB0Ym9keSxcbiAgdGZvb3Qge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMWYxZjE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTsgfVxuICBjYXB0aW9uIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMC42MjVyZW0gMC42MjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgdGhlYWQge1xuICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgdGZvb3Qge1xuICAgIGJhY2tncm91bmQ6ICNmMWYxZjE7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgdGhlYWQgdHIsXG4gIHRmb290IHRyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICB0aGVhZCB0aCxcbiAgdGhlYWQgdGQsXG4gIHRmb290IHRoLFxuICB0Zm9vdCB0ZCB7XG4gICAgcGFkZGluZzogMC41cmVtIDAuNjI1cmVtIDAuNjI1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgdGJvZHkgdGgsXG4gIHRib2R5IHRkIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMC42MjVyZW0gMC42MjVyZW07IH1cbiAgdGJvZHkgdHI6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7IH1cbiAgdGFibGUudW5zdHJpcGVkIHRib2R5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlOyB9XG4gICAgdGFibGUudW5zdHJpcGVkIHRib2R5IHRyIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YxZjFmMTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gIHRhYmxlLnN0YWNrIHRoZWFkIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIHRhYmxlLnN0YWNrIHRmb290IHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIHRhYmxlLnN0YWNrIHRyLFxuICB0YWJsZS5zdGFjayB0aCxcbiAgdGFibGUuc3RhY2sgdGQge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIHRhYmxlLnN0YWNrIHRkIHtcbiAgICBib3JkZXItdG9wOiAwOyB9IH1cblxudGFibGUuc2Nyb2xsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBhdXRvOyB9XG5cbnRhYmxlLmhvdmVyIHRoZWFkIHRyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMzsgfVxuXG50YWJsZS5ob3ZlciB0Zm9vdCB0cjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlY2VjZWM7IH1cblxudGFibGUuaG92ZXIgdGJvZHkgdHI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5OyB9XG5cbnRhYmxlLmhvdmVyOm5vdCgudW5zdHJpcGVkKSB0cjpudGgtb2YtdHlwZShldmVuKTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlY2VjZWM7IH1cblxuLnRhYmxlLXNjcm9sbCB7XG4gIG92ZXJmbG93LXg6IGF1dG87IH1cbiAgLnRhYmxlLXNjcm9sbCB0YWJsZSB7XG4gICAgd2lkdGg6IGF1dG87IH1cblxuLnRhYnMge1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmNWY1ZjU7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgfVxuICAudGFiczo6YmVmb3JlLCAudGFiczo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIG9yZGVyOiAxOyB9XG4gIC50YWJzOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cblxuLnRhYnMudmVydGljYWwgPiBsaSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogbm9uZTtcbiAgd2lkdGg6IGF1dG87IH1cblxuLnRhYnMuc2ltcGxlID4gbGkgPiBhLCAuc3ViLW1lbnUgLnRhYnMuc2ltcGxlID4gbGkgPiAuZm9udC0tYmxhY2ssXG4uY29weXJpZ2h0IC50YWJzLnNpbXBsZSA+IGxpID4gLmZvbnQtLWJsYWNrIHtcbiAgcGFkZGluZzogMDsgfVxuICAudGFicy5zaW1wbGUgPiBsaSA+IGE6aG92ZXIsIC5zdWItbWVudSAudGFicy5zaW1wbGUgPiBsaSA+IC5mb250LS1ibGFjazpob3ZlcixcbiAgLmNvcHlyaWdodCAudGFicy5zaW1wbGUgPiBsaSA+IC5mb250LS1ibGFjazpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cblxuLnRhYnMucHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7IH1cbiAgLnRhYnMucHJpbWFyeSA+IGxpID4gYSwgLnN1Yi1tZW51IC50YWJzLnByaW1hcnkgPiBsaSA+IC5mb250LS1ibGFjayxcbiAgLmNvcHlyaWdodCAudGFicy5wcmltYXJ5ID4gbGkgPiAuZm9udC0tYmxhY2sge1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICAgLnRhYnMucHJpbWFyeSA+IGxpID4gYTpob3ZlciwgLnN1Yi1tZW51IC50YWJzLnByaW1hcnkgPiBsaSA+IC5mb250LS1ibGFjazpob3ZlcixcbiAgICAuY29weXJpZ2h0IC50YWJzLnByaW1hcnkgPiBsaSA+IC5mb250LS1ibGFjazpob3ZlciwgLnRhYnMucHJpbWFyeSA+IGxpID4gYTpmb2N1cywgLnN1Yi1tZW51IC50YWJzLnByaW1hcnkgPiBsaSA+IC5mb250LS1ibGFjazpmb2N1cyxcbiAgICAuY29weXJpZ2h0IC50YWJzLnByaW1hcnkgPiBsaSA+IC5mb250LS1ibGFjazpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kOiAjMGQwZDBkOyB9XG5cbi50YWJzLXRpdGxlIHtcbiAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnRhYnMtdGl0bGUgPiBhLCAuc3ViLW1lbnUgLnRhYnMtdGl0bGUgPiAuZm9udC0tYmxhY2ssXG4gIC5jb3B5cmlnaHQgLnRhYnMtdGl0bGUgPiAuZm9udC0tYmxhY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDEuMjVyZW0gMS41cmVtO1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAgIC50YWJzLXRpdGxlID4gYTpob3ZlciwgLnN1Yi1tZW51IC50YWJzLXRpdGxlID4gLmZvbnQtLWJsYWNrOmhvdmVyLFxuICAgIC5jb3B5cmlnaHQgLnRhYnMtdGl0bGUgPiAuZm9udC0tYmxhY2s6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgICAgIGNvbG9yOiBibGFjazsgfVxuICAgIC50YWJzLXRpdGxlID4gYTpmb2N1cywgLnN1Yi1tZW51IC50YWJzLXRpdGxlID4gLmZvbnQtLWJsYWNrOmZvY3VzLFxuICAgIC5jb3B5cmlnaHQgLnRhYnMtdGl0bGUgPiAuZm9udC0tYmxhY2s6Zm9jdXMsIC50YWJzLXRpdGxlID4gYVthcmlhLXNlbGVjdGVkPSd0cnVlJ10sIC5zdWItbWVudSAudGFicy10aXRsZSA+IC5mb250LS1ibGFja1thcmlhLXNlbGVjdGVkPSd0cnVlJ10sXG4gICAgLmNvcHlyaWdodCAudGFicy10aXRsZSA+IC5mb250LS1ibGFja1thcmlhLXNlbGVjdGVkPSd0cnVlJ10ge1xuICAgICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcbiAgICAgIGNvbG9yOiAjMDAwMDAwOyB9XG5cbi50YWJzLWNvbnRlbnQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZjVmNWY1O1xuICBib3JkZXItdG9wOiAwO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICBjb2xvcjogIzBhMGEwYTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZTsgfVxuXG4udGFicy1jb250ZW50LnZlcnRpY2FsIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2Y1ZjVmNTtcbiAgYm9yZGVyLWxlZnQ6IDA7IH1cblxuLnRhYnMtcGFuZWwge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAxcmVtOyB9XG4gIC50YWJzLXBhbmVsLmlzLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLnRodW1ibmFpbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAyLjVyZW07XG4gIGJvcmRlcjogc29saWQgNHB4ICNmZWZlZmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDEwLCAxMCwgMTAsIDAuMik7XG4gIGxpbmUtaGVpZ2h0OiAwOyB9XG5cbmEudGh1bWJuYWlsLCAuc3ViLW1lbnUgLnRodW1ibmFpbC5mb250LS1ibGFjayxcbi5jb3B5cmlnaHQgLnRodW1ibmFpbC5mb250LS1ibGFjayB7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQ7IH1cbiAgYS50aHVtYm5haWw6aG92ZXIsIC5zdWItbWVudSAudGh1bWJuYWlsLmZvbnQtLWJsYWNrOmhvdmVyLFxuICAuY29weXJpZ2h0IC50aHVtYm5haWwuZm9udC0tYmxhY2s6aG92ZXIsIGEudGh1bWJuYWlsOmZvY3VzLCAuc3ViLW1lbnUgLnRodW1ibmFpbC5mb250LS1ibGFjazpmb2N1cyxcbiAgLmNvcHlyaWdodCAudGh1bWJuYWlsLmZvbnQtLWJsYWNrOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiAwIDAgNnB4IDFweCByZ2JhKDAsIDAsIDAsIDAuNSk7IH1cbiAgYS50aHVtYm5haWwgaW1hZ2UsIC5zdWItbWVudSAudGh1bWJuYWlsLmZvbnQtLWJsYWNrIGltYWdlLCAuY29weXJpZ2h0IC50aHVtYm5haWwuZm9udC0tYmxhY2sgaW1hZ2Uge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cblxuLnRpdGxlLWJhciB7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAudGl0bGUtYmFyIC5tZW51LWljb24ge1xuICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTsgfVxuXG4udGl0bGUtYmFyLWxlZnQsXG4udGl0bGUtYmFyLXJpZ2h0IHtcbiAgZmxleDogMSAxIDBweDsgfVxuXG4udGl0bGUtYmFyLXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLnRpdGxlLWJhci10aXRsZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLmhhcy10aXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLWJvdHRvbTogZG90dGVkIDFweCAjQUFBQUFBO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY3Vyc29yOiBoZWxwOyB9XG5cbi50b29sdGlwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoMTAwJSArIDAuNjQ5NXJlbSk7XG4gIHotaW5kZXg6IDEyMDA7XG4gIG1heC13aWR0aDogMTByZW07XG4gIHBhZGRpbmc6IDAuNzVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwYTBhMGE7XG4gIGZvbnQtc2l6ZTogODAlO1xuICBjb2xvcjogI2ZlZmVmZTsgfVxuICAudG9vbHRpcDo6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cbiAgLnRvb2x0aXAuYm90dG9tOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDAuNzVyZW07XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMwYTBhMGE7XG4gICAgYm90dG9tOiAxMDAlOyB9XG4gIC50b29sdGlwLmJvdHRvbS5hbGlnbi1jZW50ZXI6OmJlZm9yZSB7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgfVxuICAudG9vbHRpcC50b3A6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgMC43NXJlbTtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogIzBhMGEwYSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICB0b3A6IDEwMCU7XG4gICAgYm90dG9tOiBhdXRvOyB9XG4gIC50b29sdGlwLnRvcC5hbGlnbi1jZW50ZXI6OmJlZm9yZSB7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgfVxuICAudG9vbHRpcC5sZWZ0OjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDAuNzVyZW07XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMwYTBhMGE7XG4gICAgbGVmdDogMTAwJTsgfVxuICAudG9vbHRpcC5sZWZ0LmFsaWduLWNlbnRlcjo6YmVmb3JlIHtcbiAgICBib3R0b206IGF1dG87XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG4gIC50b29sdGlwLnJpZ2h0OjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDAuNzVyZW07XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMwYTBhMGEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgbGVmdDogYXV0bzsgfVxuICAudG9vbHRpcC5yaWdodC5hbGlnbi1jZW50ZXI6OmJlZm9yZSB7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuICAudG9vbHRpcC5hbGlnbi10b3A6OmJlZm9yZSB7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIHRvcDogMTAlOyB9XG4gIC50b29sdGlwLmFsaWduLWJvdHRvbTo6YmVmb3JlIHtcbiAgICBib3R0b206IDEwJTtcbiAgICB0b3A6IGF1dG87IH1cbiAgLnRvb2x0aXAuYWxpZ24tbGVmdDo6YmVmb3JlIHtcbiAgICBsZWZ0OiAxMCU7XG4gICAgcmlnaHQ6IGF1dG87IH1cbiAgLnRvb2x0aXAuYWxpZ24tcmlnaHQ6OmJlZm9yZSB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMTAlOyB9XG5cbi50b3AtYmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMDtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC50b3AtYmFyLFxuICAudG9wLWJhciB1bCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxuICAudG9wLWJhciBpbnB1dCB7XG4gICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07IH1cbiAgLnRvcC1iYXIgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLnRvcC1iYXIgaW5wdXQuYnV0dG9uLCAudG9wLWJhciBpbnB1dC5idXR0b24tLW91dGxpbmUtb25seSwgLnRvcC1iYXIgI25ld3NsZXR0ZXItc2lnbnVwIGlucHV0I21jLWVtYmVkZGVkLXN1YnNjcmliZSwgI25ld3NsZXR0ZXItc2lnbnVwIC50b3AtYmFyIGlucHV0I21jLWVtYmVkZGVkLXN1YnNjcmliZSwgLnRvcC1iYXIgaW5wdXQuYnV0dG9uLS10ZXh0LW9ubHkge1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC50b3AtYmFyIC50b3AtYmFyLWxlZnQsXG4gIC50b3AtYmFyIC50b3AtYmFyLXJpZ2h0IHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAudG9wLWJhciB7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDsgfVxuICAgICAgLnRvcC1iYXIgLnRvcC1iYXItbGVmdCB7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cbiAgICAgIC50b3AtYmFyIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgLnRvcC1iYXIuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgICAgLnRvcC1iYXIuc3RhY2tlZC1mb3ItbWVkaXVtIC50b3AtYmFyLWxlZnQsXG4gICAgICAudG9wLWJhci5zdGFja2VkLWZvci1tZWRpdW0gLnRvcC1iYXItcmlnaHQge1xuICAgICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQuOTM3NWVtKSB7XG4gICAgLnRvcC1iYXIuc3RhY2tlZC1mb3ItbGFyZ2Uge1xuICAgICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgICAudG9wLWJhci5zdGFja2VkLWZvci1sYXJnZSAudG9wLWJhci1sZWZ0LFxuICAgICAgLnRvcC1iYXIuc3RhY2tlZC1mb3ItbGFyZ2UgLnRvcC1iYXItcmlnaHQge1xuICAgICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9IH1cblxuLnRvcC1iYXItdGl0bGUge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgbWFyZ2luOiAwLjVyZW0gMXJlbSAwLjVyZW0gMDsgfVxuXG4udG9wLWJhci1sZWZ0LFxuLnRvcC1iYXItcmlnaHQge1xuICBmbGV4OiAwIDAgYXV0bzsgfVxuXG4uaGlkZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uaW52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAuaGlkZS1mb3Itc21hbGwtb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMGVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5zaG93LWZvci1zbWFsbC1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuaGlkZS1mb3ItbWVkaXVtIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgLnNob3ctZm9yLW1lZGl1bSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAuaGlkZS1mb3ItbWVkaXVtLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuc2hvdy1mb3ItbWVkaXVtLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5oaWRlLWZvci1sYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gIC5zaG93LWZvci1sYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtYXgtd2lkdGg6IDc0LjkzNzVlbSkge1xuICAuaGlkZS1mb3ItbGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5zaG93LWZvci1sYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4uc2hvdy1mb3Itc3IsXG4uc2hvdy1vbi1mb2N1cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuICBib3JkZXI6IDA7IH1cblxuLnNob3ctb24tZm9jdXM6YWN0aXZlLCAuc2hvdy1vbi1mb2N1czpmb2N1cyB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIGNsaXAtcGF0aDogbm9uZTsgfVxuXG4uc2hvdy1mb3ItbGFuZHNjYXBlLFxuLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gICAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLmhpZGUtZm9yLWxhbmRzY2FwZSxcbi5zaG93LWZvci1wb3J0cmFpdCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9IH1cblxuLmFsaWduLXJpZ2h0IHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuXG4uYWxpZ24tY2VudGVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cblxuLmFsaWduLWp1c3RpZnkge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cblxuLmFsaWduLXNwYWNlZCB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9XG5cbi5hbGlnbi1yaWdodC52ZXJ0aWNhbC5tZW51ID4gbGkgPiBhLCAuc3ViLW1lbnUgLmFsaWduLXJpZ2h0LnZlcnRpY2FsLm1lbnUgPiBsaSA+IC5mb250LS1ibGFjayxcbi5jb3B5cmlnaHQgLmFsaWduLXJpZ2h0LnZlcnRpY2FsLm1lbnUgPiBsaSA+IC5mb250LS1ibGFjayB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cblxuLmFsaWduLWNlbnRlci52ZXJ0aWNhbC5tZW51ID4gbGkgPiBhLCAuc3ViLW1lbnUgLmFsaWduLWNlbnRlci52ZXJ0aWNhbC5tZW51ID4gbGkgPiAuZm9udC0tYmxhY2ssXG4uY29weXJpZ2h0IC5hbGlnbi1jZW50ZXIudmVydGljYWwubWVudSA+IGxpID4gLmZvbnQtLWJsYWNrIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cblxuLmFsaWduLXRvcCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG5cbi5hbGlnbi1zZWxmLXRvcCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7IH1cblxuLmFsaWduLWJvdHRvbSB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuXG4uYWxpZ24tc2VsZi1ib3R0b20ge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDsgfVxuXG4uYWxpZ24tbWlkZGxlIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuXG4uYWxpZ24tc2VsZi1taWRkbGUge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7IH1cblxuLmFsaWduLXN0cmV0Y2gge1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuXG4uYWxpZ24tc2VsZi1zdHJldGNoIHtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDsgfVxuXG4uYWxpZ24tY2VudGVyLW1pZGRsZSB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7IH1cblxuLnNtYWxsLW9yZGVyLTEge1xuICBvcmRlcjogMTsgfVxuXG4uc21hbGwtb3JkZXItMiB7XG4gIG9yZGVyOiAyOyB9XG5cbi5zbWFsbC1vcmRlci0zIHtcbiAgb3JkZXI6IDM7IH1cblxuLnNtYWxsLW9yZGVyLTQge1xuICBvcmRlcjogNDsgfVxuXG4uc21hbGwtb3JkZXItNSB7XG4gIG9yZGVyOiA1OyB9XG5cbi5zbWFsbC1vcmRlci02IHtcbiAgb3JkZXI6IDY7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lZGl1bS1vcmRlci0xIHtcbiAgICBvcmRlcjogMTsgfVxuICAubWVkaXVtLW9yZGVyLTIge1xuICAgIG9yZGVyOiAyOyB9XG4gIC5tZWRpdW0tb3JkZXItMyB7XG4gICAgb3JkZXI6IDM7IH1cbiAgLm1lZGl1bS1vcmRlci00IHtcbiAgICBvcmRlcjogNDsgfVxuICAubWVkaXVtLW9yZGVyLTUge1xuICAgIG9yZGVyOiA1OyB9XG4gIC5tZWRpdW0tb3JkZXItNiB7XG4gICAgb3JkZXI6IDY7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2Utb3JkZXItMSB7XG4gICAgb3JkZXI6IDE7IH1cbiAgLmxhcmdlLW9yZGVyLTIge1xuICAgIG9yZGVyOiAyOyB9XG4gIC5sYXJnZS1vcmRlci0zIHtcbiAgICBvcmRlcjogMzsgfVxuICAubGFyZ2Utb3JkZXItNCB7XG4gICAgb3JkZXI6IDQ7IH1cbiAgLmxhcmdlLW9yZGVyLTUge1xuICAgIG9yZGVyOiA1OyB9XG4gIC5sYXJnZS1vcmRlci02IHtcbiAgICBvcmRlcjogNjsgfSB9XG5cbi5mbGV4LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cblxuLmZsZXgtY2hpbGQtYXV0byB7XG4gIGZsZXg6IDEgMSBhdXRvOyB9XG5cbi5mbGV4LWNoaWxkLWdyb3cge1xuICBmbGV4OiAxIDAgYXV0bzsgfVxuXG4uZmxleC1jaGlsZC1zaHJpbmsge1xuICBmbGV4OiAwIDEgYXV0bzsgfVxuXG4uZmxleC1kaXItcm93IHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuXG4uZmxleC1kaXItcm93LXJldmVyc2Uge1xuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cblxuLmZsZXgtZGlyLWNvbHVtbiB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cblxuLmZsZXgtZGlyLWNvbHVtbi1yZXZlcnNlIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tZmxleC1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgLm1lZGl1bS1mbGV4LWNoaWxkLWF1dG8ge1xuICAgIGZsZXg6IDEgMSBhdXRvOyB9XG4gIC5tZWRpdW0tZmxleC1jaGlsZC1ncm93IHtcbiAgICBmbGV4OiAxIDAgYXV0bzsgfVxuICAubWVkaXVtLWZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgICBmbGV4OiAwIDEgYXV0bzsgfVxuICAubWVkaXVtLWZsZXgtZGlyLXJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAubWVkaXVtLWZsZXgtZGlyLXJvdy1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cbiAgLm1lZGl1bS1mbGV4LWRpci1jb2x1bW4ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLm1lZGl1bS1mbGV4LWRpci1jb2x1bW4tcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLWZsZXgtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5sYXJnZS1mbGV4LWNoaWxkLWF1dG8ge1xuICAgIGZsZXg6IDEgMSBhdXRvOyB9XG4gIC5sYXJnZS1mbGV4LWNoaWxkLWdyb3cge1xuICAgIGZsZXg6IDEgMCBhdXRvOyB9XG4gIC5sYXJnZS1mbGV4LWNoaWxkLXNocmluayB7XG4gICAgZmxleDogMCAxIGF1dG87IH1cbiAgLmxhcmdlLWZsZXgtZGlyLXJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAubGFyZ2UtZmxleC1kaXItcm93LXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuICAubGFyZ2UtZmxleC1kaXItY29sdW1uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gIC5sYXJnZS1mbGV4LWRpci1jb2x1bW4tcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOyB9IH1cblxuLnNsaWRlLWluLWRvd24ubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1pbi1kb3duLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG5cbi5zbGlkZS1pbi1sZWZ0Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtaW4tbGVmdC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuXG4uc2xpZGUtaW4tdXAubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLWluLXVwLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG5cbi5zbGlkZS1pbi1yaWdodC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtaW4tcmlnaHQubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cblxuLnNsaWRlLW91dC1kb3duLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1vdXQtZG93bi5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTsgfVxuXG4uc2xpZGUtb3V0LXJpZ2h0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1vdXQtcmlnaHQubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IH1cblxuLnNsaWRlLW91dC11cC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtb3V0LXVwLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsgfVxuXG4uc2xpZGUtb3V0LWxlZnQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLW91dC1sZWZ0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsgfVxuXG4uZmFkZS1pbi5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTsgfVxuXG4uZmFkZS1pbi5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmZhZGUtb3V0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5OyB9XG5cbi5mYWRlLW91dC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tdG9wLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3A7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS10b3AubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLXJpZ2h0Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSgtOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLXJpZ2h0Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2UtaW4tZnJvbS1ib3R0b20ubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tYm90dG9tLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2UtaW4tZnJvbS1sZWZ0Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSg5MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS1sZWZ0Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2UtaW4tZnJvbS1taWRkbGUteC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tbWlkZGxlLXgubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLW1pZGRsZS15Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSgtOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS1taWRkbGUteS5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLXRvcC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLXRvcC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLW91dC1mcm9tLXJpZ2h0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1yaWdodC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLW91dC1mcm9tLWJvdHRvbS5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLWJvdHRvbS5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2Utb3V0LWZyb20tbGVmdC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1sZWZ0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1taWRkbGUteC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLW1pZGRsZS14Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2Utb3V0LWZyb20tbWlkZGxlLXkubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1taWRkbGUteS5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNjYWxlLWluLXVwLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2NhbGUtaW4tdXAubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zY2FsZS1pbi1kb3duLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2NhbGUtaW4tZG93bi5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNjYWxlLW91dC11cC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zY2FsZS1vdXQtdXAubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNjYWxlLW91dC1kb3duLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNjYWxlLW91dC1kb3duLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zcGluLWluLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMC43NXR1cm4pO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNwaW4taW4ubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc3Bpbi1vdXQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNwaW4tb3V0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMC43NXR1cm4pO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zcGluLWluLWNjdy5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMC43NXR1cm4pO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNwaW4taW4tY2N3Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNwaW4tb3V0LWNjdy5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc3Bpbi1vdXQtY2N3Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTAuNzV0dXJuKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2xvdyB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1MG1zICFpbXBvcnRhbnQ7IH1cblxuLmZhc3Qge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAyNTBtcyAhaW1wb3J0YW50OyB9XG5cbi5saW5lYXIge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyICFpbXBvcnRhbnQ7IH1cblxuLmVhc2Uge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZSAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLWluIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4gIWltcG9ydGFudDsgfVxuXG4uZWFzZS1vdXQge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQgIWltcG9ydGFudDsgfVxuXG4uZWFzZS1pbi1vdXQge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQgIWltcG9ydGFudDsgfVxuXG4uYm91bmNlLWluIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuMjQsIDEuMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2Utb3V0IHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuNTE1LCAwLjg0NSkgIWltcG9ydGFudDsgfVxuXG4uYm91bmNlLWluLW91dCB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NiwgLTAuMjQ1LCAwLjI0LCAxLjI0NSkgIWltcG9ydGFudDsgfVxuXG4uc2hvcnQtZGVsYXkge1xuICB0cmFuc2l0aW9uLWRlbGF5OiAzMDBtcyAhaW1wb3J0YW50OyB9XG5cbi5sb25nLWRlbGF5IHtcbiAgdHJhbnNpdGlvbi1kZWxheTogNzAwbXMgIWltcG9ydGFudDsgfVxuXG4uc2hha2Uge1xuICBhbmltYXRpb24tbmFtZTogc2hha2UtNzsgfVxuXG5Aa2V5ZnJhbWVzIHNoYWtlLTcge1xuICAwJSwgMTAlLCAyMCUsIDMwJSwgNDAlLCA1MCUsIDYwJSwgNzAlLCA4MCUsIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDclKTsgfVxuICA1JSwgMTUlLCAyNSUsIDM1JSwgNDUlLCA1NSUsIDY1JSwgNzUlLCA4NSUsIDk1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC03JSk7IH0gfVxuXG4uc3Bpbi1jdyB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzcGluLWN3LTF0dXJuOyB9XG5cbkBrZXlmcmFtZXMgc3Bpbi1jdy0xdHVybiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMXR1cm4pOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApOyB9IH1cblxuLnNwaW4tY2N3IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tY3ctMXR1cm47IH1cblxuQGtleWZyYW1lcyBzcGluLWN3LTF0dXJuIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDF0dXJuKTsgfSB9XG5cbi53aWdnbGUge1xuICBhbmltYXRpb24tbmFtZTogd2lnZ2xlLTdkZWc7IH1cblxuQGtleWZyYW1lcyB3aWdnbGUtN2RlZyB7XG4gIDQwJSwgNTAlLCA2MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDdkZWcpOyB9XG4gIDM1JSwgNDUlLCA1NSUsIDY1JSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTdkZWcpOyB9XG4gIDAlLCAzMCUsIDcwJSwgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH0gfVxuXG4uc2hha2UsXG4uc3Bpbi1jdyxcbi5zcGluLWNjdyxcbi53aWdnbGUge1xuICBhbmltYXRpb24tZHVyYXRpb246IDUwMG1zOyB9XG5cbi5pbmZpbml0ZSB7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOyB9XG5cbi5zbG93IHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA3NTBtcyAhaW1wb3J0YW50OyB9XG5cbi5mYXN0IHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAyNTBtcyAhaW1wb3J0YW50OyB9XG5cbi5saW5lYXIge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXIgIWltcG9ydGFudDsgfVxuXG4uZWFzZSB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UgIWltcG9ydGFudDsgfVxuXG4uZWFzZS1pbiB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4gIWltcG9ydGFudDsgfVxuXG4uZWFzZS1vdXQge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dCAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLWluLW91dCB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0ICFpbXBvcnRhbnQ7IH1cblxuLmJvdW5jZS1pbiB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuMjQsIDEuMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2Utb3V0IHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC41MTUsIDAuODQ1KSAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2UtaW4tb3V0IHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNzYsIC0wLjI0NSwgMC4yNCwgMS4yNDUpICFpbXBvcnRhbnQ7IH1cblxuLnNob3J0LWRlbGF5IHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAzMDBtcyAhaW1wb3J0YW50OyB9XG5cbi5sb25nLWRlbGF5IHtcbiAgYW5pbWF0aW9uLWRlbGF5OiA3MDBtcyAhaW1wb3J0YW50OyB9XG5cbi8qXG4gIE15IGN1c3RvbSBzdHlsZXM6XG4gIEFkZCB5b3VyIHNjc3MgZmlsZXMgYmVsb3cgdG8gc3RydWN0dXJlIHlvdXIgcHJvamVjdCBzdHlsZXNcbiovXG4uc2NyZWVuLXJlYWRlci10ZXh0IHtcbiAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxcHg7XG4gIHdpZHRoOiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLnNjcmVlbi1yZWFkZXItdGV4dDpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogMCAwIDJweCAycHggcmdiYSgwLCAwLCAwLCAwLjYpO1xuICBjbGlwOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMjE3NTliO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBsZWZ0OiA1cHg7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDE1cHggMjNweCAxNHB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRvcDogNXB4O1xuICB3aWR0aDogYXV0bztcbiAgei1pbmRleDogMTAwMDAwOyB9XG5cbiN3cGFkbWluYmFyIHtcbiAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7IH1cblxuYm9keS5hZG1pbi1iYXIuZi10b3BiYXItZml4ZWQgLnN0aWNreS5maXhlZCB7XG4gIG1hcmdpbi10b3A6IDJyZW07IH1cblxuYm9keS5hZG1pbi1iYXIub2ZmY2FudmFzIC5vZmYtY2FudmFzLmlzLW9wZW4ge1xuICB0b3A6IDIuODc1cmVtOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4LjkzNzVlbSkge1xuICAgIGJvZHkuYWRtaW4tYmFyLm9mZmNhbnZhcyAub2ZmLWNhbnZhcy5pcy1vcGVuIHtcbiAgICAgIHRvcDogMnJlbTsgfSB9XG5cbi53cC1jYXB0aW9uID4gZmlnY2FwdGlvbiB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGNvbG9yOiAjOTk5O1xuICBwYWRkaW5nOiAwLjI1cmVtIDA7IH1cblxucC53cC1jYXB0aW9uLXRleHQge1xuICBmb250LXNpemU6IDkwJTtcbiAgY29sb3I6ICM2NjY7XG4gIHBhZGRpbmc6IDAuNjI1cmVtIDA7IH1cblxuLmFsaWdubGVmdCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICBtYXJnaW46IDA7IH1cblxuLmFsaWducmlnaHQge1xuICBmbG9hdDogcmlnaHQ7XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgbWFyZ2luOiAwOyB9XG5cbi5hbGlnbmNlbnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG5cbi5tb2JpbGUtbWVudSxcbi5zaXRlLXRpdGxlLWJhciB7XG4gIHRyYW5zaXRpb246IGVhc2UtaW4tb3V0IGJhY2tncm91bmQtY29sb3IgMC41czsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5tb2JpbGUtbWVudSxcbiAgICAuc2l0ZS10aXRsZS1iYXIge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cbiAgLm1vYmlsZS1tZW51LmFjdGl2ZSxcbiAgLnNpdGUtdGl0bGUtYmFyLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGOUUzMTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgLmRlc2t0b3AtbWVudSxcbiAgLnNpdGUtbmF2aWdhdGlvbiAudG9wLWJhci1sZWZ0IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4uc2l0ZS1kZXNrdG9wLXRpdGxlIGEsIC5zaXRlLWRlc2t0b3AtdGl0bGUgLnN1Yi1tZW51IC5mb250LS1ibGFjaywgLnN1Yi1tZW51IC5zaXRlLWRlc2t0b3AtdGl0bGUgLmZvbnQtLWJsYWNrLFxuLnNpdGUtZGVza3RvcC10aXRsZSAuY29weXJpZ2h0IC5mb250LS1ibGFjaywgLmNvcHlyaWdodCAuc2l0ZS1kZXNrdG9wLXRpdGxlIC5mb250LS1ibGFjayB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5tb2JpbGUtbWVudSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLm9mZi1jYW52YXMgPiB1bC5tZW51IHtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgcGFkZGluZzogMXJlbTsgfVxuICAub2ZmLWNhbnZhcyA+IHVsLm1lbnUgYSwgLm9mZi1jYW52YXMgPiB1bC5tZW51IC5zdWItbWVudSAuZm9udC0tYmxhY2ssIC5zdWItbWVudSAub2ZmLWNhbnZhcyA+IHVsLm1lbnUgLmZvbnQtLWJsYWNrLFxuICAub2ZmLWNhbnZhcyA+IHVsLm1lbnUgLmNvcHlyaWdodCAuZm9udC0tYmxhY2ssIC5jb3B5cmlnaHQgLm9mZi1jYW52YXMgPiB1bC5tZW51IC5mb250LS1ibGFjayB7XG4gICAgY29sb3I6ICMwYTBhMGE7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDAuOTM3NXJlbTsgfVxuICAub2ZmLWNhbnZhcyA+IHVsLm1lbnUgLnN1Ym1lbnUtdG9nZ2xlOjphZnRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAjMGEwYTBhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG5cbi5vZmYtY2FudmFzIC5tZW51IC5hY3RpdmUgPiBhLCAub2ZmLWNhbnZhcyAubWVudSAuc3ViLW1lbnUgLmFjdGl2ZSA+IC5mb250LS1ibGFjaywgLnN1Yi1tZW51IC5vZmYtY2FudmFzIC5tZW51IC5hY3RpdmUgPiAuZm9udC0tYmxhY2ssXG4ub2ZmLWNhbnZhcyAubWVudSAuY29weXJpZ2h0IC5hY3RpdmUgPiAuZm9udC0tYmxhY2ssIC5jb3B5cmlnaHQgLm9mZi1jYW52YXMgLm1lbnUgLmFjdGl2ZSA+IC5mb250LS1ibGFjayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7IH1cblxuLnRpdGxlLWJhciB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi50aXRsZS1iYXItdGl0bGUgYSwgLnRpdGxlLWJhci10aXRsZSAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrLCAuc3ViLW1lbnUgLnRpdGxlLWJhci10aXRsZSAuZm9udC0tYmxhY2ssXG4udGl0bGUtYmFyLXRpdGxlIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrLCAuY29weXJpZ2h0IC50aXRsZS1iYXItdGl0bGUgLmZvbnQtLWJsYWNrIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBjb2xvcjogI2I5YjliOTsgfVxuXG4ubW9iaWxlLW1lbnUsXG4ubW9iaWxlLW9mZi1jYW52YXMtbWVudSB7XG4gIG1hcmdpbi10b3A6IDA7IH1cbiAgLm1vYmlsZS1tZW51IC5tZW51IC5pcy1hY3RpdmUgPiBhLCAubW9iaWxlLW1lbnUgLm1lbnUgLnN1Yi1tZW51IC5pcy1hY3RpdmUgPiAuZm9udC0tYmxhY2ssIC5zdWItbWVudSAubW9iaWxlLW1lbnUgLm1lbnUgLmlzLWFjdGl2ZSA+IC5mb250LS1ibGFjayxcbiAgLm1vYmlsZS1tZW51IC5tZW51IC5jb3B5cmlnaHQgLmlzLWFjdGl2ZSA+IC5mb250LS1ibGFjaywgLmNvcHlyaWdodCAubW9iaWxlLW1lbnUgLm1lbnUgLmlzLWFjdGl2ZSA+IC5mb250LS1ibGFjayxcbiAgLm1vYmlsZS1vZmYtY2FudmFzLW1lbnUgLm1lbnUgLmlzLWFjdGl2ZSA+IGEsXG4gIC5tb2JpbGUtb2ZmLWNhbnZhcy1tZW51IC5tZW51IC5zdWItbWVudSAuaXMtYWN0aXZlID4gLmZvbnQtLWJsYWNrLFxuICAuc3ViLW1lbnUgLm1vYmlsZS1vZmYtY2FudmFzLW1lbnUgLm1lbnUgLmlzLWFjdGl2ZSA+IC5mb250LS1ibGFjayxcbiAgLm1vYmlsZS1vZmYtY2FudmFzLW1lbnUgLm1lbnUgLmNvcHlyaWdodCAuaXMtYWN0aXZlID4gLmZvbnQtLWJsYWNrLFxuICAuY29weXJpZ2h0IC5tb2JpbGUtb2ZmLWNhbnZhcy1tZW51IC5tZW51IC5pcy1hY3RpdmUgPiAuZm9udC0tYmxhY2sge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzNjQ1NGY7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnRvcC1iYXIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAudG9wLWJhciB7XG4gICAgZGlzcGxheTogYmxvY2s7IH0gfVxuXG4udG9wLWJhciAudG9wLWJhci10aXRsZSBhLCAudG9wLWJhciAudG9wLWJhci10aXRsZSAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrLCAuc3ViLW1lbnUgLnRvcC1iYXIgLnRvcC1iYXItdGl0bGUgLmZvbnQtLWJsYWNrLFxuLnRvcC1iYXIgLnRvcC1iYXItdGl0bGUgLmNvcHlyaWdodCAuZm9udC0tYmxhY2ssIC5jb3B5cmlnaHQgLnRvcC1iYXIgLnRvcC1iYXItdGl0bGUgLmZvbnQtLWJsYWNrIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBjb2xvcjogI2I5YjliOTtcbiAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICBsaW5lLWhlaWdodDogMS44OyB9XG5cbi50b3AtYmFyIC5tZW51IHtcbiAgcGFkZGluZy1ib3R0b206IDFweDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLnRvcC1iYXIgLm1lbnUgYSwgLnRvcC1iYXIgLm1lbnUgLnN1Yi1tZW51IC5mb250LS1ibGFjaywgLnN1Yi1tZW51IC50b3AtYmFyIC5tZW51IC5mb250LS1ibGFjayxcbiAgLnRvcC1iYXIgLm1lbnUgLmNvcHlyaWdodCAuZm9udC0tYmxhY2ssIC5jb3B5cmlnaHQgLnRvcC1iYXIgLm1lbnUgLmZvbnQtLWJsYWNrIHtcbiAgICBjb2xvcjogIzBhMGEwYSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItYm90dG9tLWNvbG9yIGVhc2UtaW4gMC41cztcbiAgICBmb250LWZhbWlseTogXCJBdmVuaXIgTFQgVzAxXzY1IE1lZGl1bTE0NzU1MzJcIiwgU2Fucy1zZXJpZjsgfVxuICAgIC50b3AtYmFyIC5tZW51IGE6aG92ZXI6bm90KC5idXR0b24pOm5vdCguYnV0dG9uLS1vdXRsaW5lLW9ubHkpOm5vdCguYnV0dG9uLS10ZXh0LW9ubHkpLCAudG9wLWJhciAubWVudSAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrOmhvdmVyOm5vdCguYnV0dG9uKTpub3QoLmJ1dHRvbi0tb3V0bGluZS1vbmx5KTpub3QoLmJ1dHRvbi0tdGV4dC1vbmx5KSwgLnN1Yi1tZW51IC50b3AtYmFyIC5tZW51IC5mb250LS1ibGFjazpob3Zlcjpub3QoLmJ1dHRvbik6bm90KC5idXR0b24tLW91dGxpbmUtb25seSk6bm90KC5idXR0b24tLXRleHQtb25seSksXG4gICAgLnRvcC1iYXIgLm1lbnUgLmNvcHlyaWdodCAuZm9udC0tYmxhY2s6aG92ZXI6bm90KC5idXR0b24pOm5vdCguYnV0dG9uLS1vdXRsaW5lLW9ubHkpOm5vdCguYnV0dG9uLS10ZXh0LW9ubHkpLCAuY29weXJpZ2h0IC50b3AtYmFyIC5tZW51IC5mb250LS1ibGFjazpob3Zlcjpub3QoLmJ1dHRvbik6bm90KC5idXR0b24tLW91dGxpbmUtb25seSk6bm90KC5idXR0b24tLXRleHQtb25seSkge1xuICAgICAgY29sb3I6ICMwYTBhMGE7IH1cblxuLnRvcC1iYXIgLm1lbnUgLmFjdGl2ZSA+IGEsIC50b3AtYmFyIC5tZW51IC5zdWItbWVudSAuYWN0aXZlID4gLmZvbnQtLWJsYWNrLCAuc3ViLW1lbnUgLnRvcC1iYXIgLm1lbnUgLmFjdGl2ZSA+IC5mb250LS1ibGFjayxcbi50b3AtYmFyIC5tZW51IC5jb3B5cmlnaHQgLmFjdGl2ZSA+IC5mb250LS1ibGFjaywgLmNvcHlyaWdodCAudG9wLWJhciAubWVudSAuYWN0aXZlID4gLmZvbnQtLWJsYWNrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYzsgfVxuXG4udG9wLWJhciAubWVudSA+IGxpOm5vdCgubWVudS10ZXh0KSA+IGEsIC50b3AtYmFyIC5zdWItbWVudSAubWVudSA+IGxpOm5vdCgubWVudS10ZXh0KSA+IC5mb250LS1ibGFjaywgLnN1Yi1tZW51IC50b3AtYmFyIC5tZW51ID4gbGk6bm90KC5tZW51LXRleHQpID4gLmZvbnQtLWJsYWNrLFxuLnRvcC1iYXIgLmNvcHlyaWdodCAubWVudSA+IGxpOm5vdCgubWVudS10ZXh0KSA+IC5mb250LS1ibGFjaywgLmNvcHlyaWdodCAudG9wLWJhciAubWVudSA+IGxpOm5vdCgubWVudS10ZXh0KSA+IC5mb250LS1ibGFjayB7XG4gIHBhZGRpbmc6IDFyZW07IH1cblxuLnRvcC1iYXIgLmRyb3Bkb3duLm1lbnUgLnN1Ym1lbnUge1xuICBib3JkZXI6IDA7IH1cblxuLnRvcC1iYXIgLmRyb3Bkb3duLm1lbnUgLmhhcy1zdWJtZW51LmlzLWRvd24tYXJyb3cgYSwgLnRvcC1iYXIgLmRyb3Bkb3duLm1lbnUgLmhhcy1zdWJtZW51LmlzLWRvd24tYXJyb3cgLnN1Yi1tZW51IC5mb250LS1ibGFjaywgLnN1Yi1tZW51IC50b3AtYmFyIC5kcm9wZG93bi5tZW51IC5oYXMtc3VibWVudS5pcy1kb3duLWFycm93IC5mb250LS1ibGFjayxcbi50b3AtYmFyIC5kcm9wZG93bi5tZW51IC5oYXMtc3VibWVudS5pcy1kb3duLWFycm93IC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrLCAuY29weXJpZ2h0IC50b3AtYmFyIC5kcm9wZG93bi5tZW51IC5oYXMtc3VibWVudS5pcy1kb3duLWFycm93IC5mb250LS1ibGFjayB7XG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07IH1cblxuLnRvcC1iYXIgLmRyb3Bkb3duLm1lbnUgLmhhcy1zdWJtZW51LmlzLWRvd24tYXJyb3cgPiBhOjphZnRlciwgLnRvcC1iYXIgLmRyb3Bkb3duLm1lbnUgLnN1Yi1tZW51IC5oYXMtc3VibWVudS5pcy1kb3duLWFycm93ID4gLmZvbnQtLWJsYWNrOjphZnRlciwgLnN1Yi1tZW51IC50b3AtYmFyIC5kcm9wZG93bi5tZW51IC5oYXMtc3VibWVudS5pcy1kb3duLWFycm93ID4gLmZvbnQtLWJsYWNrOjphZnRlcixcbi50b3AtYmFyIC5kcm9wZG93bi5tZW51IC5jb3B5cmlnaHQgLmhhcy1zdWJtZW51LmlzLWRvd24tYXJyb3cgPiAuZm9udC0tYmxhY2s6OmFmdGVyLCAuY29weXJpZ2h0IC50b3AtYmFyIC5kcm9wZG93bi5tZW51IC5oYXMtc3VibWVudS5pcy1kb3duLWFycm93ID4gLmZvbnQtLWJsYWNrOjphZnRlciB7XG4gIGJvcmRlcjogMDsgfVxuXG4udG9wLWJhciAuZHJvcGRvd24ubWVudTpmaXJzdC1jaGlsZCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIsIC50b3AtYmFyIC5zdWItbWVudSAuZHJvcGRvd24ubWVudTpmaXJzdC1jaGlsZCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gLmZvbnQtLWJsYWNrOjphZnRlciwgLnN1Yi1tZW51IC50b3AtYmFyIC5kcm9wZG93bi5tZW51OmZpcnN0LWNoaWxkID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiAuZm9udC0tYmxhY2s6OmFmdGVyLFxuLnRvcC1iYXIgLmNvcHlyaWdodCAuZHJvcGRvd24ubWVudTpmaXJzdC1jaGlsZCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gLmZvbnQtLWJsYWNrOjphZnRlciwgLmNvcHlyaWdodCAudG9wLWJhciAuZHJvcGRvd24ubWVudTpmaXJzdC1jaGlsZCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gLmZvbnQtLWJsYWNrOjphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5zaXRlLW5hdmlnYXRpb24ge1xuICAgIHBhZGRpbmc6IDA7IH0gfVxuXG4jbWVudS1tYWluLW1lbnUge1xuICBwYWRkaW5nLXJpZ2h0OiA1MHB4OyB9XG5cbiNtZW51LW1haW4tbWVudS0xOmJlZm9yZSwgI21lbnUtbWFpbi1tZW51LTE6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICB3aWR0aDogMTAwcHg7IH1cblxuLnBvc3QtbmF2aWdhdGlvbjo6YmVmb3JlLCAucG9zdC1uYXZpZ2F0aW9uOjphZnRlciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjb250ZW50OiAnICc7XG4gIGZsZXgtYmFzaXM6IDA7XG4gIG9yZGVyOiAxOyB9XG5cbi5wb3N0LW5hdmlnYXRpb246OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7IH1cblxuLm5hdi1wcmV2aW91cyB7XG4gIGZsb2F0OiBsZWZ0OyB9XG5cbi5uYXYtbmV4dCB7XG4gIGZsb2F0OiByaWdodDsgfVxuXG4uc2l0ZS1sb2dvIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDEwcHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuc2l0ZS1sb2dvIHtcbiAgICAgIG1hcmdpbi10b3A6IDE1cHg7IH0gfVxuICAuc2l0ZS1sb2dvIGltZyB7XG4gICAgbWF4LXdpZHRoOiAyMDBweDsgfVxuXG4uc2l0ZS1uYXZpZ2F0aW9uIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5zaXRlLW5hdmlnYXRpb24ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAuc2l0ZS1uYXZpZ2F0aW9uIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgcGFkZGluZy10b3A6IDE1cHg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7IH0gfVxuICAuc2l0ZS1uYXZpZ2F0aW9uIC50b3AtYmFyLWxlZnQsXG4gIC5zaXRlLW5hdmlnYXRpb24gLnRvcC1iYXItY2VudGVyLFxuICAuc2l0ZS1uYXZpZ2F0aW9uIC50b3AtYmFyLXJpZ2h0IHtcbiAgICBmbGV4OiAwIDAgYXV0bzsgfVxuXG4udG9wLWJhci1yaWdodCAuYnV0dG9uLS1vdXRsaW5lLW9ubHksIC50b3AtYmFyLXJpZ2h0ICNuZXdzbGV0dGVyLXNpZ251cCAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAjbmV3c2xldHRlci1zaWdudXAgLnRvcC1iYXItcmlnaHQgI21jLWVtYmVkZGVkLXN1YnNjcmliZSxcbi50b3AtYmFyLXJpZ2h0IC5idXR0b24tLXRleHQtb25seSB7XG4gIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xuICBwYWRkaW5nOiAxMHB4IDEuMjVyZW07XG4gIG1hcmdpbi1yaWdodDogMTVweDsgfVxuXG4udG9wLWJhci1jZW50ZXIgLmRyb3Bkb3duLm1lbnUgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51LmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gIHotaW5kZXg6IDk5OTtcbiAgYmFja2dyb3VuZDogI0ZGOUUzMTtcbiAgd2lkdGg6IDI1MHB4OyB9XG4gIC50b3AtYmFyLWNlbnRlciAuZHJvcGRvd24ubWVudSA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUuanMtZHJvcGRvd24tYWN0aXZlOmFmdGVyLCAudG9wLWJhci1jZW50ZXIgLmRyb3Bkb3duLm1lbnUgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51LmpzLWRyb3Bkb3duLWFjdGl2ZTpiZWZvcmUge1xuICAgIGJvdHRvbTogMTAwJTtcbiAgICBsZWZ0OiAzMHB4O1xuICAgIGJvcmRlcjogc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgY29udGVudDogXCIgXCI7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHdpZHRoOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAudG9wLWJhci1jZW50ZXIgLmRyb3Bkb3duLm1lbnUgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51LmpzLWRyb3Bkb3duLWFjdGl2ZTphZnRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMTU4LCA0OSwgMCk7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI0ZGOUUzMTtcbiAgICBib3JkZXItd2lkdGg6IDEwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IC0xMHB4OyB9XG4gIC50b3AtYmFyLWNlbnRlciAuZHJvcGRvd24ubWVudSA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUuanMtZHJvcGRvd24tYWN0aXZlIGEsIC50b3AtYmFyLWNlbnRlciAuZHJvcGRvd24ubWVudSA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUuanMtZHJvcGRvd24tYWN0aXZlIC5zdWItbWVudSAuZm9udC0tYmxhY2ssIC5zdWItbWVudSAudG9wLWJhci1jZW50ZXIgLmRyb3Bkb3duLm1lbnUgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51LmpzLWRyb3Bkb3duLWFjdGl2ZSAuZm9udC0tYmxhY2ssXG4gIC50b3AtYmFyLWNlbnRlciAuZHJvcGRvd24ubWVudSA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUuanMtZHJvcGRvd24tYWN0aXZlIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrLCAuY29weXJpZ2h0IC50b3AtYmFyLWNlbnRlciAuZHJvcGRvd24ubWVudSA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUuanMtZHJvcGRvd24tYWN0aXZlIC5mb250LS1ibGFjayB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLnRvcC1iYXItY2VudGVyIC5kcm9wZG93bi5tZW51ID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudS5qcy1kcm9wZG93bi1hY3RpdmUgYTpob3ZlciwgLnRvcC1iYXItY2VudGVyIC5kcm9wZG93bi5tZW51ID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudS5qcy1kcm9wZG93bi1hY3RpdmUgLnN1Yi1tZW51IC5mb250LS1ibGFjazpob3ZlciwgLnN1Yi1tZW51IC50b3AtYmFyLWNlbnRlciAuZHJvcGRvd24ubWVudSA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUuanMtZHJvcGRvd24tYWN0aXZlIC5mb250LS1ibGFjazpob3ZlcixcbiAgICAudG9wLWJhci1jZW50ZXIgLmRyb3Bkb3duLm1lbnUgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51LmpzLWRyb3Bkb3duLWFjdGl2ZSAuY29weXJpZ2h0IC5mb250LS1ibGFjazpob3ZlciwgLmNvcHlyaWdodCAudG9wLWJhci1jZW50ZXIgLmRyb3Bkb3duLm1lbnUgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51LmpzLWRyb3Bkb3duLWFjdGl2ZSAuZm9udC0tYmxhY2s6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTQsIDI1NCwgMjU0LCAwLjEpOyB9XG5cbi5zaXRlLWhlYWRlciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogMTAwOyB9XG4gIC5hZG1pbi1iYXIgLnNpdGUtaGVhZGVyIHtcbiAgICB0b3A6IDQ2cHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuc2l0ZS1oZWFkZXIubmF2LWFjdGl2ZSB7XG4gICAgICBib3gtc2hhZG93OiAwcHggMnB4IDIuODVweCAwLjE1cHggcmdiYSgwLCAwLCAwLCAwLjA1KTsgfVxuICAgIC5hZG1pbi1iYXIgLnNpdGUtaGVhZGVyIHtcbiAgICAgIHRvcDogMzJweDsgfSB9XG4gIC5zaXRlLWhlYWRlciAuaGFtYnVyZ2VyIHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyNTBweCkge1xuICAuc2l0ZS1uYXZpZ2F0aW9uIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAuc2l0ZS1uYXZpZ2F0aW9uIC50b3AtYmFyLWxlZnQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDMwcHg7IH1cbiAgICAuc2l0ZS1uYXZpZ2F0aW9uIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMzBweDsgfSB9XG5cbi5vZmYtY2FudmFzLXdyYXBwZXIge1xuICBtYXJnaW4tdG9wOiA3MHB4OyB9XG5cbi5tb2JpbGUtbWVudSAubWVudSAuaXMtYWN0aXZlID4gYSwgLm1vYmlsZS1tZW51IC5tZW51IC5zdWItbWVudSAuaXMtYWN0aXZlID4gLmZvbnQtLWJsYWNrLCAuc3ViLW1lbnUgLm1vYmlsZS1tZW51IC5tZW51IC5pcy1hY3RpdmUgPiAuZm9udC0tYmxhY2ssXG4ubW9iaWxlLW1lbnUgLm1lbnUgLmNvcHlyaWdodCAuaXMtYWN0aXZlID4gLmZvbnQtLWJsYWNrLCAuY29weXJpZ2h0IC5tb2JpbGUtbWVudSAubWVudSAuaXMtYWN0aXZlID4gLmZvbnQtLWJsYWNrLFxuLm1vYmlsZS1vZmYtY2FudmFzLW1lbnUgLm1lbnUgLmlzLWFjdGl2ZSA+IGEsXG4ubW9iaWxlLW9mZi1jYW52YXMtbWVudSAubWVudSAuc3ViLW1lbnUgLmlzLWFjdGl2ZSA+IC5mb250LS1ibGFjayxcbi5zdWItbWVudSAubW9iaWxlLW9mZi1jYW52YXMtbWVudSAubWVudSAuaXMtYWN0aXZlID4gLmZvbnQtLWJsYWNrLFxuLm1vYmlsZS1vZmYtY2FudmFzLW1lbnUgLm1lbnUgLmNvcHlyaWdodCAuaXMtYWN0aXZlID4gLmZvbnQtLWJsYWNrLFxuLmNvcHlyaWdodCAubW9iaWxlLW9mZi1jYW52YXMtbWVudSAubWVudSAuaXMtYWN0aXZlID4gLmZvbnQtLWJsYWNrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgLm1vYmlsZS1tZW51IC5tZW51IC5pcy1hY3RpdmUgPiBhOmFmdGVyLCAubW9iaWxlLW1lbnUgLm1lbnUgLnN1Yi1tZW51IC5pcy1hY3RpdmUgPiAuZm9udC0tYmxhY2s6YWZ0ZXIsIC5zdWItbWVudSAubW9iaWxlLW1lbnUgLm1lbnUgLmlzLWFjdGl2ZSA+IC5mb250LS1ibGFjazphZnRlcixcbiAgLm1vYmlsZS1tZW51IC5tZW51IC5jb3B5cmlnaHQgLmlzLWFjdGl2ZSA+IC5mb250LS1ibGFjazphZnRlciwgLmNvcHlyaWdodCAubW9iaWxlLW1lbnUgLm1lbnUgLmlzLWFjdGl2ZSA+IC5mb250LS1ibGFjazphZnRlcixcbiAgLm1vYmlsZS1vZmYtY2FudmFzLW1lbnUgLm1lbnUgLmlzLWFjdGl2ZSA+IGE6YWZ0ZXIsXG4gIC5tb2JpbGUtb2ZmLWNhbnZhcy1tZW51IC5tZW51IC5zdWItbWVudSAuaXMtYWN0aXZlID4gLmZvbnQtLWJsYWNrOmFmdGVyLFxuICAuc3ViLW1lbnUgLm1vYmlsZS1vZmYtY2FudmFzLW1lbnUgLm1lbnUgLmlzLWFjdGl2ZSA+IC5mb250LS1ibGFjazphZnRlcixcbiAgLm1vYmlsZS1vZmYtY2FudmFzLW1lbnUgLm1lbnUgLmNvcHlyaWdodCAuaXMtYWN0aXZlID4gLmZvbnQtLWJsYWNrOmFmdGVyLFxuICAuY29weXJpZ2h0IC5tb2JpbGUtb2ZmLWNhbnZhcy1tZW51IC5tZW51IC5pcy1hY3RpdmUgPiAuZm9udC0tYmxhY2s6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBoZWlnaHQ6IDNweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGEwYTBhO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi10b3A6IDEwcHg7IH1cblxuI21lbnUtaXRlbS03MSAuZmlyc3Qtc3ViIHtcbiAgY29sdW1uLWNvdW50OiAyO1xuICB3aWR0aDogNTAwcHg7IH1cblxuLnNob3ctc2VhcmNoIGEsIC5zaG93LXNlYXJjaCAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrLCAuc3ViLW1lbnUgLnNob3ctc2VhcmNoIC5mb250LS1ibGFjayxcbi5zaG93LXNlYXJjaCAuY29weXJpZ2h0IC5mb250LS1ibGFjaywgLmNvcHlyaWdodCAuc2hvdy1zZWFyY2ggLmZvbnQtLWJsYWNrIHtcbiAgZm9udC1zaXplOiAwICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5zaG93LXNlYXJjaCBhOmFmdGVyLCAuc2hvdy1zZWFyY2ggLnN1Yi1tZW51IC5mb250LS1ibGFjazphZnRlciwgLnN1Yi1tZW51IC5zaG93LXNlYXJjaCAuZm9udC0tYmxhY2s6YWZ0ZXIsXG4gIC5zaG93LXNlYXJjaCAuY29weXJpZ2h0IC5mb250LS1ibGFjazphZnRlciwgLmNvcHlyaWdodCAuc2hvdy1zZWFyY2ggLmZvbnQtLWJsYWNrOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGhlaWdodDogMjBweDtcbiAgICB3aWR0aDogMjBweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCJodHRwOi8vbGVvbmFyZC1qb2VsLnMzLWFwLXNvdXRoZWFzdC0yLmFtYXpvbmF3cy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTgvMTEvc2VhcmNoLnBuZ1wiKSBuby1yZXBlYXQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgfVxuXG5pbnB1dC5zZWFyY2gtZmllbGQge1xuICBkaXNwbGF5OiBub25lO1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItYm90dG9tOiAzcHggc29saWQgIzBhMGEwYTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHdpZHRoOiA5MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB6LWluZGV4OiA5OTk7XG4gIHRvcDogMjUlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgaW5wdXQuc2VhcmNoLWZpZWxkIHtcbiAgICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgd2lkdGg6IDUwJTsgfSB9XG4gIGlucHV0LnNlYXJjaC1maWVsZDo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjMGEwYTBhO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4uc2VhcmNoX19jb250YWluZXIge1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggKyA3MHB4KTtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtNzBweDsgfVxuICAuc2VhcmNoX19jb250YWluZXIuYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5zZWFyY2hfX2NvbnRhaW5lci5hY3RpdmU6YmVmb3JlIHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDE1OCwgNDksIDAuOCk7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHotaW5kZXg6IDk5ODsgfVxuICAuc2VhcmNoX19jb250YWluZXIgLnNlYXJjaC1jbG9zZS1idXR0b24ge1xuICAgIHRvcDogMTUwcHg7XG4gICAgcmlnaHQ6IDJyZW07XG4gICAgei1pbmRleDogOTk5O1xuICAgIGNvbG9yOiAjMGEwYTBhO1xuICAgIGZvbnQtc2l6ZTogMnJlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuc2VhcmNoX19jb250YWluZXIgLnNlYXJjaC1jbG9zZS1idXR0b24ge1xuICAgICAgICBmb250LXNpemU6IDNyZW07XG4gICAgICAgIHRvcDogMTc1cHg7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTExNHB4KSB7XG4gIC5zaXRlLW5hdmlnYXRpb24gLnRvcC1iYXItbGVmdCB7XG4gICAgbWFyZ2luLWxlZnQ6IDE1cHg7IH1cbiAgICAuc2l0ZS1uYXZpZ2F0aW9uIC50b3AtYmFyLWxlZnQgLnNpdGUtbG9nbyB7XG4gICAgICBtYXJnaW4tdG9wOiAxNXB4OyB9XG4gIC50b3AtYmFyIC5tZW51ID4gbGk6bm90KC5tZW51LXRleHQpID4gYSwgLnRvcC1iYXIgLnN1Yi1tZW51IC5tZW51ID4gbGk6bm90KC5tZW51LXRleHQpID4gLmZvbnQtLWJsYWNrLCAuc3ViLW1lbnUgLnRvcC1iYXIgLm1lbnUgPiBsaTpub3QoLm1lbnUtdGV4dCkgPiAuZm9udC0tYmxhY2ssXG4gIC50b3AtYmFyIC5jb3B5cmlnaHQgLm1lbnUgPiBsaTpub3QoLm1lbnUtdGV4dCkgPiAuZm9udC0tYmxhY2ssIC5jb3B5cmlnaHQgLnRvcC1iYXIgLm1lbnUgPiBsaTpub3QoLm1lbnUtdGV4dCkgPiAuZm9udC0tYmxhY2sge1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfSB9XG5cbi5tYWluLWNvbnRhaW5lciB7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICBtYXgtd2lkdGg6IDc1cmVtO1xuICBtYXJnaW46IDAgYXV0bzsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5tYWluLWNvbnRhaW5lciB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG5cbi5tYWluLWdyaWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBtYXJnaW4tdG9wOiAxcmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLm1haW4tZ3JpZCB7XG4gICAgICBtYXJnaW4tdG9wOiAzcmVtOyB9IH1cbiAgLm1haW4tZ3JpZC5zaWRlYmFyLWxlZnQgLm1haW4tY29udGVudCB7XG4gICAgb3JkZXI6IDE7IH1cbiAgLm1haW4tZ3JpZC5zaWRlYmFyLWxlZnQgLnNpZGViYXIge1xuICAgIG9yZGVyOiAyOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLm1haW4tZ3JpZC5zaWRlYmFyLWxlZnQgLm1haW4tY29udGVudCB7XG4gICAgICBvcmRlcjogMjsgfVxuICAgIC5tYWluLWdyaWQuc2lkZWJhci1sZWZ0IC5zaWRlYmFyIHtcbiAgICAgIG9yZGVyOiAxOyB9IH1cbiAgLm1haW4tZ3JpZCAubWFpbi1jb250ZW50LWZ1bGwtd2lkdGgge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfVxuICAubWFpbi1ncmlkIC5tYWluLWNvbnRlbnQge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjI1cmVtKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjYyNXJlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAubWFpbi1ncmlkIC5tYWluLWNvbnRlbnQge1xuICAgICAgICB3aWR0aDogY2FsYyg2Ni42NjY2NyUgLSAxLjg3NXJlbSk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgLm1haW4tZ3JpZCAuc2lkZWJhciB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuMjVyZW0pO1xuICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDAuNjI1cmVtOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5tYWluLWdyaWQgLnNpZGViYXIge1xuICAgICAgICB3aWR0aDogY2FsYygzMy4zMzMzMyUgLSAxLjg3NXJlbSk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtOyB9IH1cblxuLmZvb3Rlci1jb250YWluZXIge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiAxMDYuMjVyZW07XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nLWJvdHRvbTogNXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5mb290ZXItY29udGFpbmVyIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cblxuLnJldmVhbC1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDE1OCwgNDksIDAuOCk7IH1cblxuI25hdl9tZW51LTMge1xuICBwYWRkaW5nLXRvcDogMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAjbmF2X21lbnUtMyB7XG4gICAgICBwYWRkaW5nOiAwOyB9IH1cblxuLmhvbWUgLm5ld3NsZXR0ZXItc2lnbnVwIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uaG9tZSAubmV3c2xldHRlci1zaWdudXAuc2hvdyB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5zZWN0aW9uLS1saWdodC1ncmV5ICsgLm5ld3NsZXR0ZXItc2lnbnVwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmNWY1ZjU7IH1cbiAgLnNlY3Rpb24tLWxpZ2h0LWdyZXkgKyAubmV3c2xldHRlci1zaWdudXAgaW5wdXQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7IH1cblxuLm5ld3NsZXR0ZXItc2lnbnVwIHtcbiAgcGFkZGluZzogMi41cmVtIDA7XG4gIG1hcmdpbi1ib3R0b206IDVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7IH1cbiAgLm5ld3NsZXR0ZXItc2lnbnVwIC5uZXdzbGV0dGVyLXNpZ251cF9fY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgICBtYXgtd2lkdGg6IDEwNi4yNXJlbTtcbiAgICBtYXJnaW46IDAgYXV0bzsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAubmV3c2xldHRlci1zaWdudXAgLm5ld3NsZXR0ZXItc2lnbnVwX19jb250YWluZXIge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgIC5uZXdzbGV0dGVyLXNpZ251cCAubmV3c2xldHRlci1zaWdudXBfX2NvbnRhaW5lciB7XG4gICAgICAgIHBhZGRpbmc6IDA7IH0gfVxuICAgIC5uZXdzbGV0dGVyLXNpZ251cCAubmV3c2xldHRlci1zaWdudXBfX2NvbnRhaW5lciAubmV3c2xldHRlci1zaWdudXBfX3RpdGxlIHAge1xuICAgICAgZm9udC1mYW1pbHk6IFwiQXZlbmlyIExUIFcwMV82NSBNZWRpdW0xNDc1NTMyXCIsIFNhbnMtc2VyaWY7XG4gICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAubmV3c2xldHRlci1zaWdudXAgLm5ld3NsZXR0ZXItc2lnbnVwX19jb250YWluZXIgLmJ1dHRvbiwgLm5ld3NsZXR0ZXItc2lnbnVwIC5uZXdzbGV0dGVyLXNpZ251cF9fY29udGFpbmVyIC5idXR0b24tLW91dGxpbmUtb25seSwgLm5ld3NsZXR0ZXItc2lnbnVwIC5uZXdzbGV0dGVyLXNpZ251cF9fY29udGFpbmVyICNuZXdzbGV0dGVyLXNpZ251cCAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAjbmV3c2xldHRlci1zaWdudXAgLm5ld3NsZXR0ZXItc2lnbnVwIC5uZXdzbGV0dGVyLXNpZ251cF9fY29udGFpbmVyICNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsIC5uZXdzbGV0dGVyLXNpZ251cCAubmV3c2xldHRlci1zaWdudXBfX2NvbnRhaW5lciAuYnV0dG9uLS10ZXh0LW9ubHkge1xuICAgICAgcGFkZGluZzogMTBweDsgfVxuICAgICAgLm5ld3NsZXR0ZXItc2lnbnVwIC5uZXdzbGV0dGVyLXNpZ251cF9fY29udGFpbmVyIC5idXR0b24gcCwgLm5ld3NsZXR0ZXItc2lnbnVwIC5uZXdzbGV0dGVyLXNpZ251cF9fY29udGFpbmVyIC5idXR0b24tLW91dGxpbmUtb25seSBwLCAubmV3c2xldHRlci1zaWdudXAgLm5ld3NsZXR0ZXItc2lnbnVwX19jb250YWluZXIgI25ld3NsZXR0ZXItc2lnbnVwICNtYy1lbWJlZGRlZC1zdWJzY3JpYmUgcCwgI25ld3NsZXR0ZXItc2lnbnVwIC5uZXdzbGV0dGVyLXNpZ251cCAubmV3c2xldHRlci1zaWdudXBfX2NvbnRhaW5lciAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlIHAsIC5uZXdzbGV0dGVyLXNpZ251cCAubmV3c2xldHRlci1zaWdudXBfX2NvbnRhaW5lciAuYnV0dG9uLS10ZXh0LW9ubHkgcCB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIkF2ZW5pciBMVCBXMDFfNjUgTWVkaXVtMTQ3NTUzMlwiLCBTYW5zLXNlcmlmO1xuICAgICAgICBmb250LXNpemU6IDEuMDVyZW07XG4gICAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgICBtYXJnaW46IDA7IH1cbiAgICAubmV3c2xldHRlci1zaWdudXAgLm5ld3NsZXR0ZXItc2lnbnVwX19jb250YWluZXIgLm5ld3NsZXR0ZXItc2lnbnVwX190aXRsZSxcbiAgICAubmV3c2xldHRlci1zaWdudXAgLm5ld3NsZXR0ZXItc2lnbnVwX19jb250YWluZXIgLmVtYWlsLFxuICAgIC5uZXdzbGV0dGVyLXNpZ251cCAubmV3c2xldHRlci1zaWdudXBfX2NvbnRhaW5lciAubmFtZSwgLm5ld3NsZXR0ZXItc2lnbnVwIC5uZXdzbGV0dGVyLXNpZ251cF9fY29udGFpbmVyIC5idXR0b24sIC5uZXdzbGV0dGVyLXNpZ251cCAubmV3c2xldHRlci1zaWdudXBfX2NvbnRhaW5lciAuYnV0dG9uLS1vdXRsaW5lLW9ubHksIC5uZXdzbGV0dGVyLXNpZ251cCAubmV3c2xldHRlci1zaWdudXBfX2NvbnRhaW5lciAjbmV3c2xldHRlci1zaWdudXAgI21jLWVtYmVkZGVkLXN1YnNjcmliZSwgI25ld3NsZXR0ZXItc2lnbnVwIC5uZXdzbGV0dGVyLXNpZ251cCAubmV3c2xldHRlci1zaWdudXBfX2NvbnRhaW5lciAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAubmV3c2xldHRlci1zaWdudXAgLm5ld3NsZXR0ZXItc2lnbnVwX19jb250YWluZXIgLmJ1dHRvbi0tdGV4dC1vbmx5IHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgICBtYXJnaW4tdG9wOiA1cHg7IH1cbiAgICAgIC5uZXdzbGV0dGVyLXNpZ251cCAubmV3c2xldHRlci1zaWdudXBfX2NvbnRhaW5lciAubmV3c2xldHRlci1zaWdudXBfX3RpdGxlOjpwbGFjZWhvbGRlcixcbiAgICAgIC5uZXdzbGV0dGVyLXNpZ251cCAubmV3c2xldHRlci1zaWdudXBfX2NvbnRhaW5lciAuZW1haWw6OnBsYWNlaG9sZGVyLFxuICAgICAgLm5ld3NsZXR0ZXItc2lnbnVwIC5uZXdzbGV0dGVyLXNpZ251cF9fY29udGFpbmVyIC5uYW1lOjpwbGFjZWhvbGRlcixcbiAgICAgIC5uZXdzbGV0dGVyLXNpZ251cCAubmV3c2xldHRlci1zaWdudXBfX2NvbnRhaW5lciAuYnV0dG9uOjpwbGFjZWhvbGRlcixcbiAgICAgIC5uZXdzbGV0dGVyLXNpZ251cCAubmV3c2xldHRlci1zaWdudXBfX2NvbnRhaW5lciAuYnV0dG9uLS1vdXRsaW5lLW9ubHk6OnBsYWNlaG9sZGVyLFxuICAgICAgLm5ld3NsZXR0ZXItc2lnbnVwIC5uZXdzbGV0dGVyLXNpZ251cF9fY29udGFpbmVyICNuZXdzbGV0dGVyLXNpZ251cCAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlOjpwbGFjZWhvbGRlcixcbiAgICAgICNuZXdzbGV0dGVyLXNpZ251cCAubmV3c2xldHRlci1zaWdudXAgLm5ld3NsZXR0ZXItc2lnbnVwX19jb250YWluZXIgI21jLWVtYmVkZGVkLXN1YnNjcmliZTo6cGxhY2Vob2xkZXIsXG4gICAgICAubmV3c2xldHRlci1zaWdudXAgLm5ld3NsZXR0ZXItc2lnbnVwX19jb250YWluZXIgLmJ1dHRvbi0tdGV4dC1vbmx5OjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiAjODA4MDgwOyB9XG4gICAgLm5ld3NsZXR0ZXItc2lnbnVwIC5uZXdzbGV0dGVyLXNpZ251cF9fY29udGFpbmVyIC5lbWFpbCxcbiAgICAubmV3c2xldHRlci1zaWdudXAgLm5ld3NsZXR0ZXItc2lnbnVwX19jb250YWluZXIgLm5hbWUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBwYWRkaW5nOiAxMHB4OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5uZXdzbGV0dGVyLXNpZ251cCAubmV3c2xldHRlci1zaWdudXBfX2NvbnRhaW5lciAubmV3c2xldHRlci1zaWdudXBfX3RpdGxlIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTYuNjY2NjclIC0gMS44NzVyZW0pO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7IH1cbiAgICAgIC5uZXdzbGV0dGVyLXNpZ251cCAubmV3c2xldHRlci1zaWdudXBfX2NvbnRhaW5lciAuZW1haWwsXG4gICAgICAubmV3c2xldHRlci1zaWdudXAgLm5ld3NsZXR0ZXItc2lnbnVwX19jb250YWluZXIgLm5hbWUge1xuICAgICAgICB3aWR0aDogY2FsYyg0MS42NjY2NyUgLSAxLjg3NXJlbSk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW46IDAgNXB4O1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDAgMTBweDsgfVxuICAgICAgLm5ld3NsZXR0ZXItc2lnbnVwIC5uZXdzbGV0dGVyLXNpZ251cF9fY29udGFpbmVyIC5idXR0b24sIC5uZXdzbGV0dGVyLXNpZ251cCAubmV3c2xldHRlci1zaWdudXBfX2NvbnRhaW5lciAuYnV0dG9uLS1vdXRsaW5lLW9ubHksIC5uZXdzbGV0dGVyLXNpZ251cCAubmV3c2xldHRlci1zaWdudXBfX2NvbnRhaW5lciAjbmV3c2xldHRlci1zaWdudXAgI21jLWVtYmVkZGVkLXN1YnNjcmliZSwgI25ld3NsZXR0ZXItc2lnbnVwIC5uZXdzbGV0dGVyLXNpZ251cCAubmV3c2xldHRlci1zaWdudXBfX2NvbnRhaW5lciAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAubmV3c2xldHRlci1zaWdudXAgLm5ld3NsZXR0ZXItc2lnbnVwX19jb250YWluZXIgLmJ1dHRvbi0tdGV4dC1vbmx5IHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTYuNjY2NjclIC0gMS44NzVyZW0pO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICAgICAgbWFyZ2luOiAwOyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLm5ld3NsZXR0ZXItc2lnbnVwIC5uZXdzbGV0dGVyLXNpZ251cF9fY29udGFpbmVyIC5uZXdzbGV0dGVyLXNpZ251cF9fdGl0bGUge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMS44NzVyZW0pO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfVxuICAgICAgLm5ld3NsZXR0ZXItc2lnbnVwIC5uZXdzbGV0dGVyLXNpZ251cF9fY29udGFpbmVyIC5lbWFpbCxcbiAgICAgIC5uZXdzbGV0dGVyLXNpZ251cCAubmV3c2xldHRlci1zaWdudXBfX2NvbnRhaW5lciAubmFtZSB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDI1JSAtIDEuODc1cmVtKTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuXG4uZm9vdGVyLWdyaWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBwYWRkaW5nOiAxLjg3NXJlbSAwOyB9XG4gIC5mb290ZXItZ3JpZCBzZWN0aW9uIHtcbiAgICBtYXJnaW4tdG9wOiAwOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5mb290ZXItZ3JpZCBzZWN0aW9uIHtcbiAgICAgICAgZmxleDogMSAxIDBweDtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgLmZvb3Rlci1ncmlkIC5sb2dvIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMi41cmVtOyB9XG4gICAgLmZvb3Rlci1ncmlkIC5sb2dvIGltZyB7XG4gICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuZm9vdGVyLWdyaWQgLmxvZ28ge1xuICAgICAgICB3aWR0aDogY2FsYygzMy4zMzMzMyUgLSAxLjg3NXJlbSk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogY2FsYygzMy4zMzMzMyUgKyAwLjYyNXJlbSk7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuZm9vdGVyLWdyaWQgLmxvZ28ge1xuICAgICAgICB3aWR0aDogY2FsYygxNi42NjY2NyUgLSAxLjg3NXJlbSk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgLmZvb3Rlci1ncmlkICNtZW51LWZvb3RlciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuZm9vdGVyLWdyaWQgI21lbnUtZm9vdGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDsgfSB9XG4gIC5mb290ZXItZ3JpZCAuY29weXJpZ2h0IHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07IH1cbiAgICAuZm9vdGVyLWdyaWQgLmNvcHlyaWdodCBhLFxuICAgIC5mb290ZXItZ3JpZCAuY29weXJpZ2h0IC5mb250LS1ibGFjayB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgICAgLmZvb3Rlci1ncmlkIC5jb3B5cmlnaHQgYS5oaWRlLWZvci1tZWRpdW0tdXAsXG4gICAgICAgIC5mb290ZXItZ3JpZCAuY29weXJpZ2h0IC5oaWRlLWZvci1tZWRpdW0tdXAuZm9udC0tYmxhY2sge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuZm9vdGVyLWdyaWQgLmNvcHlyaWdodCB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDMzLjMzMzMzJSAtIDEuODc1cmVtKTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDMzLjMzMzMzJSArIDAuNjI1cmVtKTsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5mb290ZXItZ3JpZCAuY29weXJpZ2h0IHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTYuNjY2NjclIC0gMS44NzVyZW0pO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gIC5mb290ZXItZ3JpZCB1bCB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIC5mb290ZXItZ3JpZCAuaGVhZGVyLm5vLWxpbmsge1xuICAgIHdpZHRoOiBjYWxjKDI1JSAtIDEuODc1cmVtKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9XG4gICAgLmZvb3Rlci1ncmlkIC5oZWFkZXIubm8tbGluayA+IGEsIC5mb290ZXItZ3JpZCAuc3ViLW1lbnUgLmhlYWRlci5uby1saW5rID4gLmZvbnQtLWJsYWNrLCAuc3ViLW1lbnUgLmZvb3Rlci1ncmlkIC5oZWFkZXIubm8tbGluayA+IC5mb250LS1ibGFjayxcbiAgICAuZm9vdGVyLWdyaWQgLmNvcHlyaWdodCAuaGVhZGVyLm5vLWxpbmsgPiAuZm9udC0tYmxhY2ssIC5jb3B5cmlnaHQgLmZvb3Rlci1ncmlkIC5oZWFkZXIubm8tbGluayA+IC5mb250LS1ibGFjayB7XG4gICAgICBjb2xvcjogIzBhMGEwYTtcbiAgICAgIHBhZGRpbmctdG9wOiAwOyB9XG4gICAgICAuZm9vdGVyLWdyaWQgLmhlYWRlci5uby1saW5rID4gYTpob3ZlciwgLmZvb3Rlci1ncmlkIC5zdWItbWVudSAuaGVhZGVyLm5vLWxpbmsgPiAuZm9udC0tYmxhY2s6aG92ZXIsIC5zdWItbWVudSAuZm9vdGVyLWdyaWQgLmhlYWRlci5uby1saW5rID4gLmZvbnQtLWJsYWNrOmhvdmVyLFxuICAgICAgLmZvb3Rlci1ncmlkIC5jb3B5cmlnaHQgLmhlYWRlci5uby1saW5rID4gLmZvbnQtLWJsYWNrOmhvdmVyLCAuY29weXJpZ2h0IC5mb290ZXItZ3JpZCAuaGVhZGVyLm5vLWxpbmsgPiAuZm9udC0tYmxhY2s6aG92ZXIge1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cbiAgLmZvb3Rlci1ncmlkICNtZW51LWZvb3RlciAubWVudS1pdGVtLWhhcy1jaGlsZHJlbiA+IGEsIC5mb290ZXItZ3JpZCAjbWVudS1mb290ZXIgLnN1Yi1tZW51IC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gLmZvbnQtLWJsYWNrLCAuc3ViLW1lbnUgLmZvb3Rlci1ncmlkICNtZW51LWZvb3RlciAubWVudS1pdGVtLWhhcy1jaGlsZHJlbiA+IC5mb250LS1ibGFjayxcbiAgLmZvb3Rlci1ncmlkICNtZW51LWZvb3RlciAuY29weXJpZ2h0IC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gLmZvbnQtLWJsYWNrLCAuY29weXJpZ2h0IC5mb290ZXItZ3JpZCAjbWVudS1mb290ZXIgLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiAuZm9udC0tYmxhY2sge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG5cbi5mb250LS1saWdodCB7XG4gIGNvbG9yOiAjQUFBQUFBO1xuICBsaW5lLWhlaWdodDogMS4yOyB9XG5cbi5zdWItbWVudSBhLCAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrLFxuLmNvcHlyaWdodCBhLFxuLmNvcHlyaWdodCAuZm9udC0tYmxhY2sge1xuICBwYWRkaW5nLXRvcDogNXB4O1xuICBwYWRkaW5nLWJvdHRvbTogNXB4OyB9XG4gIC5zdWItbWVudSBhOmhvdmVyLCAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrOmhvdmVyLFxuICAuY29weXJpZ2h0IGE6aG92ZXIsXG4gIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrOmhvdmVyIHtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuXG4uc3ViLW1lbnUgLmZvbnQtLWJsYWNrLFxuLmNvcHlyaWdodCAuZm9udC0tYmxhY2sge1xuICBjb2xvcjogIzBhMGEwYTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZy10b3A6IDA7IH1cblxuLmNvcHlyaWdodC13b3JkaW5nIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDIwcHg7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbmJvZHkjdGlueW1jZSB7XG4gIGhlaWdodDogYXV0bztcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgcGFkZGluZzogMS4yNXJlbSAhaW1wb3J0YW50OyB9XG5cbi5zaXRlcy1idXR0b24ge1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBib3gtc2hhZG93OiAwIC0ycHggMCByZ2JhKDAsIDAsIDAsIDAuMikgaW5zZXQ7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyOiBub25lOyB9XG5cbi5idXR0b24sIC5idXR0b24tLW91dGxpbmUtb25seSwgI25ld3NsZXR0ZXItc2lnbnVwICNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsIC5idXR0b24tLXRleHQtb25seSB7XG4gIHBhZGRpbmc6IDEuMjVyZW07XG4gIGZvbnQtZmFtaWx5OiBcIkF2ZW5pciBMVCBXMDFfODUgSGVhdnkxNDc1NTQ0XCIsIFNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMC44cmVtOyB9XG4gIC5idXR0b24tLW91dGxpbmUtb25seSwgI25ld3NsZXR0ZXItc2lnbnVwICNtYy1lbWJlZGRlZC1zdWJzY3JpYmUge1xuICAgIGJvcmRlcjogMS41cHggc29saWQgIzBhMGEwYTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogIzBhMGEwYTtcbiAgICB0cmFuc2l0aW9uOiBlYXNlLWluLW91dCBhbGwgMC41czsgfVxuICAgIC5idXR0b24tLW91dGxpbmUtb25seTpob3ZlciwgI25ld3NsZXR0ZXItc2lnbnVwICNtYy1lbWJlZGRlZC1zdWJzY3JpYmU6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogIzBhMGEwYTtcbiAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24tLXRleHQtb25seSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICMwYTBhMGE7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1ib3R0b20tY29sb3IgZWFzZS1pbiAwLjVzOyB9XG4gICAgLmJ1dHRvbi0tdGV4dC1vbmx5OmhvdmVyLCAuYnV0dG9uLS10ZXh0LW9ubHkuYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMwYTBhMGE7XG4gICAgICBjb2xvcjogIzBhMGEwYTsgfVxuXG4uY2FyZHMtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDsgfVxuICAuY2FyZHMtY29udGFpbmVyIC5jYXJkIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMS4yNXJlbSk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBtYXJnaW4tbGVmdDogMC42MjVyZW07IH1cbiAgICAuY2FyZHMtY29udGFpbmVyIC5jYXJkIC5jYXJkLWNvbnRlbnQge1xuICAgICAgcGFkZGluZzogMXJlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuY2FyZHMtY29udGFpbmVyIC5jYXJkIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMlIC0gMC43cmVtKTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjM1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC4zNXJlbTsgfSB9XG5cbi5mZWF0dXJlZC1oZXJvIHtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBoZWlnaHQ6IDYuMjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZmVhdHVyZWQtaGVybyB7XG4gICAgICBoZWlnaHQ6IDEyLjVyZW07IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgLmZlYXR1cmVkLWhlcm8ge1xuICAgICAgaGVpZ2h0OiAyNXJlbTsgfSB9XG5cbi5kb3R0ZWQge1xuICBib3JkZXItc3R5bGU6IGRhc2hlZDtcbiAgbWFyZ2luOiAycmVtIDA7IH1cblxuW2RhdGEtd2hhdGlucHV0PVwibW91c2VcIl0gYTpmb2N1cywgW2RhdGEtd2hhdGlucHV0PVwibW91c2VcIl0gLnN1Yi1tZW51IC5mb250LS1ibGFjazpmb2N1cywgLnN1Yi1tZW51IFtkYXRhLXdoYXRpbnB1dD1cIm1vdXNlXCJdIC5mb250LS1ibGFjazpmb2N1cyxcbltkYXRhLXdoYXRpbnB1dD1cIm1vdXNlXCJdIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrOmZvY3VzLCAuY29weXJpZ2h0IFtkYXRhLXdoYXRpbnB1dD1cIm1vdXNlXCJdIC5mb250LS1ibGFjazpmb2N1cywgYnV0dG9uOmZvY3VzIFtkYXRhLXdoYXRpbnB1dD1cInRvdWNoXCJdIGE6Zm9jdXMsIGJ1dHRvbjpmb2N1cyBbZGF0YS13aGF0aW5wdXQ9XCJ0b3VjaFwiXSAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrOmZvY3VzLCAuc3ViLW1lbnUgYnV0dG9uOmZvY3VzIFtkYXRhLXdoYXRpbnB1dD1cInRvdWNoXCJdIC5mb250LS1ibGFjazpmb2N1cyxcbmJ1dHRvbjpmb2N1cyBbZGF0YS13aGF0aW5wdXQ9XCJ0b3VjaFwiXSAuY29weXJpZ2h0IC5mb250LS1ibGFjazpmb2N1cywgLmNvcHlyaWdodCBidXR0b246Zm9jdXMgW2RhdGEtd2hhdGlucHV0PVwidG91Y2hcIl0gLmZvbnQtLWJsYWNrOmZvY3VzLCBidXR0b246Zm9jdXMge1xuICBvdXRsaW5lOiBub25lOyB9XG5cbi5hY2NvcmRpb24ge1xuICBtYXJnaW4tdG9wOiAyLjVyZW07IH1cbiAgLmFjY29yZGlvbiAuYWNjb3JkaW9uLWl0ZW0gLmFjY29yZGlvbi10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMGEwYTBhO1xuICAgIGNvbG9yOiAjMGEwYTBhICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogM3JlbTsgfVxuICAgIC5hY2NvcmRpb24gLmFjY29yZGlvbi1pdGVtIC5hY2NvcmRpb24tdGl0bGU6YmVmb3JlIHtcbiAgICAgIGZvbnQtc2l6ZTogNDJweDtcbiAgICAgIHRvcDogdW5zZXQ7XG4gICAgICBmb250LWZhbWlseTogXCJBdmVuaXIgTFQgVzAxXzU1IFJvbWFuMTQ3NTUyMFwiLCBTYW5zLXNlcmlmOyB9XG4gIC5hY2NvcmRpb24gLmFjY29yZGlvbi1pdGVtLmlzLWFjdGl2ZSAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBib3JkZXI6IG5vbmU7IH1cbiAgLmFjY29yZGlvbiAuYWNjb3JkaW9uLWl0ZW0uaXMtYWN0aXZlIC5hY2NvcmRpb24tY29udGVudCB7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMwYTBhMGE7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmhvbWUtZmVhdHVyZXMgLmhvbWUtZmVhdHVyZXNfX2hvbGRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzMHB4KTtcbiAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgLmhvbWUtZmVhdHVyZXMgLmhvbWUtZmVhdHVyZXNfX2hvbGRlciAuc2xpY2stbmV4dCwgLmhvbWUtZmVhdHVyZXMgLmhvbWUtZmVhdHVyZXNfX2hvbGRlciAuc2xpY2stcHJldiB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi5ob21lLWZlYXR1cmVzIC5ob21lLWZlYXR1cmVzX19ob2xkZXIgLnNsaWNrLW5leHQge1xuICByaWdodDogMjBweDsgfVxuXG4uaG9tZS1mZWF0dXJlcyAuaG9tZS1mZWF0dXJlc19faG9sZGVyIC5zbGljay1wcmV2IHtcbiAgbGVmdDogMjBweDtcbiAgei1pbmRleDogMTsgfVxuXG4uaG9tZS1mZWF0dXJlcyAuaG9tZS1mZWF0dXJlc19faG9sZGVyIC5ob21lLWZlYXR1cmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7XG4gIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1ncm93OiAxO1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmhvbWUtZmVhdHVyZXMgLmhvbWUtZmVhdHVyZXNfX2hvbGRlciAuaG9tZS1mZWF0dXJlIHtcbiAgICAgIHdpZHRoOiBjYWxjKDMzLjMzMzMzJSAtIDEuODc1cmVtKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICAgIGhlaWdodDogNzYwcHg7XG4gICAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICAgIG1hcmdpbi1yaWdodDogMTVweDsgfSB9XG4gIC5ob21lLWZlYXR1cmVzIC5ob21lLWZlYXR1cmVzX19ob2xkZXIgLmhvbWUtZmVhdHVyZSA+IGRpdiB7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWluLWhlaWdodDogMzAwcHg7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmhvbWUtZmVhdHVyZXMgLmhvbWUtZmVhdHVyZXNfX2hvbGRlciAuaG9tZS1mZWF0dXJlID4gZGl2IHtcbiAgICAgICAgbWluLWhlaWdodDogNTAwcHg7IH0gfVxuICAuaG9tZS1mZWF0dXJlcyAuaG9tZS1mZWF0dXJlc19faG9sZGVyIC5ob21lLWZlYXR1cmUgLmhvbWUtZmVhdHVyZV9fdGl0bGUtaG9sZGVyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDlweDsgfVxuICAgIC5ob21lLWZlYXR1cmVzIC5ob21lLWZlYXR1cmVzX19ob2xkZXIgLmhvbWUtZmVhdHVyZSAuaG9tZS1mZWF0dXJlX190aXRsZS1ob2xkZXIgaDEge1xuICAgICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGluZS1oZWlnaHQ6IDAuODU7XG4gICAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIkRpZG90XCIsIFNlcmlmO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIG9wYWNpdHk6IDAuOTU7XG4gICAgICB0cmFuc2l0aW9uOiBlYXNlLWluLW91dCAwLjM1czsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgICAgLmhvbWUtZmVhdHVyZXMgLmhvbWUtZmVhdHVyZXNfX2hvbGRlciAuaG9tZS1mZWF0dXJlIC5ob21lLWZlYXR1cmVfX3RpdGxlLWhvbGRlciBoMSB7XG4gICAgICAgICAgZm9udC1zaXplOiAzcmVtOyB9IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5ob21lLWZlYXR1cmVzIC5ob21lLWZlYXR1cmVzX19ob2xkZXIgLmhvbWUtZmVhdHVyZSAuaG9tZS1mZWF0dXJlX190aXRsZS1ob2xkZXIgaDEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMy42cmVtOyB9IH1cbiAgICAgIC5ob21lLWZlYXR1cmVzIC5ob21lLWZlYXR1cmVzX19ob2xkZXIgLmhvbWUtZmVhdHVyZSAuaG9tZS1mZWF0dXJlX190aXRsZS1ob2xkZXIgaDEgZW0ge1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIkRpZG90IEl0YWxpY1wiLCBTZXJpZjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAuaG9tZS1mZWF0dXJlcyAuaG9tZS1mZWF0dXJlc19faG9sZGVyIC5ob21lLWZlYXR1cmUgLmhvbWUtZmVhdHVyZV9fdGl0bGUtaG9sZGVyIC5saW5rLXRpdGxlIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyO1xuICAgICAgY29sb3I6ICNmZWZlZmU7XG4gICAgICBvcGFjaXR5OiAwLjk1O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgICB0cmFuc2l0aW9uOiBlYXNlLWluLW91dCAwLjM1czsgfVxuICAgICAgLmhvbWUtZmVhdHVyZXMgLmhvbWUtZmVhdHVyZXNfX2hvbGRlciAuaG9tZS1mZWF0dXJlIC5ob21lLWZlYXR1cmVfX3RpdGxlLWhvbGRlciAubGluay10aXRsZTphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL3dwLWNvbnRlbnQvdGhlbWVzL25ldy1sZW9uYXJkam9lbC9kaXN0L2Fzc2V0cy9pbWFnZXMvYXJyb3cucG5nKTtcbiAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgICB3aWR0aDogMzVweDtcbiAgICAgICAgcmlnaHQ6IDIwcHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICBvcGFjaXR5OiAwLjc1OyB9XG4gIC5ob21lLWZlYXR1cmVzIC5ob21lLWZlYXR1cmVzX19ob2xkZXIgLmhvbWUtZmVhdHVyZTphZnRlciB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwLCAxMCwgMTAsIDAuMjUpO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHRyYW5zaXRpb246IGVhc2UtaW4tb3V0IDAuNXM7IH1cbiAgLmhvbWUtZmVhdHVyZXMgLmhvbWUtZmVhdHVyZXNfX2hvbGRlciAuaG9tZS1mZWF0dXJlOmhvdmVyOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwLCAxMCwgMTAsIDAuNSk7IH1cbiAgLmhvbWUtZmVhdHVyZXMgLmhvbWUtZmVhdHVyZXNfX2hvbGRlciAuaG9tZS1mZWF0dXJlOmhvdmVyIGgxIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIC5ob21lLWZlYXR1cmVzIC5ob21lLWZlYXR1cmVzX19ob2xkZXIgLmhvbWUtZmVhdHVyZTpob3ZlciAubGluay10aXRsZSB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAgIC5ob21lLWZlYXR1cmVzIC5ob21lLWZlYXR1cmVzX19ob2xkZXIgLmhvbWUtZmVhdHVyZTpob3ZlciAubGluay10aXRsZTphZnRlciB7XG4gICAgICBhbmltYXRpb246IGJvdW5jZSAwLjVzIGluZmluaXRlIGFsdGVybmF0ZTtcbiAgICAgIG9wYWNpdHk6IDE7IH1cblxuQGtleWZyYW1lcyBib3VuY2Uge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTsgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xNXB4KTsgfSB9XG5cbi5zZWN0aW9uX19oZWFkaW5nLCBzZWN0aW9uIC5zZWN0aW9uX19oZWFkaW5nLS1uby1wYWRkaW5nIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gIC5zZWN0aW9uX19oZWFkaW5nIGgzLCBzZWN0aW9uIC5zZWN0aW9uX19oZWFkaW5nLS1uby1wYWRkaW5nIGgzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzMnB4OyB9XG4gIC5zZWN0aW9uX19oZWFkaW5nIGEsIHNlY3Rpb24gLnNlY3Rpb25fX2hlYWRpbmctLW5vLXBhZGRpbmcgYSwgLnNlY3Rpb25fX2hlYWRpbmcgLnN1Yi1tZW51IC5mb250LS1ibGFjaywgLnN1Yi1tZW51IC5zZWN0aW9uX19oZWFkaW5nIC5mb250LS1ibGFjaywgc2VjdGlvbiAuc2VjdGlvbl9faGVhZGluZy0tbm8tcGFkZGluZyAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrLCAuc3ViLW1lbnUgc2VjdGlvbiAuc2VjdGlvbl9faGVhZGluZy0tbm8tcGFkZGluZyAuZm9udC0tYmxhY2ssXG4gIC5zZWN0aW9uX19oZWFkaW5nIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrLCAuY29weXJpZ2h0IC5zZWN0aW9uX19oZWFkaW5nIC5mb250LS1ibGFjayxcbiAgc2VjdGlvbiAuc2VjdGlvbl9faGVhZGluZy0tbm8tcGFkZGluZyAuY29weXJpZ2h0IC5mb250LS1ibGFjaywgLmNvcHlyaWdodCBzZWN0aW9uIC5zZWN0aW9uX19oZWFkaW5nLS1uby1wYWRkaW5nIC5mb250LS1ibGFjayB7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIGZvbnQtZmFtaWx5OiBcIkF2ZW5pciBMVCBXMDFfNjUgTWVkaXVtMTQ3NTUzMlwiLCBTYW5zLXNlcmlmO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG5cbi5uZXdzLWZlYXR1cmVzX19ob2xkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiAxMDYuMjVyZW07XG4gIG1hcmdpbjogMCBhdXRvOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLm5ld3MtZmVhdHVyZXNfX2hvbGRlciB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5uZXdzLWZlYXR1cmVzX19ob2xkZXIge1xuICAgICAgcGFkZGluZzogMDsgfSB9XG4gIC5uZXdzLWZlYXR1cmVzX19ob2xkZXIgLm5ld3MtZmVhdHVyZSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9XG4gICAgLm5ld3MtZmVhdHVyZXNfX2hvbGRlciAubmV3cy1mZWF0dXJlOm50aC1vZi10eXBlKG4rNCkge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAubmV3cy1mZWF0dXJlc19faG9sZGVyIC5uZXdzLWZlYXR1cmUge1xuICAgICAgICB3aWR0aDogY2FsYygzMy4zMzMzMyUgLSAxLjg3NXJlbSk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7IH1cbiAgICAgICAgLm5ld3MtZmVhdHVyZXNfX2hvbGRlciAubmV3cy1mZWF0dXJlOm50aC1vZi10eXBlKDNuICsgMSkge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgICAgIC5uZXdzLWZlYXR1cmVzX19ob2xkZXIgLm5ld3MtZmVhdHVyZTpudGgtb2YtdHlwZSgzbikge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgICAgICAubmV3cy1mZWF0dXJlc19faG9sZGVyIC5uZXdzLWZlYXR1cmU6bnRoLW9mLXR5cGUobis0KSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgICAgLm5ld3MtZmVhdHVyZXNfX2hvbGRlciAubmV3cy1mZWF0dXJlOm50aC1vZi10eXBlKDMpIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyLjVyZW07IH0gfVxuICAgIC5uZXdzLWZlYXR1cmVzX19ob2xkZXIgLm5ld3MtZmVhdHVyZSAubmV3cy1mZWF0dXJlX19pbWFnZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjg3NXJlbTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAzMjVweDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAubmV3cy1mZWF0dXJlc19faG9sZGVyIC5uZXdzLWZlYXR1cmUgLm5ld3MtZmVhdHVyZV9faW1hZ2U6YWZ0ZXIge1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IC0xLjI1cmVtOyB9XG4gICAgLm5ld3MtZmVhdHVyZXNfX2hvbGRlciAubmV3cy1mZWF0dXJlIHAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgZm9udC1mYW1pbHk6IFwiQXZlbmlyIExUIFcwMV80NSBCb29rMTQ3NTUwOFwiLCBTYW5zLXNlcmlmO1xuICAgICAgcGFkZGluZy1sZWZ0OiAyMnB4OyB9XG4gICAgLm5ld3MtZmVhdHVyZXNfX2hvbGRlciAubmV3cy1mZWF0dXJlIC5uZXdzLWZlYXR1cmVfX3RpdGxlIHtcbiAgICAgIGNvbG9yOiAjMGEwYTBhO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgIHBhZGRpbmctbGVmdDogMjJweDtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIkF2ZW5pciBMVCBXMDFfNTUgUm9tYW4xNDc1NTIwXCIsIFNhbnMtc2VyaWY7IH1cblxuLmF1Y3Rpb24tZmVhdHVyZXNfX2hvbGRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICBtYXgtd2lkdGg6IDEwNi4yNXJlbTtcbiAgbWFyZ2luOiAwIGF1dG87IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuYXVjdGlvbi1mZWF0dXJlc19faG9sZGVyIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLmF1Y3Rpb24tZmVhdHVyZXNfX2hvbGRlciB7XG4gICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuYXVjdGlvbi1mZWF0dXJlc19faG9sZGVyIHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwOyB9IH1cbiAgLmF1Y3Rpb24tZmVhdHVyZXNfX2hvbGRlciAuYXVjdGlvbi1mZWF0dXJlIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAgIC5hdWN0aW9uLWZlYXR1cmVzX19ob2xkZXIgLmF1Y3Rpb24tZmVhdHVyZTpudGgtb2YtdHlwZShuKzQpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5hdWN0aW9uLWZlYXR1cmVzX19ob2xkZXIgLmF1Y3Rpb24tZmVhdHVyZSB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDI1JSAtIDEuODc1cmVtKTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTsgfVxuICAgICAgICAuYXVjdGlvbi1mZWF0dXJlc19faG9sZGVyIC5hdWN0aW9uLWZlYXR1cmU6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAgICAgLmF1Y3Rpb24tZmVhdHVyZXNfX2hvbGRlciAuYXVjdGlvbi1mZWF0dXJlOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cbiAgICAuYXVjdGlvbi1mZWF0dXJlc19faG9sZGVyIC5hdWN0aW9uLWZlYXR1cmUgLmF1Y3Rpb25fX2ltYWdlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luOiAwIDAgMS4yNXJlbSAwO1xuICAgICAgaGVpZ2h0OiAyMDBweDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5hdWN0aW9uLWZlYXR1cmVzX19ob2xkZXIgLmF1Y3Rpb24tZmVhdHVyZSBwIHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZm9udC1mYW1pbHk6IFwiQXZlbmlyIExUIFcwMV80NSBCb29rMTQ3NTUwOFwiLCBTYW5zLXNlcmlmO1xuICAgICAgcGFkZGluZy1yaWdodDogMjJweDsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmF1Y3Rpb24tZmVhdHVyZXNfX2hvbGRlciAuYXVjdGlvbi1mZWF0dXJlIHAge1xuICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEuODc1cmVtKTtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gICAgLmF1Y3Rpb24tZmVhdHVyZXNfX2hvbGRlciAuYXVjdGlvbi1mZWF0dXJlIC5hdWN0aW9uLWZlYXR1cmVfX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIGNvbG9yOiAjMGEwYTBhO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBmb250LWZhbWlseTogXCJBdmVuaXIgTFQgVzAxXzk1IEJsYWNrMTQ3NTU1NlwiLCBTYW5zLXNlcmlmO1xuICAgICAgcGFkZGluZy1sZWZ0OiAyMnB4OyB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuYXVjdGlvbi1mZWF0dXJlc19faG9sZGVyIC5hdWN0aW9uLWZlYXR1cmUgLmF1Y3Rpb24tZmVhdHVyZV9fdGl0bGUge1xuICAgICAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEuODc1cmVtKTtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuICAgIC5hdWN0aW9uLWZlYXR1cmVzX19ob2xkZXIgLmF1Y3Rpb24tZmVhdHVyZTphZnRlciB7XG4gICAgICBoZWlnaHQ6IDAuNXB4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgICBtYXJnaW4tdG9wOiAwLjgzMzMzcmVtOyB9XG5cbi52aWRlby1mZWF0dXJlc19faG9sZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1heC13aWR0aDogMTA2LjI1cmVtO1xuICBtYXJnaW46IDAgYXV0bzsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC52aWRlby1mZWF0dXJlc19faG9sZGVyIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLnZpZGVvLWZlYXR1cmVzX19ob2xkZXIge1xuICAgICAgcGFkZGluZzogMDsgfSB9XG4gIC52aWRlby1mZWF0dXJlc19faG9sZGVyIC52aWRlby1mZWF0dXJlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgICAgLnZpZGVvLWZlYXR1cmVzX19ob2xkZXIgLnZpZGVvLWZlYXR1cmU6bnRoLW9mLXR5cGUobis0KSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgIC52aWRlby1mZWF0dXJlc19faG9sZGVyIC52aWRlby1mZWF0dXJlIC5yZXNwb25zaXZlLWVtYmVkIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZy1ib3R0b206IDU3JTtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgIC52aWRlby1mZWF0dXJlc19faG9sZGVyIC52aWRlby1mZWF0dXJlIC5yZXNwb25zaXZlLWVtYmVkOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi93cC1jb250ZW50L3RoZW1lcy9uZXctbGVvbmFyZGpvZWwvZGlzdC9hc3NldHMvaW1hZ2VzL3BsYXktYnV0dG9uLnBuZ1wiKTtcbiAgICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgfVxuICAgICAgLnZpZGVvLWZlYXR1cmVzX19ob2xkZXIgLnZpZGVvLWZlYXR1cmUgLnJlc3BvbnNpdmUtZW1iZWQudmlkZW8tcGxheSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IH1cbiAgICAgICAgLnZpZGVvLWZlYXR1cmVzX19ob2xkZXIgLnZpZGVvLWZlYXR1cmUgLnJlc3BvbnNpdmUtZW1iZWQudmlkZW8tcGxheTphZnRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAudmlkZW8tZmVhdHVyZXNfX2hvbGRlciAudmlkZW8tZmVhdHVyZSB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDI1JSAtIDEuODc1cmVtKTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTsgfVxuICAgICAgICAudmlkZW8tZmVhdHVyZXNfX2hvbGRlciAudmlkZW8tZmVhdHVyZTpudGgtb2YtdHlwZSg0biArIDEpIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgICAgICAudmlkZW8tZmVhdHVyZXNfX2hvbGRlciAudmlkZW8tZmVhdHVyZTpudGgtb2YtdHlwZSg0bikge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG4gICAgLnZpZGVvLWZlYXR1cmVzX19ob2xkZXIgLnZpZGVvLWZlYXR1cmUgcCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBmb250LWZhbWlseTogXCJBdmVuaXIgTFQgVzAxXzU1IFJvbWFuMTQ3NTUyMFwiLCBTYW5zLXNlcmlmO1xuICAgICAgcGFkZGluZy1yaWdodDogMjJweDsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLnZpZGVvLWZlYXR1cmVzX19ob2xkZXIgLnZpZGVvLWZlYXR1cmUgcCB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMS44NzVyZW0pO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDAuOTM3NXJlbSAqIDIpOyB9IH1cbiAgICAudmlkZW8tZmVhdHVyZXNfX2hvbGRlciAudmlkZW8tZmVhdHVyZSAudmlkZW8tZmVhdHVyZV9fdGl0bGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIGNvbG9yOiAjMGEwYTBhO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBmb250LWZhbWlseTogXCJBdmVuaXIgTFQgVzAxXzk1IEJsYWNrMTQ3NTU1NlwiLCBTYW5zLXNlcmlmO1xuICAgICAgcGFkZGluZy1sZWZ0OiAyMnB4OyB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAudmlkZW8tZmVhdHVyZXNfX2hvbGRlciAudmlkZW8tZmVhdHVyZSAudmlkZW8tZmVhdHVyZV9fdGl0bGUge1xuICAgICAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEuODc1cmVtKTtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygwLjkzNzVyZW0gKiAyKTsgfSB9XG5cbi5icm93c2UtZGVwYXJ0bWVudHMge1xuICBkaXNwbGF5OiBub25lOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmJyb3dzZS1kZXBhcnRtZW50cyB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gIC5icm93c2UtZGVwYXJ0bWVudHMgLmJyb3dzZS1kZXBhcnRtZW50c19faG9sZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgICBtYXgtd2lkdGg6IDEwNi4yNXJlbTtcbiAgICBtYXJnaW46IDAgYXV0bzsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuYnJvd3NlLWRlcGFydG1lbnRzIC5icm93c2UtZGVwYXJ0bWVudHNfX2hvbGRlciB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICAgIC5icm93c2UtZGVwYXJ0bWVudHMgLmJyb3dzZS1kZXBhcnRtZW50c19faG9sZGVyIC5icm93c2UtZGVwYXJ0bWVudCB7XG4gICAgICBjb2xvcjogIzBhMGEwYTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMwYTBhMGE7XG4gICAgICBwYWRkaW5nOiAxLjY2NjY3cmVtIDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xuICAgICAgZm9udC1mYW1pbHk6IFwiQXZlbmlyIExUIFcwMV84NSBIZWF2eTE0NzU1NDRcIiwgU2Fucy1zZXJpZjtcbiAgICAgIHRyYW5zaXRpb246IGVhc2UtaW4tb3V0IGFsbCAwLjVzOyB9XG4gICAgICAuYnJvd3NlLWRlcGFydG1lbnRzIC5icm93c2UtZGVwYXJ0bWVudHNfX2hvbGRlciAuYnJvd3NlLWRlcGFydG1lbnQ6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGEwYTBhO1xuICAgICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgICAgLmJyb3dzZS1kZXBhcnRtZW50cyAuYnJvd3NlLWRlcGFydG1lbnRzX19ob2xkZXIgLmJyb3dzZS1kZXBhcnRtZW50IHtcbiAgICAgICAgICB3aWR0aDogY2FsYygyMCUgLSAxLjg3NXJlbSk7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4zOHJlbTsgfVxuICAgICAgICAgIC5icm93c2UtZGVwYXJ0bWVudHMgLmJyb3dzZS1kZXBhcnRtZW50c19faG9sZGVyIC5icm93c2UtZGVwYXJ0bWVudDpudGgtb2YtdHlwZSg1biArMSkge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAgICAgICAuYnJvd3NlLWRlcGFydG1lbnRzIC5icm93c2UtZGVwYXJ0bWVudHNfX2hvbGRlciAuYnJvd3NlLWRlcGFydG1lbnQ6bnRoLW9mLXR5cGUoNW4pIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG5cbi5kZXBhcnRtZW50X19pbnRyb2R1Y3Rpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgbWFyZ2luOiAwIGF1dG87IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZGVwYXJ0bWVudF9faW50cm9kdWN0aW9uIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgLmRlcGFydG1lbnRfX2ludHJvZHVjdGlvbiAuZGVwYXJ0bWVudF9faW50cm9kdWN0aW9uLWNvbnRlbnQgcCB7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgZm9udC1mYW1pbHk6IFwiQXZlbmlyIExUIFcwMV81NSBSb21hbjE0NzU1MjBcIiwgU2Fucy1zZXJpZjtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7IH1cblxuLmRlcGFydG1lbnRfX2JvZHkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgbWFyZ2luOiAwIGF1dG87IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZGVwYXJ0bWVudF9fYm9keSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmRlcGFydG1lbnRfX2JvZHkgLmRlcGFydG1lbnRfX2JvZHktY29udGVudCB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBjb2x1bW5zOiAyO1xuICAgICAgY29sdW1uLWdhcDogNDVweDtcbiAgICAgIGNvbHVtbi1maWxsOiBiYWxhbmNlOyB9IH1cblxuLmRlcGFydG1lbnRfX2F1Y3Rpb24taGlnaGxpZ2h0cyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7IH1cbiAgLmRlcGFydG1lbnRfX2F1Y3Rpb24taGlnaGxpZ2h0cyAuYXVjdGlvbi1mZWF0dXJlIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAuZGVwYXJ0bWVudF9fYXVjdGlvbi1oaWdobGlnaHRzIC5hdWN0aW9uLWZlYXR1cmU6bnRoLW9mLXR5cGUobis3KSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5kZXBhcnRtZW50X19hdWN0aW9uLWhpZ2hsaWdodHMgLmF1Y3Rpb24tZmVhdHVyZSB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEuODc1cmVtKTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuZGVwYXJ0bWVudF9fYXVjdGlvbi1oaWdobGlnaHRzIC5hdWN0aW9uLWZlYXR1cmUge1xuICAgICAgICB3aWR0aDogY2FsYygxNi42NjY2NyUgLSAxLjg3NXJlbSk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgICAgICBmbGV4OiAxOyB9IH1cbiAgICAuZGVwYXJ0bWVudF9fYXVjdGlvbi1oaWdobGlnaHRzIC5hdWN0aW9uLWZlYXR1cmUgLmF1Y3Rpb25fX2ltYWdlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luOiAwIDAgMi41cmVtIDA7XG4gICAgICBoZWlnaHQ6IDIxMHB4O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7IH1cbiAgICAuZGVwYXJ0bWVudF9fYXVjdGlvbi1oaWdobGlnaHRzIC5hdWN0aW9uLWZlYXR1cmUgcCB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgIC5kZXBhcnRtZW50X19hdWN0aW9uLWhpZ2hsaWdodHMgLmF1Y3Rpb24tZmVhdHVyZSBhLCAuZGVwYXJ0bWVudF9fYXVjdGlvbi1oaWdobGlnaHRzIC5hdWN0aW9uLWZlYXR1cmUgLnN1Yi1tZW51IC5mb250LS1ibGFjaywgLnN1Yi1tZW51IC5kZXBhcnRtZW50X19hdWN0aW9uLWhpZ2hsaWdodHMgLmF1Y3Rpb24tZmVhdHVyZSAuZm9udC0tYmxhY2ssXG4gICAgLmRlcGFydG1lbnRfX2F1Y3Rpb24taGlnaGxpZ2h0cyAuYXVjdGlvbi1mZWF0dXJlIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrLCAuY29weXJpZ2h0IC5kZXBhcnRtZW50X19hdWN0aW9uLWhpZ2hsaWdodHMgLmF1Y3Rpb24tZmVhdHVyZSAuZm9udC0tYmxhY2sge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBjb2xvcjogIzBhMGEwYTtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIkF2ZW5pciBMVCBXMDFfNjUgTWVkaXVtMTQ3NTUzMlwiLCBTYW5zLXNlcmlmOyB9XG5cbi5kZXBhcnRtZW50X190ZWFtLW1lbWJlcnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5kZXBhcnRtZW50X190ZWFtLW1lbWJlcnMge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICAuZGVwYXJ0bWVudF9fdGVhbS1tZW1iZXJzIC5kZXBhcnRtZW50X3RlYW0tbWVtYmVyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmRlcGFydG1lbnRfX3RlYW0tbWVtYmVycyAuZGVwYXJ0bWVudF90ZWFtLW1lbWJlciB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDI1JSAtIDEuODc1cmVtKTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7IH1cbiAgICAgICAgLmRlcGFydG1lbnRfX3RlYW0tbWVtYmVycyAuZGVwYXJ0bWVudF90ZWFtLW1lbWJlcjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgICAgICAuZGVwYXJ0bWVudF9fdGVhbS1tZW1iZXJzIC5kZXBhcnRtZW50X3RlYW0tbWVtYmVyOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cbiAgICAuZGVwYXJ0bWVudF9fdGVhbS1tZW1iZXJzIC5kZXBhcnRtZW50X3RlYW0tbWVtYmVyIC5kZXBhcnRtZW50X19zdGFmZi1waG90byB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIuNXJlbTtcbiAgICAgIGhlaWdodDogMjAwcHg7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjsgfVxuICAgIC5kZXBhcnRtZW50X190ZWFtLW1lbWJlcnMgLmRlcGFydG1lbnRfdGVhbS1tZW1iZXIgcCB7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIkF2ZW5pciBMVCBXMDFfODUgSGVhdnkxNDc1NTQ0XCIsIFNhbnMtc2VyaWY7IH1cbiAgICAgIC5kZXBhcnRtZW50X190ZWFtLW1lbWJlcnMgLmRlcGFydG1lbnRfdGVhbS1tZW1iZXIgcCBzcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBjb2xvcjogI0FBQUFBQTsgfVxuICAgIC5kZXBhcnRtZW50X190ZWFtLW1lbWJlcnMgLmRlcGFydG1lbnRfdGVhbS1tZW1iZXIgcCB7XG4gICAgICBsaW5lLWhlaWdodDogMTsgfVxuXG4uZGVwYXJ0bWVudF9fY2xvc2luZy1ob2xkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgbWFyZ2luOiAwIGF1dG87IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZGVwYXJ0bWVudF9fY2xvc2luZy1ob2xkZXIge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICAuZGVwYXJ0bWVudF9fY2xvc2luZy1ob2xkZXIgLmRlcGFydG1lbnRfX2Nsb3Npbmcge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuZGVwYXJ0bWVudF9fY2xvc2luZy1ob2xkZXIgLmRlcGFydG1lbnRfX2Nsb3Npbmcge1xuICAgICAgICBtYXJnaW4tdG9wOiA1cmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cmVtO1xuICAgICAgICB3aWR0aDogY2FsYyg4My4zMzMzMyUgLSAxLjg3NXJlbSk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogY2FsYyg4LjMzMzMzJSArIDAuNjI1cmVtKTsgfSB9XG4gICAgLmRlcGFydG1lbnRfX2Nsb3NpbmctaG9sZGVyIC5kZXBhcnRtZW50X19jbG9zaW5nIGgzIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIkF2ZW5pciBMVCBXMDFfNTUgUm9tYW4xNDc1NTIwXCIsIFNhbnMtc2VyaWY7IH1cbiAgICAuZGVwYXJ0bWVudF9fY2xvc2luZy1ob2xkZXIgLmRlcGFydG1lbnRfX2Nsb3NpbmcgYSwgLmRlcGFydG1lbnRfX2Nsb3NpbmctaG9sZGVyIC5kZXBhcnRtZW50X19jbG9zaW5nIC5zdWItbWVudSAuZm9udC0tYmxhY2ssIC5zdWItbWVudSAuZGVwYXJ0bWVudF9fY2xvc2luZy1ob2xkZXIgLmRlcGFydG1lbnRfX2Nsb3NpbmcgLmZvbnQtLWJsYWNrLFxuICAgIC5kZXBhcnRtZW50X19jbG9zaW5nLWhvbGRlciAuZGVwYXJ0bWVudF9fY2xvc2luZyAuY29weXJpZ2h0IC5mb250LS1ibGFjaywgLmNvcHlyaWdodCAuZGVwYXJ0bWVudF9fY2xvc2luZy1ob2xkZXIgLmRlcGFydG1lbnRfX2Nsb3NpbmcgLmZvbnQtLWJsYWNrIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gICAgICAuZGVwYXJ0bWVudF9fY2xvc2luZy1ob2xkZXIgLmRlcGFydG1lbnRfX2Nsb3NpbmcgYTphZnRlciwgLmRlcGFydG1lbnRfX2Nsb3NpbmctaG9sZGVyIC5kZXBhcnRtZW50X19jbG9zaW5nIC5zdWItbWVudSAuZm9udC0tYmxhY2s6YWZ0ZXIsIC5zdWItbWVudSAuZGVwYXJ0bWVudF9fY2xvc2luZy1ob2xkZXIgLmRlcGFydG1lbnRfX2Nsb3NpbmcgLmZvbnQtLWJsYWNrOmFmdGVyLFxuICAgICAgLmRlcGFydG1lbnRfX2Nsb3NpbmctaG9sZGVyIC5kZXBhcnRtZW50X19jbG9zaW5nIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrOmFmdGVyLCAuY29weXJpZ2h0IC5kZXBhcnRtZW50X19jbG9zaW5nLWhvbGRlciAuZGVwYXJ0bWVudF9fY2xvc2luZyAuZm9udC0tYmxhY2s6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogM3B4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGEwYTBhOyB9XG5cbi5kZXBhcnRtZW50X190ZWFtLWRlc2NyaXB0aW9uIHtcbiAgbWFyZ2luLXRvcDogMXJlbTsgfVxuXG4uY2FycmllcnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgbWFyZ2luOiAwIGF1dG87IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuY2FycmllcnMge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICAuY2FycmllcnMgaDIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAyLjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuY2FycmllcnMgLmNhcnJpZXJfX2NvbnRhaW5lciB7XG4gICAgICB3aWR0aDogY2FsYyg1MCUgLSAxLjg3NXJlbSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICAuY2FycmllcnMgLmNhcnJpZXJfX2NvbnRhaW5lciBoNiwgLmNhcnJpZXJzIC5jYXJyaWVyX19jb250YWluZXIgLmF1Y3Rpb24tY2F0YWxvZ3VlIC5hdWN0aW9uLWNhdGFsb2d1ZV9faXRlbSAuYXVjdGlvbi1jYXRhbG9ndWVfX2l0ZW1fX2hlYWRpbmcsIC5hdWN0aW9uLWNhdGFsb2d1ZSAuYXVjdGlvbi1jYXRhbG9ndWVfX2l0ZW0gLmNhcnJpZXJzIC5jYXJyaWVyX19jb250YWluZXIgLmF1Y3Rpb24tY2F0YWxvZ3VlX19pdGVtX19oZWFkaW5nIHtcbiAgICBmb250LWZhbWlseTogXCJBdmVuaXIgTFQgVzAxXzg1IEhlYXZ5MTQ3NTU0NFwiLCBTYW5zLXNlcmlmO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG5cbi5jYXJyaWVyc19faW50cm8sIC50d28tY29sdW1uX19pbnRybyB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7XG4gIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAyLjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuY2FycmllcnNfX2ludHJvLCAudHdvLWNvbHVtbl9faW50cm8ge1xuICAgICAgZm9udC1zaXplOiAzNnB4OyB9IH1cbiAgLmNhcnJpZXJzX19pbnRybyBwLCAudHdvLWNvbHVtbl9faW50cm8gcCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTsgfVxuXG4uaXNzdXVlbWJlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGhlaWdodDogNTAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICB3aWR0aDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5pc3N1dWVtYmVkIHtcbiAgICAgIHdpZHRoOiBjYWxjKDY2LjY2NjY3JSAtIDEuODc1cmVtKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDE2LjY2NjY3JSArIDAuNjI1cmVtKTsgfSB9XG5cbi5ib29rLWNvdmVyc19faG9sZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC5ib29rLWNvdmVyc19faG9sZGVyIC5ib29rLWNvdmVycyB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMS44NzVyZW0pO1xuICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBoZWlnaHQ6IDIwMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDVweDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuYm9vay1jb3ZlcnNfX2hvbGRlciAuYm9vay1jb3ZlcnMge1xuICAgICAgICB3aWR0aDogY2FsYygyNSUgLSAxLjg3NXJlbSk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgICAgICBoZWlnaHQ6IDM1MHB4OyB9IH1cbiAgICAuYm9vay1jb3ZlcnNfX2hvbGRlciAuYm9vay1jb3ZlcnMgLmJvb2stY292ZXJzX19pbmZvIHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRjlFMzE7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2l0aW9uOiBlYXNlLWluLW91dCBvcGFjaXR5IDAuNXM7IH1cbiAgICAgIC5ib29rLWNvdmVyc19faG9sZGVyIC5ib29rLWNvdmVycyAuYm9vay1jb3ZlcnNfX2luZm8gLmJvb2stY292ZXJzX19pbmZvX19jb250ZW50IHtcbiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgLmJvb2stY292ZXJzX19ob2xkZXIgLmJvb2stY292ZXJzIC5ib29rLWNvdmVyc19faW5mby5zaG93LWluZm8ge1xuICAgICAgICBvcGFjaXR5OiAxOyB9XG5cbi5hYm91dF9faGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1heC13aWR0aDogNzVyZW07XG4gIG1hcmdpbjogMCBhdXRvOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmFib3V0X19oZWFkZXIge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuXG5hcnRpY2xlLmZsaXBib29rIHtcbiAgd2lkdGg6IGNhbGMoNTAlIC0gMS44NzVyZW0pO1xuICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIGFydGljbGUuZmxpcGJvb2sge1xuICAgICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMlIC0gMS44NzVyZW0pO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICBhcnRpY2xlLmZsaXBib29rIHtcbiAgICAgIHdpZHRoOiBjYWxjKDI1JSAtIDEuODc1cmVtKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gIGFydGljbGUuZmxpcGJvb2sgYSwgYXJ0aWNsZS5mbGlwYm9vayAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrLCAuc3ViLW1lbnUgYXJ0aWNsZS5mbGlwYm9vayAuZm9udC0tYmxhY2ssXG4gIGFydGljbGUuZmxpcGJvb2sgLmNvcHlyaWdodCAuZm9udC0tYmxhY2ssIC5jb3B5cmlnaHQgYXJ0aWNsZS5mbGlwYm9vayAuZm9udC0tYmxhY2sge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMzAwcHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjsgfVxuICBhcnRpY2xlLmZsaXBib29rIGg1IHtcbiAgICBmb250LWZhbWlseTogXCJBdmVuaXIgTFQgVzAxXzU1IFJvbWFuMTQ3NTUyMFwiLCBTYW5zLXNlcmlmO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgbWFyZ2luLXRvcDogMi41cmVtOyB9XG5cbi5zaWRlYmFyIHtcbiAgcGFkZGluZy1sZWZ0OiAyLjVyZW07IH1cbiAgLnNpZGViYXIgYSwgLnNpZGViYXIgLnN1Yi1tZW51IC5mb250LS1ibGFjaywgLnN1Yi1tZW51IC5zaWRlYmFyIC5mb250LS1ibGFjayxcbiAgLnNpZGViYXIgLmNvcHlyaWdodCAuZm9udC0tYmxhY2ssIC5jb3B5cmlnaHQgLnNpZGViYXIgLmZvbnQtLWJsYWNrIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC50d28tY29sdW1uX19pbnRybyB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBwYWRkaW5nLXRvcDogMnJlbTsgfSB9XG5cbi50d28tY29sdW1uX19ib2R5IHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAudHdvLWNvbHVtbl9fYm9keSB7XG4gICAgICBjb2x1bW4tY291bnQ6IDI7XG4gICAgICBjb2x1bW4tZ2FwOiA0MHB4OyB9IH1cblxuLnRlYW1fX3NlY3Rpb24gLnRlYW1fX2NvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICBtYXgtd2lkdGg6IDc1cmVtO1xuICBtYXJnaW46IDAgYXV0bztcbiAgbWFyZ2luLWJvdHRvbTogNXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC50ZWFtX19zZWN0aW9uIC50ZWFtX19jb250YWluZXIge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuXG4udGVhbV9fc2VjdGlvbiAudGVhbV9faGVhZGluZyB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7XG4gIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICBmb250LWZhbWlseTogXCJBdmVuaXIgTFQgVzAxXzg1IEhlYXZ5MTQ3NTU0NFwiLCBTYW5zLXNlcmlmO1xuICBtYXJnaW4tYm90dG9tOiAyLjVyZW07IH1cblxuLnRlYW1fX3NlY3Rpb24gYXJ0aWNsZSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIHBhZGRpbmctdG9wOiAxcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07IH1cbiAgLnRlYW1fX3NlY3Rpb24gYXJ0aWNsZSBoNSB7XG4gICAgZm9udC1mYW1pbHk6IFwiQXZlbmlyIExUIFcwMV84NSBIZWF2eTE0NzU1NDRcIiwgU2Fucy1zZXJpZjtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGZvbnQtc2l6ZTogMjVweDsgfVxuICAudGVhbV9fc2VjdGlvbiBhcnRpY2xlIHAge1xuICAgIGxpbmUtaGVpZ2h0OiAxOyB9XG4gICAgLnRlYW1fX3NlY3Rpb24gYXJ0aWNsZSBwLnBvc2l0aW9uX190aXRsZSB7XG4gICAgICBjb2xvcjogIzgwODA4MDtcbiAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOyB9XG4gIC50ZWFtX19zZWN0aW9uIGFydGljbGUgLnRlYW1fX2VtYWlsLWFkZHJlc3Mge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZm9udC1zaXplOiAwLjlyZW07IH1cbiAgLnRlYW1fX3NlY3Rpb24gYXJ0aWNsZSBpbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMjkwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC50ZWFtX19zZWN0aW9uIGFydGljbGUge1xuICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMS44NzVyZW0pO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9IH1cblxuLnRlYW1fX3RpdGxlIHtcbiAgZm9udC1mYW1pbHk6IFwiRGlkb3RcIiwgU2VyaWY7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7XG4gIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDVyZW07IH1cblxuLnRlYW1fX2NvbnRlbnQge1xuICB3aWR0aDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfVxuICAudGVhbV9fY29udGVudCBwIHtcbiAgICBmb250LXNpemU6IDM2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTsgfVxuXG5hcnRpY2xlIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQUFBQUFBO1xuICBwYWRkaW5nLXRvcDogMi41cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMi41cmVtOyB9XG4gIGFydGljbGU6bGFzdC1vZi10eXBlIHtcbiAgICBib3JkZXI6IG5vbmU7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICBhcnRpY2xlIC5ibG9nLWFydGljbGUge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgICBtYXgtd2lkdGg6IDc1cmVtO1xuICAgICAgbWFyZ2luOiAwIGF1dG87IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICBhcnRpY2xlIC5ibG9nLWFydGljbGUge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICBhcnRpY2xlIGEuYXVjdGlvbl9faW1hZ2UsIGFydGljbGUgLnN1Yi1tZW51IC5hdWN0aW9uX19pbWFnZS5mb250LS1ibGFjaywgLnN1Yi1tZW51IGFydGljbGUgLmF1Y3Rpb25fX2ltYWdlLmZvbnQtLWJsYWNrLFxuICBhcnRpY2xlIC5jb3B5cmlnaHQgLmF1Y3Rpb25fX2ltYWdlLmZvbnQtLWJsYWNrLCAuY29weXJpZ2h0IGFydGljbGUgLmF1Y3Rpb25fX2ltYWdlLmZvbnQtLWJsYWNrIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDIwMHB4O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiAyLjVyZW07IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgYXJ0aWNsZSBhLmF1Y3Rpb25fX2ltYWdlLCBhcnRpY2xlIC5zdWItbWVudSAuYXVjdGlvbl9faW1hZ2UuZm9udC0tYmxhY2ssIC5zdWItbWVudSBhcnRpY2xlIC5hdWN0aW9uX19pbWFnZS5mb250LS1ibGFjayxcbiAgICAgIGFydGljbGUgLmNvcHlyaWdodCAuYXVjdGlvbl9faW1hZ2UuZm9udC0tYmxhY2ssIC5jb3B5cmlnaHQgYXJ0aWNsZSAuYXVjdGlvbl9faW1hZ2UuZm9udC0tYmxhY2sge1xuICAgICAgICB3aWR0aDogY2FsYyg0MS42NjY2NyUgLSAxLjg3NXJlbSk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICBhcnRpY2xlIC5ibG9nLWNvbnRlbnQtaG9sZGVyIHtcbiAgICAgIHdpZHRoOiBjYWxjKDU4LjMzMzMzJSAtIDEuODc1cmVtKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gIGFydGljbGUgLmJsb2ctLWV4Y2VycHQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgYXJ0aWNsZSAuYmxvZy0tZXhjZXJwdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgYXJ0aWNsZSBoMyB7XG4gICAgZm9udC1mYW1pbHk6IFwiQXZlbmlyIExUIFcwMV81NSBSb21hbjE0NzU1MjBcIiwgU2Fucy1zZXJpZjtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICBhcnRpY2xlIGEuYnV0dG9uLS1vdXRsaW5lLW9ubHksIGFydGljbGUgLnN1Yi1tZW51IC5idXR0b24tLW91dGxpbmUtb25seS5mb250LS1ibGFjaywgLnN1Yi1tZW51IGFydGljbGUgLmJ1dHRvbi0tb3V0bGluZS1vbmx5LmZvbnQtLWJsYWNrLCBhcnRpY2xlIC5zdWItbWVudSAjbmV3c2xldHRlci1zaWdudXAgLmZvbnQtLWJsYWNrI21jLWVtYmVkZGVkLXN1YnNjcmliZSwgLnN1Yi1tZW51ICNuZXdzbGV0dGVyLXNpZ251cCBhcnRpY2xlIC5mb250LS1ibGFjayNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsIGFydGljbGUgI25ld3NsZXR0ZXItc2lnbnVwIC5zdWItbWVudSAuZm9udC0tYmxhY2sjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAjbmV3c2xldHRlci1zaWdudXAgLnN1Yi1tZW51IGFydGljbGUgLmZvbnQtLWJsYWNrI21jLWVtYmVkZGVkLXN1YnNjcmliZSxcbiAgYXJ0aWNsZSAuY29weXJpZ2h0IC5idXR0b24tLW91dGxpbmUtb25seS5mb250LS1ibGFjaywgLmNvcHlyaWdodCBhcnRpY2xlIC5idXR0b24tLW91dGxpbmUtb25seS5mb250LS1ibGFjaywgYXJ0aWNsZSAuY29weXJpZ2h0ICNuZXdzbGV0dGVyLXNpZ251cCAuZm9udC0tYmxhY2sjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAuY29weXJpZ2h0ICNuZXdzbGV0dGVyLXNpZ251cCBhcnRpY2xlIC5mb250LS1ibGFjayNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsIGFydGljbGUgI25ld3NsZXR0ZXItc2lnbnVwIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrI21jLWVtYmVkZGVkLXN1YnNjcmliZSwgI25ld3NsZXR0ZXItc2lnbnVwIC5jb3B5cmlnaHQgYXJ0aWNsZSAuZm9udC0tYmxhY2sjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCBhcnRpY2xlICNuZXdzbGV0dGVyLXNpZ251cCBhI21jLWVtYmVkZGVkLXN1YnNjcmliZSwgI25ld3NsZXR0ZXItc2lnbnVwIGFydGljbGUgYSNtYy1lbWJlZGRlZC1zdWJzY3JpYmUge1xuICAgIG1hcmdpbi10b3A6IDIuNXJlbTtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICBhcnRpY2xlIGEuYnV0dG9uLS1vdXRsaW5lLW9ubHksIGFydGljbGUgLnN1Yi1tZW51IC5idXR0b24tLW91dGxpbmUtb25seS5mb250LS1ibGFjaywgLnN1Yi1tZW51IGFydGljbGUgLmJ1dHRvbi0tb3V0bGluZS1vbmx5LmZvbnQtLWJsYWNrLCBhcnRpY2xlIC5zdWItbWVudSAjbmV3c2xldHRlci1zaWdudXAgLmZvbnQtLWJsYWNrI21jLWVtYmVkZGVkLXN1YnNjcmliZSwgLnN1Yi1tZW51ICNuZXdzbGV0dGVyLXNpZ251cCBhcnRpY2xlIC5mb250LS1ibGFjayNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsIGFydGljbGUgI25ld3NsZXR0ZXItc2lnbnVwIC5zdWItbWVudSAuZm9udC0tYmxhY2sjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAjbmV3c2xldHRlci1zaWdudXAgLnN1Yi1tZW51IGFydGljbGUgLmZvbnQtLWJsYWNrI21jLWVtYmVkZGVkLXN1YnNjcmliZSxcbiAgICAgIGFydGljbGUgLmNvcHlyaWdodCAuYnV0dG9uLS1vdXRsaW5lLW9ubHkuZm9udC0tYmxhY2ssIC5jb3B5cmlnaHQgYXJ0aWNsZSAuYnV0dG9uLS1vdXRsaW5lLW9ubHkuZm9udC0tYmxhY2ssIGFydGljbGUgLmNvcHlyaWdodCAjbmV3c2xldHRlci1zaWdudXAgLmZvbnQtLWJsYWNrI21jLWVtYmVkZGVkLXN1YnNjcmliZSwgLmNvcHlyaWdodCAjbmV3c2xldHRlci1zaWdudXAgYXJ0aWNsZSAuZm9udC0tYmxhY2sjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCBhcnRpY2xlICNuZXdzbGV0dGVyLXNpZ251cCAuY29weXJpZ2h0IC5mb250LS1ibGFjayNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsICNuZXdzbGV0dGVyLXNpZ251cCAuY29weXJpZ2h0IGFydGljbGUgLmZvbnQtLWJsYWNrI21jLWVtYmVkZGVkLXN1YnNjcmliZSwgYXJ0aWNsZSAjbmV3c2xldHRlci1zaWdudXAgYSNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsICNuZXdzbGV0dGVyLXNpZ251cCBhcnRpY2xlIGEjbWMtZW1iZWRkZWQtc3Vic2NyaWJlIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMlIC0gMS44NzVyZW0pO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG5cbiNuZXdzLW1lZGlhLWZvcm0ge1xuICBtYXJnaW4tdG9wOiAyLjVyZW07IH1cbiAgI25ld3MtbWVkaWEtZm9ybSAubmV3cy1tZWRpYS1mb3JtLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgIG1heC13aWR0aDogNzVyZW07XG4gICAgbWFyZ2luOiAwIGF1dG87IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgI25ld3MtbWVkaWEtZm9ybSAubmV3cy1tZWRpYS1mb3JtLXdyYXBwZXIge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgICAjbmV3cy1tZWRpYS1mb3JtIC5uZXdzLW1lZGlhLWZvcm0td3JhcHBlciAuc2VhcmNoIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgcGFkZGluZzogMS40cmVtO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgICAjbmV3cy1tZWRpYS1mb3JtIC5uZXdzLW1lZGlhLWZvcm0td3JhcHBlciAuc2VhcmNoIHtcbiAgICAgICAgICB3aWR0aDogY2FsYyg1MCUgLSAxLjg3NXJlbSk7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogY2FsYygyNSUgKyAwLjYyNXJlbSk7IH0gfVxuICAgICAgI25ld3MtbWVkaWEtZm9ybSAubmV3cy1tZWRpYS1mb3JtLXdyYXBwZXIgLnNlYXJjaDo6cGxhY2Vob2xkZXIge1xuICAgICAgICBjb2xvcjogIzBhMGEwYTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgICAjbmV3cy1tZWRpYS1mb3JtIC5uZXdzLW1lZGlhLWZvcm0td3JhcHBlciAuYnV0dG9uLCAjbmV3cy1tZWRpYS1mb3JtIC5uZXdzLW1lZGlhLWZvcm0td3JhcHBlciAuYnV0dG9uLS1vdXRsaW5lLW9ubHksICNuZXdzLW1lZGlhLWZvcm0gLm5ld3MtbWVkaWEtZm9ybS13cmFwcGVyICNuZXdzbGV0dGVyLXNpZ251cCAjbWMtZW1iZWRkZWQtc3Vic2NyaWJlLCAjbmV3c2xldHRlci1zaWdudXAgI25ld3MtbWVkaWEtZm9ybSAubmV3cy1tZWRpYS1mb3JtLXdyYXBwZXIgI21jLWVtYmVkZGVkLXN1YnNjcmliZSwgI25ld3MtbWVkaWEtZm9ybSAubmV3cy1tZWRpYS1mb3JtLXdyYXBwZXIgLmJ1dHRvbi0tdGV4dC1vbmx5IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgICAgI25ld3MtbWVkaWEtZm9ybSAubmV3cy1tZWRpYS1mb3JtLXdyYXBwZXIgLmJ1dHRvbiwgI25ld3MtbWVkaWEtZm9ybSAubmV3cy1tZWRpYS1mb3JtLXdyYXBwZXIgLmJ1dHRvbi0tb3V0bGluZS1vbmx5LCAjbmV3cy1tZWRpYS1mb3JtIC5uZXdzLW1lZGlhLWZvcm0td3JhcHBlciAjbmV3c2xldHRlci1zaWdudXAgI21jLWVtYmVkZGVkLXN1YnNjcmliZSwgI25ld3NsZXR0ZXItc2lnbnVwICNuZXdzLW1lZGlhLWZvcm0gLm5ld3MtbWVkaWEtZm9ybS13cmFwcGVyICNtYy1lbWJlZGRlZC1zdWJzY3JpYmUsICNuZXdzLW1lZGlhLWZvcm0gLm5ld3MtbWVkaWEtZm9ybS13cmFwcGVyIC5idXR0b24tLXRleHQtb25seSB7XG4gICAgICAgICAgd2lkdGg6IGNhbGMoMTYuNjY2NjclIC0gMS44NzVyZW0pO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICAgICNuZXdzLW1lZGlhLWZvcm0gLm5ld3MtbWVkaWEtZm9ybS13cmFwcGVyIC50b2dnbGUtY2F0ZWdvcmllcyB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgICAjbmV3cy1tZWRpYS1mb3JtIC5uZXdzLW1lZGlhLWZvcm0td3JhcHBlciAudG9nZ2xlLWNhdGVnb3JpZXMge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICB3aWR0aDogY2FsYygyNSUgLSAxLjg3NXJlbSk7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogY2FsYyg2Ni42NjY2NyUgKyAwLjYyNXJlbSk7IH0gfVxuICAjbmV3cy1tZWRpYS1mb3JtIC5jYXRlZ29yaWVzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkY5RTMxO1xuICAgIHBhZGRpbmc6IDAgMTAwcHg7IH1cbiAgICAjbmV3cy1tZWRpYS1mb3JtIC5jYXRlZ29yaWVzIC5jYXRlZ29yaWVzX19saXN0IHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgICAgIG1heC13aWR0aDogNzVyZW07XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAgICNuZXdzLW1lZGlhLWZvcm0gLmNhdGVnb3JpZXMgLmNhdGVnb3JpZXNfX2xpc3Qge1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gICAgI25ld3MtbWVkaWEtZm9ybSAuY2F0ZWdvcmllcyBsaSB7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgcGFkZGluZzogMTVweDsgfVxuICAgICAgI25ld3MtbWVkaWEtZm9ybSAuY2F0ZWdvcmllcyBsaSBpbnB1dCB7XG4gICAgICAgIG1hcmdpbjogMDsgfVxuXG4ubmV3c2xldHRlcl9faG9sZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1heC13aWR0aDogNzVyZW07XG4gIG1hcmdpbjogMCBhdXRvOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLm5ld3NsZXR0ZXJfX2hvbGRlciB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gIC5uZXdzbGV0dGVyX19ob2xkZXIgLm5ld3NsZXR0ZXJfX2FydGljbGUge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAubmV3c2xldHRlcl9faG9sZGVyIC5uZXdzbGV0dGVyX19hcnRpY2xlIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMS44NzVyZW0pO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG5cbi5lcnJvciB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLnFzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyNDI0MjQ7XG4gIGJvcmRlci1yYWRpdXM6IDE1cHg7XG4gIGNvbG9yOiAjMjQyNDI0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6IFwiQXZlbmlyIExUIFcwMV81NSBSb21hbjE0NzU1MjBcIiwgU2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBoZWlnaHQ6IDE1cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDE1cHg7XG4gIG1hcmdpbi1ib3R0b206IC0xMnB4O1xuICBtYXJnaW4tdG9wOiAtMTJweDsgfVxuICAucXMgLnBvcG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmMyMTI7XG4gICAgY29sb3I6ICMyNDI0MjQ7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgIGxlZnQ6IC00ZW07XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdG9wOiAzNXB4O1xuICAgIHBhZGRpbmc6IDFlbTtcbiAgICB3aWR0aDogMTRlbTtcbiAgICB6LWluZGV4OiA0OyB9XG4gICAgLnFzIC5wb3BvdmVyOmJlZm9yZSB7XG4gICAgICBib3JkZXItYm90dG9tOiA3cHggc29saWQgI2ZmYzIxMjtcbiAgICAgIGJvcmRlci1yaWdodDogN3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWxlZnQ6IDdweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIHRvcDogLTdweDtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICBtYXJnaW4tbGVmdDogLTMuNWVtO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gIC5xczpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzI0MjQyNDtcbiAgICBjb2xvcjogI2Y1ZjVmNTsgfVxuICAgIC5xczpob3ZlciAucG9wb3ZlciB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGFuaW1hdGlvbjogZmFkZS1pbiAwLjNzIGxpbmVhciAxOyB9XG5cbkBrZXlmcmFtZXMgZmFkZS1pbiB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG4jZmlsZSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAtMTAwO1xuICB3aWR0aDogMDsgfVxuXG4uZmlsZS11cGxvYWQge1xuICBwYWRkaW5nOiAzMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjQUFBQUFBOyB9XG4gIC5maWxlLXVwbG9hZCAudXBsb2FkIHtcbiAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4uZm9ybV9faG9sZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1heC13aWR0aDogNTByZW07XG4gIG1hcmdpbjogMCBhdXRvOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmZvcm1fX2hvbGRlciB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gIC5mb3JtX19ob2xkZXIgLmZvcm0tZWxlbWVudCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9XG4gICAgLmZvcm1fX2hvbGRlciAuZm9ybS1lbGVtZW50IGlucHV0LFxuICAgIC5mb3JtX19ob2xkZXIgLmZvcm0tZWxlbWVudCBzZWxlY3QsXG4gICAgLmZvcm1fX2hvbGRlciAuZm9ybS1lbGVtZW50IHRleHRhcmVhIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgICAuZm9ybV9faG9sZGVyIC5mb3JtLWVsZW1lbnQgaW5wdXQ6OnBsYWNlaG9sZGVyLFxuICAgICAgLmZvcm1fX2hvbGRlciAuZm9ybS1lbGVtZW50IHNlbGVjdDo6cGxhY2Vob2xkZXIsXG4gICAgICAuZm9ybV9faG9sZGVyIC5mb3JtLWVsZW1lbnQgdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgY29sb3I6ICM4MDgwODA7IH1cbiAgICAgIC5mb3JtX19ob2xkZXIgLmZvcm0tZWxlbWVudCBpbnB1dCBvcHRpb24uZW1wdHksXG4gICAgICAuZm9ybV9faG9sZGVyIC5mb3JtLWVsZW1lbnQgc2VsZWN0IG9wdGlvbi5lbXB0eSxcbiAgICAgIC5mb3JtX19ob2xkZXIgLmZvcm0tZWxlbWVudCB0ZXh0YXJlYSBvcHRpb24uZW1wdHkge1xuICAgICAgICBjb2xvcjogIzgwODA4MDsgfVxuICAgIC5mb3JtX19ob2xkZXIgLmZvcm0tZWxlbWVudC0tdGhpcmRzIHtcbiAgICAgIHdpZHRoOiBjYWxjKDMzLjMzMzMzJSAtIDEuODc1cmVtKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfVxuICAgICAgLmZvcm1fX2hvbGRlciAuZm9ybS1lbGVtZW50LS10aGlyZHMgaW5wdXQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICAgICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgICAgIC5mb3JtX19ob2xkZXIgLmZvcm0tZWxlbWVudC0tdGhpcmRzIGlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgY29sb3I6ICM4MDgwODA7IH1cbiAgICAuZm9ybV9faG9sZGVyIC5mb3JtLWVsZW1lbnQtLXF1YXJ0ZXIge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgICAgLmZvcm1fX2hvbGRlciAuZm9ybS1lbGVtZW50LS1xdWFydGVyIHtcbiAgICAgICAgICB3aWR0aDogY2FsYygyNSUgLSAxLjg3NXJlbSk7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gICAgICAuZm9ybV9faG9sZGVyIC5mb3JtLWVsZW1lbnQtLXF1YXJ0ZXIgLmV4cGlyeSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAgICAgLmZvcm1fX2hvbGRlciAuZm9ybS1lbGVtZW50LS1xdWFydGVyIC5leHBpcnkgI2V4cC1zZXAge1xuICAgICAgICAgIHdpZHRoOiAxNXB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICBtYXJnaW46IDAgMXJlbTsgfVxuICAgICAgICAuZm9ybV9faG9sZGVyIC5mb3JtLWVsZW1lbnQtLXF1YXJ0ZXIgLmV4cGlyeSBpbnB1dCB7XG4gICAgICAgICAgd2lkdGg6IDUwJTsgfVxuICAuZm9ybV9faG9sZGVyIGxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuI21jX2VtYmVkX3NpZ251cF9zY3JvbGwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiA1MHJlbTtcbiAgbWFyZ2luOiAwIGF1dG87IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAjbWNfZW1iZWRfc2lnbnVwX3Njcm9sbCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gICNtY19lbWJlZF9zaWdudXBfc2Nyb2xsIHVsIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgICAjbWNfZW1iZWRfc2lnbnVwX3Njcm9sbCB1bCBsaSB7XG4gICAgICBsaXN0LXN0eWxlOiBub25lOyB9XG4gICAgICAjbWNfZW1iZWRfc2lnbnVwX3Njcm9sbCB1bCBsaSBsYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTsgfVxuICAgICAgI21jX2VtYmVkX3NpZ251cF9zY3JvbGwgdWwgbGkgaW5wdXQge1xuICAgICAgICB3aWR0aDogMXJlbTtcbiAgICAgICAgaGVpZ2h0OiAxcmVtOyB9XG5cbiNuZXdzbGV0dGVyLXNpZ251cCB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwYTBhMGE7IH1cbiAgI25ld3NsZXR0ZXItc2lnbnVwIC5mdWxsLXdpZHRoIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgICNuZXdzbGV0dGVyLXNpZ251cCAuZnVsbC13aWR0aCBpbnB1dCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjREVERURFO1xuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAgICAgI25ld3NsZXR0ZXItc2lnbnVwIC5mdWxsLXdpZHRoIGlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiAjODA4MDgwOyB9XG4gICNuZXdzbGV0dGVyLXNpZ251cCAuc2lnbnVwZm9ybSAuaGFsZi13aWR0aCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgICAjbmV3c2xldHRlci1zaWdudXAgLnNpZ251cGZvcm0gLmhhbGYtd2lkdGggbGkge1xuICAgICAgbWFyZ2luOiAxNXB4IDA7IH1cbiAgICAgICNuZXdzbGV0dGVyLXNpZ251cCAuc2lnbnVwZm9ybSAuaGFsZi13aWR0aCBsaSBpbnB1dCB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAgICAgI25ld3NsZXR0ZXItc2lnbnVwIC5zaWdudXBmb3JtIC5oYWxmLXdpZHRoIGxpIGxhYmVsIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAgICNuZXdzbGV0dGVyLXNpZ251cCAuc2lnbnVwZm9ybSAuaGFsZi13aWR0aCBsaSBsYWJlbDpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGhlaWdodDogMXJlbTtcbiAgICAgICAgICB3aWR0aDogMXJlbTtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjODA4MDgwO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBsZWZ0OiAtMjVweDtcbiAgICAgICAgICB0b3A6IDVweDsgfVxuICAgICAgICAjbmV3c2xldHRlci1zaWdudXAgLnNpZ251cGZvcm0gLmhhbGYtd2lkdGggbGkgbGFiZWwuY2hlY2tlZDpiZWZvcmUge1xuICAgICAgICAgIGJvcmRlcjogNnB4IHNvbGlkICM4MDgwODA7IH1cbiAgI25ld3NsZXR0ZXItc2lnbnVwIGg1IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDIuNXJlbSAwIDEuMjVyZW07XG4gICAgZm9udC1mYW1pbHk6IFwiQXZlbmlyIExUIFcwMV82NSBNZWRpdW0xNDc1NTMyXCIsIFNhbnMtc2VyaWY7IH1cbiAgI25ld3NsZXR0ZXItc2lnbnVwIC5jbGVhciB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgI25ld3NsZXR0ZXItc2lnbnVwICNtYy1lbWJlZGRlZC1zdWJzY3JpYmUge1xuICAgIHdpZHRoOiAxMDAlOyB9XG5cbi5hdWN0aW9uLWNhbGVuZGFyX19oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiAxMDB2dztcbiAgbWFyZ2luOiAwIGF1dG87XG4gIG1hcmdpbi10b3A6IDIuNXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmNWY1ZjU7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuYXVjdGlvbi1jYWxlbmRhcl9faGVhZGVyIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgLmF1Y3Rpb24tY2FsZW5kYXJfX2hlYWRlciAuYXVjdGlvbi1jYWxlbmRhcl9faGVhZGluZyB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5hdWN0aW9uLWNhbGVuZGFyX19oZWFkZXIgLmF1Y3Rpb24tY2FsZW5kYXJfX2hlYWRpbmcge1xuICAgICAgICB3aWR0aDogY2FsYygyNSUgLSAxLjg3NXJlbSk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgICAuYXVjdGlvbi1jYWxlbmRhcl9faGVhZGVyIC5hdWN0aW9uLWNhbGVuZGFyX19oZWFkaW5nIGgxIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIkF2ZW5pciBMVCBXMDFfNTUgUm9tYW4xNDc1NTIwXCIsIFNhbnMtc2VyaWY7XG4gICAgICBjb2xvcjogI0FBQUFBQTsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgICAgLmF1Y3Rpb24tY2FsZW5kYXJfX2hlYWRlciAuYXVjdGlvbi1jYWxlbmRhcl9faGVhZGluZyBoMSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjkzNzVyZW07IH0gfVxuICAuYXVjdGlvbi1jYWxlbmRhcl9faGVhZGVyIC5hdWN0aW9uLWNhbGVuZGFyX19saW5rcyB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuYXVjdGlvbi1jYWxlbmRhcl9faGVhZGVyIC5hdWN0aW9uLWNhbGVuZGFyX19saW5rcyB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDQxLjY2NjY3JSAtIDEuODc1cmVtKTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDguMzMzMzMlICsgMC42MjVyZW0pO1xuICAgICAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgICAgIC5hdWN0aW9uLWNhbGVuZGFyX19oZWFkZXIgLmF1Y3Rpb24tY2FsZW5kYXJfX2xpbmtzIC5hdWN0aW9uLWNhbGVuZGFyX19saW5rcy1ob2xkZXIge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgICAgICAuYXVjdGlvbi1jYWxlbmRhcl9faGVhZGVyIC5hdWN0aW9uLWNhbGVuZGFyX19saW5rcyAuYXVjdGlvbi1jYWxlbmRhcl9fbGlua3MtaG9sZGVyIGEsIC5hdWN0aW9uLWNhbGVuZGFyX19oZWFkZXIgLmF1Y3Rpb24tY2FsZW5kYXJfX2xpbmtzIC5hdWN0aW9uLWNhbGVuZGFyX19saW5rcy1ob2xkZXIgLnN1Yi1tZW51IC5mb250LS1ibGFjaywgLnN1Yi1tZW51IC5hdWN0aW9uLWNhbGVuZGFyX19oZWFkZXIgLmF1Y3Rpb24tY2FsZW5kYXJfX2xpbmtzIC5hdWN0aW9uLWNhbGVuZGFyX19saW5rcy1ob2xkZXIgLmZvbnQtLWJsYWNrLFxuICAgICAgICAgIC5hdWN0aW9uLWNhbGVuZGFyX19oZWFkZXIgLmF1Y3Rpb24tY2FsZW5kYXJfX2xpbmtzIC5hdWN0aW9uLWNhbGVuZGFyX19saW5rcy1ob2xkZXIgLmNvcHlyaWdodCAuZm9udC0tYmxhY2ssIC5jb3B5cmlnaHQgLmF1Y3Rpb24tY2FsZW5kYXJfX2hlYWRlciAuYXVjdGlvbi1jYWxlbmRhcl9fbGlua3MgLmF1Y3Rpb24tY2FsZW5kYXJfX2xpbmtzLWhvbGRlciAuZm9udC0tYmxhY2sge1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMS44NzVyZW0pO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogZWFzZS1pbi1vdXQgYWxsIDAuNXM7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgdHJhbnNwYXJlbnQ7IH1cbiAgICAgICAgICAgIC5hdWN0aW9uLWNhbGVuZGFyX19oZWFkZXIgLmF1Y3Rpb24tY2FsZW5kYXJfX2xpbmtzIC5hdWN0aW9uLWNhbGVuZGFyX19saW5rcy1ob2xkZXIgYTpob3ZlciwgLmF1Y3Rpb24tY2FsZW5kYXJfX2hlYWRlciAuYXVjdGlvbi1jYWxlbmRhcl9fbGlua3MgLmF1Y3Rpb24tY2FsZW5kYXJfX2xpbmtzLWhvbGRlciAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrOmhvdmVyLCAuc3ViLW1lbnUgLmF1Y3Rpb24tY2FsZW5kYXJfX2hlYWRlciAuYXVjdGlvbi1jYWxlbmRhcl9fbGlua3MgLmF1Y3Rpb24tY2FsZW5kYXJfX2xpbmtzLWhvbGRlciAuZm9udC0tYmxhY2s6aG92ZXIsXG4gICAgICAgICAgICAuYXVjdGlvbi1jYWxlbmRhcl9faGVhZGVyIC5hdWN0aW9uLWNhbGVuZGFyX19saW5rcyAuYXVjdGlvbi1jYWxlbmRhcl9fbGlua3MtaG9sZGVyIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrOmhvdmVyLCAuY29weXJpZ2h0IC5hdWN0aW9uLWNhbGVuZGFyX19oZWFkZXIgLmF1Y3Rpb24tY2FsZW5kYXJfX2xpbmtzIC5hdWN0aW9uLWNhbGVuZGFyX19saW5rcy1ob2xkZXIgLmZvbnQtLWJsYWNrOmhvdmVyIHtcbiAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICMwYTBhMGE7XG4gICAgICAgICAgICAgIGNvbG9yOiAjMGEwYTBhOyB9IH1cbiAgLmF1Y3Rpb24tY2FsZW5kYXJfX2hlYWRlciAuYXVjdGlvbi1jYWxlbmRhcl9fdmlldy1yZXN1bHRzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuYXVjdGlvbi1jYWxlbmRhcl9faGVhZGVyIC5hdWN0aW9uLWNhbGVuZGFyX192aWV3LXJlc3VsdHMge1xuICAgICAgICB3aWR0aDogY2FsYygxNi42NjY2NyUgLSAxLjg3NXJlbSk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogY2FsYyg4LjMzMzMzJSArIDAuNjI1cmVtKTsgfSB9XG4gICAgLmF1Y3Rpb24tY2FsZW5kYXJfX2hlYWRlciAuYXVjdGlvbi1jYWxlbmRhcl9fdmlldy1yZXN1bHRzIGEsIC5hdWN0aW9uLWNhbGVuZGFyX19oZWFkZXIgLmF1Y3Rpb24tY2FsZW5kYXJfX3ZpZXctcmVzdWx0cyAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrLCAuc3ViLW1lbnUgLmF1Y3Rpb24tY2FsZW5kYXJfX2hlYWRlciAuYXVjdGlvbi1jYWxlbmRhcl9fdmlldy1yZXN1bHRzIC5mb250LS1ibGFjayxcbiAgICAuYXVjdGlvbi1jYWxlbmRhcl9faGVhZGVyIC5hdWN0aW9uLWNhbGVuZGFyX192aWV3LXJlc3VsdHMgLmNvcHlyaWdodCAuZm9udC0tYmxhY2ssIC5jb3B5cmlnaHQgLmF1Y3Rpb24tY2FsZW5kYXJfX2hlYWRlciAuYXVjdGlvbi1jYWxlbmRhcl9fdmlldy1yZXN1bHRzIC5mb250LS1ibGFjayB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgICAgLmF1Y3Rpb24tY2FsZW5kYXJfX2hlYWRlciAuYXVjdGlvbi1jYWxlbmRhcl9fdmlldy1yZXN1bHRzIGEsIC5hdWN0aW9uLWNhbGVuZGFyX19oZWFkZXIgLmF1Y3Rpb24tY2FsZW5kYXJfX3ZpZXctcmVzdWx0cyAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrLCAuc3ViLW1lbnUgLmF1Y3Rpb24tY2FsZW5kYXJfX2hlYWRlciAuYXVjdGlvbi1jYWxlbmRhcl9fdmlldy1yZXN1bHRzIC5mb250LS1ibGFjayxcbiAgICAgICAgLmF1Y3Rpb24tY2FsZW5kYXJfX2hlYWRlciAuYXVjdGlvbi1jYWxlbmRhcl9fdmlldy1yZXN1bHRzIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrLCAuY29weXJpZ2h0IC5hdWN0aW9uLWNhbGVuZGFyX19oZWFkZXIgLmF1Y3Rpb24tY2FsZW5kYXJfX3ZpZXctcmVzdWx0cyAuZm9udC0tYmxhY2sge1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfSB9XG5cbi5hdWN0aW9ucy1jYWxlbmRhciB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZjVmNWY1OyB9XG4gIC5hdWN0aW9ucy1jYWxlbmRhciBoMiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9XG4gIC5hdWN0aW9ucy1jYWxlbmRhciAuYXVjdGlvbnMtY2FsZW5kYXJfX2xpc3Rpbmcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Y1ZjVmNTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgIHBhZGRpbmctdG9wOiAyLjVyZW07IH1cbiAgICAuYXVjdGlvbnMtY2FsZW5kYXIgLmF1Y3Rpb25zLWNhbGVuZGFyX19saXN0aW5nIC5hdWN0aW9uX19kYXRlLWhvbGRlciB7XG4gICAgICB3aWR0aDogY2FsYyg1MCUgLSAxLjg3NXJlbSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAgIC5hdWN0aW9ucy1jYWxlbmRhciAuYXVjdGlvbnMtY2FsZW5kYXJfX2xpc3RpbmcgLmF1Y3Rpb25fX2RhdGUtaG9sZGVyIHtcbiAgICAgICAgICB3aWR0aDogY2FsYygxNi42NjY2NyUgLSAxLjg3NXJlbSk7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gICAgICAuYXVjdGlvbnMtY2FsZW5kYXIgLmF1Y3Rpb25zLWNhbGVuZGFyX19saXN0aW5nIC5hdWN0aW9uX19kYXRlLWhvbGRlciAuYXVjdGlvbl9fbG90IHtcbiAgICAgICAgY29sb3I6ICNBQUFBQUE7IH1cbiAgICAgIC5hdWN0aW9ucy1jYWxlbmRhciAuYXVjdGlvbnMtY2FsZW5kYXJfX2xpc3RpbmcgLmF1Y3Rpb25fX2RhdGUtaG9sZGVyIC5hdWN0aW9uX19kYXRlIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxOyB9XG4gICAgICAgIC5hdWN0aW9ucy1jYWxlbmRhciAuYXVjdGlvbnMtY2FsZW5kYXJfX2xpc3RpbmcgLmF1Y3Rpb25fX2RhdGUtaG9sZGVyIC5hdWN0aW9uX19kYXRlIC53b3JkMSB7XG4gICAgICAgICAgZm9udC1zaXplOiA0cmVtO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAgIC5hdWN0aW9ucy1jYWxlbmRhciAuYXVjdGlvbnMtY2FsZW5kYXJfX2xpc3RpbmcgLmF1Y3Rpb25fX2RhdGUtaG9sZGVyIC5hdWN0aW9uX19kYXRlIC53b3JkMiB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07IH1cbiAgICAuYXVjdGlvbnMtY2FsZW5kYXIgLmF1Y3Rpb25zLWNhbGVuZGFyX19saXN0aW5nIC5hdWN0aW9uX19jdGFzIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAgIC5hdWN0aW9ucy1jYWxlbmRhciAuYXVjdGlvbnMtY2FsZW5kYXJfX2xpc3RpbmcgLmF1Y3Rpb25fX2N0YXMge1xuICAgICAgICAgIHdpZHRoOiBjYWxjKDI1JSAtIDEuODc1cmVtKTtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgICAuYXVjdGlvbnMtY2FsZW5kYXIgLmF1Y3Rpb25zLWNhbGVuZGFyX19saXN0aW5nIC5hdWN0aW9uX19pbWFnZSB7XG4gICAgICB3aWR0aDogY2FsYyg1MCUgLSAxLjg3NXJlbSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgICAgLmF1Y3Rpb25zLWNhbGVuZGFyIC5hdWN0aW9ucy1jYWxlbmRhcl9fbGlzdGluZyAuYXVjdGlvbl9faW1hZ2Uge1xuICAgICAgICAgIHdpZHRoOiBjYWxjKDE2LjY2NjY3JSAtIDEuODc1cmVtKTtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgICAuYXVjdGlvbnMtY2FsZW5kYXIgLmF1Y3Rpb25zLWNhbGVuZGFyX19saXN0aW5nIC5hdWN0aW9uX19kZXRhaWxzIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS4yOyB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgICAuYXVjdGlvbnMtY2FsZW5kYXIgLmF1Y3Rpb25zLWNhbGVuZGFyX19saXN0aW5nIC5hdWN0aW9uX19kZXRhaWxzIHtcbiAgICAgICAgICB3aWR0aDogY2FsYyg0MS42NjY2NyUgLSAxLjg3NXJlbSk7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gICAgICAuYXVjdGlvbnMtY2FsZW5kYXIgLmF1Y3Rpb25zLWNhbGVuZGFyX19saXN0aW5nIC5hdWN0aW9uX19kZXRhaWxzIGgyIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiQXZlbmlyIExUIFcwMV81NSBSb21hbjE0NzU1MjBcIiwgU2Fucy1zZXJpZjsgfVxuICAgICAgLmF1Y3Rpb25zLWNhbGVuZGFyIC5hdWN0aW9ucy1jYWxlbmRhcl9fbGlzdGluZyAuYXVjdGlvbl9fZGV0YWlscyBwIHtcbiAgICAgICAgY29sb3I6ICNBQUFBQUE7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7IH1cblxuLnNhbGUtaW5mb3JtYXRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgbWFyZ2luOiAwIGF1dG87IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuc2FsZS1pbmZvcm1hdGlvbiB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gIC5zYWxlLWluZm9ybWF0aW9uIGg0LCAuc2FsZS1pbmZvcm1hdGlvbiAuYWJvdXRfX2hlYWRlciBwLCAuYWJvdXRfX2hlYWRlciAuc2FsZS1pbmZvcm1hdGlvbiBwIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07IH1cbiAgLnNhbGUtaW5mb3JtYXRpb24gLnNhbGUtaW5mb3JtYXRpb25fX2luZm8ge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfVxuICAgIC5zYWxlLWluZm9ybWF0aW9uIC5zYWxlLWluZm9ybWF0aW9uX19pbmZvIHAsXG4gICAgLnNhbGUtaW5mb3JtYXRpb24gLnNhbGUtaW5mb3JtYXRpb25fX2luZm8gYSxcbiAgICAuc2FsZS1pbmZvcm1hdGlvbiAuc2FsZS1pbmZvcm1hdGlvbl9faW5mbyAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrLFxuICAgIC5zdWItbWVudSAuc2FsZS1pbmZvcm1hdGlvbiAuc2FsZS1pbmZvcm1hdGlvbl9faW5mbyAuZm9udC0tYmxhY2ssXG4gICAgLnNhbGUtaW5mb3JtYXRpb24gLnNhbGUtaW5mb3JtYXRpb25fX2luZm8gLmNvcHlyaWdodCAuZm9udC0tYmxhY2ssXG4gICAgLmNvcHlyaWdodCAuc2FsZS1pbmZvcm1hdGlvbiAuc2FsZS1pbmZvcm1hdGlvbl9faW5mbyAuZm9udC0tYmxhY2sge1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgY29sb3I6ICNBQUFBQUE7IH1cbiAgICAuc2FsZS1pbmZvcm1hdGlvbiAuc2FsZS1pbmZvcm1hdGlvbl9faW5mbyBoNiBzcGFuLCAuc2FsZS1pbmZvcm1hdGlvbiAuc2FsZS1pbmZvcm1hdGlvbl9faW5mbyAuYXVjdGlvbi1jYXRhbG9ndWUgLmF1Y3Rpb24tY2F0YWxvZ3VlX19pdGVtIC5hdWN0aW9uLWNhdGFsb2d1ZV9faXRlbV9faGVhZGluZyBzcGFuLCAuYXVjdGlvbi1jYXRhbG9ndWUgLmF1Y3Rpb24tY2F0YWxvZ3VlX19pdGVtIC5zYWxlLWluZm9ybWF0aW9uIC5zYWxlLWluZm9ybWF0aW9uX19pbmZvIC5hdWN0aW9uLWNhdGFsb2d1ZV9faXRlbV9faGVhZGluZyBzcGFuIHtcbiAgICAgIGNvbG9yOiAjQUFBQUFBOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5zYWxlLWluZm9ybWF0aW9uIC5zYWxlLWluZm9ybWF0aW9uX19pbmZvIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMlIC0gMS44NzVyZW0pO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG5cbi5hdWN0aW9uLWNhdGFsb2d1ZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICBtYXgtd2lkdGg6IDc1cmVtO1xuICBtYXJnaW46IDAgYXV0bzsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5hdWN0aW9uLWNhdGFsb2d1ZSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gIC5hdWN0aW9uLWNhdGFsb2d1ZSAuYXVjdGlvbi1jYXRhbG9ndWVfX2l0ZW0ge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuYXVjdGlvbi1jYXRhbG9ndWUgLmF1Y3Rpb24tY2F0YWxvZ3VlX19pdGVtIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMS44NzVyZW0pO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTsgfSB9XG4gICAgLmF1Y3Rpb24tY2F0YWxvZ3VlIC5hdWN0aW9uLWNhdGFsb2d1ZV9faXRlbSAuYXVjdGlvbi1jYXRhbG9ndWVfX2l0ZW1fX2ltYWdlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtaW4taGVpZ2h0OiAyODBweDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfVxuICAgIC5hdWN0aW9uLWNhdGFsb2d1ZSAuYXVjdGlvbi1jYXRhbG9ndWVfX2l0ZW0gLmF1Y3Rpb24tY2F0YWxvZ3VlX19pdGVtX19oZWFkaW5nIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNBQUFBQUE7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5hdWN0aW9uLWNhdGFsb2d1ZSAuYXVjdGlvbi1jYXRhbG9ndWVfX2l0ZW0gcCB7XG4gICAgICBjb2xvcjogI0FBQUFBQTsgfVxuICAuYXVjdGlvbi1jYXRhbG9ndWUuaXRlbXMtcGFnZSB7XG4gICAgbWFyZ2luLXRvcDogNy41cmVtO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjQUFBQUFBOyB9XG4gICAgLmF1Y3Rpb24tY2F0YWxvZ3VlLml0ZW1zLXBhZ2UgaDQsIC5hdWN0aW9uLWNhdGFsb2d1ZS5pdGVtcy1wYWdlIC5hYm91dF9faGVhZGVyIHAsIC5hYm91dF9faGVhZGVyIC5hdWN0aW9uLWNhdGFsb2d1ZS5pdGVtcy1wYWdlIHAge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IDIuNXJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIuNXJlbTsgfVxuXG4ucGFnaW5hdGlvbi1ob2xkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tdG9wOiAyLjVyZW07IH1cbiAgLnBhZ2luYXRpb24taG9sZGVyIGEsIC5wYWdpbmF0aW9uLWhvbGRlciAuc3ViLW1lbnUgLmZvbnQtLWJsYWNrLCAuc3ViLW1lbnUgLnBhZ2luYXRpb24taG9sZGVyIC5mb250LS1ibGFjayxcbiAgLnBhZ2luYXRpb24taG9sZGVyIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrLCAuY29weXJpZ2h0IC5wYWdpbmF0aW9uLWhvbGRlciAuZm9udC0tYmxhY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyOyB9XG4gICAgLnBhZ2luYXRpb24taG9sZGVyIGEgc3BhbiwgLnBhZ2luYXRpb24taG9sZGVyIC5zdWItbWVudSAuZm9udC0tYmxhY2sgc3BhbiwgLnN1Yi1tZW51IC5wYWdpbmF0aW9uLWhvbGRlciAuZm9udC0tYmxhY2sgc3BhbiwgLnBhZ2luYXRpb24taG9sZGVyIC5jb3B5cmlnaHQgLmZvbnQtLWJsYWNrIHNwYW4sIC5jb3B5cmlnaHQgLnBhZ2luYXRpb24taG9sZGVyIC5mb250LS1ibGFjayBzcGFuIHtcbiAgICAgIGNvbG9yOiAjMGEwYTBhO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgICAucGFnaW5hdGlvbi1ob2xkZXIgYTpmaXJzdC1vZi10eXBlLCAucGFnaW5hdGlvbi1ob2xkZXIgLnN1Yi1tZW51IC5mb250LS1ibGFjazpmaXJzdC1vZi10eXBlLCAuc3ViLW1lbnUgLnBhZ2luYXRpb24taG9sZGVyIC5mb250LS1ibGFjazpmaXJzdC1vZi10eXBlLFxuICAgIC5wYWdpbmF0aW9uLWhvbGRlciAuY29weXJpZ2h0IC5mb250LS1ibGFjazpmaXJzdC1vZi10eXBlLCAuY29weXJpZ2h0IC5wYWdpbmF0aW9uLWhvbGRlciAuZm9udC0tYmxhY2s6Zmlyc3Qtb2YtdHlwZSwgLnBhZ2luYXRpb24taG9sZGVyIGE6bGFzdC1vZi10eXBlLCAucGFnaW5hdGlvbi1ob2xkZXIgLnN1Yi1tZW51IC5mb250LS1ibGFjazpsYXN0LW9mLXR5cGUsIC5zdWItbWVudSAucGFnaW5hdGlvbi1ob2xkZXIgLmZvbnQtLWJsYWNrOmxhc3Qtb2YtdHlwZSxcbiAgICAucGFnaW5hdGlvbi1ob2xkZXIgLmNvcHlyaWdodCAuZm9udC0tYmxhY2s6bGFzdC1vZi10eXBlLCAuY29weXJpZ2h0IC5wYWdpbmF0aW9uLWhvbGRlciAuZm9udC0tYmxhY2s6bGFzdC1vZi10eXBlIHtcbiAgICAgIGZvbnQtc2l6ZTogMnJlbTsgfVxuXG4uYXVjdGlvbi1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1heC13aWR0aDogNzVyZW07XG4gIG1hcmdpbjogMCBhdXRvOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmF1Y3Rpb24taXRlbSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gIC5hdWN0aW9uLWl0ZW0gLmF1Y3Rpb24taXRlbV9faW1hZ2VzIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmF1Y3Rpb24taXRlbSAuYXVjdGlvbi1pdGVtX19pbWFnZXMge1xuICAgICAgICB3aWR0aDogY2FsYyg1MCUgLSAxLjg3NXJlbSk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgICAuYXVjdGlvbi1pdGVtIC5hdWN0aW9uLWl0ZW1fX2ltYWdlcyAuYXVjdGlvbi1pdGVtX19pbWFnZXNfX3pvb20sXG4gICAgLmF1Y3Rpb24taXRlbSAuYXVjdGlvbi1pdGVtX19pbWFnZXMgLmF1Y3Rpb24taXRlbV9faW1hZ2VzX196b29tIHtcbiAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyOyB9XG4gICAgLmF1Y3Rpb24taXRlbSAuYXVjdGlvbi1pdGVtX19pbWFnZXMgLmF1Y3Rpb24taXRlbV9faW1hZ2VzX19zbWFsbCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1mbG93OiByb3cgd3JhcDsgfVxuICAgICAgLmF1Y3Rpb24taXRlbSAuYXVjdGlvbi1pdGVtX19pbWFnZXMgLmF1Y3Rpb24taXRlbV9faW1hZ2VzX19zbWFsbCBhLCAuYXVjdGlvbi1pdGVtIC5hdWN0aW9uLWl0ZW1fX2ltYWdlcyAuYXVjdGlvbi1pdGVtX19pbWFnZXNfX3NtYWxsIC5zdWItbWVudSAuZm9udC0tYmxhY2ssIC5zdWItbWVudSAuYXVjdGlvbi1pdGVtIC5hdWN0aW9uLWl0ZW1fX2ltYWdlcyAuYXVjdGlvbi1pdGVtX19pbWFnZXNfX3NtYWxsIC5mb250LS1ibGFjayxcbiAgICAgIC5hdWN0aW9uLWl0ZW0gLmF1Y3Rpb24taXRlbV9faW1hZ2VzIC5hdWN0aW9uLWl0ZW1fX2ltYWdlc19fc21hbGwgLmNvcHlyaWdodCAuZm9udC0tYmxhY2ssIC5jb3B5cmlnaHQgLmF1Y3Rpb24taXRlbSAuYXVjdGlvbi1pdGVtX19pbWFnZXMgLmF1Y3Rpb24taXRlbV9faW1hZ2VzX19zbWFsbCAuZm9udC0tYmxhY2sge1xuICAgICAgICB3aWR0aDogY2FsYygzMy4zMzMzMyUgLSAxLjg3NXJlbSk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxNTBweDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyB9XG5cbi5hdWN0aW9uLWl0ZW1fX2NvbnRlbnQge1xuICB3aWR0aDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5hdWN0aW9uLWl0ZW1fX2NvbnRlbnQge1xuICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMS44NzVyZW0pO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9IH1cblxuLnNpdGUtY29udGVudC5hdWN0aW9ucy1jYWxlbmRhciAuYXVjdGlvbi1jYXRhbG9ndWUgLmF1Y3Rpb24tY2F0YWxvZ3VlX19pdGVtIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNBQUFBQUE7IH1cbiAgLnNpdGUtY29udGVudC5hdWN0aW9ucy1jYWxlbmRhciAuYXVjdGlvbi1jYXRhbG9ndWUgLmF1Y3Rpb24tY2F0YWxvZ3VlX19pdGVtIC5hdWN0aW9uLWNhdGFsb2d1ZV9faXRlbV9faGVhZGluZyB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuXG4uc2VhcmNoLXJlc3VsdHNfX3NlYXJjaCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICBtYXgtd2lkdGg6IDc1cmVtO1xuICBtYXJnaW46IDAgYXV0bztcbiAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5zZWFyY2gtcmVzdWx0c19fc2VhcmNoIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgLnNlYXJjaC1yZXN1bHRzX19zZWFyY2ggLnNlYXJjaC1yZXN1bHRzX19zZWFyY2gtYm94IHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07IH1cbiAgICAuc2VhcmNoLXJlc3VsdHNfX3NlYXJjaCAuc2VhcmNoLXJlc3VsdHNfX3NlYXJjaC1ib3ggaW5wdXQge1xuICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5zZWFyY2gtcmVzdWx0c19fc2VhcmNoIC5zZWFyY2gtcmVzdWx0c19fc2VhcmNoLWJveCB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEuODc1cmVtKTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDE2LjY2NjY3JSArIDAuNjI1cmVtKTsgfSB9XG4gIC5zZWFyY2gtcmVzdWx0c19fc2VhcmNoIC5zZWFyY2gtcmVzdWx0c19fc2VhcmNoLWJ1dHRvbiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9XG4gICAgLnNlYXJjaC1yZXN1bHRzX19zZWFyY2ggLnNlYXJjaC1yZXN1bHRzX19zZWFyY2gtYnV0dG9uIGlucHV0IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAuc2VhcmNoLXJlc3VsdHNfX3NlYXJjaCAuc2VhcmNoLXJlc3VsdHNfX3NlYXJjaC1idXR0b24ge1xuICAgICAgICB3aWR0aDogY2FsYygxNi42NjY2NyUgLSAxLjg3NXJlbSk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9IH1cblxuLnNlYXJjaC1yZXN1bHRzX19zZWFyY2gtY2hlY2tib3hlcyBpbnB1dCB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2VhcmNoLXJlc3VsdHNfX3NlYXJjaC1jaGVja2JveGVzIGxhYmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5zZWFyY2gtcmVzdWx0c19fc2VhcmNoLWNoZWNrYm94ZXMgbGFiZWw6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBoZWlnaHQ6IDFyZW07XG4gICAgd2lkdGg6IDFyZW07XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzgwODA4MDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogLTI1cHg7XG4gICAgdG9wOiA1cHg7IH1cbiAgLnNlYXJjaC1yZXN1bHRzX19zZWFyY2gtY2hlY2tib3hlcyBsYWJlbC5jaGVja2VkOmJlZm9yZSB7XG4gICAgYm9yZGVyOiA2cHggc29saWQgIzgwODA4MDsgfVxuXG4jY2FyZC10eXBlcyB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAjY2FyZC10eXBlcyBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lOyB9XG4gICAgI2NhcmQtdHlwZXMgbGkuZmFkZWQge1xuICAgICAgb3BhY2l0eTogMC4zOyB9XG5cbi5zdWJ0b3RhbCBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuc3VidG90YWwgcC50b3RhbCB7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICMwYTBhMGE7XG4gICAgbWFyZ2luLXRvcDogMi41cmVtO1xuICAgIHBhZGRpbmctdG9wOiAxNXB4OyB9XG4gICAgLnN1YnRvdGFsIHAudG90YWw6bGFzdC1vZi10eXBlIHtcbiAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgcGFkZGluZy10b3A6IDA7IH1cblxuI21ha2UtcGF5bWVudC1idXR0b24ge1xuICBtYXJnaW4tdG9wOiAyLjVyZW07IH1cblxuLmctcmVjYXB0Y2hhIHtcbiAgbWFyZ2luLXRvcDogMi41cmVtOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5jb250YWN0X19sb2NhdGlvbi1ob2xkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgIG1heC13aWR0aDogNzVyZW07XG4gICAgbWFyZ2luOiAwIGF1dG87IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuY29udGFjdF9fbG9jYXRpb24taG9sZGVyIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cblxuLmNvbnRhY3RfX2xvY2F0aW9uLWhvbGRlciAuY29udGFjdF9fbG9jYXRpb24ge1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICNmNWY1ZjU7XG4gIHBhZGRpbmctdG9wOiAyLjVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAyLjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuY29udGFjdF9fbG9jYXRpb24taG9sZGVyIC5jb250YWN0X19sb2NhdGlvbiB7XG4gICAgICB3aWR0aDogY2FsYyg1MCUgLSAxLjg3NXJlbSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuY29udGFjdF9fbG9jYXRpb24taG9sZGVyIC5jb250YWN0X19kZXRhaWxzLWhvbGRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwOyB9IH1cblxuLmNvbnRhY3RfX2xvY2F0aW9uLWhvbGRlciAuY29udGFjdF9fZGV0YWlscy1ob2xkZXIgLmNvbnRhY3RfX2NpdHkge1xuICB3aWR0aDogMTAwJTsgfVxuXG4uY29udGFjdF9fbG9jYXRpb24taG9sZGVyIC5jb250YWN0X19kZXRhaWxzLWhvbGRlciAuY29udGFjdF9fYWRkcmVzcyB7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmNvbnRhY3RfX2xvY2F0aW9uLWhvbGRlciAuY29udGFjdF9fZGV0YWlscy1ob2xkZXIgLmNvbnRhY3RfX2FkZHJlc3Mge1xuICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMS44NzVyZW0pO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmNvbnRhY3RfX2xvY2F0aW9uLWhvbGRlciAuY29udGFjdF9fZGV0YWlscy1ob2xkZXIgLmNvbnRhY3RfX3Bob25lIHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAxLjg3NXJlbSk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG5cbi5jb250YWN0X19sb2NhdGlvbi1ob2xkZXIgLmNvbnRhY3RfX2RldGFpbHMtaG9sZGVyIC5jb250YWN0X19waG9uZSBwIHtcbiAgbGluZS1oZWlnaHQ6IDE7IH1cblxuLmNvbnRhY3RfX2xvY2F0aW9uLWhvbGRlciAuYWNmLW1hcCB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7XG4gIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICBoZWlnaHQ6IDI1MHB4O1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAyLjVyZW0gMDtcbiAgYm9yZGVyOiA1cHggc29saWQgI0FBQUFBQTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuY29udGFjdF9fbG9jYXRpb24taG9sZGVyIC5jb250YWN0X19ob3VycyBzcGFuIHAge1xuICAgIGNvbHVtbnM6IDI7IH0gfVxuXG4jY29udGFjdC1mb3JtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1heC13aWR0aDogNDByZW07XG4gIG1hcmdpbjogMCBhdXRvOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgI2NvbnRhY3QtZm9ybSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gICNjb250YWN0LWZvcm0gc2VjdGlvbiB7XG4gICAgd2lkdGg6IDEwMCU7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmhvdy10b19faW50cm8ge1xuICAgIGZvbnQtc2l6ZTogMzZweDsgfSB9XG5cbi5ob3ctdG9fX2ludHJvIHAge1xuICBsaW5lLWhlaWdodDogMS4xOyB9XG5cbi5iaWRkaW5nLWNpcmNsZV9faG9sZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1heC13aWR0aDogMTA2LjI1cmVtO1xuICBtYXJnaW46IDAgYXV0bzsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5iaWRkaW5nLWNpcmNsZV9faG9sZGVyIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgLmJpZGRpbmctY2lyY2xlX19ob2xkZXIgLmJpZGRpbmctY2lyY2xlIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMzMwcHg7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmJpZGRpbmctY2lyY2xlX19ob2xkZXIgLmJpZGRpbmctY2lyY2xlIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMS44NzVyZW0pO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICAgICAgaGVpZ2h0OiAzNjBweDsgfSB9XG4gICAgLmJpZGRpbmctY2lyY2xlX19ob2xkZXIgLmJpZGRpbmctY2lyY2xlOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGhlaWdodDogMzAwcHg7XG4gICAgICB3aWR0aDogMzAwcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICB6LWluZGV4OiAtMTtcbiAgICAgIGJvcmRlcjogIzBhMGEwYSAxNjBweCBzb2xpZDsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgICAgLmJpZGRpbmctY2lyY2xlX19ob2xkZXIgLmJpZGRpbmctY2lyY2xlOmJlZm9yZSB7XG4gICAgICAgICAgaGVpZ2h0OiAzNjBweDtcbiAgICAgICAgICB3aWR0aDogMzYwcHg7XG4gICAgICAgICAgYm9yZGVyOiAjMGEwYTBhIDE4MHB4IHNvbGlkOyB9IH1cbiAgICAuYmlkZGluZy1jaXJjbGVfX2hvbGRlciAuYmlkZGluZy1jaXJjbGUgLmJpZGRpbmctY2lyY2xlX19jb250ZW50IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDUzJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgIHdpZHRoOiAyOTBweDtcbiAgICAgIHRvcDogNjVweDsgfVxuICAgICAgLmJpZGRpbmctY2lyY2xlX19ob2xkZXIgLmJpZGRpbmctY2lyY2xlIC5iaWRkaW5nLWNpcmNsZV9fY29udGVudCBoMyB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIkF2ZW5pciBMVCBXMDFfODUgSGVhdnkxNDc1NTQ0XCIsIFNhbnMtc2VyaWY7XG4gICAgICAgIGZvbnQtc2l6ZTogMzZweDsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgICAgLmJpZGRpbmctY2lyY2xlX19ob2xkZXIgLmJpZGRpbmctY2lyY2xlIC5iaWRkaW5nLWNpcmNsZV9fY29udGVudCBwIHtcbiAgICAgICAgICBmb250LXNpemU6IDIwcHg7IH0gfVxuICAuYmlkZGluZy1jaXJjbGVfX2hvbGRlci5ZZWxsb3cgLmJpZGRpbmctY2lyY2xlOmJlZm9yZSB7XG4gICAgYm9yZGVyOiAjRkY5RTMxIDE4MHB4IHNvbGlkOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtaG93LXRvIC5tYWluLWdyaWQge1xuICAgIG1hcmdpbi10b3A6IDEyMHB4OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmJpZGRpbmctb3B0aW9ucyB7XG4gICAgY29sdW1uLWNvdW50OiAyO1xuICAgIGNvbHVtbi1nYXA6IDQwcHg7IH0gfVxuXG5zZWN0aW9uIHtcbiAgbWFyZ2luLXRvcDogMS4yNXJlbTtcbiAgcGFkZGluZy10b3A6IDEuMjVyZW07XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgc2VjdGlvbiB7XG4gICAgICBtYXJnaW4tdG9wOiAyLjVyZW07XG4gICAgICBwYWRkaW5nLXRvcDogMi41cmVtOyB9IH1cbiAgc2VjdGlvbjpsYXN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi1ib3R0b206IDIuNXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtOyB9XG4gIHNlY3Rpb24ubm8tcGFkZGluZyB7XG4gICAgcGFkZGluZy10b3A6IDA7IH1cbiAgc2VjdGlvbiAuc2VjdGlvbl9faGVhZGluZywgc2VjdGlvbiAuc2VjdGlvbl9faGVhZGluZy0tbm8tcGFkZGluZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgbWF4LXdpZHRoOiAxMDYuMjVyZW07XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICBzZWN0aW9uIC5zZWN0aW9uX19oZWFkaW5nLCBzZWN0aW9uIC5zZWN0aW9uX19oZWFkaW5nLS1uby1wYWRkaW5nIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gICAgc2VjdGlvbiAuc2VjdGlvbl9faGVhZGluZy0tbm8tcGFkZGluZyB7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7IH1cbiAgc2VjdGlvbi5zZWN0aW9uLS1saWdodC1ncmV5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1OyB9XG4gIHNlY3Rpb246bGFzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgc2VjdGlvbiAuaW50cm8gcCB7XG4gICAgICBmb250LXNpemU6IDM2cHg7XG4gICAgICBsaW5lLWhlaWdodDogMS4xOyB9IH1cblxuLnRleHQtLWxpZ2h0IHtcbiAgY29sb3I6ICNBQUFBQUE7IH1cblxuLmZvbnQtLWhlYXZ5IHtcbiAgZm9udC1mYW1pbHk6IFwiQXZlbmlyIExUIFcwMV84NSBIZWF2eTE0NzU1NDRcIiwgU2Fucy1zZXJpZjsgfVxuXG4uZm9udC0taGVhZGluZyB7XG4gIGZvbnQtZmFtaWx5OiBcIkF2ZW5pciBMVCBXMDFfNTUgUm9tYW4xNDc1NTIwXCIsIFNhbnMtc2VyaWY7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmhpZGUtZm9yLW1lZGl1bS11cCB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbmgxIHtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIG1hcmdpbi1ib3R0b206IDIuNXJlbTtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAwLjg7XG4gIGZvbnQtZmFtaWx5OiBcIkRpZG90XCIsIFNlcmlmO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgaDEge1xuICAgICAgZm9udC1zaXplOiA1cmVtOyB9IH1cblxuLmZhZGVkLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgcmlnaHQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuZmFkZWQtYmFja2dyb3VuZCAuaGVhZGVyX19ob2xkZXIge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLmZhZGVkLWJhY2tncm91bmQgLmhlYWRlcl9faG9sZGVyIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gICAgLmZhZGVkLWJhY2tncm91bmQgLmhlYWRlcl9faG9sZGVyIC5kZXBhcnRtZW50X19oZWFkZXIge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtaW4taGVpZ2h0OiAyNXZoO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHotaW5kZXg6IDE7IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5mYWRlZC1iYWNrZ3JvdW5kIC5oZWFkZXJfX2hvbGRlciAuZGVwYXJ0bWVudF9faGVhZGVyIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiA1MHZoOyB9IH1cbiAgICAgIC5mYWRlZC1iYWNrZ3JvdW5kIC5oZWFkZXJfX2hvbGRlciAuZGVwYXJ0bWVudF9faGVhZGVyIGgxIHtcbiAgICAgICAgY29sb3I6ICNmZWZlZmU7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMi41cmVtO1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDAuODtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiRGlkb3RcIiwgU2VyaWY7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICAgICAgLmZhZGVkLWJhY2tncm91bmQgLmhlYWRlcl9faG9sZGVyIC5kZXBhcnRtZW50X19oZWFkZXIgaDEgc3BhbjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiBcIkRpZG90IEl0YWxpY1wiLCBTZXJpZjtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgICAgIC5mYWRlZC1iYWNrZ3JvdW5kIC5oZWFkZXJfX2hvbGRlciAuZGVwYXJ0bWVudF9faGVhZGVyIGgxIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogNXJlbTsgfSB9XG4gIC5mYWRlZC1iYWNrZ3JvdW5kOmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMjV2aDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBjb250ZW50OiAnJzsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuZmFkZWQtYmFja2dyb3VuZDphZnRlciB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDUwdmg7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAudHdvLWNvbC0tbWQtdXAge1xuICAgIGNvbHVtbi1jb3VudDogMjtcbiAgICBjb2x1bW4tZ2FwOiA0MHB4OyB9IH1cblxuLmZ1bGwtd2lkdGgge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbi5oYWxmLXdpZHRoIHtcbiAgd2lkdGg6IGNhbGMoNTAlIC0gMS44NzVyZW0pO1xuICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfVxuXG5ib2R5LmZpeGVkIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMTAwJTsgfVxuXG4vKiBTbGlkZXIgKi9cbi5zbGljay1sb2FkaW5nIC5zbGljay1saXN0IHtcbiAgYmFja2dyb3VuZDogI2ZmZiB1cmwoXCIuL2FqYXgtbG9hZGVyLmdpZlwiKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDsgfVxuXG4vKiBJY29ucyAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcInNsaWNrXCI7XG4gIHNyYzogdXJsKFwiLi9mb250cy9zbGljay5lb3RcIik7XG4gIHNyYzogdXJsKFwiLi9mb250cy9zbGljay5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCIuL2ZvbnRzL3NsaWNrLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi9mb250cy9zbGljay50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcIi4vZm9udHMvc2xpY2suc3ZnI3NsaWNrXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cbi8qIEFycm93cyAqL1xuLnNsaWNrLXByZXYsXG4uc2xpY2stbmV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMjBweDtcbiAgd2lkdGg6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAwcHg7XG4gIGZvbnQtc2l6ZTogMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRvcDogNTAlO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7IH1cbiAgLnNsaWNrLXByZXY6aG92ZXIsIC5zbGljay1wcmV2OmZvY3VzLFxuICAuc2xpY2stbmV4dDpob3ZlcixcbiAgLnNsaWNrLW5leHQ6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLnNsaWNrLXByZXY6aG92ZXI6YmVmb3JlLCAuc2xpY2stcHJldjpmb2N1czpiZWZvcmUsXG4gICAgLnNsaWNrLW5leHQ6aG92ZXI6YmVmb3JlLFxuICAgIC5zbGljay1uZXh0OmZvY3VzOmJlZm9yZSB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5zbGljay1wcmV2LnNsaWNrLWRpc2FibGVkOmJlZm9yZSxcbiAgLnNsaWNrLW5leHQuc2xpY2stZGlzYWJsZWQ6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwLjI1OyB9XG4gIC5zbGljay1wcmV2OmJlZm9yZSxcbiAgLnNsaWNrLW5leHQ6YmVmb3JlIHtcbiAgICBmb250LWZhbWlseTogXCJzbGlja1wiO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgb3BhY2l0eTogMC43NTtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyB9XG5cbi5zbGljay1wcmV2IHtcbiAgbGVmdDogLTI1cHg7IH1cbiAgW2Rpcj1cInJ0bFwiXSAuc2xpY2stcHJldiB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogLTI1cHg7IH1cbiAgLnNsaWNrLXByZXY6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIuKGkFwiOyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAuc2xpY2stcHJldjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCLihpJcIjsgfVxuXG4uc2xpY2stbmV4dCB7XG4gIHJpZ2h0OiAtMjVweDsgfVxuICBbZGlyPVwicnRsXCJdIC5zbGljay1uZXh0IHtcbiAgICBsZWZ0OiAtMjVweDtcbiAgICByaWdodDogYXV0bzsgfVxuICAuc2xpY2stbmV4dDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwi4oaSXCI7IH1cbiAgICBbZGlyPVwicnRsXCJdIC5zbGljay1uZXh0OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIuKGkFwiOyB9XG5cbi8qIERvdHMgKi9cbi5zbGljay1kb3R0ZWQuc2xpY2stc2xpZGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuXG4uc2xpY2stZG90cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAtMjVweDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMTAwJTsgfVxuICAuc2xpY2stZG90cyBsaSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgbWFyZ2luOiAwIDVweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgIC5zbGljay1kb3RzIGxpIGJ1dHRvbiB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgbGluZS1oZWlnaHQ6IDBweDtcbiAgICAgIGZvbnQtc2l6ZTogMHB4O1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgICAuc2xpY2stZG90cyBsaSBidXR0b246aG92ZXIsIC5zbGljay1kb3RzIGxpIGJ1dHRvbjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7IH1cbiAgICAgICAgLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmhvdmVyOmJlZm9yZSwgLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmZvY3VzOmJlZm9yZSB7XG4gICAgICAgICAgb3BhY2l0eTogMTsgfVxuICAgICAgLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmJlZm9yZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBjb250ZW50OiBcIuKAolwiO1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICBmb250LWZhbWlseTogXCJzbGlja1wiO1xuICAgICAgICBmb250LXNpemU6IDZweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgICBvcGFjaXR5OiAwLjI1O1xuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgfVxuICAgIC5zbGljay1kb3RzIGxpLnNsaWNrLWFjdGl2ZSBidXR0b246YmVmb3JlIHtcbiAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgIG9wYWNpdHk6IDAuNzU7IH1cblxuLyogU2xpZGVyICovXG4uc2xpY2stc2xpZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xuICB0b3VjaC1hY3Rpb246IHBhbi15O1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi5zbGljay1saXN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG4gIC5zbGljay1saXN0OmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lOyB9XG4gIC5zbGljay1saXN0LmRyYWdnaW5nIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY3Vyc29yOiBoYW5kOyB9XG5cbi5zbGljay1zbGlkZXIgLnNsaWNrLXRyYWNrLFxuLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdCB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuXG4uc2xpY2stdHJhY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cbiAgLnNsaWNrLXRyYWNrOmJlZm9yZSwgLnNsaWNrLXRyYWNrOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIC5zbGljay10cmFjazphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNsaWNrLWxvYWRpbmcgLnNsaWNrLXRyYWNrIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWNrLXNsaWRlIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBkaXNwbGF5OiBub25lOyB9XG4gIFtkaXI9XCJydGxcIl0gLnNsaWNrLXNsaWRlIHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cbiAgLnNsaWNrLXNsaWRlIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnNsaWNrLXNsaWRlLnNsaWNrLWxvYWRpbmcgaW1nIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5zbGljay1zbGlkZS5kcmFnZ2luZyBpbWcge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5zbGljay1pbml0aWFsaXplZCAuc2xpY2stc2xpZGUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5zbGljay1sb2FkaW5nIC5zbGljay1zbGlkZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIC5zbGljay12ZXJ0aWNhbCAuc2xpY2stc2xpZGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxuXG4uc2xpY2stYXJyb3cuc2xpY2staGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiFcbiAqIEhhbWJ1cmdlcnNcbiAqIEBkZXNjcmlwdGlvbiBUYXN0eSBDU1MtYW5pbWF0ZWQgaGFtYnVyZ2Vyc1xuICogQGF1dGhvciBKb25hdGhhbiBTdWggQGpvbnN1aFxuICogQHNpdGUgaHR0cHM6Ly9qb25zdWguY29tL2hhbWJ1cmdlcnNcbiAqIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9qb25zdWgvaGFtYnVyZ2Vyc1xuICovXG4uaGFtYnVyZ2VyIHtcbiAgcGFkZGluZzogMTBweCAxMHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgZmlsdGVyO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgZm9udDogaW5oZXJpdDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBtYXJnaW46IDA7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG4gIC5oYW1idXJnZXI6aG92ZXIge1xuICAgIG9wYWNpdHk6IDAuNzsgfVxuICAuaGFtYnVyZ2VyLmlzLWFjdGl2ZTpob3ZlciB7XG4gICAgb3BhY2l0eTogMC43OyB9XG4gIC5oYW1idXJnZXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIsXG4gIC5oYW1idXJnZXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSxcbiAgLmhhbWJ1cmdlci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7IH1cblxuLmhhbWJ1cmdlci1ib3gge1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAxOXB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uaGFtYnVyZ2VyLWlubmVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAtMS41cHg7IH1cbiAgLmhhbWJ1cmdlci1pbm5lciwgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlLCAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiAzcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1cztcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTsgfVxuICAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdG9wOiAtOHB4OyB9XG4gIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICBib3R0b206IC04cHg7IH1cblxuLypcbiAgICogM0RYXG4gICAqL1xuLmhhbWJ1cmdlci0tM2R4IC5oYW1idXJnZXItYm94IHtcbiAgcGVyc3BlY3RpdmU6IDYwcHg7IH1cblxuLmhhbWJ1cmdlci0tM2R4IC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpLCBiYWNrZ3JvdW5kLWNvbG9yIDBzIDAuMXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpOyB9XG4gIC5oYW1idXJnZXItLTNkeCAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsIC5oYW1idXJnZXItLTNkeCAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDBzIDAuMXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpOyB9XG5cbi5oYW1idXJnZXItLTNkeC5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogcm90YXRlWSgxODBkZWcpOyB9XG4gIC5oYW1idXJnZXItLTNkeC5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDhweCwgMCkgcm90YXRlKDQ1ZGVnKTsgfVxuICAuaGFtYnVyZ2VyLS0zZHguaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC04cHgsIDApIHJvdGF0ZSgtNDVkZWcpOyB9XG5cbi8qXG4gICAqIDNEWCBSZXZlcnNlXG4gICAqL1xuLmhhbWJ1cmdlci0tM2R4LXIgLmhhbWJ1cmdlci1ib3gge1xuICBwZXJzcGVjdGl2ZTogNjBweDsgfVxuXG4uaGFtYnVyZ2VyLS0zZHgtciAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKSwgYmFja2dyb3VuZC1jb2xvciAwcyAwLjFzIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKTsgfVxuICAuaGFtYnVyZ2VyLS0zZHgtciAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsIC5oYW1idXJnZXItLTNkeC1yIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMHMgMC4xcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSk7IH1cblxuLmhhbWJ1cmdlci0tM2R4LXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7IH1cbiAgLmhhbWJ1cmdlci0tM2R4LXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA4cHgsIDApIHJvdGF0ZSg0NWRlZyk7IH1cbiAgLmhhbWJ1cmdlci0tM2R4LXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC04cHgsIDApIHJvdGF0ZSgtNDVkZWcpOyB9XG5cbi8qXG4gICAqIDNEWVxuICAgKi9cbi5oYW1idXJnZXItLTNkeSAuaGFtYnVyZ2VyLWJveCB7XG4gIHBlcnNwZWN0aXZlOiA2MHB4OyB9XG5cbi5oYW1idXJnZXItLTNkeSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKSwgYmFja2dyb3VuZC1jb2xvciAwcyAwLjFzIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKTsgfVxuICAuaGFtYnVyZ2VyLS0zZHkgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlLCAuaGFtYnVyZ2VyLS0zZHkgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwcyAwLjFzIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKTsgfVxuXG4uaGFtYnVyZ2VyLS0zZHkuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHJvdGF0ZVgoLTE4MGRlZyk7IH1cbiAgLmhhbWJ1cmdlci0tM2R5LmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgOHB4LCAwKSByb3RhdGUoNDVkZWcpOyB9XG4gIC5oYW1idXJnZXItLTNkeS5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLThweCwgMCkgcm90YXRlKC00NWRlZyk7IH1cblxuLypcbiAgICogM0RZIFJldmVyc2VcbiAgICovXG4uaGFtYnVyZ2VyLS0zZHktciAuaGFtYnVyZ2VyLWJveCB7XG4gIHBlcnNwZWN0aXZlOiA2MHB4OyB9XG5cbi5oYW1idXJnZXItLTNkeS1yIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpLCBiYWNrZ3JvdW5kLWNvbG9yIDBzIDAuMXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpOyB9XG4gIC5oYW1idXJnZXItLTNkeS1yIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSwgLmhhbWJ1cmdlci0tM2R5LXIgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwcyAwLjFzIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKTsgfVxuXG4uaGFtYnVyZ2VyLS0zZHktci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogcm90YXRlWCgxODBkZWcpOyB9XG4gIC5oYW1idXJnZXItLTNkeS1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgOHB4LCAwKSByb3RhdGUoNDVkZWcpOyB9XG4gIC5oYW1idXJnZXItLTNkeS1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtOHB4LCAwKSByb3RhdGUoLTQ1ZGVnKTsgfVxuXG4vKlxuICAgKiAzRFhZXG4gICAqL1xuLmhhbWJ1cmdlci0tM2R4eSAuaGFtYnVyZ2VyLWJveCB7XG4gIHBlcnNwZWN0aXZlOiA2MHB4OyB9XG5cbi5oYW1idXJnZXItLTNkeHkgLmhhbWJ1cmdlci1pbm5lciB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSksIGJhY2tncm91bmQtY29sb3IgMHMgMC4xcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSk7IH1cbiAgLmhhbWJ1cmdlci0tM2R4eSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsIC5oYW1idXJnZXItLTNkeHkgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwcyAwLjFzIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKTsgfVxuXG4uaGFtYnVyZ2VyLS0zZHh5LmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiByb3RhdGVYKDE4MGRlZykgcm90YXRlWSgxODBkZWcpOyB9XG4gIC5oYW1idXJnZXItLTNkeHkuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA4cHgsIDApIHJvdGF0ZSg0NWRlZyk7IH1cbiAgLmhhbWJ1cmdlci0tM2R4eS5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLThweCwgMCkgcm90YXRlKC00NWRlZyk7IH1cblxuLypcbiAgICogM0RYWSBSZXZlcnNlXG4gICAqL1xuLmhhbWJ1cmdlci0tM2R4eS1yIC5oYW1idXJnZXItYm94IHtcbiAgcGVyc3BlY3RpdmU6IDYwcHg7IH1cblxuLmhhbWJ1cmdlci0tM2R4eS1yIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpLCBiYWNrZ3JvdW5kLWNvbG9yIDBzIDAuMXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpOyB9XG4gIC5oYW1idXJnZXItLTNkeHktciAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsIC5oYW1idXJnZXItLTNkeHktciAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDBzIDAuMXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpOyB9XG5cbi5oYW1idXJnZXItLTNkeHktci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogcm90YXRlWCgxODBkZWcpIHJvdGF0ZVkoMTgwZGVnKSByb3RhdGVaKC0xODBkZWcpOyB9XG4gIC5oYW1idXJnZXItLTNkeHktci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDhweCwgMCkgcm90YXRlKDQ1ZGVnKTsgfVxuICAuaGFtYnVyZ2VyLS0zZHh5LXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC04cHgsIDApIHJvdGF0ZSgtNDVkZWcpOyB9XG5cbi8qXG4gICAqIEFycm93XG4gICAqL1xuLmhhbWJ1cmdlci0tYXJyb3cuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTZweCwgMCwgMCkgcm90YXRlKC00NWRlZykgc2NhbGUoMC43LCAxKTsgfVxuXG4uaGFtYnVyZ2VyLS1hcnJvdy5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC02cHgsIDAsIDApIHJvdGF0ZSg0NWRlZykgc2NhbGUoMC43LCAxKTsgfVxuXG4vKlxuICAgKiBBcnJvdyBSaWdodFxuICAgKi9cbi5oYW1idXJnZXItLWFycm93LXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNnB4LCAwLCAwKSByb3RhdGUoNDVkZWcpIHNjYWxlKDAuNywgMSk7IH1cblxuLmhhbWJ1cmdlci0tYXJyb3ctci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDZweCwgMCwgMCkgcm90YXRlKC00NWRlZykgc2NhbGUoMC43LCAxKTsgfVxuXG4vKlxuICAgKiBBcnJvdyBBbHRcbiAgICovXG4uaGFtYnVyZ2VyLS1hcnJvd2FsdCAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICB0cmFuc2l0aW9uOiB0b3AgMC4xcyAwLjFzIGVhc2UsIHRyYW5zZm9ybSAwLjFzIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSk7IH1cblxuLmhhbWJ1cmdlci0tYXJyb3dhbHQgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICB0cmFuc2l0aW9uOiBib3R0b20gMC4xcyAwLjFzIGVhc2UsIHRyYW5zZm9ybSAwLjFzIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSk7IH1cblxuLmhhbWJ1cmdlci0tYXJyb3dhbHQuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gIHRvcDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNnB4LCAtNy41cHgsIDApIHJvdGF0ZSgtNDVkZWcpIHNjYWxlKDAuNywgMSk7XG4gIHRyYW5zaXRpb246IHRvcCAwLjFzIGVhc2UsIHRyYW5zZm9ybSAwLjFzIDAuMXMgY3ViaWMtYmV6aWVyKDAuODk1LCAwLjAzLCAwLjY4NSwgMC4yMik7IH1cblxuLmhhbWJ1cmdlci0tYXJyb3dhbHQuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgYm90dG9tOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC02cHgsIDcuNXB4LCAwKSByb3RhdGUoNDVkZWcpIHNjYWxlKDAuNywgMSk7XG4gIHRyYW5zaXRpb246IGJvdHRvbSAwLjFzIGVhc2UsIHRyYW5zZm9ybSAwLjFzIDAuMXMgY3ViaWMtYmV6aWVyKDAuODk1LCAwLjAzLCAwLjY4NSwgMC4yMik7IH1cblxuLypcbiAgICogQXJyb3cgQWx0IFJpZ2h0XG4gICAqL1xuLmhhbWJ1cmdlci0tYXJyb3dhbHQtciAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICB0cmFuc2l0aW9uOiB0b3AgMC4xcyAwLjFzIGVhc2UsIHRyYW5zZm9ybSAwLjFzIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSk7IH1cblxuLmhhbWJ1cmdlci0tYXJyb3dhbHQtciAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gIHRyYW5zaXRpb246IGJvdHRvbSAwLjFzIDAuMXMgZWFzZSwgdHJhbnNmb3JtIDAuMXMgY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0LCAwLjQ0LCAxKTsgfVxuXG4uaGFtYnVyZ2VyLS1hcnJvd2FsdC1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICB0b3A6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNnB4LCAtNy41cHgsIDApIHJvdGF0ZSg0NWRlZykgc2NhbGUoMC43LCAxKTtcbiAgdHJhbnNpdGlvbjogdG9wIDAuMXMgZWFzZSwgdHJhbnNmb3JtIDAuMXMgMC4xcyBjdWJpYy1iZXppZXIoMC44OTUsIDAuMDMsIDAuNjg1LCAwLjIyKTsgfVxuXG4uaGFtYnVyZ2VyLS1hcnJvd2FsdC1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gIGJvdHRvbTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg2cHgsIDcuNXB4LCAwKSByb3RhdGUoLTQ1ZGVnKSBzY2FsZSgwLjcsIDEpO1xuICB0cmFuc2l0aW9uOiBib3R0b20gMC4xcyBlYXNlLCB0cmFuc2Zvcm0gMC4xcyAwLjFzIGN1YmljLWJlemllcigwLjg5NSwgMC4wMywgMC42ODUsIDAuMjIpOyB9XG5cbi8qXG4gICAqIEFycm93IFR1cm5cbiAgICovXG4uaGFtYnVyZ2VyLS1hcnJvd3R1cm4uaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTgwZGVnKTsgfVxuICAuaGFtYnVyZ2VyLS1hcnJvd3R1cm4uaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg4cHgsIDAsIDApIHJvdGF0ZSg0NWRlZykgc2NhbGUoMC43LCAxKTsgfVxuICAuaGFtYnVyZ2VyLS1hcnJvd3R1cm4uaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDhweCwgMCwgMCkgcm90YXRlKC00NWRlZykgc2NhbGUoMC43LCAxKTsgfVxuXG4vKlxuICAgKiBBcnJvdyBUdXJuIFJpZ2h0XG4gICAqL1xuLmhhbWJ1cmdlci0tYXJyb3d0dXJuLXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTgwZGVnKTsgfVxuICAuaGFtYnVyZ2VyLS1hcnJvd3R1cm4tci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC04cHgsIDAsIDApIHJvdGF0ZSgtNDVkZWcpIHNjYWxlKDAuNywgMSk7IH1cbiAgLmhhbWJ1cmdlci0tYXJyb3d0dXJuLXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC04cHgsIDAsIDApIHJvdGF0ZSg0NWRlZykgc2NhbGUoMC43LCAxKTsgfVxuXG4vKlxuICAgKiBCb3JpbmdcbiAgICovXG4uaGFtYnVyZ2VyLS1ib3JpbmcgLmhhbWJ1cmdlci1pbm5lciwgLmhhbWJ1cmdlci0tYm9yaW5nIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSwgLmhhbWJ1cmdlci0tYm9yaW5nIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbm9uZTsgfVxuXG4uaGFtYnVyZ2VyLS1ib3JpbmcuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7IH1cbiAgLmhhbWJ1cmdlci0tYm9yaW5nLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRvcDogMDtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIC5oYW1idXJnZXItLWJvcmluZy5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIGJvdHRvbTogMDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpOyB9XG5cbi8qXG4gICAqIENvbGxhcHNlXG4gICAqL1xuLmhhbWJ1cmdlci0tY29sbGFwc2UgLmhhbWJ1cmdlci1pbm5lciB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAwO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjEzcztcbiAgdHJhbnNpdGlvbi1kZWxheTogMC4xM3M7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTsgfVxuICAuaGFtYnVyZ2VyLS1jb2xsYXBzZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdG9wOiAtMTZweDtcbiAgICB0cmFuc2l0aW9uOiB0b3AgMC4ycyAwLjJzIGN1YmljLWJlemllcigwLjMzMzMzLCAwLjY2NjY3LCAwLjY2NjY3LCAxKSwgb3BhY2l0eSAwLjFzIGxpbmVhcjsgfVxuICAuaGFtYnVyZ2VyLS1jb2xsYXBzZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjEycyAwLjJzIGN1YmljLWJlemllcigwLjMzMzMzLCAwLjY2NjY3LCAwLjY2NjY3LCAxKSwgdHJhbnNmb3JtIDAuMTNzIGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpOyB9XG5cbi5oYW1idXJnZXItLWNvbGxhcHNlLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtOHB4LCAwKSByb3RhdGUoLTQ1ZGVnKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogMC4yMnM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTsgfVxuICAuaGFtYnVyZ2VyLS1jb2xsYXBzZS5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRvcDogMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjJzIGN1YmljLWJlemllcigwLjMzMzMzLCAwLCAwLjY2NjY3LCAwLjMzMzMzKSwgb3BhY2l0eSAwLjFzIDAuMjJzIGxpbmVhcjsgfVxuICAuaGFtYnVyZ2VyLS1jb2xsYXBzZS5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICB0cmFuc2l0aW9uOiB0b3AgMC4xcyAwLjE2cyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMCwgMC42NjY2NywgMC4zMzMzMyksIHRyYW5zZm9ybSAwLjEzcyAwLjI1cyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTsgfVxuXG4vKlxuICAgKiBDb2xsYXBzZSBSZXZlcnNlXG4gICAqL1xuLmhhbWJ1cmdlci0tY29sbGFwc2UtciAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IDA7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMTNzO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjEzcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpOyB9XG4gIC5oYW1idXJnZXItLWNvbGxhcHNlLXIgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRvcDogLTE2cHg7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMnMgMC4ycyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMC42NjY2NywgMC42NjY2NywgMSksIG9wYWNpdHkgMC4xcyBsaW5lYXI7IH1cbiAgLmhhbWJ1cmdlci0tY29sbGFwc2UtciAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjEycyAwLjJzIGN1YmljLWJlemllcigwLjMzMzMzLCAwLjY2NjY3LCAwLjY2NjY3LCAxKSwgdHJhbnNmb3JtIDAuMTNzIGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpOyB9XG5cbi5oYW1idXJnZXItLWNvbGxhcHNlLXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC04cHgsIDApIHJvdGF0ZSg0NWRlZyk7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMjJzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7IH1cbiAgLmhhbWJ1cmdlci0tY29sbGFwc2Utci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRvcDogMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjJzIGN1YmljLWJlemllcigwLjMzMzMzLCAwLCAwLjY2NjY3LCAwLjMzMzMzKSwgb3BhY2l0eSAwLjFzIDAuMjJzIGxpbmVhcjsgfVxuICAuaGFtYnVyZ2VyLS1jb2xsYXBzZS1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRvcDogMDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMXMgMC4xNnMgY3ViaWMtYmV6aWVyKDAuMzMzMzMsIDAsIDAuNjY2NjcsIDAuMzMzMzMpLCB0cmFuc2Zvcm0gMC4xM3MgMC4yNXMgY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7IH1cblxuLypcbiAgICogRWxhc3RpY1xuICAgKi9cbi5oYW1idXJnZXItLWVsYXN0aWMgLmhhbWJ1cmdlci1pbm5lciB7XG4gIHRvcDogMS41cHg7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMjc1cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjY4LCAtMC41NSwgMC4yNjUsIDEuNTUpOyB9XG4gIC5oYW1idXJnZXItLWVsYXN0aWMgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0b3A6IDhweDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTI1cyAwLjI3NXMgZWFzZTsgfVxuICAuaGFtYnVyZ2VyLS1lbGFzdGljIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0b3A6IDE2cHg7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjc1cyBjdWJpYy1iZXppZXIoMC42OCwgLTAuNTUsIDAuMjY1LCAxLjU1KTsgfVxuXG4uaGFtYnVyZ2VyLS1lbGFzdGljLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA4cHgsIDApIHJvdGF0ZSgxMzVkZWcpO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjA3NXM7IH1cbiAgLmhhbWJ1cmdlci0tZWxhc3RpYy5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbiAgICBvcGFjaXR5OiAwOyB9XG4gIC5oYW1idXJnZXItLWVsYXN0aWMuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xNnB4LCAwKSByb3RhdGUoLTI3MGRlZyk7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMC4wNzVzOyB9XG5cbi8qXG4gICAqIEVsYXN0aWMgUmV2ZXJzZVxuICAgKi9cbi5oYW1idXJnZXItLWVsYXN0aWMtciAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdG9wOiAxLjVweDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yNzVzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNjgsIC0wLjU1LCAwLjI2NSwgMS41NSk7IH1cbiAgLmhhbWJ1cmdlci0tZWxhc3RpYy1yIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdG9wOiA4cHg7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjEyNXMgMC4yNzVzIGVhc2U7IH1cbiAgLmhhbWJ1cmdlci0tZWxhc3RpYy1yIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0b3A6IDE2cHg7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjc1cyBjdWJpYy1iZXppZXIoMC42OCwgLTAuNTUsIDAuMjY1LCAxLjU1KTsgfVxuXG4uaGFtYnVyZ2VyLS1lbGFzdGljLXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDhweCwgMCkgcm90YXRlKC0xMzVkZWcpO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjA3NXM7IH1cbiAgLmhhbWJ1cmdlci0tZWxhc3RpYy1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLmhhbWJ1cmdlci0tZWxhc3RpYy1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTZweCwgMCkgcm90YXRlKDI3MGRlZyk7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMC4wNzVzOyB9XG5cbi8qXG4gICAqIEVtcGhhdGljXG4gICAqL1xuLmhhbWJ1cmdlci0tZW1waGF0aWMge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5oYW1idXJnZXItLWVtcGhhdGljIC5oYW1idXJnZXItaW5uZXIge1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xMjVzIDAuMTc1cyBlYXNlLWluOyB9XG4gICAgLmhhbWJ1cmdlci0tZW1waGF0aWMgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xMjVzIGN1YmljLWJlemllcigwLjYsIDAuMDQsIDAuOTgsIDAuMzM1KSwgdG9wIDAuMDVzIDAuMTI1cyBsaW5lYXIsIGxlZnQgMC4xMjVzIDAuMTc1cyBlYXNlLWluOyB9XG4gICAgLmhhbWJ1cmdlci0tZW1waGF0aWMgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgICAgdG9wOiA4cHg7XG4gICAgICByaWdodDogMDtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjEyNXMgY3ViaWMtYmV6aWVyKDAuNiwgMC4wNCwgMC45OCwgMC4zMzUpLCB0b3AgMC4wNXMgMC4xMjVzIGxpbmVhciwgcmlnaHQgMC4xMjVzIDAuMTc1cyBlYXNlLWluOyB9XG4gIC5oYW1idXJnZXItLWVtcGhhdGljLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgfVxuICAgIC5oYW1idXJnZXItLWVtcGhhdGljLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgICAgbGVmdDogLTYwcHg7XG4gICAgICB0b3A6IC02MHB4O1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg2MHB4LCA2MHB4LCAwKSByb3RhdGUoNDVkZWcpO1xuICAgICAgdHJhbnNpdGlvbjogbGVmdCAwLjEyNXMgZWFzZS1vdXQsIHRvcCAwLjA1cyAwLjEyNXMgbGluZWFyLCB0cmFuc2Zvcm0gMC4xMjVzIDAuMTc1cyBjdWJpYy1iZXppZXIoMC4wNzUsIDAuODIsIDAuMTY1LCAxKTsgfVxuICAgIC5oYW1idXJnZXItLWVtcGhhdGljLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgICByaWdodDogLTYwcHg7XG4gICAgICB0b3A6IC02MHB4O1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNjBweCwgNjBweCwgMCkgcm90YXRlKC00NWRlZyk7XG4gICAgICB0cmFuc2l0aW9uOiByaWdodCAwLjEyNXMgZWFzZS1vdXQsIHRvcCAwLjA1cyAwLjEyNXMgbGluZWFyLCB0cmFuc2Zvcm0gMC4xMjVzIDAuMTc1cyBjdWJpYy1iZXppZXIoMC4wNzUsIDAuODIsIDAuMTY1LCAxKTsgfVxuXG4vKlxuICAgKiBFbXBoYXRpYyBSZXZlcnNlXG4gICAqL1xuLmhhbWJ1cmdlci0tZW1waGF0aWMtciB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmhhbWJ1cmdlci0tZW1waGF0aWMtciAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTI1cyAwLjE3NXMgZWFzZS1pbjsgfVxuICAgIC5oYW1idXJnZXItLWVtcGhhdGljLXIgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xMjVzIGN1YmljLWJlemllcigwLjYsIDAuMDQsIDAuOTgsIDAuMzM1KSwgdG9wIDAuMDVzIDAuMTI1cyBsaW5lYXIsIGxlZnQgMC4xMjVzIDAuMTc1cyBlYXNlLWluOyB9XG4gICAgLmhhbWJ1cmdlci0tZW1waGF0aWMtciAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgICB0b3A6IDhweDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTI1cyBjdWJpYy1iZXppZXIoMC42LCAwLjA0LCAwLjk4LCAwLjMzNSksIHRvcCAwLjA1cyAwLjEyNXMgbGluZWFyLCByaWdodCAwLjEyNXMgMC4xNzVzIGVhc2UtaW47IH1cbiAgLmhhbWJ1cmdlci0tZW1waGF0aWMtci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lciB7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMHM7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7IH1cbiAgICAuaGFtYnVyZ2VyLS1lbXBoYXRpYy1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgICAgbGVmdDogLTYwcHg7XG4gICAgICB0b3A6IDYwcHg7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDYwcHgsIC02MHB4LCAwKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgIHRyYW5zaXRpb246IGxlZnQgMC4xMjVzIGVhc2Utb3V0LCB0b3AgMC4wNXMgMC4xMjVzIGxpbmVhciwgdHJhbnNmb3JtIDAuMTI1cyAwLjE3NXMgY3ViaWMtYmV6aWVyKDAuMDc1LCAwLjgyLCAwLjE2NSwgMSk7IH1cbiAgICAuaGFtYnVyZ2VyLS1lbXBoYXRpYy1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgICByaWdodDogLTYwcHg7XG4gICAgICB0b3A6IDYwcHg7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC02MHB4LCAtNjBweCwgMCkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgIHRyYW5zaXRpb246IHJpZ2h0IDAuMTI1cyBlYXNlLW91dCwgdG9wIDAuMDVzIDAuMTI1cyBsaW5lYXIsIHRyYW5zZm9ybSAwLjEyNXMgMC4xNzVzIGN1YmljLWJlemllcigwLjA3NSwgMC44MiwgMC4xNjUsIDEpOyB9XG5cbi8qXG4gICAqIE1pbnVzXG4gICAqL1xuLmhhbWJ1cmdlci0tbWludXMgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlLCAuaGFtYnVyZ2VyLS1taW51cyAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gIHRyYW5zaXRpb246IGJvdHRvbSAwLjA4cyAwcyBlYXNlLW91dCwgdG9wIDAuMDhzIDBzIGVhc2Utb3V0LCBvcGFjaXR5IDBzIGxpbmVhcjsgfVxuXG4uaGFtYnVyZ2VyLS1taW51cy5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlLCAuaGFtYnVyZ2VyLS1taW51cy5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBib3R0b20gMC4wOHMgZWFzZS1vdXQsIHRvcCAwLjA4cyBlYXNlLW91dCwgb3BhY2l0eSAwcyAwLjA4cyBsaW5lYXI7IH1cblxuLmhhbWJ1cmdlci0tbWludXMuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gIHRvcDogMDsgfVxuXG4uaGFtYnVyZ2VyLS1taW51cy5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICBib3R0b206IDA7IH1cblxuLypcbiAgICogU2xpZGVyXG4gICAqL1xuLmhhbWJ1cmdlci0tc2xpZGVyIC5oYW1idXJnZXItaW5uZXIge1xuICB0b3A6IDEuNXB4OyB9XG4gIC5oYW1idXJnZXItLXNsaWRlciAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRvcDogOHB4O1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1czsgfVxuICAuaGFtYnVyZ2VyLS1zbGlkZXIgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRvcDogMTZweDsgfVxuXG4uaGFtYnVyZ2VyLS1zbGlkZXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDhweCwgMCkgcm90YXRlKDQ1ZGVnKTsgfVxuICAuaGFtYnVyZ2VyLS1zbGlkZXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUzZCgtNC4yODU3MXB4LCAtNXB4LCAwKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIC5oYW1idXJnZXItLXNsaWRlci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTE2cHgsIDApIHJvdGF0ZSgtOTBkZWcpOyB9XG5cbi8qXG4gICAqIFNsaWRlciBSZXZlcnNlXG4gICAqL1xuLmhhbWJ1cmdlci0tc2xpZGVyLXIgLmhhbWJ1cmdlci1pbm5lciB7XG4gIHRvcDogMS41cHg7IH1cbiAgLmhhbWJ1cmdlci0tc2xpZGVyLXIgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0b3A6IDhweDtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xNXM7IH1cbiAgLmhhbWJ1cmdlci0tc2xpZGVyLXIgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRvcDogMTZweDsgfVxuXG4uaGFtYnVyZ2VyLS1zbGlkZXItci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgOHB4LCAwKSByb3RhdGUoLTQ1ZGVnKTsgfVxuICAuaGFtYnVyZ2VyLS1zbGlkZXItci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlM2QoNC4yODU3MXB4LCAtNXB4LCAwKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIC5oYW1idXJnZXItLXNsaWRlci1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTZweCwgMCkgcm90YXRlKDkwZGVnKTsgfVxuXG4vKlxuICAgKiBTcGluXG4gICAqL1xuLmhhbWJ1cmdlci0tc3BpbiAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yMnM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTsgfVxuICAuaGFtYnVyZ2VyLS1zcGluIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMXMgMC4yNXMgZWFzZS1pbiwgb3BhY2l0eSAwLjFzIGVhc2UtaW47IH1cbiAgLmhhbWJ1cmdlci0tc3BpbiAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogYm90dG9tIDAuMXMgMC4yNXMgZWFzZS1pbiwgdHJhbnNmb3JtIDAuMjJzIGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpOyB9XG5cbi5oYW1idXJnZXItLXNwaW4uaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgyMjVkZWcpO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjEycztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpOyB9XG4gIC5oYW1idXJnZXItLXNwaW4uaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdG9wOiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMXMgZWFzZS1vdXQsIG9wYWNpdHkgMC4xcyAwLjEycyBlYXNlLW91dDsgfVxuICAuaGFtYnVyZ2VyLS1zcGluLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgYm90dG9tOiAwO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgdHJhbnNpdGlvbjogYm90dG9tIDAuMXMgZWFzZS1vdXQsIHRyYW5zZm9ybSAwLjIycyAwLjEycyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTsgfVxuXG4vKlxuICAgKiBTcGluIFJldmVyc2VcbiAgICovXG4uaGFtYnVyZ2VyLS1zcGluLXIgLmhhbWJ1cmdlci1pbm5lciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMjJzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7IH1cbiAgLmhhbWJ1cmdlci0tc3Bpbi1yIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMXMgMC4yNXMgZWFzZS1pbiwgb3BhY2l0eSAwLjFzIGVhc2UtaW47IH1cbiAgLmhhbWJ1cmdlci0tc3Bpbi1yIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uOiBib3R0b20gMC4xcyAwLjI1cyBlYXNlLWluLCB0cmFuc2Zvcm0gMC4yMnMgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7IH1cblxuLmhhbWJ1cmdlci0tc3Bpbi1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTIyNWRlZyk7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMTJzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7IH1cbiAgLmhhbWJ1cmdlci0tc3Bpbi1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRvcDogMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjFzIGVhc2Utb3V0LCBvcGFjaXR5IDAuMXMgMC4xMnMgZWFzZS1vdXQ7IH1cbiAgLmhhbWJ1cmdlci0tc3Bpbi1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgYm90dG9tOiAwO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICB0cmFuc2l0aW9uOiBib3R0b20gMC4xcyBlYXNlLW91dCwgdHJhbnNmb3JtIDAuMjJzIDAuMTJzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpOyB9XG5cbi8qXG4gICAqIFNwcmluZ1xuICAgKi9cbi5oYW1idXJnZXItLXNwcmluZyAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdG9wOiAxLjVweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwcyAwLjEzcyBsaW5lYXI7IH1cbiAgLmhhbWJ1cmdlci0tc3ByaW5nIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdG9wOiA4cHg7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMXMgMC4ycyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMC42NjY2NywgMC42NjY2NywgMSksIHRyYW5zZm9ybSAwLjEzcyBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTsgfVxuICAuaGFtYnVyZ2VyLS1zcHJpbmcgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRvcDogMTZweDtcbiAgICB0cmFuc2l0aW9uOiB0b3AgMC4ycyAwLjJzIGN1YmljLWJlemllcigwLjMzMzMzLCAwLjY2NjY3LCAwLjY2NjY3LCAxKSwgdHJhbnNmb3JtIDAuMTNzIGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpOyB9XG5cbi5oYW1idXJnZXItLXNwcmluZy5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lciB7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMjJzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyB9XG4gIC5oYW1idXJnZXItLXNwcmluZy5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMXMgMC4xNXMgY3ViaWMtYmV6aWVyKDAuMzMzMzMsIDAsIDAuNjY2NjcsIDAuMzMzMzMpLCB0cmFuc2Zvcm0gMC4xM3MgMC4yMnMgY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA4cHgsIDApIHJvdGF0ZSg0NWRlZyk7IH1cbiAgLmhhbWJ1cmdlci0tc3ByaW5nLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdG9wOiAwO1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjJzIGN1YmljLWJlemllcigwLjMzMzMzLCAwLCAwLjY2NjY3LCAwLjMzMzMzKSwgdHJhbnNmb3JtIDAuMTNzIDAuMjJzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgOHB4LCAwKSByb3RhdGUoLTQ1ZGVnKTsgfVxuXG4vKlxuICAgKiBTcHJpbmcgUmV2ZXJzZVxuICAgKi9cbi5oYW1idXJnZXItLXNwcmluZy1yIC5oYW1idXJnZXItaW5uZXIge1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogMDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xM3M7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDBzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7IH1cbiAgLmhhbWJ1cmdlci0tc3ByaW5nLXIgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRvcDogLTE2cHg7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMnMgMC4ycyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMC42NjY2NywgMC42NjY2NywgMSksIG9wYWNpdHkgMHMgbGluZWFyOyB9XG4gIC5oYW1idXJnZXItLXNwcmluZy1yIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMXMgMC4ycyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMC42NjY2NywgMC42NjY2NywgMSksIHRyYW5zZm9ybSAwLjEzcyBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTsgfVxuXG4uaGFtYnVyZ2VyLS1zcHJpbmctci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLThweCwgMCkgcm90YXRlKC00NWRlZyk7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMjJzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7IH1cbiAgLmhhbWJ1cmdlci0tc3ByaW5nLXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0b3A6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiB0b3AgMC4ycyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMCwgMC42NjY2NywgMC4zMzMzMyksIG9wYWNpdHkgMHMgMC4yMnMgbGluZWFyOyB9XG4gIC5oYW1idXJnZXItLXNwcmluZy1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRvcDogMDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMXMgMC4xNXMgY3ViaWMtYmV6aWVyKDAuMzMzMzMsIDAsIDAuNjY2NjcsIDAuMzMzMzMpLCB0cmFuc2Zvcm0gMC4xM3MgMC4yMnMgY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7IH1cblxuLypcbiAgICogU3RhbmRcbiAgICovXG4uaGFtYnVyZ2VyLS1zdGFuZCAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMDc1cyAwLjE1cyBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KSwgYmFja2dyb3VuZC1jb2xvciAwcyAwLjA3NXMgbGluZWFyOyB9XG4gIC5oYW1idXJnZXItLXN0YW5kIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMDc1cyAwLjA3NXMgZWFzZS1pbiwgdHJhbnNmb3JtIDAuMDc1cyAwcyBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTsgfVxuICAuaGFtYnVyZ2VyLS1zdGFuZCAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogYm90dG9tIDAuMDc1cyAwLjA3NXMgZWFzZS1pbiwgdHJhbnNmb3JtIDAuMDc1cyAwcyBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTsgfVxuXG4uaGFtYnVyZ2VyLS1zdGFuZC5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lciB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMDc1cyAwcyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKSwgYmFja2dyb3VuZC1jb2xvciAwcyAwLjE1cyBsaW5lYXI7IH1cbiAgLmhhbWJ1cmdlci0tc3RhbmQuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdG9wOiAwO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMDc1cyAwLjFzIGVhc2Utb3V0LCB0cmFuc2Zvcm0gMC4wNzVzIDAuMTVzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpOyB9XG4gIC5oYW1idXJnZXItLXN0YW5kLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgYm90dG9tOiAwO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICB0cmFuc2l0aW9uOiBib3R0b20gMC4wNzVzIDAuMXMgZWFzZS1vdXQsIHRyYW5zZm9ybSAwLjA3NXMgMC4xNXMgY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7IH1cblxuLypcbiAgICogU3RhbmQgUmV2ZXJzZVxuICAgKi9cbi5oYW1idXJnZXItLXN0YW5kLXIgLmhhbWJ1cmdlci1pbm5lciB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjA3NXMgMC4xNXMgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSksIGJhY2tncm91bmQtY29sb3IgMHMgMC4wNzVzIGxpbmVhcjsgfVxuICAuaGFtYnVyZ2VyLS1zdGFuZC1yIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMDc1cyAwLjA3NXMgZWFzZS1pbiwgdHJhbnNmb3JtIDAuMDc1cyAwcyBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTsgfVxuICAuaGFtYnVyZ2VyLS1zdGFuZC1yIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uOiBib3R0b20gMC4wNzVzIDAuMDc1cyBlYXNlLWluLCB0cmFuc2Zvcm0gMC4wNzVzIDBzIGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpOyB9XG5cbi5oYW1idXJnZXItLXN0YW5kLXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4wNzVzIDBzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpLCBiYWNrZ3JvdW5kLWNvbG9yIDBzIDAuMTVzIGxpbmVhcjsgfVxuICAuaGFtYnVyZ2VyLS1zdGFuZC1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRvcDogMDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjA3NXMgMC4xcyBlYXNlLW91dCwgdHJhbnNmb3JtIDAuMDc1cyAwLjE1cyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTsgfVxuICAuaGFtYnVyZ2VyLS1zdGFuZC1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgYm90dG9tOiAwO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICB0cmFuc2l0aW9uOiBib3R0b20gMC4wNzVzIDAuMXMgZWFzZS1vdXQsIHRyYW5zZm9ybSAwLjA3NXMgMC4xNXMgY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7IH1cblxuLypcbiAgICogU3F1ZWV6ZVxuICAgKi9cbi5oYW1idXJnZXItLXNxdWVlemUgLmhhbWJ1cmdlci1pbm5lciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMDc1cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpOyB9XG4gIC5oYW1idXJnZXItLXNxdWVlemUgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uOiB0b3AgMC4wNzVzIDAuMTJzIGVhc2UsIG9wYWNpdHkgMC4wNzVzIGVhc2U7IH1cbiAgLmhhbWJ1cmdlci0tc3F1ZWV6ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogYm90dG9tIDAuMDc1cyAwLjEycyBlYXNlLCB0cmFuc2Zvcm0gMC4wNzVzIGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpOyB9XG5cbi5oYW1idXJnZXItLXNxdWVlemUuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMTJzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7IH1cbiAgLmhhbWJ1cmdlci0tc3F1ZWV6ZS5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0b3A6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiB0b3AgMC4wNzVzIGVhc2UsIG9wYWNpdHkgMC4wNzVzIDAuMTJzIGVhc2U7IH1cbiAgLmhhbWJ1cmdlci0tc3F1ZWV6ZS5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIGJvdHRvbTogMDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgIHRyYW5zaXRpb246IGJvdHRvbSAwLjA3NXMgZWFzZSwgdHJhbnNmb3JtIDAuMDc1cyAwLjEycyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTsgfVxuXG4vKlxuICAgKiBWb3J0ZXhcbiAgICovXG4uaGFtYnVyZ2VyLS12b3J0ZXggLmhhbWJ1cmdlci1pbm5lciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xOSwgMSwgMC4yMiwgMSk7IH1cbiAgLmhhbWJ1cmdlci0tdm9ydGV4IC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSwgLmhhbWJ1cmdlci0tdm9ydGV4IC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwcztcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjFzO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7IH1cbiAgLmhhbWJ1cmdlci0tdm9ydGV4IC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdG9wLCBvcGFjaXR5OyB9XG4gIC5oYW1idXJnZXItLXZvcnRleCAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYm90dG9tLCB0cmFuc2Zvcm07IH1cblxuLmhhbWJ1cmdlci0tdm9ydGV4LmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNzY1ZGVnKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE5LCAxLCAwLjIyLCAxKTsgfVxuICAuaGFtYnVyZ2VyLS12b3J0ZXguaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSwgLmhhbWJ1cmdlci0tdm9ydGV4LmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMHM7IH1cbiAgLmhhbWJ1cmdlci0tdm9ydGV4LmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRvcDogMDtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIC5oYW1idXJnZXItLXZvcnRleC5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIGJvdHRvbTogMDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7IH1cblxuLypcbiAgICogVm9ydGV4IFJldmVyc2VcbiAgICovXG4uaGFtYnVyZ2VyLS12b3J0ZXgtciAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4ycztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE5LCAxLCAwLjIyLCAxKTsgfVxuICAuaGFtYnVyZ2VyLS12b3J0ZXgtciAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsIC5oYW1idXJnZXItLXZvcnRleC1yIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwcztcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjFzO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7IH1cbiAgLmhhbWJ1cmdlci0tdm9ydGV4LXIgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0b3AsIG9wYWNpdHk7IH1cbiAgLmhhbWJ1cmdlci0tdm9ydGV4LXIgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGJvdHRvbSwgdHJhbnNmb3JtOyB9XG5cbi5oYW1idXJnZXItLXZvcnRleC1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTc2NWRlZyk7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xOSwgMSwgMC4yMiwgMSk7IH1cbiAgLmhhbWJ1cmdlci0tdm9ydGV4LXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSwgLmhhbWJ1cmdlci0tdm9ydGV4LXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwczsgfVxuICAuaGFtYnVyZ2VyLS12b3J0ZXgtci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0b3A6IDA7XG4gICAgb3BhY2l0eTogMDsgfVxuICAuaGFtYnVyZ2VyLS12b3J0ZXgtci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIGJvdHRvbTogMDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpOyB9XG4iLCIvLyAgRm91bmRhdGlvblByZXNzIHNldHRpbmdzLlxuLy8gIEJhc2VkIG9uIEZvdW5kYXRpb24gZm9yIFNpdGVzIHY2LjQuM1xuLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vL1xuLy8gIFRhYmxlIG9mIENvbnRlbnRzOlxuLy9cbi8vICAgMS4gR2xvYmFsXG4vLyAgIDIuIEJyZWFrcG9pbnRzXG4vLyAgIDMuIFRoZSBHcmlkXG4vLyAgIDQuIEJhc2UgVHlwb2dyYXBoeVxuLy8gICA1LiBUeXBvZ3JhcGh5IEhlbHBlcnNcbi8vICAgNi4gQWJpZGVcbi8vICAgNy4gQWNjb3JkaW9uXG4vLyAgIDguIEFjY29yZGlvbiBNZW51XG4vLyAgIDkuIEJhZGdlXG4vLyAgMTAuIEJyZWFkY3J1bWJzXG4vLyAgMTEuIEJ1dHRvblxuLy8gIDEyLiBCdXR0b24gR3JvdXBcbi8vICAxMy4gQ2FsbG91dFxuLy8gIDE0LiBDYXJkXG4vLyAgMTUuIENsb3NlIEJ1dHRvblxuLy8gIDE2LiBEcmlsbGRvd25cbi8vICAxNy4gRHJvcGRvd25cbi8vICAxOC4gRHJvcGRvd24gTWVudVxuLy8gIDE5LiBGbGV4Ym94IFV0aWxpdGllc1xuLy8gIDIwLiBGb3Jtc1xuLy8gIDIxLiBMYWJlbFxuLy8gIDIyLiBNZWRpYSBPYmplY3Rcbi8vICAyMy4gTWVudVxuLy8gIDI0LiBNZXRlclxuLy8gIDI1LiBPZmYtY2FudmFzXG4vLyAgMjYuIE9yYml0XG4vLyAgMjcuIFBhZ2luYXRpb25cbi8vICAyOC4gUHJvZ3Jlc3MgQmFyXG4vLyAgMjkuIFByb3RvdHlwZSBBcnJvd1xuLy8gIDMwLiBQcm90b3R5cGUgQm9yZGVyLUJveFxuLy8gIDMxLiBQcm90b3R5cGUgQm9yZGVyLU5vbmVcbi8vICAzMi4gUHJvdG90eXBlIEJvcmRlcmVkXG4vLyAgMzMuIFByb3RvdHlwZSBEaXNwbGF5XG4vLyAgMzQuIFByb3RvdHlwZSBGb250LVN0eWxpbmdcbi8vICAzNS4gUHJvdG90eXBlIExpc3QtU3R5bGUtVHlwZVxuLy8gIDM2LiBQcm90b3R5cGUgT3ZlcmZsb3dcbi8vICAzNy4gUHJvdG90eXBlIFBvc2l0aW9uXG4vLyAgMzguIFByb3RvdHlwZSBSb3VuZGVkXG4vLyAgMzkuIFByb3RvdHlwZSBTZXBhcmF0b3Jcbi8vICA0MC4gUHJvdG90eXBlIFNoYWRvd1xuLy8gIDQxLiBQcm90b3R5cGUgU2l6aW5nXG4vLyAgNDIuIFByb3RvdHlwZSBTcGFjaW5nXG4vLyAgNDMuIFByb3RvdHlwZSBUZXh0LURlY29yYXRpb25cbi8vICA0NC4gUHJvdG90eXBlIFRleHQtVHJhbnNmb3JtYXRpb25cbi8vICA0NS4gUHJvdG90eXBlIFRleHQtVXRpbGl0aWVzXG4vLyAgNDYuIFJlc3BvbnNpdmUgRW1iZWRcbi8vICA0Ny4gUmV2ZWFsXG4vLyAgNDguIFNsaWRlclxuLy8gIDQ5LiBTd2l0Y2hcbi8vICA1MC4gVGFibGVcbi8vICA1MS4gVGFic1xuLy8gIDUyLiBUaHVtYm5haWxcbi8vICA1My4gVGl0bGUgQmFyXG4vLyAgNTQuIFRvb2x0aXBcbi8vICA1NS4gVG9wIEJhclxuLy8gIDU2LiBYeSBHcmlkXG5cbkBpbXBvcnQgJ3V0aWwvdXRpbCc7XG5AaW1wb3J0ICdnbG9iYWwvY29sb3JzJztcblxuQGZvbnQtZmFjZSB7Zm9udC1mYW1pbHk6IFwiRGlkb3QgSXRhbGljXCI7XG4gIHNyYzogdXJsKFwiLy9kYi5vbmxpbmV3ZWJmb250cy5jb20vdC9kZGVjN2RiNjViMmI5YjI1N2QwNmJiYzJkNGVmYWNlYS5lb3RcIik7XG4gIHNyYzogdXJsKFwiLy9kYi5vbmxpbmV3ZWJmb250cy5jb20vdC9kZGVjN2RiNjViMmI5YjI1N2QwNmJiYzJkNGVmYWNlYS5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLFxuICB1cmwoXCIvL2RiLm9ubGluZXdlYmZvbnRzLmNvbS90L2RkZWM3ZGI2NWIyYjliMjU3ZDA2YmJjMmQ0ZWZhY2VhLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLFxuICB1cmwoXCIvL2RiLm9ubGluZXdlYmZvbnRzLmNvbS90L2RkZWM3ZGI2NWIyYjliMjU3ZDA2YmJjMmQ0ZWZhY2VhLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSxcbiAgdXJsKFwiLy9kYi5vbmxpbmV3ZWJmb250cy5jb20vdC9kZGVjN2RiNjViMmI5YjI1N2QwNmJiYzJkNGVmYWNlYS50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksXG4gIHVybChcIi8vZGIub25saW5ld2ViZm9udHMuY29tL3QvZGRlYzdkYjY1YjJiOWIyNTdkMDZiYmMyZDRlZmFjZWEuc3ZnI0RpZG90XCIpIGZvcm1hdChcInN2Z1wiKTtcbn1cblxuLy9mb250LWZhbWlseTonQXZlbmlyIExUIFcwMV8zNSBMaWdodDE0NzU0OTYnO1xuLy9mb250LWZhbWlseTonQXZlbmlyIExUIFcwMV81NSBSb21hbjE0NzU1MjAnO1xuLy9mb250LWZhbWlseTonQXZlbmlyIExUIFcwMV82NSBNZWRpdW0xNDc1NTMyJztcbi8vZm9udC1mYW1pbHk6J0F2ZW5pciBMVCBXMDFfODUgSGVhdnkxNDc1NTQ0Jztcbi8vZm9udC1mYW1pbHk6J0F2ZW5pciBMVCBXMDFfMzUgTGlnaHRfMTQ3NTUwMic7XG4vL2ZvbnQtZmFtaWx5OidBdmVuaXIgTFQgVzAxXzQ1IEJvb2sxNDc1NTA4JztcblxuLy8gMS4gR2xvYmFsXG4vLyAtLS0tLS0tLS1cblxuJGdsb2JhbC1mb250LXNpemU6IDEwMCU7XG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKTtcbiRnbG9iYWwtbGluZWhlaWdodDogMS41O1xuJGZvdW5kYXRpb24tcGFsZXR0ZTogKFxuICBwcmltYXJ5OiAjMDAwMDAwLFxuICBzZWNvbmRhcnk6ICNmZmZmZmYsXG4gIHN1Y2Nlc3M6ICMzYWRiNzYsXG4gIHdhcm5pbmc6ICNmZmFlMDAsXG4gIGFsZXJ0OiAjY2M0YjM3LFxuKTtcbiRoaWdobGlnaHQtY29sb3I6ICNGRjlFMzE7XG4kbGlnaHQtZ3JheTogI2Y1ZjVmNTtcbiRtZWRpdW0tZ3JheTogI0RFREVERTtcbiRkYXJrLWdyYXk6ICNBQUFBQUE7XG4kZGFya2VzdC1ncmF5OiAjODA4MDgwO1xuJGJsYWNrOiAjMGEwYTBhO1xuJHdoaXRlOiAjZmVmZWZlO1xuJGJvZHktYmFja2dyb3VuZDogJHdoaXRlO1xuJGJvZHktZm9udC1jb2xvcjogJGJsYWNrO1xuJGJvZHktZm9udC1mYW1pbHk6IFwiQXZlbmlyIExUIFcwMV81NSBSb21hbjE0NzU1MjBcIiwgU2Fucy1zZXJpZjtcbiRib2R5LWZvbnQtZmFtaWx5LS1ib29rOiBcIkF2ZW5pciBMVCBXMDFfNDUgQm9vazE0NzU1MDhcIiwgU2Fucy1zZXJpZjtcbiRib2R5LWZvbnQtZmFtaWx5LS1tZWRpdW06IFwiQXZlbmlyIExUIFcwMV82NSBNZWRpdW0xNDc1NTMyXCIsIFNhbnMtc2VyaWY7XG4kYm9keS1mb250LWZhbWlseS0taGVhdnk6IFwiQXZlbmlyIExUIFcwMV84NSBIZWF2eTE0NzU1NDRcIiwgU2Fucy1zZXJpZjtcbiRib2R5LWZvbnQtZmFtaWx5LS1ibGFjazogXCJBdmVuaXIgTFQgVzAxXzk1IEJsYWNrMTQ3NTU1NlwiLCBTYW5zLXNlcmlmO1xuJGJvZHktYW50aWFsaWFzZWQ6IHRydWU7XG4kZ2xvYmFsLW1hcmdpbjogMi41cmVtO1xuJGdsb2JhbC1wYWRkaW5nOiAxcmVtO1xuJGdsb2JhbC1wb3NpdGlvbjogMXJlbTtcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogbm9ybWFsO1xuJGdsb2JhbC13ZWlnaHQtYm9sZDogYm9sZDtcbiRnbG9iYWwtcmFkaXVzOiAwO1xuJGdsb2JhbC1tZW51LXBhZGRpbmc6IDAuN3JlbSAxcmVtO1xuJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW46IDFyZW07XG4kZ2xvYmFsLXRleHQtZGlyZWN0aW9uOiBsdHI7XG4kZ2xvYmFsLWZsZXhib3g6IHRydWU7XG4kZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50czogZmFsc2U7XG4kZ2xvYmFsLWJ1dHRvbi1jdXJzb3I6IGF1dG87XG4kZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlOiAwO1xuJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzOiB0cnVlO1xuJGRpZG90LWZvbnQ6IFwiRGlkb3RcIiwgU2VyaWY7XG4kZGlkb3QtSXRhbGljLWZvbnQ6IFwiRGlkb3QgSXRhbGljXCIsIFNlcmlmO1xuXG5AaW5jbHVkZSBhZGQtZm91bmRhdGlvbi1jb2xvcnM7XG5cbi8vIDIuIEJyZWFrcG9pbnRzXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kYnJlYWtwb2ludHM6IChcbiAgc21hbGw6IDAsXG4gIG1lZGl1bTogNjQwcHgsXG4gIGxhcmdlOiAxMDI0cHgsXG4gIHhsYXJnZTogMTIwMHB4LFxuICB4eGxhcmdlOiAxNDQwcHgsXG4pO1xuJHByaW50LWJyZWFrcG9pbnQ6IGxhcmdlO1xuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSk7XG5cbi8vIDMuIFRoZSBHcmlkXG4vLyAtLS0tLS0tLS0tLVxuXG4kZ3JpZC1yb3ctd2lkdGg6ICRnbG9iYWwtd2lkdGg7XG4kZ3JpZC1jb2x1bW4tY291bnQ6IDEyO1xuJGdyaWQtY29sdW1uLWd1dHRlcjogKFxuICBzbWFsbDogMjBweCxcbiAgbWVkaXVtOiAzMHB4LFxuKTtcbiRncmlkLWNvbHVtbi1hbGlnbi1lZGdlOiB0cnVlO1xuJGdyaWQtY29sdW1uLWFsaWFzOiAnY29sdW1ucyc7XG4kYmxvY2stZ3JpZC1tYXg6IDg7XG5cbi8vIDQuIEJhc2UgVHlwb2dyYXBoeVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRoZWFkZXItZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWw7XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiRoZWFkZXItY29sb3I6IGluaGVyaXQ7XG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNDtcbiRoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuJGhlYWRlci1zdHlsZXM6IChcbiAgc21hbGw6IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDI0KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDE5KSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDE4KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDE3KSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbiAgbWVkaXVtOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiA0OCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiA0MCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAzMSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAyNSksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4pO1xuJGhlYWRlci10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuJHNtYWxsLWZvbnQtc2l6ZTogODAlO1xuJGhlYWRlci1zbWFsbC1mb250LWNvbG9yOiAkbWVkaXVtLWdyYXk7XG4kcGFyYWdyYXBoLWxpbmVoZWlnaHQ6IDEuNjtcbiRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogMXJlbTtcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiRjb2RlLWNvbG9yOiAkYmxhY2s7XG4kY29kZS1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTtcbiRjb2RlLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kY29kZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRjb2RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRjb2RlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNSAxKTtcbiRhbmNob3ItY29sb3I6ICRkYXJrZXN0LWdyYXk7XG4kYW5jaG9yLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKTtcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmU7XG4kaHItd2lkdGg6IDEwNi4yNXJlbTtcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSBhdXRvO1xuJGxpc3QtbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuJGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlO1xuJGxpc3Qtc2lkZS1tYXJnaW46IDEuMjVyZW07XG4kbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW46IDEuMjVyZW07XG4kZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTogMXJlbTtcbiRkZWZubGlzdC10ZXJtLXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiRibG9ja3F1b3RlLWNvbG9yOiAkZGFyay1ncmF5O1xuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KTtcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRjaXRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuJGNpdGUtY29sb3I6ICRkYXJrLWdyYXk7XG4kY2l0ZS1wc2V1ZG8tY29udGVudDogJ1xcMjAxNCBcXDAwMjAnO1xuJGtleXN0cm9rZS1mb250OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlO1xuJGtleXN0cm9rZS1jb2xvcjogJGJsYWNrO1xuJGtleXN0cm9rZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApO1xuJGtleXN0cm9rZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGFiYnItdW5kZXJsaW5lOiAxcHggZG90dGVkICRibGFjaztcblxuLy8gNS4gVHlwb2dyYXBoeSBIZWxwZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGxlYWQtZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZSAqIDEuMjU7XG4kbGVhZC1saW5laGVpZ2h0OiAxLjY7XG4kc3ViaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNDtcbiRzdWJoZWFkZXItY29sb3I6ICRkYXJrLWdyYXk7XG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbTtcbiRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuJHN0YXQtZm9udC1zaXplOiAyLjVyZW07XG5cbi8vIDYuIEFiaWRlXG4vLyAtLS0tLS0tLVxuXG4kYWJpZGUtaW5wdXRzOiB0cnVlO1xuJGFiaWRlLWxhYmVsczogdHJ1ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCk7XG4kZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpO1xuJGlucHV0LWVycm9yLWNvbG9yOiBnZXQtY29sb3IoYWxlcnQpO1xuJGlucHV0LWVycm9yLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuXG4vLyA3LiBBY2NvcmRpb25cbi8vIC0tLS0tLS0tLS0tLVxuXG4kYWNjb3JkaW9uLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRhY2NvcmRpb24tcGx1c21pbnVzOiB0cnVlO1xuJGFjY29yZGlvbi10aXRsZS1mb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiRhY2NvcmRpb24taXRlbS1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXk7XG4kYWNjb3JkaW9uLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxcmVtO1xuJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRhY2NvcmRpb24tY29udGVudC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcbiRhY2NvcmRpb24tY29udGVudC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nOiAxcmVtO1xuXG4vLyA4LiBBY2NvcmRpb24gTWVudVxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cblxuJGFjY29yZGlvbm1lbnUtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG4kYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjtcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtcGFkZGluZzogJGFjY29yZGlvbm1lbnUtcGFkZGluZztcbiRhY2NvcmRpb25tZW51LWFycm93czogdHJ1ZTtcbiRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yOiAkd2hpdGU7XG4kYWNjb3JkaW9ubWVudS1pdGVtLWJhY2tncm91bmQ6IG51bGw7XG4kYWNjb3JkaW9ubWVudS1ib3JkZXI6IG51bGw7XG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1iYWNrZ3JvdW5kOiBudWxsO1xuJGFjY29yZGlvbi1zdWJtZW51LXRvZ2dsZS1ib3JkZXI6ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoOiA0MHB4O1xuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtaGVpZ2h0OiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDtcbiRhY2NvcmRpb25tZW51LWFycm93LXNpemU6IDZweDtcblxuLy8gOS4gQmFkZ2Vcbi8vIC0tLS0tLS0tXG5cbiRiYWRnZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRiYWRnZS1jb2xvcjogJHdoaXRlO1xuJGJhZGdlLWNvbG9yLWFsdDogJGJsYWNrO1xuJGJhZGdlLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGU7XG4kYmFkZ2UtcGFkZGluZzogMC4zZW07XG4kYmFkZ2UtbWlud2lkdGg6IDIuMWVtO1xuJGJhZGdlLWZvbnQtc2l6ZTogMC42cmVtO1xuXG4vLyAxMC4gQnJlYWRjcnVtYnNcbi8vIC0tLS0tLS0tLS0tLS0tLVxuXG4kYnJlYWRjcnVtYnMtbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMDtcbiRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTEpO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDogJGJsYWNrO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheTtcbiRicmVhZGNydW1icy1pdGVtLW1hcmdpbjogMC43NXJlbTtcbiRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZTogdHJ1ZTtcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvcjogdHJ1ZTtcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtOiAnLyc7XG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbS1ydGw6ICdcXFxcJztcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvcjogJG1lZGl1bS1ncmF5O1xuXG4vLyAxMS4gQnV0dG9uXG4vLyAtLS0tLS0tLS0tXG5cbiRidXR0b24tZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4kYnV0dG9uLXBhZGRpbmc6IDAuODVlbSAxZW07XG4kYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDA7XG4kYnV0dG9uLWZpbGw6IHNvbGlkO1xuJGJ1dHRvbi1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKTtcbiRidXR0b24tY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2s7XG4kYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGg6IDFweDtcbiRidXR0b24tc2l6ZXM6IChcbiAgdGlueTogMC42cmVtLFxuICBzbWFsbDogMC43NXJlbSxcbiAgZGVmYXVsdDogMC45cmVtLFxuICBsYXJnZTogMS4yNXJlbSxcbik7XG4kYnV0dG9uLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGU7XG4kYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjU7XG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzOiAtMjAlO1xuJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzOiAtNTAlO1xuJGJ1dHRvbi10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dDtcblxuLy8gMTIuIEJ1dHRvbiBHcm91cFxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kYnV0dG9uZ3JvdXAtbWFyZ2luOiAxcmVtO1xuJGJ1dHRvbmdyb3VwLXNwYWNpbmc6IDFweDtcbiRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcjogJy5idXR0b24nO1xuJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXg6IDY7XG4kYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2g6IHRydWU7XG5cbi8vIDEzLiBDYWxsb3V0XG4vLyAtLS0tLS0tLS0tLVxuXG4kY2FsbG91dC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGU6IDg1JTtcbiRjYWxsb3V0LWJvcmRlcjogMXB4IHNvbGlkIHJnYmEoJGJsYWNrLCAwLjI1KTtcbiRjYWxsb3V0LW1hcmdpbjogMCAwIDFyZW0gMDtcbiRjYWxsb3V0LXBhZGRpbmc6IDFyZW07XG4kY2FsbG91dC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJGNhbGxvdXQtZm9udC1jb2xvci1hbHQ6ICRib2R5LWJhY2tncm91bmQ7XG4kY2FsbG91dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGNhbGxvdXQtbGluay10aW50OiAzMCU7XG5cbi8vIDE0LiBDYXJkXG4vLyAtLS0tLS0tLVxuXG4kY2FyZC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kY2FyZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJGNhcmQtZGl2aWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRjYXJkLWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xuJGNhcmQtc2hhZG93OiBub25lO1xuJGNhcmQtYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kY2FyZC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4kY2FyZC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcblxuLy8gMTUuIENsb3NlIEJ1dHRvblxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kY2xvc2VidXR0b24tcG9zaXRpb246IHJpZ2h0IHRvcDtcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDogKFxuICBzbWFsbDogMC42NnJlbSxcbiAgbWVkaXVtOiAxcmVtLFxuKTtcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWw6IChcbiAgc21hbGw6IDAuMzNlbSxcbiAgbWVkaXVtOiAwLjVyZW0sXG4pO1xuJGNsb3NlYnV0dG9uLXNpemU6IChcbiAgc21hbGw6IDEuNWVtLFxuICBtZWRpdW06IDJlbSxcbik7XG4kY2xvc2VidXR0b24tbGluZWhlaWdodDogMTtcbiRjbG9zZWJ1dHRvbi1jb2xvcjogJGRhcmstZ3JheTtcbiRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjogJGJsYWNrO1xuXG4vLyAxNi4gRHJpbGxkb3duXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiRkcmlsbGRvd24tdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhcjtcbiRkcmlsbGRvd24tYXJyb3dzOiB0cnVlO1xuJGRyaWxsZG93bi1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZztcbiRkcmlsbGRvd24tbmVzdGVkLW1hcmdpbjogMDtcbiRkcmlsbGRvd24tYmFja2dyb3VuZDogJHdoaXRlO1xuJGRyaWxsZG93bi1zdWJtZW51LXBhZGRpbmc6ICRkcmlsbGRvd24tcGFkZGluZztcbiRkcmlsbGRvd24tc3VibWVudS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kZHJpbGxkb3duLWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRkcmlsbGRvd24tYXJyb3ctc2l6ZTogNnB4O1xuXG4vLyAxNy4gRHJvcGRvd25cbi8vIC0tLS0tLS0tLS0tLVxuXG4kZHJvcGRvd24tcGFkZGluZzogMXJlbTtcbiRkcm9wZG93bi1iYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRkcm9wZG93bi1mb250LXNpemU6IDFyZW07XG4kZHJvcGRvd24td2lkdGg6IDMwMHB4O1xuJGRyb3Bkb3duLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kZHJvcGRvd24tc2l6ZXM6IChcbiAgdGlueTogMTAwcHgsXG4gIHNtYWxsOiAyMDBweCxcbiAgbGFyZ2U6IDQwMHB4LFxuKTtcblxuLy8gMTguIERyb3Bkb3duIE1lbnVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG5cbiRkcm9wZG93bm1lbnUtYXJyb3dzOiB0cnVlO1xuJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvcjogJGFuY2hvci1jb2xvcjtcbiRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZTogNnB4O1xuJGRyb3Bkb3dubWVudS1hcnJvdy1wYWRkaW5nOiAxLjVyZW07XG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHg7XG4kZHJvcGRvd25tZW51LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRkcm9wZG93bm1lbnUtc3VibWVudS1iYWNrZ3JvdW5kOiAkZHJvcGRvd25tZW51LWJhY2tncm91bmQ7XG4kZHJvcGRvd25tZW51LXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xuJGRyb3Bkb3dubWVudS1uZXN0ZWQtbWFyZ2luOiAwO1xuJGRyb3Bkb3dubWVudS1zdWJtZW51LXBhZGRpbmc6ICRkcm9wZG93bm1lbnUtcGFkZGluZztcbiRkcm9wZG93bm1lbnUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGRyb3Bkb3duLW1lbnUtaXRlbS1jb2xvci1hY3RpdmU6ICRsaWdodC1ncmF5O1xuJGRyb3Bkb3duLW1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogdHJhbnNwYXJlbnQ7XG5cbi8vIDE5LiBGbGV4Ym94IFV0aWxpdGllc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRmbGV4LXNvdXJjZS1vcmRlcmluZy1jb3VudDogNjtcbiRmbGV4Ym94LXJlc3BvbnNpdmUtYnJlYWtwb2ludHM6IHRydWU7XG5cbi8vIDIwLiBGb3Jtc1xuLy8gLS0tLS0tLS0tXG5cbiRmaWVsZHNldC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kZmllbGRzZXQtcGFkZGluZzogcmVtLWNhbGMoMjApO1xuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCk7XG4kbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMyk7XG4kZm9ybS1zcGFjaW5nOiByZW0tY2FsYygxNik7XG4kaGVscHRleHQtY29sb3I6ICRibGFjaztcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiRoZWxwdGV4dC1mb250LXN0eWxlOiBpdGFsaWM7XG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2s7XG4kaW5wdXQtcHJlZml4LWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGlucHV0LXByZWZpeC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtcHJlZml4LXBhZGRpbmc6IDFyZW07XG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrO1xuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuODtcbiRzZWxlY3QtYmFja2dyb3VuZDogJHdoaXRlO1xuJHNlbGVjdC10cmlhbmdsZS1jb2xvcjogJGRhcmstZ3JheTtcbiRzZWxlY3QtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRpbnB1dC1jb2xvcjogJGJsYWNrO1xuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4kaW5wdXQtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRpbnB1dC1saW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0O1xuJGlucHV0LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGU7XG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXk7XG4kaW5wdXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG4kaW5wdXQtcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDI7XG4kaW5wdXQtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgkYmxhY2ssIDAuMSk7XG4kaW5wdXQtc2hhZG93LWZvY3VzOiAwIDAgNXB4ICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkO1xuJGlucHV0LXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZTtcbiRpbnB1dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGZvcm0tYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDIxLiBMYWJlbFxuLy8gLS0tLS0tLS0tXG5cbiRsYWJlbC1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRsYWJlbC1jb2xvcjogJHdoaXRlO1xuJGxhYmVsLWNvbG9yLWFsdDogJGJsYWNrO1xuJGxhYmVsLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGU7XG4kbGFiZWwtZm9udC1zaXplOiAwLjhyZW07XG4kbGFiZWwtcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW07XG4kbGFiZWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMjIuIE1lZGlhIE9iamVjdFxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kbWVkaWFvYmplY3QtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4kbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDogMTAwJTtcblxuLy8gMjMuIE1lbnVcbi8vIC0tLS0tLS0tXG5cbiRtZW51LW1hcmdpbjogMDtcbiRtZW51LW5lc3RlZC1tYXJnaW46ICRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luO1xuJG1lbnUtaXRlbXMtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG4kbWVudS1zaW1wbGUtbWFyZ2luOiAxcmVtO1xuJG1lbnUtaXRlbS1jb2xvci1hY3RpdmU6ICR3aGl0ZTtcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KTtcbiRtZW51LWljb24tc3BhY2luZzogMC4yNXJlbTtcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXk7XG4kbWVudS1zdGF0ZS1iYWNrLWNvbXBhdDogdHJ1ZTtcbiRtZW51LWNlbnRlcmVkLWJhY2stY29tcGF0OiB0cnVlO1xuJG1lbnUtaWNvbnMtYmFjay1jb21wYXQ6IHRydWU7XG5cbi8vIDI0LiBNZXRlclxuLy8gLS0tLS0tLS0tXG5cbiRtZXRlci1oZWlnaHQ6IDFyZW07XG4kbWV0ZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRtZXRlci1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kbWV0ZXItZmlsbC1nb29kOiAkc3VjY2Vzcy1jb2xvcjtcbiRtZXRlci1maWxsLW1lZGl1bTogJHdhcm5pbmctY29sb3I7XG4kbWV0ZXItZmlsbC1iYWQ6ICRhbGVydC1jb2xvcjtcblxuLy8gMjUuIE9mZi1jYW52YXNcbi8vIC0tLS0tLS0tLS0tLS0tXG5cbiRvZmZjYW52YXMtc2l6ZXM6IChcbiAgc21hbGw6IDEwMCUsXG4pO1xuJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplczogKFxuICBzbWFsbDogMjUwcHgsXG4pO1xuJG9mZmNhbnZhcy1iYWNrZ3JvdW5kOiAkaGlnaGxpZ2h0LWNvbG9yO1xuJG9mZmNhbnZhcy1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoJGJsYWNrLCAwLjcpO1xuJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZTogMjBweDtcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yOiByZ2JhKCRibGFjaywgMC4yNSk7XG4kb2ZmY2FudmFzLW92ZXJsYXktemluZGV4OiAxMTtcbiRvZmZjYW52YXMtcHVzaC16aW5kZXg6IDEyO1xuJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDogMTM7XG4kb2ZmY2FudmFzLXJldmVhbC16aW5kZXg6IDEyO1xuJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aDogMC41cztcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc6IGVhc2U7XG4kb2ZmY2FudmFzLWZpeGVkLXJldmVhbDogdHJ1ZTtcbiRvZmZjYW52YXMtZXhpdC1iYWNrZ3JvdW5kOiByZ2JhKCR3aGl0ZSwgMC4yNSk7XG4kbWFpbmNvbnRlbnQtY2xhc3M6ICdvZmYtY2FudmFzLWNvbnRlbnQnO1xuXG4vLyAyNi4gT3JiaXRcbi8vIC0tLS0tLS0tLVxuXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU6ICRkYXJrLWdyYXk7XG4kb3JiaXQtYnVsbGV0LWRpYW1ldGVyOiAxLjJyZW07XG4kb3JiaXQtYnVsbGV0LW1hcmdpbjogMC4xcmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wOiAwLjhyZW07XG4kb3JiaXQtYnVsbGV0LW1hcmdpbi1ib3R0b206IDAuOHJlbTtcbiRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjUpO1xuJG9yYml0LWNhcHRpb24tcGFkZGluZzogMXJlbTtcbiRvcmJpdC1jb250cm9sLWJhY2tncm91bmQtaG92ZXI6IHJnYmEoJGJsYWNrLCAwLjUpO1xuJG9yYml0LWNvbnRyb2wtcGFkZGluZzogMXJlbTtcbiRvcmJpdC1jb250cm9sLXppbmRleDogMTA7XG5cbi8vIDI3LiBQYWdpbmF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kcGFnaW5hdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvcjogJGJsYWNrO1xuJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nOiByZW0tY2FsYygzIDEwKTtcbiRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZzogcmVtLWNhbGMoMSk7XG4kcGFnaW5hdGlvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheTtcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50OiAkcHJpbWFyeS1jb2xvcjtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudDogJHdoaXRlO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5O1xuJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3I6ICRibGFjaztcbiRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2U7XG4kcGFnaW5hdGlvbi1tb2JpbGUtY3VycmVudC1pdGVtOiBmYWxzZTtcbiRwYWdpbmF0aW9uLWFycm93czogdHJ1ZTtcblxuLy8gMjguIFByb2dyZXNzIEJhclxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvZ3Jlc3MtaGVpZ2h0OiAxcmVtO1xuJHByb2dyZXNzLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRwcm9ncmVzcy1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRwcm9ncmVzcy1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyOS4gUHJvdG90eXBlIEFycm93XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtYXJyb3ctZGlyZWN0aW9uczogKFxuICBkb3duLFxuICB1cCxcbiAgcmlnaHQsXG4gIGxlZnRcbik7XG4kcHJvdG90eXBlLWFycm93LXNpemU6IDAuNDM3NXJlbTtcbiRwcm90b3R5cGUtYXJyb3ctY29sb3I6ICRibGFjaztcblxuLy8gMzAuIFByb3RvdHlwZSBCb3JkZXItQm94XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1ib3JkZXItYm94LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcblxuLy8gMzEuIFByb3RvdHlwZSBCb3JkZXItTm9uZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWJvcmRlci1ub25lLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcblxuLy8gMzIuIFByb3RvdHlwZSBCb3JkZXJlZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWJvcmRlcmVkLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtYm9yZGVyLXdpZHRoOiByZW0tY2FsYygxKTtcbiRwcm90b3R5cGUtYm9yZGVyLXR5cGU6IHNvbGlkO1xuJHByb3RvdHlwZS1ib3JkZXItY29sb3I6ICRtZWRpdW0tZ3JheTtcblxuLy8gMzMuIFByb3RvdHlwZSBEaXNwbGF5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1kaXNwbGF5LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtZGlzcGxheTogKFxuICBpbmxpbmUsXG4gIGlubGluZS1ibG9jayxcbiAgYmxvY2ssXG4gIHRhYmxlLFxuICB0YWJsZS1jZWxsXG4pO1xuXG4vLyAzNC4gUHJvdG90eXBlIEZvbnQtU3R5bGluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1mb250LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtd2lkZS1sZXR0ZXItc3BhY2luZzogcmVtLWNhbGMoNCk7XG4kcHJvdG90eXBlLWZvbnQtbm9ybWFsOiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kcHJvdG90eXBlLWZvbnQtYm9sZDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcblxuLy8gMzUuIFByb3RvdHlwZSBMaXN0LVN0eWxlLVR5cGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtbGlzdC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXN0eWxlLXR5cGUtdW5vcmRlcmVkOiAoXG4gIGRpc2MsXG4gIGNpcmNsZSxcbiAgc3F1YXJlXG4pO1xuJHByb3RvdHlwZS1zdHlsZS10eXBlLW9yZGVyZWQ6IChcbiAgZGVjaW1hbCxcbiAgbG93ZXItYWxwaGEsXG4gIGxvd2VyLWxhdGluLFxuICBsb3dlci1yb21hbixcbiAgdXBwZXItYWxwaGEsXG4gIHVwcGVyLWxhdGluLFxuICB1cHBlci1yb21hblxuKTtcblxuLy8gMzYuIFByb3RvdHlwZSBPdmVyZmxvd1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLW92ZXJmbG93LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtb3ZlcmZsb3c6IChcbiAgdmlzaWJsZSxcbiAgaGlkZGVuLFxuICBzY3JvbGxcbik7XG5cbi8vIDM3LiBQcm90b3R5cGUgUG9zaXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1wb3NpdGlvbi1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXBvc2l0aW9uOiAoXG4gIHN0YXRpYyxcbiAgcmVsYXRpdmUsXG4gIGFic29sdXRlLFxuICBmaXhlZFxuKTtcbiRwcm90b3R5cGUtcG9zaXRpb24tei1pbmRleDogOTc1O1xuXG4vLyAzOC4gUHJvdG90eXBlIFJvdW5kZWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXJvdW5kZWQtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1ib3JkZXItcmFkaXVzOiByZW0tY2FsYygzKTtcblxuLy8gMzkuIFByb3RvdHlwZSBTZXBhcmF0b3Jcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtc2VwYXJhdG9yLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtc2VwYXJhdG9yLWFsaWduOiBjZW50ZXI7XG4kcHJvdG90eXBlLXNlcGFyYXRvci1oZWlnaHQ6IHJlbS1jYWxjKDIpO1xuJHByb3RvdHlwZS1zZXBhcmF0b3Itd2lkdGg6IDNyZW07XG4kcHJvdG90eXBlLXNlcGFyYXRvci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRwcm90b3R5cGUtc2VwYXJhdG9yLW1hcmdpbi10b3A6ICRnbG9iYWwtbWFyZ2luO1xuXG4vLyA0MC4gUHJvdG90eXBlIFNoYWRvd1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1zaGFkb3ctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1ib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDAsMCwwLC4xNiksXG4gICAgICAgICAgICAgICAgICAgICAgIDAgMnB4IDEwcHggMCByZ2JhKDAsMCwwLC4xMik7XG5cbi8vIDQxLiBQcm90b3R5cGUgU2l6aW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXNpemluZy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXNpemluZzogKFxuICB3aWR0aCxcbiAgaGVpZ2h0XG4pO1xuJHByb3RvdHlwZS1zaXplczogKFxuICAyNTogMjUlLFxuICA1MDogNTAlLFxuICA3NTogNzUlLFxuICAxMDA6IDEwMCVcbik7XG5cbi8vIDQyLiBQcm90b3R5cGUgU3BhY2luZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtc3BhY2luZy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXNwYWNlcnMtY291bnQ6IDM7XG5cbi8vIDQzLiBQcm90b3R5cGUgVGV4dC1EZWNvcmF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWRlY29yYXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS10ZXh0LWRlY29yYXRpb246IChcbiAgb3ZlcmxpbmUsXG4gIHVuZGVybGluZSxcbiAgbGluZS10aHJvdWdoLFxuKTtcblxuLy8gNDQuIFByb3RvdHlwZSBUZXh0LVRyYW5zZm9ybWF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS10cmFuc2Zvcm1hdGlvbi1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXRleHQtdHJhbnNmb3JtYXRpb246IChcbiAgbG93ZXJjYXNlLFxuICB1cHBlcmNhc2UsXG4gIGNhcGl0YWxpemVcbik7XG5cbi8vIDQ1LiBQcm90b3R5cGUgVGV4dC1VdGlsaXRpZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS11dGlsaXRpZXMtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS10ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblxuLy8gNDYuIFJlc3BvbnNpdmUgRW1iZWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRyZXNwb25zaXZlLWVtYmVkLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE2KTtcbiRyZXNwb25zaXZlLWVtYmVkLXJhdGlvczogKFxuICBkZWZhdWx0OiA0IGJ5IDMsXG4gIHdpZGVzY3JlZW46IDE2IGJ5IDksXG4pO1xuXG4vLyA0Ny4gUmV2ZWFsXG4vLyAtLS0tLS0tLS0tXG5cbiRyZXZlYWwtYmFja2dyb3VuZDogJHdoaXRlO1xuJHJldmVhbC13aWR0aDogNjAwcHg7XG4kcmV2ZWFsLW1heC13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRyZXZlYWwtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuJHJldmVhbC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kcmV2ZWFsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kcmV2ZWFsLXppbmRleDogMTAwNTtcbiRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC40NSk7XG5cbi8vIDQ4LiBTbGlkZXJcbi8vIC0tLS0tLS0tLS1cblxuJHNsaWRlci13aWR0aC12ZXJ0aWNhbDogMC41cmVtO1xuJHNsaWRlci10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiRzbGlkZXItaGVpZ2h0OiAwLjVyZW07XG4kc2xpZGVyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJHNsaWRlci1maWxsLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRzbGlkZXItaGFuZGxlLWhlaWdodDogMS40cmVtO1xuJHNsaWRlci1oYW5kbGUtd2lkdGg6IDEuNHJlbTtcbiRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkOiAwLjI1O1xuJHNsaWRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA0OS4gU3dpdGNoXG4vLyAtLS0tLS0tLS0tXG5cbiRzd2l0Y2gtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJHN3aXRjaC1iYWNrZ3JvdW5kLWFjdGl2ZTogJHByaW1hcnktY29sb3I7XG4kc3dpdGNoLWhlaWdodDogMnJlbTtcbiRzd2l0Y2gtaGVpZ2h0LXRpbnk6IDEuNXJlbTtcbiRzd2l0Y2gtaGVpZ2h0LXNtYWxsOiAxLjc1cmVtO1xuJHN3aXRjaC1oZWlnaHQtbGFyZ2U6IDIuNXJlbTtcbiRzd2l0Y2gtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRzd2l0Y2gtbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbjtcbiRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRzd2l0Y2gtcGFkZGxlLW9mZnNldDogMC4yNXJlbTtcbiRzd2l0Y2gtcGFkZGxlLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQ7XG5cbi8vIDUwLiBUYWJsZVxuLy8gLS0tLS0tLS0tXG5cbiR0YWJsZS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kdGFibGUtY29sb3Itc2NhbGU6IDUlO1xuJHRhYmxlLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLXBhZGRpbmc6IHJlbS1jYWxjKDggMTAgMTApO1xuJHRhYmxlLWhvdmVyLXNjYWxlOiAyJTtcbiR0YWJsZS1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSArICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtaXMtc3RyaXBlZDogdHJ1ZTtcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLXN0cmlwZTogZXZlbjtcbiR0YWJsZS1oZWFkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgLyAyKTtcbiR0YWJsZS1oZWFkLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1oZWFkLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcbiR0YWJsZS1mb290LXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1mb290LWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHRhYmxlLWZvb3QtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRzaG93LWhlYWRlci1mb3Itc3RhY2tlZDogZmFsc2U7XG4kdGFibGUtc3RhY2stYnJlYWtwb2ludDogbWVkaXVtO1xuXG4vLyA1MS4gVGFic1xuLy8gLS0tLS0tLS1cblxuJHRhYi1tYXJnaW46IDA7XG4kdGFiLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTogJGxpZ2h0LWdyYXk7XG4kdGFiLWFjdGl2ZS1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kdGFiLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4kdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJHdoaXRlO1xuJHRhYi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMS41cmVtO1xuJHRhYi1leHBhbmQtbWF4OiA2O1xuJHRhYi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWItY29udGVudC1ib3JkZXI6ICRsaWdodC1ncmF5O1xuJHRhYi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHRhYi1jb250ZW50LXBhZGRpbmc6IDFyZW07XG5cbi8vIDUyLiBUaHVtYm5haWxcbi8vIC0tLS0tLS0tLS0tLS1cblxuJHRodW1ibmFpbC1ib3JkZXI6IHNvbGlkIDRweCAkd2hpdGU7XG4kdGh1bWJuYWlsLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHRodW1ibmFpbC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKCRibGFjaywgMC4yKTtcbiR0aHVtYm5haWwtc2hhZG93LWhvdmVyOiAwIDAgNnB4IDFweCByZ2JhKCRwcmltYXJ5LWNvbG9yLCAwLjUpO1xuJHRodW1ibmFpbC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGVhc2Utb3V0O1xuJHRodW1ibmFpbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA1My4gVGl0bGUgQmFyXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiR0aXRsZWJhci1iYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5LWNvbG9yO1xuJHRpdGxlYmFyLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiR0aXRsZWJhci1wYWRkaW5nOiAwLjVyZW07XG4kdGl0bGViYXItdGV4dC1mb250LXdlaWdodDogYm9sZDtcbiR0aXRsZWJhci1pY29uLWNvbG9yOiAkd2hpdGU7XG4kdGl0bGViYXItaWNvbi1jb2xvci1ob3ZlcjogJG1lZGl1bS1ncmF5O1xuJHRpdGxlYmFyLWljb24tc3BhY2luZzogMC4yNXJlbTtcblxuLy8gNTQuIFRvb2x0aXBcbi8vIC0tLS0tLS0tLS0tXG5cbiRoYXMtdGlwLWN1cnNvcjogaGVscDtcbiRoYXMtdGlwLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuJGhhcy10aXAtYm9yZGVyLWJvdHRvbTogZG90dGVkIDFweCAkZGFyay1ncmF5O1xuJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuJHRvb2x0aXAtY29sb3I6ICR3aGl0ZTtcbiR0b29sdGlwLXBhZGRpbmc6IDAuNzVyZW07XG4kdG9vbHRpcC1tYXgtd2lkdGg6IDEwcmVtO1xuJHRvb2x0aXAtZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuJHRvb2x0aXAtcGlwLXdpZHRoOiAwLjc1cmVtO1xuJHRvb2x0aXAtcGlwLWhlaWdodDogJHRvb2x0aXAtcGlwLXdpZHRoICogMC44NjY7XG4kdG9vbHRpcC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA1NS4gVG9wIEJhclxuLy8gLS0tLS0tLS0tLS1cblxuJHRvcGJhci1wYWRkaW5nOiAwO1xuJHRvcGJhci1iYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5LWNvbG9yO1xuJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ6ICR0b3BiYXItYmFja2dyb3VuZDtcbiR0b3BiYXItdGl0bGUtc3BhY2luZzogMC41cmVtIDFyZW0gMC41cmVtIDA7XG4kdG9wYmFyLWlucHV0LXdpZHRoOiAyMDBweDtcbiR0b3BiYXItdW5zdGFjay1icmVha3BvaW50OiBtZWRpdW07XG5cbi8vIDU2LiBYeSBHcmlkXG4vLyAtLS0tLS0tLS0tLVxuXG4keHktZ3JpZDogdHJ1ZTtcbiRncmlkLWNvbnRhaW5lcjogJGdsb2JhbC13aWR0aDtcbiRncmlkLWNvbHVtbnM6IDEyO1xuJGdyaWQtbWFyZ2luLWd1dHRlcnM6IChcbiAgc21hbGw6IDIwcHgsXG4gIG1lZGl1bTogMzBweFxuKTtcbiRncmlkLXBhZGRpbmctZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnM7XG4kZ3JpZC1jb250YWluZXItcGFkZGluZzogJGdyaWQtcGFkZGluZy1ndXR0ZXJzO1xuJGdyaWQtY29udGFpbmVyLW1heDogJGdsb2JhbC13aWR0aDtcbiR4eS1ibG9jay1ncmlkLW1heDogODtcblxuXG5hIHtcbiAgY29sb3I6ICRkYXJrLWdyYXk7XG59XG5cbnAge1xuICBzdHJvbmcge1xuICAgIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseS0taGVhdnk7XG4gIH1cbn0iLCIvKipcbiAqIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbiAqIFZlcnNpb24gNi40LjNcbiAqIGZvdW5kYXRpb24uenVyYi5jb21cbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuICovXG5cbi8vIERlcGVuZGVuY2llc1xuQGltcG9ydCAnLi4vX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2hlbHBlcnMvbWlzc2luZy1kZXBlbmRlbmNpZXMnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL3RydWUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvY29udGFpbic7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9wdXJnZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9yZW1vdmUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcmVwbGFjZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy90by1saXN0JztcblxuLy8gU2V0dGluZ3Ncbi8vIGltcG9ydCB5b3VyIG93biBgc2V0dGluZ3NgIGhlcmUgb3Jcbi8vIGltcG9ydCBhbmQgbW9kaWZ5IHRoZSBkZWZhdWx0IHNldHRpbmdzIHRocm91Z2hcbi8vIEBpbXBvcnQgJ3NldHRpbmdzL3NldHRpbmdzJztcblxuLy8gU2FzcyB1dGlsaXRpZXNcbkBpbXBvcnQgJ3V0aWwvdXRpbCc7XG5cbi8vIEdsb2JhbCB2YXJpYWJsZXMgYW5kIHN0eWxlc1xuQGltcG9ydCAnZ2xvYmFsJztcblxuLy8gQ29tcG9uZW50c1xuQGltcG9ydCAnZ3JpZC9ncmlkJztcbkBpbXBvcnQgJ3h5LWdyaWQveHktZ3JpZCc7XG5AaW1wb3J0ICd0eXBvZ3JhcGh5L3R5cG9ncmFwaHknO1xuQGltcG9ydCAnZm9ybXMvZm9ybXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy92aXNpYmlsaXR5JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxvYXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24tZ3JvdXAnO1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24tbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2FjY29yZGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2JhZGdlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnJlYWRjcnVtYnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jYWxsb3V0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2FyZCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Nsb3NlLWJ1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2RyaWxsZG93bic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Ryb3Bkb3duLW1lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2ZsZXgnO1xuQGltcG9ydCAnY29tcG9uZW50cy9yZXNwb25zaXZlLWVtYmVkJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbGFiZWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZWRpYS1vYmplY3QnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudS1pY29uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvb2ZmLWNhbnZhcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL29yYml0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcGFnaW5hdGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Byb2dyZXNzLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3JldmVhbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NsaWRlcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N0aWNreSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N3aXRjaCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYmxlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFicyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RpdGxlLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RvcC1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy90aHVtYm5haWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy90b29sdGlwJztcbkBpbXBvcnQgJ3Byb3RvdHlwZS9wcm90b3R5cGUnO1xuXG5AbWl4aW4gZm91bmRhdGlvbi1ldmVyeXRoaW5nKFxuICAkZmxleDogdHJ1ZSxcbiAgJHByb3RvdHlwZTogZmFsc2Vcbikge1xuICBAaWYgJGZsZXgge1xuICAgICRnbG9iYWwtZmxleGJveDogdHJ1ZSAhZ2xvYmFsO1xuICB9XG5cbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzO1xuICBAaWYgbm90ICRmbGV4IHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWdyaWQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiAkeHktZ3JpZCB7XG4gICAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLXh5LWdyaWQtY2xhc3NlcztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWdyaWQ7XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJhZGdlO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jYWxsb3V0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhcmQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2xvc2UtYnV0dG9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudS1pY29uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1sYWJlbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZWRpYS1vYmplY3Q7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tb2ZmLWNhbnZhcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1vcmJpdDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wYWdpbmF0aW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb2dyZXNzLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zbGlkZXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc3RpY2t5O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJldmVhbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zd2l0Y2g7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFibGU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFicztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aHVtYm5haWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGl0bGUtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvb2x0aXA7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9wLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxvYXQtY2xhc3NlcztcblxuICBAaWYgJGZsZXgge1xuICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxleC1jbGFzc2VzO1xuICB9XG5cbiAgQGlmICRwcm90b3R5cGUge1xuICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLWNsYXNzZXM7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJyZWFrcG9pbnRzXG4vLy8vXG5cbi8vLyBBIGxpc3Qgb2YgbmFtZWQgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMuXG4vLy8gQHR5cGUgTWFwXG4kYnJlYWtwb2ludHM6IChcbiAgc21hbGw6IDAsXG4gIG1lZGl1bTogNjQwcHgsXG4gIGxhcmdlOiAxMDI0cHgsXG4gIHhsYXJnZTogMTIwMHB4LFxuICB4eGxhcmdlOiAxNDQwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gVGhlIGxhcmdlc3QgbmFtZWQgYnJlYWtwb2ludCBpbiB3aGljaCB0byBpbmNsdWRlIHByaW50IGFzIGEgbWVkaWEgdHlwZVxuLy8vIEB0eXBlIEtleXdvcmRcbiRwcmludC1icmVha3BvaW50OiBsYXJnZSAhZGVmYXVsdDtcblxuJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IHNtYWxsICFkZWZhdWx0O1xuXG4kLXpmLWJyZWFrcG9pbnRzLWtleXM6IG1hcC10by1saXN0KCRicmVha3BvaW50cywgJ2tleXMnKTtcblxuQGlmIG50aChtYXAtdmFsdWVzKCRicmVha3BvaW50cyksIDEpICE9IDAge1xuICBAZXJyb3IgJ1lvdXIgc21hbGxlc3QgYnJlYWtwb2ludCAoZGVmaW5lZCBpbiAkYnJlYWtwb2ludHMpIG11c3QgYmUgc2V0IHRvIFwiMFwiLic7XG59XG5AZWxzZSB7XG4gICQtemYtemVyby1icmVha3BvaW50OiBudGgobWFwLWtleXMoJGJyZWFrcG9pbnRzKSwgMSk7XG59XG5cbi8vLyBBbGwgb2YgdGhlIG5hbWVzIGluIHRoaXMgbGlzdCB3aWxsIGJlIG91dHB1dCBhcyBjbGFzc2VzIGluIHlvdXIgQ1NTLCBsaWtlIGAuc21hbGwtMTJgLCBgLm1lZGl1bS02YCwgYW5kIHNvIG9uLiBFYWNoIHZhbHVlIGluIHRoaXMgbGlzdCBtdXN0IGFsc28gYmUgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcC5cbi8vLyBAdHlwZSBMaXN0XG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoc21hbGwgbWVkaXVtIGxhcmdlKSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IHN0cmluZyBtYXRjaGluZyB0aGUgaW5wdXQgdmFsdWUuIFJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gc2VlIHdoYXQgdGhlIHBvc3NpYmxlIGlucHV0cyBhcmUuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsIFtzbWFsbF0gLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG5AZnVuY3Rpb24gYnJlYWtwb2ludCgkdmFsOiAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAvLyBTaXplIG9yIGtleXdvcmRcbiAgJGJwOiBudGgoJHZhbCwgMSk7XG4gIC8vIFZhbHVlIGZvciBtYXgtd2lkdGggbWVkaWEgcXVlcmllc1xuICAkYnAtbWF4OiAwO1xuICAvLyBEaXJlY3Rpb24gb2YgbWVkaWEgcXVlcnkgKHVwLCBkb3duLCBvciBvbmx5KVxuICAkZGlyOiBpZihsZW5ndGgoJHZhbCkgPiAxLCBudGgoJHZhbCwgMiksIHVwKTtcbiAgLy8gRXZlbnR1YWwgb3V0cHV0XG4gICRzdHI6ICcnO1xuICAvLyBJcyBpdCBhIG5hbWVkIG1lZGlhIHF1ZXJ5P1xuICAkbmFtZWQ6IGZhbHNlO1xuXG4gIC8vIE9yaWVudGF0aW9uIG1lZGlhIHF1ZXJpZXMgaGF2ZSBhIHVuaXF1ZSBzeW50YXhcbiAgQGlmICRicCA9PSAnbGFuZHNjYXBlJyBvciAkYnAgPT0gJ3BvcnRyYWl0JyB7XG4gICAgQHJldHVybiAnKG9yaWVudGF0aW9uOiAjeyRicH0pJztcbiAgfVxuICBAZWxzZSBpZiAkYnAgPT0gJ3JldGluYScge1xuICAgIEByZXR1cm4gJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknO1xuICB9XG5cbiAgLy8gVHJ5IHRvIHB1bGwgYSBuYW1lZCBicmVha3BvaW50IG91dCBvZiB0aGUgJGJyZWFrcG9pbnRzIG1hcFxuICBAaWYgdHlwZS1vZigkYnApID09ICdzdHJpbmcnIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnApIHtcbiAgICAgIEBpZiAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XG4gICAgICAgICRicC1tYXg6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRicCk7XG4gICAgICB9XG5cbiAgICAgICRicDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRicCk7XG4gICAgICAkbmFtZWQ6IHRydWU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRicDogMDtcbiAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IFwiI3skdmFsfVwiIGlzIG5vdCBkZWZpbmVkIGluIHlvdXIgJGJyZWFrcG9pbnRzIHNldHRpbmcuJztcbiAgICB9XG4gIH1cblxuICAvLyBDb252ZXJ0IGFueSBwaXhlbCwgcmVtLCBvciB1bml0bGVzcyB2YWx1ZSB0byBlbVxuICAkYnA6IC16Zi1icC10by1lbSgkYnApO1xuICBAaWYgJGJwLW1heCB7XG4gICAgJGJwLW1heDogLXpmLWJwLXRvLWVtKCRicC1tYXgpIC0gKDEvMTYpO1xuICB9XG5cbiAgLy8gQ29uZGl0aW9ucyB0byBza2lwIG1lZGlhIHF1ZXJ5IGNyZWF0aW9uXG4gIC8vIC0gSXQncyBhIG5hbWVkIGJyZWFrcG9pbnQgdGhhdCByZXNvbHZlZCB0byBcIjAgZG93blwiIG9yIFwiMCB1cFwiXG4gIC8vIC0gSXQncyBhIG51bWVyaWMgYnJlYWtwb2ludCB0aGF0IHJlc29sdmVkIHRvIFwiMCBcIiArIGFueXRoaW5nXG4gIEBpZiAkYnAgPiAwZW0gb3IgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgIC8vIGBvbmx5YCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pIGFuZCAobWF4LXdpZHRoOiBuKWBcbiAgICBAaWYgJGRpciA9PSAnb25seScge1xuICAgICAgLy8gT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIFwib25seVwiIHJhbmdlXG4gICAgICBAaWYgJG5hbWVkID09IHRydWUge1xuICAgICAgICAvLyBPbmx5IHVzZSBcIm1pbi13aWR0aFwiIGlmIHRoZSBmbG9vciBpcyBncmVhdGVyIHRoYW4gMFxuICAgICAgICBAaWYgJGJwID4gMGVtIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtaW4td2lkdGg6ICN7JGJwfSknO1xuXG4gICAgICAgICAgLy8gT25seSBhZGQgXCJhbmRcIiB0byB0aGUgbWVkaWEgcXVlcnkgaWYgdGhlcmUncyBhIGNlaWxpbmdcbiAgICAgICAgICBAaWYgJGJwLW1heCAhPSBudWxsIHtcbiAgICAgICAgICAgICRzdHI6ICRzdHIgKyAnIGFuZCAnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9ubHkgdXNlIFwibWF4LXdpZHRoXCIgaWYgdGhlcmUncyBhIGNlaWxpbmdcbiAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWF4LXdpZHRoOiAjeyRicC1tYXh9KSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIGBvbmx5YCByYW5nZS4nO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGBkb3duYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtYXgtd2lkdGg6IG4pYFxuICAgIEBlbHNlIGlmICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAgICRtYXg6IGlmKCRuYW1lZCwgJGJwLW1heCwgJGJwKTtcblxuICAgICAgLy8gU2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvbiBpZiBpbnB1dCB2YWx1ZSBpcyBleGFjdGx5IFwiMCBkb3duXCIsXG4gICAgICAvLyB1bmxlc3MgdGhlIGZ1bmN0aW9uIHdhcyBjYWxsZWQgYXMgXCJzbWFsbCBkb3duXCIsIGluIHdoaWNoIGNhc2UgaXQncyBqdXN0IFwic21hbGwgb25seVwiXG4gICAgICBAaWYgJG5hbWVkIG9yICRicCA+IDBlbSB7XG4gICAgICAgIEBpZiAkbWF4ICE9IG51bGwge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1heC13aWR0aDogI3skbWF4fSknO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYHVwYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pYFxuICAgIEBlbHNlIGlmICRicCA+IDBlbSB7XG4gICAgICAkc3RyOiAkc3RyICsgJyhtaW4td2lkdGg6ICN7JGJwfSknO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIFdyYXBzIGEgbWVkaWEgcXVlcnkgYXJvdW5kIHRoZSBjb250ZW50IHlvdSBwdXQgaW5zaWRlIHRoZSBtaXhpbi4gVGhpcyBtaXhpbiBhY2NlcHRzIGEgbnVtYmVyIG9mIHZhbHVlczpcbi8vLyAgLSBJZiBhIHN0cmluZyBpcyBwYXNzZWQsIHRoZSBtaXhpbiB3aWxsIGxvb2sgZm9yIGl0IGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAsIGFuZCB1c2UgYSBtZWRpYSBxdWVyeSB0aGVyZS5cbi8vLyAgLSBJZiBhIHBpeGVsIHZhbHVlIGlzIHBhc3NlZCwgaXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gZW0gdmFsdWUgdXNpbmcgYCRnbG9iYWwtZm9udC1zaXplYCBhcyB0aGUgYmFzZS5cbi8vLyAgLSBJZiBhIHJlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB1bml0IHdpbGwgYmUgY2hhbmdlZCB0byBlbS5cbi8vLyAgLSBJZiBhbiBlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMtaXMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG4vLy9cbi8vLyBAb3V0cHV0IElmIHRoZSBicmVha3BvaW50IGlzIFwiMHB4IGFuZCBsYXJnZXJcIiwgb3V0cHV0cyB0aGUgY29udGVudCBhcy1pcy4gT3RoZXJ3aXNlLCBvdXRwdXRzIHRoZSBjb250ZW50IHdyYXBwZWQgaW4gYSBtZWRpYSBxdWVyeS5cbkBtaXhpbiBicmVha3BvaW50KCR2YWx1ZSkge1xuICAkc3RyOiBicmVha3BvaW50KCR2YWx1ZSk7XG4gICRicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkdmFsdWUpO1xuICAkcGJwOiBpbmRleCgkLXpmLWJyZWFrcG9pbnRzLWtleXMsICRwcmludC1icmVha3BvaW50KTtcblxuICAkb2xkLXpmLXNpemU6IG51bGw7XG5cbiAgLy8gTWFrZSBicmVha3BvaW50IHNpemUgYXZhaWxhYmxlIGFzIGEgdmFyaWFibGVcbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoLXpmLXNpemUpIHtcbiAgICAkb2xkLXpmLXNpemU6ICQtemYtc2l6ZTtcbiAgfVxuICAkLXpmLXNpemU6IG50aCgkdmFsdWUsIDEpICFnbG9iYWw7IC8vIGdldCB0aGUgZmlyc3QgdmFsdWUgdG8gYWNjb3VudCBmb3IgYG9ubHlgIGFuZCBgZG93bmAga2V5d29yZHNcblxuICAvLyBJZiAkc3RyIGlzIHN0aWxsIGFuIGVtcHR5IHN0cmluZywgbm8gbWVkaWEgcXVlcnkgaXMgbmVlZGVkXG4gIEBpZiAkc3RyID09ICcnIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gIC8vIE90aGVyd2lzZSwgd3JhcCB0aGUgY29udGVudCBpbiBhIG1lZGlhIHF1ZXJ5XG4gIEBlbHNlIHtcbiAgICAvLyBGb3IgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICRwcmludC1icmVha3BvaW50LCBhZGQgcHJpbnQgdG8gdGhlIG1lZGlhIHR5cGVzXG4gICAgQGlmICRicCAhPSBudWxsIGFuZCAkYnAgPD0gJHBicCB7XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkb2xkLXpmLXNpemUgIT0gbnVsbCB7XG4gICAgLy8gUmVzdG9yZSB0aGUgb2xkIGJyZWFrcG9pbnQgc2l6ZVxuICAgICQtemYtc2l6ZTogJG9sZC16Zi1zaXplICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICQtemYtc2l6ZTogbnVsbCAhZ2xvYmFsO1xuICB9XG59XG5cbi8vLyBDb252ZXJzIHRoZSBicmVha3BvaW50cyBtYXAgdG8gYSBVUkwtZW5jb2RlZCBzdHJpbmcsIGxpa2UgdGhpczogYGtleTE9dmFsdWUxJmtleTI9dmFsdWUyYC4gVGhlIHZhbHVlIGlzIHRoZW4gZHJvcHBlZCBpbnRvIHRoZSBDU1MgZm9yIGEgc3BlY2lhbCBgPG1ldGE+YCB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdC4gVGhpcyBpcyBob3cgd2UgdHJhbnNmZXIgdmFsdWVzIGZyb20gU2FzcyB0byBKYXZhU2NyaXB0LCBzbyB0aGV5IGNhbiBiZSBkZWZpbmVkIGluIG9uZSBwbGFjZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIGNvbnZlcnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7U3RyaW5nfSBBIHN0cmluZyBjb250YWluaW5nIHRoZSBtYXAncyBjb250ZW50cy5cbkBmdW5jdGlvbiAtemYtYnAtc2VyaWFsaXplKCRtYXApIHtcbiAgJHN0cjogJyc7XG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAkc3RyOiAkc3RyICsgJGtleSArICc9JyArIC16Zi1icC10by1lbSgkdmFsdWUpICsgJyYnO1xuICB9XG4gICRzdHI6IHN0ci1zbGljZSgkc3RyLCAxLCAtMik7XG5cbiAgQHJldHVybiAkc3RyO1xufVxuXG4vLy8gRmluZCB0aGUgbmV4dCBrZXkgaW4gYSBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byB0cmF2ZXJzZS5cbi8vLyBAcGFyYW0ge01peGVkfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBhIHN0YXJ0aW5nIHBvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge01peGVkfSBUaGUgdmFsdWUgZm9yIHRoZSBrZXkgYWZ0ZXIgYCRrZXlgLCBpZiBgJGtleWAgd2FzIGZvdW5kLiBJZiBgJGtleWAgd2FzIG5vdCBmb3VuZCwgb3IgYCRrZXlgIHdhcyB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgbWFwLCByZXR1cm5zIGBudWxsYC5cbkBmdW5jdGlvbiAtemYtbWFwLW5leHQoJG1hcCwgJGtleSkge1xuXG4gIC8vIFN0b3JlIHRoZSBrZXlzIG9mIHRoZSBtYXAgYXMgYSBsaXN0XG4gICR2YWx1ZXM6IG1hcC1rZXlzKCRtYXApO1xuXG4gICRpOiAwO1xuXG4gIC8vIElmIHRoZSBLZXkgRXhpc3RzLCBHZXQgdGhlIGluZGV4IG9mIHRoZSBrZXkgd2l0aGluIHRoZSBtYXAgYW5kIGFkZCAxIHRvIGl0IGZvciB0aGUgbmV4dCBicmVha3BvaW50IGluIHRoZSBtYXBcbiAgQGlmIChtYXAtaGFzLWtleSgkbWFwLCAka2V5KSkge1xuICAgICRpOiBpbmRleCgkdmFsdWVzLCAka2V5KSArIDE7XG4gIH1cblxuICAvLyBJZiB0aGUga2V5IGRvZXNuJ3QgZXhpc3QsIG9yIGl0J3MgdGhlIGxhc3Qga2V5IGluIHRoZSBtYXAsIHJldHVybiBudWxsXG4gIEBpZiAoJGkgPiBsZW5ndGgoJG1hcCkgb3IgJGkgPT0gMCkge1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBPdGhlcndpc2UsIHJldHVybiB0aGUgdmFsdWVcbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCBudGgoJHZhbHVlcywgJGkpKTtcbiAgfVxuXG59XG5cbi8vLyBSZXR1cm4gYSBsaXN0IG9mIG91ciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gJGtleS4gVXNlZnVsIGZvciBkZWFsaW5nIHdpdGhcbi8vLyByZXNwb25zaXZlIGd1dHRlcnMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGxhc3QgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtBcnJheX0gVGhlIGxpc3Qgb2YgYnJlYWtwb2ludHMgdXAgdG8gYW5kLiBJZiAka2V5IGlzIGF1dG8sIHJldHVybnMgYnJlYWtwb2ludHMgYWJvdmUgdGhlIHplcm9cbkBmdW5jdGlvbiAtemYtYnJlYWtwb2ludHMtbGVzcy10aGFuKCRrZXkpIHtcbiAgJGxpc3Q6ICgpO1xuICAkZm91bmRfa2V5OiBmYWxzZTtcblxuICBAZWFjaCAkbmFtZSBpbiAkLXpmLWJyZWFrcG9pbnRzLWtleXMge1xuICAgIEBpZiAoJG5hbWUgPT0gJGtleSkge1xuICAgICAgJGZvdW5kX2tleTogdHJ1ZTtcbiAgICB9XG4gICAgQGlmIG5vdCAkZm91bmRfa2V5IHtcbiAgICAgICRsaXN0OiBhcHBlbmQoJGxpc3QsICRuYW1lKTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiAkbGlzdDtcbn1cblxuLy8vIFJldHVybiBhIGxpc3Qgb2Ygb3VyIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiAka2V5LiBVc2VmdWwgZm9yIGRlYWxpbmcgd2l0aFxuLy8vIHJlc3BvbnNpdmUgZ3V0dGVycyBmb3IgdGhlIGdyaWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbmcgLSBhIG5hbWVkIG9yIG5vbi1uYW1lZCBicmVha3BvaW5nLlxuLy8vXG4vLy8gQHJldHVybnMge0FycmF5fSBUaGUgbGlzdCBvZiBicmVha3BvaW50cyB1cCB0byBhbmQuIElmICRrZXkgaXMgYXV0bywgcmV0dXJucyBicmVha3BvaW50cyBhYm92ZSB0aGUgemVyb1xuQGZ1bmN0aW9uIC16Zi1jbG9zZXN0LW5hbWVkLWJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcbiAgJGxhc3Q6ICQtemYtemVyby1icmVha3BvaW50O1xuICAkZm91bmQ6IGZhbHNlO1xuXG4gICR2YWx1ZTogdW5pdGxlc3MtY2FsYygkYnJlYWtwb2ludCwgMXB4KTtcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgIEBpZiB1bml0bGVzcy1jYWxjKCR2YWwpID4gJHZhbHVlIHtcbiAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRsYXN0OiAka2V5O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJGxhc3Q7XG59XG5cbi8vLyBHZXQgYSB2YWx1ZSBmb3IgYSBicmVha3BvaW50IGZyb20gYSByZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0IHJlZ2FyZGxlc3Mgb2YgYCR2YWx1ZWAuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBoYXMgdGhlIGtleSBgJHZhbHVlYCwgdGhlIGV4YWN0IGJyZWFrcG9pbnQgdmFsdWUgaXMgcmV0dXJuZWQuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBkb2VzICpub3QqIGhhdmUgdGhlIGJyZWFrcG9pbnQsIHRoZSB2YWx1ZSBtYXRjaGluZyB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBpbiB0aGUgY29uZmlnIG1hcCBpcyByZXR1cm5lZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcCAtIFJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUgdG8gdXNlLlxuLy8vXG4vLy8gQHJldHVybiB7TWl4ZWR9IFRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUuXG5AZnVuY3Rpb24gLXpmLWdldC1icC12YWwoJG1hcCwgJHZhbHVlKSB7XG4gIC8vIElmIHRoZSBnaXZlbiBtYXAgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdFxuICBAaWYgdHlwZS1vZigkbWFwKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkbWFwO1xuICB9XG5cblxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBnbG9iYWxseVxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgICAkdmFsdWU6IC16Zi1jbG9zZXN0LW5hbWVkLWJyZWFrcG9pbnQoJHZhbHVlKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIEByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgaW4gdGhlIGxvY2FsIGNvbmZpZyBtYXBcbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJG1hcCwgJHZhbHVlKSB7XG4gICAgLy8gSWYgaXQgZG9lcywganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICR2YWx1ZSk7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCBmaW5kIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGFuZCByZXR1cm4gdGhhdCB2YWx1ZVxuICBAZWxzZSB7XG4gICAgJGFuY2hvcjogbnVsbDtcbiAgICAkZm91bmQ6IGZhbHNlO1xuXG4gICAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgICAgQGlmIG5vdCAkZm91bmQge1xuICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJG1hcCwgJGtleSkge1xuICAgICAgICAgICRhbmNob3I6ICRrZXk7XG4gICAgICAgIH1cbiAgICAgICAgQGlmICRrZXkgPT0gJHZhbHVlIHtcbiAgICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJGFuY2hvcik7XG4gIH1cbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgc21hbGwpIHtcbiAgJHNtYWxsLXVwOiBzY3JlZW47XG4gICRzbWFsbC1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChzbWFsbCBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbWVkaXVtKSB7XG4gICRtZWRpdW0tdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSl9Jyk7XG4gICRtZWRpdW0tb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBsYXJnZSkge1xuICAkbGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlKX0nKTtcbiAgJGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4bGFyZ2UpIHtcbiAgJHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlKX0nKTtcbiAgJHhsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2Ugb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHh4bGFyZ2UpIHtcbiAgJHh4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHh4bGFyZ2UpfScpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcmV2ZWFsXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYSBtb2RhbC5cbi8vLyBAdHlwZSBDb2xvclxuJHJldmVhbC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHdpZHRoIG9mIGEgbW9kYWwsIHdpdGggbm8gY2xhc3MgYXBwbGllZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtd2lkdGg6IDYwMHB4ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXhpbXVtIHdpZHRoIG9mIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLW1heC13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYXJvdW5kIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIHotaW5kZXggZm9yIG1vZGFscy4gVGhlIG92ZXJsYXkgdXNlcyB0aGlzIHZhbHVlLCB3aGlsZSB0aGUgbW9kYWwgaXRzZWxmIHVzZXMgdGhpcyB2YWx1ZSBwbHVzIG9uZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtemluZGV4OiAxMDA1ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBtb2RhbCBvdmVybGF5cy5cbi8vLyBAdHlwZSBDb2xvclxuJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjQ1KSAhZGVmYXVsdDtcblxuXG4vLyBQbGFjZWhvbGRlciBzZWxlY3RvciBmb3IgbWVkaXVtLWFuZC11cCBtb2RhbHNcbi8vIFByZXZlbnRzIGR1cGxpY2F0ZSBDU1Mgd2hlbiBkZWZpbmluZyBtdWx0aXBsZSBSZXZlYWwgc2l6ZXNcbkBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICVyZXZlYWwtY2VudGVyZWQge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cbn1cblxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbW9kYWwgb3ZlcmxheS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgb3ZlcmxheS5cbkBtaXhpbiByZXZlYWwtb3ZlcmxheSgkYmFja2dyb3VuZDogJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQpIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6ICRyZXZlYWwtemluZGV4O1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG5cbi8vLyBBZGRzIGJhc2Ugc3R5bGVzIGZvciBhIG1vZGFsLlxuQG1peGluIHJldmVhbC1tb2RhbC1iYXNlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICB6LWluZGV4OiAkcmV2ZWFsLXppbmRleCArIDE7XG4gIC8vIFdvcmthcm91bmQgYW5kcm9pZCBicm93c2VyIHotaW5kZXggYnVnXG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAkcmV2ZWFsLXBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkcmV2ZWFsLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHJldmVhbC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRyZXZlYWwtYmFja2dyb3VuZDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gIH1cblxuICAvLyBNYWtlIHN1cmUgcm93cyBkb24ndCBoYXZlIGEgbWluLXdpZHRoIG9uIHRoZW1cbiAgLmNvbHVtbiB7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgLy8gU3RyaXAgbWFyZ2lucyBmcm9tIHRoZSBsYXN0IGl0ZW0gaW4gdGhlIG1vZGFsXG4gID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkanVzdHMgdGhlIHdpZHRoIG9mIGEgbW9kYWwuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCAtIFdpZHRoIG9mIHRoZSBtb2RhbC4gR2VuZXJhbGx5IGEgcGVyY2VudGFnZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heC13aWR0aCBbJHJldmVhbC1tYXgtd2lkdGhdIC0gTWF4aW11bSB3aWR0aCBvZiB0aGUgbW9kYWwuXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLXdpZHRoKFxuICAkd2lkdGg6ICRyZXZlYWwtd2lkdGgsXG4gICRtYXgtd2lkdGg6ICRyZXZlYWwtbWF4LXdpZHRoXG4pIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBAZXh0ZW5kICVyZXZlYWwtY2VudGVyZWQ7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgICBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBmdWxsLXNjcmVlbiBtb2RhbCwgd2hpY2ggc3RyZXRjaGVzIHRoZSBmdWxsIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIHdpbmRvdy5cbkBtaXhpbiByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbiB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcblxuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGhlaWdodDogMTAwdmg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tZHVwbGljYXRlLXByb3BlcnRpZXNcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuXG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcmV2ZWFsIHtcbiAgLy8gW1RPRE9dIElzIHRoaXMgbmVjZXNzYXJ5P1xuICBib2R5LmlzLXJldmVhbC1vcGVuIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIGh0bWwgZ2V0cyB0aGlzIGNsYXNzIG9ubHkgaW4gaU9TXG4gIGh0bWwuaXMtcmV2ZWFsLW9wZW4sXG4gIGh0bWwuaXMtcmV2ZWFsLW9wZW4gYm9keSB7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgfVxuXG4gIC8vIE92ZXJsYXlcbiAgLnJldmVhbC1vdmVybGF5IHtcbiAgICBAaW5jbHVkZSByZXZlYWwtb3ZlcmxheTtcbiAgfVxuXG4gIC8vIE1vZGFsIGNvbnRhaW5lclxuICAucmV2ZWFsIHtcbiAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZTtcbiAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoJHJldmVhbC13aWR0aCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMTAwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICAvLyBSZW1vdmUgcGFkZGluZ1xuICAgICYuY29sbGFwc2Uge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAvLyBTaXppbmcgY2xhc3Nlc1xuICAgICYudGlueSAgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoMzAlKTsgfVxuICAgICYuc21hbGwgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoNTAlKTsgfVxuICAgICYubGFyZ2UgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoOTAlKTsgfVxuXG4gICAgLy8gRnVsbC1zY3JlZW4gbW9kZVxuICAgICYuZnVsbCB7XG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtemVyby1icmVha3BvaW50IG9ubHkpIHtcbiAgICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1mdWxsc2NyZWVuO1xuICAgIH1cblxuICAgICYud2l0aG91dC1vdmVybGF5IHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEhlbHBlciBmdW5jdGlvbiBmb3IgdGhlIG5vcm1hbGl6ZSgpIG1peGluLlxuQGZ1bmN0aW9uIF9ub3JtYWxpemUtaW5jbHVkZSgkc2VjdGlvbiwgJGV4Y2x1ZGU6IG51bGwpIHtcbiAgLy8gSW5pdGlhbGl6ZSB0aGUgZ2xvYmFsIHZhcmlhYmxlcyBuZWVkZWQgYnkgdGhpcyBmdW5jdGlvbi5cbiAgQGlmIG5vdCBnbG9iYWxfdmFyaWFibGVfZXhpc3RzKF9ub3JtYWxpemUtaW5jbHVkZSkge1xuICAgICRfbm9ybWFsaXplLWluY2x1ZGU6ICgpICFnbG9iYWw7XG4gICAgJF9ub3JtYWxpemUtZXhjbHVkZTogKCkgIWdsb2JhbDtcbiAgfVxuICAvLyBTaW5jZSB3ZSBhcmUgZ2l2ZW4gMiBwYXJhbWV0ZXJzLCBzZXQgdGhlIGdsb2JhbCB2YXJpYWJsZXMuXG4gIEBpZiAkZXhjbHVkZSAhPSBudWxsIHtcbiAgICAkaW5jbHVkZTogJHNlY3Rpb247XG4gICAgLy8gU2FzcyBkb2Vzbid0IGhhdmUgc3RhdGljIHZhcmlhYmxlcywgc28gdGhlIHdvcmstYXJvdW5kIGlzIHRvIHN0dWZmIHRoZXNlXG4gICAgLy8gdmFsdWVzIGludG8gZ2xvYmFsIHZhcmlhYmxlcyBzbyB3ZSBjYW4gYWNjZXNzIHRoZW0gaW4gZnV0dXJlIGNhbGxzLlxuICAgICRfbm9ybWFsaXplLWluY2x1ZGU6IGlmKHR5cGUtb2YoJGluY2x1ZGUpID09ICdsaXN0JywgJGluY2x1ZGUsICgkaW5jbHVkZSkpICFnbG9iYWw7XG4gICAgJF9ub3JtYWxpemUtZXhjbHVkZTogaWYodHlwZS1vZigkZXhjbHVkZSkgPT0gJ2xpc3QnLCAkZXhjbHVkZSwgKCRleGNsdWRlKSkgIWdsb2JhbDtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cblxuICAvLyBDaGVjayBpZiAkc2VjdGlvbiBpcyBpbiB0aGUgJGluY2x1ZGUgbGlzdC5cbiAgQGlmIGluZGV4KCRfbm9ybWFsaXplLWluY2x1ZGUsICRzZWN0aW9uKSB7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG4gIC8vIElmICRpbmNsdWRlIGlzIHNldCB0byAoYWxsKSwgbWFrZSBzdXJlICRzZWN0aW9uIGlzIG5vdCBpbiAkZXhjbHVkZS5cbiAgQGVsc2UgaWYgbm90IGluZGV4KCRfbm9ybWFsaXplLWV4Y2x1ZGUsICRzZWN0aW9uKSBhbmQgaW5kZXgoJF9ub3JtYWxpemUtaW5jbHVkZSwgYWxsKSB7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbkBtaXhpbiBub3JtYWxpemUoJGluY2x1ZGU6IChhbGwpLCAkZXhjbHVkZTogKCkpIHtcbiAgLy8gSW5pdGlhbGl6ZSB0aGUgaGVscGVyIGZ1bmN0aW9uIGJ5IHBhc3NpbmcgaXQgdGhpcyBtaXhpbidzIHBhcmFtZXRlcnMuXG4gICRpbml0OiBfbm9ybWFsaXplLWluY2x1ZGUoJGluY2x1ZGUsICRleGNsdWRlKTtcblxuICAvLyBJZiB3ZSd2ZSBjdXN0b21pemVkIGFueSBmb250IHZhcmlhYmxlcywgd2UnbGwgbmVlZCBleHRyYSBwcm9wZXJ0aWVzLlxuICBAaWYgJGJhc2UtZm9udC1zaXplICE9IDE2cHhcbiAgICBvciAkYmFzZS1saW5lLWhlaWdodCAhPSAyNHB4XG4gICAgb3IgJGJhc2UtdW5pdCAhPSAnZW0nXG4gICAgb3IgJGgxLWZvbnQtc2l6ZSAhPSAyICAgICogJGJhc2UtZm9udC1zaXplXG4gICAgb3IgJGgyLWZvbnQtc2l6ZSAhPSAxLjUgICogJGJhc2UtZm9udC1zaXplXG4gICAgb3IgJGgzLWZvbnQtc2l6ZSAhPSAxLjE3ICogJGJhc2UtZm9udC1zaXplXG4gICAgb3IgJGg0LWZvbnQtc2l6ZSAhPSAxICAgICogJGJhc2UtZm9udC1zaXplXG4gICAgb3IgJGg1LWZvbnQtc2l6ZSAhPSAwLjgzICogJGJhc2UtZm9udC1zaXplXG4gICAgb3IgJGg2LWZvbnQtc2l6ZSAhPSAwLjY3ICogJGJhc2UtZm9udC1zaXplIHtcbiAgICAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobTogdHJ1ZSAhZ2xvYmFsO1xuICB9XG5cbiAgLyohIG5vcm1hbGl6ZS1zY3NzIHwgTUlUL0dQTHYyIExpY2Vuc2UgfCBiaXQubHkvbm9ybWFsaXplLXNjc3MgKi9cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGRvY3VtZW50KSB7XG4gICAgLyogRG9jdW1lbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogMS4gQ2hhbmdlIHRoZSBkZWZhdWx0IGZvbnQgZmFtaWx5IGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAzLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluXG4gICAgICogICAgSUUgb24gV2luZG93cyBQaG9uZSBhbmQgaW4gaU9TLlxuICAgICAqL1xuXG4gICAgaHRtbCB7XG4gICAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7IC8qIDEgKi9cbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIC8vIENvcnJlY3Qgb2xkIGJyb3dzZXIgYnVnIHRoYXQgcHJldmVudGVkIGFjY2Vzc2libGUgcmVzaXppbmcgb2YgdGV4dFxuICAgICAgICAvLyB3aGVuIHJvb3QgZm9udC1zaXplIGlzIHNldCB3aXRoIHB4IG9yIGVtLlxuICAgICAgICBmb250LXNpemU6ICgkYmFzZS1mb250LXNpemUgLyAxNnB4KSAqIDEwMCU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAoJGJhc2UtbGluZS1oZWlnaHQgLyAkYmFzZS1mb250LXNpemUpICogMWVtOyAvKiAyICovXG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAyICovXG4gICAgICB9XG4gICAgICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMyAqL1xuICAgICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAzICovXG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShzZWN0aW9ucykge1xuICAgIC8qIFNlY3Rpb25zXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqL1xuXG4gICAgYm9keSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBhcnRpY2xlLFxuICAgIGFzaWRlLFxuICAgIGZvb3RlcixcbiAgICBoZWFkZXIsXG4gICAgbmF2LFxuICAgIHNlY3Rpb24ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICAgICAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBoMSB7XG4gICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoMS1mb250LXNpemUpO1xuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoMS1mb250LXNpemUpO1xuICAgICAgfVxuXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICAvKiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2lucy4gKi9cbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDAsICRoMS1mb250LXNpemUpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBtYXJnaW46IDAuNjdlbSAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICBoMiB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1mb250LXNpemUoJGgyLWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkaDItZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDAsICRoMi1mb250LXNpemUpO1xuICAgICAgfVxuXG4gICAgICBoMyB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1mb250LXNpemUoJGgzLWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkaDMtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDAsICRoMy1mb250LXNpemUpO1xuICAgICAgfVxuXG4gICAgICBoNCB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1mb250LXNpemUoJGg0LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkaDQtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDAsICRoNC1mb250LXNpemUpO1xuICAgICAgfVxuXG4gICAgICBoNSB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1mb250LXNpemUoJGg1LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkaDUtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDAsICRoNS1mb250LXNpemUpO1xuICAgICAgfVxuXG4gICAgICBoNiB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1mb250LXNpemUoJGg2LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkaDYtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDAsICRoNi1mb250LXNpemUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoZ3JvdXBpbmcpIHtcbiAgICAvKiBHcm91cGluZyBjb250ZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAvKipcbiAgICAgICAqIFNldCAxIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtIG9uIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW4uXG4gICAgICAgKi9cblxuICAgICAgYmxvY2txdW90ZSB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAkaW5kZW50LWFtb3VudCk7XG4gICAgICB9XG5cbiAgICAgIGRsLFxuICAgICAgb2wsXG4gICAgICB1bCB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwKTtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBUdXJuIG9mZiBtYXJnaW5zIG9uIG5lc3RlZCBsaXN0cy5cbiAgICAgICAqL1xuXG4gICAgICBvbCxcbiAgICAgIHVsIHtcbiAgICAgICAgb2wsXG4gICAgICAgIHVsIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZGQge1xuICAgICAgICBtYXJnaW46IDAgMCAwICRpbmRlbnQtYW1vdW50O1xuICAgICAgfVxuXG4gICAgICBvbCxcbiAgICAgIHVsIHtcbiAgICAgICAgcGFkZGluZzogMCAwIDAgJGluZGVudC1hbW91bnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBmaWdjYXB0aW9uLFxuICAgIGZpZ3VyZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgbWFyZ2luIGluIElFIDguXG4gICAgICovXG5cbiAgICBmaWd1cmUge1xuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxICRpbmRlbnQtYW1vdW50KTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbWFyZ2luOiAxZW0gJGluZGVudC1hbW91bnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAgICAgKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAgICAgKi9cblxuICAgIGhyIHtcbiAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gICAgICBoZWlnaHQ6IDA7IC8qIDEgKi9cbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gICAgICovXG5cbiAgICBtYWluIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAvKipcbiAgICAgICAqIFNldCAxIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtIG9uIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW4uXG4gICAgICAgKi9cblxuICAgICAgcCxcbiAgICAgIHByZSB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHByZSB7XG4gICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgICAgIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShsaW5rcykge1xuICAgIC8qIExpbmtzXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIDEuIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAgICAgKiAyLiBSZW1vdmUgZ2FwcyBpbiBsaW5rcyB1bmRlcmxpbmUgaW4gaU9TIDgrIGFuZCBTYWZhcmkgOCsuXG4gICAgICovXG5cbiAgICBhIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyAvKiAxICovXG4gICAgICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBvYmplY3RzOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBvdXRsaW5lIG9uIGZvY3VzZWQgbGlua3Mgd2hlbiB0aGV5IGFyZSBhbHNvIGFjdGl2ZSBvciBob3ZlcmVkXG4gICAgICogaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5cbiAgICBhOmFjdGl2ZSxcbiAgICBhOmhvdmVyIHtcbiAgICAgIG91dGxpbmUtd2lkdGg6IDA7XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZSh0ZXh0KSB7XG4gICAgLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIEZpcmVmb3ggMzktLlxuICAgICAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBhYmJyW3RpdGxlXSB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLyogMiAqL1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJldmVudCB0aGUgZHVwbGljYXRlIGFwcGxpY2F0aW9uIG9mIGBib2xkZXJgIGJ5IHRoZSBuZXh0IHJ1bGUgaW4gU2FmYXJpIDYuXG4gICAgICovXG5cbiAgICBiLFxuICAgIHN0cm9uZyB7XG4gICAgICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgYixcbiAgICBzdHJvbmcge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIGNvZGUsXG4gICAga2JkLFxuICAgIHNhbXAge1xuICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gICAgICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHN0eWxlIGluIEFuZHJvaWQgNC4zLS5cbiAgICAgKi9cblxuICAgIGRmbiB7XG4gICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGJhY2tncm91bmQgYW5kIGNvbG9yIGluIElFIDktLlxuICAgICAqL1xuXG4gICAgbWFyayB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwO1xuICAgICAgY29sb3I6ICMwMDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBzbWFsbCB7XG4gICAgICBmb250LXNpemU6IDgwJTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAgICAgKiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBzdWIsXG4gICAgc3VwIHtcbiAgICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgfVxuXG4gICAgc3ViIHtcbiAgICAgIGJvdHRvbTogLTAuMjVlbTtcbiAgICB9XG5cbiAgICBzdXAge1xuICAgICAgdG9wOiAtMC41ZW07XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShlbWJlZGRlZCkge1xuICAgIC8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBhdWRpbyxcbiAgICB2aWRlbyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gaU9TIDQtNy5cbiAgICAgKi9cblxuICAgIGF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAtLlxuICAgICAqL1xuXG4gICAgaW1nIHtcbiAgICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIaWRlIHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAgICAgKi9cblxuICAgIHN2Zzpub3QoOnJvb3QpIHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShmb3Jtcykge1xuICAgIC8qIEZvcm1zXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgYnV0dG9uLFxuICAgIGlucHV0LFxuICAgIG9wdGdyb3VwLFxuICAgIHNlbGVjdCxcbiAgICB0ZXh0YXJlYSB7XG4gICAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7IC8qIDEgKi9cbiAgICAgIGZvbnQtc2l6ZTogMTAwJTsgLyogMSAqL1xuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICgkYmFzZS1saW5lLWhlaWdodCAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxZW07IC8qIDEgKi9cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgICAgIH1cbiAgICAgIG1hcmdpbjogMDsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICAgICAqL1xuXG4gICAgYnV0dG9uIHtcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICAgICAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAgICAgKi9cblxuICAgIGJ1dHRvbixcbiAgICBzZWxlY3QgeyAvKiAxICovXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBQcmV2ZW50IGEgV2ViS2l0IGJ1ZyB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2AgYW5kIGB2aWRlb2BcbiAgICAgKiAgICBjb250cm9scyBpbiBBbmRyb2lkIDQuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGJ1dHRvbixcbiAgICBodG1sIFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG4gICAgW3R5cGU9XCJyZXNldFwiXSxcbiAgICBbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xuICAgIH1cblxuICAgIGJ1dHRvbixcbiAgICBbdHlwZT1cImJ1dHRvblwiXSxcbiAgICBbdHlwZT1cInJlc2V0XCJdLFxuICAgIFt0eXBlPVwic3VibWl0XCJdIHtcblxuICAgICAgLyoqXG4gICAgICAgKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICAgICAgICovXG5cbiAgICAgICY6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICAgICAgICovXG5cbiAgICAgICY6LW1vei1mb2N1c3Jpbmcge1xuICAgICAgICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAgICAgKi9cblxuICAgIGlucHV0IHtcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLS5cbiAgICAgKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtLlxuICAgICAqL1xuXG4gICAgW3R5cGU9XCJjaGVja2JveFwiXSxcbiAgICBbdHlwZT1cInJhZGlvXCJdIHtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgICAgIHBhZGRpbmc6IDA7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gICAgICovXG5cbiAgICBbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICBbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gICAgICovXG5cbiAgICBbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cblxuICAgICAgLyoqXG4gICAgICAgKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgYW5kIGNhbmNlbCBidXR0b25zIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICAgICAgICovXG5cbiAgICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gICAgICAmOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gICAgICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICAgICAqL1xuXG4gICAgOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xuICAgICAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoYW5nZSB0aGUgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqL1xuXG4gICAgZmllbGRzZXQge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgICAgIG1hcmdpbjogMCAycHg7XG4gICAgICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gICAgICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICAgICAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgbGVnZW5kIHtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgICAgIGRpc3BsYXk6IHRhYmxlOyAvKiAxICovXG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cbiAgICAgIHBhZGRpbmc6IDA7IC8qIDMgKi9cbiAgICAgIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXG4gICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICogMi4gQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAgICAgKi9cblxuICAgIHByb2dyZXNzIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xuICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRS5cbiAgICAgKi9cblxuICAgIHRleHRhcmVhIHtcbiAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoaW50ZXJhY3RpdmUpIHtcbiAgICAvKiBJbnRlcmFjdGl2ZVxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFLCBhbmQgRmlyZWZveC5cbiAgICAgKi9cblxuICAgIGRldGFpbHMge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBzdW1tYXJ5IHtcbiAgICAgIGRpc3BsYXk6IGxpc3QtaXRlbTtcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgbWVudSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgLypcbiAgICAgICAgICogMS4gU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbi5cbiAgICAgICAgICogMi4gU2V0IGNvbnNpc3RlbnQgc3BhY2UgZm9yIHRoZSBsaXN0IHN0eWxlIGltYWdlLlxuICAgICAgICAgKi9cblxuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCk7IC8qIDEgKi9cbiAgICAgICAgcGFkZGluZzogMCAwIDAgJGluZGVudC1hbW91bnQ7IC8qIDIgKi9cblxuICAgICAgICAvKipcbiAgICAgICAgICogVHVybiBvZmYgbWFyZ2lucyBvbiBuZXN0ZWQgbGlzdHMuXG4gICAgICAgICAqL1xuXG4gICAgICAgIG1lbnUgJixcbiAgICAgICAgb2wgJixcbiAgICAgICAgdWwgJiB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShzY3JpcHRpbmcpIHtcbiAgICAvKiBTY3JpcHRpbmdcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBjYW52YXMge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICAgICAqL1xuXG4gICAgdGVtcGxhdGUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGhpZGRlbikge1xuICAgIC8qIEhpZGRlblxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC0uXG4gICAgICovXG5cbiAgICBbaGlkZGVuXSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIFZhcmlhYmxlc1xuLy9cbi8vIFlvdSBjYW4gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgdmFsdWVzIGJ5IHNldHRpbmcgdGhlIHZhcmlhYmxlcyBpbiB5b3VyIFNhc3Ncbi8vIGJlZm9yZSBpbXBvcnRpbmcgdGhlIG5vcm1hbGl6ZS1zY3NzIGxpYnJhcnkuXG5cbi8vIFRoZSBmb250IHNpemUgc2V0IG9uIHRoZSByb290IGh0bWwgZWxlbWVudC5cbiRiYXNlLWZvbnQtc2l6ZTogMTZweCAhZGVmYXVsdDtcblxuLy8gVGhlIGJhc2UgbGluZSBoZWlnaHQgZGV0ZXJtaW5lcyB0aGUgYmFzaWMgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0uXG4kYmFzZS1saW5lLWhlaWdodDogMjRweCAhZGVmYXVsdDtcblxuLy8gVGhlIGxlbmd0aCB1bml0IGluIHdoaWNoIHRvIG91dHB1dCB2ZXJ0aWNhbCByaHl0aG0gdmFsdWVzLlxuLy8gU3VwcG9ydGVkIHZhbHVlczogcHgsIGVtLCByZW0uXG4kYmFzZS11bml0OiAnZW0nICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBmb250IGZhbWlseS5cbiRiYXNlLWZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmICFkZWZhdWx0O1xuXG4vLyBUaGUgZm9udCBzaXplcyBmb3IgaDEtaDYuXG4kaDEtZm9udC1zaXplOiAyICAgICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGgyLWZvbnQtc2l6ZTogMS41ICAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRoMy1mb250LXNpemU6IDEuMTcgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDQtZm9udC1zaXplOiAxICAgICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGg1LWZvbnQtc2l6ZTogMC44MyAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRoNi1mb250LXNpemU6IDAuNjcgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG5cbi8vIFRoZSBhbW91bnQgbGlzdHMgYW5kIGJsb2NrcXVvdGVzIGFyZSBpbmRlbnRlZC5cbiRpbmRlbnQtYW1vdW50OiA0MHB4ICFkZWZhdWx0O1xuXG4vLyBUaGUgZm9sbG93aW5nIHZhcmlhYmxlIGNvbnRyb2xzIHdoZXRoZXIgbm9ybWFsaXplLXNjc3Mgd2lsbCBvdXRwdXRcbi8vIGZvbnQtc2l6ZXMsIGxpbmUtaGVpZ2h0cyBhbmQgYmxvY2stbGV2ZWwgdG9wL2JvdHRvbSBtYXJnaW5zIHRoYXQgZm9ybSBhIGJhc2ljXG4vLyB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHBhZ2UsIHdoaWNoIGRpZmZlcnMgZnJvbSB0aGUgb3JpZ2luYWwgTm9ybWFsaXplLmNzcy5cbi8vIEhvd2V2ZXIsIGNoYW5naW5nIGFueSBvZiB0aGUgdmFyaWFibGVzIGFib3ZlIHdpbGwgY2F1c2Vcbi8vICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHRvIGJlIGF1dG9tYXRpY2FsbHkgc2V0IHRvIHRydWUuXG4kbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobTogZmFsc2UgIWRlZmF1bHQ7XG4iLCIvL1xuLy8gVmVydGljYWwgUmh5dGhtXG4vL1xuLy8gVGhpcyBpcyB0aGUgbWluaW1hbCBhbW91bnQgb2YgY29kZSBuZWVkZWQgdG8gY3JlYXRlIHZlcnRpY2FsIHJoeXRobSBpbiBvdXJcbi8vIENTUy4gSWYgeW91IGFyZSBsb29raW5nIGZvciBhIHJvYnVzdCBzb2x1dGlvbiwgbG9vayBhdCB0aGUgZXhjZWxsZW50IFR5cGV5XG4vLyBsaWJyYXJ5LiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9qcHRhcmFudG8vdHlwZXlcblxuQGZ1bmN0aW9uIG5vcm1hbGl6ZS1yaHl0aG0oJHZhbHVlLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSwgJHVuaXQ6ICRiYXNlLXVuaXQpIHtcbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSBweCB7XG4gICAgQGVycm9yIFwiVGhlIG5vcm1hbGl6ZSB2ZXJ0aWNhbC1yaHl0aG0gbW9kdWxlIG9ubHkgc3VwcG9ydHMgcHggaW5wdXRzLiBUaGUgdHlwZXkgbGlicmFyeSBpcyBiZXR0ZXIuXCI7XG4gIH1cbiAgQGlmICR1bml0ID09IHJlbSB7XG4gICAgQHJldHVybiAoJHZhbHVlIC8gJGJhc2UtZm9udC1zaXplKSAqIDFyZW07XG4gIH1cbiAgQGVsc2UgaWYgJHVuaXQgPT0gZW0ge1xuICAgIEByZXR1cm4gKCR2YWx1ZSAvICRyZWxhdGl2ZS10bykgKiAxZW07XG4gIH1cbiAgQGVsc2UgeyAvLyAkdW5pdCA9PSBweFxuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG59XG5cbkBtaXhpbiBub3JtYWxpemUtZm9udC1zaXplKCR2YWx1ZSwgJHJlbGF0aXZlLXRvOiAkYmFzZS1mb250LXNpemUpIHtcbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSAncHgnIHtcbiAgICBAZXJyb3IgXCJub3JtYWxpemUtZm9udC1zaXplKCkgb25seSBzdXBwb3J0cyBweCBpbnB1dHMuIFRoZSB0eXBleSBsaWJyYXJ5IGlzIGJldHRlci5cIjtcbiAgfVxuICBmb250LXNpemU6IG5vcm1hbGl6ZS1yaHl0aG0oJHZhbHVlLCAkcmVsYXRpdmUtdG8pO1xufVxuXG5AbWl4aW4gbm9ybWFsaXplLXJoeXRobSgkcHJvcGVydHksICR2YWx1ZXMsICRyZWxhdGl2ZS10bzogJGJhc2UtZm9udC1zaXplKSB7XG4gICR2YWx1ZS1saXN0OiAkdmFsdWVzO1xuICAkc2VwOiBzcGFjZTtcbiAgQGlmIHR5cGUtb2YoJHZhbHVlcykgPT0gJ2xpc3QnIHtcbiAgICAkc2VwOiBsaXN0LXNlcGFyYXRvcigkdmFsdWVzKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgJHZhbHVlLWxpc3Q6IGFwcGVuZCgoKSwgJHZhbHVlcyk7XG4gIH1cblxuICAkbm9ybWFsaXplZC12YWx1ZXM6ICgpO1xuICBAZWFjaCAkdmFsdWUgaW4gJHZhbHVlLWxpc3Qge1xuICAgIEBpZiB1bml0bGVzcygkdmFsdWUpIGFuZCAkdmFsdWUgIT0gMCB7XG4gICAgICAkdmFsdWU6ICR2YWx1ZSAqIG5vcm1hbGl6ZS1yaHl0aG0oJGJhc2UtbGluZS1oZWlnaHQsICRyZWxhdGl2ZS10byk7XG4gICAgfVxuICAgICRub3JtYWxpemVkLXZhbHVlczogYXBwZW5kKCRub3JtYWxpemVkLXZhbHVlcywgJHZhbHVlLCAkc2VwKTtcbiAgfVxuICAjeyRwcm9wZXJ0eX06ICRub3JtYWxpemVkLXZhbHVlcztcbn1cblxuQG1peGluIG5vcm1hbGl6ZS1tYXJnaW4oJHZhbHVlcywgJHJlbGF0aXZlLXRvOiAkYmFzZS1mb250LXNpemUpIHtcbiAgQGluY2x1ZGUgbm9ybWFsaXplLXJoeXRobShtYXJnaW4sICR2YWx1ZXMsICRyZWxhdGl2ZS10byk7XG59XG5cbkBtaXhpbiBub3JtYWxpemUtbGluZS1oZWlnaHQoJGZvbnQtc2l6ZSwgJG1pbi1saW5lLXBhZGRpbmc6IDJweCkge1xuICAkbGluZXM6IGNlaWwoJGZvbnQtc2l6ZSAvICRiYXNlLWxpbmUtaGVpZ2h0KTtcbiAgLy8gSWYgbGluZXMgYXJlIGNyYW1wZWQgaW5jbHVkZSBzb21lIGV4dHJhIGxlYWRpbmcuXG4gIEBpZiAoJGxpbmVzICogJGJhc2UtbGluZS1oZWlnaHQgLSAkZm9udC1zaXplKSA8ICgkbWluLWxpbmUtcGFkZGluZyAqIDIpIHtcbiAgICAkbGluZXM6ICRsaW5lcyArIDE7XG4gIH1cbiAgQGluY2x1ZGUgbm9ybWFsaXplLXJoeXRobShsaW5lLWhlaWdodCwgJGxpbmVzLCAkZm9udC1zaXplKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZSBmb3JjZS1hdHRyaWJ1dGUtbmVzdGluZywgZm9yY2UtcHNldWRvLW5lc3RpbmcsIG5vLWNvbG9yLWxpdGVyYWxzLCBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4vLy8vXG5cbi8vLyBGb250IHNpemUgYXR0cmlidXRlIGFwcGxpZWQgdG8gYDxodG1sPmAgYW5kIGA8Ym9keT5gLiBXZSB1c2UgMTAwJSBieSBkZWZhdWx0IHNvIHRoZSB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgdXNlcidzIGJyb3dzZXIgc2V0dGluZ3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB3aWR0aCBvZiB5b3VyIHNpdGUuIFVzZWQgYnkgdGhlIGdyaWQgdG8gZGV0ZXJtaW5lIHJvdyB3aWR0aC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtd2lkdGg6IHJlbS1jYWxjKDEyMDApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgYWxsIHR5cGUuIGAkZ2xvYmFsLWxpbmVoZWlnaHRgIGlzIDI0cHggd2hpbGUgYCRnbG9iYWwtZm9udC1zaXplYCBpcyAxNnB4XG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWxpbmVoZWlnaHQ6IDEuNSAhZGVmYXVsdDtcblxuLy8vIENvbG9ycyB1c2VkIGZvciBidXR0b25zLCBjYWxsb3V0cywgbGlua3MsIGV0Yy4gVGhlcmUgbXVzdCBhbHdheXMgYmUgYSBjb2xvciBjYWxsZWQgYHByaW1hcnlgLlxuLy8vIEB0eXBlIE1hcFxuJGZvdW5kYXRpb24tcGFsZXR0ZTogKFxuICBwcmltYXJ5OiAjMTc3OWJhLFxuICBzZWNvbmRhcnk6ICM3Njc2NzYsXG4gIHN1Y2Nlc3M6ICMzYWRiNzYsXG4gIHdhcm5pbmc6ICNmZmFlMDAsXG4gIGFsZXJ0OiAjY2M0YjM3LFxuKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGxpZ2h0IGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsaWdodC1ncmF5OiAjZTZlNmU2ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgbWVkaXVtIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRtZWRpdW0tZ3JheTogI2NhY2FjYSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGRhcmsgZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRhcmstZ3JheTogIzhhOGE4YSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGJsYWNrIHVpIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kYmxhY2s6ICMwYTBhMGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciB3aGl0ZSB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJHdoaXRlOiAjZmVmZWZlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBDb2xvclxuJGJvZHktYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBDb2xvclxuJGJvZHktZm9udC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdGFjayBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBMaXN0XG4kYm9keS1mb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuXG4vLy8gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgYW50aWFsaWFzZWQgdHlwZSwgdXNpbmcgdGhlIGAtd2Via2l0LWZvbnQtc21vb3RoaW5nYCBhbmQgYC1tb3otb3N4LWZvbnQtc21vb3RoaW5nYCBDU1MgcHJvcGVydGllcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYm9keS1hbnRpYWxpYXNlZDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBtYXJnaW4gb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIHBhZGRpbmcgb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBwb3NpdGlvbmluZyBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1wb3NpdGlvbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCBmb250IHdlaWdodCB1c2VkIGZvciBub3JtYWwgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ub3JtYWw6IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCBmb250IHdlaWdodCB1c2VkIGZvciBib2xkIHR5cGUuXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGdsb2JhbC13ZWlnaHQtYm9sZDogYm9sZCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgZWxlbWVudHMgdGhhdCBoYXZlIGEgYm9yZGVyIHJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcmFkaXVzOiAwICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBtZW51IHN0eWxlcy4gQ2FuIGJlIG92ZXJ3cml0dGVuIGF0IGluZGl2aWR1YWwgbWVudSBjb21wb25lbnQgbGV2ZWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLW1lbnUtcGFkZGluZzogMC43cmVtIDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIG1lbnUgc3R5bGVzLiBOZXN0ZWQgbWFyZ2luIGZvciBzdWJtZW51LlxuJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSB0ZXh0IGRpcmVjdGlvbiBvZiB0aGUgQ1NTLiBDYW4gYmUgZWl0aGVyIGBsdHJgIG9yIGBydGxgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRnbG9iYWwtdGV4dC1kaXJlY3Rpb246IGx0ciAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZXMgZmxleGJveCBmb3IgY29tcG9uZW50cyB0aGF0IHN1cHBvcnQgaXQuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGdsb2JhbC1mbGV4Ym94OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlZCByZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBwcm90b3R5cGVzIGlmIGFwcGxpY2FibGVcbi8vLyBAdHlwZSBCb29sZWFuXG4kZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50czogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBCdXR0b24gY3Vyc29yJ3MgdmFsdWUsIGBhdXRvYCBieSBkZWZhdWx0XG4vLy8gQHR5cGUgS2V5d29yZFxuJGdsb2JhbC1idXR0b24tY3Vyc29yOiBhdXRvICFkZWZhdWx0O1xuXG5AaWYgbm90IG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpIHtcbiAgQGVycm9yICdJbiAkZm91bmRhdGlvbi1wYWxldHRlLCB5b3UgbXVzdCBoYXZlIGEgY29sb3IgbmFtZWQgXCJwcmltYXJ5XCIuJztcbn1cblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIHRleHQgZGlyZWN0aW9uXG4kZ2xvYmFsLWxlZnQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCByaWdodCwgbGVmdCk7XG4kZ2xvYmFsLXJpZ2h0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgbGVmdCwgcmlnaHQpO1xuXG4vLy8gR2xvYmFsIHRvbGVyYW5jZSBmb3IgY29sb3IgcGljayBjb250cmFzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2U6IDAgIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciBjb2xvcnNcbiRwcmltYXJ5LWNvbG9yOiBnZXQtY29sb3IocHJpbWFyeSk7XG4kc2Vjb25kYXJ5LWNvbG9yOiBnZXQtY29sb3Ioc2Vjb25kYXJ5KTtcbiRzdWNjZXNzLWNvbG9yOiBnZXQtY29sb3Ioc3VjY2Vzcyk7XG4kd2FybmluZy1jb2xvcjogZ2V0LWNvbG9yKHdhcm5pbmcpO1xuJGFsZXJ0LWNvbG9yOiBnZXQtY29sb3IoYWxlcnQpO1xuXG5AbWl4aW4gZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzIHtcbiAgQGluY2x1ZGUgLXpmLW5vcm1hbGl6ZTtcblxuICAvLyBUaGVzZSBzdHlsZXMgYXJlIGFwcGxpZWQgdG8gYSA8bWV0YT4gdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHRcbiAgLmZvdW5kYXRpb24tbXEge1xuICAgIGZvbnQtZmFtaWx5OiAnI3stemYtYnAtc2VyaWFsaXplKCRicmVha3BvaW50cyl9JztcbiAgfVxuXG4gIGh0bWwge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIFNldCBib3gtc2l6aW5nIGdsb2JhbGx5IHRvIGhhbmRsZSBwYWRkaW5nIGFuZCBib3JkZXIgd2lkdGhzXG4gICosXG4gICo6OmJlZm9yZSxcbiAgKjo6YWZ0ZXIge1xuICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBEZWZhdWx0IGJvZHkgc3R5bGVzXG4gIGJvZHkge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZDtcblxuICAgIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAkZ2xvYmFsLWxpbmVoZWlnaHQ7XG4gICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG5cbiAgICBAaWYgKCRib2R5LWFudGlhbGlhc2VkKSB7XG4gICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgfVxuICB9XG5cbiAgaW1nIHtcbiAgICAvLyBHZXQgcmlkIG9mIGdhcCB1bmRlciBpbWFnZXMgYnkgbWFraW5nIHRoZW0gZGlzcGxheTogaW5saW5lLWJsb2NrOyBieSBkZWZhdWx0XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAvLyBHcmlkIGRlZmF1bHRzIHRvIGdldCBpbWFnZXMgYW5kIGVtYmVkcyB0byB3b3JrIHByb3Blcmx5XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljO1xuICB9XG5cbiAgLy8gTWFrZSBzdXJlIHRleHRhcmVhIHRha2VzIG9uIGhlaWdodCBhdXRvbWF0aWNhbGx5XG4gIHRleHRhcmVhIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWluLWhlaWdodDogNTBweDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gIC8vIE1ha2Ugc2VsZWN0IGVsZW1lbnRzIGFyZSAxMDAlIHdpZHRoIGJ5IGRlZmF1bHRcbiAgc2VsZWN0IHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgLy8gU3R5bGVzIEdvb2dsZSBNYXBzIGFuZCBNYXBRdWVzdCBlbWJlZHMgcHJvcGVybHlcbiAgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1pZHNcbiAgLm1hcF9jYW52YXMsXG4gIC5tcWEtZGlzcGxheSB7XG4gICAgaW1nLFxuICAgIGVtYmVkLFxuICAgIG9iamVjdCB7XG4gICAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCA8YnV0dG9uPiBzdHlsZXMgY3JlYXRlZCBieSBtb3N0IGJyb3dzZXJzXG4gIGJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY3Vyc29yOiAkZ2xvYmFsLWJ1dHRvbi1jdXJzb3I7XG4gIH1cblxuICAvLyBQcmV2ZW50IHRleHQgb3ZlcmZsb3cgb24gcHJlXG4gIHByZSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cblxuICAvLyBNYWtlIHJlc2V0IGluaGVyaXQgZm9udC1mYW1pbHkgaW5zdGVhZCBvZiBzZXR0aW5ncyBzYW5zLXNlcmlmXG4gIGJ1dHRvbixcbiAgaW5wdXQsXG4gIG9wdGdyb3VwLFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIEludGVybmFsIGNsYXNzZXMgdG8gc2hvdy9oaWRlIGVsZW1lbnRzIGluIEphdmFTY3JpcHRcbiAgLmlzLXZpc2libGUge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaXMtaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIExvYWRzIG5vcm1hbGl6ZS5jc3MuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AbWl4aW4gLXpmLW5vcm1hbGl6ZSB7XG4gIEBpbmNsdWRlIG5vcm1hbGl6ZSgpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDcmVhdGVzIGFuIGlubmVyIGJveC1zaGFkb3cgZm9yIG9ubHkgb25lIHNpZGVcbi8vLyBcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaWRlIC0gU2lkZSB0aGUgc2hhZG93IGlzIHN1cHBvc2VkIHRvIGFwcGVhci4gQ2FuIGJlIGB0b3BgLCBgbGVmdGAsIGByaWdodGAgb3IgYGJvdHRvbWAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaXplIC0gV2lkdGggZm9yIHRoZSB0YXJnZXQgc2lkZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciBvZiB0aGUgc2hhZG93LlxuQG1peGluIGlubmVyLXNpZGUtc2hhZG93KFxuICAkc2lkZTogYm90dG9tLFxuICAkc2l6ZTogMjBweCxcbiAgJGNvbG9yOiByZ2JhKCRibGFjaywgMC4yNSlcbikge1xuXG4gICRoZWxwZXI6IHJvdW5kKCRzaXplICogMC42NSk7XG5cbiAgQGlmICgkc2lkZSA9PSB0b3ApIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwICRoZWxwZXIgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gbGVmdCkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0ICRoZWxwZXIgMCAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSByaWdodCkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0ICgtMSkqJGhlbHBlciAwICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IGJvdHRvbSkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgKC0xKSokaGVscGVyICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBDU1MgdHJpYW5nbGUsIHdoaWNoIGNhbiBiZSB1c2VkIGZvciBkcm9wZG93biBhcnJvd3MsIGRyb3Bkb3duIHBpcHMsIGFuZCBtb3JlLiBVc2UgdGhpcyBtaXhpbiBpbnNpZGUgYSBgJjo6YmVmb3JlYCBvciBgJjo6YWZ0ZXJgIHNlbGVjdG9yLCB0byBhdHRhY2ggdGhlIHRyaWFuZ2xlIHRvIGFuIGV4aXN0aW5nIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRyaWFuZ2xlLXNpemUgLSBXaWR0aCBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJHRyaWFuZ2xlLWNvbG9yIC0gQ29sb3Igb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHRyaWFuZ2xlLWRpcmVjdGlvbiAtIERpcmVjdGlvbiB0aGUgdHJpYW5nbGUgcG9pbnRzLiBDYW4gYmUgYHVwYCwgYHJpZ2h0YCwgYGRvd25gLCBvciBgbGVmdGAuXG5AbWl4aW4gY3NzLXRyaWFuZ2xlKFxuICAkdHJpYW5nbGUtc2l6ZSxcbiAgJHRyaWFuZ2xlLWNvbG9yLFxuICAkdHJpYW5nbGUtZGlyZWN0aW9uXG4pIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG5cbiAgYm9yZGVyOiBpbnNldCAkdHJpYW5nbGUtc2l6ZTtcblxuICBjb250ZW50OiAnJztcblxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gZG93bikge1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHVwKSB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gcmlnaHQpIHtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIG1lbnUgaWNvbiB3aXRoIGEgc2V0IHdpZHRoLCBoZWlnaHQsIG51bWJlciBvZiBiYXJzLCBhbmQgY29sb3JzLiBUaGUgbWl4aW4gdXNlcyB0aGUgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIHRoZSBiYXJzIHRvIGRldGVybWluZSBzcGFjaW5nLiA8ZGl2IGNsYXNzPVwiZG9jcy1leGFtcGxlLWJ1cmdlclwiPjwvZGl2PlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYmxhY2tdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3ItaG92ZXIgWyRkYXJrLWdyYXldIC0gQ29sb3IgdG8gdXNlIHdoZW4gdGhlIGljb24gaXMgaG92ZXJlZCBvdmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzIwcHhdIC0gV2lkdGggb2YgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRoZWlnaHQgWzE2cHhdIC0gSGVpZ2h0IG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2VpZ2h0IFsycHhdIC0gSGVpZ2h0IG9mIGluZGl2aWR1YWwgYmFycyBpbiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhcnMgWzNdIC0gTnVtYmVyIG9mIGJhcnMgaW4gdGhlIGljb24uXG5AbWl4aW4gaGFtYnVyZ2VyKFxuICAkY29sb3I6ICRibGFjayxcbiAgJGNvbG9yLWhvdmVyOiAkZGFyay1ncmF5LFxuICAkd2lkdGg6IDIwcHgsXG4gICRoZWlnaHQ6IDE2cHgsXG4gICR3ZWlnaHQ6IDJweCxcbiAgJGJhcnM6IDNcbikge1xuICAvLyBib3gtc2hhZG93IENTUyBvdXRwdXRcbiAgJHNoYWRvdzogKCk7XG4gICRob3Zlci1zaGFkb3c6ICgpO1xuXG4gIC8vIFNwYWNpbmcgYmV0d2VlbiBiYXJzIGlzIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIHRvdGFsIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiBlYWNoIGJhclxuICAkc3BhY2luZzogKCRoZWlnaHQgLSAoJHdlaWdodCAqICRiYXJzKSkgLyAoJGJhcnMgLSAxKTtcblxuICBAaWYgdW5pdCgkc3BhY2luZykgPT0gJ3B4JyB7XG4gICAgJHNwYWNpbmc6IGZsb29yKCRzcGFjaW5nKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgJHNoYWRvdzogYXBwZW5kKCRzaGFkb3csIDAgJG9mZnNldCAwICRjb2xvciwgY29tbWEpO1xuICB9XG5cbiAgLy8gSWNvbiBjb250YWluZXJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAkd2lkdGg7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIC8vIEljb24gYmFyc1xuICAmOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkd2VpZ2h0O1xuXG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG5cbiAgICBjb250ZW50OiAnJztcbiAgfVxuXG4gIC8vIEhvdmVyIHN0YXRlXG4gIEBpZiAkY29sb3ItaG92ZXIge1xuICAgIC8vIEdlbmVyYXRlIENTU1xuICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAgICRob3Zlci1zaGFkb3c6IGFwcGVuZCgkaG92ZXItc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3ItaG92ZXIsIGNvbW1hKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItaG92ZXI7XG4gICAgICBib3gtc2hhZG93OiAkaG92ZXItc2hhZG93O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBhIGRvd253YXJkLWZhY2luZyB0cmlhbmdsZSBhcyBhIGJhY2tncm91bmQgaW1hZ2UgdG8gYW4gZWxlbWVudC4gVGhlIGltYWdlIGlzIGZvcm1hdHRlZCBhcyBhbiBTVkcsIG1ha2luZyBpdCBlYXN5IHRvIGNoYW5nZSB0aGUgY29sb3IuIEJlY2F1c2UgSW50ZXJuZXQgRXhwbG9yZXIgZG9lc24ndCBzdXBwb3J0IGVuY29kZWQgU1ZHcyBhcyBiYWNrZ3JvdW5kIGltYWdlcywgYSBQTkcgZmFsbGJhY2sgaXMgYWxzbyBpbmNsdWRlZC5cbi8vLyBUaGVyZSBhcmUgdHdvIFBORyBmYWxsYmFja3M6IGEgYmxhY2sgdHJpYW5nbGUgYW5kIGEgd2hpdGUgdHJpYW5nbGUuIFRoZSBvbmUgdXNlZCBkZXBlbmRzIG9uIHRoZSBsaWdodG5lc3Mgb2YgdGhlIGlucHV0IGNvbG9yLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYmxhY2tdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgdHJpYW5nbGUuXG5AbWl4aW4gYmFja2dyb3VuZC10cmlhbmdsZSgkY29sb3I6ICRibGFjaykge1xuICAkcmdiOiAncmdiJTI4I3tyb3VuZChyZWQoJGNvbG9yKSl9LCAje3JvdW5kKGdyZWVuKCRjb2xvcikpfSwgI3tyb3VuZChibHVlKCRjb2xvcikpfSUyOSc7XG5cbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgd2lkdGg9JzMyJyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMzIgMjQnPjxwb2x5Z29uIHBvaW50cz0nMCwwIDMyLDAgMTYsMjQnIHN0eWxlPSdmaWxsOiAjeyRyZ2J9Jz48L3BvbHlnb24+PC9zdmc+XCIpO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MFxcMCkge1xuICAgIEBpZiBsaWdodG5lc3MoJGNvbG9yKSA8IDYwJSB7XG4gICAgICAvLyBXaGl0ZSB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUlwSlJFRlVlTnJFa2NrTmdEQU1CQmZSa0V0ME9iUkJCZHNHWFVEZ21RZks0WGhIMm04Y3pRQUF5MjdSM3RzdzRRZmUyeDh1T082b1lMYjZHbE9vcjNHRitzd1VSQU9tVUorUnd0RUpzOVd2VEdFWXhCWHFJMU1RQVpoQ2ZVUUtSekRNVmorVHdyQUlWNmp2U1VFa1lBcjFMU2tjeVRCYi9WK0tZZlg3eEFldXNxM3NMRHRHSDNrRUdBQ1BXSWZsTlpmaFJRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIEJsYWNrIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBTUJKUkVGVWVOckVsbHNPaENBTVJWc3pDOUlselU3S0NtVkhUSnNvTVdZTVV0cHl2OUJnYnVYUUI1WlNkZ0JZWVk0eWNnQml2azhLWUZzUU1mTWlUVEJQNG8zblV6Q0t6T2FiTEpiTHkyL2czMWV2R2tBZ2luUjQvWmVnS0g1cVgzYkpDc2NBM3QweDNrZ081dFFGeWhoRmY1MHhScUZMYnlNVU5KUXpneWpHUy93Z0Nwdktxa1JCcHVXckU0VjlkKzFFNGRQVVhxSWcxMDdTUU9FLzJEUlF4TXdURHlnSUluVkRFVDlUM2xDb2ovNmovVkNtR2paT2wybEtwWjhBQXdEUVA3eklpbURHRlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFwcGxpZXMgdGhlIG1pY3JvIGNsZWFyZml4IGhhY2sgcG9wdWxhcml6ZWQgYnkgTmljb2xhcyBHYWxsYWdoZXIuIEluY2x1ZGUgdGhpcyBtaXhpbiBvbiBhIGNvbnRhaW5lciBpZiBpdHMgY2hpbGRyZW4gYXJlIGFsbCBmbG9hdGVkLCB0byBnaXZlIHRoZSBjb250YWluZXIgYSBwcm9wZXIgaGVpZ2h0LlxuLy8vIFRoZSBjbGVhcmZpeCBpcyBhdWdtZW50ZWQgd2l0aCBzcGVjaWZpYyBzdHlsZXMgdG8gcHJldmVudCBib3JkZXJzIGluIGZsZXhib3ggZW52aXJvbm1lbnRzXG4vLy8gQGxpbmsgaHR0cDovL25pY29sYXNnYWxsYWdoZXIuY29tL21pY3JvLWNsZWFyZml4LWhhY2svIE1pY3JvIENsZWFyZml4IEhhY2tcbi8vLyBAbGluayBodHRwOi8vZGFuaXNhZGVzaWduZXIuY29tL2Jsb2cvZmxleGJveC1jbGVhci1maXgtcHNldWRvLWVsZW1lbnRzLyBGbGV4Ym94IGZpeFxuQG1peGluIGNsZWFyZml4IHtcbiAgJjo6YmVmb3JlLFxuICAmOjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgb3JkZXI6IDE7XG4gICAgfVxuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbi8vLyBBZGRzIENTUyBmb3IgYSBcInF1YW50aXR5IHF1ZXJ5XCIgc2VsZWN0b3IgdGhhdCBhdXRvbWF0aWNhbGx5IHNpemVzIGVsZW1lbnRzIGJhc2VkIG9uIGhvdyBtYW55IHRoZXJlIGFyZSBpbnNpZGUgYSBjb250YWluZXIuXG4vLy8gQGxpbmsgaHR0cDovL2FsaXN0YXBhcnQuY29tL2FydGljbGUvcXVhbnRpdHktcXVlcmllcy1mb3ItY3NzIFF1YW50aXR5IFF1ZXJpZXMgZm9yIENTU1xuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXggLSBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyB0byBkZXRlY3QuIFRoZSBoaWdoZXIgdGhpcyBudW1iZXIgaXMsIHRoZSBtb3JlIENTUyB0aGF0J3MgcmVxdWlyZWQgdG8gY292ZXIgZWFjaCBudW1iZXIgb2YgaXRlbXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZWxlbSBbbGldIC0gVGFnIHRvIHVzZSBmb3Igc2libGluZyBzZWxlY3RvcnMuXG5AbWl4aW4gYXV0by13aWR0aCgkbWF4LCAkZWxlbTogbGkpIHtcbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkbWF4IHtcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCxcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCB+ICN7JGVsZW19IHtcbiAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDEgLyAkaSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBSZW1vdmVzIHRoZSBmb2N1cyByaW5nIGFyb3VuZCBhbiBlbGVtZW50IHdoZW4gYSBtb3VzZSBpbnB1dCBpcyBkZXRlY3RlZC5cbkBtaXhpbiBkaXNhYmxlLW1vdXNlLW91dGxpbmUge1xuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gJiB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG4vLy8gTWFrZXMgYW4gZWxlbWVudCB2aXN1YWxseSBoaWRkZW4sIGJ1dCBzdGlsbCBhY2Nlc3NpYmxlIHRvIGtleWJvYXJkcyBhbmQgYXNzaXN0aXZlIGRldmljZXMuXG4vLy8gQGxpbmsgaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eSBIaWRpbmcgQ29udGVudCBmb3IgQWNjZXNzaWJpbGl0eVxuLy8vIEBsaW5rIGh0dHA6Ly9odWdvZ2lyYXVkZWwuY29tLzIwMTYvMTAvMTMvY3NzLWhpZGUtYW5kLXNlZWsvXG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCwwLDAsMCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcbiAgYm9yZGVyOiAwO1xufVxuXG4vLy8gUmV2ZXJzZXMgdGhlIENTUyBvdXRwdXQgY3JlYXRlZCBieSB0aGUgYGVsZW1lbnQtaW52aXNpYmxlKClgIG1peGluLlxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlLW9mZiB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIGNsaXAtcGF0aDogbm9uZTtcbn1cblxuLy8vIFZlcnRpY2FsbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gdmVydGljYWwtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4vLy8gSG9yaXpvbnRhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGhvcml6b250YWwtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cblxuLy8vIEFic29sdXRlbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gYWJzb2x1dGUtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cblxuLy8vIEl0ZXJhdGVzIHRocm91Z2ggYnJlYWtwb2ludHMgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnQtY2xhc3Nlc2AgYW5kIHByaW50cyB0aGUgQ1NTIGluc2lkZSB0aGUgbWl4aW4gYXQgZWFjaCBicmVha3BvaW50J3MgbWVkaWEgcXVlcnkuIFVzZSB0aGlzIHdpdGggdGhlIGdyaWQsIG9yIGFueSBvdGhlciBjb21wb25lbnQgdGhhdCBoYXMgcmVzcG9uc2l2ZSBjbGFzc2VzLlxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkc21hbGwgW3RydWVdIC0gSWYgYGZhbHNlYCwgdGhlIG1peGluIHdpbGwgc2tpcCB0aGUgYHNtYWxsYCBicmVha3BvaW50LiBVc2UgdGhpcyB3aXRoIGNvbXBvbmVudHMgdGhhdCBkb24ndCBwcmVmaXggY2xhc3NlcyB3aXRoIGBzbWFsbC1gLCBvbmx5IGBtZWRpdW0tYCBhbmQgdXAuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHMgW3RydWVdIC0gSWYgYGZhbHNlYCwgdGhlIG1peGluIHdpbGwgaXRlcmF0ZSBvdmVyIGJyZWFrcG9pbnRzIHdpdGhvdXQgZG9pbmcgdGhlIG1lZGlhIHF1ZXJ5IGl0c2VsZi4gVXNlZnVsIGZvciBtb3JlIGNvbXBsZXggbWVkaWEgcXVlcnkgZ2VuZXJhdGlvbiBhcyBpbiB0aGUgbWFyZ2luIGdyaWQuXG5AbWl4aW4gLXpmLWVhY2gtYnJlYWtwb2ludCgkc21hbGw6IHRydWUsICRhdXRvLWluc2VydC1icmVha3BvaW50czogdHJ1ZSkge1xuICAkbGlzdDogJGJyZWFrcG9pbnQtY2xhc3NlcztcblxuICBAaWYgbm90ICRzbWFsbCB7XG4gICAgJGxpc3Q6IHNsLXJlbW92ZSgkbGlzdCwgJC16Zi16ZXJvLWJyZWFrcG9pbnQpO1xuICB9XG5cbiAgQGVhY2ggJG5hbWUgaW4gJGxpc3Qge1xuICAgICQtemYtc2l6ZTogJG5hbWUgIWdsb2JhbDtcblxuICAgIEBpZiAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBHZW5lcmF0ZSB0aGUgYEBjb250ZW50YCBwYXNzZWQgdG8gdGhlIG1peGluIHdpdGggYSB2YWx1ZSBgJC16Zi1icC12YWx1ZWAgcmVsYXRlZCB0byBhIGJyZWFrcG9pbnQsIGRlcGVuZGluZyBvbiB0aGUgYCRuYW1lYCBwYXJhbWV0ZXI6XG4vLy8gLSBGb3IgYSBzaW5nbGUgdmFsdWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGlzIHZhbHVlLlxuLy8vIC0gRm9yIGEgYnJlYWtwb2ludCBuYW1lLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAuXG4vLy8gLSBGb3IgXCJhdXRvXCIsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYCBhbmQgaXMgcGFzc2VkIHRvIGBAY29udGVudGAsIHdoaWNoIGlzIG1hZGUgcmVzcG9uc2l2ZSBmb3IgZWFjaCBicmVha3BvaW50IG9mIGAkbWFwYC5cbi8vLyBAcGFyYW0ge051bWJlcnxBcnJheXxLZXl3b3JkfSAkbmFtZSBbYXV0b10gLSBTaW5nbGUgdmFsdWUsIGJyZWFrcG9pbnQgbmFtZSwgb3IgbGlzdCBvZiBicmVha3BvaW50IG5hbWVzIHRvIHVzZS4gXCJhdXRvXCIgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBNYXAgb2YgYnJlYWtwb2ludHMgYW5kIHZhbHVlcyBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLlxuQG1peGluIC16Zi1icmVha3BvaW50LXZhbHVlKFxuICAkbmFtZTogYXV0byxcbiAgJG1hcDogbnVsbFxuKSB7XG4gIEBpZiAkbmFtZSA9PSBhdXRvIGFuZCB0eXBlLW9mKCRtYXApID09ICdtYXAnIHtcbiAgICAvLyBcImF1dG9cIlxuICAgIEBlYWNoICRrLCAkdiBpbiAkbWFwIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGspIHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJHYsICRtYXApIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gYnJlYWtwb2ludCBuYW1lXG4gICAgQGlmIHR5cGUtb2YoJG5hbWUpID09ICdzdHJpbmcnIHtcbiAgICAgICRuYW1lOiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkbmFtZSk7XG4gICAgfVxuXG4gICAgLy8gYnJlYWtwb2ludCB2YWx1ZVxuICAgICQtemYtYnAtdmFsdWU6ICRuYW1lICFnbG9iYWw7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8gTWFyZ2luIEdyaWQgY2xhc3Nlc1xuQG1peGluIHh5LWJhc2UtZ3JpZC1jbGFzc2VzIHtcblxuICAvLyBHcmlkIENvbnRhaW5lclxuICAuZ3JpZC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyO1xuXG4gICAgJi5mbHVpZCB7XG4gICAgICBAaW5jbHVkZSB4eS1ncmlkLWNvbnRhaW5lcigxMDAlKTtcbiAgICB9XG5cbiAgICAmLmZ1bGwge1xuICAgICAgQGluY2x1ZGUgeHktZ3JpZC1jb250YWluZXIoMTAwJSwgMCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQmFzZSBncmlkIHN0eWxlc1xuICAuZ3JpZC14IHtcbiAgICBAaW5jbHVkZSB4eS1ncmlkO1xuICB9XG5cbiAgLmNlbGwge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtYmFzZSgpO1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKCRncmlkLWNvbHVtbnMsIGZhbHNlLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcpO1xuXG4gICAgJi5hdXRvIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmFzZShhdXRvKTtcbiAgICB9XG5cbiAgICAmLnNocmluayB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2Uoc2hyaW5rKTtcbiAgICB9XG5cbiAgfVxuICAuZ3JpZC14IHtcbiAgICA+IC5hdXRvIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKGF1dG8sIGZhbHNlKTtcbiAgICB9XG5cbiAgICA+IC5zaHJpbmsge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoc2hyaW5rLCBmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gQXV0byB3aWR0aFxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgIC8vIFRoaXMgaXMgYSBiaXQgb2YgYSBoYWNrL3dvcmthcm91bmQsIHNlZSB0aGVzZSBpc3N1ZXMgJiBQUnMgZm9yIHRoZSBiYWNrc3Rvcnk6XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3p1cmIvZm91bmRhdGlvbi1zaXRlcy9pc3N1ZXMvMTAyNDRcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20venVyYi9mb3VuZGF0aW9uLXNpdGVzL3B1bGwvMTAyMjIgYW5kXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3p1cmIvZm91bmRhdGlvbi1zaXRlcy9wdWxsLzEwMTY0XG4gICAgLmdyaWQteCB7XG4gICAgICAkc3RyOiBcIj4gLiN7JC16Zi1zaXplfS1zaHJpbmssID4gLiN7JC16Zi1zaXplfS1mdWxsXCI7XG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICAgICAkc3RyOiAkc3RyICsgXCIsID4gLiN7JC16Zi1zaXplfS0jeyRpfVwiXG4gICAgICB9XG4gICAgICAjeyRzdHJ9IHtcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgIEBpZiBub3QoJC16Zi1zaXplID09IHNtYWxsKSB7XG4gICAgICAuZ3JpZC14ID4gLiN7JC16Zi1zaXplfS1hdXRvIHtcbiAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKGF1dG8pO1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYyhhdXRvLCBmYWxzZSk7XG4gICAgICB9XG5cbiAgICAgIC5ncmlkLXggPiAuI3skLXpmLXNpemV9LXNocmluayB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmFzZShzaHJpbmspO1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYyhzaHJpbmssIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICAgLy8gU2l6aW5nIChwZXJjZW50YWdlKVxuICAgICAgLmdyaWQteCA+IC4jeyQtemYtc2l6ZX0tI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYygkaSwgZmFsc2UsICRndXR0ZXItdHlwZTogcGFkZGluZyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgd2lkdGggd2hlbiB1c2luZyBgLmdyaWQtbWFyZ2luLXhgIG5vdCBvbiBgLmdyaWQteGBcbiAgLmdyaWQtbWFyZ2luLXg6bm90KC5ncmlkLXgpID4gLmNlbGwge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG5cbiAgLy8gUmVzZXQgaGVpZ2h0IHdoZW4gdXNpbmcgYC5ncmlkLW1hcmdpbi15YCBub3Qgb24gYC5ncmlkLXlgXG4gIC5ncmlkLW1hcmdpbi15Om5vdCguZ3JpZC15KSA+IC5jZWxsIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cblxuQG1peGluIC14eS1icmVha3BvaW50LWNlbGwtY2xhc3NlcygkY2xhc3MtYnJlYWtwb2ludCwgJGd1dHRlci1icmVha3BvaW50LCAkdmVydGljYWwpIHtcbiAgJHByZWZpeDogaWYoJGNsYXNzLWJyZWFrcG9pbnQgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQsICcnLCAnI3skY2xhc3MtYnJlYWtwb2ludH0tJyk7XG4gID4gLiN7JHByZWZpeH1hdXRvIHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYyhhdXRvLCBmYWxzZSwgJGJyZWFrcG9pbnQ6ICRndXR0ZXItYnJlYWtwb2ludCwgJHZlcnRpY2FsOiAkdmVydGljYWwpO1xuICB9XG5cbiAgPiAuI3skcHJlZml4fXNocmluayB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoc2hyaW5rLCBmYWxzZSwgJGJyZWFrcG9pbnQ6ICRndXR0ZXItYnJlYWtwb2ludCwgJHZlcnRpY2FsOiAkdmVydGljYWwpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgJGNsYXNzbmFtZTogaWYoJHZlcnRpY2FsLCAnLiN7JGNsYXNzLWJyZWFrcG9pbnR9LSN7JGl9JywgJy4jeyRjbGFzcy1icmVha3BvaW50fS0jeyRpfScpO1xuXG4gICAgPiAjeyRjbGFzc25hbWV9IHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKCRpLCBmYWxzZSwgJGJyZWFrcG9pbnQ6ICRndXR0ZXItYnJlYWtwb2ludCwgJHZlcnRpY2FsOiAkdmVydGljYWwpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBNYXJnaW4gR3JpZCBjbGFzc2VzXG5AbWl4aW4geHktbWFyZ2luLWdyaWQtY2xhc3NlcyhcbiAgJGd1dHRlci1wb3NpdGlvbjogbGVmdCByaWdodCxcbiAgJHZlcnRpY2FsOiBmYWxzZSxcbiAgJHdyYXBwaW5nLXNlbGVjdG9yOiAnLmdyaWQtbWFyZ2luLXgnXG4pe1xuICAjeyR3cmFwcGluZy1zZWxlY3Rvcn0ge1xuICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJG5lZ2F0aXZlOiB0cnVlLCAkZ3V0dGVyLXBvc2l0aW9uOiAkZ3V0dGVyLXBvc2l0aW9uKTtcblxuICAgIC8vIEJhc2UgY2VsbCBzdHlsZXNcbiAgICA+IC5jZWxsIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKCR2ZXJ0aWNhbDogJHZlcnRpY2FsKTtcbiAgICB9XG5cbiAgICAvLyBiYXNlIHN0eWxlcyBuZWVkIHRvIGFsbCBiZSBiZWZvcmUgdGhlIGF1dG8gYW5kIHNocmluayBzdHlsZXNcbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgICAgQGlmKHR5cGUtb2YoJGdyaWQtbWFyZ2luLWd1dHRlcnMpID09ICdtYXAnIGFuZCBtYXAtaGFzLWtleSgkZ3JpZC1tYXJnaW4tZ3V0dGVycywgJC16Zi1zaXplKSBhbmQgJC16Zi1zaXplICE9ICQtemYtemVyby1icmVha3BvaW50KSB7XG4gICAgICAgID4gLmNlbGwge1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKCRicmVha3BvaW50OiAkLXpmLXNpemUsICR2ZXJ0aWNhbDogJHZlcnRpY2FsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG5cbiAgICAgIC8vIFRoaXMgaXMgcHVyZWx5IGZvciByZXNwb25zaXZlIGd1dHRlcnMgLSB0aGUgbWFyZ2luIGdyaWQgaGFzIHRvIGdvIGJhY2sgYW5kIGFkanVzdCB3aWR0aHMgKG9yIGhlaWdodHMpXG4gICAgICAvLyBmb3IgcHJpb3IgYnJlYWtwb2ludHMgYmFzZWQgb24gdGhlIHJlc3BvbnNpdmUgZ3V0dGVyLlxuICAgICAgQGlmKHR5cGUtb2YoJGdyaWQtbWFyZ2luLWd1dHRlcnMpID09ICdtYXAnIGFuZCBtYXAtaGFzLWtleSgkZ3JpZC1tYXJnaW4tZ3V0dGVycywgJC16Zi1zaXplKSkge1xuICAgICAgICBAZWFjaCAkYnAgaW4gLXpmLWJyZWFrcG9pbnRzLWxlc3MtdGhhbigkLXpmLXNpemUpIHtcbiAgICAgICAgICBAaWYobWFwLWhhcy1rZXkoJGdyaWQtbWFyZ2luLWd1dHRlcnMsICRicCkpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIC14eS1icmVha3BvaW50LWNlbGwtY2xhc3NlcygkYnAsICQtemYtc2l6ZSwgJHZlcnRpY2FsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgLXh5LWJyZWFrcG9pbnQtY2VsbC1jbGFzc2VzKCQtemYtc2l6ZSwgJC16Zi1zaXplLCAkdmVydGljYWwpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBQYWRkaW5nIEdyaWQgY2xhc3Nlc1xuQG1peGluIHh5LXBhZGRpbmctZ3JpZC1jbGFzc2VzIHtcbiAgLmdyaWQtcGFkZGluZy14IHtcblxuICAgIC8vIE5lZ2F0aXZlIG1hcmdpbiBmb3IgbmVzdGVkIGdyaWRzXG4gICAgLmdyaWQtcGFkZGluZy14IHtcbiAgICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJG5lZ2F0aXZlOiB0cnVlKTtcbiAgICB9XG5cbiAgICAvLyBOZWdhdGl2ZSBtYXJnaW4gZm9yIGdyaWRzIHdpdGhpbiBgZ3JpZC1jb250YWluZXIvZ3JpZC1jb250YWluZXIuZmx1aWRgXG4gICAgLy8gVGhpcyBhbGxvd3MgbWFyZ2luIGFuZCBwYWRkaW5nIGdyaWRzIHRvIGxpbmUgdXAgd2l0aCBlYWNob3RoZXJcbiAgICAuZ3JpZC1jb250YWluZXI6bm90KC5mdWxsKSA+ICYge1xuICAgICAgQGluY2x1ZGUgeHktZ3V0dGVycygkbmVnYXRpdmU6IHRydWUpO1xuICAgIH1cblxuICAgIC8vIEJhc2UgY2VsbCBzdHlsZXNcbiAgICA+IC5jZWxsIHtcbiAgICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJGd1dHRlcnM6ICRncmlkLXBhZGRpbmctZ3V0dGVycywgJGd1dHRlci10eXBlOiBwYWRkaW5nKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gQmxvY2sgR3JpZCBjbGFzc2VzXG5AbWl4aW4geHktYmxvY2stZ3JpZC1jbGFzc2VzKCRtYXJnaW4tZ3JpZDogdHJ1ZSwgJHBhZGRpbmctZ3JpZDogdHJ1ZSkge1xuICBAaWYgJHBhZGRpbmctZ3JpZCB7XG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICR4eS1ibG9jay1ncmlkLW1heCB7XG4gICAgICAgIC4jeyQtemYtc2l6ZX0tdXAtI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtbGF5b3V0KCRpLCAnLmNlbGwnLCBmYWxzZSwgJGd1dHRlci10eXBlOiBwYWRkaW5nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkbWFyZ2luLWdyaWQge1xuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkeHktYmxvY2stZ3JpZC1tYXgge1xuICAgICAgICAvLyBUaGlzIGlzIHB1cmVseSBmb3IgcmVzcG9uc2l2ZSBndXR0ZXJzIC0gdGhlIG1hcmdpbiBncmlkIGhhcyB0byBnbyBiYWNrIGFuZCBhZGp1c3Qgd2lkdGhzIChvciBoZWlnaHRzKVxuICAgICAgICAvLyBmb3IgcHJpb3IgYnJlYWtwb2ludHMgYmFzZWQgb24gdGhlIHJlc3BvbnNpdmUgZ3V0dGVyLlxuICAgICAgICBAaWYodHlwZS1vZigkZ3JpZC1tYXJnaW4tZ3V0dGVycykgPT0gJ21hcCcgYW5kIG1hcC1oYXMta2V5KCRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkLXpmLXNpemUpKSB7XG4gICAgICAgICAgQGVhY2ggJGJwIGluIC16Zi1icmVha3BvaW50cy1sZXNzLXRoYW4oJC16Zi1zaXplKSB7XG4gICAgICAgICAgICBAaWYobWFwLWhhcy1rZXkoJGdyaWQtbWFyZ2luLWd1dHRlcnMsICRicCkpIHtcbiAgICAgICAgICAgICAgLmdyaWQtbWFyZ2luLXguI3skYnB9LXVwLSN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWxheW91dCgkaSwgJy5jZWxsJywgZmFsc2UsICRndXR0ZXItdHlwZTogbWFyZ2luLCAkYnJlYWtwb2ludDogJGJwKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkeHktYmxvY2stZ3JpZC1tYXgge1xuICAgICAgICAuZ3JpZC1tYXJnaW4teC4jeyQtemYtc2l6ZX0tdXAtI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtbGF5b3V0KCRpLCAnLmNlbGwnLCBmYWxzZSwgJGd1dHRlci10eXBlOiBtYXJnaW4sICRicmVha3BvaW50OiAkLXpmLXNpemUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIENvbGxhcHNlIGNsYXNzZXNcbkBtaXhpbiB4eS1jb2xsYXBzZS1ncmlkLWNsYXNzZXMoJG1hcmdpbi1ncmlkOiB0cnVlLCAkcGFkZGluZy1ncmlkOiB0cnVlKSB7XG4gIEBlYWNoICRicCBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJG1hcmdpbi1ncmlkIHtcbiAgICAgIC4jeyRicH0tbWFyZ2luLWNvbGxhcHNlIHtcbiAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1jb2xsYXBzZSgkZ3V0dGVyLXR5cGU6IG1hcmdpbiwgJG1pbi1icmVha3BvaW50OiAkYnApO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkcGFkZGluZy1ncmlkIHtcbiAgICAgIC4jeyRicH0tcGFkZGluZy1jb2xsYXBzZSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtY29sbGFwc2UoJGd1dHRlci10eXBlOiBwYWRkaW5nLCAkbWluLWJyZWFrcG9pbnQ6ICRicCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIE9mZnNldCBjbGFzc2VzXG5AbWl4aW4geHktb2Zmc2V0LWNlbGwtY2xhc3NlcyB7XG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAvLyBPZmZzZXRzXG4gICAgICAkbzogJGkgLSAxO1xuXG4gICAgICAuI3skLXpmLXNpemV9LW9mZnNldC0jeyRvfSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtb2Zmc2V0KCRvLCAkZ3V0dGVyczogJGdyaWQtcGFkZGluZy1ndXR0ZXJzLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcsICRicmVha3BvaW50OiAkLXpmLXNpemUpO1xuICAgICAgfVxuXG4gICAgICAuZ3JpZC1tYXJnaW4teCA+IC4jeyQtemYtc2l6ZX0tb2Zmc2V0LSN7JG99IHtcbiAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1vZmZzZXQoJG8sICRicmVha3BvaW50OiAkLXpmLXNpemUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBWZXJ0aWNhbCBHcmlkIGNsYXNzZXNcbkBtaXhpbiB4eS12ZXJ0aWNhbC1ncmlkLWNsYXNzZXMoXG4gICRtYXJnaW4tZ3JpZDogdHJ1ZSxcbiAgJHBhZGRpbmctZ3JpZDogdHJ1ZVxuKSB7XG5cbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICBAaWYgbm90KCQtemYtc2l6ZSA9PSBzbWFsbCkge1xuICAgIH1cbiAgfVxuXG4gIC5ncmlkLXkge1xuICAgIEBpbmNsdWRlIHh5LWdyaWQodmVydGljYWwsIGZhbHNlKTtcblxuXG4gICAgPiAuY2VsbCB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLXJlc2V0KCk7XG4gICAgfVxuXG4gICAgPiAuYXV0byB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYyhhdXRvLCBmYWxzZSwgJGJyZWFrcG9pbnQ6ICQtemYtc2l6ZSwgJHZlcnRpY2FsOiB0cnVlKTtcbiAgICB9XG5cbiAgICA+IC5zaHJpbmsge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoc2hyaW5rLCBmYWxzZSwgJGJyZWFrcG9pbnQ6ICQtemYtc2l6ZSwgJHZlcnRpY2FsOiB0cnVlKTtcbiAgICB9XG5cblxuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgICAvLyBUaGlzIGlzIGEgYml0IG9mIGEgaGFjay93b3JrYXJvdW5kLCBzZWUgdGhlc2UgaXNzdWVzIGFuZCBQUnMgZm9yIHRoZSBiYWNrc3Rvcnk6XG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20venVyYi9mb3VuZGF0aW9uLXNpdGVzL2lzc3Vlcy8xMDI0NFxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3p1cmIvZm91bmRhdGlvbi1zaXRlcy9wdWxsLzEwMjIyIGFuZFxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3p1cmIvZm91bmRhdGlvbi1zaXRlcy9wdWxsLzEwMTY0XG4gICAgICAkc3RyOiBcIj4gLiN7JC16Zi1zaXplfS1zaHJpbmssID4gLiN7JC16Zi1zaXplfS1mdWxsXCI7XG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICAgICAkc3RyOiAkc3RyICsgXCIsID4gLiN7JC16Zi1zaXplfS0jeyRpfVwiXG4gICAgICB9XG4gICAgICAjeyRzdHJ9IHtcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgICAgQGlmIG5vdCgkLXpmLXNpemUgPT0gc21hbGwpIHtcbiAgICAgICAgPiAuI3skLXpmLXNpemV9LWF1dG8ge1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmFzZShhdXRvKTtcbiAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYyhhdXRvLCBmYWxzZSwgJGJyZWFrcG9pbnQ6ICQtemYtc2l6ZSwgJHZlcnRpY2FsOiB0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gLiN7JC16Zi1zaXplfS1zaHJpbmsge1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKHNocmluaywgZmFsc2UsICRicmVha3BvaW50OiAkLXpmLXNpemUsICR2ZXJ0aWNhbDogdHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgfVxuXG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAgID4gLiN7JC16Zi1zaXplfS0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoJGksIGZhbHNlLCAkdmVydGljYWw6IHRydWUsICRndXR0ZXItdHlwZTogcGFkZGluZyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cbiAgfVxuXG4gIEBpZiAkcGFkZGluZy1ncmlkIHtcbiAgICAuZ3JpZC1wYWRkaW5nLXkge1xuICAgICAgLy8gTmVnYXRpdmUgbWFyZ2luIGZvciBuZXN0ZWQgZ3JpZHNcbiAgICAgIC5ncmlkLXBhZGRpbmcteSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJG5lZ2F0aXZlOiB0cnVlLCAkZ3V0dGVyLXBvc2l0aW9uOiB0b3AgYm90dG9tKTtcbiAgICAgIH1cblxuICAgICAgLy8gQmFzZSBjZWxsIHN0eWxlc1xuICAgICAgPiAuY2VsbCB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJGd1dHRlcnM6ICRncmlkLXBhZGRpbmctZ3V0dGVycywgJGd1dHRlci10eXBlOiBwYWRkaW5nLCAkZ3V0dGVyLXBvc2l0aW9uOiB0b3AgYm90dG9tKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJG1hcmdpbi1ncmlkIHtcbiAgICBAaW5jbHVkZSB4eS1tYXJnaW4tZ3JpZC1jbGFzc2VzKHRvcCBib3R0b20sIHRydWUsICcuZ3JpZC1tYXJnaW4teScpO1xuICB9XG5cbn1cblxuQG1peGluIHh5LWZyYW1lLWdyaWQtY2xhc3NlcygkdmVydGljYWwtZ3JpZDogdHJ1ZSwgJG1hcmdpbi1ncmlkOiB0cnVlKSB7XG4gIC8vIEZyYW1lZCBncmlkIHN0eWxlc1xuICAuZ3JpZC1mcmFtZSB7XG4gICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZTtcbiAgfVxuXG4gIC5jZWxsIC5ncmlkLWZyYW1lIHtcbiAgICB3aWR0aDogMTAwJTsgLy8gU2FtZSBhcyBpbmNsdWRlIHdpdGggJG5lc3RlZCwgYnV0IHdpdGggbGVzcyBjc3NcbiAgfVxuXG4gIC5jZWxsLWJsb2NrIHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLWJsb2NrKCk7XG4gIH1cblxuICAuY2VsbC1ibG9jay15IHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLWJsb2NrKHRydWUpO1xuICB9XG5cblxuICAuY2VsbC1ibG9jay1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtYmxvY2stY29udGFpbmVyKCk7XG4gIH1cblxuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoZmFsc2UpIHtcblxuICAgIC4jeyQtemYtc2l6ZX0tZ3JpZC1mcmFtZSB7XG4gICAgICBAaW5jbHVkZSB4eS1ncmlkLWZyYW1lO1xuICAgIH1cblxuICAgIC5jZWxsIC4jeyQtemYtc2l6ZX0tZ3JpZC1mcmFtZSB7XG4gICAgICB3aWR0aDogMTAwJTsgLy8gU2FtZSBhcyBpbmNsdWRlIHdpdGggJG5lc3RlZCwgYnV0IHdpdGggbGVzcyBjc3NcbiAgICB9XG5cbiAgICAuI3skLXpmLXNpemV9LWNlbGwtYmxvY2sge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jaygpO1xuICAgIH1cblxuICAgIC4jeyQtemYtc2l6ZX0tY2VsbC1ibG9jay1jb250YWluZXIge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jay1jb250YWluZXIoKTtcbiAgICB9XG5cbiAgICAuI3skLXpmLXNpemV9LWNlbGwtYmxvY2steSB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLWJsb2NrKHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkdmVydGljYWwtZ3JpZCB7XG4gICAgLmdyaWQteSB7XG4gICAgICAmLmdyaWQtZnJhbWUge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZSh0cnVlKTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludChmYWxzZSkge1xuICAgICAgICAmLiN7JC16Zi1zaXplfS1ncmlkLWZyYW1lIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWZyYW1lKHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgIH1cbiAgICB9XG4gICAgLmNlbGwge1xuICAgICAgLmdyaWQteS5ncmlkLWZyYW1lIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlOyAvLyBTYW1lIGFzIGluY2x1ZGUgd2l0aCAkbmVzdGVkLCBidXQgd2l0aCBsZXNzIGNzc1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludChmYWxzZSkge1xuICAgICAgICAuZ3JpZC15LiN7JC16Zi1zaXplfS1ncmlkLWZyYW1lIHtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7IC8vIFNhbWUgYXMgaW5jbHVkZSB3aXRoICRuZXN0ZWQsIGJ1dCB3aXRoIGxlc3MgY3NzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGlmICRtYXJnaW4tZ3JpZCB7XG4gICAgQGluY2x1ZGUgeHktbWFyZ2luLWdyaWQtY2xhc3Nlcyh0b3AgYm90dG9tLCB0cnVlLCAnLmdyaWQtbWFyZ2luLXknKTtcbiAgICAuZ3JpZC1mcmFtZS5ncmlkLW1hcmdpbi15IHtcbiAgICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWUodHJ1ZSwgZmFsc2UsICRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkaW5jbHVkZS1iYXNlOiBmYWxzZSk7XG4gICAgfVxuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoZmFsc2UpIHtcbiAgICAgIC5ncmlkLW1hcmdpbi15LiN7JC16Zi1zaXplfS1ncmlkLWZyYW1lIHtcbiAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZSh0cnVlLCBmYWxzZSwgJGdyaWQtbWFyZ2luLWd1dHRlcnMsICQtemYtc2l6ZSwgZmFsc2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBGaW5hbCBjbGFzc2VzXG5AbWl4aW4gZm91bmRhdGlvbi14eS1ncmlkLWNsYXNzZXMoXG4gICRiYXNlLWdyaWQ6IHRydWUsXG4gICRtYXJnaW4tZ3JpZDogdHJ1ZSxcbiAgJHBhZGRpbmctZ3JpZDogdHJ1ZSxcbiAgJGJsb2NrLWdyaWQ6IHRydWUsXG4gICRjb2xsYXBzZTogdHJ1ZSxcbiAgJG9mZnNldDogdHJ1ZSxcbiAgJHZlcnRpY2FsLWdyaWQ6IHRydWUsXG4gICRmcmFtZS1ncmlkOiB0cnVlXG4pIHtcblxuICAvLyBCYXNlIGdyaWQgc3R5bGVzXG4gIEBpZigkYmFzZS1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktYmFzZS1ncmlkLWNsYXNzZXMoKTtcbiAgfVxuXG4gIC8vIE1hcmdpbiBncmlkXG4gIEBpZigkbWFyZ2luLWdyaWQpIHtcbiAgICBAaW5jbHVkZSB4eS1tYXJnaW4tZ3JpZC1jbGFzc2VzKCk7XG4gIH1cblxuICAvLyBQYWRkaW5nIGdyaWRcbiAgQGlmKCRwYWRkaW5nLWdyaWQpIHtcbiAgICBAaW5jbHVkZSB4eS1wYWRkaW5nLWdyaWQtY2xhc3NlcygpO1xuICB9XG5cbiAgLy8gQmxvY2sgZ3JpZFxuICBAaWYoJGJsb2NrLWdyaWQpIHtcbiAgICBAaW5jbHVkZSB4eS1ibG9jay1ncmlkLWNsYXNzZXMoJG1hcmdpbi1ncmlkLCAkcGFkZGluZy1ncmlkKTtcbiAgfVxuXG4gIC8vIENvbGxhcHNlIGd1dHRlcnNcbiAgQGlmKCRjb2xsYXBzZSkge1xuICAgIEBpbmNsdWRlIHh5LWNvbGxhcHNlLWdyaWQtY2xhc3NlcygkbWFyZ2luLWdyaWQsICRwYWRkaW5nLWdyaWQpO1xuICB9XG5cbiAgLy8gT2Zmc2V0IGd1dHRlcnNcbiAgQGlmKCRvZmZzZXQpIHtcbiAgICBAaW5jbHVkZSB4eS1vZmZzZXQtY2VsbC1jbGFzc2VzKCk7XG4gIH1cblxuICAvLyBWZXJ0aWNhbCBncmlkXG4gIEBpZigkdmVydGljYWwtZ3JpZCkge1xuICAgIEBpbmNsdWRlIHh5LXZlcnRpY2FsLWdyaWQtY2xhc3NlcygkbWFyZ2luLWdyaWQsICRwYWRkaW5nLWdyaWQpO1xuICB9XG5cbiAgQGlmICgkZnJhbWUtZ3JpZCkge1xuICAgIEBpbmNsdWRlIHh5LWZyYW1lLWdyaWQtY2xhc3NlcygkdmVydGljYWwtZ3JpZCwgJG1hcmdpbi1ncmlkKVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vLyBDcmVhdGUgZ3V0dGVycyBmb3IgYSBjZWxsL2NvbnRhaW5lci5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUeXBlIG9mIGd1dHRlciB0byBvdXRwdXQuIEFjY2VwdHMgZWl0aGVyIG1hcmdpbiBvciBwYWRkaW5nLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGd1dHRlci1wb3NpdGlvbiBbcmlnaHQgbGVmdF0gLSBUaGUgcG9zaXRpb24gdG8gYXBwbHkgZ3V0dGVycyB0by4gQWNjZXB0cyBgdG9wYCwgYGJvdHRvbWAsIGBsZWZ0YCwgYHJpZ2h0YCBpbiBhbnkgY29tYmluYXRpb24uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkbmVnYXRpdmUgW2ZhbHNlXSAtIFdoZXRoZXIgdG8gYXBwbHkgdGhlIGd1dHRlciBhcyBhIG5lZ2F0aXZlIHZhbHVlLiBDb21tb25seSB1c2VkIGZvciBuZXN0ZWQgZ3JpZHMuXG5AbWl4aW4geHktZ3V0dGVycyhcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGd1dHRlci1wb3NpdGlvbjogcmlnaHQgbGVmdCxcbiAgJG5lZ2F0aXZlOiBmYWxzZVxuKSB7XG4gICRvcGVyYXRvcjogaWYoJG5lZ2F0aXZlLCAnLScsICcnKTtcblxuICAvLyBJZiB3ZSBoYXZlIGRlY2xhcmVkIG5lZ2F0aXZlIGd1dHRlcnMsIGZvcmNlIHR5cGUgdG8gYG1hcmdpbi5cbiAgJGd1dHRlci10eXBlOiBpZigkbmVnYXRpdmUsICdtYXJnaW4nLCAkZ3V0dGVyLXR5cGUpO1xuXG4gIC8vIE91dHB1dCBvdXIgbWFyZ2luIGd1dHRlcnMuXG4gIEBpZiAodHlwZS1vZigkZ3V0dGVycykgPT0gJ21hcCcpIHtcbiAgICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZShhdXRvLCAkZ3V0dGVycykge1xuICAgICAgJGd1dHRlcjogcmVtLWNhbGMoJC16Zi1icC12YWx1ZSkgLyAyO1xuXG4gICAgICAvLyBMb29wIHRocm91Z2ggZWFjaCBndXR0ZXIgcG9zaXRpb25cbiAgICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICAgI3skZ3V0dGVyLXR5cGV9LSN7JHZhbHVlfTogI3skb3BlcmF0b3J9JGd1dHRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2VpZiAodHlwZS1vZigkZ3V0dGVycykgPT0gJ251bWJlcicpIHtcbiAgICAkZ3V0dGVyOiByZW0tY2FsYygkZ3V0dGVycykgLyAyO1xuXG4gICAgLy8gTG9vcCB0aHJvdWdoIGVhY2ggZ3V0dGVyIHBvc2l0aW9uXG4gICAgQGVhY2ggJHZhbHVlIGluICRndXR0ZXItcG9zaXRpb24ge1xuICAgICAgI3skZ3V0dGVyLXR5cGV9LSN7JHZhbHVlfTogI3skb3BlcmF0b3J9JGd1dHRlcjtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIENyZWF0ZXMgYSBtYXggd2lkdGggY29udGFpbmVyLCBkZXNpZ25lZCB0byBob3VzZSB5b3VyIGdyaWQgY29udGVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWyRncmlkLWNvbnRhaW5lcl0gLSBhIHdpZHRoIHRvIGxpbWl0IHRoZSBjb250YWluZXIgdG8uXG5AbWl4aW4geHktZ3JpZC1jb250YWluZXIoXG4gICR3aWR0aDogJGdyaWQtY29udGFpbmVyLFxuICAkcGFkZGluZzogJGdyaWQtY29udGFpbmVyLXBhZGRpbmdcbikge1xuICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRndXR0ZXJzOiAkcGFkZGluZywgJGd1dHRlci10eXBlOiBwYWRkaW5nKTtcblxuICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi8vLyBDcmVhdGVzIGEgY29udGFpbmVyIGZvciB5b3VyIGZsZXggY2VsbHMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXJlY3Rpb24gW2hvcml6b250YWxdIC0gRWl0aGVyIGhvcml6b250YWwgb3IgdmVydGljYWwgZGlyZWN0aW9uIG9mIGNlbGxzIHdpdGhpbi5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR3cmFwIFt0cnVlXSAtIElmIHRoZSBjZWxscyB3aXRoaW4gc2hvdWxkIHdyYXAgb3Igbm90LlxuQG1peGluIHh5LWdyaWQoXG4gICRkaXJlY3Rpb246IGhvcml6b250YWwsXG4gICR3cmFwOiB0cnVlXG4pIHtcbiAgJGRpcmVjdGlvbjogaWYoJGRpcmVjdGlvbiA9PSAnaG9yaXpvbnRhbCcsIHJvdywgY29sdW1uKTtcbiAgJHdyYXA6IGlmKCR3cmFwLCB3cmFwLCBub3dyYXApO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogJGRpcmVjdGlvbiAkd3JhcDtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtIC0gTnVtYmVyIHRvIHN0cmlwIHVuaXQgZnJvbS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBzYW1lIG51bWJlciwgc2FucyB1bml0LlxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8vIENvbnZlcnRzIG9uZSBvciBtb3JlIHBpeGVsIHZhbHVlcyBpbnRvIG1hdGNoaW5nIHJlbSB2YWx1ZXMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkdmFsdWVzIC0gT25lIG9yIG1vcmUgdmFsdWVzIHRvIGNvbnZlcnQuIEJlIHN1cmUgdG8gc2VwYXJhdGUgdGhlbSB3aXRoIHNwYWNlcyBhbmQgbm90IGNvbW1hcy4gSWYgeW91IG5lZWQgdG8gY29udmVydCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCB3cmFwIHRoZSBsaXN0IGluIHBhcmVudGhlc2VzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBUaGUgYmFzZSB2YWx1ZSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB0aGUgYHJlbWAuIElmIHlvdSdyZSB1c2luZyBGb3VuZGF0aW9uIG91dCBvZiB0aGUgYm94LCB0aGlzIGlzIDE2cHguIElmIHRoaXMgcGFyYW1ldGVyIGlzIGBudWxsYCwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVmZXJlbmNlIHRoZSBgJGJhc2UtZm9udC1zaXplYCB2YXJpYWJsZSBhcyB0aGUgYmFzZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtMaXN0fSBBIGxpc3Qgb2YgY29udmVydGVkIHZhbHVlcy5cbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZTogbnVsbCkge1xuICAkcmVtLXZhbHVlczogKCk7XG4gICRjb3VudDogbGVuZ3RoKCR2YWx1ZXMpO1xuXG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlID09IG51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICAvLyBUaGlzIGlzIGJlY2F1c2UgMTAwJSBmb250IHNpemUgPSAxNnB4IGluIG1vc3QgYWxsIGJyb3dzZXJzXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICAvLyBVc2luZyByZW0gYXMgYmFzZSBhbGxvd3MgY29ycmVjdCBzY2FsaW5nXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAncmVtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIEBpZiAkY291bnQgPT0gMSB7XG4gICAgQHJldHVybiAtemYtdG8tcmVtKCR2YWx1ZXMsICRiYXNlKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvdW50IHtcbiAgICAkcmVtLXZhbHVlczogYXBwZW5kKCRyZW0tdmFsdWVzLCAtemYtdG8tcmVtKG50aCgkdmFsdWVzLCAkaSksICRiYXNlKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZW0tdmFsdWVzO1xufVxuXG4vLyBDb252ZXJ0cyBhIHVuaXRsZXNzLCBwaXhlbCwgb3IgcmVtIHZhbHVlIHRvIGVtLCBmb3IgdXNlIGluIGJyZWFrcG9pbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC10by1lbSgkdmFsdWUpIHtcbiAgLy8gUGl4ZWwgYW5kIHVuaXRsZXNzIHZhbHVlcyBhcmUgY29udmVydGVkIHRvIHJlbXNcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncHgnIG9yIHVuaXRsZXNzKCR2YWx1ZSkge1xuICAgICR2YWx1ZTogcmVtLWNhbGMoJHZhbHVlLCAkYmFzZTogMTZweCk7XG4gIH1cblxuICAvLyBUaGVuIHRoZSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gZW1zXG4gIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpICogMWVtO1xufVxuXG4vLy8gQ29udmVydHMgYSBwaXhlbCB2YWx1ZSB0byBtYXRjaGluZyByZW0gdmFsdWUuICpBbnkqIHZhbHVlIHBhc3NlZCwgcmVnYXJkbGVzcyBvZiB1bml0LCBpcyBhc3N1bWVkIHRvIGJlIGEgcGl4ZWwgdmFsdWUuIEJ5IGRlZmF1bHQsIHRoZSBiYXNlIHBpeGVsIHZhbHVlIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSByZW0gdmFsdWUgaXMgdGFrZW4gZnJvbSB0aGUgYCRnbG9iYWwtZm9udC1zaXplYCB2YXJpYWJsZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBQaXhlbCB2YWx1ZSB0byBjb252ZXJ0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBCYXNlIGZvciBwaXhlbCBjb252ZXJzaW9uLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBudW1iZXIgaW4gcmVtcywgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgZ2l2ZW4gdmFsdWUgYW5kIHRoZSBiYXNlIHBpeGVsIHZhbHVlLiByZW0gdmFsdWVzIGFyZSBwYXNzZWQgdGhyb3VnaCBhcyBpcy5cbkBmdW5jdGlvbiAtemYtdG8tcmVtKCR2YWx1ZSwgJGJhc2U6IG51bGwpIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ251bWJlcicge1xuICAgIEB3YXJuIGluc3BlY3QoJHZhbHVlKSArICcgd2FzIHBhc3NlZCB0byByZW0tY2FsYygpLCB3aGljaCBpcyBub3QgYSBudW1iZXIuJztcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBlbSBpbnRvIHJlbSBpZiBzb21lb25lIGhhbmRzIG92ZXIgJ2VtJ3NcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFyZW07XG4gIH1cblxuICAvLyBDYWxjdWxhdGUgcmVtIGlmIHVuaXRzIGZvciAkdmFsdWUgaXMgbm90IHJlbSBvciBlbVxuICBAaWYgdW5pdCgkdmFsdWUpICE9ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpICogMXJlbTtcbiAgfVxuXG4gIC8vIFR1cm4gMHJlbSBpbnRvIDBcbiAgQGlmICR2YWx1ZSA9PSAwcmVtIHtcbiAgICAkdmFsdWU6IDA7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwsIHBlcmNlbnRhZ2UsIHJlbSBvciBlbSB2YWx1ZSB0byBhIHVuaXRsZXNzIHZhbHVlIGJhc2VkIG9uIGEgZ2l2ZW4gZm9udCBzaXplLiBJZGVhbCBmb3Igd29ya2luZyBvdXQgdW5pdGxlc3MgbGluZSBoZWlnaHRzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGNvbnZlcnQgdG8gYSB1bml0bGVzcyBsaW5lIGhlaWdodFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSAtIFRoZSBmb250IHNpemUgdG8gdXNlIHRvIHdvcmsgb3V0IHRoZSBsaW5lIGhlaWdodCAtIGRlZmF1bHRzIHRvICRnbG9iYWwtZm9udC1zaXplXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gVW5pdGxlc3MgbnVtYmVyXG5AZnVuY3Rpb24gdW5pdGxlc3MtY2FsYygkdmFsdWUsICRiYXNlOiBudWxsKSB7XG5cbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxuICBAaWYgJGJhc2UgPT0gbnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gRmlyc3QsIGxldHMgY29udmVydCBvdXIgJGJhc2UgdG8gcGl4ZWxzXG5cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ3JlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ2VtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIC8vIE5vdyBsZXRzIGNvbnZlcnQgb3VyIHZhbHVlIHRvIHBpeGVscyB0b29cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnJScge1xuICAgICR2YWx1ZTogKCR2YWx1ZSAvIDEwMCUpICogJGJhc2U7XG4gIH1cblxuICBAaWYgdW5pdCgkdmFsdWUpID09ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgLy8gJ3B4J1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcge1xuICAgIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZSk7XG4gIH1cblxuICAvLyBhc3N1bWUgdGhhdCBsaW5lLWhlaWdodHMgZ3JlYXRlcm4gdGhlbiAxMCBhcmUgbWVhbnQgdG8gYmUgYWJzb2x1dGUgaW4gJ3B4J1xuICBAaWYgdW5pdGxlc3MoJHZhbHVlKSBhbmQgKCR2YWx1ZSA+IDEwKSB7XG4gICAgQHJldHVybiAkdmFsdWUgLyBzdHJpcC11bml0KCRiYXNlKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gQ2FsY3VsYXRlIHRoZSBwZXJjZW50YWdlIHNpemUgb2YgYSBjZWxsLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHNpemUgWyRncmlkLWNvbHVtbnNdIC0gU2l6ZSB0byBtYWtlIHRoZSBjZWxsLiBZb3UgY2FuIHBhc3MgYSB2YWx1ZSBpbiBtdWx0aXBsZSBmb3JtYXRzLCBzdWNoIGFzIGA2YCwgYDUwJWAsIGAxIG9mIDIgb3IgMS8zLlxuQGZ1bmN0aW9uIHh5LWNlbGwtc2l6ZShcbiAgJHNpemU6ICRncmlkLWNvbHVtbnNcbikge1xuICAvLyBQYXJzaW5nIHBlcmNlbnRzLCBkZWNpbWFscywgbiBvZiBuIGFuZCBudW1iZXIgY291bnRzXG4gIEBpZiB0eXBlLW9mKCRzaXplKSA9PSAnbnVtYmVyJyB7XG4gICAgQGlmIHVuaXQoJHNpemUpID09ICclJyB7XG4gICAgICAkc2l6ZTogJHNpemU7XG4gICAgfVxuICAgIEBlbHNlIGlmICRzaXplIDwgMSB7XG4gICAgICAkc2l6ZTogcGVyY2VudGFnZSgkc2l6ZSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRzaXplOiBwZXJjZW50YWdlKCRzaXplIC8gJGdyaWQtY29sdW1ucyk7XG4gICAgfVxuICB9XG5cbiAgLy8gUGFyc2luZyBcIm4gb2YgblwiIG9yIFwibi9uXCIgZXhwcmVzc2lvbnNcbiAgQGVsc2VpZiB0eXBlLW9mKCRzaXplKSA9PSAnbGlzdCcge1xuICAgIEBpZiBsZW5ndGgoJHNpemUpICE9IDMge1xuICAgICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIHh5LWNlbGwtc2l6ZSgpLiBVc2UgdGhlIGZvcm1hdCBcIm4gb2YgblwiIG9yIFwibi9uXCIuJztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHNpemU6IHBlcmNlbnRhZ2UobnRoKCRzaXplLCAxKSAvIG50aCgkc2l6ZSwgMykpO1xuICAgIH1cbiAgfVxuICAvLyBBbnl0aGluZyBlbHNlIGlzIGluY29ycmVjdFxuICBAZWxzZSB7XG4gICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIHh5LWNlbGwtc2l6ZSgpLiBVc2UgYSBudW1iZXIsIGRlY2ltYWwsIHBlcmNlbnRhZ2UsIG9yIFwibiBvZiBuXCIgLyBcIm4vblwiLic7XG4gIH1cblxuICBAcmV0dXJuICRzaXplO1xufVxuXG4vLy8gU2V0cyBiYXNlIGZsZXggcHJvcGVydGllcyBmb3IgY2VsbHMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQWNjZXB0cyBgZnVsbGAsIGBhdXRvYCBvciBgc2hyaW5rYC5cbkBtaXhpbiB4eS1jZWxsLWJhc2UoJHNpemU6IGZ1bGwpIHtcbiAgQGlmKCRzaXplID09ICdmdWxsJykge1xuICAgIC8vIFRoaXMgaXMgdGhlIGJhc2Ugc3R5bGUsIGFsbCBvdGhlcnMgaW5oZXJpdCBmcm9tIGl0XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgbWluLWhlaWdodDogMHB4O1xuICAgIG1pbi13aWR0aDogMHB4O1xuICB9XG4gIEBlbHNlaWYgKCRzaXplID09ICdhdXRvJykge1xuICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gIH1cbiAgQGVsc2VpZiAoJHNpemUgPT0gJ3NocmluaycpIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgfVxufVxuXG4vLy8gUmVzZXRzIGEgY2VsbHMgd2lkdGggKG9yIGhlaWdodCBpZiB2ZXJ0aWNhbCBpcyB0cnVlKSBhcyB3ZWxsIGFzIHN0cmlwcyBpdHMgZ3V0dGVycy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbkBtaXhpbiB4eS1jZWxsLXJlc2V0KCR2ZXJ0aWNhbDogdHJ1ZSkge1xuICAkZGlyZWN0aW9uOiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgd2lkdGgsIGhlaWdodCk7XG4gICN7JGRpcmVjdGlvbn06IGF1dG87XG59XG5cbi8vIFNldHMgb3VyIGNlbGwgd2lkdGhzIG9yIGhlaWdodHMgZGVwZW5kaW5nIG9uIGd1dHRlciB0eXBlLlxuQG1peGluIC14eS1jZWxsLXByb3BlcnRpZXMoJHNpemUsICRtYXJnaW4tZ3V0dGVyLCAkdmVydGljYWwpIHtcbiAgJGRpcmVjdGlvbjogaWYoJHZlcnRpY2FsID09IHRydWUsIGhlaWdodCwgd2lkdGgpO1xuICBAaWYoJHNpemUgPT0gJ2Z1bGwnKSB7XG4gICAgJHZhbDogaWYoJG1hcmdpbi1ndXR0ZXIgPT0gMCwgMTAwJSwgY2FsYygxMDAlIC0gI3tyZW0tY2FsYygkbWFyZ2luLWd1dHRlcil9KSk7XG4gICAgI3skZGlyZWN0aW9ufTogJHZhbDtcbiAgfVxuICBAZWxzZWlmICgkc2l6ZSA9PSAnYXV0bycpIHtcbiAgICAjeyRkaXJlY3Rpb259OiBhdXRvO1xuICAgICR2YWw6IGlmKCRtYXJnaW4tZ3V0dGVyID09IDAsIDEwMCUsIGNhbGMoMTAwJSAtICN7cmVtLWNhbGMoJG1hcmdpbi1ndXR0ZXIpfSkpO1xuICB9XG4gIEBlbHNlaWYgKCRzaXplID09ICdzaHJpbmsnKSB7XG4gICAgI3skZGlyZWN0aW9ufTogYXV0bztcbiAgfVxuICBAZWxzZSB7XG4gICAgJHZhbDogaWYoJG1hcmdpbi1ndXR0ZXIgPT0gMCwgI3t4eS1jZWxsLXNpemUoJHNpemUpfSwgY2FsYygje3h5LWNlbGwtc2l6ZSgkc2l6ZSl9IC0gI3tyZW0tY2FsYygkbWFyZ2luLWd1dHRlcil9KSk7XG4gICAgI3skZGlyZWN0aW9ufTogJHZhbDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGNlbGwgZm9yIHlvdXIgZ3JpZC5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQ2FuIGJlIGBmdWxsYCAoZGVmYXVsdCkgZm9yIDEwMCUgd2lkdGgsIGBhdXRvYCB0byB1c2UgdXAgYXZhaWxhYmxlIHNwYWNlIGFuZCBgc2hyaW5rYCB0byB1c2UgdXAgb25seSByZXF1aXJlZCBzcGFjZS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRndXR0ZXItb3V0cHV0IFt0cnVlXSAtIFdoZXRoZXIgb3Igbm90IHRvIG91dHB1dCBndXR0ZXJzXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtMaXN0fSAkZ3V0dGVyLXBvc2l0aW9uIFtyaWdodCBsZWZ0XSAtIFRoZSBwb3NpdGlvbiB0byBhcHBseSBndXR0ZXJzIHRvLiBBY2NlcHRzIGB0b3BgLCBgYm90dG9tYCwgYGxlZnRgLCBgcmlnaHRgIGluIGFueSBjb21iaW5hdGlvbi5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIG91dHB1dCB2ZXJ0aWNhbCAoaGVpZ2h0KSBzdHlsZXMgcmF0aGVyIHRoYW4gd2lkdGhzLlxuQG1peGluIHh5LWNlbGwoXG4gICRzaXplOiBmdWxsLFxuICAkZ3V0dGVyLW91dHB1dDogdHJ1ZSxcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGd1dHRlci1wb3NpdGlvbjogcmlnaHQgbGVmdCxcbiAgJGJyZWFrcG9pbnQ6IG51bGwsXG4gICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuICBAaWYoJGJyZWFrcG9pbnQgPT0gbnVsbCkge1xuICAgIC8vIElmIGAkYnAtc2l6ZWAgaXMgYXZhaWxhYmxlIHRoZW4gdXNlIHRoaXMsIG90aGVyd2lzZSByZXZlcnQgdG8gdGhlIHNtYWxsZXN0IGJwLlxuICAgIEBpZih2YXJpYWJsZS1leGlzdHMoLXpmLXNpemUpIGFuZCB0eXBlLW9mKCQtemYtc2l6ZSkgIT0gJ251bWJlcicpIGFuZCAkLXpmLXNpemUgIT0gbnVsbCB7XG4gICAgICAkYnJlYWtwb2ludDogJC16Zi1zaXplO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkYnJlYWtwb2ludDogJC16Zi16ZXJvLWJyZWFrcG9pbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gR2V0IG91ciBndXR0ZXJzIGZyb20gbWFwIGlmIGF2YWlsYWJsZSwgaWYgbm90IG1hcCBqdXN0IHJldHVybiB0aGUgdmFsdWUuXG4gICRndXR0ZXI6IC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkYnJlYWtwb2ludCk7XG5cbiAgLy8gQmFzZSBmbGV4IHByb3BlcnRpZXNcbiAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKCRzaXplKTtcblxuICBAaWYoJGd1dHRlci10eXBlID09ICdtYXJnaW4nKSB7XG4gICAgQGluY2x1ZGUgLXh5LWNlbGwtcHJvcGVydGllcygkc2l6ZSwgJGd1dHRlciwgJHZlcnRpY2FsKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgLXh5LWNlbGwtcHJvcGVydGllcygkc2l6ZSwgMCwgJHZlcnRpY2FsKTtcbiAgfVxuXG4gIEBpZiAkZ3V0dGVyLW91dHB1dCB7XG4gICAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyLCAkZ3V0dGVyLXR5cGUsICRndXR0ZXItcG9zaXRpb24pO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgc2l6ZWQgZ3JpZC4gVXNlZCB0byBnZW5lcmF0ZSBvdXIgZ3JpZCBjbGFzc2VzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgW2Z1bGxdIC0gVGhlIHNpemUgb2YgeW91ciBjZWxsLiBDYW4gYmUgYGZ1bGxgIChkZWZhdWx0KSBmb3IgMTAwJSB3aWR0aCwgYGF1dG9gIHRvIHVzZSB1cCBhdmFpbGFibGUgc3BhY2UgYW5kIGBzaHJpbmtgIHRvIHVzZSB1cCBvbmx5IHJlcXVpcmVkIHNwYWNlLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGd1dHRlci1vdXRwdXQgW3RydWVdIC0gV2hldGhlciBvciBub3QgdG8gb3V0cHV0IGd1dHRlcnNcbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIG91dHB1dCB2ZXJ0aWNhbCAoaGVpZ2h0KSBzdHlsZXMgcmF0aGVyIHRoYW4gd2lkdGhzLlxuQG1peGluIHh5LWNlbGwtc3RhdGljKFxuICAkc2l6ZTogZnVsbCxcbiAgJGd1dHRlci1vdXRwdXQ6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRicmVha3BvaW50OiAkLXpmLXplcm8tYnJlYWtwb2ludCxcbiAgJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG5cbiAgJGd1dHRlcjogLXpmLWdldC1icC12YWwoJGd1dHRlcnMsICRicmVha3BvaW50KTtcbiAgJGd1dHRlci1wb3NpdGlvbjogaWYoJHZlcnRpY2FsID09IHRydWUsIHRvcCBib3R0b20sIGxlZnQgcmlnaHQpO1xuXG4gIEBpZigkZ3V0dGVyLXR5cGUgPT0gJ21hcmdpbicpIHtcbiAgICBAaW5jbHVkZSAteHktY2VsbC1wcm9wZXJ0aWVzKCRzaXplLCAkZ3V0dGVyLCAkdmVydGljYWwpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSAteHktY2VsbC1wcm9wZXJ0aWVzKCRzaXplLCAwLCAkdmVydGljYWwpO1xuICB9XG5cbiAgLy8gSWYgd2Ugd2FudCB0byBvdXRwdXQgdGhlIGd1dHRlcnNcbiAgQGlmKCRndXR0ZXItb3V0cHV0KSB7XG4gICAgLy8gVE9ETzogRmlndXJlIG91dCBpZiB3ZSBuZWVkIHRvIHBhc3MgYnJlYWtwb2ludCBpbiBoZXJlIHRvby5cbiAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRndXR0ZXIsICRndXR0ZXItdHlwZSwgJGd1dHRlci1wb3NpdGlvbik7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIFNpemVzIGNoaWxkIGVsZW1lbnRzIHNvIHRoYXQgYCRuYCBudW1iZXIgb2YgaXRlbXMgYXBwZWFyIG9uIGVhY2ggcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRuIC0gTnVtYmVyIG9mIGVsZW1lbnRzIHRvIGRpc3BsYXkgcGVyIHJvdy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFsnLmNlbGwnXSAtIFNlbGVjdG9yKHMpIHRvIHVzZSBmb3IgY2hpbGQgZWxlbWVudHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZ3V0dGVyLW91dHB1dCBbdHJ1ZV0gLSBXaGV0aGVyIG9yIG5vdCB0byBvdXRwdXQgZ3V0dGVyc1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUeXBlIG9mIGd1dHRlciB0byBvdXRwdXQuIEFjY2VwdHMgYG1hcmdpbmAgb3IgYHBhZGRpbmdgLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGd1dHRlci1wb3NpdGlvbiBbcmlnaHQgbGVmdF0gLSBUaGUgcG9zaXRpb24gdG8gYXBwbHkgZ3V0dGVycyB0by4gQWNjZXB0cyBgdG9wYCwgYGJvdHRvbWAsIGBsZWZ0YCwgYHJpZ2h0YCBpbiBhbnkgY29tYmluYXRpb24uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIG91dHB1dCB2ZXJ0aWNhbCAoaGVpZ2h0KSBzdHlsZXMgcmF0aGVyIHRoYW4gd2lkdGhzLlxuQG1peGluIHh5LWdyaWQtbGF5b3V0KFxuICAkbixcbiAgJHNlbGVjdG9yOiAnLmNlbGwnLFxuICAkZ3V0dGVyLW91dHB1dDogdHJ1ZSxcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGd1dHRlci1wb3NpdGlvbjogcmlnaHQgbGVmdCxcbiAgJGJyZWFrcG9pbnQ6ICQtemYtemVyby1icmVha3BvaW50LFxuICAkdmVydGljYWw6IGZhbHNlXG4pIHtcbiAgJHNpemU6IHBlcmNlbnRhZ2UoMS8kbik7XG5cbiAgJiA+ICN7JHNlbGVjdG9yfSB7XG4gICAgQGluY2x1ZGUgeHktY2VsbCgkc2l6ZSwgJGd1dHRlci1vdXRwdXQsICRndXR0ZXJzLCAkZ3V0dGVyLXR5cGUsICRndXR0ZXItcG9zaXRpb24sICRicmVha3BvaW50LCAkdmVydGljYWwpO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vLyBDb2xsYXBzZXMgdGhlIGdyaWQgYSBjZWxscyB3aXRoaW4gaXQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFsuY2VsbF0gLSBUaGUgY2hpbGQgZWxlbWVudCB0byByZW1vdmUgdGhlIGd1dHRlciBmcm9tLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVGhlIHR5cGUgb2YgZ3V0dGVyIHRvIHJlbW92ZS5cbi8vLyBAcGFyYW0ge0xpc3R9ICRndXR0ZXItcG9zaXRpb24gW3JpZ2h0IGxlZnRdIC0gVGhlIHBvc2l0aW9ucyB0byByZW1vdmUgZ3V0dGVycyBmcm9tLiBBY2NlcHRzIGB0b3BgLCBgYm90dG9tYCwgYGxlZnRgLCBgcmlnaHRgIGluIGFueSBjb21iaW5hdGlvbi5cbkBtaXhpbiB4eS1ncmlkLWNvbGxhcHNlKFxuICAkc2VsZWN0b3I6ICcuY2VsbCcsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkZ3V0dGVyLXBvc2l0aW9uOiByaWdodCBsZWZ0LFxuICAkbWluLWJyZWFrcG9pbnQ6ICQtemYtemVyby1icmVha3BvaW50XG4pIHtcbiAgLy8gRmlyc3QsIGxldHMgbmVnYXRlIGFueSBtYXJnaW5zIG9uIHRoZSB0b3AgbGV2ZWxcbiAgQGlmICgkZ3V0dGVyLXR5cGUgPT0gJ21hcmdpbicpIHtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1pbi1icmVha3BvaW50KSB7XG4gICAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAgIG1hcmdpbi0jeyR2YWx1ZX06IDA7XG4gICAgICB9XG5cbiAgICAgID4gI3skc2VsZWN0b3J9IHtcbiAgICAgICAgQGVhY2ggJHZhbHVlIGluICRndXR0ZXItcG9zaXRpb24ge1xuICAgICAgICAgIG1hcmdpbi0jeyR2YWx1ZX06IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAkZXhjbHVkZWQtYnBzOiAtemYtYnJlYWtwb2ludHMtbGVzcy10aGFuKCRtaW4tYnJlYWtwb2ludCk7XG5cbiAgICAvLyBPdXRwdXQgbmV3IHdpZHRocyB0byBub3QgaW5jbHVkZSBndXR0ZXJzXG4gICAgQGVhY2ggJGJwIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGlmKHNsLWNvbnRhaW4oJGV4Y2x1ZGVkLWJwcywgJGJwKSkge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtaW4tYnJlYWtwb2ludCkge1xuICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAgICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAgICAgICA+IC4jeyRicH0tI3skaX0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYygkaSwgJGd1dHRlci1vdXRwdXQ6IGZhbHNlLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwKSB7XG4gICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgICAgICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAgICAgICAgID4gLiN7JGJwfS0jeyRpfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKCRpLCAkZ3V0dGVyLW91dHB1dDogZmFsc2UsICRndXR0ZXItdHlwZTogcGFkZGluZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IFxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtaW4tYnJlYWtwb2ludCkge1xuICAgICAgQGVhY2ggJHZhbHVlIGluICRndXR0ZXItcG9zaXRpb24ge1xuICAgICAgICBtYXJnaW4tI3skdmFsdWV9OiAwO1xuICAgICAgfVxuXG4gICAgICA+ICN7JHNlbGVjdG9yfSB7XG4gICAgICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICAgICBwYWRkaW5nLSN7JHZhbHVlfTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gT2Zmc2V0cyBhIGNvbHVtbiB0byB0aGUgcmlnaHQvYm90dG9tIGJ5IGAkbmAgY29sdW1ucy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRuIC0gU2l6ZSB0byBvZmZzZXQgYnkuIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGB6Zi1jZWxsKClgIG1peGluLCBzdWNoIGFzIGA2YCwgYDUwJWAsIG9yIGAxIG9mIDJgLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gU2V0cyB0aGUgZGlyZWN0aW9uIG9mIHRoZSBvZmZzZXQuIElmIHNldCB0byB0cnVlIHdpbGwgYXBwbHkgbWFyZ2luLXRvcCBpbnN0ZWFkLlxuQG1peGluIHh5LWNlbGwtb2Zmc2V0KFxuICRuLFxuICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAkYnJlYWtwb2ludDogJC16Zi16ZXJvLWJyZWFrcG9pbnQsXG4gJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gICRkaXJlY3Rpb246IGlmKCR2ZXJ0aWNhbCwgJ3RvcCcsICRnbG9iYWwtbGVmdCk7XG5cbiAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJGJyZWFrcG9pbnQsICRndXR0ZXJzKSB7XG4gICAgJGd1dHRlcjogcmVtLWNhbGMoJC16Zi1icC12YWx1ZSkgLyAyO1xuICAgICRzaXplOiBpZigkZ3V0dGVyLXR5cGUgPT0gJ21hcmdpbicsIGNhbGMoI3t4eS1jZWxsLXNpemUoJG4pfSArICN7JGd1dHRlcn0pLCAje3h5LWNlbGwtc2l6ZSgkbil9KTtcblxuICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAjeyRzaXplfTtcbiAgfVxufVxuIiwiLy8vIE1vZGlmaWVzIGEgZ3JpZCB0byBnaXZlIGl0IFwiZnJhbWVcIiBiZWhhdmlvciAobm8gb3ZlcmZsb3csIG5vIHdyYXAsIHN0cmV0Y2ggYmVoYXZpb3IpXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gSXMgZ3JpZCB2ZXJ0aWNhbCBvciBob3Jpem9udGFsLiBTaG91bGQgbWF0Y2ggZ3JpZC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRuZXN0ZWQgW2ZhbHNlXSAtIElzIGdyaWQgbmVzdGVkIG9yIG5vdC4gSWYgbmVzdGVkIGlzIHRydWUgdGhpcyBzZXRzIHRoZSBmcmFtZSB0byAxMDAlIGhlaWdodCwgb3RoZXJ3aXNlIHdpbGwgYmUgMTAwdmguXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbbnVsbF0gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBUaGUgbmFtZSBvZiB0aGUgYnJlYWtwb2ludCBzaXplIGluIHlvdXIgZ3V0dGVycyBtYXAgdG8gZ2V0IHRoZSBzaXplIGZyb20uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkaW5jbHVkZS1iYXNlIFt0cnVlXSAtIEluY2x1ZGUgdGhlIGJhc2Ugc3R5bGVzIHRoYXQgZG9uJ3QgdmFyeSBwZXIgYnJlYWtwb2ludC5cbkBtaXhpbiB4eS1ncmlkLWZyYW1lKFxuICAkdmVydGljYWw6IGZhbHNlLFxuICAkbmVzdGVkOiBmYWxzZSxcbiAgJGd1dHRlcnM6IG51bGwsXG4gICRicmVha3BvaW50OiBudWxsLFxuICAkaW5jbHVkZS1iYXNlOiB0cnVlXG4pIHtcblxuICBAaWYgJGluY2x1ZGUtYmFzZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIH1cblxuICBAaWYgJGJyZWFrcG9pbnQgPT0gbnVsbCBhbmQgdHlwZS1vZigkZ3V0dGVycykgPT0gJ21hcCcge1xuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgICBAaW5jbHVkZSB4eS1ncmlkLWZyYW1lKCR2ZXJ0aWNhbCwgJG5lc3RlZCwgJGd1dHRlcnMsICQtemYtc2l6ZSwgZmFsc2UpO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgLy8gR2V0IG91ciBndXR0ZXJzIGlmIGFwcGxpY2FibGVcbiAgICAkZ3V0dGVyOiAtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJGJyZWFrcG9pbnQpO1xuXG4gICAgLy8gSWYgd2UgaGF2ZSBhIGd1dHRlciwgYWRkIGl0IHRvIHRoZSB3aWR0aC9oZWlnaHRcbiAgICBAaWYgJGd1dHRlciB7XG4gICAgICBAaWYgJHZlcnRpY2FsID09IHRydWUge1xuICAgICAgICAkdW5pdDogaWYoJG5lc3RlZCA9PSB0cnVlLCAxMDAlLCAxMDB2aCk7XG4gICAgICAgICRndXR0ZXI6IHJlbS1jYWxjKCRndXR0ZXIpO1xuICAgICAgICBoZWlnaHQ6IGNhbGMoI3skdW5pdH0gKyAjeyRndXR0ZXJ9KTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkdW5pdDogaWYoJG5lc3RlZCA9PSB0cnVlLCAxMDAlLCAxMDB2dyk7XG4gICAgICAgICRndXR0ZXI6IHJlbS1jYWxjKCRndXR0ZXIpO1xuICAgICAgICB3aWR0aDogY2FsYygjeyR1bml0fSArICN7JGd1dHRlcn0pO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgJHZlcnRpY2FsID09IHRydWUge1xuICAgICAgICBoZWlnaHQ6IGlmKCRuZXN0ZWQgPT0gdHJ1ZSwgMTAwJSwgMTAwdmgpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIHdpZHRoOiBpZigkbmVzdGVkID09IHRydWUsIDEwMCUsIDEwMHZ3KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIE1vZGlmaWVzIGEgY2VsbCB0byBnaXZlIGl0IFwiYmxvY2tcIiBiZWhhdmlvciAob3ZlcmZsb3cgYXV0bywgaW5lcnRpYWwgc2Nyb2xsaW5nKVxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIElzIGdyaWQgdmVydGljYWwgb3IgaG9yaXpvbnRhbC4gU2hvdWxkIG1hdGNoIGdyaWQuXG5AbWl4aW4geHktY2VsbC1ibG9jayhcbiAgJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gICRwcm9wZXJ0eTogaWYoJHZlcnRpY2FsID09IHRydWUsICdvdmVyZmxvdy15JywgJ292ZXJmbG93LXgnKTtcblxuICBAaWYgJHZlcnRpY2FsID09IHRydWUge1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgfSBAZWxzZSB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cblxuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIC1tcy1vdmVyZmxvdy1zdHlwZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyO1xufVxuXG4vLy8gQ29udGFpbmVyIGZvciBpbnNpZGUgYSBncmlkIGZyYW1lIGNvbnRhaW5pbmcgbXVsdGlwbGUgYmxvY2tzLiBUeXBpY2FsbHkgdXNlZFxuLy8vIGFzIGEgbW9kaWZpZXIgZm9yIGEgYC5jZWxsYCB0byBhbGxvdyB0aGUgY2VsbCB0byBwYXNzIGFsb25nIGZsZXggc2l6aW5nXG4vLy8gY29uc3RyYWludHMgLyBmcm9tIHBhcmVudHMgdG8gY2hpbGRyZW4uXG5AbWl4aW4geHktY2VsbC1ibG9jay1jb250YWluZXIoKSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgPiAuZ3JpZC14IHtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5LWJhc2Vcbi8vLy9cblxuLy8gQmFzZSBUeXBvZ3JhcGh5XG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuLy8gVGhlc2UgYXJlIHN0eWxlcyBhcHBsaWVkIHRvIGJhc2ljIEhUTUwgdGFncywgaW5jbHVkaW5nOlxuLy8gICAtIFBhcmFncmFwaHMgPHA+XG4vLyAgIC0gQm9sZC9pdGFsaWNzIDxiPiA8c3Ryb25nPiA8aT4gPGVtPlxuLy8gICAtIFNtYWxsIHRleHQgPHNtYWxsPlxuLy8gICAtIEhlYWRpbmdzIDxoMT4tPGg2PlxuLy8gICAtIEFuY2hvcnMgPGE+XG4vLyAgIC0gRGl2aWRlcnMgPGhyPlxuLy8gICAtIExpc3RzIDx1bD4gPG9sPiA8ZGw+XG4vLyAgIC0gQmxvY2txdW90ZXMgPGJsb2NrcXVvdGU+XG4vLyAgIC0gQ29kZSBibG9ja3MgPGNvZGU+XG4vLyAgIC0gQWJicmV2aWF0aW9ucyA8YWJicj5cbi8vICAgLSBDaXRhdGlvbnMgPGNpdGU+XG4vLyAgIC0gS2V5c3Ryb2tlcyA8a2JkPlxuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGhlYWRlciBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kaGVhZGVyLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0eWxlIChlLmcuIGl0YWxpY2l6ZWQpIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLWZvbnQtc3R5bGU6IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgdXNlZCBmb3IgZWxlbWVudHMgdGhhdCB1c2UgbW9ub3NwYWNlZCB0eXBlLCBzdWNoIGFzIGNvZGUgc2FtcGxlc1xuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRmb250LWZhbWlseS1tb25vc3BhY2U6IENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgQ291cmllciwgbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJGhlYWRlci1jb2xvcjogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNCAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gU3R5bGVzIGZvciBoZWFkaW5ncyBhdCB2YXJpb3VzIHNjcmVlbiBzaXplcy4gRWFjaCBrZXkgaXMgYSBicmVha3BvaW50LCBhbmQgZWFjaCB2YWx1ZSBpcyBhIG1hcCBvZiBoZWFkaW5nIHN0eWxlcy5cbi8vLyBAdHlwZSBNYXBcbiRoZWFkZXItc3R5bGVzOiAoXG4gIHNtYWxsOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiAyNCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAxOSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAxOCksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAxNyksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4gIG1lZGl1bTogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogNDgpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogNDApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMzEpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMjUpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuKSAhZGVmYXVsdDtcblxuLy8gJGhlYWRlci1zdHlsZXMgbWFwIGlzIGJ1aWx0IGZyb20gJGhlYWRlci1zaXplcyBpbiBvcmRlciB0byBlbnN1cmUgZG93bndhcmQgY29tcGF0aWJpbGl0eVxuLy8gd2hlbiAkaGVhZGVyLXNpemVzIGlzIGRlcHJlY2lhdGVkLCAkaGVhZGVyLXN0eWxlcyBuZWVkcyB0byBnZXQgIWRlZmF1bHQgdmFsdWVzIGxpa2Ugc2V0dGluZ3Muc2Nzc1xuQGZ1bmN0aW9uIGJ1aWxkX2Zyb21faGVhZGVyLXNpemVzKCRoZWFkZXItc2l6ZXMpIHtcbiAgQHdhcm4gJ05vdGUsIHRoYXQgJGhlYWRlci1zaXplcyBoYXMgYmVlbiByZXBsYWNlZCB3aXRoICRoZWFkZXItc3R5bGVzLiAkaGVhZGVyLXNpemVzIHN0aWxsIHdvcmtzLCBidXQgaXQgaXMgZ29pbmcgdG8gYmUgZGVwcmVjaWF0ZWQuJztcbiAgJGhlYWRlci1zdHlsZXM6ICgpO1xuICBAZWFjaCAkc2l6ZSwgJGhlYWRlcnMgaW4gJGhlYWRlci1zaXplcyB7XG4gICAgJGhlYWRlci1tYXA6ICgpO1xuICAgIEBlYWNoICRoZWFkZXIsICRmb250LXNpemUgaW4gJGhlYWRlcnMge1xuICAgICAgJGhlYWRlci1tYXA6IG1hcC1tZXJnZSgkaGVhZGVyLW1hcCwgKCRoZWFkZXI6ICgnZm9udC1zaXplJzogJGZvbnQtc2l6ZSkpKTsgIFxuICAgIH1cbiAgICAkaGVhZGVyLXN0eWxlczogbWFwLW1lcmdlKCRoZWFkZXItc3R5bGVzLCAoJHNpemU6ICRoZWFkZXItbWFwKSk7XG4gIH1cbiAgQHJldHVybiAkaGVhZGVyLXN0eWxlcztcbn1cblxuLy8gSWYgaXQgZXhpc3RzICRoZWFkZXJzLXNpemVzIGlzIHVzZWQgdG8gYnVpbGQgJGhlYWRlci1zdHlsZXMuIFNlZSB0aGUgZG9jdW1lbnRhdGlvbi5cbkBpZiB2YXJpYWJsZS1leGlzdHMoaGVhZGVyLXNpemVzKSB7XG4gICRoZWFkZXItc3R5bGVzOiBidWlsZF9mcm9tX2hlYWRlci1zaXplcygkaGVhZGVyLXNpemVzKTtcbn1cblxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGA8c21hbGw+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbWFsbC1mb250LXNpemU6IDgwJSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGA8c21hbGw+YCBlbGVtZW50cyB3aGVuIHBsYWNlZCBpbnNpZGUgaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJGhlYWRlci1zbWFsbC1mb250LWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiB0ZXh0IGluc2lkZSBgPHA+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYXJhZ3JhcGgtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIGZvciBwYXJhZ3JhcGggdGV4dC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIENvbG9yXG4kY29kZS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjb2RlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBhcm91bmQgdGV4dCBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMiA1IDEpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3MuXG4vLy8gQHR5cGUgQ29sb3JcbiRhbmNob3ItY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRhbmNob3ItY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItY29sb3IsICRsaWdodG5lc3M6IC0xNCUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgZGVjb3JhdGlvbiBmb3IgbGlua3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZSAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gd2lkdGggb2YgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGhyLXdpZHRoOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgZm9yIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBMaXN0XG4kaHItYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gZm9yIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgYXV0byAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IGZvciBpdGVtcyBpbiBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1saW5laGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciBpdGVtcyBpbiBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1tYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b20gIWRlZmF1bHQ7XG5cbi8vLyBCdWxsZXQgdHlwZSB0byB1c2UgZm9yIHVub3JkZXJlZCBsaXN0cyAoZS5nLiwgYHNxdWFyZWAsIGBjaXJjbGVgLCBgZGlzY2ApLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxpc3Qtc3R5bGUtdHlwZTogZGlzYyAhZGVmYXVsdDtcblxuLy8vIFBvc2l0aW9uaW5nIGZvciBidWxsZXRzIG9uIHVub3JkZXJlZCBsaXN0IGl0ZW1zLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGUgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IChvciByaWdodCkgbWFyZ2luIGZvciBsaXN0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgYSBsaXN0IGluc2lkZSBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW46IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciBgPGRsPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IGZvciBgPGR0PmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYDxkdD5gIGFuZCBgPGRkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAwLjNyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmxvY2txdW90ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGEgYDxibG9ja3F1b3RlPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYmxvY2txdW90ZS1wYWRkaW5nOiByZW0tY2FsYyg5IDIwIDAgMTkpICFkZWZhdWx0O1xuXG4vLy8gU2lkZSBib3JkZXIgZm9yIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2l0ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBzZXVkbyBjb250ZW50IGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRjaXRlLXBzZXVkby1jb250ZW50OiAnXFwyMDE0IFxcMDAyMCcgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4ka2V5c3Ryb2tlLWZvbnQ6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4ka2V5c3Ryb2tlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4ka2V5c3Ryb2tlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGtleXN0cm9rZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIGJvcmRlciBzdHlsZSBmb3IgYDxhYmJyPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGFiYnItdW5kZXJsaW5lOiAxcHggZG90dGVkICRibGFjayAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1iYXNlIHtcbiAgLy8gVHlwb2dyYXBoeSByZXNldHNcbiAgZGl2LFxuICBkbCxcbiAgZHQsXG4gIGRkLFxuICB1bCxcbiAgb2wsXG4gIGxpLFxuICBoMSxcbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUsXG4gIGg2LFxuICBwcmUsXG4gIGZvcm0sXG4gIHAsXG4gIGJsb2NrcXVvdGUsXG4gIHRoLFxuICB0ZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAvLyBQYXJhZ3JhcGhzXG4gIHAge1xuICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcblxuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgIHRleHQtcmVuZGVyaW5nOiAkcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nO1xuICB9XG5cbiAgLy8gRW1waGFzaXplZCB0ZXh0XG4gIGVtLFxuICBpIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTdHJvbmcgdGV4dFxuICBzdHJvbmcsXG4gIGIge1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gU21hbGwgdGV4dFxuICBzbWFsbCB7XG4gICAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gSGVhZGluZ3NcbiAgaDEsIC5oMSxcbiAgaDIsIC5oMixcbiAgaDMsIC5oMyxcbiAgaDQsIC5oNCxcbiAgaDUsIC5oNSxcbiAgaDYsIC5oNiB7XG4gICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgZm9udC1zdHlsZTogJGhlYWRlci1mb250LXN0eWxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkaGVhZGVyLWNvbG9yO1xuICAgIHRleHQtcmVuZGVyaW5nOiAkaGVhZGVyLXRleHQtcmVuZGVyaW5nO1xuXG4gICAgc21hbGwge1xuICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICBjb2xvcjogJGhlYWRlci1zbWFsbC1mb250LWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhlYWRpbmcgc3R5bGVzXG4gIEBlYWNoICRzaXplLCAkaGVhZGVycyBpbiAkaGVhZGVyLXN0eWxlcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGhlYWRlciwgJGhlYWRlci1kZWZzIGluICRoZWFkZXJzIHtcbiAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiAxcmVtO1xuICAgICAgICAjeyRoZWFkZXJ9LCAuI3skaGVhZGVyfSB7XG5cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBmb250LXNpemUpIHtcbiAgICAgICAgICAgICRmb250LXNpemUtdGVtcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGZvbnQtc2l6ZSkpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGZzKSB7XG4gICAgICAgICAgICAkZm9udC1zaXplLXRlbXA6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBmcykpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbGluZS1oZWlnaHQpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBsaW5lLWhlaWdodCksICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGxoKSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbGgpLCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMoJGhlYWRlci1saW5laGVpZ2h0LCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1hcmdpbi10b3ApIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYXJnaW4tdG9wKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG10KSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbXQpKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1hcmdpbi1ib3R0b20pIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYXJnaW4tYm90dG9tKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1iKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWIpKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKCRoZWFkZXItbWFyZ2luLWJvdHRvbSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTGlua3NcbiAgYSB7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgY29sb3I6ICRhbmNob3ItY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbjtcblxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJGFuY2hvci1jb2xvci1ob3ZlcjtcbiAgICAgIEBpZiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlciAhPSAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbiB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG4gIH1cblxuICAvLyBIb3Jpem9udGFsIHJ1bGVcbiAgaHIge1xuICAgIGNsZWFyOiBib3RoO1xuXG4gICAgbWF4LXdpZHRoOiAkaHItd2lkdGg7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG1hcmdpbjogJGhyLW1hcmdpbjtcblxuICAgIGJvcmRlci10b3A6IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgIGJvcmRlci1ib3R0b206ICRoci1ib3JkZXI7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gIH1cblxuICAvLyBMaXN0c1xuICB1bCxcbiAgb2wsXG4gIGRsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkbGlzdC1tYXJnaW4tYm90dG9tO1xuICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246ICRsaXN0LXN0eWxlLXBvc2l0aW9uO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGlzdC1saW5laGVpZ2h0O1xuICB9XG5cbiAgLy8gTGlzdCBpdGVtc1xuICBsaSB7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gVW5vcmRlcmVkIGxpc3RzXG4gIHVsIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgICBsaXN0LXN0eWxlLXR5cGU6ICRsaXN0LXN0eWxlLXR5cGU7XG4gIH1cblxuICAvLyBPcmRlcmVkIGxpc3RzXG4gIG9sIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgfVxuXG4gIC8vIE5lc3RlZCB1bm9yZGVyZWQvb3JkZXJlZCBsaXN0c1xuICB1bCwgb2wge1xuICAgICYgJiB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW47XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIERlZmluaXRpb24gbGlzdHNcbiAgZGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRkZWZubGlzdC1tYXJnaW4tYm90dG9tO1xuXG4gICAgZHQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZGVmbmxpc3QtdGVybS13ZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQmxvY2txdW90ZXNcbiAgYmxvY2txdW90ZSB7XG4gICAgbWFyZ2luOiAwIDAgJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgIHBhZGRpbmc6ICRibG9ja3F1b3RlLXBhZGRpbmc7XG4gICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogJGJsb2NrcXVvdGUtYm9yZGVyO1xuXG4gICAgJiwgcCB7XG4gICAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgICAgY29sb3I6ICRibG9ja3F1b3RlLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIENpdGF0aW9uc1xuICBjaXRlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6ICRjaXRlLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGNpdGUtY29sb3I7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAkY2l0ZS1wc2V1ZG8tY29udGVudDtcbiAgICB9XG4gIH1cblxuICAvLyBBYmJyZXZpYXRpb25zXG4gIGFiYnIsIGFiYnJbdGl0bGVdIHtcbiAgICBib3JkZXItYm90dG9tOiAkYWJici11bmRlcmxpbmU7XG4gICAgY3Vyc29yOiBoZWxwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIC8vIEZpZ3VyZXNcbiAgZmlndXJlIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbiAgXG4gIC8vIENvZGVcbiAgY29kZSB7XG4gICAgcGFkZGluZzogJGNvZGUtcGFkZGluZztcblxuICAgIGJvcmRlcjogJGNvZGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2RlLWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGNvZGUtZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRjb2RlLWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkY29kZS1jb2xvcjtcbiAgfVxuXG4gIC8vIEtleXN0cm9rZXNcbiAga2JkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogJGtleXN0cm9rZS1wYWRkaW5nO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGtleXN0cm9rZS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRrZXlzdHJva2UtZm9udDtcbiAgICBjb2xvcjogJGtleXN0cm9rZS1jb2xvcjtcblxuICAgIEBpZiBoYXMtdmFsdWUoJGtleXN0cm9rZS1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRrZXlzdHJva2UtcmFkaXVzO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1oZWxwZXJzXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxlYWQtZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZSAqIDEuMjUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBsZWFkIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGVhZC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzdWJoZWFkZXItY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0b3AgbWFyZ2luIGZvciBzdWJoaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLXRvcDogMC4ycmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3Igc3RhdGlzdGljIG51bWJlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3RhdC1mb250LXNpemU6IDIuNXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1oZWxwZXJzIHtcbiAgLy8gVXNlIHRvIGNyZWF0ZSBhIHN1YmhlYWRpbmcgdW5kZXIgYSBtYWluIGhlYWRlclxuICAvLyBNYWtlIHN1cmUgeW91IHBhaXIgdGhlIHR3byBlbGVtZW50cyBpbiBhIDxoZWFkZXI+IGVsZW1lbnQsIGxpa2UgdGhpczpcbiAgLy8gPGhlYWRlcj5cbiAgLy8gICA8aDE+SGVhZGluZzwvaDE+XG4gIC8vICAgPGgyPlN1YmhlYWRpbmc8L2gyPlxuICAvLyA8L2hlYWRlcj5cbiAgLnN1YmhlYWRlciB7XG4gICAgbWFyZ2luLXRvcDogJHN1YmhlYWRlci1tYXJnaW4tdG9wO1xuICAgIG1hcmdpbi1ib3R0b206ICRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTtcblxuICAgIGZvbnQtd2VpZ2h0OiAkc3ViaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAkc3ViaGVhZGVyLWxpbmVoZWlnaHQ7XG4gICAgY29sb3I6ICRzdWJoZWFkZXItY29sb3I7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYW4gaW50cm9kdWN0b3J5IGxlYWQsIGRlY2ssIGJsdXJiLCBldGMuXG4gIC5sZWFkIHtcbiAgICBmb250LXNpemU6ICRsZWFkLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGxlYWQtbGluZWhlaWdodDtcbiAgfVxuXG4gIC8vIFVzZSB0byBzdHlsZSBhIGxhcmdlIG51bWJlciB0byBkaXNwbGF5IGEgc3RhdGlzdGljXG4gIC5zdGF0IHtcbiAgICBmb250LXNpemU6ICRzdGF0LWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgIHAgKyAmIHtcbiAgICAgIG1hcmdpbi10b3A6IC0xcmVtO1xuICAgIH1cbiAgfVxuXG4gIHVsLCBvbCB7XG4gICAgLy8gVXNlIHRvIHJlbW92ZSBudW1iZXJzIGZyb20gb3JkZXJlZCBsaXN0ICYgYnVsbGV0cyBmcm9tIHVub3JkZXJlZCBsaXN0XG4gICAgJi5uby1idWxsZXQge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQG1peGluIGZvdW5kYXRpb24tdGV4dC1hbGlnbm1lbnQge1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkYWxpZ24gaW4gKGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGp1c3RpZnkpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC0jeyRhbGlnbn0ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgLnRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSWYgYHRydWVgLCBhbGwgZWxlbWVudHMgd2lsbCBoYXZlIHRyYW5zcGFyZW50IGJhY2tncm91bmRzIHdoZW4gcHJpbnRlZCwgdG8gc2F2ZSBvbiBpbmsuXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBncm91cCBnbG9iYWxcbiRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kczogdHJ1ZSAhZGVmYXVsdDtcbiRwcmludC1ocmVmczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gc2Fzcy1saW50OmRpc2FibGUtYWxsXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByaW50LXN0eWxlcyB7XG4gIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gIEBtZWRpYSBwcmludCB7XG4gICAgKiB7XG4gICAgICBAaWYgJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsgLy8gQmxhY2sgcHJpbnRzIGZhc3RlcjogaDVicC5jb20vc1xuICAgICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gICAgLmhpZGUtZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgICB0YWJsZS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgICB0aGVhZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdGJvZHkuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRyLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgICB0ZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAgIHRoLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG5cbiAgICAvLyBEaXNwbGF5IHRoZSBVUkwgb2YgYSBsaW5rIGFmdGVyIHRoZSB0ZXh0XG4gICAgYSxcbiAgICBhOnZpc2l0ZWQgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTt9XG4gICAgQGlmICRwcmludC1ocmVmcyB7XG4gICAgICBhW2hyZWZdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKGhyZWYpICcpJzsgfVxuICAgIH1cblxuICAgIC8vIERvbid0IGRpc3BsYXkgdGhlIFVSTCBmb3IgaW1hZ2VzIG9yIEphdmFTY3JpcHQvaW50ZXJuYWwgbGlua3NcbiAgICAuaXIgYTphZnRlcixcbiAgICBhW2hyZWZePSdqYXZhc2NyaXB0OiddOmFmdGVyLFxuICAgIGFbaHJlZl49JyMnXTphZnRlciB7IGNvbnRlbnQ6ICcnOyB9XG5cbiAgICAvLyBEaXNwbGF5IHdoYXQgYW4gYWJicmV2aWF0aW9uIHN0YW5kcyBmb3IgYWZ0ZXIgdGhlIHRleHRcbiAgICBhYmJyW3RpdGxlXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cih0aXRsZSkgJyknOyB9XG5cbiAgICAvLyBQcmV2ZW50IHBhZ2UgYnJlYWtzIGluIHRoZSBtaWRkbGUgb2YgYSBibG9ja3F1b3RlIG9yIHByZWZvcm1hdHRlZCB0ZXh0IGJsb2NrXG4gICAgcHJlLFxuICAgIGJsb2NrcXVvdGUge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGRhcmstZ3JheTtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICAvLyBoNWJwLmNvbS90XG4gICAgdGhlYWQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IH1cblxuICAgIHRyLFxuICAgIGltZyB7IHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuXG4gICAgaW1nIHsgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuICAgIEBwYWdlIHsgbWFyZ2luOiAwLjVjbTsgfVxuXG4gICAgcCxcbiAgICBoMixcbiAgICBoMyB7XG4gICAgICBvcnBoYW5zOiAzO1xuICAgICAgd2lkb3dzOiAzO1xuICAgIH1cblxuICAgIC8vIEF2b2lkIHBhZ2UgYnJlYWtzIGFmdGVyIGEgaGVhZGluZ1xuICAgIGgyLFxuICAgIGgzIHsgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH1cblxuICAgIC8vIEhlbHBlciB0byByZS1hbGxvdyBwYWdlIGJyZWFrcyBpbiB0aGUgbWlkZGxlIG9mIGNlcnRhaW4gZWxlbWVudHMgKGUuZy4gcHJlLCBibG9ja3F1b3RlLCB0cilcbiAgICAucHJpbnQtYnJlYWstaW5zaWRlIHtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnV0dG9uXG4vLy8vXG5cbi8vLyBGb250IGZhbWlseSBmb3IgYnV0dG9uIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEZvbnRcbiRidXR0b24tZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tcGFkZGluZzogMC44NWVtIDFlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBhcm91bmQgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZpbGwgZm9yIGJ1dHRvbnMuIENhbiBlaXRoZXIgYmUgYHNvbGlkYCBvciBgaG9sbG93YC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kYnV0dG9uLWZpbGw6IHNvbGlkICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBDb2xvclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYnV0dG9uLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGl2ZSBmb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciB3aWR0aCBmb3IgaG9sbG93IG91dGxpbmUgYnV0dG9uc1xuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBNYXBcbiRidXR0b24tc2l6ZXM6IChcbiAgdGlueTogMC42cmVtLFxuICBzbWFsbDogMC43NXJlbSxcbiAgZGVmYXVsdDogMC45cmVtLFxuICBsYXJnZTogMS4yNXJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcmluZyBjbGFzc2VzLiBBIG1hcCBvZiBjbGFzc2VzIHRvIG91dHB1dCBpbiB5b3VyIENTUywgbGlrZSBgLnNlY29uZGFyeWAsIGAuc3VjY2Vzc2AsIGFuZCBzbyBvbi5cbi8vLyBAdHlwZSBNYXBcbiRidXR0b24tcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZSAhZGVmYXVsdDtcblxuLy8vIG9wYWNpdHkgZm9yIGEgZGlzYWJsZWQgYnV0dG9uLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDogMC4yNSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogLTIwJSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIGxpZ2h0bmVzcyBvbiBob3ZlciBmb3IgaG9sbG93IGJ1dHRvbnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3M6IC01MCUgIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsOiBmbGlwIGZyb20gbWFyZ2luLXJpZ2h0IHRvIG1hcmdpbi1sZWZ0IGZvciBkZWZhdWx0c1xuQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcge1xuICAkYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xufVxuXG4vLy8gdHJhbnNpdGlvbnMgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy8gVE9ETzogRG9jdW1lbnQgYnV0dG9uLWJhc2UoKSBtaXhpblxuQG1peGluIGJ1dHRvbi1iYXNlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG4gIGZvbnQtZmFtaWx5OiAkYnV0dG9uLWZvbnQtZmFtaWx5O1xuXG4gIEBpZiAodHlwZS1vZigkYnV0dG9uLXBhZGRpbmcpID09ICdtYXAnKSB7XG4gICAgQGVhY2ggJHNpemUsICRwYWRkaW5nIGluICRidXR0b24tcGFkZGluZyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgcGFkZGluZzogJGJ1dHRvbi1wYWRkaW5nO1xuICB9XG5cbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gIHRyYW5zaXRpb246ICRidXR0b24tdHJhbnNpdGlvbjtcblxuICBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCk7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLy8vIEV4cGFuZHMgYSBidXR0b24gdG8gbWFrZSBpdCBmdWxsLXdpZHRoLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGV4cGFuZCBbdHJ1ZV0gLSBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSB0aGUgZXhwYW5kIGJlaGF2aW9yLiBTZXQgdG8gYGZhbHNlYCB0byByZXZlcnNlIHRoaXMgYmVoYXZpb3IuXG5AbWl4aW4gYnV0dG9uLWV4cGFuZCgkZXhwYW5kOiB0cnVlKSB7XG4gIEBpZiAkZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgc3R5bGUgb2YgYSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGJ1dHRvbi1zdHlsZShcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yLFxuICAkYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6ICRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3Ncbikge1xuICBAaWYgJGNvbG9yID09IGF1dG8ge1xuICAgICRjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkYmFja2dyb3VuZCwgKCRidXR0b24tY29sb3IsICRidXR0b24tY29sb3ItYWx0KSk7XG4gIH1cblxuICBAaWYgJGJhY2tncm91bmQtaG92ZXIgPT0gYXV0byB7XG4gICAgJGJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRiYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAkYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3MpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gUmVtb3ZlcyBiYWNrZ3JvdW5kIGZpbGwgb24gaG92ZXIgYW5kIGZvY3VzIGZvciBob2xsb3cgYnV0dG9ucy5cbkBtaXhpbiBidXR0b24taG9sbG93IHtcbiAgJixcbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAmLmRpc2FibGVkLFxuICAmW2Rpc2FibGVkXSB7XG4gICAgJixcbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYnV0dG9uLWhvbGxvdy1zdHlsZShcbiAgJGNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRob3Zlci1saWdodG5lc3M6ICRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzcyxcbiAgJGJvcmRlci13aWR0aDogJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoXG4pIHtcbiAgJGNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRob3Zlci1saWdodG5lc3MpO1xuXG4gIGJvcmRlcjogJGJvcmRlci13aWR0aCBzb2xpZCAkY29sb3I7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgICAmLmRpc2FibGVkLFxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIGJvcmRlcjogJGJvcmRlci13aWR0aCBzb2xpZCAkY29sb3I7XG4gICAgICBjb2xvcjogJGNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBkaXNhYmxlZCBzdHlsZXMgdG8gYSBidXR0b24gYnkgZmFkaW5nIHRoZSBlbGVtZW50LCByZXNldGluZyB0aGUgY3Vyc29yLCBhbmQgZGlzYWJsaW5nIHBvaW50ZXIgZXZlbnRzLlxuLy8vIEBwYXJhbSBbQ29sb3JdICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgZGlzYWJsZWQgYnV0dG9uLlxuLy8vIEBwYXJhbSBbQ29sb3JdICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBkaXNhYmxlZCBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGJ1dHRvbi1kaXNhYmxlZChcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yXG4pIHtcbiAgQGlmICRjb2xvciA9PSBhdXRvIHtcbiAgICAkY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGJhY2tncm91bmQsICgkYnV0dG9uLWNvbG9yLCAkYnV0dG9uLWNvbG9yLWFsdCkpO1xuICB9XG5cbiAgb3BhY2l0eTogJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICYsICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkcm9wZG93biBhcnJvdyB0byBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgWzAuNGVtXSAtIFNpemUgb2YgdGhlIGFycm93LiBXZSByZWNvbW1lbmQgdXNpbmcgYW4gYGVtYCB2YWx1ZSBzbyB0aGUgdHJpYW5nbGUgc2NhbGVzIHdoZW4gdXNlZCBpbnNpZGUgZGlmZmVyZW50IHNpemVzIG9mIGJ1dHRvbnMuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFt3aGl0ZV0gLSBDb2xvciBvZiB0aGUgYXJyb3cuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvZmZzZXQgWyRidXR0b24tcGFkZGluZ10gLSBEaXN0YW5jZSBiZXR3ZWVuIHRoZSBhcnJvdyBhbmQgdGhlIHRleHQgb2YgdGhlIGJ1dHRvbi4gRGVmYXVsdHMgdG8gd2hhdGV2ZXIgdGhlIHJpZ2h0IHBhZGRpbmcgb2YgYSBidXR0b24gaXMuXG5AbWl4aW4gYnV0dG9uLWRyb3Bkb3duKFxuICAkc2l6ZTogMC40ZW0sXG4gICRjb2xvcjogJHdoaXRlLFxuICAkb2Zmc2V0OiBnZXQtc2lkZSgkYnV0dG9uLXBhZGRpbmcsIHJpZ2h0KVxuKSB7XG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHNpemUsICRjb2xvciwgZG93bik7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC40ZW07IC8vIEFsaWducyB0aGUgYXJyb3cgd2l0aCB0aGUgdGV4dCBvZiB0aGUgYnV0dG9uXG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6ICN7JGdsb2JhbC1yaWdodH07XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJG9mZnNldDtcbiAgfVxufVxuXG4vLy8gQWRkcyBhbGwgc3R5bGVzIGZvciBhIGJ1dHRvbi4gRm9yIG1vcmUgZ3JhbnVsYXIgY29udHJvbCBvdmVyIHN0eWxlcywgdXNlIHRoZSBpbmRpdmlkdWFsIGJ1dHRvbiBtaXhpbnMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZXhwYW5kIFtmYWxzZV0gLSBTZXQgdG8gYHRydWVgIHRvIG1ha2UgdGhlIGJ1dHRvbiBmdWxsLXdpZHRoLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uIG9uIGhvdmVyLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBob3ZlciBjb2xvci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdHlsZSBbc29saWRdIC0gU2V0IHRvIGBob2xsb3dgIHRvIGNyZWF0ZSBhIGhvbGxvdyBidXR0b24uIFRoZSBjb2xvciBkZWZpbmVkIGluIGAkYmFja2dyb3VuZGAgd2lsbCBiZSB1c2VkIGFzIHRoZSBwcmltYXJ5IGNvbG9yIG9mIHRoZSBidXR0b24uXG5AbWl4aW4gYnV0dG9uKFxuICAkZXhwYW5kOiBmYWxzZSxcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yLFxuICAkc3R5bGU6ICRidXR0b24tZmlsbFxuKSB7XG4gIEBpbmNsdWRlIGJ1dHRvbi1iYXNlO1xuXG4gIEBpZiAkc3R5bGUgPT0gc29saWQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmFja2dyb3VuZCwgJGJhY2tncm91bmQtaG92ZXIsICRjb2xvcik7XG4gIH1cbiAgQGVsc2UgaWYgJHN0eWxlID09IGhvbGxvdyB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRiYWNrZ3JvdW5kKTtcbiAgfVxuXG4gIEBpZiAkZXhwYW5kIHtcbiAgICBAaW5jbHVkZSBidXR0b24tZXhwYW5kO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJ1dHRvbiB7XG4gIC5idXR0b24ge1xuICAgIEBpbmNsdWRlIGJ1dHRvbjtcblxuICAgIC8vIFNpemVzXG4gICAgQGVhY2ggJHNpemUsICR2YWx1ZSBpbiBtYXAtcmVtb3ZlKCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpIHtcbiAgICAgICYuI3skc2l6ZX0ge1xuICAgICAgICBmb250LXNpemU6ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmV4cGFuZGVkIHsgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDsgfVxuXG4gICAgLy8gQ29sb3JzXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgQGlmICRidXR0b24tZmlsbCAhPSBob2xsb3cge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGNvbG9yLCBhdXRvLCBhdXRvKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLiN7JG5hbWV9LmRyb3Bkb3duOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQgc3R5bGVcbiAgICAmLmRpc2FibGVkLFxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kaXNhYmxlZDtcblxuICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZGlzYWJsZWQoJGNvbG9yLCBhdXRvKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEhvbGxvdyBzdHlsZVxuICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcbiAgICAgICYuaG9sbG93IHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZTtcblxuICAgICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ2xlYXIgc3R5bGVcbiAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGNsZWFyIHtcbiAgICAgICYuY2xlYXIge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlO1xuXG4gICAgICAgICYsICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICAgICYsICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuXG4gICAgICAgICAgICAmLCAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICYsXG4gICAgICAgICAgICAgICYuZGlzYWJsZWQsXG4gICAgICAgICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRHJvcGRvd24gYXJyb3dcbiAgICAmLmRyb3Bkb3duIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kcm9wZG93bjtcblxuICAgICAgQGlmICRidXR0b24tZmlsbCA9PSBob2xsb3cge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuaG9sbG93IHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRidXR0b24tYmFja2dyb3VuZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJ1dHRvbiB3aXRoIGRyb3Bkb3duIGFycm93IG9ubHlcbiAgICAmLmFycm93LW9ubHk6OmFmdGVyIHtcbiAgICAgIHRvcDogLTAuMWVtO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgIH1cbiAgfVxuICBhLmJ1dHRvbiB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBGb250IGNvbG9yIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3Igb2YgcGxhY2Vob2xkZXIgdGV4dCB3aXRoaW4gdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgRm9udFxuJGlucHV0LWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGlucHV0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGZvY3VzZWQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGRpc2FibGVkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgZm9jdXNlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDIgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IGluc2lkZSB0ZXh0IGlucHV0cyB3aGVuIG5vdCBmb2N1c2VkLlxuLy8vIEB0eXBlIFNoYWRvd1xuJGlucHV0LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAwLjEpICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBvdXRzaWRlIHRleHQgaW5wdXRzIHdoZW4gZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3ctZm9jdXM6IDAgMCA1cHggJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ3Vyc29yIHRvIHVzZSB3aGVuIGhvdmVyaW5nIG92ZXIgYSBkaXNhYmxlZCB0ZXh0IGlucHV0LlxuLy8vIEB0eXBlIEN1cnNvclxuJGlucHV0LWN1cnNvci1kaXNhYmxlZDogbm90LWFsbG93ZWQgIWRlZmF1bHQ7XG5cbi8vLyBQcm9wZXJ0aWVzIHRvIHRyYW5zaXRpb24gb24gdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJGlucHV0LXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyB0aGUgdXAvZG93biBidXR0b25zIHRoYXQgQ2hyb21lIGFuZCBGaXJlZm94IGFkZCB0byBgPGlucHV0IHR5cGU9J251bWJlcic+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kaW5wdXQtbnVtYmVyLXNwaW5uZXJzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gUmFkaXVzIGZvciB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgZm9ybSBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1lbGVtZW50IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKiB1bml0bGVzcy1jYWxjKCRpbnB1dC1saW5lLWhlaWdodCkpICsgKGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAndG9wJykgKyBnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ2JvdHRvbScpKSAtIHJlbS1jYWxjKDEpO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAkaW5wdXQtcGFkZGluZztcblxuICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRpbnB1dC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93O1xuXG4gIGZvbnQtZmFtaWx5OiAkaW5wdXQtZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRpbnB1dC1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1jb2xvcjtcblxuICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gIH1cblxuICAvLyBGb2N1cyBzdGF0ZVxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci1mb2N1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1mb2N1cztcbiAgICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93LWZvY3VzO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tdGV4dCB7XG4gIC8vIFRleHQgaW5wdXRzXG4gICN7dGV4dC1pbnB1dHMoKX0sXG4gIHRleHRhcmVhIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVsZW1lbnQ7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8vIFRleHQgYXJlYXNcbiAgdGV4dGFyZWEge1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICZbcm93c10ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIGlucHV0LFxuICB0ZXh0YXJlYSB7XG4gICAgLy8gUGxhY2Vob2xkZXIgdGV4dFxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAkaW5wdXQtcGxhY2Vob2xkZXItY29sb3I7XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQvcmVhZG9ubHkgc3RhdGVcbiAgICAmOmRpc2FibGVkLFxuICAgICZbcmVhZG9ubHldIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkO1xuICAgICAgY3Vyc29yOiAkaW5wdXQtY3Vyc29yLWRpc2FibGVkO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IHN0eWxlcyBvbiBidXR0b24tbGlrZSBpbnB1dHNcbiAgW3R5cGU9J3N1Ym1pdCddLFxuICBbdHlwZT0nYnV0dG9uJ10ge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogJGZvcm0tYnV0dG9uLXJhZGl1cztcbiAgfVxuXG4gIC8vIFJlc2V0IE5vcm1hbGl6ZSBzZXR0aW5nIGNvbnRlbnQtYm94IHRvIHNlYXJjaCBlbGVtZW50c1xuICBpbnB1dFt0eXBlPSdzZWFyY2gnXSB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAvLyBOdW1iZXIgaW5wdXQgc3R5bGVzXG4gIFt0eXBlPSdudW1iZXInXSB7XG4gICAgQGlmIG5vdCAkaW5wdXQtbnVtYmVyLXNwaW5uZXJzIHtcbiAgICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhcblxuICAgICAgJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICAgICY6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeFxuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWNoZWNrYm94IHtcbiAgW3R5cGU9J2ZpbGUnXSxcbiAgW3R5cGU9J2NoZWNrYm94J10sXG4gIFt0eXBlPSdyYWRpbyddIHtcbiAgICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICB9XG5cbiAgLy8gU3R5bGVzIGZvciBpbnB1dC9sYWJlbCBzaWJsaW5nc1xuICBbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsLFxuICBbdHlwZT0ncmFkaW8nXSArIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuXG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgJltmb3JdIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAvLyBTdHlsZXMgZm9yIGlucHV0cyBpbnNpZGUgbGFiZWxzXG4gIGxhYmVsID4gW3R5cGU9J2NoZWNrYm94J10sXG4gIGxhYmVsID4gW3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICB9XG5cbiAgLy8gTm9ybWFsaXplIGZpbGUgaW5wdXQgd2lkdGhcbiAgW3R5cGU9J2ZpbGUnXSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBDb2xvciBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IGZvciBmb3JtIGxhYmVscy4gVGhlIGhpZ2hlciB0aGUgbnVtYmVyLCB0aGUgbW9yZSBzcGFjZSBiZXR3ZWVuIHRoZSBsYWJlbCBhbmQgaXRzIGlucHV0IGZpZWxkLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuOCAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuXG4gIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkZm9ybS1sYWJlbC1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yO1xufVxuXG5AbWl4aW4gZm9ybS1sYWJlbC1taWRkbGUge1xuICAkaW5wdXQtYm9yZGVyLXdpZHRoOiBnZXQtYm9yZGVyLXZhbHVlKCRpbnB1dC1ib3JkZXIsIHdpZHRoKTtcblxuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAoJGZvcm0tc3BhY2luZyAvIDIgKyByZW0tY2FsYygkaW5wdXQtYm9yZGVyLXdpZHRoKSkgMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1sYWJlbCB7XG4gIGxhYmVsIHtcbiAgICBAaW5jbHVkZSBmb3JtLWxhYmVsO1xuXG4gICAgJi5taWRkbGUge1xuICAgICAgQGluY2x1ZGUgZm9ybS1sYWJlbC1taWRkbGU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIENvbG9yXG4kaGVscHRleHQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVscHRleHQtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc3R5bGUgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaGVscHRleHQtZm9udC1zdHlsZTogaXRhbGljICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWhlbHB0ZXh0IHtcbiAgLmhlbHAtdGV4dCB7XG4gICAgJG1hcmdpbi10b3A6ICgkZm9ybS1zcGFjaW5nICogMC41KSAqIC0xO1xuXG4gICAgbWFyZ2luLXRvcDogJG1hcmdpbi10b3A7XG4gICAgZm9udC1zaXplOiAkaGVscHRleHQtZm9udC1zaXplO1xuICAgIGZvbnQtc3R5bGU6ICRoZWxwdGV4dC1mb250LXN0eWxlO1xuICAgIGNvbG9yOiAkaGVscHRleHQtY29sb3I7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBDb2xvciBvZiBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wcmVmaXgtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcHJlZml4LWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtcHJlZml4LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIExlZnQvcmlnaHQgcGFkZGluZyBvZiBhbiBwcmUvcG9zdGZpeGVkIGlucHV0IGxhYmVsXG4kaW5wdXQtcHJlZml4LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tcHJlcG9zdGZpeCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgJGZvcm0tc3BhY2luZyAqIDEuNSk7XG5cbiAgLmlucHV0LWdyb3VwIHtcbiAgICBkaXNwbGF5OiBpZigkZ2xvYmFsLWZsZXhib3gsIGZsZXgsIHRhYmxlKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICB9XG5cbiAgICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmFkaXVzOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgMCAkaW5wdXQtcmFkaXVzICRpbnB1dC1yYWRpdXMgMCwgJGlucHV0LXJhZGl1cyAwIDAgJGlucHV0LXJhZGl1cyk7XG4gICAgfVxuXG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICA+ICoge1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgJGlucHV0LXJhZGl1cyAwIDAgJGlucHV0LXJhZGl1cywgMCAkaW5wdXQtcmFkaXVzICRpbnB1dC1yYWRpdXMgMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJWlucHV0LWdyb3VwLWNoaWxkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1sYWJlbCB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgcGFkZGluZzogMCAkaW5wdXQtcHJlZml4LXBhZGRpbmc7XG4gICAgYm9yZGVyOiAkaW5wdXQtcHJlZml4LWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kOiAkaW5wdXQtcHJlZml4LWJhY2tncm91bmQ7XG5cbiAgICBjb2xvcjogJGlucHV0LXByZWZpeC1jb2xvcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDElO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXByZWZpeC1ib3JkZXIpIHtcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtZmllbGQge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDElO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIGEsXG4gICAgaW5wdXQsXG4gICAgYnV0dG9uLFxuICAgIGxhYmVsIHtcbiAgICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuXG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgICB9XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNwZWNpZmljaXR5IGJ1bXAgbmVlZGVkIHRvIHByZXZlbnQgb3ZlcnJpZGUgYnkgYnV0dG9uc1xuICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIERlZmF1bHQgYm9yZGVyIGFyb3VuZCBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGZpZWxkc2V0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmaWVsZHNldC1wYWRkaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBhcm91bmQgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGJldHdlZW4gdGhlIGxlZ2VuZCB0ZXh0IGFuZCBmaWVsZHNldCBib3JkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMykgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmaWVsZHNldCB7XG4gIG1hcmdpbjogJGZpZWxkc2V0LW1hcmdpbjtcbiAgcGFkZGluZzogJGZpZWxkc2V0LXBhZGRpbmc7XG4gIGJvcmRlcjogJGZpZWxkc2V0LWJvcmRlcjtcblxuICBsZWdlbmQge1xuICAgIC8vIENvdmVycyB1cCB0aGUgZmllbGRzZXQncyBib3JkZXIgdG8gY3JlYXRlIGFydGlmaWNpYWwgcGFkZGluZ1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiByZW0tY2FsYygtMyk7XG4gICAgcGFkZGluZzogJGxlZ2VuZC1wYWRkaW5nO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tZmllbGRzZXQge1xuICBmaWVsZHNldCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICB9XG5cbiAgbGVnZW5kIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgfVxuXG4gIC5maWVsZHNldCB7XG4gICAgQGluY2x1ZGUgZmllbGRzZXQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBzZWxlY3QgbWVudXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGhlIGRyb3Bkb3duIHRyaWFuZ2xlIGluc2lkZSBzZWxlY3QgbWVudXMuIFNldCB0byBgdHJhbnNwYXJlbnRgIHRvIHJlbW92ZSBpdCBlbnRpcmVseS5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC10cmlhbmdsZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBzZWxlY3QgbWVudXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tc2VsZWN0IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKiB1bml0bGVzcy1jYWxjKCRpbnB1dC1saW5lLWhlaWdodCkpICsgKGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAndG9wJykgKyBnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ2JvdHRvbScpKSAtIHJlbS1jYWxjKDEpO1xuXG4gIGhlaWdodDogJGhlaWdodDtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgcGFkZGluZzogJGlucHV0LXBhZGRpbmc7XG5cbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkc2VsZWN0LXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1iYWNrZ3JvdW5kO1xuXG4gIGZvbnQtZmFtaWx5OiAkaW5wdXQtZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRpbnB1dC1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1jb2xvcjtcblxuICBAaWYgJHNlbGVjdC10cmlhbmdsZS1jb2xvciAhPSB0cmFuc3BhcmVudCB7XG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC10cmlhbmdsZSgkc2VsZWN0LXRyaWFuZ2xlLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLW9yaWdpbjogY29udGVudC1ib3g7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogJGdsb2JhbC1yaWdodCAoLSRmb3JtLXNwYWNpbmcpIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogOXB4IDZweDtcblxuICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogKCRmb3JtLXNwYWNpbmcgKiAxLjUpO1xuICB9XG5cbiAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICB9XG5cbiAgLy8gRm9jdXMgc3RhdGVcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6ICRpbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZm9jdXM7XG4gICAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdy1mb2N1cztcblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICAgIH1cbiAgfVxuXG4gIC8vIERpc2FibGVkIHN0YXRlXG4gICY6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkO1xuICAgIGN1cnNvcjogJGlucHV0LWN1cnNvci1kaXNhYmxlZDtcbiAgfVxuXG4gIC8vIEhpZGUgdGhlIGRyb3Bkb3duIGFycm93IHNob3duIGluIG5ld2VyIElFIHZlcnNpb25zXG4gICY6Oi1tcy1leHBhbmQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmW211bHRpcGxlXSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1zZWxlY3Qge1xuICBzZWxlY3Qge1xuICAgIEBpbmNsdWRlIGZvcm0tc2VsZWN0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBhYmlkZVxuLy8vL1xuXG4vLy8gU2V0cyBpZiBlcnJvciBzdHlsZXMgc2hvdWxkIGJlIGFkZGVkIHRvIGlucHV0cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWJpZGUtaW5wdXRzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBpZiBlcnJvciBzdHlsZXMgc2hvdWxkIGJlIGFkZGVkIHRvIGxhYmVscy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWJpZGUtbGFiZWxzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciB0byB1c2UgZm9yIGludmFsaWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB0byB1c2UgZm9yIGxhYmVscyBvZiBpbnZhbGlkIGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtZXJyb3ItY29sb3I6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIE51bWJlclxuJGlucHV0LWVycm9yLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIEtleXdvcmRcbiRpbnB1dC1lcnJvci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8vIFN0eWxlcyB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVyIG9mIGFuIGlucHV0IGZpZWxkIHRvIGhhdmUgYW4gZXJyb3Igc3RhdGUuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGFsZXJ0LWNvbG9yXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhY2tncm91bmQtbGlnaHRlbiBbMTAlXSAtIExpZ2h0bmVzcyBsZXZlbCBvZiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbkBtaXhpbiBmb3JtLWlucHV0LWVycm9yKFxuICAkYmFja2dyb3VuZDogJGlucHV0LWJhY2tncm91bmQtaW52YWxpZCxcbiAgJGJhY2tncm91bmQtbGlnaHRlbjogMTAlXG4pIHtcbiAgJjpub3QoOmZvY3VzKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtaXgoJGJhY2tncm91bmQsICR3aGl0ZSwgJGJhY2tncm91bmQtbGlnaHRlbik7XG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBlcnJvciBzdHlsZXMgdG8gYSBmb3JtIGVsZW1lbnQsIHVzaW5nIHRoZSB2YWx1ZXMgaW4gdGhlIHNldHRpbmdzIGZpbGUuXG5AbWl4aW4gZm9ybS1lcnJvciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbi10b3A6ICRmb3JtLXNwYWNpbmcgKiAtMC41O1xuICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuXG4gIGZvbnQtc2l6ZTogJGlucHV0LWVycm9yLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1lcnJvci1mb250LXdlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1lcnJvci1jb2xvcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1lcnJvciB7XG4gIEBpZiAkYWJpZGUtaW5wdXRzIHtcbiAgICAvLyBFcnJvciBjbGFzcyBmb3IgaW52YWxpZCBpbnB1dHNcbiAgICAuaXMtaW52YWxpZC1pbnB1dCB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWlucHV0LWVycm9yO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkYWJpZGUtbGFiZWxzIHtcbiAgICAvLyBFcnJvciBjbGFzcyBmb3IgbGFiZWxzIG9mIGludmFsaWQgb3V0cHV0c1xuICAgIC5pcy1pbnZhbGlkLWxhYmVsIHtcbiAgICAgIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZvcm0gZXJyb3IgZWxlbWVudFxuICAuZm9ybS1lcnJvciB7XG4gICAgQGluY2x1ZGUgZm9ybS1lcnJvcjtcblxuICAgICYuaXMtdmlzaWJsZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGFjY29yZGlvblxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjY29yZGlvbiBncm91cC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGFkZHMgcGx1cyBhbmQgbWludXMgaWNvbnMgdG8gdGhlIHNpZGUgb2YgZWFjaCBhY2NvcmRpb24gdGl0bGUuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFjY29yZGlvbi1wbHVzbWludXM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgYWNjb3JkaW9uIHRpdGxlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb24tdGl0bGUtZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGl0ZW1zIGluIGEgTWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgaXRlbXMgaW4gYSBNZW51LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgb2YgYW4gYWNjb3JkaW9uIGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGFjY29yZGlvbi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gYWNjb3JkaW9uIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byB0aGUgc2FtZSBlbGVtZW50IHRoYXQgZ2V0cyBgZGF0YS1hY2NvcmRpb25gLlxuQG1peGluIGFjY29yZGlvbi1jb250YWluZXIgKFxuICAkYmFja2dyb3VuZDogJGFjY29yZGlvbi1iYWNrZ3JvdW5kXG4pIHtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgJltkaXNhYmxlZF0ge1xuICAgIC5hY2NvcmRpb24tdGl0bGUge1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYWNjb3JkaW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gdGhlIGxpc3QgaXRlbSB3aXRoaW4gYW4gYWNjb3JkaW9uIHVsLlxuQG1peGluIGFjY29yZGlvbi1pdGVtIHtcbiAgJjpmaXJzdC1jaGlsZCA+IDpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXMgMCAwO1xuICB9XG5cbiAgJjpsYXN0LWNoaWxkID4gOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cztcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSB0aXRsZSBvZiBhbiBhY2NvcmRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byB0aGUgbGluayB3aXRoaW4gYW4gYWNjb3JkaW9uIGl0ZW0uXG5AbWl4aW4gYWNjb3JkaW9uLXRpdGxlIChcbiAgJHBhZGRpbmc6ICRhY2NvcmRpb24taXRlbS1wYWRkaW5nLFxuICAkZm9udC1zaXplOiAkYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZSxcbiAgJGNvbG9yOiAkYWNjb3JkaW9uLWl0ZW0tY29sb3IsXG4gICRib3JkZXI6ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXIsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlclxuKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gIGJvcmRlcjogJGJvcmRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcblxuICBmb250LXNpemU6ICRmb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogJGNvbG9yO1xuXG4gIDpsYXN0LWNoaWxkOm5vdCguaXMtYWN0aXZlKSA+ICYge1xuICAgIGJvcmRlci1ib3R0b206ICRib3JkZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtaG92ZXI7XG4gIH1cblxuICBAaWYgJGFjY29yZGlvbi1wbHVzbWludXMge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gICAgICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICAgICAgY29udGVudDogJysnO1xuICAgIH1cblxuICAgIC5pcy1hY3RpdmUgPiAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ1xcMjAxMyc7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYWNjb3JkaW9uIGNvbnRlbnQuIEFwcGx5IHRoaXMgdG8gdGhlIGNvbnRlbnQgcGFuZSBiZWxvdyBhbiBhY2NvcmRpb24gaXRlbSdzIHRpdGxlLlxuQG1peGluIGFjY29yZGlvbi1jb250ZW50IChcbiAgJHBhZGRpbmc6ICRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nLFxuICAkYm9yZGVyOiAkYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyLFxuICAkYmFja2dyb3VuZDogJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQsXG4gICRjb2xvcjogJGFjY29yZGlvbi1jb250ZW50LWNvbG9yXG4pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcblxuICBjb2xvcjogJGNvbG9yO1xuXG4gIDpsYXN0LWNoaWxkID4gJjpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiAkYm9yZGVyO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWFjY29yZGlvbiB7XG4gIC5hY2NvcmRpb24ge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1jb250YWluZXI7XG4gIH1cblxuICAuYWNjb3JkaW9uLWl0ZW0ge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1pdGVtO1xuICB9XG5cbiAgLmFjY29yZGlvbi10aXRsZSB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLXRpdGxlO1xuICB9XG5cbiAgLmFjY29yZGlvbi1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tY29udGVudDtcbiAgfVxufVxuIiwiLy8vL1xuLy8vIEBncm91cCBhY2NvcmRpb24tbWVudVxuLy8vL1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBwYWRkaW5nLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IG5lc3RlZCBtYXJnaW5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb25tZW51LW5lc3RlZC1tYXJnaW46ICRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBzdWJtZW51IHBhZGRpbmcuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXBhZGRpbmc6ICRhY2NvcmRpb25tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGlmIGFjY29yZGlvbiBtZW51cyBoYXZlIHRoZSBkZWZhdWx0IGFycm93IHN0eWxlcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWNjb3JkaW9ubWVudS1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgaXRlbSBwYWRkaW5nLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9ubWVudS1pdGVtLWJhY2tncm91bmQ6IG51bGwgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGl0ZW0gYm9yZGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9ubWVudS1ib3JkZXI6IG51bGwgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGl0ZW0gcGFkZGluZy5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtYmFja2dyb3VuZDogbnVsbCAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgaXRlbSBwYWRkaW5nLlxuLy8vIEB0eXBlIExpc3RcbiRhY2NvcmRpb24tc3VibWVudS10b2dnbGUtYm9yZGVyOiAkYWNjb3JkaW9ubWVudS1ib3JkZXIgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IHN1Ym1lbnUgdG9nZ2xlIGJhY2tncm91bmQgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDogNDBweCAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgc3VibWVudSB0b2dnbGUgYmFja2dyb3VuZCBoZWlnaHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1oZWlnaHQ6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBhcnJvdyBzaXplIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplOiA2cHggIWRlZmF1bHQ7XG5cbkBtaXhpbiB6Zi1hY2NvcmRpb24tbWVudS1sZWZ0LXJpZ2h0LWFycm93cyB7XG4gIC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQ6bm90KC5oYXMtc3VibWVudS10b2dnbGUpID4gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRhY2NvcmRpb25tZW51LWFycm93LXNpemUsICRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yLCBkb3duKTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbWFyZ2luLXRvcDogLTEgKiAoJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZSAvIDIpO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICB9XG4gIH1cbiAgJi5hbGlnbi1sZWZ0IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMXJlbTtcbiAgfVxuICAmLmFsaWduLXJpZ2h0IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMXJlbTtcbiAgfVxufVxuQG1peGluIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnUge1xuXG4gIC5hY2NvcmRpb24tbWVudSB7XG4gICAgQGlmICRhY2NvcmRpb25tZW51LWJvcmRlciB7XG4gICAgICBib3JkZXItYm90dG9tOiAkYWNjb3JkaW9ubWVudS1ib3JkZXI7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgQGlmICRhY2NvcmRpb25tZW51LWJvcmRlciB7XG4gICAgICAgIGJvcmRlci10b3A6ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAkYWNjb3JkaW9ubWVudS1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkYWNjb3JkaW9ubWVudS1ib3JkZXI7XG4gICAgICB9XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIEBpZiAkYWNjb3JkaW9ubWVudS1pdGVtLWJhY2tncm91bmQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYWNjb3JkaW9ubWVudS1pdGVtLWJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgICBwYWRkaW5nOiAkYWNjb3JkaW9ubWVudS1wYWRkaW5nO1xuICAgIH1cbiAgICBcbiAgICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUgYSB7XG4gICAgICBwYWRkaW5nOiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLm5lc3RlZC5pcy1hY2NvcmRpb24tc3VibWVudSB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luKTtcbiAgICB9XG5cbiAgICAmLmFsaWduLSN7JGdsb2JhbC1yaWdodH0ge1xuICAgICAgLm5lc3RlZC5pcy1hY2NvcmRpb24tc3VibWVudSB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRhY2NvcmRpb25tZW51LW5lc3RlZC1tYXJnaW4sIHJpZ2h0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGFjY29yZGlvbm1lbnUtYXJyb3dzIHtcbiAgICAgIEBpbmNsdWRlIHpmLWFjY29yZGlvbi1tZW51LWxlZnQtcmlnaHQtYXJyb3dzO1xuXG4gICAgICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50W2FyaWEtZXhwYW5kZWQ9J3RydWUnXSA+IGE6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUgbGkge1xuICAgIEBpZiAkYWNjb3JkaW9ubWVudS1ib3JkZXIge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLmhhcy1zdWJtZW51LXRvZ2dsZSA+IGEge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDtcbiAgfVxuXG4gIC8vIFN1Ym1lbnUgdG9nZ2xlXG4gIC5zdWJtZW51LXRvZ2dsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIHdpZHRoOiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDtcbiAgICBoZWlnaHQ6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWhlaWdodDtcblxuICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06ICRhY2NvcmRpb24tc3VibWVudS10b2dnbGUtYm9yZGVyO1xuXG4gICAgQGlmICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZDogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAvLyBBZGQgdGhlIGFycm93IHRvIHRoZSB0b2dnbGVcbiAgICAmOjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoNnB4LCAkYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG5cbiAgICAgIHRvcDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIG1hcmdpbjogYXV0bztcbiAgICB9XG4gIH1cblxuICAvLyBSb3RhdGUgdGhlIGFycm93IHdoZW4gbWVudSBpcyBvcGVuXG4gIC5zdWJtZW51LXRvZ2dsZVthcmlhLWV4cGFuZGVkPSd0cnVlJ106OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgtMSk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgfVxuXG4gIC5zdWJtZW51LXRvZ2dsZS10ZXh0IHtcbiAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbWVudVxuLy8vL1xuXG4vLy8gTWFyZ2luIG9mIGEgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LW1hcmdpbjogMCAhZGVmYXVsdDtcblxuLy8vIExlZnQtaGFuZCBtYXJnaW4gb2YgYSBuZXN0ZWQgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LW5lc3RlZC1tYXJnaW46ICRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgaXRlbXMgaW4gYSBwaWxsIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1pdGVtcy1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIG1hcmdpbiBmb3IgaXRlbXMgaW4gYSBzaW1wbGUgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LXNpbXBsZS1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tY29sb3ItYWN0aXZlOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBhbiBpY29uIGFuZCB0ZXh0IGluIGEgbWVudSBpdGVtLlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaWNvbi1zcGFjaW5nOiAwLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgYW4gaG92ZXJlZCBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBtZW51IHN0YXRlLiBJZiB0cnVlLCB0aGlzIGR1cGxpY2F0ZSBgYWN0aXZlYCB3aXRoIGBpcy1hY3RpdmVgLiBcbi8vLyBCdXQgcGxlYXNlIG5vdGUgdGhhdCBgYWN0aXZlYCB3aWxsIGJlIHJlbW92ZWQgaW4gdXBjb21pbmcgdmVyc2lvbnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJG1lbnUtc3RhdGUtYmFjay1jb21wYXQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBtZW51IGNlbnRlcmVkLiBJZiB0cnVlLCB0aGlzIGR1cGxpY2F0ZSBgLm1lbnUtY2VudGVyZWQgPiAubWVudWAgd2l0aCBgLm1lbnUuYWxpZ24tY2VudGVyYC4gXG4vLy8gQnV0IHBsZWFzZSBub3RlIHRoYXQgYG1lbnUtY2VudGVyZWRgIHdpbGwgYmUgcmVtb3ZlZCBpbiB1cGNvbWluZyB2ZXJzaW9ucy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kbWVudS1jZW50ZXJlZC1iYWNrLWNvbXBhdDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIHVzaW5nIGBpY29uLSpgIGNsYXNzZXMgd2l0aG91dCBgLmljb25zYCBjbGFzc2VzXG4vLy8gQnV0IHBsZWFzZSBub3RlIHRoYXQgdGhpcyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpbGwgYmUgcmVtb3ZlZCBpbiB1cGNvbWluZyB2ZXJzaW9ucy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kbWVudS1pY29ucy1iYWNrLWNvbXBhdDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIENyZWF0ZXMgdGhlIGJhc2Ugc3R5bGVzIGZvciBhIE1lbnUuXG5AbWl4aW4gbWVudS1iYXNlIHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cblxuICBsaSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICB9XG5cbiAgYSxcbiAgLmJ1dHRvbiB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6ICRtZW51LWl0ZW1zLXBhZGRpbmc7XG4gIH1cblxuICAvLyBSZXNldCBzdHlsZXMgb2YgaW5uZXIgZWxlbWVudHNcbiAgaW5wdXQsXG4gIHNlbGVjdCxcbiAgYSxcbiAgYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgaW5wdXQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuXG4vLy8gRXhwYW5kcyB0aGUgaXRlbXMgb2YgYSBNZW51LCBzbyBlYWNoIGl0ZW0gaXMgdGhlIHNhbWUgd2lkdGguXG5AbWl4aW4gbWVudS1leHBhbmQge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBsaSB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICA+IGxpIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWxpZ24gbWVudSBpdGVtcy5cbkBtaXhpbiBtZW51LWFsaWduKCRhbGlnbm1lbnQpIHtcbiAgQGlmICRhbGlnbm1lbnQgPT0gbGVmdCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtbGVmdDtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGFsaWdubWVudCA9PSByaWdodCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLnZlcnRpY2FsIGxpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG5cbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcblxuICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLWxlZnQ7XG4gICAgICB9XG5cbiAgICAgICYudmVydGljYWwge1xuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkYWxpZ25tZW50ID09IGNlbnRlciB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtbGVmdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIGRpcmVjdGlvbiBvZiBhIE1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIFtob3Jpem9udGFsXSAtIERpcmVjdGlvbiBvZiB0aGUgTWVudS4gQ2FuIGJlIGBob3Jpem9udGFsYCBvciBgdmVydGljYWxgLlxuQG1peGluIG1lbnUtZGlyZWN0aW9uKCRkaXI6IGhvcml6b250YWwpIHtcbiAgQGlmICRkaXIgPT0gaG9yaXpvbnRhbCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGRpciA9PSB2ZXJ0aWNhbCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnVGhlIGRpcmVjdGlvbiB1c2VkIGZvciBtZW51LWRpcmVjdGlvbigpIG11c3QgYmUgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4nO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgc2ltcGxlIE1lbnUsIHdoaWNoIGhhcyBubyBwYWRkaW5nIG9yIGhvdmVyIHN0YXRlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbJGdsb2JhbC1sZWZ0XSAtIERpcmVjdGlvbiBvZiB0aGUgbWVudS4gVGhpcyBlZmZlY3RzIHRoZSBzaWRlIG9mIHRoZSBgPGxpPmAgdGhhdCByZWNlaXZlcyB0aGUgbWFyZ2luLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWFyZ2luIFskbWVudS1zaW1wbGUtbWFyZ2luXSAtIFRoZSBtYXJnaW4gdG8gYXBwbHkgdG8gZWFjaCBgPGxpPmAuXG5AbWl4aW4gbWVudS1zaW1wbGUoJGRpcjogJGdsb2JhbC1sZWZ0LCAkbWFyZ2luOiAkbWVudS1zaW1wbGUtbWFyZ2luKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICBsaSArIGxpIHtcbiAgICBtYXJnaW4tI3skZGlyfTogJG1hcmdpbjtcbiAgfVxuXG4gIGEge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG5lc3RlZCBNZW51LCBieSBhZGRpbmcgYG1hcmdpbi1sZWZ0YCB0byB0aGUgbWVudS5cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkbWFyZ2luIFskbWVudS1uZXN0ZWQtbWFyZ2luXSAtIExlbmd0aCBvZiB0aGUgbWFyZ2luLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJG5lc3RlZC1hbGlnbm1lbnQgW2xlZnRdIC0gQWxpZ25tZW50IG9mIHRoZSBuZXN0ZWQgY2xhc3NcbkBtaXhpbiBtZW51LW5lc3RlZChcbiAgJG1hcmdpbjogJG1lbnUtbmVzdGVkLW1hcmdpbixcbiAgJG5lc3RlZC1hbGlnbm1lbnQ6IGxlZnRcbikge1xuICBAaWYgJG5lc3RlZC1hbGlnbm1lbnQgPT0gcmlnaHQge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkbWFyZ2luO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gIH1cbiAgQGVsc2Uge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRtYXJnaW47XG4gIH1cblxufVxuXG4vLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGljb25zIGluIG1lbnVzLlxuQG1peGluIG1lbnUtaWNvbnMoKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGEge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIGltZyxcbiAgICBpLFxuICAgIHN2ZyB7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICArIHNwYW4ge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBwb3NpdGlvbiBjbGFzc2VzIGZvciBpY29ucyB3aXRoaW4gYSBtZW51LlxuQG1peGluIG1lbnUtaWNvbi1wb3NpdGlvbigkcG9zaXRpb246IGxlZnQsICRzcGFjaW5nOiAkbWVudS1pY29uLXNwYWNpbmcpIHtcbiAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG5cbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRzcGFjaW5nO1xuXG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG8gJHNwYWNpbmc7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmc7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogJHNwYWNpbmcgYXV0byAwO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWVudS10ZXh0IHtcbiAgcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG5cbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuQG1peGluIG1lbnUtc3RhdGUtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgY29sb3I6ICRtZW51LWl0ZW0tY29sb3ItYWN0aXZlO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1tZW51IHtcbiAgLm1lbnUge1xuICAgIEBpbmNsdWRlIG1lbnUtYmFzZTtcblxuICAgIC8vIERlZmF1bHQgb3JpZW50YXRpb246IGhvcml6b250YWxcbiAgICAmLCAmLmhvcml6b250YWwge1xuICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgfVxuXG4gICAgLy8gVmVydGljYWwgb3JpZW50YXRpb24gbW9kaWZpZXJcbiAgICAmLnZlcnRpY2FsIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICB9XG5cbiAgICAvLyBFdmVuLXdpZHRoIG1vZGlmaWVyIGZvciBob3Jpem9udGFsIG9yaWVudGF0aW9uXG4gICAgJi5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcbiAgICB9XG5cbiAgICAvLyBTaW1wbGVcbiAgICAmLnNpbXBsZSB7XG4gICAgICBAaW5jbHVkZSBtZW51LXNpbXBsZTtcbiAgICB9XG5cbiAgICAvLyBCcmVha3BvaW50IHNwZWNpZmljIHZlcnNpb25zXG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgkc21hbGw6IGZhbHNlKSB7XG4gICAgICAmLiN7JC16Zi1zaXplfS1ob3Jpem9udGFsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LXZlcnRpY2FsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS1leHBhbmRlZCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS1zaW1wbGUge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBOZXN0aW5nXG4gICAgJi5uZXN0ZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQ7XG4gICAgfVxuXG4gICAgLy8gSWNvbiBCYXNlIFN0eWxlc1xuICAgICYuaWNvbnMge1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29ucztcbiAgICB9XG5cbiAgICAvLyBCYWNrd2FyZCBDb21wYXRpYmlsaXR5IGZvciBhY3RpdmUgc3RhdGVcbiAgICBAaWYgJG1lbnUtaWNvbnMtYmFjay1jb21wYXQge1xuICAgICAgJi5pY29uLXRvcCxcbiAgICAgICYuaWNvbi1yaWdodCxcbiAgICAgICYuaWNvbi1ib3R0b20sXG4gICAgICAmLmljb24tbGVmdCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbnM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWNvbiBMZWZ0XG4gICAgJi5pY29uLWxlZnQge1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKGxlZnQpO1xuICAgIH1cblxuICAgIC8vIEljb24gUmlnaHRcbiAgICAmLmljb24tcmlnaHQge1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKHJpZ2h0KTtcbiAgICB9XG5cbiAgICAvLyBJY29uIFRvcFxuICAgICYuaWNvbi10b3Age1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKHRvcCk7XG4gICAgfVxuXG4gICAgLy8gSWNvbiBCb3R0b21cbiAgICAmLmljb24tYm90dG9tIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbihib3R0b20pO1xuICAgIH1cblxuICAgIC8vIEFjdGl2ZSBzdGF0ZVxuICAgIC5pcy1hY3RpdmUgPiBhIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtc3RhdGUtYWN0aXZlO1xuICAgIH1cbiAgICBcbiAgICAvLyBCYWNrd2FyZCBDb21wYXRpYmlsaXR5IGZvciBhY3RpdmUgc3RhdGVcbiAgICBAaWYgJG1lbnUtc3RhdGUtYmFjay1jb21wYXQge1xuICAgICAgLmFjdGl2ZSA+IGEge1xuICAgICAgICBAaW5jbHVkZSBtZW51LXN0YXRlLWFjdGl2ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbGlnbiBsZWZ0XG4gICAgJi5hbGlnbi0jeyRnbG9iYWwtbGVmdH0ge1xuICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihsZWZ0KTtcbiAgICB9XG5cbiAgICAvLyBBbGlnbiByaWdodFxuICAgICYuYWxpZ24tI3skZ2xvYmFsLXJpZ2h0fSB7XG4gICAgICBAaW5jbHVkZSBtZW51LWFsaWduKHJpZ2h0KTtcblxuICAgICAgLm5lc3RlZCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRuZXN0ZWQtYWxpZ25tZW50OiByaWdodCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gY2VudGVyXG4gICAgJi5hbGlnbi1jZW50ZXIge1xuICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihjZW50ZXIpO1xuICAgIH1cblxuICAgIC5tZW51LXRleHQge1xuICAgICAgQGluY2x1ZGUgbWVudS10ZXh0O1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkbWVudS1jZW50ZXJlZC1iYWNrLWNvbXBhdCB7XG4gICAgLm1lbnUtY2VudGVyZWQge1xuICAgICAgPiAubWVudSB7XG4gICAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBAaW5jbHVkZSBtZW51LWFsaWduKGNlbnRlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUHJldmVudCBGT1VDIHdoZW4gdXNpbmcgdGhlIFJlc3BvbnNpdmUgTWVudSBwbHVnaW5cbiAgLm5vLWpzIFtkYXRhLXJlc3BvbnNpdmUtbWVudV0gdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJhZGdlXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGJhZGdlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJhZGdlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIGZvciBiYWRnZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRiYWRnZS1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQWx0ZXJuYXRlIHRleHQgY29sb3IgZm9yIGJhZGdlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJhZGdlLWNvbG9yLWFsdDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JpbmcgY2xhc3Nlcy4gQSBtYXAgb2YgY2xhc3NlcyB0byBvdXRwdXQgaW4geW91ciBDU1MsIGxpa2UgYC5zZWNvbmRhcnlgLCBgLnN1Y2Nlc3NgLCBhbmQgc28gb24uXG4vLy8gQHR5cGUgTWFwXG4kYmFkZ2UtcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgYmFkZ2VzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJhZGdlLXBhZGRpbmc6IDAuM2VtICFkZWZhdWx0O1xuXG4vLy8gTWluaW11bSB3aWR0aCBvZiBhIGJhZGdlLlxuLy8vIEB0eXBlIE51bWJlclxuJGJhZGdlLW1pbndpZHRoOiAyLjFlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBiYWRnZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYmFkZ2UtZm9udC1zaXplOiAwLjZyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgdGhlIGJhc2Ugc3R5bGVzIGZvciBhIGJhZGdlLlxuQG1peGluIGJhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtaW4td2lkdGg6ICRiYWRnZS1taW53aWR0aDtcbiAgcGFkZGluZzogJGJhZGdlLXBhZGRpbmc7XG5cbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gIGZvbnQtc2l6ZTogJGJhZGdlLWZvbnQtc2l6ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1iYWRnZSB7XG4gIC5iYWRnZSB7XG4gICAgQGluY2x1ZGUgYmFkZ2U7XG5cbiAgICBiYWNrZ3JvdW5kOiAkYmFkZ2UtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGJhZGdlLWNvbG9yO1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYmFkZ2UtcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgICAgICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkY29sb3IsICgkYmFkZ2UtY29sb3IsICRiYWRnZS1jb2xvci1hbHQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJyZWFkY3J1bWJzXG4vLy8vXG5cbi8vLyBNYXJnaW4gYXJvdW5kIGEgYnJlYWRjcnVtYnMgY29udGFpbmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDAgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgYnJlYWRjcnVtYiBsaW5rcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTEpICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYnJlYWRjcnVtYiBsaW5rcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGhlIGFjdGl2ZSBicmVhZGNydW1iIGxpbmsuXG4vLy8gQHR5cGUgQ29sb3JcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIE9wYWNpdHkgb2YgZGlzYWJsZWQgYnJlYWRjcnVtYiBsaW5rcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gYmV0d2VlbiBicmVhZGNydW1iIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luOiAwLjc1cmVtICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBtYWtlcyBicmVhZGNydW1iIGxpbmtzIHVwcGVyY2FzZS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYnJlYWRjcnVtYnMtaXRlbS11cHBlcmNhc2U6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGFkZHMgYSBzZXBlcmF0b3IgYmV0d2VlbiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvcjogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gSWYgaXQgZXhpc3RzICRicmVhZGNydW1icy1pdGVtLXNsYXNoIGlzIHVzZWQgdG8gYnVpbGQgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLiBTZWUgdGhlIGRvY3VtZW50YXRpb24uXG5AaWYgdmFyaWFibGUtZXhpc3RzKGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2gpIHtcbiAgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaDtcbn1cblxuLy8vIFVzZWQgY2hhcmFjdGVyIGZvciB0aGUgYnJlYWRjcnVtYiBzZXBhcmF0b3IuXG4vLy8gQHR5cGUgQ29udGVudFxuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW06ICcvJyAhZGVmYXVsdDtcblxuLy8vIFVzZWQgY2hhcmFjdGVyIGZvciB0aGUgYnJlYWRjcnVtYiBzZXBhcmF0b3IgaW4gcnRsIG1vZGUuXG4vLy8gQHR5cGUgQ29udGVudFxuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW0tcnRsOiAnXFxcXCcgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBicmVhZGNydW1iIGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLyBJZiBpdCBleGlzdHMgJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2gtY29sb3IgaXMgdXNlZCB0byBidWlsZCAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItY29sb3IuIFNlZSB0aGUgZG9jdW1lbnRhdGlvbi5cbkBpZiB2YXJpYWJsZS1leGlzdHMoYnJlYWRjcnVtYnMtaXRlbS1zbGFzaC1jb2xvcikge1xuICAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItY29sb3I6ICRicmVhZGNydW1icy1pdGVtLXNsYXNoLWNvbG9yO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgYnJlYWRjcnVtYnMgY29udGFpbmVyLCBhbG9uZyB3aXRoIHRoZSBzdHlsZXMgZm9yIHRoZSBgPGxpPmAgYW5kIGA8YT5gIGVsZW1lbnRzIGluc2lkZSBvZiBpdC5cbkBtaXhpbiBicmVhZGNydW1icy1jb250YWluZXIge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luOiAkYnJlYWRjcnVtYnMtbWFyZ2luO1xuICBsaXN0LXN0eWxlOiBub25lO1xuXG4gIC8vIEl0ZW0gd3JhcHBlclxuICBsaSB7XG4gICAgZmxvYXQ6ICN7JGdsb2JhbC1sZWZ0fTtcblxuICAgIGZvbnQtc2l6ZTogJGJyZWFkY3J1bWJzLWl0ZW0tZm9udC1zaXplO1xuICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50O1xuICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgIEBpZiAkYnJlYWRjcnVtYnMtaXRlbS11cHBlcmNhc2Uge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG5cbiAgICBAaWYgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yIHtcbiAgICAgIC8vIE5lZWQgdG8gZXNjYXBlIHRoZSBiYWNrc2xhc2hcbiAgICAgICRzZXBhcmF0b3I6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ2x0cicsICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtLCAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbS1ydGwpO1xuXG4gICAgICAmOm5vdCg6bGFzdC1jaGlsZCk6OmFmdGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW46IDAgJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBjb250ZW50OiAkc2VwYXJhdG9yO1xuICAgICAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhZ2UgbGlua3NcbiAgYSB7XG4gICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnJlYWRjcnVtYnMge1xuICAuYnJlYWRjcnVtYnMge1xuICAgIEBpbmNsdWRlIGJyZWFkY3J1bWJzLWNvbnRhaW5lcjtcblxuICAgIC5kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnV0dG9uLWdyb3VwXG4vLy8vXG5cbi8vLyBNYXJnaW4gZm9yIGJ1dHRvbiBncm91cHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uZ3JvdXAtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGJldHdlZW4gYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b25ncm91cC1zcGFjaW5nOiAxcHggIWRlZmF1bHQ7XG5cbi8vLyBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yOiAnLmJ1dHRvbicgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIG51bWJlciBvZiBidXR0b25zIHRoYXQgY2FuIGJlIGluIGFuIGV2ZW4td2lkdGggYnV0dG9uIGdyb3VwLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXg6IDYgIWRlZmF1bHQ7XG5cbi8vLyBEZXRlcm1pbmVzIGlmICRidXR0b24tcmFkaXVzIGlzIGFwcGxpZWQgdG8gZWFjaCBidXR0b24gb3IgdGhlIGJ1dHRvbiBncm91cCBhcyBhIHdob2xlLiBVc2UgJGdsb2JhbC1yYWRpdXMgaW4gX3NldHRpbmdzLnNjc3MgdG8gY2hhbmdlIHJhZGl1cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2g6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBBZGQgc3R5bGVzIGZvciBhIGJ1dHRvbiBncm91cCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRjaGlsZC1zZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzcGFjaW5nIFskYnV0dG9uZ3JvdXAtc3BhY2luZ10gLSBTcGFjaW5nIGJldHdlZW4gYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbkBtaXhpbiBidXR0b24tZ3JvdXAoXG4gICRjaGlsZC1zZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yLFxuICAkc3BhY2luZzogJGJ1dHRvbmdyb3VwLXNwYWNpbmdcbikge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luLWJvdHRvbTogJGJ1dHRvbmdyb3VwLW1hcmdpbjtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICB9XG4gIEBlbHNlIHtcbiAgICBmb250LXNpemU6IDA7XG4gIH1cblxuICAjeyRjaGlsZC1zZWxlY3Rvcn0ge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmc7XG4gICAgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgfVxuXG4gICAgQGlmIG5vdCAkYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2gge1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGZ1bGwtd2lkdGggYnV0dG9uIGdyb3VwLCBtYWtpbmcgZWFjaCBidXR0b24gZXF1YWwgd2lkdGguXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzcGFjaW5nIFskYnV0dG9uZ3JvdXAtc3BhY2luZ10gLSBTcGFjaW5nIGJldHdlZW4gYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbkBtaXhpbiBidXR0b24tZ3JvdXAtZXhwYW5kKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcixcbiAgJHNwYWNpbmc6ICRidXR0b25ncm91cC1zcGFjaW5nLFxuICAkY291bnQ6IG51bGxcbikge1xuICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IC0kc3BhY2luZztcblxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBPbmUgY2hpbGRcbiAgICAgICY6Zmlyc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAvLyBUd28gb3IgbW9yZSBjaGlsZHJlZW5cbiAgICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXgge1xuICAgICAgICAmOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgJiwgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgjeyRpfSkgfiAjeyRzZWxlY3Rvcn0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3twZXJjZW50YWdlKDEgLyAkaSl9IC0gI3skc3BhY2luZ30pO1xuICAgICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nO1xuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmcgKiAtJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBTdGFja3MgdGhlIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgdGhlIGJ1dHRvbiBncm91cC5cbkBtaXhpbiBidXR0b24tZ3JvdXAtc3RhY2soXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXG4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG5cbiAgI3skc2VsZWN0b3J9IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cblxuICAgIEBpZiBub3QgJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICY6Zmlyc3QtY2hpbGR7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxufVxuXG4vLy8gVW4tc3RhY2tzIHRoZSBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIHRoZSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLXVuc3RhY2soXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXG4pIHtcbiAgI3skc2VsZWN0b3J9IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgQGlmIG5vdCAkYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2gge1xuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAwO1xuICAgICAgfVxuICAgIH1cblxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cCB7XG4gIC5idXR0b24tZ3JvdXAge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cDtcblxuICAgIC8vIFNpemVzXG4gICAgQGVhY2ggJHNpemUsICR2YWx1ZSBpbiBtYXAtcmVtb3ZlKCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpIHtcbiAgICAgICYuI3skc2l6ZX0gI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgZm9udC1zaXplOiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXZlbi13aWR0aCBHcm91cFxuICAgICYuZXhwYW5kZWQgeyBAaW5jbHVkZSBidXR0b24tZ3JvdXAtZXhwYW5kOyB9XG5cbiAgICAvLyBDb2xvcnNcbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xuICAgICAgQGlmICRidXR0b24tZmlsbCAhPSBob2xsb3cge1xuICAgICAgICAmLiN7JG5hbWV9ICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRjb2xvciwgYXV0bywgYXV0byk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJi4jeyRuYW1lfSAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLFxuICAgICYuc3RhY2tlZC1mb3Itc21hbGwsXG4gICAgJi5zdGFja2VkLWZvci1tZWRpdW0ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXN0YWNrO1xuICAgIH1cblxuICAgICYuc3RhY2tlZC1mb3Itc21hbGwge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXVuc3RhY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLWZvci1tZWRpdW0ge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtdW5zdGFjaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsLmV4cGFuZGVkIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBmb3JjZS1lbGVtZW50LW5lc3RpbmdcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBjYWxsb3V0XG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZmFkZSB2YWx1ZSBmb3IgY2FsbG91dCBiYWNrZ3JvdW5kcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYWxsb3V0LWJhY2tncm91bmQtZmFkZTogODUlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgc3R5bGUgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIExpc3RcbiRjYWxsb3V0LWJvcmRlcjogMXB4IHNvbGlkIHJnYmEoJGJsYWNrLCAwLjI1KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FsbG91dC1tYXJnaW46IDAgMCAxcmVtIDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGlubmVyIHBhZGRpbmcgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNhbGxvdXQtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGNhbGxvdXRzLCBpZiB0aGUgY2FsbG91dCBoYXMgYSBkYXJrIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LWZvbnQtY29sb3ItYWx0OiAkYm9keS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgcmFkaXVzIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEFtb3VudCB0byB0aW50IGxpbmtzIHVzZWQgd2l0aGluIGNvbG9yZWQgcGFuZWxzLiBTZXQgdG8gYGZhbHNlYCB0byBkaXNhYmxlIHRoaXMgZmVhdHVyZS5cbi8vLyBAdHlwZSBOdW1iZXIgfCBCb29sZWFuXG4kY2FsbG91dC1saW5rLXRpbnQ6IDMwJSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBhIGNhbGxvdXQsIGluY2x1ZGluZyBwYWRkaW5nIGFuZCBtYXJnaW4uXG5AbWl4aW4gY2FsbG91dC1iYXNlKCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogJGNhbGxvdXQtbWFyZ2luO1xuICBwYWRkaW5nOiAkY2FsbG91dC1wYWRkaW5nO1xuXG4gIGJvcmRlcjogJGNhbGxvdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkY2FsbG91dC1yYWRpdXM7XG5cbiAgLy8gUmVzcGVjdCB0aGUgcGFkZGluZywgZm9vbC5cbiAgPiA6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBHZW5lcmF0ZSBxdWljayBzdHlsZXMgZm9yIGEgY2FsbG91dCB1c2luZyBhIHNpbmdsZSBjb2xvciBhcyBhIGJhc2VsaW5lLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGNhbGxvdXQtYmFja2dyb3VuZF0gLSBDb2xvciB0byB1c2UuXG5AbWl4aW4gY2FsbG91dC1zdHlsZSgkY29sb3I6ICRjYWxsb3V0LWJhY2tncm91bmQpIHtcbiAgJGJhY2tncm91bmQ6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlKTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGJhY2tncm91bmQsICgkY2FsbG91dC1mb250LWNvbG9yLCAkY2FsbG91dC1mb250LWNvbG9yLWFsdCkpO1xufVxuXG5AbWl4aW4gY2FsbG91dC1zaXplKCRwYWRkaW5nKSB7XG4gIHBhZGRpbmctdG9wOiAkcGFkZGluZztcbiAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkZGluZztcbiAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbn1cblxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2FsbG91dC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRjYWxsb3V0LWJhY2tncm91bmRdIC0gQ29sb3IgdG8gdXNlLlxuQG1peGluIGNhbGxvdXQoJGNvbG9yOiAkY2FsbG91dC1iYWNrZ3JvdW5kKSB7XG4gIEBpbmNsdWRlIGNhbGxvdXQtYmFzZTtcbiAgQGluY2x1ZGUgY2FsbG91dC1zdHlsZSgkY29sb3IpO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1jYWxsb3V0IHtcbiAgLmNhbGxvdXQge1xuICAgIEBpbmNsdWRlIGNhbGxvdXQ7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGNhbGxvdXQtc3R5bGUoJGNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnNtYWxsIHtcbiAgICAgIEBpbmNsdWRlIGNhbGxvdXQtc2l6ZSgwLjVyZW0pO1xuICAgIH1cblxuICAgICYubGFyZ2Uge1xuICAgICAgQGluY2x1ZGUgY2FsbG91dC1zaXplKDNyZW0pO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgY2FyZFxuLy8vL1xuXG4vLy8gRGVmdWFsdCBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FyZC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGNhcmRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FyZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FyZC1kaXZpZGVyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgc3R5bGUuXG4vLy8gQHR5cGUgTGlzdFxuJGNhcmQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNhcmQgc2hhZG93LlxuLy8vIEB0eXBlIExpc3RcbiRjYXJkLXNoYWRvdzogbm9uZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHJhZGl1cy5cbi8vLyBAdHlwZSBMaXN0XG4kY2FyZC1ib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYXJkLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbi5cbi8vLyBAdHlwZSBudW1iZXJcbiRjYXJkLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2FyZCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIGZvbnQgY29sb3Igb2YgdGhlIGNhcmQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXJnaW4gLSBCb3R0b20gbWFyZ2luIG9mIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGJvcmRlciAtIEJvcmRlciBhcm91bmQgdGhlIGNhcmQuXG4vLy8gQHBhcmFtIHtMaXN0fSAkcmFkaXVzIC0gYm9yZGVyIHJhZGl1cyBvZiB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaGFkb3cgLSBib3ggc2hhZG93IG9mIHRoZSBjYXJkLlxuQG1peGluIGNhcmQtY29udGFpbmVyKFxuICAkYmFja2dyb3VuZDogJGNhcmQtYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkY2FyZC1mb250LWNvbG9yLFxuICAkbWFyZ2luOiAkY2FyZC1tYXJnaW4tYm90dG9tLFxuICAkYm9yZGVyOiAkY2FyZC1ib3JkZXIsXG4gICRyYWRpdXM6ICRjYXJkLWJvcmRlci1yYWRpdXMsXG4gICRzaGFkb3c6ICRjYXJkLXNoYWRvd1xuKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4LWdyb3c6IDE7XG4gIH1cblxuICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luO1xuXG4gIGJvcmRlcjogJGJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcblxuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgYm94LXNoYWRvdzogJHNoYWRvdztcblxuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjb2xvcjogJGNvbG9yO1xuXG4gICYgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2FyZCBkaXZpZGVyLlxuQG1peGluIGNhcmQtZGl2aWRlcihcbiAgJGJhY2tncm91bmQ6ICRjYXJkLWRpdmlkZXItYmFja2dyb3VuZCxcbiAgJHBhZGRpbmc6ICRjYXJkLXBhZGRpbmdcbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG5cbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuXG4gICYgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2FyZCBzZWN0aW9uLlxuQG1peGluIGNhcmQtc2VjdGlvbihcbiAgJHBhZGRpbmc6ICRjYXJkLXBhZGRpbmdcbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4OiAxIDAgYXV0bztcbiAgfVxuXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gICYgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1jYXJkIHtcbiAgLmNhcmQge1xuICAgIEBpbmNsdWRlIGNhcmQtY29udGFpbmVyO1xuICB9XG5cbiAgLmNhcmQtZGl2aWRlciB7XG4gICAgQGluY2x1ZGUgY2FyZC1kaXZpZGVyO1xuICB9XG5cbiAgLmNhcmQtc2VjdGlvbiB7XG4gICAgQGluY2x1ZGUgY2FyZC1zZWN0aW9uO1xuICB9XG5cbiAgLy8gRm9yIElFIDExIC0gRmxleGJ1Z1xuICAvLyBodHRwczovL2dpdGh1Yi5jb20vcGhpbGlwd2FsdG9uL2ZsZXhidWdzL2lzc3Vlcy83NVxuICAuY2FyZC1pbWFnZSB7XG4gICAgbWluLWhlaWdodDogMXB4O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBjbG9zZS1idXR0b25cbi8vLy9cblxuLy8vIERlZmF1bHQgcG9zaXRpb24gb2YgdGhlIGNsb3NlIGJ1dHRvbi4gVGhlIGZpcnN0IHZhbHVlIHNob3VsZCBiZSBgcmlnaHRgIG9yIGBsZWZ0YCwgYW5kIHRoZSBzZWNvbmQgdmFsdWUgc2hvdWxkIGJlIGB0b3BgIG9yIGBib3R0b21gLlxuLy8vIEB0eXBlIExpc3RcbiRjbG9zZWJ1dHRvbi1wb3NpdGlvbjogcmlnaHQgdG9wICFkZWZhdWx0O1xuXG4vLy8gUmlnaHQgKG9yIGxlZnQpIG9mZnNldChzKSBmb3IgYSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgTnVtYmVyfE1hcFxuJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsOiAoXG4gIHNtYWxsOiAwLjY2cmVtLFxuICBtZWRpdW06IDFyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gVG9wIChvciBib3R0b20pIG9mZnNldChzKSBmb3IgYSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgTnVtYmVyfE1hcFxuJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbDogKFxuICBzbWFsbDogMC4zM2VtLFxuICBtZWRpdW06IDAuNXJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZShzKSBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1zaXplOiAoXG4gIHNtYWxsOiAxLjVlbSxcbiAgbWVkaXVtOiAyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gVGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBjbG9zZSBidXR0b24uIEl0IGFmZmVjdHMgdGhlIHNwYWNpbmcgb2YgdGhlIGVsZW1lbnQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2xvc2VidXR0b24tbGluZWhlaWdodDogMSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBDb2xvclxuJGNsb3NlYnV0dG9uLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgY2xvc2UgYnV0dG9uIHdoZW4gYmVpbmcgaG92ZXJlZCBvbi5cbi8vLyBAdHlwZSBDb2xvclxuJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyOiAkYmxhY2sgIWRlZmF1bHQ7XG5cblxuLy8vIEdldCB0aGUgc2l6ZSBhbmQgcG9zaXRpb24gZm9yIGEgY2xvc2UgYnV0dG9uLiBJZiB0aGUgaW5wdXQgdmFsdWUgaXMgYSBudW1iZXIsIHRoZSBudW1iZXIgaXMgcmV0dXJuZWQuIElmIHRoZSBpbnB1dCB2YWx1ZSBpcyBhIGNvbmZpZyBtYXAgYW5kIHRoZSBtYXAgaGFzIHRoZSBrZXkgYCRzaXplYCwgdGhlIHZhbHVlIGlzIHJldHVybmVkLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkdmFsdWUgLSBBIG51bWJlciBvciBtYXAgdGhhdCByZXByZXNlbnRzIHRoZSBzaXplIG9yIHBvc2l0aW9uIHZhbHVlKHMpIG9mIHRoZSBjbG9zZSBidXR0b24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIFRoZSBzaXplIG9mIHRoZSBjbG9zZSBidXR0b24gdG8gdXNlLlxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSBUaGUgZ2l2ZW4gbnVtYmVyIG9yIHRoZSB2YWx1ZSBmb3VuZCBpbiB0aGUgbWFwLlxuQGZ1bmN0aW9uIC16Zi1nZXQtc2l6ZS12YWwoJHZhbHVlLCAkc2l6ZSkge1xuICAvLyBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgLy8gSWYgaXQgaXMsIGp1c3QgcmV0dXJuIHRoZSBudW1iZXJcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBzaXplIG5hbWUgZXhpc3RzIGluIHRoZSB2YWx1ZSBtYXBcbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJHZhbHVlLCAkc2l6ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIHJldHVybiB0aGUgdmFsdWVcbiAgICBAcmV0dXJuIG1hcC1nZXQoJHZhbHVlLCAkc2l6ZSk7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHNpemUgYW5kIHBvc2l0aW9uIG9mIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgW21lZGl1bV0gLSBUaGUgc2l6ZSB0byB1c2UuIFNldCB0byBgc21hbGxgIHRvIGNyZWF0ZSBhIHNtYWxsIGNsb3NlIGJ1dHRvbi4gVGhlICdtZWRpdW0nIHZhbHVlcyBkZWZpbmVkIGluIGAkY2xvc2VidXR0b24tKmAgdmFyaWFibGVzIHdpbGwgYmUgdXNlZCBhcyB0aGUgZGVmYXVsdCBzaXplIGFuZCBwb3NpdGlvbiBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuQG1peGluIGNsb3NlLWJ1dHRvbi1zaXplKCRzaXplKSB7XG4gICR4OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAxKTtcbiAgJHk6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDIpO1xuXG4gICN7JHh9OiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbCwgJHNpemUpO1xuICAjeyR5fTogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsLCAkc2l6ZSk7XG4gIGZvbnQtc2l6ZTogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tc2l6ZSwgJHNpemUpO1xuICBsaW5lLWhlaWdodDogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tbGluZWhlaWdodCwgJHNpemUpO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2xvc2UgYnV0dG9uLCB1c2luZyB0aGUgc3R5bGVzIGluIHRoZSBzZXR0aW5ncyB2YXJpYWJsZXMuXG5AbWl4aW4gY2xvc2UtYnV0dG9uIHtcbiAgJHg6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDEpO1xuICAkeTogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMik7XG5cbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbG9yOiAkY2xvc2VidXR0b24tY29sb3I7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbiB7XG4gIC5jbG9zZS1idXR0b24ge1xuICAgIEBpbmNsdWRlIGNsb3NlLWJ1dHRvbjtcblxuICAgICYuc21hbGwgeyBAaW5jbHVkZSBjbG9zZS1idXR0b24tc2l6ZShzbWFsbCkgfVxuICAgICYsICYubWVkaXVtIHsgQGluY2x1ZGUgY2xvc2UtYnV0dG9uLXNpemUobWVkaXVtKSB9XG4gIH1cbn1cbiIsIkBtaXhpbiBmb3VuZGF0aW9uLW1lbnUtaWNvbiB7XG4gIC5tZW51LWljb24ge1xuICAgIEBpbmNsdWRlIGhhbWJ1cmdlcigkY29sb3I6ICR0aXRsZWJhci1pY29uLWNvbG9yLCAkY29sb3ItaG92ZXI6ICR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyKTtcbiAgfVxuXG4gIC5tZW51LWljb24uZGFyayB7XG4gICAgQGluY2x1ZGUgaGFtYnVyZ2VyO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBkcmlsbGRvd25cbi8vLy9cblxuLy8vIFRyYW5zaXRpb24gcHJvcGVydHkgdG8gdXNlIGZvciBhbmltYXRpbmcgbWVudXMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJGRyaWxsZG93bi10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBhcnJvd3MgdG8gZHJpbGxkb3duIGl0ZW1zIHdpdGggc3VibWVudXMsIGFzIHdlbGwgYXMgdGhlIGJhY2sgYnV0dG9uLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRkcmlsbGRvd24tYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gbWVudSBpdGVtIHBhZGRpbmcuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJpbGxkb3duLXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gbWVudSBuZXN0ZWQgbWFyZ2luXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJpbGxkb3duLW5lc3RlZC1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcmlsbGRvd24gdG9wIGxldmVsIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJpbGxkb3duLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIG1lbnUgaXRlbSBwYWRkaW5nIGluIHRoZSBzdWJtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJGRyaWxsZG93bi1zdWJtZW51LXBhZGRpbmc6ICRkcmlsbGRvd24tcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGRyaWxsZG93biBzdWJtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyaWxsZG93bi1zdWJtZW51LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcmlsbGRvd24tYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gYXJyb3cgc2l6ZSBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyaWxsZG93bi1hcnJvdy1zaXplOiA2cHggIWRlZmF1bHQ7XG5cbkBtaXhpbiB6Zi1kcmlsbGRvd24tbGVmdC1yaWdodC1hcnJvd3Mge1xuICAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICY6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbWFyZ2luLXRvcDogLTEgKiAkZHJpbGxkb3duLWFycm93LXNpemU7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcmlsbGRvd24tYXJyb3ctc2l6ZSwgJGRyaWxsZG93bi1hcnJvdy1jb2xvciwgJGdsb2JhbC1yaWdodCk7XG4gICAgfVxuICB9XG5cbiAgJi5hbGlnbi1sZWZ0IC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMXJlbTtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCByaWdodCk7XG4gIH1cblxuICAmLmFsaWduLXJpZ2h0IC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMXJlbTtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBsZWZ0KTtcbiAgfVxuXG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51IHtcbiAgLy8gQXBwbGllZCB0byB0aGUgTWVudSBjb250YWluZXJcbiAgLmlzLWRyaWxsZG93biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmLmFuaW1hdGUtaGVpZ2h0IHtcbiAgICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjVzO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRoZSB0b3AgbGV2ZWwgPHVsPlxuICAuZHJpbGxkb3duIHtcbiAgICBhIHtcbiAgICAgIHBhZGRpbmc6ICRkcmlsbGRvd24tcGFkZGluZztcbiAgICAgIGJhY2tncm91bmQ6ICRkcmlsbGRvd24tYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAvLyBBcHBsaWVkIHRvIHN1Ym1lbnUgPHVsPnNcbiAgICAuaXMtZHJpbGxkb3duLXN1Ym1lbnUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgI3skZ2xvYmFsLWxlZnR9OiAxMDAlO1xuICAgICAgei1pbmRleDogLTE7XG5cbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogJGRyaWxsZG93bi1zdWJtZW51LWJhY2tncm91bmQ7XG4gICAgICB0cmFuc2l0aW9uOiAkZHJpbGxkb3duLXRyYW5zaXRpb247XG5cbiAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IGx0ciwgLTEwMCUsIDEwMCUpKTtcbiAgICAgIH1cblxuICAgICAgJi5pcy1jbG9zaW5nIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gbHRyLCAxMDAlLCAtMTAwJSkpO1xuICAgICAgfVxuXG4gICAgICAvLyBTdWJtZW51IGl0ZW0gcGFkZGluZ1xuICAgICAgYSB7XG4gICAgICAgIHBhZGRpbmc6ICRkcmlsbGRvd24tc3VibWVudS1wYWRkaW5nO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5uZXN0ZWQuaXMtZHJpbGxkb3duLXN1Ym1lbnUge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQoJGRyaWxsZG93bi1uZXN0ZWQtbWFyZ2luKTtcbiAgICB9XG5cbiAgICAuZHJpbGxkb3duLXN1Ym1lbnUtY292ZXItcHJldmlvdXMge1xuICAgICAgbWluLWhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBAaWYgJGRyaWxsZG93bi1hcnJvd3Mge1xuICAgICAgQGluY2x1ZGUgemYtZHJpbGxkb3duLWxlZnQtcmlnaHQtYXJyb3dzO1xuXG4gICAgICAuanMtZHJpbGxkb3duLWJhY2sgPiBhOjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyaWxsZG93bi1hcnJvdy1zaXplLCAkZHJpbGxkb3duLWFycm93LWNvbG9yLCAkZ2xvYmFsLWxlZnQpO1xuICAgICAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9LXdpZHRoOiAwO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwLjc1cmVtOyAvLyBDcmVhdGVzIHNwYWNlIGJldHdlZW4gdGhlIGFycm93IGFuZCB0aGUgdGV4dFxuXG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH0td2lkdGg6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBkcm9wZG93blxuLy8vL1xuXG4vLy8gUGFkZGluZyBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3duLWJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bi1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bi1mb250LXNpemU6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBXaWR0aCBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd24td2lkdGg6IDMwMHB4ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gU2l6ZXMgZm9yIGRyb3Bkb3duIHBhbmVzLiBFYWNoIHNpemUgaXMgYSBDU1MgY2xhc3MgeW91IGNhbiBhcHBseS5cbi8vLyBAdHlwZSBNYXBcbiRkcm9wZG93bi1zaXplczogKFxuICB0aW55OiAxMDBweCxcbiAgc21hbGw6IDIwMHB4LFxuICBsYXJnZTogNDAwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gQXBwbGllcyBzdHlsZXMgZm9yIGEgYmFzaWMgZHJvcGRvd24uXG5AbWl4aW4gZHJvcGRvd24tY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDtcblxuICB3aWR0aDogJGRyb3Bkb3duLXdpZHRoO1xuICBwYWRkaW5nOiAkZHJvcGRvd24tcGFkZGluZztcblxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJvcmRlcjogJGRyb3Bkb3duLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGRyb3Bkb3duLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRyb3Bkb3duLWJhY2tncm91bmQ7XG5cbiAgZm9udC1zaXplOiAkZHJvcGRvd24tZm9udC1zaXplO1xuXG5cbiAgLy8gQWxsb3cgYW4gaW50ZXJtaXR0ZW50IHN0YXRlIHRvIGRvIHBvc2l0aW9uaW5nIGJlZm9yZSBtYWtpbmcgdmlzaWJsZS5cbiAgJi5pcy1vcGVuaW5nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gICYuaXMtb3BlbiB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1kcm9wZG93biB7XG4gIC5kcm9wZG93bi1wYW5lIHtcbiAgICBAaW5jbHVkZSBkcm9wZG93bi1jb250YWluZXI7XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJGRyb3Bkb3duLXNpemVzIHtcbiAgICAuZHJvcGRvd24tcGFuZS4jeyRuYW1lfSB7XG4gICAgICB3aWR0aDogJHNpemU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBkcm9wZG93bi1tZW51XG4vLy8vXG5cbi8vLyBFbmFibGVzIGFycm93cyBmb3IgaXRlbXMgd2l0aCBkcm9wZG93biBtZW51cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZHJvcGRvd25tZW51LWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd25tZW51LWFycm93LWNvbG9yOiAkYW5jaG9yLWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IGFycm93IHNpemUgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZTogNnB4ICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IGFycm93IHBhZGRpbmcgZm9yIGFsaWduaW5nIHRoZSBhcnJvdyBjb3JyZWN0bHkuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LWFycm93LXBhZGRpbmc6IDEuNXJlbSAhZGVmYXVsdDtcblxuLy8vIE1pbmltdW0gd2lkdGggb2YgZHJvcGRvd24gc3ViLW1lbnVzLlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1taW4td2lkdGg6IDIwMHB4ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdG9wIGxldmVsIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd25tZW51LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGRyb3Bkb3ducy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1zdWJtZW51LWJhY2tncm91bmQ6ICRkcm9wZG93bm1lbnUtYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIHRvcCBsZXZlbCBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bm1lbnUtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgbmVzdGVkIG1hcmdpblxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3dubWVudS1uZXN0ZWQtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3Igc3ViLW1lbnUgaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd25tZW51LXN1Ym1lbnUtcGFkZGluZzogJGRyb3Bkb3dubWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGZvciBkcm9wZG93biBzdWItbWVudXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3dubWVudS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vIEJvcmRlciB3aWR0aCBmb3IgZHJvcGRvd24gc3ViLW1lbnVzLlxuLy8gVXNlZCB0byBhZGp1c3QgdG9wIG1hcmdpbiBvZiBhIHN1Yi1tZW51IGlmIGEgYm9yZGVyIGlzIHVzZWQuXG4vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoOiBudGgoJGRyb3Bkb3dubWVudS1ib3JkZXIsIDEpO1xuXG4vLy8gVGV4dCBjb2xvciBvZiBhbiBhY3RpdmUgZHJvcGRvd24gbWVudSBpdGVtLiBFeHBsaWNpdCBvdmVycmlkZSBmb3IgbWVudSBkZWZhdWx0c1xuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd24tbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogZ2V0LWNvbG9yKHByaW1hcnkpICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY3RpdmUgZHJvcGRvd24gbWVudSBpdGVtLiBFeHBsaWNpdCBvdmVycmlkZSBmb3IgbWVudSBkZWZhdWx0c1xuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd24tbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcblxuQG1peGluIHpmLWRyb3Bkb3duLWxlZnQtcmlnaHQtYXJyb3dzIHtcbiAgPiBhOjphZnRlciB7XG4gICAgI3skZ2xvYmFsLXJpZ2h0fTogMTRweDtcbiAgfVxuXG4gICYub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiA1cHg7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgbGVmdCk7XG4gIH1cblxuICAmLm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIHJpZ2h0KTtcbiAgfVxufVxuXG5AbWl4aW4gZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oJGRpcjogaG9yaXpvbnRhbCkge1xuICBAaWYgJGRpciA9PSBob3Jpem9udGFsIHtcbiAgICA+IGxpLm9wZW5zLWxlZnQge1xuICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiBsaS5vcGVucy1yaWdodCB7XG4gICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGRyb3Bkb3dubWVudS1hcnJvd3Mge1xuICAgICAgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogJGRyb3Bkb3dubWVudS1hcnJvdy1wYWRkaW5nO1xuICAgICAgfVxuXG4gICAgICA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBkb3duKTtcbiAgICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogNXB4O1xuICAgICAgICAjeyRnbG9iYWwtbGVmdH06IGF1dG87XG4gICAgICAgIG1hcmdpbi10b3A6IC0xICogKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSAvIDIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZGlyID09IHZlcnRpY2FsIHtcbiAgICA+IGxpIHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgfVxuXG4gICAgICAmLm9wZW5zLWxlZnQge1xuICAgICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgICByaWdodDogMTAwJTtcbiAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLm9wZW5zLXJpZ2h0IHtcbiAgICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgbGVmdDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaWYgJGRyb3Bkb3dubWVudS1hcnJvd3Mge1xuICAgICAgICBAaW5jbHVkZSB6Zi1kcm9wZG93bi1sZWZ0LXJpZ2h0LWFycm93cztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdUaGUgZGlyZWN0aW9uIHVzZWQgZm9yIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKCkgbXVzdCBiZSBob3Jpem9udGFsIG9yIHZlcnRpY2FsLic7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudSB7XG4gIC5kcm9wZG93bi5tZW51IHtcbiAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcblxuICAgIGEge1xuICAgICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICAgICAgcGFkZGluZzogJGRyb3Bkb3dubWVudS1wYWRkaW5nO1xuICAgIH1cblxuICAgIC8vIEFjdGl2ZSBzdGF0ZVxuICAgIC5pcy1hY3RpdmUgPiBhIHtcbiAgICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bi1tZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICBjb2xvcjogJGRyb3Bkb3duLW1lbnUtaXRlbS1jb2xvci1hY3RpdmU7XG4gICAgfVxuXG4gICAgLm5vLWpzICYgdWwge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAubmVzdGVkLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQoJGRyb3Bkb3dubWVudS1uZXN0ZWQtbWFyZ2luKTtcbiAgICB9XG5cbiAgICAmLnZlcnRpY2FsIHtcbiAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICB9XG5cbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgICAmLiN7JHNpemV9LWhvcml6b250YWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi4jeyRzaXplfS12ZXJ0aWNhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5hbGlnbi1yaWdodCB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudS5maXJzdC1zdWIge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1tZW51LnZlcnRpY2FsIHtcbiAgICB3aWR0aDogMTAwcHg7XG5cbiAgICAmLmFsaWduLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGE6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogNXB4O1xuICAgICAgI3skZ2xvYmFsLWxlZnR9OiBhdXRvO1xuICAgICAgbWFyZ2luLXRvcDogLTEgKiAkZHJvcGRvd25tZW51LWFycm93LXNpemU7XG4gICAgfVxuXG4gICAgJi5vcGVucy1pbm5lciA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcblxuICAgICAgdG9wOiAxMDAlO1xuICAgICAgQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcge1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICByaWdodDogMTAwJTtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgfVxuXG4gICAgJi5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgbGVmdDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDEwMCU7XG4gICAgei1pbmRleDogMTtcblxuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWluLXdpZHRoOiAkZHJvcGRvd25tZW51LW1pbi13aWR0aDtcblxuICAgIGJvcmRlcjogJGRyb3Bkb3dubWVudS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZDogJGRyb3Bkb3dubWVudS1zdWJtZW51LWJhY2tncm91bmQ7XG5cbiAgICAuZHJvcGRvd24gJiBhIHtcbiAgICAgIHBhZGRpbmc6ICRkcm9wZG93bm1lbnUtc3VibWVudS1wYWRkaW5nO1xuICAgIH1cblxuICAgIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gICAgICBAaWYgJGRyb3Bkb3dubWVudS1hcnJvd3Mge1xuICAgICAgICBAaW5jbHVkZSB6Zi1kcm9wZG93bi1sZWZ0LXJpZ2h0LWFycm93cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKHR5cGUtb2YoJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGgpID09ICdudW1iZXInKSB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIG1hcmdpbi10b3A6ICgtJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGgpO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gbGkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLy8gW1RPRE9dIEN1dCBiYWNrIHNwZWNpZmljaXR5XG4gICAgLy8mOm5vdCguanMtZHJvcGRvd24tbm9ob3ZlcikgPiAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQ6aG92ZXIgPiAmLCAvLyB3aHkgaXMgdGhpcyBsaW5lIG5lZWRlZD8gT3BlbmluZyBpcyBoYW5kbGVkIGJ5IEpTIGFuZCB0aGlzIGNhdXNlcyBzb21lIHVnbHkgZmxpY2tlcmluZyB3aGVuIHRoZSBzdWIgaXMgcmUtcG9zaXRpb25lZCBhdXRvbWF0aWNhbGx5Li4uXG4gICAgJi5qcy1kcm9wZG93bi1hY3RpdmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCByZXNwb25zaXZlLWVtYmVkXG4vLy8vXG5cbi8vLyBNYXJnaW4gYmVsb3cgYSByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXNwb25zaXZlLWVtYmVkLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuLy8vIEFzcGVjdCByYXRpb3MgdXNlZCB0byBkZXRlcm1pbmUgcGFkZGluZy1ib3R0b20gb2YgcmVzcG9uc2l2ZSBlbWJlZCBjb250YWluZXJzLlxuLy8vIEB0eXBlIE1hcFxuJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zOiAoXG4gIGRlZmF1bHQ6IDQgYnkgMyxcbiAgd2lkZXNjcmVlbjogMTYgYnkgOSxcbikgIWRlZmF1bHQ7XG5cbi8vIFdBUk5JTkc6IFdpbGwgYmUgcmVtb3ZlZCBpbiB2ZXJzaW9uIDYuNFxuJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW86IGRlZmF1bHQ7XG5cbi8vLyBDcmVhdGVzIGEgcmVzcG9uc2l2ZSBlbWJlZCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtTdHJpbmd8TGlzdH0gJHJhdGlvIFtkZWZhdWx0XSAtIFJhdGlvIG9mIHRoZSBjb250YWluZXIuIENhbiBiZSBhIGtleSBmcm9tIHRoZSBgJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zYCBtYXAgb3IgYSBsaXN0IGZvcm1hdHRlZCBhcyBgeCBieSB5YC5cbkBtaXhpbiByZXNwb25zaXZlLWVtYmVkKCRyYXRpbzogZGVmYXVsdCkge1xuICBAaWYgdHlwZS1vZigkcmF0aW8pID09ICdzdHJpbmcnIHtcbiAgICAkcmF0aW86IG1hcC1nZXQoJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zLCAkcmF0aW8pO1xuICB9XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAkcmVzcG9uc2l2ZS1lbWJlZC1tYXJnaW4tYm90dG9tO1xuICBwYWRkaW5nLWJvdHRvbTogcmF0aW8tdG8tcGVyY2VudGFnZSgkcmF0aW8pO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIGlmcmFtZSxcbiAgb2JqZWN0LFxuICBlbWJlZCxcbiAgdmlkZW8ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkIHtcbiAgLnJlc3BvbnNpdmUtZW1iZWQsXG4gIC5mbGV4LXZpZGVvIHtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLWVtYmVkKCRyYXRpbzogZGVmYXVsdCk7XG5cbiAgICAkcmF0aW9zOiBtYXAtcmVtb3ZlKCRyZXNwb25zaXZlLWVtYmVkLXJhdGlvcyxkZWZhdWx0KTtcblxuICAgIEBlYWNoICRuYW1lLCAkcmF0aW8gaW4gJHJhdGlvcyB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHJhdGlvLXRvLXBlcmNlbnRhZ2UoJHJhdGlvKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZmxleC12aWRlbyB7XG4gIEB3YXJuICdUaGlzIG1peGluIGlzIGJlaW5nIHJlcGxhY2VkIGJ5IGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZCgpLiBmb3VuZGF0aW9uLWZsZXgtdmlkZW8oKSB3aWxsIGJlIHJlbW92ZWQgaW4gRm91bmRhdGlvbiA2LjQuJztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkO1xufVxuXG5AbWl4aW4gZmxleC12aWRlbygkcmF0aW86ICRyZXNwb25zaXZlLWVtYmVkLXJhdGlvKSB7XG4gIEB3YXJuICdUaGlzIG1peGluIGlzIGJlaW5nIHJlcGxhY2VkIGJ5IHJlc3BvbnNpdmUtZW1iZWQoKS4gZmxleC12aWRlbygpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuNC4nO1xuICBAaW5jbHVkZSByZXNwb25zaXZlLWVtYmVkKCRyYXRpbyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIEZpbmRzIHRoZSBncmVhdGVzdCBjb21tb24gZGl2aXNvciBvZiB0d28gaW50ZWdlcnMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGEgLSBGaXJzdCBudW1iZXIgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGIgLSBTZWNvbmQgbnVtYmVyIHRvIGNvbXBhcmUuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgZ3JlYXRlc3QgY29tbW9uIGRpdmlzb3IuXG5AZnVuY3Rpb24gZ2NkKCRhLCAkYikge1xuICAvLyBGcm9tOiBodHRwOi8vcm9zZXR0YWNvZGUub3JnL3dpa2kvR3JlYXRlc3RfY29tbW9uX2Rpdmlzb3IjSmF2YVNjcmlwdFxuICBAaWYgKCRiICE9IDApIHtcbiAgICBAcmV0dXJuIGdjZCgkYiwgJGEgJSAkYik7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gYWJzKCRhKTtcbiAgfVxufVxuXG4vLy8gSGFuZGxlcyBkZWNpbWFsIGV4cG9uZW50cyBieSB0cnlpbmcgdG8gY29udmVydCB0aGVtIGludG8gYSBmcmFjdGlvbiBhbmQgdGhlbiB1c2UgYSBudGgtcm9vdC1hbGdvcml0aG0gZm9yIHBhcnRzIG9mIHRoZSBjYWxjdWxhdGlvblxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIC0gVGhlIGJhc2UgbnVtYmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZXhwb25lbnQgLSBUaGUgZXhwb25lbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgcHJvZHVjdCBvZiB0aGUgZXhwb25lbnRpYXRpb24uXG5AZnVuY3Rpb24gcG93KCRiYXNlLCAkZXhwb25lbnQsICRwcmVjOiAxNikge1xuICBAaWYgKGZsb29yKCRleHBvbmVudCkgIT0gJGV4cG9uZW50KSB7XG4gICAgJHByZWMyIDogcG93KDEwLCAkcHJlYyk7XG4gICAgJGV4cG9uZW50OiByb3VuZCgkZXhwb25lbnQgKiAkcHJlYzIpO1xuICAgICRkZW5vbWluYXRvcjogZ2NkKCRleHBvbmVudCwgJHByZWMyKTtcbiAgICBAcmV0dXJuIG50aC1yb290KHBvdygkYmFzZSwgJGV4cG9uZW50IC8gJGRlbm9taW5hdG9yKSwgJHByZWMyIC8gJGRlbm9taW5hdG9yLCAkcHJlYyk7XG4gIH1cblxuICAkdmFsdWU6ICRiYXNlO1xuICBAaWYgJGV4cG9uZW50ID4gMSB7XG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkZXhwb25lbnQge1xuICAgICAgJHZhbHVlOiAkdmFsdWUgKiAkYmFzZTtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGV4cG9uZW50IDwgMSB7XG4gICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAtJGV4cG9uZW50IHtcbiAgICAgICR2YWx1ZTogJHZhbHVlIC8gJGJhc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbkBmdW5jdGlvbiBudGgtcm9vdCgkbnVtLCAkbjogMiwgJHByZWM6IDEyKSB7XG4gIC8vIEZyb206IGh0dHA6Ly9yb3NldHRhY29kZS5vcmcvd2lraS9OdGhfcm9vdCNKYXZhU2NyaXB0XG4gICR4OiAxO1xuXG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHByZWMge1xuICAgICR4OiAxIC8gJG4gKiAoKCRuIC0gMSkgKiAkeCArICgkbnVtIC8gcG93KCR4LCAkbiAtIDEpKSk7XG4gIH1cblxuICBAcmV0dXJuICR4O1xufVxuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgaGVpZ2h0IGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgd2lkdGggZm9yIGEgZ2l2ZW4gcmF0aW8uXG4vLy8gQHBhcmFtIHtMaXN0fSAkcmF0aW8gLSBSYXRpbyB0byB1c2UgdG8gY2FsY3VsYXRlIHRoZSBoZWlnaHQsIGZvcm1hdHRlZCBhcyBgeCBieSB5YC5cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IEEgcGVyY2VudGFnZSB2YWx1ZSBmb3IgdGhlIGhlaWdodCByZWxhdGl2ZSB0byB0aGUgd2lkdGggb2YgYSByZXNwb25zaXZlIGNvbnRhaW5lci5cbkBmdW5jdGlvbiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbykge1xuICAkdzogbnRoKCRyYXRpbywgMSk7XG4gICRoOiBudGgoJHJhdGlvLCAzKTtcbiAgQHJldHVybiAkaCAvICR3ICogMTAwJTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGxhYmVsXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGxhYmVsLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsYWJlbC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQWx0ZXJuYXRlIHRleHQgY29sb3IgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGxhYmVsLWNvbG9yLWFsdDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JpbmcgY2xhc3Nlcy4gQSBtYXAgb2YgY2xhc3NlcyB0byBvdXRwdXQgaW4geW91ciBDU1MsIGxpa2UgYC5zZWNvbmRhcnlgLCBgLnN1Y2Nlc3NgLCBhbmQgc28gb24uXG4vLy8gQHR5cGUgTWFwXG4kbGFiZWwtcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtZm9udC1zaXplOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsYWJlbC1wYWRkaW5nOiAwLjMzMzMzcmVtIDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIG9mIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsYWJlbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIGJhc2Ugc3R5bGVzIGZvciBhIGxhYmVsLlxuQG1peGluIGxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAkbGFiZWwtcGFkZGluZztcblxuICBib3JkZXItcmFkaXVzOiAkbGFiZWwtcmFkaXVzO1xuXG4gIGZvbnQtc2l6ZTogJGxhYmVsLWZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tbGFiZWwge1xuICAubGFiZWwge1xuICAgIEBpbmNsdWRlIGxhYmVsO1xuXG4gICAgYmFja2dyb3VuZDogJGxhYmVsLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRsYWJlbC1jb2xvcjtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGxhYmVsLXBhbGV0dGUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgICAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGNvbG9yLCAoJGxhYmVsLWNvbG9yLCAkbGFiZWwtY29sb3ItYWx0KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBtZWRpYS1vYmplY3Rcbi8vLy9cblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgYSBtZWRpYSBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVkaWFvYmplY3QtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IGFuZCByaWdodCBwYWRkaW5nIG9uIHNlY3Rpb25zIHdpdGhpbiBhIG1lZGlhIG9iamVjdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIG9mIGltYWdlcyB3aXRoaW4gYSBtZWRpYSBvYmplY3QsIHdoZW4gdGhlIG9iamVjdCBpcyBzdGFja2VkIHZlcnRpY2FsbHkuIFNldCB0byAnYXV0bycgdG8gdXNlIHRoZSBpbWFnZSdzIG5hdHVyYWwgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDogMTAwJSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG1lZGlhIG9iamVjdCBjb250YWluZXIuXG5AbWl4aW4gbWVkaWEtb2JqZWN0LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGlmKCRnbG9iYWwtZmxleGJveCwgZmxleCwgYmxvY2spO1xuICBtYXJnaW4tYm90dG9tOiAkbWVkaWFvYmplY3QtbWFyZ2luLWJvdHRvbTtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHNlY3Rpb25zIHdpdGhpbiBhIG1lZGlhIG9iamVjdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHBhZGRpbmcgWyRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmddIC0gUGFkZGluZyBiZXR3ZWVuIHNlY3Rpb25zLlxuQG1peGluIG1lZGlhLW9iamVjdC1zZWN0aW9uKCRwYWRkaW5nOiAkbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIH1cblxuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICRwYWRkaW5nO1xuICB9XG5cbiAgJjpsYXN0LWNoaWxkOm5vdCg6bnRoLWNoaWxkKDIpKSB7XG4gICAgcGFkZGluZy0jeyRnbG9iYWwtbGVmdH06ICRwYWRkaW5nO1xuICB9XG5cbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdG8gc3RhY2sgc2VjdGlvbnMgb2YgYSBtZWRpYSBvYmplY3QuIEFwcGx5IHRoaXMgdG8gdGhlIHNlY3Rpb24gZWxlbWVudHMsIG5vdCB0aGUgY29udGFpbmVyLlxuQG1peGluIG1lZGlhLW9iamVjdC1zdGFjayB7XG4gIHBhZGRpbmc6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAkbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIGltZyB7XG4gICAgd2lkdGg6ICRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdCB7XG4gIC5tZWRpYS1vYmplY3Qge1xuICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1jb250YWluZXI7XG5cbiAgICBpbWcge1xuICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgJi5zdGFjay1mb3ItI3skLXpmLXplcm8tYnJlYWtwb2ludH0ge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtemVyby1icmVha3BvaW50IG9ubHkpIHtcbiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrLWZvci0jeyQtemYtemVyby1icmVha3BvaW50fSAubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXplcm8tYnJlYWtwb2ludCBvbmx5KSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1zdGFjaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1zZWN0aW9uO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAmLm1haW4tc2VjdGlvbiB7XG4gICAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICYubWlkZGxlIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cblxuICAgICAgJi5ib3R0b20ge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgb2ZmLWNhbnZhc1xuLy8vL1xuXG4vLy8gV2lkdGggbWFwIG9mIGEgbGVmdC9yaWdodCBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE1hcFxuJG9mZmNhbnZhcy1zaXplczogKFxuICBzbWFsbDogMjUwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG1hcCBvZiBhIHRvcC9ib3R0b20gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBNYXBcbiRvZmZjYW52YXMtdmVydGljYWwtc2l6ZXM6IChcbiAgc21hbGw6IDI1MHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBDb2xvclxuJG9mZmNhbnZhcy1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgZm9yIHRoZSBvZmYtY2FudmFzIG92ZXJsYXAgcGFuZWwuXG4vLy8gQHR5cGUgU2hhZG93XG4kb2ZmY2FudmFzLXNoYWRvdzogMCAwIDEwcHggcmdiYSgkYmxhY2ssIDAuNykgIWRlZmF1bHQ7XG5cbi8vLyBJbm5lciBib3ggc2hhZG93IHNpemUgZm9yIHRoZSBvZmYtY2FudmFzIHB1c2ggcGFuZWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplOiAyMHB4ICFkZWZhdWx0O1xuXG4vLy8gSW5uZXIgYm94IHNoYWRvdyBjb2xvciBmb3IgdGhlIG9mZi1jYW52YXMgcHVzaCBwYW5lbC5cbi8vLyBAdHlwZSBDb2xvclxuJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3I6IHJnYmEoJGJsYWNrLCAwLjI1KSAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBjb250ZW50IG92ZXJsYXkuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLW92ZXJsYXktemluZGV4OiAxMSAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbCB3aXRoIHRoZSBgcHVzaGAgdHJhbnNpdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtcHVzaC16aW5kZXg6IDEyICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIHBhbmVsIHdpdGggdGhlIGBvdmVybGFwYCB0cmFuc2l0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDogMTMgIWRlZmF1bHQ7XG5cbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgcGFuZWwgdXNpbmcgdGhlIGByZXZlYWwtZm9yLSpgIGNsYXNzZXMgb3IgbWl4aW4uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLXJldmVhbC16aW5kZXg6IDEyICFkZWZhdWx0O1xuXG4vLy8gTGVuZ3RoIG9mIHRoZSBhbmltYXRpb24gb24gYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGg6IDAuNXMgIWRlZmF1bHQ7XG5cbi8vLyBUaW1pbmcgZnVuY3Rpb24gb2YgdGhlIGFuaW1hdGlvbiBvbiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc6IGVhc2UgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGEgcmV2ZWFsZWQgb2ZmLWNhbnZhcyB3aWxsIGJlIGZpeGVkLXBvc2l0aW9uLCBhbmQgc2Nyb2xsIHdpdGggdGhlIHNjcmVlbi5cbi8vLyBAdHlwZSBCb29sXG4kb2ZmY2FudmFzLWZpeGVkLXJldmVhbDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBvdmVybGF5IHRoYXQgYXBwZWFycyB3aGVuIGFuIG9mZi1jYW52YXMgcGFuZWwgaXMgb3Blbi5cbi8vLyBAdHlwZSBDb2xvclxuJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAwLjI1KSAhZGVmYXVsdDtcblxuLy8vIENTUyBjbGFzcyB1c2VkIGZvciB0aGUgbWFpbiBjb250ZW50IGFyZWEuIFRoZSBvZmYtY2FudmFzIG1peGlucyB1c2UgdGhpcyB0byB0YXJnZXQgdGhlIHBhZ2UgY29udGVudC5cbiRtYWluY29udGVudC1jbGFzczogJ29mZi1jYW52YXMtY29udGVudCcgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGJhc2VsaW5lIHN0eWxlcyBmb3Igb2ZmLWNhbnZhcy4gVGhpcyBDU1MgaXMgcmVxdWlyZWQgdG8gbWFrZSB0aGUgb3RoZXIgcGllY2VzIHdvcmsuXG5AbWl4aW4gb2ZmLWNhbnZhcy1iYXNpY3Mge1xuXG4gIC8vLyBUcmFuc2Zvcm0gZGVwcmVjYXRlZCBzaXplIHNldHRpbmdzIGludG8gbWFwICYgc2hvdyB3YXJuaW5nXG4gIEBpZiB2YXJpYWJsZS1leGlzdHMob2ZmY2FudmFzLXNpemUpIHtcbiAgICAkb2ZmY2FudmFzLXNpemVzOiAoc21hbGw6ICRvZmZjYW52YXMtc2l6ZSwgbWVkaXVtOiAkb2ZmY2FudmFzLXNpemUpICFnbG9iYWw7XG4gICAgQHdhcm4gJyRvZmZjYW52YXMtc2l6ZSBpcyBkZXByZWNhdGVkIGFuZCBub3QgdXNlZCBhbnltb3JlISBQbGVhc2UgdXBkYXRlIHlvdXIgc2V0dGluZ3MgYW5kIHVzZSB0aGUgbWFwICRvZmZjYW52YXMtc2l6ZXMgaW5zdGVhZCc7XG4gIH1cbiAgQGlmIHZhcmlhYmxlLWV4aXN0cyhvZmZjYW52YXMtdmVydGljYWwtc2l6ZSkge1xuICAgICRvZmZjYW52YXMtdmVydGljYWwtc2l6ZXM6IChzbWFsbDogJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplLCBtZWRpdW06ICRvZmZjYW52YXMtdmVydGljYWwtc2l6ZSkgIWdsb2JhbDtcbiAgICBAd2FybiAnJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplIGlzIGRlcHJlY2F0ZWQgYW5kIG5vdCB1c2VkIGFueW1vcmUhIFBsZWFzZSB1cGRhdGUgeW91ciBzZXR0aW5ncyBhbmQgdXNlIHRoZSBtYXAgJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplcyBpbnN0ZWFkJztcbiAgfVxuXG4gIC8vIENoZWNrcyB0aGUgei1pbmRleGVzIGFuZCBpbmNyZWFzZSB0aGVtIGR1ZSB0byBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS5cbiAgLy8gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgb3ZlcmxheSdzIHotaW5kZXggaXMgbmV3IHNpbmNlIHY2LjQgYW5kIG1heSBiZSBpZGVudGljYWwgdG8gdGhlIHVzZXIgY3VzdG9tIHNldHRpbmdzIG9mIHRoZSBwdXNoIHotaW5kZXguXG4gIEBpZiAkb2ZmY2FudmFzLXB1c2gtemluZGV4IDw9ICRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXggeyAkb2ZmY2FudmFzLXB1c2gtemluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4ICsgMSAhZ2xvYmFsOyB9XG4gIEBpZiAkb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4IDw9ICRvZmZjYW52YXMtcHVzaC16aW5kZXggeyAkb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4OiAkb2ZmY2FudmFzLXB1c2gtemluZGV4ICsgMSAhZ2xvYmFsOyB9XG4gIEBpZiAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXggPD0gJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleCB7ICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleDogJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleCArIDEgIWdsb2JhbDsgfVxuXG4gIC8vIEhpZGVzIG92ZXJmbG93IG9uIGJvZHkgd2hlbiBhbiBvZmYtY2FudmFzIHBhbmVsIGlzIG9wZW4uXG4gIC5pcy1vZmYtY2FudmFzLW9wZW4ge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIG92ZXJsYXkgKGdlbmVyYXRlZCBieSBKYXZhU2NyaXB0KVxuICAuanMtb2ZmLWNhbnZhcy1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleDtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nLCB2aXNpYmlsaXR5ICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZztcblxuICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXMtZXhpdC1iYWNrZ3JvdW5kO1xuXG4gICAgb3BhY2l0eTogMDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgJi5pcy12aXNpYmxlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cblxuICAgICYuaXMtY2xvc2FibGUge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgICYuaXMtb3ZlcmxheS1hYnNvbHV0ZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuXG4gICAgJi5pcy1vdmVybGF5LWZpeGVkIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB9XG4gIH1cbn1cblxuLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGFuIG9mZi1jYW52YXMgd3JhcHBlci5cbkBtaXhpbiBvZmYtY2FudmFzLXdyYXBwZXIoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBhbiBvZmYtY2FudmFzIHBhbmVsLlxuQG1peGluIG9mZi1jYW52YXMtYmFzZShcbiAgJGJhY2tncm91bmQ6ICRvZmZjYW52YXMtYmFja2dyb3VuZCxcbiAgJHRyYW5zaXRpb246ICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZyxcbiAgJGZpeGVkOiB0cnVlXG4pIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuXG4gIEBpZiAkZml4ZWQgPT0gdHJ1ZSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICB9XG4gIEBlbHNlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cblxuICAvLyBTZXQgdGhlIG9mZi1jYW52YXMgei1pbmRleC5cbiAgei1pbmRleDogJG9mZmNhbnZhcy1wdXNoLXppbmRleDtcblxuICAvLyBJbmNyZWFzZSBDU1Mgc3BlY2lmaWNpdHlcbiAgJi5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHotaW5kZXg6ICRvZmZjYW52YXMtcHVzaC16aW5kZXg7XG4gIH1cblxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJHRyYW5zaXRpb247XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcblxuICAvLyBIaWRlIGluYWN0aXZlIG9mZi1jYW52YXMgd2l0aGluIHRoZSBjb250ZW50IHRoYXQgaGF2ZSB0aGUgc2FtZSBwb3NpdGlvblxuICAmLmlzLWNsb3NlZCB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgLy8gT3ZlcmxhcCBvbmx5IHN0eWxlcy5cbiAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAge1xuICAgIHotaW5kZXg6ICRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg7XG5cbiAgICAmLmlzLW9wZW4ge1xuICAgICAgYm94LXNoYWRvdzogJG9mZmNhbnZhcy1zaGFkb3c7XG4gICAgfVxuICB9XG5cbiAgLy8gU2V0cyB0cmFuc2Zvcm0gdG8gMCB0byBzaG93IGFuIG9mZi1jYW52YXMgcGFuZWwuXG4gICYuaXMtb3BlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIHRvIHBvc2l0aW9uIGFuIG9mZi1jYW52YXMgcGFuZWwgdG8gdGhlIGxlZnQvcmlnaHQvdG9wL2JvdHRvbS5cbkBtaXhpbiBvZmYtY2FudmFzLXBvc2l0aW9uKFxuICAkcG9zaXRpb246IGxlZnQsXG4gICRvcmllbnRhdGlvbjogaG9yaXpvbnRhbCxcbiAgJHNpemVzOiBpZigkb3JpZW50YXRpb24gPT0gaG9yaXpvbnRhbCwgJG9mZmNhbnZhcy1zaXplcywgJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplcylcbikge1xuICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgcG9zaXRpb24gZm9yIG5lc3RlZCBvZmYtY2FudmFzIGVsZW1lbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IC5vZmYtY2FudmFzLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG5cbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30uaXMtb3Blbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgd2lkdGg6ICRzaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIHBvc2l0aW9uIGZvciBuZXN0ZWQgb2ZmLWNhbnZhcyBlbGVtZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfSAub2ZmLWNhbnZhcy5wb3NpdGlvbi0jeyRwb3NpdGlvbn0ge1xuXG4gICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30uaXMtb3Blbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kc2l6ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgcG9zaXRpb24gZm9yIG5lc3RlZCBvZmYtY2FudmFzIGVsZW1lbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IC5vZmYtY2FudmFzLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG4gICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJHNpemUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgb3BlbiBwb3NpdGlvbiBmb3IgdGhlIGNvbnRlbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9LmlzLW9wZW4tI3skcG9zaXRpb259IHtcbiAgICAgICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkc2l6ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBwb3NpdGlvbiBmb3IgbmVzdGVkIG9mZi1jYW52YXMgZWxlbWVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gLm9mZi1jYW52YXMucG9zaXRpb24tI3skcG9zaXRpb259IHtcbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRzaXplKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfS5pcy1vcGVuLSN7JHBvc2l0aW9ufSB7XG4gICAgICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBJZiAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplIGlzIHNldCwgYWRkIGlubmVyIGJveC1zaGFkb3cuXG4gIC8vIFRoaXMgbWltaWNzIHRoZSBvZmYtY2FudmFzIHBhbmVsIGhhdmluZyBhIGxvd2VyIHotaW5kZXgsIHdpdGhvdXQgaGF2aW5nIHRvIGhhdmUgb25lLlxuICBAaWYgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSB7XG4gICAgJi5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICAgICAgQGluY2x1ZGUgaW5uZXItc2lkZS1zaGFkb3cocmlnaHQsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgICAgIEBpbmNsdWRlIGlubmVyLXNpZGUtc2hhZG93KGxlZnQsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgICAgICBAaW5jbHVkZSBpbm5lci1zaWRlLXNoYWRvdyhib3R0b20sICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgICAgICBAaW5jbHVkZSBpbm5lci1zaWRlLXNoYWRvdyh0b3AsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG4vLy8gU2V0cyB0aGUgc3R5bGVzIGZvciB0aGUgY29udGVudCBjb250YWluZXIuXG5AbWl4aW4gb2ZmLWNhbnZhcy1jb250ZW50KCkge1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAvLyBUcmFuc2Zvcm0gc2NvcGUgdW50aWwgdGhlIGVsZW1lbnQgaXMgY2xvc2VkIChtYWtlcyBzdXJlIHRyYW5zaXRpb25lbmQgZ2V0cyB0cmlnZ2VyZWQpXG4gICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIH1cblxuICAvLyBDb25zaWRlciBlbGVtZW50ICYgY29udGVudCwgbmVzdGVkIGluIGFub3RoZXIgY29udGVudFxuICAub2ZmLWNhbnZhcy5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdGhhdCByZXZlYWwgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbkBtaXhpbiBvZmYtY2FudmFzLXJldmVhbChcbiRwb3NpdGlvbjogbGVmdCxcbiR6aW5kZXg6ICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCxcbiRjb250ZW50OiAkbWFpbmNvbnRlbnQtY2xhc3MsXG4kYnJlYWtwb2ludDogc21hbGxcbikge1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIHotaW5kZXg6ICR6aW5kZXg7XG4gIHRyYW5zaXRpb246IG5vbmU7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG5cbiAgQGlmIG5vdCAkb2ZmY2FudmFzLWZpeGVkLXJldmVhbCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG5cbiAgLmNsb3NlLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIENvbnNpZGVyIHJldmVhbGVkIGVsZW1lbnQgaXMgbmVzdGVkIGluIGNvbnRlbnRcbiAgLiN7JG1haW5jb250ZW50LWNsYXNzfSAmIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICBAYXQtcm9vdCAuI3skY29udGVudH0uaGFzLXJldmVhbC0jeyRwb3NpdGlvbn0ge1xuICAgIG1hcmdpbi0jeyRwb3NpdGlvbn06IC16Zi1nZXQtYnAtdmFsKCRvZmZjYW52YXMtc2l6ZXMsICRicmVha3BvaW50KTtcbiAgfVxuXG4gIC8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IChwcmlvciB0byB2Ni40KVxuICAmIH4gLiN7JGNvbnRlbnR9IHtcbiAgICBtYXJnaW4tI3skcG9zaXRpb259OiAtemYtZ2V0LWJwLXZhbCgkb2ZmY2FudmFzLXNpemVzLCAkYnJlYWtwb2ludCk7XG4gIH1cbn1cblxuLy8vIE92ZXJyaWRlcyB0aGUgb2ZmLWNhbnZhcyBzdHlsZXNcbkBtaXhpbiBpbi1jYW52YXMoKSB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIGhlaWdodDogYXV0bztcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgd2lkdGg6IGluaGVyaXQ7XG4gIG92ZXJmbG93OiBpbmhlcml0O1xuICB0cmFuc2l0aW9uOiBpbmhlcml0O1xuXG4gIC8vIEluY3JlYXNlIENTUyBzcGVjaWZpY2l0eVxuICAmLnBvc2l0aW9uLWxlZnQsXG4gICYucG9zaXRpb24tcmlnaHQsXG4gICYucG9zaXRpb24tdG9wLFxuICAmLnBvc2l0aW9uLWJvdHRvbSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW9mZi1jYW52YXMge1xuICBAaW5jbHVkZSBvZmYtY2FudmFzLWJhc2ljcztcblxuICAvLyBPZmYtY2FudmFzIHdyYXBwZXJcbiAgLm9mZi1jYW52YXMtd3JhcHBlciB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy13cmFwcGVyO1xuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBjb250YWluZXJcbiAgLm9mZi1jYW52YXMge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtYmFzZTtcblxuICAgIC8vIEZvcmNlIHBvc2l0aW9uIGFic29sdXRlIGZvciBuZXN0ZWQgb2ZmLWNhbnZhcyBiZWNhdXNlIGZpeGVkIGRvZXNuJ3Qgd29yayBmb3IgcHVzaCB0cmFuc2l0aW9uIHdpdGhpbiB0aGUgdHJhbnNmb3JtIHNjb3BlLlxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gJiB7XG4gICAgICAvLyBOT1RFOiBzaW5jZSBvdmVybGFwIHRyYW5zaXRpb24gaXMgY3VycmVudGx5IGZvcmNlZCBpZiBuZXN0ZWQsIHRoZXJlJ3Mgbm8gbmVlZCB0byBmb3JjZSBwb3NpdGlvbiBhYnNvbHV0ZSB1bnRpbCBuZXN0ZWQgcHVzaCB0cmFuc2l0aW9uIGlzIHN1cHBvcnRlZC5cbiAgICAgIC8vIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIGNvbnRhaW5lciB3aXRoIGFic29sdXRlIHBvc2l0aW9uXG4gIC5vZmYtY2FudmFzLWFic29sdXRlIHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLWJhc2UoJGZpeGVkOiBmYWxzZSk7XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIHBvc2l0aW9uIGNsYXNzZXNcbiAgLnBvc2l0aW9uLWxlZnQgICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKGxlZnQsICAgaG9yaXpvbnRhbCk7IH1cbiAgLnBvc2l0aW9uLXJpZ2h0ICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKHJpZ2h0LCAgaG9yaXpvbnRhbCk7IH1cbiAgLnBvc2l0aW9uLXRvcCAgICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKHRvcCwgICAgdmVydGljYWwpOyB9XG4gIC5wb3NpdGlvbi1ib3R0b20gIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihib3R0b20sIHZlcnRpY2FsKTsgfVxuXG4gIC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtY29udGVudDtcbiAgfVxuXG4gIC8vIFJldmVhbCBvZmYtY2FudmFzIHBhbmVsIG9uIGxhcmdlciBzY3JlZW5zXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRuYW1lICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwobGVmdCwgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LCAkbWFpbmNvbnRlbnQtY2xhc3MsICRuYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbChyaWdodCwgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LCAkbWFpbmNvbnRlbnQtY2xhc3MsICRuYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwodG9wLCAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXgsICRtYWluY29udGVudC1jbGFzcywgJG5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbChib3R0b20sICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCwgJG1haW5jb250ZW50LWNsYXNzLCAkbmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBNb3ZlIGluLWNhbnZhcyBmb3IgbGFyZ2VyIHNjcmVlbnNcbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJG5hbWUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBpbi1jYW52YXM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgb3JiaXRcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGFjdGl2ZSBjb2xvciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBkaWFtZXRlciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1kaWFtZXRlcjogMS4ycmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gYmV0d2VlbiBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbjogMC4xcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBkaXN0YW5jZSBmcm9tIHNsaWRlIHJlZ2lvbiBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZnJvbSBPcmJpdCdzIGJ1bGxldHMgdG8gd2hhdGV2ZXIgY29udGVudCBtYXkgbHVyayBiZWxvdyBpdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtbWFyZ2luLWJvdHRvbTogMC44cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBPcmJpdCdzIGNhcHRpb24uXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciBPcmJpdCdzIGNhcHRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY2FwdGlvbi1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBPcmJpdCdzIGNvbnRyb2xzIHdoZW4gaG92ZXJlZC5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWNvbnRyb2wtYmFja2dyb3VuZC1ob3ZlcjogcmdiYSgkYmxhY2ssIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIE9yYml0J3MgY29udHJvbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY29udHJvbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB6LWluZGV4IGZvciBPcmJpdCdzIGNvbnRyb2xzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWNvbnRyb2wtemluZGV4OiAxMCAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgb3V0ZXIgT3JiaXQgd3JhcHBlci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0YCBjbGFzcy5cbkBtaXhpbiBvcmJpdC13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbm5lciBPcmJpdCBzbGlkZSBjb250YWluZXIuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1jb250YWluZXJgIGNsYXNzLlxuQG1peGluIG9yYml0LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwOyAvLyBQcmV2ZW50IEZPVUMgYnkgbm90IHNob3dpbmcgdW50aWwgSlMgc2V0cyBoZWlnaHRcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbmRpdmlkdWFsIHNsaWRlcyBvZiBhbiBPcmJpdCBzbGlkZXIuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1zbGlkZWAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtc2xpZGUge1xuICB3aWR0aDogMTAwJTtcblxuICAmLm5vLW1vdGlvbnVpIHtcbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gb3JiaXQtZmlndXJlIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc2xpZGUgY29udGFpbmluZyBhbiBpbWFnZS4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWltYWdlYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1pbWFnZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBvcmJpdCBzbGlkZSBjYXB0aW9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtY2FwdGlvbmAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtY2FwdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZzogJG9yYml0LWNhcHRpb24tcGFkZGluZztcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kO1xuICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kKTtcbn1cblxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIHRoZSBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgaW4gYW4gT3JiaXQgc2xpZGVyLiBUaGVzZSBzdHlsZXMgYXJlIHNoYXJlZCBiZXR3ZWVuIHRoZSBgLm9yYml0LW5leHRgIGFuZCBgLm9yYml0LXByZXZpb3VzYCBjbGFzc2VzIGluIHRoZSBkZWZhdWx0IENTUy5cbkBtaXhpbiBvcmJpdC1jb250cm9sIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBAaW5jbHVkZSB2ZXJ0aWNhbC1jZW50ZXI7XG4gIHotaW5kZXg6ICRvcmJpdC1jb250cm9sLXppbmRleDtcbiAgcGFkZGluZzogJG9yYml0LWNvbnRyb2wtcGFkZGluZztcbiAgY29sb3I6ICR3aGl0ZTtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWNvbnRyb2wtYmFja2dyb3VuZC1ob3ZlcjtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBPcmJpdCBwcmV2aW91cyBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1wcmV2aW91c2AgY2xhc3MuXG5AbWl4aW4gb3JiaXQtcHJldmlvdXMge1xuICAjeyRnbG9iYWwtbGVmdH06IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IG5leHQgYnV0dG9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtbmV4dGAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtbmV4dCB7XG4gICN7JGdsb2JhbC1sZWZ0fTogYXV0bztcbiAgI3skZ2xvYmFsLXJpZ2h0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNvbnRhaW5lciBvZiBPcmJpdCBidWxsZXRzLiAvLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBPcmJpdCBwcmV2aW91cyBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1idWxsZXRzYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1idWxsZXRzIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6ICRvcmJpdC1idWxsZXQtbWFyZ2luLXRvcDtcbiAgbWFyZ2luLWJvdHRvbTogJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgYnV0dG9uIHtcbiAgICB3aWR0aDogJG9yYml0LWJ1bGxldC1kaWFtZXRlcjtcbiAgICBoZWlnaHQ6ICRvcmJpdC1idWxsZXQtZGlhbWV0ZXI7XG4gICAgbWFyZ2luOiAkb3JiaXQtYnVsbGV0LW1hcmdpbjtcblxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgfVxuXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tb3JiaXQge1xuICAub3JiaXQge1xuICAgIEBpbmNsdWRlIG9yYml0LXdyYXBwZXI7XG4gIH1cblxuICAub3JiaXQtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1jb250YWluZXI7XG4gIH1cblxuICAub3JiaXQtc2xpZGUge1xuICAgIEBpbmNsdWRlIG9yYml0LXNsaWRlO1xuICB9XG5cbiAgLm9yYml0LWZpZ3VyZSB7XG4gICAgQGluY2x1ZGUgb3JiaXQtZmlndXJlO1xuICB9XG5cbiAgLm9yYml0LWltYWdlIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1pbWFnZTtcbiAgfVxuXG4gIC5vcmJpdC1jYXB0aW9uIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1jYXB0aW9uO1xuICB9XG5cbiAgJW9yYml0LWNvbnRyb2wge1xuICAgIEBpbmNsdWRlIG9yYml0LWNvbnRyb2w7XG4gIH1cblxuICAub3JiaXQtcHJldmlvdXMge1xuICAgIEBleHRlbmQgJW9yYml0LWNvbnRyb2w7XG4gICAgQGluY2x1ZGUgb3JiaXQtcHJldmlvdXM7XG4gIH1cblxuICAub3JiaXQtbmV4dCB7XG4gICAgQGV4dGVuZCAlb3JiaXQtY29udHJvbDtcbiAgICBAaW5jbHVkZSBvcmJpdC1uZXh0O1xuICB9XG5cbiAgLm9yYml0LWJ1bGxldHMge1xuICAgIEBpbmNsdWRlIG9yYml0LWJ1bGxldHM7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHBhZ2luYXRpb25cbi8vLy9cblxuLy8vIEZvbnQgc2l6ZSBvZiBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24tZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gb2YgdGhlIHBhZ2luYXRpb24gb2JqZWN0LlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIG9mIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmc6IHJlbS1jYWxjKDMgMTApICFkZWZhdWx0O1xuXG4vLy8gUmlnaHQgbWFyZ2luIHRvIHNlcGFyYXRlIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmc6IHJlbS1jYWxjKDEpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBwYWdpbmF0aW9uIGl0ZW1zIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBwYWdpbmF0aW9uIGl0ZW0gZm9yIHRoZSBjdXJyZW50IHBhZ2UuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50OiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgdGhlIHBhZ2luYXRpb24gaXRlbSBmb3IgdGhlIGN1cnJlbnQgcGFnZS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1jb2xvci1jdXJyZW50OiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGEgZGlzYWJsZWQgcGFnaW5hdGlvbiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgZWxsaXBzaXMgaW4gYSBwYWdpbmF0aW9uIG1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWVsbGlwc2lzLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgZmFsc2VgLCBkb24ndCBkaXNwbGF5IHBhZ2UgbnVtYmVyIGxpbmtzIG9uIG1vYmlsZSwgb25seSBuZXh0L3ByZXZpb3VzIGxpbmtzXG4vLy8gYW5kIG9wdGlvbmFsbHkgY3VycmVudCBwYWdlIG51bWJlci5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXM6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBkaXNwbGF5IHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyIG9uIG1vYmlsZSBldmVuIGlmIGAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXNgIGlzIHNldCB0byBgZmFsc2VgLlxuLy8vIFRoaXMgcGFyYW1ldGVyIHdpbGwgb25seSBvdmVycmlkZSB0aGUgdmlzaWJpbGl0eSBzZXR0aW5nIG9mIHRoZSBjdXJyZW50IGl0ZW0gZm9yIGAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXM6IGZhbHNlO2AsXG4vLy8gaXQgd2lsbCBub3QgYWZmZWN0IHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyIHZpc2liaWxpdHkgd2hlbiBgJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zYCBpcyBzZXQgdG8gYHRydWVgLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwYWdpbmF0aW9uLW1vYmlsZS1jdXJyZW50LWl0ZW06IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhcnJvd3MgYXJlIGFkZGVkIHRvIHRoZSBuZXh0IGFuZCBwcmV2aW91cyBsaW5rcyBvZiBwYWdpbmF0aW9uLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwYWdpbmF0aW9uLWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHBhZ2luYXRpb24gY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIGEgYDx1bD5gLlxuQG1peGluIHBhZ2luYXRpb24tY29udGFpbmVyIChcbiAgJG1hcmdpbi1ib3R0b206ICRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b20sXG4gICRmb250LXNpemU6ICRwYWdpbmF0aW9uLWZvbnQtc2l6ZSxcbiAgJHNwYWNpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZyxcbiAgJHJhZGl1czogJHBhZ2luYXRpb24tcmFkaXVzLFxuICAkY29sb3I6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3IsXG4gICRwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmcsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXJcbikge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi1ib3R0b207XG5cbiAgLy8gTGlzdCBpdGVtXG4gIGxpIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG4gICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG5cbiAgICBAaWYgJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgJjpsYXN0LWNoaWxkLFxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cblxuICAgICAgQGlmICRwYWdpbmF0aW9uLW1vYmlsZS1jdXJyZW50LWl0ZW0ge1xuICAgICAgICAmLmN1cnJlbnQge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUGFnZSBsaW5rc1xuICBhLFxuICBidXR0b24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gICAgY29sb3I6ICRjb2xvcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtaG92ZXI7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGN1cnJlbnQgcGFnaW5hdGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIGFuIGA8YT5gLlxuQG1peGluIHBhZ2luYXRpb24taXRlbS1jdXJyZW50IChcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGJhY2tncm91bmQtY3VycmVudDogJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQsXG4gICRjb2xvci1jdXJyZW50OiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnRcbikge1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtY3VycmVudDtcbiAgY29sb3I6ICRjb2xvci1jdXJyZW50O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBkaXNhYmxlZCBwYWdpbmF0aW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gYW4gYDxhPmAuXG5AbWl4aW4gcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkIChcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGNvbG9yOiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWRpc2FibGVkXG4pIHtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBlbGxpcHNpcyBmb3IgdXNlIGluIGEgcGFnaW5hdGlvbiBsaXN0LlxuQG1peGluIHBhZ2luYXRpb24tZWxsaXBzaXMgKFxuICAkcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nLFxuICAkY29sb3I6ICRwYWdpbmF0aW9uLWVsbGlwc2lzLWNvbG9yXG4pIHtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGNvbnRlbnQ6ICdcXDIwMjYnO1xuICBjb2xvcjogJGNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wYWdpbmF0aW9uIHtcbiAgLnBhZ2luYXRpb24ge1xuICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tY29udGFpbmVyO1xuXG4gICAgLmN1cnJlbnQge1xuICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1pdGVtLWN1cnJlbnQ7XG4gICAgfVxuXG4gICAgLmRpc2FibGVkIHtcbiAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24taXRlbS1kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAuZWxsaXBzaXM6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tZWxsaXBzaXM7XG4gICAgfVxuICB9XG5cbiAgQGlmICRwYWdpbmF0aW9uLWFycm93cyB7XG4gICAgLnBhZ2luYXRpb24tcHJldmlvdXMgYTo6YmVmb3JlLFxuICAgIC5wYWdpbmF0aW9uLXByZXZpb3VzLmRpc2FibGVkOjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDAuNXJlbTtcbiAgICAgIGNvbnRlbnQ6ICdcXDAwYWInO1xuICAgIH1cblxuICAgIC5wYWdpbmF0aW9uLW5leHQgYTo6YWZ0ZXIsXG4gICAgLnBhZ2luYXRpb24tbmV4dC5kaXNhYmxlZDo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMC41cmVtO1xuICAgICAgY29udGVudDogJ1xcMDBiYic7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHByb2dyZXNzIGJhciBjb250YWluZXIuXG5AbWl4aW4gcHJvZ3Jlc3MtY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAkcHJvZ3Jlc3MtaGVpZ2h0O1xuICBtYXJnaW4tYm90dG9tOiAkcHJvZ3Jlc3MtbWFyZ2luLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogJHByb2dyZXNzLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByb2dyZXNzLWJhY2tncm91bmQ7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGlubmVyIG1ldGVyIG9mIGEgcHJvZ3Jlc3MgYmFyLlxuQG1peGluIHByb2dyZXNzLW1ldGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kO1xuXG4gIEBpZiBoYXMtdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGV4dCBpbiB0aGUgcHJvZ3Jlc3MgbWV0ZXIuXG5AbWl4aW4gcHJvZ3Jlc3MtbWV0ZXItdGV4dCB7XG4gIEBpbmNsdWRlIGFic29sdXRlLWNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAkd2hpdGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgQGlmIGhhcy12YWx1ZSgkcHJvZ3Jlc3MtcmFkaXVzKSB7XG4gICAgYm9yZGVyLXJhZGl1czogJHByb2dyZXNzLXJhZGl1cztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm9ncmVzcy1iYXIge1xuICAvLyBQcm9ncmVzcyBiYXJcbiAgLnByb2dyZXNzIHtcbiAgICBAaW5jbHVkZSBwcm9ncmVzcy1jb250YWluZXI7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIC5wcm9ncmVzcy1tZXRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSW5uZXIgbWV0ZXJcbiAgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBAaW5jbHVkZSBwcm9ncmVzcy1tZXRlcjtcbiAgfVxuXG4gIC8vIElubmVyIG1ldGVyIHRleHRcbiAgLnByb2dyZXNzLW1ldGVyLXRleHQge1xuICAgIEBpbmNsdWRlIHByb2dyZXNzLW1ldGVyLXRleHQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBbVE9ET10gQ2hlY2sgaG93IHBsdWdpbiBjb25maXJtcyBkaXNhYmxlZCBvciB2ZXJ0aWNhbCBzdGF0dXNcbi8vIFtUT0RPXSBDaGVjayBpZiB0cmFuc2l0aW9uOiBhbGw7IGlzIG5lY2Vzc2FyeVxuXG4vLy8vXG4vLy8gQGdyb3VwIHNsaWRlclxuLy8vL1xuXG4vLy8gRGVmYXVsdCBzbGlkZXIgd2lkdGggb2YgYSB2ZXJ0aWNhbCBzbGlkZXIuIChEb2Vzbid0IGFwcGx5IHRvIHRoZSBuYXRpdmUgc2xpZGVyLilcbi8vLyBAdHlwZSBOdW1iZXJcbiRzbGlkZXItd2lkdGgtdmVydGljYWw6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFRyYW5zaXRpb24gcHJvcGVydGllcyB0byBhcHBseSB0byB0aGUgc2xpZGVyIGhhbmRsZSBhbmQgZmlsbC4gKERvZXNuJ3QgYXBwbHkgdG8gdGhlIG5hdGl2ZSBzbGlkZXIuKVxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRzbGlkZXItdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3Igc2xpZGVycy5cbkBtaXhpbiBzbGlkZXItY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAyLjI1cmVtO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItYmFja2dyb3VuZDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgdG91Y2gtYWN0aW9uOiBub25lO1xufVxuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIGFjdGl2ZSBmaWxsIGZvciBzbGlkZXJzLlxuQG1peGluIHNsaWRlci1maWxsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJHNsaWRlci1oZWlnaHQ7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJHNsaWRlci1maWxsLWJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb246ICRzbGlkZXItdHJhbnNpdGlvbjtcblxuICAmLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyO1xuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3IgdGhlIHNsaWRlciBoYW5kbGVzLlxuQG1peGluIHNsaWRlci1oYW5kbGUge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIEBpbmNsdWRlIHZlcnRpY2FsLWNlbnRlcjtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTtcblxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcbiAgaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XG5cbiAgYm9yZGVyLXJhZGl1czogJHNsaWRlci1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb246ICRzbGlkZXItdHJhbnNpdGlvbjtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogc2NhbGUtY29sb3IoJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSk7XG4gIH1cblxuICAmLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyO1xuICB9XG59XG5cbkBtaXhpbiBzbGlkZXItZGlzYWJsZWQge1xuICBvcGFjaXR5OiAkc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbkBtaXhpbiBzbGlkZXItdmVydGljYWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAkc2xpZGVyLXdpZHRoLXZlcnRpY2FsO1xuICBoZWlnaHQ6IDEyLjVyZW07XG4gIG1hcmdpbjogMCAxLjI1cmVtO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTtcblxuICAuc2xpZGVyLWZpbGwge1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogJHNsaWRlci13aWR0aC12ZXJ0aWNhbDtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgLnNsaWRlci1oYW5kbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XG4gICAgaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tc2xpZGVyIHtcbiAgLy8gQ29udGFpbmVyXG4gIC5zbGlkZXIge1xuICAgIEBpbmNsdWRlIHNsaWRlci1jb250YWluZXI7XG4gIH1cblxuICAvLyBGaWxsIGFyZWFcbiAgLnNsaWRlci1maWxsIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItZmlsbDtcbiAgfVxuXG4gIC8vIERyYWdnYWJsZSBoYW5kbGVcbiAgLnNsaWRlci1oYW5kbGUge1xuICAgIEBpbmNsdWRlIHNsaWRlci1oYW5kbGU7XG4gIH1cblxuICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAuc2xpZGVyLmRpc2FibGVkLFxuICAuc2xpZGVyW2Rpc2FibGVkXSB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLWRpc2FibGVkO1xuICB9XG5cbiAgLy8gVmVydGljYWwgc2xpZGVyXG4gIC5zbGlkZXIudmVydGljYWwge1xuICAgIEBpbmNsdWRlIHNsaWRlci12ZXJ0aWNhbDtcbiAgfVxuXG4gIC8vIFJUTCBzdXBwb3J0XG4gIEBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCB7XG4gICAgLnNsaWRlcjpub3QoLnZlcnRpY2FsKSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AbWl4aW4gZm91bmRhdGlvbi1zdGlja3kge1xuICAuc3RpY2t5LWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLnN0aWNreSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIC5zdGlja3kuaXMtc3R1Y2sge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiA1O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgJi5pcy1hdC10b3Age1xuICAgICAgdG9wOiAwO1xuICAgIH1cblxuICAgICYuaXMtYXQtYm90dG9tIHtcbiAgICAgIGJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAuc3RpY2t5LmlzLWFuY2hvcmVkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcblxuICAgICYuaXMtYXQtYm90dG9tIHtcbiAgICAgIGJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHN3aXRjaFxuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhIHN3aXRjaC5cbi8vLyBAdHlwZSBDb2xvclxuJHN3aXRjaC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGFjdGl2ZSBjb2xvciBvZiBhIHN3aXRjaC5cbi8vLyBAdHlwZSBDb2xvclxuJHN3aXRjaC1iYWNrZ3JvdW5kLWFjdGl2ZTogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2gsIHdpdGggbm8gY2xhc3MgYXBwbGllZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtaGVpZ2h0OiAycmVtICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoIHdpdGggLnRpbnkgY2xhc3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodC10aW55OiAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2ggd2l0aCAuc21hbGwgY2xhc3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodC1zbWFsbDogMS43NXJlbSAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCB3aXRoIC5sYXJnZSBjbGFzcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtaGVpZ2h0LWxhcmdlOiAyLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIG9mIHRoZSBzd2l0Y2hcbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIGJvcmRlciBhcm91bmQgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBzd2l0Y2ggY29udGFpbmVyIGFuZCBwYWRkbGUuXG4vLy8gQHR5cGUgQ29sb3JcbiRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBhIHN3aXRjaCBwYWRkbGUgYW5kIHRoZSBlZGdlIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1wYWRkbGUtb2Zmc2V0OiAwLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gYm9yZGVyIHJhZGl1cyBvZiB0aGUgc3dpdGNoIHBhZGRsZVxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1wYWRkbGUtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIHN3aXRjaCB0cmFuc2l0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0ICFkZWZhdWx0O1xuXG4vLyBtYWtlIHRoZW0gdmFyaWFibGVzXG4vLyBhc2sgYWJvdXQgYWNjZXNzaWJpbGl0eSBvbiBsYWJlbFxuLy8gY2hhbmdlIGNsYXNzIG5hbWUgZm9yIHRleHRcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN3aXRjaCBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gYSBjb250YWluZXIgY2xhc3MuXG5AbWl4aW4gc3dpdGNoLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogJHN3aXRjaC1tYXJnaW47XG4gIG91dGxpbmU6IDA7XG5cbiAgLy8gVGhlc2UgcHJvcGVydGllcyBjYXNjYWRlIGRvd24gdG8gdGhlIHN3aXRjaCB0ZXh0XG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICR3aGl0ZTtcblxuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN3aXRjaCBpbnB1dC4gQXBwbHkgdGhpcyB0byBhbiBgPGlucHV0PmAgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC1pbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgb3BhY2l0eTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYmFja2dyb3VuZCBhbmQgcGFkZGxlIG9mIGEgc3dpdGNoLiBBcHBseSB0aGlzIHRvIGEgYDxsYWJlbD5gIHdpdGhpbiBhIHN3aXRjaC5cbkBtaXhpbiBzd2l0Y2gtcGFkZGxlIHtcbiAgJHN3aXRjaC13aWR0aDogJHN3aXRjaC1oZWlnaHQgKiAyO1xuICAkcGFkZGxlLWhlaWdodDogJHN3aXRjaC1oZWlnaHQgLSAoJHN3aXRjaC1wYWRkbGUtb2Zmc2V0ICogMik7XG4gICRwYWRkbGUtd2lkdGg6ICRzd2l0Y2gtaGVpZ2h0IC0gKCRzd2l0Y2gtcGFkZGxlLW9mZnNldCAqIDIpO1xuICAkcGFkZGxlLWFjdGl2ZS1vZmZlc3Q6ICRzd2l0Y2gtd2lkdGggLSAkcGFkZGxlLXdpZHRoIC0gJHN3aXRjaC1wYWRkbGUtb2Zmc2V0O1xuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAkc3dpdGNoLXdpZHRoO1xuICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuXG4gIGJvcmRlci1yYWRpdXM6ICRzd2l0Y2gtcmFkaXVzO1xuICBiYWNrZ3JvdW5kOiAkc3dpdGNoLWJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb246ICRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb247XG5cbiAgLy8gUmVzZXR0aW5nIHRoZXNlIDxsYWJlbD4gcHJlc2V0cyBzbyB0eXBlIHN0eWxlcyBjYXNjYWRlIGRvd25cbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuXG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAvLyBOZWVkZWQgdG8gb3ZlcnJpZGUgc3BlY2lmaWNpdHlcbiAgaW5wdXQgKyAmIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAvLyBUaGUgcGFkZGxlIGl0c2VsZlxuICAmOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogJHN3aXRjaC1wYWRkbGUtb2Zmc2V0O1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJHN3aXRjaC1wYWRkbGUtb2Zmc2V0O1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6ICRwYWRkbGUtd2lkdGg7XG4gICAgaGVpZ2h0OiAkcGFkZGxlLWhlaWdodDtcblxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgYm9yZGVyLXJhZGl1czogJHN3aXRjaC1wYWRkbGUtcmFkaXVzO1xuICAgIGJhY2tncm91bmQ6ICRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ7XG4gICAgdHJhbnNpdGlvbjogJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjtcbiAgICBjb250ZW50OiAnJztcbiAgfVxuXG4gIC8vIENoYW5nZSB0aGUgdmlzdWFsIHN0eWxlIHdoZW4gdGhlIHN3aXRjaCBpcyBhY3RpdmVcbiAgaW5wdXQ6Y2hlY2tlZCB+ICYge1xuICAgIGJhY2tncm91bmQ6ICRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAjeyRnbG9iYWwtbGVmdH06ICRwYWRkbGUtYWN0aXZlLW9mZmVzdDtcbiAgICB9XG4gIH1cblxuICBpbnB1dDpmb2N1cyB+ICYge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgfVxufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgYWN0aXZlL2luYWN0aXZlIHRleHQgaW5zaWRlIGEgc3dpdGNoLiBBcHBseSB0aGlzIHRvIHRleHQgZWxlbWVudHMgaW5zaWRlIHRoZSBzd2l0Y2ggYDxsYWJlbD5gLlxuQG1peGluIHN3aXRjaC10ZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBhY3RpdmUgc3RhdGUgdGV4dCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLXRleHQtYWN0aXZlIHtcbiAgI3skZ2xvYmFsLWxlZnR9OiA4JTtcbiAgZGlzcGxheTogbm9uZTtcblxuICBpbnB1dDpjaGVja2VkICsgbGFiZWwgPiAmIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbmFjdGl2ZSBzdGF0ZSB0ZXh0IHdpdGhpbiBhIHN3aXRjaC5cbkBtaXhpbiBzd2l0Y2gtdGV4dC1pbmFjdGl2ZSB7XG4gICN7JGdsb2JhbC1yaWdodH06IDE1JTtcblxuICBpbnB1dDpjaGVja2VkICsgbGFiZWwgPiAmIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSBzaXplIG9mIGEgc3dpdGNoIGJ5IG1vZGlmeWluZyB0aGUgc2l6ZSBvZiB0aGUgYm9keSBhbmQgcGFkZGxlLiBBcHBseSB0aGlzIHRvIGEgc3dpdGNoIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZvbnQtc2l6ZSBbMXJlbV0gLSBGb250IHNpemUgb2YgbGFiZWwgdGV4dCB3aXRoaW4gdGhlIHN3aXRjaC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHN3aXRjaC1oZWlnaHQgWzJyZW1dIC0gSGVpZ2h0IG9mIHRoZSBzd2l0Y2ggYm9keS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHBhZGRsZS1vZmZzZXQgWzAuMjVyZW1dIC0gU3BhY2luZyBiZXR3ZWVuIHRoZSBzd2l0Y2ggcGFkZGxlIGFuZCB0aGUgZWRnZSBvZiB0aGUgc3dpdGNoIGJvZHkuXG5AbWl4aW4gc3dpdGNoLXNpemUoXG4gICRmb250LXNpemU6IDFyZW0sXG4gICRzd2l0Y2gtaGVpZ2h0OiAycmVtLFxuICAkcGFkZGxlLW9mZnNldDogMC4yNXJlbVxuKSB7XG5cbiAgJHN3aXRjaC13aWR0aDogJHN3aXRjaC1oZWlnaHQgKiAyO1xuICAkcGFkZGxlLXdpZHRoOiAkc3dpdGNoLWhlaWdodCAtICgkcGFkZGxlLW9mZnNldCAqIDIpO1xuICAkcGFkZGxlLWhlaWdodDogJHN3aXRjaC1oZWlnaHQgLSAoJHBhZGRsZS1vZmZzZXQgKiAyKTtcbiAgJHBhZGRsZS1hY3RpdmUtb2ZmZXN0OiAkc3dpdGNoLXdpZHRoIC0gJHBhZGRsZS13aWR0aCAtICRwYWRkbGUtb2Zmc2V0O1xuXG4gIGhlaWdodDogJHN3aXRjaC1oZWlnaHQ7XG5cbiAgLnN3aXRjaC1wYWRkbGUge1xuICAgIHdpZHRoOiAkc3dpdGNoLXdpZHRoO1xuICAgIGhlaWdodDogJHN3aXRjaC1oZWlnaHQ7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICB9XG5cbiAgLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICB0b3A6ICRwYWRkbGUtb2Zmc2V0O1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJHBhZGRsZS1vZmZzZXQ7XG4gICAgd2lkdGg6ICRwYWRkbGUtd2lkdGg7XG4gICAgaGVpZ2h0OiAkcGFkZGxlLWhlaWdodDtcbiAgfVxuXG4gIGlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJHBhZGRsZS1hY3RpdmUtb2ZmZXN0O1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXN3aXRjaCB7XG4gIC8vIENvbnRhaW5lciBjbGFzc1xuICAuc3dpdGNoIHtcbiAgICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuICAgIEBpbmNsdWRlIHN3aXRjaC1jb250YWluZXI7XG4gIH1cblxuICAvLyA8aW5wdXQ+IGVsZW1lbnRcbiAgLnN3aXRjaC1pbnB1dCB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLWlucHV0O1xuICB9XG5cbiAgLy8gPGxhYmVsPiBlbGVtZW50XG4gIC5zd2l0Y2gtcGFkZGxlIHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtcGFkZGxlO1xuICB9XG5cbiAgLy8gQmFzZSBsYWJlbCB0ZXh0IHN0eWxlc1xuICAlc3dpdGNoLXRleHQge1xuICAgIEBpbmNsdWRlIHN3aXRjaC10ZXh0O1xuICB9XG5cbiAgLy8gQWN0aXZlIGxhYmVsIHRleHQgc3R5bGVzXG4gIC5zd2l0Y2gtYWN0aXZlIHtcbiAgICBAZXh0ZW5kICVzd2l0Y2gtdGV4dDtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtdGV4dC1hY3RpdmU7XG4gIH1cblxuICAvLyBJbmFjdGl2ZSBsYWJlbCB0ZXh0IHN0eWxlc1xuICAuc3dpdGNoLWluYWN0aXZlIHtcbiAgICBAZXh0ZW5kICVzd2l0Y2gtdGV4dDtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtdGV4dC1pbmFjdGl2ZTtcbiAgfVxuXG4gIC8vIFN3aXRjaCBzaXplc1xuICAuc3dpdGNoLnRpbnkge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1zaXplKHJlbS1jYWxjKDEwKSwgJHN3aXRjaC1oZWlnaHQtdGlueSwgJHN3aXRjaC1wYWRkbGUtb2Zmc2V0KTtcbiAgfVxuXG4gIC5zd2l0Y2guc21hbGwge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1zaXplKHJlbS1jYWxjKDEyKSwgJHN3aXRjaC1oZWlnaHQtc21hbGwsICRzd2l0Y2gtcGFkZGxlLW9mZnNldCk7XG4gIH1cblxuICAuc3dpdGNoLmxhcmdlIHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtc2l6ZShyZW0tY2FsYygxNiksICRzd2l0Y2gtaGVpZ2h0LWxhcmdlLCAkc3dpdGNoLXBhZGRsZS1vZmZzZXQpO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gc2Fzcy1saW50OmRpc2FibGUgZm9yY2UtZWxlbWVudC1uZXN0aW5nLCBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGFibGVcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIHRhYmxlIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1iYWNrZ3JvdW5kOiAkd2hpdGUgICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzY2FsZSBmb3IgZGFya2VuaW5nIHRoZSBzdHJpcGVkIHRhYmxlIHJvd3MgYW5kIHRoZSB0YWJsZSBib3JkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFibGUtY29sb3Itc2NhbGU6IDUlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzdHlsZSBmb3IgdGFibGUgYm9yZGVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1ib3JkZXI6IDFweCBzb2xpZCBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgdGFibGUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFibGUtcGFkZGluZzogcmVtLWNhbGMoOCAxMCAxMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHNjYWxlIGZvciBkYXJrZW5pbmcgdGhlIHRhYmxlIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFibGUtaG92ZXItc2NhbGU6IDIlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBzdGFuZGFyZCByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2Ygc3RyaXBlZCByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSArICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIHRhYmxlcyBhcmUgc3RyaXBlZCBieSBkZWZhdWx0IGFuZCBhbiAudW5zdHJpcGVkIGNsYXNzIGlzIGNyZWF0ZWQuIElmIGBmYWxzZWAsIGEgLnN0cmlwZWQgY2xhc3MgaXMgY3JlYXRlZC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kdGFibGUtaXMtc3RyaXBlZDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3Igc3RyaXBlZCByb3dzLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdmFsdWUgZm9yIHNob3dpbmcgdGhlIHN0cmlwZSBvbiByb3dzIG9mIHRoZSB0YWJsZXMsIGV4Y2x1ZGluZyB0aGUgaGVhZGVyIGFuZCBmb290ZXIuIElmIGV2ZW4sIHRoZSBldmVuIHJvd3Mgd2lsbCBoYXZlIGEgYmFja2dyb3VuZCBjb2xvci4gSWYgb2RkLCB0aGUgb2RkIHJvd3Mgd2lsbCBoYXZlIGEgYmFja2dyb3VuZCBjb2xvci4gSWYgZW1wdHksIG9yIGFueSBvdGhlciB2YWx1ZSwgdGhlIHRhYmxlIHJvd3Mgd2lsbCBoYXZlIG5vIHN0cmlwaW5nLlxuLy8vIEB0eXBlIEtleXdvcmRcbiR0YWJsZS1zdHJpcGU6IGV2ZW4gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBoZWFkZXIgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWhlYWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSAvIDIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBoZWFkZXIgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtaGVhZC1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtaGVhZC1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgZm9vdGVyIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1mb290LWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBmb290ZXIgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtZm9vdC1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtZm9vdC1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBoZWFkZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1oZWFkLWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGZvb3Rlci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWZvb3QtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdmFsdWUgZm9yIHNob3dpbmcgdGhlIGhlYWRlciB3aGVuIHVzaW5nIHN0YWNrZWQgdGFibGVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRzaG93LWhlYWRlci1mb3Itc3RhY2tlZDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBCcmVha3BvaW50IGF0IHdoaWNoIHN0YWNrZWQgdGFibGUgc3dpdGNoZXMgZnJvbSBtb2JpbGUgdG8gZGVza3RvcCB2aWV3LlxuLy8vIEB0eXBlIEJyZWFrcG9pbnRcbiR0YWJsZS1zdGFjay1icmVha3BvaW50OiBtZWRpdW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiAtemYtdGFibGUtc3RyaXBlKCRzdHJpcGU6ICR0YWJsZS1zdHJpcGUpIHtcbiAgdHIge1xuICAgIC8vIElmIHN0cmlwZSBpcyBzZXQgdG8gZXZlbiwgZGFya2VuIHRoZSBldmVuIHJvd3MuXG4gICAgQGlmICRzdHJpcGUgPT0gZXZlbiB7XG4gICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWYgc3RyaXBlIGlzIHNldCB0byBvZGQsIGRhcmtlbiB0aGUgb2RkIHJvd3MuXG4gICAgQGVsc2UgaWYgJHN0cmlwZSA9PSBvZGQge1xuICAgICAgJjpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiAtemYtdGFibGUtdW5zdHJpcGUoKSB7XG4gIHRyIHtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIGJvcmRlci1ib3R0b206ICR0YWJsZS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XG4gIH1cbn1cblxuQG1peGluIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZTogJHRhYmxlLXN0cmlwZSwgJGlzLXN0cmlwZWQ6ICR0YWJsZS1pcy1zdHJpcGVkKSB7XG4gIHRoZWFkLFxuICB0Ym9keSxcbiAgdGZvb3Qge1xuICAgIGJvcmRlcjogJHRhYmxlLWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmFja2dyb3VuZDtcbiAgfVxuXG4gIC8vIENhcHRpb25cbiAgY2FwdGlvbiB7XG4gICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gIH1cblxuICAvLyBUYWJsZSBoZWFkXG4gIHRoZWFkIHtcbiAgICBiYWNrZ3JvdW5kOiAkdGFibGUtaGVhZC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkdGFibGUtaGVhZC1mb250LWNvbG9yO1xuICB9XG5cbiAgLy8gVGFibGUgZm9vdFxuICB0Zm9vdCB7XG4gICAgYmFja2dyb3VuZDogJHRhYmxlLWZvb3QtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHRhYmxlLWZvb3QtZm9udC1jb2xvcjtcbiAgfVxuXG4gIC8vIFRhYmxlIGhlYWQgYW5kIGZvb3RcbiAgdGhlYWQsXG4gIHRmb290IHtcbiAgICAvLyBSb3dzIHdpdGhpbiBoZWFkIGFuZCBmb290XG4gICAgdHIge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgLy8gQ2VsbHMgd2l0aGluIGhlYWQgYW5kIGZvb3RcbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgICAgdGV4dC1hbGlnbjogI3skZ2xvYmFsLWxlZnR9O1xuICAgIH1cbiAgfVxuXG4gIC8vIFRhYmxlIHJvd3NcbiAgdGJvZHkge1xuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgIH1cbiAgfVxuXG4gIC8vIElmIHRhYmxlcyBhcmUgc3RyaXBlZFxuICBAaWYgJGlzLXN0cmlwZWQgPT0gdHJ1ZSB7XG4gICAgdGJvZHkge1xuICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXN0cmlwZSgkc3RyaXBlKTtcbiAgICB9XG5cbiAgICAmLnVuc3RyaXBlZCB7XG4gICAgICB0Ym9keSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS11bnN0cmlwZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBJZiB0YWJsZXMgYXJlIG5vdCBzdHJpcGVkXG4gIEBlbHNlIGlmICRpcy1zdHJpcGVkID09IGZhbHNlIHtcbiAgICB0Ym9keSB7XG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtdW5zdHJpcGUoKTtcbiAgICB9XG5cbiAgICAmLnN0cmlwZWQge1xuICAgICAgdGJvZHkge1xuICAgICAgICBAaW5jbHVkZSAtemYtdGFibGUtc3RyaXBlKCRzdHJpcGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIHRhYmxlcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdHJpcGUgWyR0YWJsZS1zdHJpcGVdIC0gVXNlcyBrZXl3b3JkcyBldmVuLCBvZGQsIG9yIG5vbmUgdG8gZGFya2VuIHJvd3Mgb2YgdGhlIHRhYmxlLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBldmVuLlxuQG1peGluIHRhYmxlKFxuICAkc3RyaXBlOiAkdGFibGUtc3RyaXBlLFxuICAkbmVzdDogZmFsc2Vcbikge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4gIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4gIEBpZiAkbmVzdCB7XG4gICAgQGluY2x1ZGUgLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGF0LXJvb3Qge1xuICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgdGhlIGFiaWxpdHkgdG8gaG9yaXpvbnRhbGx5IHNjcm9sbCB0aGUgdGFibGUgd2hlbiB0aGUgY29udGVudCBvdmVyZmxvd3MgaG9yaXpvbnRhbGx5LlxuQG1peGluIHRhYmxlLXNjcm9sbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3cteDogYXV0bztcbn1cblxuLy8vIFNsaWdodGx5IGRhcmtlbnMgdGhlIHRhYmxlIHJvd3Mgb24gaG92ZXIuXG5AbWl4aW4gdGFibGUtaG92ZXIge1xuICB0aGVhZCB0ciB7XG4gICAgLy9EYXJrZW5zIHRoZSB0YWJsZSBoZWFkZXIgcm93cyBvbiBob3Zlci5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1oZWFkLXJvdy1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICB0Zm9vdCB0ciB7XG4gICAgLy9EYXJrZW5zIHRoZSB0YWJsZSBmb290ZXIgcm93cyBvbiBob3Zlci5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1mb290LXJvdy1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICB0Ym9keSB0ciB7XG4gICAgLy9EYXJrZW5zIHRoZSBub24tc3RyaXBlZCB0YWJsZSByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICBAaWYgJHRhYmxlLWlzLXN0cmlwZWQgPT0gdHJ1ZSB7XG4gICAgLy8gRGFya2VucyB0aGUgZXZlbiBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGlmKCR0YWJsZS1zdHJpcGUgPT0gZXZlbikge1xuICAgICAgJjpub3QoLnVuc3RyaXBlZCkgdHI6bnRoLW9mLXR5cGUoZXZlbik6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEYXJrZW5zIHRoZSBvZGQgc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBlbHNlaWYoJHRhYmxlLXN0cmlwZSA9PSBvZGQpIHtcbiAgICAgICY6bm90KC51bnN0cmlwZWQpIHRyOm50aC1vZi10eXBlKG9kZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAZWxzZSBpZiAkdGFibGUtaXMtc3RyaXBlZCA9PSBmYWxzZSB7XG4gICAgLy8gRGFya2VucyB0aGUgZXZlbiBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGlmKCR0YWJsZS1zdHJpcGUgPT0gZXZlbikge1xuICAgICAgJi5zdHJpcGVkIHRyOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGFya2VucyB0aGUgb2RkIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAZWxzZWlmKCR0YWJsZS1zdHJpcGUgPT0gb2RkKSB7XG4gICAgICAmLnN0cmlwZWQgdHI6bnRoLW9mLXR5cGUob2RkKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc3RhY2tlZCB0YWJsZS4gVXNlZnVsIGZvciBzbWFsbC1zY3JlZW4gbGF5b3V0cy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRoZWFkZXIgWyRzaG93LWhlYWRlci1mb3Itc3RhY2tlZF0gLSBTaG93IHRoZSBmaXJzdCB0aCBvZiBoZWFkZXIgd2hlbiBzdGFja2VkLlxuQG1peGluIHRhYmxlLXN0YWNrKCRoZWFkZXI6ICRzaG93LWhlYWRlci1mb3Itc3RhY2tlZCkge1xuICBAaWYgJGhlYWRlciB7XG4gICAgdGhlYWQge1xuICAgICAgdGgge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIHRoZWFkIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgdGZvb3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICB0cixcbiAgdGgsXG4gIHRkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIHRkIHtcbiAgICBib3JkZXItdG9wOiAwO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRhYmxlKCRuZXN0OiBmYWxzZSkge1xuICB0YWJsZSB7XG4gICAgQGluY2x1ZGUgdGFibGUoJG5lc3Q6ICRuZXN0KTtcbiAgfVxuXG4gIHRhYmxlLnN0YWNrIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR0YWJsZS1zdGFjay1icmVha3BvaW50IGRvd24pIHtcbiAgICAgIEBpbmNsdWRlIHRhYmxlLXN0YWNrO1xuICAgIH1cbiAgfVxuXG4gIHRhYmxlLnNjcm9sbCB7XG4gICAgQGluY2x1ZGUgdGFibGUtc2Nyb2xsO1xuICB9XG5cbiAgdGFibGUuaG92ZXIge1xuICAgIEBpbmNsdWRlIHRhYmxlLWhvdmVyO1xuICB9XG5cbiAgLnRhYmxlLXNjcm9sbCB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgIHRhYmxlIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgJ21hdGgnO1xuXG4kY29udHJhc3Qtd2FybmluZ3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDaGVja3MgdGhlIGx1bWluYW5jZSBvZiBgJGNvbG9yYC5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIHRvIGNoZWNrIHRoZSBsdW1pbmFuY2Ugb2YuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgbHVtaW5hbmNlIG9mIGAkY29sb3JgLlxuQGZ1bmN0aW9uIGNvbG9yLWx1bWluYW5jZSgkY29sb3IpIHtcbiAgLy8gQWRhcHRlZCBmcm9tOiBodHRwczovL2dpdGh1Yi5jb20vTGVhVmVyb3UvY29udHJhc3QtcmF0aW8vYmxvYi9naC1wYWdlcy9jb2xvci5qc1xuICAvLyBGb3JtdWxhOiBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA4L1JFQy1XQ0FHMjAtMjAwODEyMTEvI3JlbGF0aXZlbHVtaW5hbmNlZGVmXG4gICRyZ2JhOiByZWQoJGNvbG9yKSwgZ3JlZW4oJGNvbG9yKSwgYmx1ZSgkY29sb3IpO1xuICAkcmdiYTI6ICgpO1xuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMyB7XG4gICAgJHJnYjogbnRoKCRyZ2JhLCAkaSk7XG4gICAgJHJnYjogJHJnYiAvIDI1NTtcblxuICAgICRyZ2I6IGlmKCRyZ2IgPCAwLjAzOTI4LCAkcmdiIC8gMTIuOTIsIHBvdygoJHJnYiArIDAuMDU1KSAvIDEuMDU1LCAyLjQpKTtcblxuICAgICRyZ2JhMjogYXBwZW5kKCRyZ2JhMiwgJHJnYik7XG4gIH1cblxuICBAcmV0dXJuIDAuMjEyNiAqIG50aCgkcmdiYTIsIDEpICsgMC43MTUyICogbnRoKCRyZ2JhMiwgMikgKyAwLjA3MjIgKiBudGgoJHJnYmEyLCAzKTtcbn1cblxuLy8vIENoZWNrcyB0aGUgY29udHJhc3QgcmF0aW8gb2YgdHdvIGNvbG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvcjEgLSBGaXJzdCBjb2xvciB0byBjb21wYXJlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvcjIgLSBTZWNvbmQgY29sb3IgdG8gY29tcGFyZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBjb250cmFzdCByYXRpbyBvZiB0aGUgY29tcGFyZWQgY29sb3JzLlxuQGZ1bmN0aW9uIGNvbG9yLWNvbnRyYXN0KCRjb2xvcjEsICRjb2xvcjIpIHtcbiAgLy8gQWRhcHRlZCBmcm9tOiBodHRwczovL2dpdGh1Yi5jb20vTGVhVmVyb3UvY29udHJhc3QtcmF0aW8vYmxvYi9naC1wYWdlcy9jb2xvci5qc1xuICAvLyBGb3JtdWxhOiBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA4L1JFQy1XQ0FHMjAtMjAwODEyMTEvI2NvbnRyYXN0LXJhdGlvZGVmXG4gICRsdW1pbmFuY2UxOiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yMSkgKyAwLjA1O1xuICAkbHVtaW5hbmNlMjogY29sb3ItbHVtaW5hbmNlKCRjb2xvcjIpICsgMC4wNTtcbiAgJHJhdGlvOiAkbHVtaW5hbmNlMSAvICRsdW1pbmFuY2UyO1xuXG4gIEBpZiAkbHVtaW5hbmNlMiA+ICRsdW1pbmFuY2UxIHtcbiAgICAkcmF0aW86IDEgLyAkcmF0aW87XG4gIH1cblxuICAkcmF0aW86IHJvdW5kKCRyYXRpbyAqIDEwKSAvIDEwO1xuXG4gIEByZXR1cm4gJHJhdGlvO1xufVxuXG4vLy8gQ2hlY2tzIHRoZSBsdW1pbmFuY2Ugb2YgYCRiYXNlYCwgYW5kIHJldHVybnMgdGhlIGNvbG9yIGZyb20gYCRjb2xvcnNgIChsaXN0IG9mIGNvbG9ycykgdGhhdCBoYXMgdGhlIG1vc3QgY29udHJhc3QuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFzZSAtIENvbG9yIHRvIGNoZWNrIGx1bWluYW5jZS5cbi8vLyBAcGFyYW0ge0xpc3R9ICRjb2xvcnMgWygkd2hpdGUsICRibGFjayldIC0gQ29sb3JzIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0b2xlcmFuY2UgWyRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2VdIC0gQ29udHJhc3QgdG9sZXJhbmNlLlxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSB0aGUgY29sb3IgZnJvbSBgJGNvbG9yc2AgKGxpc3Qgb2YgY29sb3JzKSB0aGF0IGhhcyB0aGUgbW9zdCBjb250cmFzdC5cbkBmdW5jdGlvbiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYXNlLCAkY29sb3JzOiAoJHdoaXRlLCAkYmxhY2spLCAkdG9sZXJhbmNlOiAkZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlKSB7XG4gICRjb250cmFzdDogY29sb3ItY29udHJhc3QoJGJhc2UsIG50aCgkY29sb3JzLCAxKSk7XG4gICRiZXN0OiBudGgoJGNvbG9ycywgMSk7XG5cbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCBsZW5ndGgoJGNvbG9ycykge1xuICAgICRjdXJyZW50LWNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsICRpKSk7XG4gICAgQGlmICgkY3VycmVudC1jb250cmFzdCAtICRjb250cmFzdCA+ICR0b2xlcmFuY2UpIHtcbiAgICAgICRjb250cmFzdDogY29sb3ItY29udHJhc3QoJGJhc2UsIG50aCgkY29sb3JzLCAkaSkpO1xuICAgICAgJGJlc3Q6IG50aCgkY29sb3JzLCAkaSk7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkY29udHJhc3Qtd2FybmluZ3MgYW5kICRjb250cmFzdCA8IDMpIHtcbiAgICBAd2FybiBcIkNvbnRyYXN0IHJhdGlvIG9mICN7JGJlc3R9IG9uICN7JGJhc2V9IGlzIHByZXR0eSBiYWQsIGp1c3QgI3skY29udHJhc3R9XCI7XG4gIH1cblxuICBAcmV0dXJuICRiZXN0O1xufVxuXG4vLy8gU2NhbGVzIGEgY29sb3IgdG8gYmUgZGFya2VyIGlmIGl0J3MgbGlnaHQsIG9yIGxpZ2h0ZXIgaWYgaXQncyBkYXJrLiBVc2UgdGhpcyBmdW5jdGlvbiB0byB0aW50IGEgY29sb3IgYXBwcm9wcmlhdGUgdG8gaXRzIGxpZ2h0bmVzcy5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIHRvIHNjYWxlLlxuLy8vIEBwYXJhbSB7UGVyY2VudGFnZX0gJHNjYWxlIFs1JV0gLSBBbW91bnQgdG8gc2NhbGUgdXAgb3IgZG93bi5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICR0aHJlc2hvbGQgWzQwJV0gLSBUaHJlc2hvbGQgb2YgbGlnaHRuZXNzIHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IEEgc2NhbGVkIGNvbG9yLlxuQGZ1bmN0aW9uIHNtYXJ0LXNjYWxlKCRjb2xvciwgJHNjYWxlOiA1JSwgJHRocmVzaG9sZDogNDAlKSB7XG4gIEBpZiBsaWdodG5lc3MoJGNvbG9yKSA+ICR0aHJlc2hvbGQge1xuICAgICRzY2FsZTogLSRzY2FsZTtcbiAgfVxuICBAcmV0dXJuIHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJHNjYWxlKTtcbn1cblxuLy8vIEdldCBjb2xvciBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuLy8vXG4vLy8gQHBhcmFtIHtrZXl9IGNvbG9yIGtleSBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSBjb2xvciBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuQGZ1bmN0aW9uIGdldC1jb2xvcigka2V5KSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCAka2V5KSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsICRrZXkpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAZXJyb3IgJ2dpdmVuICRrZXkgaXMgbm90IGF2YWlsYWJsZSBpbiAkZm91bmRhdGlvbi1wYWxldHRlJztcbiAgfVxufVxuXG4vLy8gVHJhbnNmZXJzIHRoZSBjb2xvcnMgaW4gdGhlIGAkZm91bmRhdGlvbi1wYWxldHRlYG1hcCBpbnRvIHZhcmlhYmxlcywgc3VjaCBhcyBgJHByaW1hcnktY29sb3JgIGFuZCBgJHNlY29uZGFyeS1jb2xvcmAuIENhbGwgdGhpcyBtaXhpbiBiZWxvdyB0aGUgR2xvYmFsIHNlY3Rpb24gb2YgeW91ciBzZXR0aW5ncyBmaWxlIHRvIHByb3Blcmx5IG1pZ3JhdGUgeW91ciBjb2RlYmFzZS5cbkBtaXhpbiBhZGQtZm91bmRhdGlvbi1jb2xvcnMoKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSB7XG4gICAgJHByaW1hcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KSB7XG4gICAgJHNlY29uZGFyeS1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzZWNvbmRhcnkpICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHN1Y2Nlc3MpIHtcbiAgICAkc3VjY2Vzcy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzdWNjZXNzKSAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKSB7XG4gICAgJHdhcm5pbmctY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgd2FybmluZykgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpIHtcbiAgICAkYWxlcnQtY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpICFnbG9iYWw7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRhYnNcbi8vLy9cblxuLy8vIERlZmF1bHQgbWFyZ2luIG9mIHRoZSB0YWIgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYSB0YWIgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3Igb2YgdGFiIGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQWN0aXZlIGJhY2tncm91bmQgY29sb3Igb2YgYSB0YWIgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWJhY2tncm91bmQtYWN0aXZlOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEFjdGl2ZSBmb250IGNvbG9yIG9mIHRhYiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWFjdGl2ZS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgdGFiIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4kdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIGEgdGFiIGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFiLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIG51bWJlciBvZiBgZXhwYW5kLW5gIGNsYXNzZXMgdG8gaW5jbHVkZSBpbiB0aGUgQ1NTLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1leHBhbmQtbWF4OiA2ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1ib3JkZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiR0YWItY29udGVudC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byBhIGA8dWw+YC5cbkBtaXhpbiB0YWJzLWNvbnRhaW5lciAoXG4gICRtYXJnaW46ICR0YWItbWFyZ2luLFxuICAkYmFja2dyb3VuZDogJHRhYi1iYWNrZ3JvdW5kLFxuICAkYm9yZGVyLWNvbG9yOiAkdGFiLWNvbnRlbnQtYm9yZGVyXG4pIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbjogJG1hcmdpbjtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLy8vIEF1Z21lbnRzIGEgdGFiIGNvbnRhaW5lciB0byBoYXZlIHZlcnRpY2FsIHRhYnMuIFVzZSB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggYHRhYnMtY29udGFpbmVyKClgLlxuQG1peGluIHRhYnMtY29udGFpbmVyLXZlcnRpY2FsIHtcbiAgPiBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgbGlua3Mgd2l0aGluIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byB0aGUgYDxsaT5gIGVsZW1lbnRzIGluc2lkZSBhIHRhYiBjb250YWluZXIuXG5AbWl4aW4gdGFicy10aXRsZSAoXG4gICRwYWRkaW5nOiAkdGFiLWl0ZW0tcGFkZGluZyxcbiAgJGZvbnQtc2l6ZTogJHRhYi1pdGVtLWZvbnQtc2l6ZSxcbiAgJGNvbG9yOiAkdGFiLWNvbG9yLFxuICAkY29sb3ItYWN0aXZlOiAkdGFiLWFjdGl2ZS1jb2xvcixcbiAgJGJhY2tncm91bmQtaG92ZXI6ICR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkYmFja2dyb3VuZC1hY3RpdmU6ICR0YWItYmFja2dyb3VuZC1hY3RpdmVcbikge1xuICBmbG9hdDogI3skZ2xvYmFsLWxlZnR9O1xuXG4gID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgICAgY29sb3I6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogLTE0JSk7XG4gICAgfVxuXG4gICAgJjpmb2N1cyxcbiAgICAmW2FyaWEtc2VsZWN0ZWQ9J3RydWUnXSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICBjb2xvcjogJGNvbG9yLWFjdGl2ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgd3JhcHBlciB0aGF0IHN1cnJvdW5kcyBhIHRhYiBncm91cCdzIGNvbnRlbnQgcGFuZXMuXG5AbWl4aW4gdGFicy1jb250ZW50IChcbiAgJGJhY2tncm91bmQ6ICR0YWItY29udGVudC1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICR0YWItY29udGVudC1jb2xvcixcbiAgJGJvcmRlci1jb2xvcjogJHRhYi1jb250ZW50LWJvcmRlclxuKSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGNvbG9yO1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xufVxuXG4vLy8gQXVnbWVudHMgYSB0YWIgY29udGVudCBjb250YWluZXIgdG8gaGF2ZSBhIHZlcnRpY2FsIHN0eWxlLCBieSBzaGlmdGluZyB0aGUgYm9yZGVyIGFyb3VuZC4gVXNlIHRoaXMgaW4gY29uanVuY3Rpb24gd2l0aCBgdGFicy1jb250ZW50KClgLlxuQG1peGluIHRhYnMtY29udGVudC12ZXJ0aWNhbCAoXG4gICRib3JkZXItY29sb3I6ICR0YWItY29udGVudC1ib3JkZXJcbikge1xuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGluZGl2aWR1YWwgdGFiIGNvbnRlbnQgcGFuZWwgd2l0aGluIHRoZSB0YWIgY29udGVudCBjb250YWluZXIuXG5AbWl4aW4gdGFicy1wYW5lbCAoXG4gICRwYWRkaW5nOiAkdGFiLWNvbnRlbnQtcGFkZGluZ1xuKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gICYuaXMtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10YWJzIHtcbiAgLnRhYnMge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGFpbmVyO1xuICB9XG5cbiAgLy8gVmVydGljYWxcbiAgLnRhYnMudmVydGljYWwge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGFpbmVyLXZlcnRpY2FsO1xuICB9XG5cbiAgLy8gU2ltcGxlXG4gIC50YWJzLnNpbXBsZSB7XG4gICAgPiBsaSA+IGEge1xuICAgICAgcGFkZGluZzogMDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFByaW1hcnkgY29sb3JcbiAgLnRhYnMucHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG5cbiAgICA+IGxpID4gYSB7XG4gICAgICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkcHJpbWFyeS1jb2xvcik7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHByaW1hcnktY29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC50YWJzLXRpdGxlIHtcbiAgICBAaW5jbHVkZSB0YWJzLXRpdGxlO1xuICB9XG5cbiAgLnRhYnMtY29udGVudCB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250ZW50O1xuICB9XG5cbiAgLnRhYnMtY29udGVudC52ZXJ0aWNhbCB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250ZW50LXZlcnRpY2FsO1xuICB9XG5cbiAgLnRhYnMtcGFuZWwge1xuICAgIEBpbmNsdWRlIHRhYnMtcGFuZWw7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRodW1ibmFpbFxuLy8vL1xuXG4vLy8gQm9yZGVyIGFyb3VuZCB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIEJvcmRlclxuJHRodW1ibmFpbC1ib3JkZXI6IHNvbGlkIDRweCAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIExlbmd0aFxuJHRodW1ibmFpbC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgdW5kZXIgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBTaGFkb3dcbiR0aHVtYm5haWwtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgkYmxhY2ssIDAuMikgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IHVuZGVyIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgU2hhZG93XG4kdGh1bWJuYWlsLXNoYWRvdy1ob3ZlcjogMCAwIDZweCAxcHggcmdiYSgkcHJpbWFyeS1jb2xvciwgMC41KSAhZGVmYXVsdDtcblxuLy8vIFRyYW5zaXRpb24gcHJvcHJ0aWVzIGZvciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiR0aHVtYm5haWwtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyMDBtcyBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIE51bWJlclxuJHRodW1ibmFpbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQWRkcyB0aHVtYm5haWwgc3R5bGVzIHRvIGFuIGVsZW1lbnQuXG5AbWl4aW4gdGh1bWJuYWlsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206ICR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTtcblxuICBib3JkZXI6ICR0aHVtYm5haWwtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkdGh1bWJuYWlsLXJhZGl1cztcbiAgYm94LXNoYWRvdzogJHRodW1ibmFpbC1zaGFkb3c7XG5cbiAgbGluZS1oZWlnaHQ6IDA7XG59XG5cbkBtaXhpbiB0aHVtYm5haWwtbGluayB7XG4gIHRyYW5zaXRpb246ICR0aHVtYm5haWwtdHJhbnNpdGlvbjtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiAkdGh1bWJuYWlsLXNoYWRvdy1ob3ZlcjtcbiAgfVxuXG4gIGltYWdlIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRodW1ibmFpbCB7XG4gIC50aHVtYm5haWwge1xuICAgIEBpbmNsdWRlIHRodW1ibmFpbDtcbiAgfVxuXG4gIGEudGh1bWJuYWlsIHtcbiAgICBAaW5jbHVkZSB0aHVtYm5haWwtbGluaztcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGl0bGUtYmFyXG4vLy8vXG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItYmFja2dyb3VuZDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kdGl0bGViYXItcGFkZGluZzogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgV2VpZ2h0XG4kdGl0bGViYXItdGV4dC1mb250LXdlaWdodDogYm9sZCAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIG1lbnUgaWNvbnMgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItaWNvbi1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgbWVudSBpY29ucyBpbnNpZGUgYSB0aXRsZSBiYXIgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gdGhlIG1lbnUgaWNvbiBhbmQgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kdGl0bGViYXItaWNvbi1zcGFjaW5nOiAwLjI1cmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10aXRsZS1iYXIge1xuICAudGl0bGUtYmFyIHtcbiAgICBwYWRkaW5nOiAkdGl0bGViYXItcGFkZGluZztcbiAgICBiYWNrZ3JvdW5kOiAkdGl0bGViYXItYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHRpdGxlYmFyLWNvbG9yO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgfVxuXG4gICAgLm1lbnUtaWNvbiB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkdGl0bGViYXItaWNvbi1zcGFjaW5nO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICR0aXRsZWJhci1pY29uLXNwYWNpbmc7XG4gICAgfVxuICB9XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgLnRpdGxlLWJhci1sZWZ0LFxuICAgIC50aXRsZS1iYXItcmlnaHQge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG5cbiAgICAudGl0bGUtYmFyLXJpZ2h0IHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRpdGxlLWJhci1sZWZ0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC50aXRsZS1iYXItcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLnRpdGxlLWJhci10aXRsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgZm9udC13ZWlnaHQ6ICR0aXRsZWJhci10ZXh0LWZvbnQtd2VpZ2h0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0b29sdGlwXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGN1cnNvciBvZiB0aGUgZGVmaW5lZCB0ZXJtLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRoYXMtdGlwLWN1cnNvcjogaGVscCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgb2YgdGhlIGRlZmluZWQgdGVybS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kaGFzLXRpcC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGJvdHRvbSBvZiB0aGUgZGVmaW5lZCB0ZXJtLlxuLy8vIEB0eXBlIExpc3RcbiRoYXMtdGlwLWJvcmRlci1ib3R0b206IGRvdHRlZCAxcHggJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIHRvb2x0aXAgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgdG9vbHRpcCBmb250LlxuLy8vIEB0eXBlIENvbG9yXG4kdG9vbHRpcC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIHRoZSB0b29sdGlwIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1wYWRkaW5nOiAwLjc1cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXggd2lkdGggZm9yIHRvb2x0aXBzLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtbWF4LXdpZHRoOiAxMHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIG9mIHRoZSB0b29sdGlwIHRleHQuIEJ5IGRlZmF1bHQsIHdlIHJlY29tbWVuZCBhIHNtYWxsZXIgZm9udCBzaXplIHRoYW4gdGhlIGJvZHkgY29weS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLWZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGlwIHdpZHRoIGZvciB0b29sdGlwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXBpcC13aWR0aDogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGlwIGhlaWdodCBmb3IgdG9vbHRpcHMuIFRoaXMgaXMgaGVscGZ1bCBmb3IgY2FsY3VsYXRpbmcgdGhlIGRpc3RhbmNlIG9mIHRoZSB0b29sdGlwIGZyb20gdGhlIHRvb2x0aXAgd29yZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXBpcC1oZWlnaHQ6ICR0b29sdGlwLXBpcC13aWR0aCAqIDAuODY2ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHRvb2x0aXBzLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGhhcy10aXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICBib3JkZXItYm90dG9tOiAkaGFzLXRpcC1ib3JkZXItYm90dG9tO1xuICBmb250LXdlaWdodDogJGhhcy10aXAtZm9udC13ZWlnaHQ7XG4gIGN1cnNvcjogJGhhcy10aXAtY3Vyc29yO1xufVxuXG5AbWl4aW4gdG9vbHRpcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDEwMCUgKyAjeyR0b29sdGlwLXBpcC1oZWlnaHR9KTtcbiAgei1pbmRleDogMTIwMDtcblxuICBtYXgtd2lkdGg6ICR0b29sdGlwLW1heC13aWR0aDtcbiAgcGFkZGluZzogJHRvb2x0aXAtcGFkZGluZztcblxuICBib3JkZXItcmFkaXVzOiAkdG9vbHRpcC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICR0b29sdGlwLWJhY2tncm91bmQtY29sb3I7XG4gIGZvbnQtc2l6ZTogJHRvb2x0aXAtZm9udC1zaXplO1xuICBjb2xvcjogJHRvb2x0aXAtY29sb3I7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cblxuICAmLmJvdHRvbSB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkdG9vbHRpcC1waXAtd2lkdGgsICR0b29sdGlwLWJhY2tncm91bmQtY29sb3IsIHVwKTtcbiAgICAgIGJvdHRvbTogMTAwJTtcbiAgICB9XG5cbiAgICAmLmFsaWduLWNlbnRlcjo6YmVmb3JlIHtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICB9XG4gIH1cblxuICAmLnRvcCB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkdG9vbHRpcC1waXAtd2lkdGgsICR0b29sdGlwLWJhY2tncm91bmQtY29sb3IsIGRvd24pO1xuICAgICAgdG9wOiAxMDAlO1xuICAgICAgYm90dG9tOiBhdXRvO1xuICAgIH1cblxuICAgICYuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIH1cbiAgfVxuXG4gICYubGVmdCB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkdG9vbHRpcC1waXAtd2lkdGgsICR0b29sdGlwLWJhY2tncm91bmQtY29sb3IsIHJpZ2h0KTtcbiAgICAgIGxlZnQ6IDEwMCU7XG4gICAgfVxuXG4gICAgJi5hbGlnbi1jZW50ZXI6OmJlZm9yZSB7XG4gICAgICBib3R0b206IGF1dG87XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB9XG4gIH1cblxuICAmLnJpZ2h0IHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgbGVmdCk7XG4gICAgICByaWdodDogMTAwJTtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgfVxuXG4gICAgJi5hbGlnbi1jZW50ZXI6OmJlZm9yZSB7XG4gICAgICBib3R0b206IGF1dG87XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB9XG4gIH1cblxuICAmLmFsaWduLXRvcDo6YmVmb3JlIHtcbiAgICBib3R0b206IGF1dG87XG4gICAgdG9wOiAxMCU7XG4gIH1cblxuICAmLmFsaWduLWJvdHRvbTo6YmVmb3JlIHtcbiAgICBib3R0b206IDEwJTtcbiAgICB0b3A6IGF1dG87XG4gIH1cblxuICAmLmFsaWduLWxlZnQ6OmJlZm9yZSB7XG4gICAgbGVmdDogMTAlO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG5cbiAgJi5hbGlnbi1yaWdodDo6YmVmb3JlIHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAxMCU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdG9vbHRpcCB7XG4gIC5oYXMtdGlwIHtcbiAgICBAaW5jbHVkZSBoYXMtdGlwO1xuICB9XG5cbiAgLnRvb2x0aXAge1xuICAgIEBpbmNsdWRlIHRvb2x0aXA7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRvcC1iYXJcbi8vLy9cblxuLy8vIFBhZGRpbmcgZm9yIHRoZSB0b3AgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvcGJhci1wYWRkaW5nOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgdG9wIGJhci4gVGhpcyBjb2xvciBhbHNvIGNhc2NhZGVzIHRvIG1lbnVzIHdpdGhpbiB0aGUgdG9wIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRvcGJhci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igc3VibWVudXMgd2l0aGluIHRoZSB0b3AgYmFyLiBVc2VmdWxsIGlmICR0b3BiYXItYmFja2dyb3VuZCBpcyB0cmFuc3BhcmVudC5cbi8vLyBAdHlwZSBDb2xvclxuJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ6ICR0b3BiYXItYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgZm9yIHRoZSB0b3AgYmFyIHRpdGxlLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvcGJhci10aXRsZS1zcGFjaW5nOiAwLjVyZW0gMXJlbSAwLjVyZW0gMCAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gd2lkdGggb2YgYDxpbnB1dD5gIGVsZW1lbnRzIGluc2lkZSB0aGUgdG9wIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b3BiYXItaW5wdXQtd2lkdGg6IDIwMHB4ICFkZWZhdWx0O1xuXG4vLy8gQnJlYWtwb2ludCBhdCB3aGljaCB0b3AgYmFyIHN3aXRjaGVzIGZyb20gbW9iaWxlIHRvIGRlc2t0b3Agdmlldy5cbi8vLyBAdHlwZSBCcmVha3BvaW50XG4kdG9wYmFyLXVuc3RhY2stYnJlYWtwb2ludDogbWVkaXVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgdG9wIGJhciBjb250YWluZXIuXG5AbWl4aW4gdG9wLWJhci1jb250YWluZXIge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxuXG4gIHBhZGRpbmc6ICR0b3BiYXItcGFkZGluZztcblxuICAmLFxuICB1bCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRvcGJhci1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgJHRvcGJhci1iYWNrZ3JvdW5kIGlzIGRpZmZlcm50IGZyb20gJHRvcGJhci1iYWNrZ3JvdW5kLXN1Ym1lbnVcbiAgQGlmICgkdG9wYmFyLWJhY2tncm91bmQgIT0gJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQpIHtcbiAgICB1bCB1bCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZDtcbiAgICB9XG4gIH1cblxuICAvLyBSZXN0cmFpbiB3aWR0aCBvZiBpbnB1dHMgYnkgZGVmYXVsdCB0byBtYWtlIHRoZW0gZWFzaWVyIHRvIGFycmFuZ2VcbiAgaW5wdXQge1xuICAgIG1heC13aWR0aDogJHRvcGJhci1pbnB1dC13aWR0aDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgfVxuXG4gIC8vIFRoZSBhYm92ZSBzdHlsZXMgc2hvdWxkbid0IGFwcGx5IHRvIGlucHV0IGdyb3VwIGZpZWxkc1xuICAuaW5wdXQtZ3JvdXAtZmllbGQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICB9XG5cbiAgaW5wdXQuYnV0dG9uIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLy8vIE1ha2VzIHNlY3Rpb25zIG9mIGEgdG9wIGJhciBzdGFjayBvbiB0b3Agb2YgZWFjaCBvdGhlci5cbkBtaXhpbiB0b3AtYmFyLXN0YWNrZWQge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAvLyBTdWItc2VjdGlvbnNcbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gU3ViLXNlY3Rpb25zXG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFVuZG9lcyB0aGUgQ1NTIGFwcGxpZWQgYnkgdGhlIGB0b3AtYmFyLXN0YWNrZWQoKWAgbWl4aW4uXG5AbWl4aW4gdG9wLWJhci11bnN0YWNrIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG5cbiAgICAudG9wLWJhci1sZWZ0IHtcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10b3AtYmFyIHtcbiAgLy8gVG9wIGJhciBjb250YWluZXJcbiAgLnRvcC1iYXIge1xuICAgIEBpbmNsdWRlIHRvcC1iYXItY29udGFpbmVyO1xuXG4gICAgLy8gU3RhY2sgb24gc21hbGwgc2NyZWVucyBieSBkZWZhdWx0XG4gICAgQGluY2x1ZGUgdG9wLWJhci1zdGFja2VkO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdG9wYmFyLXVuc3RhY2stYnJlYWtwb2ludCkge1xuICAgICAgQGluY2x1ZGUgdG9wLWJhci11bnN0YWNrO1xuICAgIH1cblxuICAgIC8vIEdlbmVyYXRlIGNsYXNzZXMgZm9yIHN0YWNraW5nIG9uIGVhY2ggc2NyZWVuIHNpemUgKGRlZmluZWQgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcylcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICYuc3RhY2tlZC1mb3ItI3skc2l6ZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgZG93bikge1xuICAgICAgICAgICAgQGluY2x1ZGUgdG9wLWJhci1zdGFja2VkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFN1Yi1zZWN0aW9uc1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAudG9wLWJhci10aXRsZSB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIG1hcmdpbjogJHRvcGJhci10aXRsZS1zcGFjaW5nO1xuICAgIH1cblxuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAudG9wLWJhci10aXRsZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHBhZGRpbmc6ICR0b3BiYXItdGl0bGUtc3BhY2luZztcblxuICAgICAgLm1lbnUtaWNvbiB7XG4gICAgICAgIGJvdHRvbTogMnB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC50b3AtYmFyLWxlZnQge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yKCRzaXplKSB7XG4gICRzaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAkc2l6ZTogLXpmLWJwLXRvLWVtKCRzaXplKSAtICgxIC8gMTYpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgZG93bikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCB3aXRoaW4gYSBjZXJ0YWluIGJyZWFrcG9pbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvci1vbmx5KCRzaXplKSB7XG4gICRsb3dlci1ib3VuZC1zaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAkdXBwZXItYm91bmQtc2l6ZTogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJHNpemUpO1xuXG4gIC8vIG1vcmUgb2Z0ZW4gdGhhbiBub3QgdGhpcyB3aWxsIGJlIGNvcnJlY3QsIGp1c3Qgb25lIHRpbWUgcm91bmQgdGhlIGxvb3AgaXQgd29uJ3Qgc28gc2V0IGluIHNjb3BlIGhlcmVcbiAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpIC0gKDEgLyAxNik7XG4gIC8vIHRlc3QgYWN0dWFsIGxvd2VyLWJvdW5kLXNpemUsIGlmIDAgc2V0IGl0IHRvIDBlbVxuICBAaWYgc3RyaXAtdW5pdCgkbG93ZXItYm91bmQtc2l6ZSkgPT0gMCB7XG4gICAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpO1xuICB9XG5cbiAgQGlmICR1cHBlci1ib3VuZC1zaXplID09IG51bGwge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJHVwcGVyLWJvdW5kOiAtemYtYnAtdG8tZW0oJHVwcGVyLWJvdW5kLXNpemUpO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkdXBwZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIGhpZGUtZm9yKCRzaXplKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvci1vbmx5KCRzaXplKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgb25seSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXMge1xuICAvLyBCYXNpYyBoaWRpbmcgY2xhc3Nlc1xuICAuaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmludmlzaWJsZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgLy8gUmVzcG9uc2l2ZSB2aXNpYmlsaXR5IGNsYXNzZXNcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIC5oaWRlLWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIGhpZGUtZm9yKCRzaXplKTtcbiAgICAgIH1cblxuICAgICAgLnNob3ctZm9yLSN7JHNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvdy1mb3IoJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5oaWRlLWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIGhpZGUtZm9yLW9ubHkoJHNpemUpO1xuICAgIH1cblxuICAgIC5zaG93LWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIHNob3ctZm9yLW9ubHkoJHNpemUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNjcmVlbiByZWFkZXIgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIC8vIE5lZWQgYSBcImhpZGUtZm9yLXNyXCIgY2xhc3M/IEFkZCBhcmlhLWhpZGRlbj0ndHJ1ZScgdG8gdGhlIGVsZW1lbnRcbiAgLnNob3ctZm9yLXNyLFxuICAuc2hvdy1vbi1mb2N1cyB7XG4gICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGU7XG4gIH1cblxuICAvLyBPbmx5IGRpc3BsYXkgdGhlIGVsZW1lbnQgd2hlbiBpdCdzIGZvY3VzZWRcbiAgLnNob3ctb24tZm9jdXMge1xuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGUtb2ZmO1xuICAgIH1cbiAgfVxuXG4gIC8vIExhbmRzY2FwZSBhbmQgcG9ydHJhaXQgdmlzaWJpbGl0eVxuICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBGbGV4Ym94IFV0aWxpdGllc1xuLy8vL1xuLy9cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciB0aGUgY291bnQgb2Ygc291cmNlIG9yZGVyaW5nYFxuLy8vIEB0eXBlIE51bWJlclxuJGZsZXgtc291cmNlLW9yZGVyaW5nLWNvdW50OiA2ICFkZWZhdWx0O1xuXG4vLy8gUXVpY2tseSBkaXNhYmxlL2VuYWJsZSBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBWYW5pbGxhIEZsZXggSGVscGVycy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZmxleGJveC1yZXNwb25zaXZlLWJyZWFrcG9pbnRzOiB0cnVlICFkZWZhdWx0O1xuXG5AbWl4aW4gZmxleC1oZWxwZXJzIHtcbiAgLmZsZXgtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBmbGV4O1xuICB9XG5cbiAgLmZsZXgtY2hpbGQtYXV0byB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gIH1cblxuICAuZmxleC1jaGlsZC1ncm93IHtcbiAgICBmbGV4OiAxIDAgYXV0bztcbiAgfVxuXG4gIC5mbGV4LWNoaWxkLXNocmluayB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gIH1cblxuICBAZWFjaCAkZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtZGlyZWN0aW9uIHtcbiAgICAuZmxleC1kaXItI3skZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbigkcHJvcCk7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkZmxleGJveC1yZXNwb25zaXZlLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tZmxleC1jb250YWluZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tZmxleC1jaGlsZC1hdXRvIHtcbiAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWNoaWxkLWdyb3cge1xuICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgICAgICAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBlYWNoICRkaXIsICRwcm9wIGluICQtemYtZmxleC1kaXJlY3Rpb24ge1xuICAgICAgICAgICAgLiN7JHNpemV9LWZsZXgtZGlyLSN7JGRpcn0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbigkcHJvcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcyB7XG4gIC8vIEhvcml6b250YWwgYWxpZ25tZW50IHVzaW5nIGp1c3RpZnktY29udGVudFxuICBAZWFjaCAkaGRpciwgJHByb3AgaW4gbWFwLXJlbW92ZSgkLXpmLWZsZXgtanVzdGlmeSwgJ2xlZnQnKSB7XG4gICAgLmFsaWduLSN7JGhkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6ICRoZGlyKTtcbiAgICB9XG4gIH1cbiAgXG4gIC8vIEhvcml6b250YWwgYWxpZ25tZW50IFNwZWNpZmljYWxseSBmb3IgVmVydGljYWwgTWVudVxuICBAZWFjaCAkaGRpciwgJHByb3AgaW4gbWFwLXJlbW92ZSgkLXpmLWZsZXgtanVzdGlmeSwgJ2xlZnQnLCAnanVzdGlmeScsICdzcGFjZWQnKSB7XG4gICAgLmFsaWduLSN7JGhkaXJ9IHtcbiAgICAgICYudmVydGljYWwubWVudSA+IGxpID4gYSB7IFxuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiAkaGRpcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVmVydGljYWwgYWxpZ25tZW50IHVzaW5nIGFsaWduLWl0ZW1zIGFuZCBhbGlnbi1zZWxmXG4gIEBlYWNoICR2ZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtYWxpZ24ge1xuICAgIC5hbGlnbi0jeyR2ZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR5OiAkdmRpcik7XG4gICAgfVxuXG4gICAgLmFsaWduLXNlbGYtI3skdmRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKCR5OiAkdmRpcik7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2VudHJhbCBhbGlnbm1lbnQgb2YgY29udGVudFxuICAuYWxpZ24tY2VudGVyLW1pZGRsZSB7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogY2VudGVyLCAkeTogbWlkZGxlKTtcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gIH1cblxuICAvLyBTb3VyY2Ugb3JkZXJpbmdcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZmxleC1zb3VyY2Utb3JkZXJpbmctY291bnQge1xuICAgICAgLiN7JC16Zi1zaXplfS1vcmRlci0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtb3JkZXIoJGkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFZhbmlsbGEgRmxleGJveCBIZWxwZXJzXG4gIEBpbmNsdWRlIGZsZXgtaGVscGVycztcbn1cbiIsIiQtemYtZmxleC1qdXN0aWZ5OiAoXG4gICdsZWZ0JzogZmxleC1zdGFydCxcbiAgJ3JpZ2h0JzogZmxleC1lbmQsXG4gICdjZW50ZXInOiBjZW50ZXIsXG4gICdqdXN0aWZ5Jzogc3BhY2UtYmV0d2VlbixcbiAgJ3NwYWNlZCc6IHNwYWNlLWFyb3VuZCxcbik7XG5cbiQtemYtZmxleC1hbGlnbjogKFxuICAndG9wJzogZmxleC1zdGFydCxcbiAgJ2JvdHRvbSc6IGZsZXgtZW5kLFxuICAnbWlkZGxlJzogY2VudGVyLFxuICAnc3RyZXRjaCc6IHN0cmV0Y2gsXG4pO1xuXG4kLXpmLWZsZXgtZGlyZWN0aW9uOiAoXG4gICdyb3cnOiByb3csXG4gICdyb3ctcmV2ZXJzZSc6IHJvdy1yZXZlcnNlLFxuICAnY29sdW1uJzogY29sdW1uLFxuICAnY29sdW1uLXJldmVyc2UnOiBjb2x1bW4tcmV2ZXJzZSxcbik7XG5cbi8vLyBFbmFibGVzIGZsZXhib3ggYnkgYWRkaW5nIGBkaXNwbGF5OiBmbGV4YCB0byB0aGUgZWxlbWVudC5cbkBtaXhpbiBmbGV4IHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLy8vIEhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5IGFsaWducyB0aGUgaXRlbXMgd2l0aGluIGEgZmxleCBjb250YWluZXIuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR4IFtudWxsXSAtIEhvcml6b250YWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGBsZWZ0YCwgYHJpZ2h0YCwgYGNlbnRlcmAsIGBqdXN0aWZ5YCwgb3IgYHNwYWNlZGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCBob3Jpem9udGFsIGFsaWdubWVudC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR5IFtudWxsXSAtIFZlcnRpY2FsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgdG9wYCwgYGJvdHRvbWAsIGBtaWRkbGVgLCBvciBgc3RyZXRjaGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCB2ZXJ0aWNhbCBhbGlnbm1lbnQuXG5AbWl4aW4gZmxleC1hbGlnbigkeDogbnVsbCwgJHk6IG51bGwpIHtcbiAgQGlmICR4IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWp1c3RpZnksICR4KSB7XG4gICAgICAkeDogbWFwLWdldCgkLXpmLWZsZXgtanVzdGlmeSwgJHgpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnZmxleC1ncmlkLXJvdy1hbGlnbigpOiAjeyR4fSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgaG9yaXpvbnRhbCBhbGlnbm1lbnQuIFVzZSBsZWZ0LCByaWdodCwgY2VudGVyLCBqdXN0aWZ5LCBvciBzcGFjZWQuJztcbiAgICB9XG4gIH1cblxuICBAaWYgJHkge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtYWxpZ24sICR5KSB7XG4gICAgICAkeTogbWFwLWdldCgkLXpmLWZsZXgtYWxpZ24sICR5KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeX0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIHZlcnRpY2FsIGFsaWdubWVudC4gVXNlIHRvcCwgYm90dG9tLCBtaWRkbGUsIG9yIHN0cmV0Y2guJztcbiAgICB9XG4gIH1cblxuICBqdXN0aWZ5LWNvbnRlbnQ6ICR4O1xuICBhbGlnbi1pdGVtczogJHk7XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGFsaWduIGEgc2luZ2xlIGNvbHVtbiB3aXRoaW4gYSBmbGV4IHJvdy4gQXBwbHkgdGhpcyBtaXhpbiB0byBhIGZsZXggY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeSBbbnVsbF0gLSBWZXJ0aWNhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYHRvcGAsIGBib3R0b21gLCBgbWlkZGxlYCwgb3IgYHN0cmV0Y2hgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgdmVydGljYWwgYWxpZ25tZW50LlxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkeTogbnVsbCkge1xuICBAaWYgJHkge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtYWxpZ24sICR5KSB7XG4gICAgICAkeTogbWFwLWdldCgkLXpmLWZsZXgtYWxpZ24sICR5KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1jb2x1bW4tYWxpZ24oKTogI3skeX0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGFsaWdubWVudC4gVXNlIHRvcCwgYm90dG9tLCBtaWRkbGUsIG9yIHN0cmV0Y2guJztcbiAgICB9XG4gIH1cblxuICBhbGlnbi1zZWxmOiAkeTtcbn1cblxuLy8vIENoYW5nZXMgdGhlIHNvdXJjZSBvcmRlciBvZiBhIGZsZXggY2hpbGQuIENoaWxkcmVuIHdpdGggbG93ZXIgbnVtYmVycyBhcHBlYXIgZmlyc3QgaW4gdGhlIGxheW91dC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG9yZGVyIFswXSAtIE9yZGVyIG51bWJlciB0byBhcHBseS5cbkBtaXhpbiBmbGV4LW9yZGVyKCRvcmRlcjogMCkge1xuICBvcmRlcjogJG9yZGVyO1xufVxuXG4vLy8gQ2hhbmdlIGZsZXgtZGlyZWN0aW9uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyZWN0aW9uIFtyb3ddIC0gRmxleCBkaXJlY3Rpb24gdG8gdXNlLiBDYW4gYmVcbi8vLyAgIC0gcm93IChkZWZhdWx0KTogc2FtZSBhcyB0ZXh0IGRpcmVjdGlvblxuLy8vICAgLSByb3ctcmV2ZXJzZTogb3Bwb3NpdGUgdG8gdGV4dCBkaXJlY3Rpb25cbi8vLyAgIC0gY29sdW1uOiBzYW1lIGFzIHJvdyBidXQgdG9wIHRvIGJvdHRvbVxuLy8vICAgLSBjb2x1bW4tcmV2ZXJzZTogc2FtZSBhcyByb3ctcmV2ZXJzZSB0b3AgdG8gYm90dG9tXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogcm93KSB7XG4gIGZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uO1xufVxuIiwiLy8vIEFwcGxpZXMgYmFzaWMgdHJhbnNpdGlvbiBzZXR0aW5ncyB0byBhbiBlbGVtZW50LlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkdXJhdGlvbiBbbnVsbF0gLSBMZW5ndGggKHNwZWVkKSBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR8RnVuY3Rpb259ICR0aW1pbmcgW251bGxdIC0gRWFzaW5nIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheSBbbnVsbF0gLSBEZWxheSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHRyYW5zaXRpb24gc3RhcnRzLlxuQG1peGluIHRyYW5zaXRpb24tYmFzaWNzKFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gIEBpbmNsdWRlIC1tb3Rpb24tdWktZGVmYXVsdHM7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246ICRkdXJhdGlvbjtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICR0aW1pbmc7XG4gIHRyYW5zaXRpb24tZGVsYXk6ICRkZWxheTtcbn1cblxuLy8vIFdyYXBzIHRoZSBjb250ZW50IGluIHRoZSBzZXR1cCBjbGFzcyBmb3IgYSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciAtIFN0YXRlIHRvIHNldHVwIGZvciB0cmFuc2l0aW9uLlxuQG1peGluIHRyYW5zaXRpb24tc3RhcnQoJGRpcikge1xuICAkc2VsZWN0b3I6IC1tdWktYnVpbGQtc2VsZWN0b3IobWFwLWdldCgkbW90aW9uLXVpLXN0YXRlcywgJGRpcikpO1xuXG4gIEBhdC1yb290IHtcbiAgICAjeyRzZWxlY3Rvcn0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBXcmFwcyB0aGUgY29udGVudCBpbiB0aGUgYWN0aXZlIGNsYXNzIGZvciBhIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIC0gU3RhdGUgdG8gYWN0aXZhdGUgYSB0cmFuc2l0aW9uIG9uLlxuQG1peGluIHRyYW5zaXRpb24tZW5kKCRkaXIpIHtcbiAgJHNlbGVjdG9yOiAtbXVpLWJ1aWxkLXNlbGVjdG9yKG1hcC1nZXQoJG1vdGlvbi11aS1zdGF0ZXMsICRkaXIpLCB0cnVlKTtcblxuICBAYXQtcm9vdCB7XG4gICAgI3skc2VsZWN0b3J9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc3RhZ2dlciBhbmltYXRpb24sIHdoaWNoIGNhbiBiZSB1c2VkIHdpdGggQW5ndWxhcidzIGBuZy1yZXBlYXRgLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheS1hbW91bnQgLSBBbW91bnQgb2YgdGltZSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyB0byBhZGQgYmV0d2VlbiBlYWNoIGl0ZW0ncyBhbmltYXRpb24uXG5AbWl4aW4gc3RhZ2dlcigkZGVsYXktYW1vdW50KSB7XG4gIHRyYW5zaXRpb24tZGVsYXk6ICRkZWxheS1hbW91bnQ7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDA7IC8vIFByZXZlbnQgYWNjaWRlbnRhbCBDU1MgaW5oZXJpdGFuY2Vcbn1cbiIsIi8vIHNjc3MtbGludDpkaXNhYmxlIEltcG9ydGFudFJ1bGUsIFNwYWNlQWZ0ZXJDb21tYSwgU2luZ2xlTGluZVBlclByb3BlcnR5XG5cbkBtaXhpbiAtbW90aW9uLXVpLWRlZmF1bHRzIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogbWFwLWdldCgkbW90aW9uLXVpLXNwZWVkcywgZGVmYXVsdCk7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBtYXAtZ2V0KCRtb3Rpb24tdWktZWFzaW5ncywgZGVmYXVsdCk7XG59XG5cbi8vIFRyYW5zaXRpb25zXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuQG1peGluIG1vdGlvbi11aS10cmFuc2l0aW9ucyB7XG4gIC8vIFNsaWRlXG4gIC5zbGlkZS1pbi1kb3duICAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKGluLCAgZG93bik7IH1cbiAgLnNsaWRlLWluLWxlZnQgICAgeyBAaW5jbHVkZSBtdWktc2xpZGUoaW4sICByaWdodCk7IH1cbiAgLnNsaWRlLWluLXVwICAgICAgeyBAaW5jbHVkZSBtdWktc2xpZGUoaW4sICB1cCk7IH1cbiAgLnNsaWRlLWluLXJpZ2h0ICAgeyBAaW5jbHVkZSBtdWktc2xpZGUoaW4sICBsZWZ0KTsgfVxuICAuc2xpZGUtb3V0LWRvd24gICB7IEBpbmNsdWRlIG11aS1zbGlkZShvdXQsIGRvd24pOyB9XG4gIC5zbGlkZS1vdXQtcmlnaHQgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKG91dCwgcmlnaHQpOyB9XG4gIC5zbGlkZS1vdXQtdXAgICAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKG91dCwgdXApOyB9XG4gIC5zbGlkZS1vdXQtbGVmdCAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKG91dCwgbGVmdCk7IH1cblxuICAvLyBGYWRlXG4gIC5mYWRlLWluICB7IEBpbmNsdWRlIG11aS1mYWRlKGluLCAgMCwgMSk7IH1cbiAgLmZhZGUtb3V0IHsgQGluY2x1ZGUgbXVpLWZhZGUob3V0LCAxLCAwKTsgfVxuXG4gIC8vIEhpbmdlXG4gIC5oaW5nZS1pbi1mcm9tLXRvcCAgICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgdG9wKTsgfVxuICAuaGluZ2UtaW4tZnJvbS1yaWdodCAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIHJpZ2h0KTsgfVxuICAuaGluZ2UtaW4tZnJvbS1ib3R0b20gICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIGJvdHRvbSk7IH1cbiAgLmhpbmdlLWluLWZyb20tbGVmdCAgICAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICBsZWZ0KTsgfVxuICAuaGluZ2UtaW4tZnJvbS1taWRkbGUteCAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICB0b3AsICAgY2VudGVyKTsgfVxuICAuaGluZ2UtaW4tZnJvbS1taWRkbGUteSAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICByaWdodCwgY2VudGVyKTsgfVxuICAuaGluZ2Utb3V0LWZyb20tdG9wICAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIHRvcCk7IH1cbiAgLmhpbmdlLW91dC1mcm9tLXJpZ2h0ICAgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCByaWdodCk7IH1cbiAgLmhpbmdlLW91dC1mcm9tLWJvdHRvbSAgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCBib3R0b20pOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1sZWZ0ICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgbGVmdCk7IH1cbiAgLmhpbmdlLW91dC1mcm9tLW1pZGRsZS14IHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgdG9wLCAgIGNlbnRlcik7IH1cbiAgLmhpbmdlLW91dC1mcm9tLW1pZGRsZS15IHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgcmlnaHQsIGNlbnRlcik7IH1cblxuICAvLyBTY2FsZVxuICAuc2NhbGUtaW4tdXAgICAgeyBAaW5jbHVkZSBtdWktem9vbShpbiwgIDAuNSwgMSk7IH1cbiAgLnNjYWxlLWluLWRvd24gIHsgQGluY2x1ZGUgbXVpLXpvb20oaW4sICAxLjUsIDEpOyB9XG4gIC5zY2FsZS1vdXQtdXAgICB7IEBpbmNsdWRlIG11aS16b29tKG91dCwgMSwgMS41KTsgfVxuICAuc2NhbGUtb3V0LWRvd24geyBAaW5jbHVkZSBtdWktem9vbShvdXQsIDEsIDAuNSk7IH1cblxuICAvLyBTcGluXG4gIC5zcGluLWluICAgICB7IEBpbmNsdWRlIG11aS1zcGluKGluLCAgY3cpOyB9XG4gIC5zcGluLW91dCAgICB7IEBpbmNsdWRlIG11aS1zcGluKG91dCwgY3cpOyB9XG4gIC5zcGluLWluLWNjdyAgeyBAaW5jbHVkZSBtdWktc3BpbihpbiwgIGNjdyk7IH1cbiAgLnNwaW4tb3V0LWNjdyB7IEBpbmNsdWRlIG11aS1zcGluKG91dCwgY2N3KTsgfVxuXG4gIC8vIFRyYW5zaXRpb24gTW9kaWZpZXJzXG4gIC8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLXNwZWVkcyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9IHsgdHJhbnNpdGlvbi1kdXJhdGlvbjogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktZWFzaW5ncyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9IHsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLWRlbGF5cyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9LWRlbGF5IHsgdHJhbnNpdGlvbi1kZWxheTogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cbn1cblxuLy8gQW5pbWF0aW9uc1xuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbkBtaXhpbiBtb3Rpb24tdWktYW5pbWF0aW9ucyB7XG4gIC5zaGFrZSAgICB7IEBpbmNsdWRlIG11aS1hbmltYXRpb24oc2hha2UpOyB9XG4gIC5zcGluLWN3ICB7IEBpbmNsdWRlIG11aS1hbmltYXRpb24oc3Bpbik7IH1cbiAgLnNwaW4tY2N3IHsgQGluY2x1ZGUgbXVpLWFuaW1hdGlvbihzcGluKGNjdykpOyB9XG4gIC53aWdnbGUgICB7IEBpbmNsdWRlIG11aS1hbmltYXRpb24od2lnZ2xlKTsgfVxuXG4gIC5zaGFrZSxcbiAgLnNwaW4tY3csXG4gIC5zcGluLWNjdyxcbiAgLndpZ2dsZSB7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiBtYXAtZ2V0KCRtb3Rpb24tdWktc3BlZWRzLCBkZWZhdWx0KTtcbiAgfVxuXG4gIC8vIEFuaW1hdGlvbiBNb2RpZmllcnNcbiAgLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbiAgLmluZmluaXRlIHsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IH1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktc3BlZWRzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0geyBhbmltYXRpb24tZHVyYXRpb246ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLWVhc2luZ3Mge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfSB7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLWRlbGF5cyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9LWRlbGF5IHsgYW5pbWF0aW9uLWRlbGF5OiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8vIEZvcm1hdCBmb3IgQ1NTIGNsYXNzZXMgY3JlYXRlZCB3aXRoIE1vdGlvbiBVSS5cbi8vLyBAdHlwZSBNYXBcbi8vLyBAcHJvcCB7Qm9vbGVhbn0gYXBwZW5kIFt0cnVlXSAtIERlZmluZXMgaWYgc2VsZWN0b3JzIGFyZSBjaGFpbmVkIHRvIHRoZSBzZWxlY3RvciAoYC5jbGFzcy5lbnRlcmApLCBvciBhcHBlbmRlZCBhcyBhIG5ldyBjbGFzcyAoYC5jbGFzcy1lbnRlcmApLlxuLy8vIEBwcm9wIHtTdHJpbmd9IHByZWZpeCBbJ211aS0nXSAtIFByZWZpeCB0byBhZGQgYmVmb3JlIHRoZSBzdGF0ZSBvZiBhIGNsYXNzLiBFbnRlciBhbiBlbXB0eSBzdHJpbmcgdG8gdXNlIG5vIHByZWZpeC5cbi8vLyBAcHJvcCB7U3RyaW5nfSBwcmVmaXggWyctYWN0aXZlJ10gLSBTdWZmaXggdG8gYWRkIHRvIHRoZSBhY3RpdmUgc3RhdGUgY2xhc3MuXG4kbW90aW9uLXVpLWNsYXNzZXM6IChcbiAgY2hhaW46IHRydWUsXG4gIHByZWZpeDogJ211aS0nLFxuICBhY3RpdmU6ICctYWN0aXZlJyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBTdGF0ZSBuYW1lcyB0byByZWZlcmVuY2Ugd2hlbiB3cml0aW5nIG1vdGlvbiBjbGFzc2VzLiBUbyB1c2UgbXVsdGlwbGUgY2xhc3MgbmFtZXMgZm9yIG9uZSBzdGF0ZSwgZW50ZXIgYSBsaXN0IG9mIHN0cmluZ3MgaW5zdGVhZCBvZiBvbmUgc3RyaW5nLlxuLy8vIEB0eXBlIE1hcFxuJG1vdGlvbi11aS1zdGF0ZXM6IChcbiAgaW46ICdlbnRlcicsXG4gIG91dDogJ2xlYXZlJyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHNwZWVkIHRoYXQgdHJhbnNpdGlvbnMgYW5kIGFuaW1hdGlvbnMgcGxheSBhdCwgYWxvbmcgd2l0aCB2YWx1ZXMgZm9yIG1vZGlmaWVyIGNsYXNzZXMgdG8gY2hhbmdlIHRoZSBzcGVlZC5cbi8vLyBAdHlwZSBNYXBcbiRtb3Rpb24tdWktc3BlZWRzOiAoXG4gIGRlZmF1bHQ6IDUwMG1zLFxuICBzbG93OiA3NTBtcyxcbiAgZmFzdDogMjUwbXMsXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBkZWxheSB0byBhZGQgYmVmb3JlIG1vdGlvbiwgYWxvbmcgd2l0aCB2YWx1ZXMgZm9yIG1vZGlmaWVyIGNsYXNzZXMgdG8gY2hhbmdlIHRoZSBkZWxheS5cbi8vLyBAdHlwZSBNYXBcbiRtb3Rpb24tdWktZGVsYXlzOiAoXG4gIGRlZmF1bHQ6IDAsXG4gIHNob3J0OiAzMDBtcyxcbiAgbG9uZzogNzAwbXMsXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBlYXNpbmcgZm9yIHRyYW5zaXRpb25zIGFuZCBhbmltYXRpb25zLCBhbG9uZyB3aXRoIHZhbHVlcyBmb3IgbW9kaWZpZXIgY2xhc3NlcyB0byBjaGFuZ2UgdGhlIGVhc2luZy5cbi8vLyBAdHlwZSBNYXBcbiRtb3Rpb24tdWktZWFzaW5nczogKFxuICBkZWZhdWx0OiBsaW5lYXIsXG4gIGxpbmVhcjogbGluZWFyLFxuICBlYXNlOiBlYXNlLFxuICBlYXNlLWluOiBlYXNlLWluLFxuICBlYXNlLW91dDogZWFzZS1vdXQsXG4gIGVhc2UtaW4tb3V0OiBlYXNlLWluLW91dCxcbiAgYm91bmNlLWluOiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjI0LCAxLjI0NSksXG4gIGJvdW5jZS1vdXQ6IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuNTE1LCAwLjg0NSksXG4gIGJvdW5jZS1pbi1vdXQ6IGN1YmljLWJlemllcigwLjc2LCAtMC4yNDUsIDAuMjQsIDEuMjQ1KSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBNaXNjZWxsYW5lb3VzIHNldHRpbmdzIHJlbGF0ZWQgdG8gTW90aW9uIFVJLlxuLy8vIEB0eXBlIE1hcFxuLy8vIEBwcm9wIHtCb29sZWFufSBzbGlkZS1hbmQtZmFkZSBbZmFsc2VdIC0gRGVmaW5lcyBpZiBzbGlkZSBtb3Rpb25zIHNob3VsZCBhbHNvIGZhZGUgaW4vb3V0LlxuLy8vIEBwcm9wIHtCb29sZWFufSBzbGlkZS1hbmQtZmFkZSBbdHJ1ZV0gLSBEZWZpbmVzIGlmIGhpbmdlIG1vdGlvbnMgc2hvdWxkIGFsc28gZmFkZSBpbi9vdXQuXG4vLy8gQHByb3Age0Jvb2xlYW59IHNsaWRlLWFuZC1mYWRlIFt0cnVlXSAtIERlZmluZXMgaWYgc2NhbGUgbW90aW9ucyBzaG91bGQgYWxzbyBmYWRlIGluL291dC5cbi8vLyBAcHJvcCB7Qm9vbGVhbn0gc2xpZGUtYW5kLWZhZGUgW3RydWVdIC0gRGVmaW5lcyBpZiBzcGluIG1vdGlvbnMgc2hvdWxkIGFsc28gZmFkZSBpbi9vdXQuXG4kbW90aW9uLXVpLXNldHRpbmdzOiAoXG4gIHNsaWRlLWFuZC1mYWRlOiBmYWxzZSxcbiAgaGluZ2UtYW5kLWZhZGU6IHRydWUsXG4gIHNjYWxlLWFuZC1mYWRlOiB0cnVlLFxuICBzcGluLWFuZC1mYWRlOiB0cnVlLFxuICBhY3RpdmF0ZS1xdWV1ZS1jbGFzczogJ2lzLWFuaW1hdGluZycsXG4pICFkZWZhdWx0O1xuIiwiLy8gSW50ZXJuYWwgY291bnRlciBmb3IgY3JlYXRpbmcgdW5pcXVlIGtleWZyYW1lIG5hbWVzXG4kLW11aS1jdXN0b206IDA7XG5cbi8vLyBDcmVhdGVzIGEga2V5ZnJhbWUgZnJvbSBvbmUgb3IgbW9yZSBlZmZlY3QgZnVuY3Rpb25zLiBVc2UgdGhpcyBmdW5jdGlvbiBpbnN0ZWFkIG9mIGBtdWktYW5pbWF0aW9uYCBpZiB5b3Ugd2FudCB0byBjcmVhdGUgYSBrZXlmcmFtZSBhbmltYXRpb24gKndpdGhvdXQqIGF1dG9tYXRpY2FsbHkgYXNzaWduaW5nIGl0IHRvIHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSAtIE5hbWUgb2YgdGhlIGtleWZyYW1lLlxuLy8vIEBwYXJhbSB7RnVuY3Rpb259ICRlZmZlY3RzLi4uIC0gT25lIG9yIG1vcmUgZWZmZWN0IGZ1bmN0aW9ucyB0byBidWlsZCB0aGUga2V5ZnJhbWUgd2l0aC5cbkBtaXhpbiBtdWkta2V5ZnJhbWVzKCRuYW1lLCAkZWZmZWN0cy4uLikge1xuICAkb2JqOiAtbXVpLXByb2Nlc3MtYXJncygkZWZmZWN0cy4uLik7XG4gICRvYmo6IG1hcC1yZW1vdmUoJG9iaiwgbmFtZSk7XG5cbiAgQGtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgLy8gTm93IGl0ZXJhdGUgdGhyb3VnaCBlYWNoIGtleWZyYW1lIHBlcmNlbnRhZ2VcbiAgICBAZWFjaCAkcGN0LCAkcHJvcHMgaW4gJG9iaiB7XG4gICAgICAjey1tdWkta2V5ZnJhbWUtcGN0KCRwY3QpfSB7XG4gICAgICAgIC8vIExhc3RseSwgaXRlcmF0ZSB0aHJvdWdoIGVhY2ggQ1NTIHByb3BlcnR5IHdpdGhpbiBhIHBlcmNlbnRhZ2UgYW5kIHByaW50IGl0IG91dFxuICAgICAgICBAZWFjaCAkcHJvcCwgJHZhbHVlIGluICRwcm9wcyB7XG4gICAgICAgICAgI3skcHJvcH06ICN7JHZhbHVlfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIHN0cmluZyBmb3IgYSBDU1Mga2V5ZnJhbWUsIGJ5IGNvbnZlcnRpbmcgYSBsaXN0IG9mIG51bWJlcnMgdG8gYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBwZXJjZW50YWdlIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkaW5wdXQgLSBMaXN0IG9mIG51bWJlcnMgdG8gdXNlLlxuLy8vIEByZXR1cm4ge1N0cmluZ30gQSBzZXQgb2YgY29tbWEtc2VwYXJhdGVkIHBlcmNlbnRhZ2UgdmFsdWVzLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQGZ1bmN0aW9uIC1tdWkta2V5ZnJhbWUtcGN0KCRpbnB1dCkge1xuICAkb3V0cHV0OiAoKTtcblxuICBAaWYgdHlwZS1vZigkaW5wdXQpID09ICdudW1iZXInIHtcbiAgICAkb3V0cHV0OiAoJGlucHV0ICogMSUpO1xuICB9IEBlbHNlIGlmIHR5cGUtb2YoJGlucHV0KSA9PSAnbGlzdCcge1xuICAgIEBlYWNoICRpIGluICRpbnB1dCB7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgKCRpICogMSUpLCBjb21tYSk7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkb3V0cHV0O1xufVxuXG4vLy8gUHJpbnRzIHRoZSBDU1MgcHJvcGVydGllcyBmcm9tIGEgc3BlY2lmaWMga2V5IGluIGEga2V5ZnJhbWVzIG1hcC4gVXNlZCB0byBib3Jyb3cgQ1NTIGZyb20ga2V5ZnJhbWUgZnVuY3Rpb25zIGZvciB1c2UgaW4gdHJhbnNpdGlvbnMuXG4vLy8gQHBhcmFtIHtNYXB9ICRrZiAtIEtleWZyYW1lIG1hcCB0byBleHRyYWN0IGZyb20uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRrZXkgLSBLZXkgaW4gdGhlIG1hcCB0byBwcmludCB0aGUgQ1NTIG9mLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQG1peGluIC1tdWkta2V5ZnJhbWUtZ2V0KCRrZiwgJGtleSkge1xuICAkbWFwOiBtYXAtZ2V0KCRrZiwgJGtleSk7XG5cbiAgQGVhY2ggJHByb3AsICR2YWx1ZSBpbiAkbWFwIG9yICgpIHtcbiAgICAvLyBTb21lIGtleWZyYW1lIG1hcHMgc3RvcmUgdHJhbnNmb3JtcyBhcyBxdW90ZWQgc3RyaW5nc1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ3N0cmluZycge1xuICAgICAgJHZhbHVlOiB1bnF1b3RlKCR2YWx1ZSk7XG4gICAgfVxuICAgICN7JHByb3B9OiAkdmFsdWU7XG4gIH1cbn1cblxuLy8vIFJlZm9ybWF0cyBhIG1hcCBjb250YWluaW5nIGtleXMgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzLCBzbyB0aGF0IGVhY2gga2V5IGlzIGEgc2luZ2xlIHZhbHVlLlxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHNwbGl0IHVwLlxuLy8vIEByZXR1cm4ge01hcH0gQSByZWZvcm1hdHRlZCBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gLW11aS1rZXlmcmFtZS1zcGxpdCgkbWFwKSB7XG4gICRuZXctbWFwOiAoKTtcblxuICAvLyBTcGxpdCBrZXlzIHdpdGggbXVsdGlwbGUgdmFsdWVzIGludG8gaW5kaXZpZHVhbCBrZXlzXG4gIEBlYWNoICRrZXksICRpdGVtIGluICRtYXAge1xuICAgICRrZXktdHlwZTogdHlwZS1vZigka2V5KTtcblxuICAgIEBpZiAka2V5LXR5cGUgPT0gJ251bWJlcicge1xuICAgICAgJG5ldy1tYXA6IG1hcC1tZXJnZSgkbmV3LW1hcCwgKCRrZXk6ICRpdGVtKSk7XG4gICAgfSBAZWxzZSBpZiAka2V5LXR5cGUgPT0gJ2xpc3QnIHtcbiAgICAgIEBlYWNoICRrIGluICRrZXkge1xuICAgICAgICAkbmV3LW1hcDogbWFwLW1lcmdlKCRuZXctbWFwLCAoJGs6ICRpdGVtKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkbmV3LW1hcDtcbn1cblxuLy8vIENvbWJpbmVzIGEgc2VyaWVzIG9mIGtleWZyYW1lIG9iamVjdHMgaW50byBvbmUuXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXBzLi4uIC0gQSBzZXJpZXMgb2YgbWFwcyB0byBtZXJnZSwgYXMgaW5kaXZpZHVhbCBwYXJhbWV0ZXJzLlxuLy8vIEByZXR1cm4ge01hcH0gQSBjb21iaW5lZCBrZXlmcmFtZSBvYmplY3QuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gLW11aS1rZXlmcmFtZS1jb21iaW5lKCRtYXBzLi4uKSB7XG4gICRuZXctbWFwOiAoKTtcblxuICAvLyBJdGVyYXRlIHRocm91Z2ggZWFjaCBtYXAgcGFzc2VkIGluXG4gIEBlYWNoICRtYXAgaW4gJG1hcHMge1xuICAgIEBpZiB0eXBlLW9mKCRtYXApID09ICdzdHJpbmcnIHtcbiAgICAgICRtYXA6IGNhbGwoJG1hcCk7XG4gICAgfVxuXG4gICAgJG1hcDogLW11aS1rZXlmcmFtZS1zcGxpdCgkbWFwKTtcblxuICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCBlYWNoIGtleWZyYW1lIGluIHRoZSBtYXBcbiAgICAvLyAka2V5IGlzIHRoZSBrZXlmcmFtZSBwZXJjZW50YWdlXG4gICAgLy8gJHZhbHVlIGlzIGEgbWFwIG9mIENTUyBwcm9wZXJ0aWVzXG4gICAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xuICAgICAgJG5ldy12YWx1ZTogKCk7XG5cbiAgICAgIEBpZiBtYXAtaGFzLWtleSgkbmV3LW1hcCwgJGtleSkge1xuICAgICAgICAvLyBJZiB0aGUgbWFwIGFscmVhZHkgaGFzIHRoZSBrZXlmcmFtZSAlLCBhcHBlbmQgdGhlIG5ldyBwcm9wZXJ0eVxuICAgICAgICAkbmV3LXZhbHVlOiAtbXVpLW1lcmdlLXByb3BlcnRpZXMobWFwLWdldCgkbmV3LW1hcCwgJGtleSksICR2YWx1ZSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgLy8gT3RoZXJ3aXNlLCBjcmVhdGUgYSBuZXcgbWFwIHdpdGggdGhlIG5ldyBwcm9wZXJ0eVxuICAgICAgICAkbmV3LXZhbHVlOiAkdmFsdWU7XG4gICAgICB9XG5cbiAgICAgIC8vIEZpbmFsbHksIG1lcmdlIHRoZSBtb2RpZmllZCBrZXlmcmFtZSB2YWx1ZSBpbnRvIHRoZSBvdXRwdXQgbWFwXG4gICAgICAkbmV3LW1hcDogbWFwLW1lcmdlKCRuZXctbWFwLCAoJGtleTogJG5ldy12YWx1ZSkpO1xuICAgIH1cbiAgfVxuXG4gIC8vIE1ha2UgYSBuYW1lIGZvciB0aGUga2V5ZnJhbWVzXG4gICQtbXVpLWN1c3RvbTogJC1tdWktY3VzdG9tICsgMSAhZ2xvYmFsO1xuICAkbWFwLW5hbWU6IChuYW1lOiAnY3VzdG9tLSN7JC1tdWktY3VzdG9tfScpO1xuICAkbmV3LW1hcDogbWFwLW1lcmdlKCRuZXctbWFwLCAkbWFwLW5hbWUpO1xuXG4gIEByZXR1cm4gJG5ldy1tYXA7XG59XG5cbi8vLyBDb21iaW5lcyB0d28gbWFwcyBvZiBDU1MgcHJvcGVydGllcyBpbnRvIG9uZSBtYXAuIElmIGJvdGggbWFwcyBoYXZlIGEgdHJhbnNmb3JtIHByb3BlcnR5LCB0aGUgdmFsdWVzIGZyb20gZWFjaCB3aWxsIGJlIGNvbWJpbmVkIGludG8gb25lIHByb3BlcnR5LlxuLy8vIEBwYXJhbSB7TWFwfSAkb25lIC0gRmlyc3QgbWFwIHRvIG1lcmdlLlxuLy8vIEBwYXJhbSB7TWFwfSAkdHdvIC0gU2Vjb25kIG1hcCB0byBtZXJnZS5cbi8vLyBAcmV0dXJuIHtNYXB9IEEgY29tYmluZWQgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQGZ1bmN0aW9uIC1tdWktbWVyZ2UtcHJvcGVydGllcygkb25lLCAkdHdvKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkb25lLCB0cmFuc2Zvcm0pIGFuZCBtYXAtaGFzLWtleSgkdHdvLCB0cmFuc2Zvcm0pIHtcbiAgICAkdHJhbnNmb3JtOiBqb2luKG1hcC1nZXQoJG9uZSwgdHJhbnNmb3JtKSwgbWFwLWdldCgkdHdvLCB0cmFuc2Zvcm0pKTtcbiAgICAkb25lOiBtYXAtbWVyZ2UoJG9uZSwgKHRyYW5zZm9ybTogJHRyYW5zZm9ybSkpO1xuICAgICR0d286IG1hcC1yZW1vdmUoJHR3bywgdHJhbnNmb3JtKTtcbiAgfVxuXG4gIEByZXR1cm4gbWFwLW1lcmdlKCRvbmUsICR0d28pO1xufVxuIiwiLy8vIENyZWF0ZXMgYSBzbGlkaW5nIHRyYW5zaXRpb24gYnkgdHJhbnNsYXRpbmcgdGhlIGVsZW1lbnQgaG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyZWN0aW9uIFtsZWZ0XSAtIERpcmVjdGlvbiB0byBzbGlkZSB0by4gQ2FuIGJlIGB1cGAsIGByaWdodGAsIGBkb3duYCwgb3IgYGxlZnRgLlxuLy8vIEBwYXJhbSB7TGVuZ3RofSAkYW1vdW50IFsxMDAlXSAtIExlbmd0aCBvZiB0aGUgc2xpZGUgYXMgYSBwZXJjZW50YWdlIHZhbHVlLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZmFkZSB0aGUgZWxlbWVudCBpbiBvciBvdXQgc2ltdWx0YW5lb3VzbHkuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gbXVpLXNsaWRlIChcbiAgJHN0YXRlOiBpbixcbiAgJGRpcmVjdGlvbjogbGVmdCxcbiAgJGFtb3VudDogMTAwJSxcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgc2xpZGUtYW5kLWZhZGUpLFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gICRzbGlkZTogc2xpZGUoJHN0YXRlLCAkZGlyZWN0aW9uLCAkYW1vdW50KTtcblxuICAvLyBDU1MgT3V0cHV0XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzbGlkZSwgMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAwLCAxKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB9XG5cbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2xpZGUsIDEwMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAxLCAwKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBDcmVhdGVzIGEgZmFkZSB0cmFuc2l0aW9uIGJ5IGFkanVzdGluZyB0aGUgb3BhY2l0eSBvZiB0aGUgZWxlbWVudC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZyb20gWzBdIC0gT3BhY2l0eSB0byBzdGFydCBhdC4gTXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0byBbMV0gLSBPcGFjaXR5IHRvIGVuZCBvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkdXJhdGlvbiBbbnVsbF0gLSBMZW5ndGggKHNwZWVkKSBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR8RnVuY3Rpb259ICR0aW1pbmcgW251bGxdIC0gRWFzaW5nIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheSBbbnVsbF0gLSBEZWxheSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHRyYW5zaXRpb24gc3RhcnRzLlxuQG1peGluIG11aS1mYWRlKFxuICAkc3RhdGU6IGluLFxuICAkZnJvbTogMCxcbiAgJHRvOiAxLFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gICRmYWRlOiBmYWRlKCRmcm9tLCAkdG8pO1xuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRmYWRlLCAwKTtcblxuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkZmFkZSwgMTAwKTtcbiAgfVxufVxuIiwiLy8vIENyZWF0ZXMgYSBoaW5nZSBlZmZlY3QgYnkgcm90YXRpbmcgdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZnJvbSBbbGVmdF0gLSBFZGdlIG9mIHRoZSBlbGVtZW50IHRvIHJvdGF0ZSBmcm9tLiBDYW4gYmUgYHRvcGAsIGByaWdodGAsIGBib3R0b21gLCBvciBgbGVmdGAuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkYXhpcyBbZWRnZV0gLSBBeGlzIG9mIHRoZSBlbGVtZW50IHRvIHJvdGF0ZSBvbi4gQ2FuIGJlIGBlZGdlYCBvciBgY2VudGVyYC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHBlcnNwZWN0aXZlIFsyMDAwcHhdIC0gUGVyY2VpdmVkIGRpc3RhbmNlIGJldHdlZW4gdGhlIHZpZXdlciBhbmQgdGhlIGVsZW1lbnQuIEEgaGlnaGVyIG51bWJlciB3aWxsIG1ha2UgdGhlIHJvdGF0aW9uIGVmZmVjdCBtb3JlIHByb25vdW5jZWQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHVybi1vcmlnaW4gW2Zyb20tYmFja10gLSBTaWRlIG9mIHRoZSBlbGVtZW50IHRvIHN0YXJ0IHRoZSByb3RhdGlvbiBmcm9tLiBDYW4gYmUgYGZyb20tYmFja2Agb3IgYGZyb20tZnJvbnRgLlxuQGZ1bmN0aW9uIGhpbmdlIChcbiAgJHN0YXRlOiBpbixcbiAgJGZyb206IGxlZnQsXG4gICRheGlzOiBlZGdlLFxuICAkcGVyc3BlY3RpdmU6IDIwMDBweCxcbiAgJHR1cm4tb3JpZ2luOiBmcm9tLWJhY2tcbikge1xuICAvLyBSb3RhdGlvbiBkaXJlY3Rpb25zIHdoZW4gaGluZ2luZyBmcm9tIGJhY2sgdnMuIGZyb250XG4gICRyb3RhdGlvbi1hbW91bnQ6IDkwZGVnO1xuICAkcm90YXRpb25zLWJhY2s6IChcbiAgICB0b3A6IHJvdGF0ZVgoJHJvdGF0aW9uLWFtb3VudCAqIC0xKSxcbiAgICByaWdodDogcm90YXRlWSgkcm90YXRpb24tYW1vdW50ICogLTEpLFxuICAgIGJvdHRvbTogcm90YXRlWCgkcm90YXRpb24tYW1vdW50KSxcbiAgICBsZWZ0OiByb3RhdGVZKCRyb3RhdGlvbi1hbW91bnQpLFxuICApO1xuICAkcm90YXRpb25zLWZyb206IChcbiAgICB0b3A6IHJvdGF0ZVgoJHJvdGF0aW9uLWFtb3VudCksXG4gICAgcmlnaHQ6IHJvdGF0ZVkoJHJvdGF0aW9uLWFtb3VudCksXG4gICAgYm90dG9tOiByb3RhdGVYKCRyb3RhdGlvbi1hbW91bnQgKiAtMSksXG4gICAgbGVmdDogcm90YXRlWSgkcm90YXRpb24tYW1vdW50ICogLTEpLFxuICApO1xuXG4gIC8vIFJvdGF0aW9uIG9yaWdpblxuICAkcm90YXRpb246ICcnO1xuICBAaWYgJHR1cm4tb3JpZ2luID09IGZyb20tZnJvbnQge1xuICAgICRyb3RhdGlvbjogbWFwLWdldCgkcm90YXRpb25zLWZyb20sICRmcm9tKTtcbiAgfSBAZWxzZSBpZiAkdHVybi1vcmlnaW4gPT0gZnJvbS1iYWNrIHtcbiAgICAkcm90YXRpb246IG1hcC1nZXQoJHJvdGF0aW9ucy1iYWNrLCAkZnJvbSk7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuICckdHVybi1vcmlnaW4gbXVzdCBiZSBlaXRoZXIgXCJmcm9tLWJhY2tcIiBvciBcImZyb20tZnJvbnRcIic7XG4gIH1cblxuICAvLyBTdGFydCBhbmQgZW5kIHN0YXRlXG4gICRzdGFydDogJyc7XG4gICRlbmQ6ICcnO1xuICBAaWYgJHN0YXRlID09IGluIHtcbiAgICAkc3RhcnQ6IHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkgJHJvdGF0aW9uO1xuICAgICRlbmQ6IHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkgcm90YXRlKDBkZWcpO1xuICB9IEBlbHNlIHtcbiAgICAkc3RhcnQ6IHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkgcm90YXRlKDBkZWcpO1xuICAgICRlbmQ6IHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkgJHJvdGF0aW9uO1xuICB9XG5cbiAgLy8gVHVybiBheGlzXG4gICRvcmlnaW46ICcnO1xuICBAaWYgJGF4aXMgPT0gZWRnZSB7XG4gICAgJG9yaWdpbjogJGZyb207XG4gIH0gQGVsc2Uge1xuICAgICRvcmlnaW46IGNlbnRlcjtcbiAgfVxuXG4gICRrZXlmcmFtZXM6IChcbiAgICBuYW1lOiAnaGluZ2UtI3skc3RhdGV9LSN7JGZyb219LSN7JGF4aXN9LSN7JHR1cm4tb3JpZ2lufScsXG4gICAgMDogKHRyYW5zZm9ybTogJHN0YXJ0LCB0cmFuc2Zvcm0tb3JpZ2luOiAkb3JpZ2luKSxcbiAgICAxMDA6ICh0cmFuc2Zvcm06ICRlbmQpLFxuICApO1xuXG4gIEByZXR1cm4gJGtleWZyYW1lcztcbn1cbiIsIi8vLyBDcmVhdGVzIGEgaGluZ2UgdHJhbnNpdGlvbiBieSByb3RhdGluZyB0aGUgZWxlbWVudC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRmcm9tIFtsZWZ0XSAtIEVkZ2Ugb2YgdGhlIGVsZW1lbnQgdG8gcm90YXRlIGZyb20uIENhbiBiZSBgdG9wYCwgYHJpZ2h0YCwgYGJvdHRvbWAsIG9yIGBsZWZ0YC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRheGlzIFtlZGdlXSAtIEF4aXMgb2YgdGhlIGVsZW1lbnQgdG8gcm90YXRlIG9uLiBDYW4gYmUgYGVkZ2VgIG9yIGBjZW50ZXJgLlxuLy8vIEBwYXJhbSB7TGVuZ3RofSAkcGVyc3BlY3RpdmUgWzIwMDBweF0gLSBQZXJjZWl2ZWQgZGlzdGFuY2UgYmV0d2VlbiB0aGUgdmlld2VyIGFuZCB0aGUgZWxlbWVudC4gQSBoaWdoZXIgbnVtYmVyIHdpbGwgbWFrZSB0aGUgcm90YXRpb24gZWZmZWN0IG1vcmUgcHJvbm91bmNlZC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR0dXJuLW9yaWdpbiBbZnJvbS1iYWNrXSAtIFNpZGUgb2YgdGhlIGVsZW1lbnQgdG8gc3RhcnQgdGhlIHJvdGF0aW9uIGZyb20uIENhbiBiZSBgZnJvbS1iYWNrYCBvciBgZnJvbS1mcm9udGAuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZmFkZSBbdHJ1ZV0gLSBTZXQgdG8gYHRydWVgIHRvIGZhZGUgdGhlIGVsZW1lbnQgaW4gb3Igb3V0IHNpbXVsdGFuZW91c2x5LlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkdXJhdGlvbiBbbnVsbF0gLSBMZW5ndGggKHNwZWVkKSBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR8RnVuY3Rpb259ICR0aW1pbmcgW251bGxdIC0gRWFzaW5nIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheSBbbnVsbF0gLSBEZWxheSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHRyYW5zaXRpb24gc3RhcnRzLlxuQG1peGluIG11aS1oaW5nZSAoXG4gICRzdGF0ZTogaW4sXG4gICRmcm9tOiBsZWZ0LFxuICAkYXhpczogZWRnZSxcbiAgJHBlcnNwZWN0aXZlOiAyMDAwcHgsXG4gICR0dXJuLW9yaWdpbjogZnJvbS1iYWNrLFxuICAkZmFkZTogbWFwLWdldCgkbW90aW9uLXVpLXNldHRpbmdzLCBoaW5nZS1hbmQtZmFkZSksXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJGhpbmdlOiBoaW5nZSgkc3RhdGUsICRmcm9tLCAkYXhpcywgJHBlcnNwZWN0aXZlLCAkdHVybi1vcmlnaW4pO1xuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRoaW5nZSwgMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAwLCAxKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkaGluZ2UsIDEwMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAxLCAwKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBDcmVhdGVzIGEgc2NhbGluZyB0cmFuc2l0aW9uLiBBIHNjYWxlIG9mIGAxYCBtZWFucyB0aGUgZWxlbWVudCBpcyB0aGUgc2FtZSBzaXplLiBMYXJnZXIgbnVtYmVycyBtYWtlIHRoZSBlbGVtZW50IGJpZ2dlciwgd2hpbGUgbnVtYmVycyBsZXNzIHRoYW4gMSBtYWtlIHRoZSBlbGVtZW50IHNtYWxsZXIuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmcm9tIFsxLjVdIC0gU2l6ZSB0byBzdGFydCBhdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZyb20gWzFdIC0gU2l6ZSB0byBlbmQgYXQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZmFkZSBbdHJ1ZV0gLSBTZXQgdG8gYHRydWVgIHRvIGZhZGUgdGhlIGVsZW1lbnQgaW4gb3Igb3V0IHNpbXVsdGFuZW91c2x5LlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkdXJhdGlvbiBbbnVsbF0gLSBMZW5ndGggKHNwZWVkKSBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR8RnVuY3Rpb259ICR0aW1pbmcgW251bGxdIC0gRWFzaW5nIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheSBbbnVsbF0gLSBEZWxheSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHRyYW5zaXRpb24gc3RhcnRzLlxuQG1peGluIG11aS16b29tKFxuICAkc3RhdGU6IGluLFxuICAkZnJvbTogMS41LFxuICAkdG86IDEsXG4gICRmYWRlOiBtYXAtZ2V0KCRtb3Rpb24tdWktc2V0dGluZ3MsIHNjYWxlLWFuZC1mYWRlKSxcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICAkc2NhbGU6IHpvb20oJGZyb20sICR0byk7XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1zdGFydCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWJhc2ljcygkZHVyYXRpb24sICR0aW1pbmcsICRkZWxheSk7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNjYWxlLCAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDAsIDEpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tZW5kKCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzY2FsZSwgMTAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDEsIDApO1xuICAgIH1cbiAgfVxufVxuIiwiLy8vIENyZWF0ZXMgYSBzcGlubmluZyB0cmFuc2l0aW9uIGJ5IHJvdGF0aW5nIHRoZSBlbGVtZW50LiBUaGUgYHR1cm5gIHVuaXQgaXMgdXNlZCB0byBzcGVjaWZ5IGhvdyBmYXIgdG8gcm90YXRlLiBgMXR1cm5gIGlzIGVxdWFsIHRvIGEgMzYwLWRlZ3JlZSBzcGluLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGRpcmVjdGlvbiBbY3ddIC0gRGlyZWN0aW9uIHRvIHNwaW4uIFNob3VsZCBiZSBgY3dgIChjbG9ja3dpc2UpIG9yIGBjY3dgIChjb3VudGVyY2xvY2t3aXNlKS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGFtb3VudCBbMC43NXR1cm5dIC0gQW1vdW50IHRvIGVsZW1lbnQgdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZmFkZSBbZmFsc2VdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktc3BpbihcbiAgJHN0YXRlOiBpbixcbiAgJGRpcmVjdGlvbjogY3csXG4gICRhbW91bnQ6IDAuNzV0dXJuLFxuICAkZmFkZTogbWFwLWdldCgkbW90aW9uLXVpLXNldHRpbmdzLCBzcGluLWFuZC1mYWRlKSxcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICAkc3Bpbjogc3Bpbigkc3RhdGUsICRkaXJlY3Rpb24sICRhbW91bnQpO1xuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzcGluLCAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDAsIDEpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tZW5kKCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzcGluLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIGtleWZyYW1lIGZyb20gb25lIG9yIG1vcmUgZWZmZWN0IGZ1bmN0aW9ucyBhbmQgYXNzaWducyBpdCB0byB0aGUgZWxlbWVudCBieSBhZGRpbmcgdGhlIGBhbmltYXRpb24tbmFtZWAgcHJvcGVydHkuXG4vLy8gQHBhcmFtIHtGdW5jdGlvbn0gJGVmZmVjdHMuLi4gLSBPbmUgb3IgbW9yZSBlZmZlY3QgZnVuY3Rpb25zIHRvIGJ1aWxkIHRoZSBrZXlmcmFtZSB3aXRoLlxuQG1peGluIG11aS1hbmltYXRpb24oJGFyZ3MuLi4pIHtcbiAgJG5hbWU6IG1hcC1nZXQoLW11aS1wcm9jZXNzLWFyZ3MoJGFyZ3MuLi4pLCBuYW1lKTtcbiAgQGluY2x1ZGUgbXVpLWtleWZyYW1lcygkbmFtZSwgJGFyZ3MuLi4pO1xuICBhbmltYXRpb24tbmFtZTogdW5xdW90ZSgkbmFtZSk7XG59XG4iLCJAY2hhcnNldCAndXRmLTgnO1xuXG5cbkBpbXBvcnQgJ3NldHRpbmdzJztcbkBpbXBvcnQgJ2ZvdW5kYXRpb24nO1xuQGltcG9ydCAnbW90aW9uLXVpJztcblxuQGluY2x1ZGUgZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzO1xuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLWdyaWQ7XG4vL0BpbmNsdWRlIGZvdW5kYXRpb24tZmxleC1ncmlkO1xuXG5AaW5jbHVkZSBmb3VuZGF0aW9uLXh5LWdyaWQtY2xhc3NlcztcbkBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeTtcbkBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1mb3Jtcztcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tcmFuZ2UtaW5wdXQ7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnU7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWJhZGdlO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1icmVhZGNydW1icztcbkBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1jYWxsb3V0O1xuQGluY2x1ZGUgZm91bmRhdGlvbi1jYXJkO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1jbG9zZS1idXR0b247XG5AaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnU7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnUtaWNvbjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnU7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bi1tZW51O1xuQGluY2x1ZGUgZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1sYWJlbDtcbkBpbmNsdWRlIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0O1xuQGluY2x1ZGUgZm91bmRhdGlvbi1vZmYtY2FudmFzO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1vcmJpdDtcbkBpbmNsdWRlIGZvdW5kYXRpb24tcGFnaW5hdGlvbjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1zbGlkZXI7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXN0aWNreTtcbkBpbmNsdWRlIGZvdW5kYXRpb24tcmV2ZWFsO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1zd2l0Y2g7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXRhYmxlO1xuQGluY2x1ZGUgZm91bmRhdGlvbi10YWJzO1xuQGluY2x1ZGUgZm91bmRhdGlvbi10aHVtYm5haWw7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXRpdGxlLWJhcjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tdG9vbHRpcDtcbkBpbmNsdWRlIGZvdW5kYXRpb24tdG9wLWJhcjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWNsYXNzZXM7XG5cbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLWNsYXNzZXM7XG5cbkBpbmNsdWRlIG1vdGlvbi11aS10cmFuc2l0aW9ucztcbkBpbmNsdWRlIG1vdGlvbi11aS1hbmltYXRpb25zO1xuXG4vKlxuICBNeSBjdXN0b20gc3R5bGVzOlxuICBBZGQgeW91ciBzY3NzIGZpbGVzIGJlbG93IHRvIHN0cnVjdHVyZSB5b3VyIHByb2plY3Qgc3R5bGVzXG4qL1xuXG4vLyBHbG9iYWxcbkBpbXBvcnQgXCJnbG9iYWwvYWNjZXNzaWJpbGl0eVwiO1xuQGltcG9ydCBcImdsb2JhbC9jb2xvcnNcIjtcbkBpbXBvcnQgXCJnbG9iYWwvd3AtYWRtaW5cIjtcbkBpbXBvcnQgXCJnbG9iYWwvd3Atb3ZlcnJpZGVzXCI7XG5cbi8vIE1vZHVsZXNcbkBpbXBvcnQgXCJtb2R1bGVzL25hdmlnYXRpb25cIjtcbkBpbXBvcnQgXCJtb2R1bGVzL2NvbnRlbnRcIjtcbkBpbXBvcnQgXCJtb2R1bGVzL2Zvb3RlclwiO1xuQGltcG9ydCBcIm1vZHVsZXMvZWRpdG9yLXN0eWxlXCI7XG5cbi8vIENvbXBvbmVudHNcbkBpbXBvcnQgXCJjb21wb25lbnRzL2J1dHRvbnNcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2NhcmRzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9mZWF0dXJlZC1pbWFnZVwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvZGl2aWRlcnNcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2xpbmtzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9hY2NvcmRpb25cIjtcblxuLy8gVGVtcGxhdGVzXG5AaW1wb3J0IFwidGVtcGxhdGVzL2Zyb250XCI7XG5AaW1wb3J0IFwidGVtcGxhdGVzL2RlcGFydG1lbnRzXCI7XG5AaW1wb3J0IFwidGVtcGxhdGVzL2NhcnJpZXJzXCI7XG5AaW1wb3J0IFwidGVtcGxhdGVzL3N0YW5kYXJkLWNvbnRlbnRcIjtcbkBpbXBvcnQgXCJ0ZW1wbGF0ZXMvbWVldC10ZWFtXCI7XG5AaW1wb3J0IFwidGVtcGxhdGVzL25ld3MtbWVkaWFcIjtcbkBpbXBvcnQgXCJ0ZW1wbGF0ZXMvdmFsdWF0aW9uc1wiO1xuQGltcG9ydCBcInRlbXBsYXRlcy9hdWN0aW9uLWNhbGVuZGFyXCI7XG5AaW1wb3J0IFwidGVtcGxhdGVzL21ha2UtcGF5bWVudFwiO1xuQGltcG9ydCBcInRlbXBsYXRlcy9jb250YWN0XCI7XG5AaW1wb3J0IFwidGVtcGxhdGVzL2hvdy10b1wiO1xuXG4vL0N1c3RvbVxuQGltcG9ydCBcImdsb2JhbC9sYXlvdXQtYW5kLWRlZmF1bHRzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3NsaWNrLWNhcm91c2VsL3NsaWNrL3NsaWNrLXRoZW1lLnNjc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvc2xpY2stY2Fyb3VzZWwvc2xpY2svc2xpY2suc2Nzc1wiO1xuQGltcG9ydCBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9oYW1idXJnZXJzL19zYXNzL2hhbWJ1cmdlcnMvaGFtYnVyZ2Vyc1wiOyIsIi8vIFRleHQgbWVhbnQgb25seSBmb3Igc2NyZWVuIHJlYWRlcnMuIEFkZHJlc3NlcyBwYXJ0IG9mIHRoZW1lLWNoZWNrIGlzc3VlICM4NDAuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vQXV0b21hdHRpYy9fcy9ibG9iL21hc3Rlci9zdHlsZS5jc3Ncbi5zY3JlZW4tcmVhZGVyLXRleHQge1xuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDFweDtcbiAgd2lkdGg6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnNjcmVlbi1yZWFkZXItdGV4dDpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogMCAwIDJweCAycHggcmdiYSgwLCAwLCAwLCAwLjYpO1xuICBjbGlwOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMjE3NTliO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBsZWZ0OiA1cHg7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDE1cHggMjNweCAxNHB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRvcDogNXB4O1xuICB3aWR0aDogYXV0bztcbiAgei1pbmRleDogMTAwMDAwOyAvLyBBYm92ZSBXUCB0b29sYmFyLlxufVxuIiwiLy8gRml4IHRoZSBpc3N1ZSB3aGVyZSB0aGUgV1AgYWRtaW4tYmFyIG92ZXJsYXBzIHRoZSBtb2JpbGUgbWVudVxuI3dwYWRtaW5iYXIge1xuICBwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDtcbn1cblxuLy8gTWFrZSBzdXJlIHRoYXQgdGhlIFdQIGFkbWluLWJhciBkb2VzIG5vdCBvdmVybGFwIEZvdW5kYXRpb24gY29tcG9uZW50c1xuYm9keS5hZG1pbi1iYXIge1xuICAvLyBPZmZzZXQgc3RpY2t5IHRvcCBiYXJcbiAgJi5mLXRvcGJhci1maXhlZCB7XG4gICAgLnN0aWNreS5maXhlZCB7XG4gICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygzMik7XG4gICAgfVxuICB9XG4gIC8vIE9mZnNldCBtb2JpbGUgb2ZmLWNhbnZhcyBtZW51XG4gICYub2ZmY2FudmFzIHtcbiAgICAub2ZmLWNhbnZhcy5pcy1vcGVuIHtcbiAgICAgIHRvcDogcmVtLWNhbGMoNDYpO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCg3ODMpIHtcbiAgICAgICAgdG9wOiByZW0tY2FsYygzMik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIud3AtY2FwdGlvbiA+IGZpZ2NhcHRpb24ge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBjb2xvcjogIzk5OTtcbiAgcGFkZGluZzogMC4yNXJlbSAwO1xufVxuXG5wLndwLWNhcHRpb24tdGV4dHtcbiAgZm9udC1zaXplOjkwJTtcbiAgY29sb3I6ICM2NjY7XG4gIHBhZGRpbmc6cmVtLWNhbGMoMTApIDA7XG59XG5cbi5hbGlnbmxlZnQge1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgbWFyZ2luOiAwO1xufVxuXG4uYWxpZ25yaWdodCB7XG4gIGZsb2F0OiByaWdodDtcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICBtYXJnaW46IDA7XG59XG5cbi5hbGlnbmNlbnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuIiwiLy8gTmF2aWdhdGlvbiBicmVha3BvaW50c1xuLm1vYmlsZS1tZW51LFxuLnNpdGUtdGl0bGUtYmFyIHtcblx0QGluY2x1ZGUgaGlkZS1mb3IobGFyZ2UpO1xuXHR0cmFuc2l0aW9uOiBlYXNlLWluLW91dCBiYWNrZ3JvdW5kLWNvbG9yIDAuNXM7XG5cdCYuYWN0aXZlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkaGlnaGxpZ2h0LWNvbG9yO1xuXHR9XG59XG5cbi5kZXNrdG9wLW1lbnUsXG4uc2l0ZS1uYXZpZ2F0aW9uIC50b3AtYmFyLWxlZnQge1xuXHRAaW5jbHVkZSBzaG93LWZvcihsYXJnZSk7XG59XG5cbi8vIFNpdGUgdGl0bGVcbi5zaXRlLWRlc2t0b3AtdGl0bGUgYSB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vLyBNb2JpbGUgbWVudVxuLm1vYmlsZS1tZW51IHtcblx0ZGlzcGxheTogbm9uZTsgLy8gcHJldmVudHMgcmVwYWludCBjYXVzZWQgYnkgSlMgaGlkaW5nIG1lbnUgb25sb2FkXG59XG5cbi5vZmYtY2FudmFzIHtcblx0PiB1bC5tZW51IHtcblx0XHRoZWlnaHQ6IDEwMHZoO1xuXHRcdHBhZGRpbmc6IDFyZW07XG5cblx0XHRhIHtcblx0XHRcdGNvbG9yOiAkYmxhY2s7XG5cdFx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygxNSk7XG5cdFx0fVxuXG5cdFx0LnN1Ym1lbnUtdG9nZ2xlOjphZnRlciB7XG5cdFx0XHRib3JkZXItY29sb3I6ICRibGFjayB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcblx0XHR9XG5cdH1cblxuXHQubWVudSAuYWN0aXZlID4gYSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2NjYztcblx0fVxufVxuXG4udGl0bGUtYmFyIHtcblx0d2lkdGg6IDEwMCU7XG59XG5cbi50aXRsZS1iYXItdGl0bGUge1xuXHRhIHtcblx0XHRmb250LXNpemU6IDFyZW07XG5cdFx0Y29sb3I6ICNiOWI5Yjk7XG5cdH1cbn1cblxuLm1vYmlsZS1tZW51LFxuLm1vYmlsZS1vZmYtY2FudmFzLW1lbnUge1xuXHRtYXJnaW4tdG9wOiAwO1xuXG5cdC5tZW51IC5pcy1hY3RpdmUgPiBhIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRkYXJrLW5hdi1jb2xvciwgNSUpO1xuXHR9XG59XG5cbi8vIFRhYmxldCBhbmQgZGVza3RvcCBtZW51XG5cbi50b3AtYmFyIHtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG5cdC50b3AtYmFyLXRpdGxlIGEge1xuXHRcdGZvbnQtc2l6ZTogMXJlbTtcblx0XHRjb2xvcjogI2I5YjliOTtcblx0XHRwYWRkaW5nLWxlZnQ6IDMwcHg7XG5cdFx0bGluZS1oZWlnaHQ6IDEuODtcblx0fVxuXG5cdC5tZW51IHtcblx0XHRwYWRkaW5nLWJvdHRvbTogMXB4O1xuXHRcdC8vd2lkdGg6IGNhbGMoMTAwJSAtIDEwMHB4KTtcblx0XHQvL21hcmdpbjogMCBhdXRvO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGEge1xuXHRcdFx0Y29sb3I6ICRibGFjayAhaW1wb3J0YW50O1xuXHRcdFx0cGFkZGluZy10b3A6IDA7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogMDtcblx0XHRcdGZvbnQtc2l6ZTogMXJlbTtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdFx0dHJhbnNpdGlvbjogYm9yZGVyLWJvdHRvbS1jb2xvciBlYXNlLWluIDAuNXM7XG5cdFx0XHRmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHktLW1lZGl1bTtcblxuXHRcdFx0Jjpob3Zlcjpub3QoLmJ1dHRvbikge1xuXHRcdFx0XHRjb2xvcjogJGJsYWNrO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5tZW51IC5hY3RpdmUgPiBhIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuXHR9XG5cblx0Lm1lbnUgPiBsaTpub3QoLm1lbnUtdGV4dCkgPiBhIHtcblx0XHRwYWRkaW5nOiAxcmVtO1xuXHR9XG5cdC8vLm1lbnUgbGk6bm90KDpsYXN0LWNoaWxkKSB7IGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM0ZTRlNGU7IH1cblxuXHQuZHJvcGRvd24ubWVudSAuc3VibWVudSB7XG5cdFx0Ym9yZGVyOiAwO1xuXHR9XG5cdC5kcm9wZG93bi5tZW51IC5oYXMtc3VibWVudS5pcy1kb3duLWFycm93IGEge1xuXHRcdHBhZGRpbmctcmlnaHQ6IDFyZW07XG5cdH1cblx0LmRyb3Bkb3duLm1lbnUgLmhhcy1zdWJtZW51LmlzLWRvd24tYXJyb3cgPiBhOjphZnRlciB7XG5cdFx0Ym9yZGVyOiAwO1xuXHR9XG5cdC5kcm9wZG93bi5tZW51OmZpcnN0LWNoaWxkID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuXG4uc2l0ZS1uYXZpZ2F0aW9uIHtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG5cdFx0cGFkZGluZzogMDsgLy8gcHJldmVudHMgY29udGFpbmVyIHZpc2liaWxpdHkgb24gc21hbGwgc2NyZWVuc1xuXHR9XG59XG5cbiNtZW51LW1haW4tbWVudSB7XG5cdHBhZGRpbmctcmlnaHQ6IDUwcHg7XG59XG5cbiNtZW51LW1haW4tbWVudS0xIHtcblx0JjpiZWZvcmUsXG5cdCY6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0d2lkdGg6IDEwMHB4O1xuXHR9XG59XG5cbi8vIFdQIHBvc3QgbmF2aWdhdGlvblxuLnBvc3QtbmF2aWdhdGlvbiB7XG5cdEBpbmNsdWRlIGNsZWFyZml4O1xufVxuXG4ubmF2LXByZXZpb3VzIHtcblx0ZmxvYXQ6IGxlZnQ7XG59XG5cbi5uYXYtbmV4dCB7XG5cdGZsb2F0OiByaWdodDtcbn1cblxuLnNpdGUtbG9nbyB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW4tdG9wOiAxMHB4O1xuXHRAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuXHRcdG1hcmdpbi10b3A6IDE1cHg7XG5cdH1cblx0aW1nIHtcblx0XHRtYXgtd2lkdGg6IDIwMHB4O1xuXHR9XG59XG5cbi5zaXRlLW5hdmlnYXRpb24ge1xuXHRkaXNwbGF5OiBub25lO1xuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHQudG9wLWJhci1yaWdodCB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0cGFkZGluZy10b3A6IDE1cHg7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuXHRcdH1cblx0fVxuXHQudG9wLWJhci1sZWZ0LFxuXHQudG9wLWJhci1jZW50ZXIsXG5cdC50b3AtYmFyLXJpZ2h0IHtcblx0XHRmbGV4OiAwIDAgYXV0bztcblx0fVxufVxuXG4udG9wLWJhci1yaWdodCB7XG5cdC5idXR0b24tLW91dGxpbmUtb25seSxcblx0LmJ1dHRvbi0tdGV4dC1vbmx5IHtcblx0XHRtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbi8yO1xuXHRcdGZvbnQtc2l6ZTogMS4xcmVtO1xuXHRcdHBhZGRpbmc6IDEwcHggJGdsb2JhbC1tYXJnaW4vMjtcblx0XHRtYXJnaW4tcmlnaHQ6IDE1cHg7XG5cdH1cbn1cblxuLnRvcC1iYXItY2VudGVyIHtcblx0LmRyb3Bkb3duLm1lbnUgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcblx0XHQmLmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG5cdFx0XHR6LWluZGV4OiA5OTk7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkaGlnaGxpZ2h0LWNvbG9yO1xuXHRcdFx0d2lkdGg6IDI1MHB4O1xuXG5cdFx0XHQmOmFmdGVyLFxuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRib3R0b206IDEwMCU7XG5cdFx0XHRcdGxlZnQ6IDMwcHg7XG5cdFx0XHRcdGJvcmRlcjogc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdGNvbnRlbnQ6IFwiIFwiO1xuXHRcdFx0XHRoZWlnaHQ6IDA7XG5cdFx0XHRcdHdpZHRoOiAwO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdFx0fVxuXG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiByZ2JhKCRoaWdobGlnaHQtY29sb3IsIDApO1xuXHRcdFx0XHRib3JkZXItYm90dG9tLWNvbG9yOiAkaGlnaGxpZ2h0LWNvbG9yO1xuXHRcdFx0XHRib3JkZXItd2lkdGg6IDEwcHg7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAtMTBweDtcblx0XHRcdH1cblx0XHRcdGEge1xuXHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdC8vYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHdoaXRlLCAwLjEpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8vTW9iaWxlIE1lbnVcbi5zaXRlLWhlYWRlciB7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHR3aWR0aDogMTAwJTtcblx0ei1pbmRleDogMTAwO1xuXHQuYWRtaW4tYmFyICYge1xuXHRcdHRvcDogNDZweDtcblx0fVxuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cblx0XHQmLm5hdi1hY3RpdmV7XG5cdFx0XHRib3gtc2hhZG93OiAwcHggMnB4IDIuODVweCAwLjE1cHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcblx0XHR9XG5cdFx0Ly9wb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0LmFkbWluLWJhciAmIHtcblx0XHRcdHRvcDogMzJweDtcblx0XHR9XG5cdH1cblx0LmhhbWJ1cmdlciB7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHR9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjUwcHgpIHtcblx0LnNpdGUtbmF2aWdhdGlvbiB7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdC50b3AtYmFyLWxlZnQge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDMwcHg7XG5cdFx0fVxuXG5cdFx0LnRvcC1iYXItcmlnaHQge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAzMHB4O1xuXHRcdH1cblx0fVxufVxuXG4ub2ZmLWNhbnZhcy13cmFwcGVyIHtcblx0bWFyZ2luLXRvcDogNzBweDtcbn1cblxuLm1vYmlsZS1tZW51IC5tZW51IC5pcy1hY3RpdmUgPiBhLFxuLm1vYmlsZS1vZmYtY2FudmFzLW1lbnUgLm1lbnUgLmlzLWFjdGl2ZSA+IGEge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0Ly9ib3JkZXItYm90dG9tOiAzcHggc29saWQgJGJsYWNrO1xuXG5cdCY6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0d2lkdGg6IDUwJTtcblx0XHRoZWlnaHQ6IDNweDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0bWFyZ2luLXRvcDogMTBweDtcblx0fVxufVxuXG4jbWVudS1pdGVtLTcxIHtcblx0LmZpcnN0LXN1YiB7XG5cdFx0Y29sdW1uLWNvdW50OiAyO1xuXHRcdHdpZHRoOiA1MDBweDtcblx0fVxufVxuXG4uc2hvdy1zZWFyY2gge1xuXHRhIHtcblx0XHRmb250LXNpemU6IDAgIWltcG9ydGFudDtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Y29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdGhlaWdodDogMjBweDtcblx0XHRcdHdpZHRoOiAyMHB4O1xuXHRcdFx0YmFja2dyb3VuZDogdXJsKFwiaHR0cDovL2xlb25hcmQtam9lbC5zMy1hcC1zb3V0aGVhc3QtMi5hbWF6b25hd3MuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzExL3NlYXJjaC5wbmdcIikgbm8tcmVwZWF0O1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRcdH1cblx0fVxufVxuXG5pbnB1dC5zZWFyY2gtZmllbGQge1xuXHRkaXNwbGF5OiBub25lO1xuXHRmb250LXNpemU6IDEuMnJlbTtcblx0cGFkZGluZy1sZWZ0OiAxMHB4O1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0Y29sb3I6ICRibGFjaztcblx0b3V0bGluZTogbm9uZTtcblx0Ym9yZGVyOiAwO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAkYmxhY2s7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogNTAlO1xuXHR3aWR0aDogOTAlO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcblx0ei1pbmRleDogOTk5O1xuXHR0b3A6IDI1JTtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRmb250LXNpemU6IDNyZW07XG5cdFx0dG9wOiA1MCU7XG5cdFx0d2lkdGg6IDUwJTtcblx0fVxuXG5cdCY6OnBsYWNlaG9sZGVyIHtcblx0XHRjb2xvcjogJGJsYWNrO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0fVxufVxuXG4uc2VhcmNoX19jb250YWluZXIge1xuXHRoZWlnaHQ6IGNhbGMoMTAwdmggKyA3MHB4KTtcblx0d2lkdGg6IDEwMCU7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAtNzBweDtcblx0Ji5hY3RpdmUge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgkaGlnaGxpZ2h0LWNvbG9yLCAwLjgpO1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR6LWluZGV4OiA5OTg7XG5cdFx0fVxuXHR9XG5cdC5zZWFyY2gtY2xvc2UtYnV0dG9uIHtcblx0XHRAZXh0ZW5kIC5jbG9zZS1idXR0b247XG5cdFx0dG9wOiAxNTBweDtcblx0XHRyaWdodDogMnJlbTtcblx0XHR6LWluZGV4OiA5OTk7XG5cdFx0Y29sb3I6ICRibGFjaztcblx0XHRmb250LXNpemU6IDJyZW07XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdGZvbnQtc2l6ZTogM3JlbTtcblx0XHRcdHRvcDogMTc1cHg7XG5cdFx0fVxuXHR9XG59XG5cbi8vU21hbGxlciBzY3JlZW4gc2l6ZSBmaXhlc1xuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExMTRweCkge1xuXHQuc2l0ZS1uYXZpZ2F0aW9uIC50b3AtYmFyLWxlZnQge1xuXHRcdG1hcmdpbi1sZWZ0OiAxNXB4O1xuXHRcdC5zaXRlLWxvZ28ge1xuXHRcdFx0bWFyZ2luLXRvcDogMTVweDtcblx0XHR9XG5cdH1cblx0LnRvcC1iYXIgLm1lbnUgPiBsaTpub3QoLm1lbnUtdGV4dCkgPiBhIHtcblx0XHRmb250LXNpemU6IDFyZW07XG5cdH1cbn1cbiIsIi5tYWluLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyO1xufVxuXG4ubWFpbi1ncmlkIHtcbiAgQGluY2x1ZGUgeHktZ3JpZCgpO1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgbWFyZ2luLXRvcDogM3JlbTtcbiAgfVxuXG4gICYuc2lkZWJhci1sZWZ0IHtcbiAgICAvLyBQbGFjZSB0aGUgc2lkZWJhciBiZWxvdyBtYWluIGNvbnRlbnQgb24gc21hbGwgc2NyZWVucyAuLi5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsKSB7XG4gICAgICAubWFpbi1jb250ZW50IHsgb3JkZXI6IDE7IH1cbiAgICAgIC5zaWRlYmFyIHsgb3JkZXI6IDI7IH1cbiAgICB9XG5cbiAgICAvLyAuLi4gYW5kIHRvIHRoZSBsZWZ0IG9uIG1lZGl1bS11cCBzY3JlZW5zLCB3aGVuIHVzaW5nIHRoZSBzaWRlYmFyLWxlZnQgdGVtcGxhdGVcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgLm1haW4tY29udGVudCB7IG9yZGVyOiAyOyB9XG4gICAgICAuc2lkZWJhciB7IG9yZGVyOiAxOyB9XG4gICAgfVxuICB9XG5cbiAgLy8gRnVsbCB3aWR0aCB0ZW1wbGF0ZVxuICAubWFpbi1jb250ZW50LWZ1bGwtd2lkdGgge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwoMTIpO1xuICB9XG5cbiAgLy8gRGVmYXVsdCB0ZW1wbGF0ZVxuICAubWFpbi1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsKSB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsKDEyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbCg4KTtcbiAgICB9XG4gIH1cblxuICAuc2lkZWJhciB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCkge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbCgxMik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwoNCk7XG4gICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIH1cblxuICB9XG59XG4iLCIuZm9vdGVyLWNvbnRhaW5lciB7XG5cdEBpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyKDEwNi4yNXJlbSk7XG5cdHBhZGRpbmctYm90dG9tOiAkZ2xvYmFsLW1hcmdpbioyO1xufVxuXG4ucmV2ZWFsLW92ZXJsYXkge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRoaWdobGlnaHQtY29sb3IsIDAuOCk7XG59XG5cbiNuYXZfbWVudS0zIHtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG5cdFx0cGFkZGluZzogMDtcblx0fVxuXHRwYWRkaW5nLXRvcDogMDtcbn1cblxuLmhvbWUge1xuXHQubmV3c2xldHRlci1zaWdudXAge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cblxuLmhvbWUge1xuXHQubmV3c2xldHRlci1zaWdudXAuc2hvdyB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxufVxuXG4uc2VjdGlvbi0tbGlnaHQtZ3JleSArIC5uZXdzbGV0dGVyLXNpZ251cCB7XG5cdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xuXG5cdGlucHV0IHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JheVxuXHR9XG59XG5cbi5uZXdzbGV0dGVyLXNpZ251cCB7XG5cdHBhZGRpbmc6ICRnbG9iYWwtbWFyZ2luIDA7XG5cdG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luKjI7XG5cdGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmF5O1xuXHQubmV3c2xldHRlci1zaWdudXBfX2NvbnRhaW5lciB7XG5cdFx0QGluY2x1ZGUgeHktZ3JpZDtcblx0XHRAaW5jbHVkZSB4eS1ncmlkLWNvbnRhaW5lcigxMDYuMjVyZW0pO1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHR9XG5cdFx0Lm5ld3NsZXR0ZXItc2lnbnVwX190aXRsZSB7XG5cdFx0XHRwIHtcblx0XHRcdFx0Zm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5LS1tZWRpdW07XG5cdFx0XHRcdGZvbnQtc2l6ZTogMS4yNXJlbTtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQuYnV0dG9uIHtcblx0XHRcdHBhZGRpbmc6IDEwcHg7XG5cdFx0XHRwIHtcblx0XHRcdFx0Zm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5LS1tZWRpdW07XG5cdFx0XHRcdGZvbnQtc2l6ZTogMS4wNXJlbTtcblx0XHRcdFx0Y29sb3I6ICR3aGl0ZTtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQubmV3c2xldHRlci1zaWdudXBfX3RpdGxlLFxuXHRcdC5lbWFpbCxcblx0XHQubmFtZSxcblx0XHQuYnV0dG9uIHtcblx0XHRcdEBpbmNsdWRlIHh5LWNlbGwoMTIpO1xuXHRcdFx0bWFyZ2luLXRvcDogNXB4O1xuXG5cdFx0XHQmOjpwbGFjZWhvbGRlciB7XG5cdFx0XHRcdGNvbG9yOiAkZGFya2VzdC1ncmF5O1xuXHRcdFx0fVxuXHRcdH1cblx0XHQuZW1haWwsXG5cdFx0Lm5hbWUge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcblx0XHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRwYWRkaW5nOiAxMHB4O1xuXHRcdH1cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0Lm5ld3NsZXR0ZXItc2lnbnVwX190aXRsZSB7XG5cdFx0XHRcdEBpbmNsdWRlIHh5LWNlbGwoMik7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHRcdFx0YWxpZ24tc2VsZjogY2VudGVyO1xuXHRcdFx0fVxuXHRcdFx0LmVtYWlsLFxuXHRcdFx0Lm5hbWUge1xuXHRcdFx0XHRAaW5jbHVkZSB4eS1jZWxsKDUpO1xuXHRcdFx0XHRtYXJnaW46IDAgNXB4O1xuXHRcdFx0XHRvdXRsaW5lOiBub25lO1xuXHRcdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRcdHBhZGRpbmc6IDAgMTBweDtcblx0XHRcdH1cblx0XHRcdC5idXR0b24ge1xuXHRcdFx0XHRAaW5jbHVkZSB4eS1jZWxsKDIpO1xuXHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdC5uZXdzbGV0dGVyLXNpZ251cF9fdGl0bGUge1xuXHRcdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHRcdFx0QGluY2x1ZGUgeHktY2VsbCgzKTtcblx0XHRcdFx0Ly9AaW5jbHVkZSB4eS1jZWxsLW9mZnNldCgxKTtcblx0XHRcdH1cblx0XHRcdC5lbWFpbCxcblx0XHRcdC5uYW1lIHtcblx0XHRcdFx0QGluY2x1ZGUgeHktY2VsbCgzKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLmZvb3Rlci1ncmlkIHtcblx0QGluY2x1ZGUgeHktZ3JpZDtcblx0cGFkZGluZzogcmVtLWNhbGMoMzApIDA7XG5cblx0c2VjdGlvbiB7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRAaW5jbHVkZSB4eS1jZWxsKGF1dG8pO1xuXHRcdH1cblx0fVxuXG5cdC5sb2dvIHtcblx0XHRAaW5jbHVkZSB4eS1jZWxsKDEyKTtcblx0XHRtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcblx0XHRpbWcge1xuXHRcdFx0bWF4LXdpZHRoOiAyMDBweDtcblx0XHRcdG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luLzI7XG5cdFx0fVxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRAaW5jbHVkZSB4eS1jZWxsKDQpO1xuXHRcdFx0QGluY2x1ZGUgeHktY2VsbC1vZmZzZXQoNCk7XG5cdFx0fVxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdEBpbmNsdWRlIHh5LWNlbGwoMilcblx0XHR9XG5cdH1cblxuXHQjbWVudS1mb290ZXIge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0fVxuXHR9XG5cblx0LmNvcHlyaWdodCB7XG5cdFx0YSB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdCYuaGlkZS1mb3ItbWVkaXVtLXVwIHtcblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdEBpbmNsdWRlIHh5LWNlbGwoMTIpO1xuXHRcdC8vdGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRAaW5jbHVkZSB4eS1jZWxsKDQpO1xuXHRcdFx0QGluY2x1ZGUgeHktY2VsbC1vZmZzZXQoNCk7XG5cdFx0fVxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdEBpbmNsdWRlIHh5LWNlbGwoMilcblx0XHR9XG5cblx0fVxuXHR1bCB7XG5cdFx0bGlzdC1zdHlsZS10eXBlOiBub25lO1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiAwO1xuXHR9XG5cdC5oZWFkZXIubm8tbGluayB7XG5cdFx0QGluY2x1ZGUgeHktY2VsbCgzKTtcblx0XHQ+IGEge1xuXHRcdFx0Y29sb3I6ICRibGFjaztcblx0XHRcdHBhZGRpbmctdG9wOiAwO1xuXG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCNtZW51LWZvb3RlciB7XG5cdFx0Lm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4ge1xuXHRcdFx0PiBhIHtcblx0XHRcdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5mb250LS1saWdodCB7XG5cdGNvbG9yOiAkZGFyay1ncmF5O1xuXHRsaW5lLWhlaWdodDogMS4yO1xufVxuXG4uc3ViLW1lbnUsXG4uY29weXJpZ2h0IHtcblx0YSB7XG5cdFx0cGFkZGluZy10b3A6IDVweDtcblx0XHRwYWRkaW5nLWJvdHRvbTogNXB4O1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRjb2xvcjogJGJsYWNrO1xuXHRcdH1cblx0fVxuXHQuZm9udC0tYmxhY2sge1xuXHRcdEBleHRlbmQgYTtcblx0XHRjb2xvcjogJGJsYWNrO1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0cGFkZGluZy10b3A6IDA7XG5cdH1cblxufVxuXG4uY29weXJpZ2h0LXdvcmRpbmcge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGJvdHRvbTogMjBweDtcblx0d2lkdGg6IDEwMCU7XG59IiwiYm9keSN0aW55bWNle1xuICBoZWlnaHQ6IGF1dG87IC8vIEZpeCBlZGl0b3Igc3R5bGUgYnVnXG4gIG1heC13aWR0aDogJGdyaWQtcm93LXdpZHRoOyAvLyBHaXZlIHRoZSBlZGl0b3IgYSBtYXgtd2lkdGhcbiAgcGFkZGluZzogcmVtLWNhbGMoMjApICFpbXBvcnRhbnQ7XG59IiwiLnNpdGVzLWJ1dHRvbiB7XG5cdGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuXHRmb250LXNpemU6IDEuMjVyZW07XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRib3gtc2hhZG93OiAwIC0ycHggMCByZ2JhKDAsIDAsIDAsIDAuMikgaW5zZXQ7XG5cdGJvcmRlci1yYWRpdXM6IDNweDtcblx0Ym9yZGVyOiBub25lO1xufVxuXG4uYnV0dG9uIHtcblx0cGFkZGluZzogJGdsb2JhbC1tYXJnaW4vMjtcblx0Zm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5LS1oZWF2eTtcblx0Zm9udC1zaXplOiAwLjhyZW07XG5cdCYtLW91dGxpbmUtb25seSB7XG5cdFx0QGV4dGVuZCAuYnV0dG9uO1xuXHRcdGJvcmRlcjogMS41cHggc29saWQgJGJsYWNrO1xuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdGNvbG9yOiAkYmxhY2s7XG5cdFx0dHJhbnNpdGlvbjogZWFzZS1pbi1vdXQgYWxsIDAuNXM7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6ICRibGFjaztcblx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0fVxuXHR9XG5cblx0Ji0tdGV4dC1vbmx5IHtcblx0XHRAZXh0ZW5kIC5idXR0b247XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0Y29sb3I6ICRibGFjaztcblx0XHRib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0dHJhbnNpdGlvbjogYm9yZGVyLWJvdHRvbS1jb2xvciBlYXNlLWluIDAuNXM7XG5cblx0XHQmOmhvdmVyLFxuXHRcdCYuYWN0aXZlIHtcblx0XHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRibGFjaztcblx0XHRcdGNvbG9yOiAkYmxhY2s7XG5cdFx0fVxuXHR9XG59IiwiLmNhcmRzLWNvbnRhaW5lciB7XG5cbiAgQGluY2x1ZGUgeHktZ3JpZDtcblxuICAuY2FyZCB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCkge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbCgxMik7XG5cbiAgICAgIC5jYXJkLWNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgfVxuXG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwoMSBvZiAzLCB0cnVlLCAwLjdyZW0gKTtcblxuICAgIH1cblxuICB9XG59XG4iLCIuZmVhdHVyZWQtaGVybyB7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgaGVpZ2h0OiByZW0tY2FsYygxMDApO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgaGVpZ2h0OiByZW0tY2FsYygyMDApO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UpIHtcbiAgICBoZWlnaHQ6IHJlbS1jYWxjKDQwMCk7XG4gIH1cbn1cbiIsIi5kb3R0ZWQge1xuICBib3JkZXItc3R5bGU6IGRhc2hlZDtcbiAgbWFyZ2luOiAycmVtIDA7XG59XG4iLCIvLyBBcHBseSBvdXRsaW5lIHN0eWxlcyBvbmx5IHdoZW4gaW5wdXQgbWV0aG9kIGlzIGtleWJvYXJkXG4vLyByZW1vdmUgOmZvY3VzIHN0eWxlIHZpYSBXaGF0IElucHV0IHVzaW5nIHByb2dyZXNzaXZlIGVuaGFuY2VtZW50XG4vLyBzbyA6Zm9jdXMgaXNuJ3QgbGVmdCBicm9rZW4gaWYgSmF2YVNjcmlwdCBmYWlsc1xuXG5bZGF0YS13aGF0aW5wdXQ9XCJtb3VzZVwiXSBhOmZvY3VzLCBidXR0b246Zm9jdXNcbltkYXRhLXdoYXRpbnB1dD1cInRvdWNoXCJdIGE6Zm9jdXMsIGJ1dHRvbjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4iLCIuYWNjb3JkaW9uIHtcblx0bWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW47XG5cdC5hY2NvcmRpb24taXRlbSB7XG5cdFx0LmFjY29yZGlvbi10aXRsZSB7XG5cdFx0XHRmb250LXNpemU6IDEuNXJlbTtcblx0XHRcdGJvcmRlcjogbm9uZTtcblx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYmxhY2s7XG5cdFx0XHRjb2xvcjogJGJsYWNrIWltcG9ydGFudDtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDNyZW07XG5cblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0Zm9udC1zaXplOiA0MnB4O1xuXHRcdFx0XHR0b3A6IHVuc2V0O1xuXHRcdFx0XHRmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdCYuaXMtYWN0aXZlIHtcblx0XHRcdC5hY2NvcmRpb24tdGl0bGUge1xuXHRcdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHR9XG5cblx0XHRcdC5hY2NvcmRpb24tY29udGVudCB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMS4xcmVtO1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJsYWNrO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufSIsIi8vIFBhZ2UgaGVhZGVyXG4uaG9tZS1mZWF0dXJlcyB7XG5cdC5ob21lLWZlYXR1cmVzX19ob2xkZXIge1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRAaW5jbHVkZSB4eS1ncmlkKCk7XG5cdFx0XHQvL0BpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyKCk7XG5cdFx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0XHRcdHdpZHRoOiBjYWxjKDEwMCUgLSAzMHB4KTtcblx0XHRcdG1hcmdpbi1sZWZ0OiAxNXB4O1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAxNXB4O1xuXHRcdH1cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcblx0XHRcdC5zbGljay1uZXh0LCAuc2xpY2stcHJldiB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC5zbGljay1uZXh0IHtcblx0XHRcdHJpZ2h0OiAyMHB4O1xuXHRcdH1cblx0XHQuc2xpY2stcHJldiB7XG5cdFx0XHRsZWZ0OiAyMHB4O1xuXHRcdFx0ei1pbmRleDogMTtcblx0XHR9XG5cblx0XHQuaG9tZS1mZWF0dXJlIHtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdEBpbmNsdWRlIHh5LWNlbGwoMTIpO1xuXHRcdFx0bWluLWhlaWdodDogMzAwcHg7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0ZmxleC1ncm93OiAxO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdEBpbmNsdWRlIHh5LWNlbGwoNCk7XG5cdFx0XHRcdGhlaWdodDogNzYwcHg7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAxNXB4O1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDE1cHg7XG5cdFx0XHR9XG5cdFx0XHQ+IGRpdiB7XG5cdFx0XHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRtaW4taGVpZ2h0OiAzMDBweDtcblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0XHRcdG1pbi1oZWlnaHQ6IDUwMHB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHQuaG9tZS1mZWF0dXJlX190aXRsZS1ob2xkZXIge1xuXHRcdFx0XHRAaW5jbHVkZSB4eS1jZWxsKDEyKTtcblx0XHRcdFx0YWxpZ24tc2VsZjogZmxleC1lbmQ7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDMwcHg7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDogOXB4O1xuXG5cdFx0XHRcdGgxIHtcblx0XHRcdFx0XHRmb250LXNpemU6IDIuNXJlbTtcblx0XHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAzcmVtO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdFx0XHRmb250LXNpemU6IDMuNnJlbTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ei1pbmRleDogMTtcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdFx0bGluZS1oZWlnaHQ6IDAuODU7XG5cdFx0XHRcdFx0Y29sb3I6ICR3aGl0ZTtcblx0XHRcdFx0XHRmb250LWZhbWlseTogJGRpZG90LWZvbnQ7XG5cdFx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdFx0XHRvcGFjaXR5OiAwLjk1O1xuXHRcdFx0XHRcdHRyYW5zaXRpb246IGVhc2UtaW4tb3V0IDAuMzVzO1xuXHRcdFx0XHRcdGVtIHtcblx0XHRcdFx0XHRcdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0XHRcdFx0XHRcdGZvbnQtZmFtaWx5OiAkZGlkb3QtSXRhbGljLWZvbnQ7XG5cdFx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQubGluay10aXRsZSB7XG5cdFx0XHRcdFx0bGluZS1oZWlnaHQ6IDI7XG5cdFx0XHRcdFx0Y29sb3I6ICR3aGl0ZTtcblx0XHRcdFx0XHRvcGFjaXR5OiAwLjk1O1xuXHRcdFx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRcdHotaW5kZXg6IDE7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxLjI1cmVtO1xuXHRcdFx0XHRcdHRyYW5zaXRpb246IGVhc2UtaW4tb3V0IDAuMzVzO1xuXHRcdFx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL3dwLWNvbnRlbnQvdGhlbWVzL25ldy1sZW9uYXJkam9lbC9kaXN0L2Fzc2V0cy9pbWFnZXMvYXJyb3cucG5nKTtcblx0XHRcdFx0XHRcdGhlaWdodDogMThweDtcblx0XHRcdFx0XHRcdHdpZHRoOiAzNXB4O1xuXHRcdFx0XHRcdFx0cmlnaHQ6IDIwcHg7XG5cdFx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdFx0XHRhbGlnbi1zZWxmOiBjZW50ZXI7XG5cdFx0XHRcdFx0XHRvcGFjaXR5OiAwLjc1O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiAwO1xuXHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRibGFjaywgMC4yNSk7XG5cdFx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBlYXNlLWluLW91dCAwLjVzO1xuXHRcdFx0fVxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJsYWNrLCAwLjUpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGgxIHtcblx0XHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0XHR9XG5cdFx0XHRcdC5saW5rLXRpdGxlIHtcblx0XHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRcdFx0YW5pbWF0aW9uOiBib3VuY2UgMC41cyBpbmZpbml0ZSBhbHRlcm5hdGU7XG5cdFx0XHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0fVxuXHR9XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlIHtcblx0ZnJvbSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7XG5cdH1cblx0dG8ge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTVweCk7XG5cdH1cbn1cblxuLy9TZWN0aW9uIEhlYWRlcnNcbi5zZWN0aW9uX19oZWFkaW5nIHtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRoMyB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMzJweDtcblx0fVxuXHRhIHtcblx0XHRhbGlnbi1zZWxmOiBjZW50ZXI7XG5cdFx0Zm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5LS1tZWRpdW07XG5cdFx0Y29sb3I6ICRibGFjaztcblx0fVxufVxuXG4vL05ld3MgRmVhdHVyZXNcbi5uZXdzLWZlYXR1cmVzX19ob2xkZXIge1xuXHRAaW5jbHVkZSB4eS1ncmlkKCk7XG5cdEBpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyKDEwNi4yNXJlbSk7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cblx0Lm5ld3MtZmVhdHVyZSB7XG5cdFx0JjpudGgtb2YtdHlwZShuKzQpIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHRcdEBpbmNsdWRlIHh5LWNlbGwoMTIpO1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRAaW5jbHVkZSB4eS1jZWxsKDQpO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDE1cHg7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDE1cHg7XG5cdFx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0XHQmOm50aC1vZi10eXBlKDNuICsgMSkge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdH1cblx0XHRcdCY6bnRoLW9mLXR5cGUoM24pIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdFx0fVxuXHRcdFx0JjpudGgtb2YtdHlwZShuKzQpIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHR9XG5cdFx0XHQmOm50aC1vZi10eXBlKDMpIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Lm5ld3MtZmVhdHVyZV9faW1hZ2Uge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4qMC43NTtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0aGVpZ2h0OiAzMjVweDtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdGhlaWdodDogMXB4O1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmF5O1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRib3R0b206IC0gJGdsb2JhbC1tYXJnaW4vMjtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRwIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDVweDtcblx0XHRcdGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseS0tYm9vaztcblx0XHRcdHBhZGRpbmctbGVmdDogMjJweDtcblx0XHR9XG5cblx0XHQubmV3cy1mZWF0dXJlX190aXRsZSB7XG5cdFx0XHRjb2xvcjogJGJsYWNrO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdGZvbnQtc2l6ZTogMS4zcmVtO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDEuMjtcblx0XHRcdHBhZGRpbmctbGVmdDogMjJweDtcblx0XHRcdGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcblx0XHR9XG5cdH1cbn1cblxuLy9BdWN0aW9uIEZlYXR1cmVzXG4uYXVjdGlvbi1mZWF0dXJlc19faG9sZGVyIHtcblx0QGluY2x1ZGUgeHktZ3JpZCgpO1xuXHRAaW5jbHVkZSB4eS1ncmlkLWNvbnRhaW5lcigxMDYuMjVyZW0pO1xuXHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcblx0XHRwYWRkaW5nOiAwO1xuXHR9XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0fVxuXHQuYXVjdGlvbi1mZWF0dXJlIHtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcblx0XHRcdCY6bnRoLW9mLXR5cGUobis0KSB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdEBpbmNsdWRlIHh5LWNlbGwoMTIpO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRAaW5jbHVkZSB4eS1jZWxsKDMpO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDEwcHg7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cdFx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0XHQmOmZpcnN0LW9mLXR5cGUge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdH1cblx0XHRcdCY6bGFzdC1vZi10eXBlIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5hdWN0aW9uX19pbWFnZSB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdG1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luLzIgMDtcblx0XHRcdGhlaWdodDogMjAwcHg7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0fVxuXG5cdFx0cCB7XG5cdFx0XHRmb250LXNpemU6IDFyZW07XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseS0tYm9vaztcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDIycHg7XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdFx0XHRAaW5jbHVkZSB4eS1jZWxsKDYpO1xuXHRcdFx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdH1cblx0XHR9XG5cdFx0LmF1Y3Rpb24tZmVhdHVyZV9fdGl0bGUge1xuXHRcdFx0Zm9udC1zaXplOiAxcmVtO1xuXHRcdFx0Y29sb3I6ICRibGFjaztcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0Zm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5LS1ibGFjaztcblx0XHRcdHBhZGRpbmctbGVmdDogMjJweDtcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdFx0QGluY2x1ZGUgeHktY2VsbCg2KTtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQmOmFmdGVyIHtcblx0XHRcdGhlaWdodDogMC41cHg7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyYXk7XG5cdFx0XHRtYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbi8zO1xuXHRcdH1cblx0fVxufVxuXG4vL1ZpZGVvXG4udmlkZW8tZmVhdHVyZXNfX2hvbGRlciB7XG5cdEBpbmNsdWRlIHh5LWdyaWQoKTtcblx0QGluY2x1ZGUgeHktZ3JpZC1jb250YWluZXIoMTA2LjI1cmVtKTtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG5cdFx0cGFkZGluZzogMDtcblx0fVxuXHQudmlkZW8tZmVhdHVyZSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTVweDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuXHRcdFx0JjpudGgtb2YtdHlwZShuKzQpIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cdFx0QGluY2x1ZGUgeHktY2VsbCgxMik7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cblx0XHQucmVzcG9uc2l2ZS1lbWJlZCB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdHBhZGRpbmctYm90dG9tOiA1NyU7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiA1cHg7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL3dwLWNvbnRlbnQvdGhlbWVzL25ldy1sZW9uYXJkam9lbC9kaXN0L2Fzc2V0cy9pbWFnZXMvcGxheS1idXR0b24ucG5nJyk7XG5cdFx0XHRcdGhlaWdodDogNTBweDtcblx0XHRcdFx0d2lkdGg6IDUwcHg7XG5cdFx0XHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiA1MCU7XG5cdFx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG5cdFx0XHR9XG5cdFx0XHQmLnZpZGVvLXBsYXkge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuXHRcdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRAaW5jbHVkZSB4eS1jZWxsKDMpO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDEwcHg7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cdFx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0XHQmOm50aC1vZi10eXBlKDRuICsgMSkge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdH1cblx0XHRcdCY6bnRoLW9mLXR5cGUoNG4pIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHAge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0Zm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuXHRcdFx0cGFkZGluZy1yaWdodDogMjJweDtcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0XHRcdEBpbmNsdWRlIHh5LWNlbGwoNik7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IGNhbGMoMC45Mzc1cmVtICogMik7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC52aWRlby1mZWF0dXJlX190aXRsZSB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0Y29sb3I6ICRibGFjaztcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0Zm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5LS1ibGFjaztcblx0XHRcdHBhZGRpbmctbGVmdDogMjJweDtcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdFx0QGluY2x1ZGUgeHktY2VsbCg2KTtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogY2FsYygwLjkzNzVyZW0gKiAyKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLy9Ccm93c2UgRGVwYXJ0bWVudHNcbi5icm93c2UtZGVwYXJ0bWVudHMge1xuXHRkaXNwbGF5OiBub25lO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblx0LmJyb3dzZS1kZXBhcnRtZW50c19faG9sZGVyIHtcblx0XHRAaW5jbHVkZSB4eS1ncmlkKCk7XG5cdFx0QGluY2x1ZGUgeHktZ3JpZC1jb250YWluZXIoMTA2LjI1cmVtKTtcblxuXHRcdC5icm93c2UtZGVwYXJ0bWVudCB7XG5cdFx0XHRjb2xvcjogJGJsYWNrO1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgJGJsYWNrO1xuXHRcdFx0cGFkZGluZzogJGdsb2JhbC1tYXJnaW4vMS41IDA7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbi8yO1xuXHRcdFx0Zm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5LS1oZWF2eTtcblx0XHRcdHRyYW5zaXRpb246IGVhc2UtaW4tb3V0IGFsbCAwLjVzO1xuXG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuXHRcdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdFx0fVxuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0XHRAaW5jbHVkZSB4eS1jZWxsKDIuNCk7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAxMHB4O1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cdFx0XHRcdGZsZXgtZ3JvdzogMTtcblx0XHRcdFx0Zm9udC1zaXplOiAxLjM4cmVtO1xuXHRcdFx0XHQmOm50aC1vZi10eXBlKDVuICsxKSB7XG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHRcdH1cblx0XHRcdFx0JjpudGgtb2YtdHlwZSg1bikge1xuXHRcdFx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufSIsIi5kZXBhcnRtZW50X19pbnRyb2R1Y3Rpb24ge1xuXHRAaW5jbHVkZSB4eS1ncmlkKCk7XG5cdEBpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyKCk7XG5cdC5kZXBhcnRtZW50X19pbnRyb2R1Y3Rpb24tY29udGVudCBwIHtcblx0XHRmb250LXNpemU6IDEuNHJlbTtcblx0XHRmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG5cdFx0bGluZS1oZWlnaHQ6IDEuMjtcblx0XHRmb250LXdlaWdodDogNDAwO1xuXHR9XG59XG5cbi5kZXBhcnRtZW50X19ib2R5IHtcblx0QGluY2x1ZGUgeHktZ3JpZCgpO1xuXHRAaW5jbHVkZSB4eS1ncmlkLWNvbnRhaW5lcigpO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0LmRlcGFydG1lbnRfX2JvZHktY29udGVudCB7XG5cdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0XHRjb2x1bW5zOiAyO1xuXHRcdFx0Y29sdW1uLWdhcDogNDVweDtcblx0XHRcdGNvbHVtbi1maWxsOiBiYWxhbmNlO1xuXHRcdH1cblx0fVxufVxuXG4uZGVwYXJ0bWVudF9fYXVjdGlvbi1oaWdobGlnaHRzIHtcblx0QGluY2x1ZGUgeHktZ3JpZCgpO1xuXG5cdC5hdWN0aW9uLWZlYXR1cmUge1xuXHRcdCY6bnRoLW9mLXR5cGUobis3KSB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0XHRAaW5jbHVkZSB4eS1jZWxsKDEyKTtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0QGluY2x1ZGUgeHktY2VsbCg2KTtcblx0XHR9XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0QGluY2x1ZGUgeHktY2VsbCgyKTtcblx0XHRcdGZsZXg6IDE7XG5cdFx0fVxuXG5cdFx0LmF1Y3Rpb25fX2ltYWdlIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0bWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMDtcblx0XHRcdGhlaWdodDogMjEwcHg7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcblx0XHR9XG5cblx0XHRwIHtcblx0XHRcdEBpbmNsdWRlIHh5LWNlbGwoMTIpO1xuXHRcdFx0Zm9udC1zaXplOiAwLjlyZW07XG5cdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHR9XG5cdFx0YSB7XG5cdFx0XHRAaW5jbHVkZSB4eS1jZWxsKDEyKTtcblx0XHRcdGZvbnQtc2l6ZTogMC45cmVtO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0XHRjb2xvcjogJGJsYWNrO1xuXHRcdFx0Zm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5LS1tZWRpdW07XG5cdFx0fVxuXHR9XG59XG5cbi5kZXBhcnRtZW50X190ZWFtLW1lbWJlcnMge1xuXHRAaW5jbHVkZSB4eS1ncmlkKCk7XG5cdEBpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyKCk7XG5cdGZsZXgtd3JhcDogd3JhcDtcblx0LmRlcGFydG1lbnRfdGVhbS1tZW1iZXIge1xuXHRcdEBpbmNsdWRlIHh5LWNlbGwoMTIpO1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRAaW5jbHVkZSB4eS1jZWxsKDMpO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDEwcHg7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cdFx0XHQmOmZpcnN0LW9mLXR5cGUge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdH1cblx0XHRcdCY6bGFzdC1vZi10eXBlIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQuZGVwYXJ0bWVudF9fc3RhZmYtcGhvdG8ge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcblx0XHRcdGhlaWdodDogMjAwcHg7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcblx0XHR9XG5cblx0XHRwIHtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdFx0Zm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5LS1oZWF2eTtcblx0XHRcdHNwYW4ge1xuXHRcdFx0XHRmb250LXNpemU6IDFyZW07XG5cdFx0XHRcdGNvbG9yOiAkZGFyay1ncmF5O1xuXHRcdFx0fVxuXHRcdH1cblx0XHRwIHtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdH1cblx0fVxufVxuXG4uZGVwYXJ0bWVudF9fY2xvc2luZy1ob2xkZXIge1xuXHRAaW5jbHVkZSB4eS1ncmlkKCk7XG5cdEBpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyKCk7XG5cdC5kZXBhcnRtZW50X19jbG9zaW5nIHtcblx0XHRAaW5jbHVkZSB4eS1jZWxsKDEyKTtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0bWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW4qMjtcblx0XHRcdG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luKjI7XG5cdFx0XHRAaW5jbHVkZSB4eS1jZWxsKDEwKTtcblx0XHRcdEBpbmNsdWRlIHh5LWNlbGwtb2Zmc2V0KDEpO1xuXHRcdH1cblx0XHRoMyB7XG5cdFx0XHRsaW5lLWhlaWdodDogMTtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdFx0XHRmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG5cdFx0fVxuXG5cdFx0YSB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRjb2xvcjogJGJsYWNrO1xuXG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRoZWlnaHQ6IDFweDtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHRib3R0b206IDNweDtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4uZGVwYXJ0bWVudF9fdGVhbS1kZXNjcmlwdGlvbiB7XG5cdG1hcmdpbi10b3A6IDFyZW07XG59XG5cbiIsIi5jYXJyaWVycyB7XG5cdEBpbmNsdWRlIHh5LWdyaWQoKTtcblx0QGluY2x1ZGUgeHktZ3JpZC1jb250YWluZXIoKTtcblx0aDIge1xuXHRcdEBpbmNsdWRlIHh5LWNlbGwoMTIpO1xuXHRcdG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuXHR9XG5cdC5jYXJyaWVyX19jb250YWluZXIge1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRAaW5jbHVkZSB4eS1jZWxsKDYpXG5cdFx0fVxuXG5cdFx0aDYge1xuXHRcdFx0Zm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5LS1oZWF2eTtcblx0XHRcdGNvbG9yOiAkYmxhY2s7XG5cdFx0fVxuXHR9XG59XG5cbi5jYXJyaWVyc19faW50cm8ge1xuXHRAaW5jbHVkZSB4eS1jZWxsKDEyKTtcblx0bWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0Zm9udC1zaXplOiAzNnB4O1xuXHR9XG5cdHAge1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjE7XG5cdH1cbn0iLCIuaXNzdXVlbWJlZCB7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG5cdGhlaWdodDogNTAwcHg7XG5cdG1hcmdpbjogMCBhdXRvO1xuXHRAaW5jbHVkZSB4eS1jZWxsKDEyKTtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRAaW5jbHVkZSB4eS1jZWxsKDgpO1xuXHRcdEBpbmNsdWRlIHh5LWNlbGwtb2Zmc2V0KDIpO1xuXHR9XG59XG5cbi5ib29rLWNvdmVyc19faG9sZGVyIHtcblx0QGluY2x1ZGUgeHktZ3JpZCgpO1xuXHRmbGV4LXdyYXA6IHdyYXA7XG5cdC5ib29rLWNvdmVycyB7XG5cdFx0QGluY2x1ZGUgeHktY2VsbCg2KTtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRcdGhlaWdodDogMjAwcHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogNXB4O1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdEBpbmNsdWRlIHh5LWNlbGwoMyk7XG5cdFx0XHRoZWlnaHQ6IDM1MHB4O1xuXHRcdH1cblx0XHQuYm9vay1jb3ZlcnNfX2luZm8ge1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGhpZ2hsaWdodC1jb2xvcjtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRwYWRkaW5nOiAxMHB4O1xuXHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdHRyYW5zaXRpb246IGVhc2UtaW4tb3V0IG9wYWNpdHkgMC41cztcblxuXHRcdFx0LmJvb2stY292ZXJzX19pbmZvX19jb250ZW50IHtcblx0XHRcdFx0YWxpZ24tc2VsZjogY2VudGVyO1xuXHRcdFx0XHRqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdH1cblx0XHRcdCYuc2hvdy1pbmZvIHtcblx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLmFib3V0X19oZWFkZXIge1xuXHRAaW5jbHVkZSB4eS1ncmlkKCk7XG5cdEBpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyKCk7XG5cblx0cCB7XG5cdFx0QGV4dGVuZCBoNDtcblx0fVxufVxuXG5hcnRpY2xlLmZsaXBib29rIHtcblx0QGluY2x1ZGUgeHktY2VsbCg2KTtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRAaW5jbHVkZSB4eS1jZWxsKDQpO1xuXHR9XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRAaW5jbHVkZSB4eS1jZWxsKDMpO1xuXHR9XG5cblx0YSB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAzMDBweDtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuXHR9XG5cblx0aDUge1xuXHRcdGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcblx0XHRsaW5lLWhlaWdodDogMS4xO1xuXHRcdG1hcmdpbi10b3A6ICRnbG9iYWwtbWFyZ2luO1xuXHR9XG59XG5cbi5zaWRlYmFyIHtcblx0cGFkZGluZy1sZWZ0OiAkZ2xvYmFsLW1hcmdpbjtcblx0YSB7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0fVxufVxuXG4udHdvLWNvbHVtbl9faW50cm8ge1xuXHRAZXh0ZW5kIC5jYXJyaWVyc19faW50cm87XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0XHRwYWRkaW5nLXRvcDogMnJlbTtcblx0fVxufVxuXG4udHdvLWNvbHVtbl9fYm9keSB7XG5cdEBpbmNsdWRlIHh5LWNlbGwoMTIpO1xuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdGNvbHVtbi1jb3VudDogMjtcblx0XHRjb2x1bW4tZ2FwOiA0MHB4O1xuXHR9XG59IiwiLnRlYW1fX3NlY3Rpb24ge1xuXG5cdC50ZWFtX19jb250YWluZXIge1xuXHRcdEBpbmNsdWRlIHh5LWdyaWQoKTtcblx0XHRAaW5jbHVkZSB4eS1ncmlkLWNvbnRhaW5lcigpO1xuXHRcdG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luKjI7XG5cdH1cblxuXHQudGVhbV9faGVhZGluZyB7XG5cdFx0QGluY2x1ZGUgeHktY2VsbCgxMik7XG5cdFx0Zm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5LS1oZWF2eTtcblx0XHRtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcblx0fVxuXG5cblx0YXJ0aWNsZSB7XG5cdFx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcblx0XHRwYWRkaW5nLXRvcDogMXJlbTtcblx0XHRwYWRkaW5nLWJvdHRvbTogMXJlbTtcblx0XHRoNSB7XG5cdFx0XHRmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHktLWhlYXZ5O1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdGZvbnQtc2l6ZTogMjVweDtcblx0XHR9XG5cdFx0cCB7XG5cdFx0XHRsaW5lLWhlaWdodDogMTtcblx0XHRcdCYucG9zaXRpb25fX3RpdGxlIHtcblx0XHRcdFx0Y29sb3I6ICRkYXJrZXN0LWdyYXk7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMS4xcmVtO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC50ZWFtX19lbWFpbC1hZGRyZXNzIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHRsaW5lLWhlaWdodDogMTtcblx0XHRcdGZvbnQtc2l6ZTogMC45cmVtO1xuXHRcdH1cblx0XHRAaW5jbHVkZSB4eS1jZWxsKDEyKTtcblx0XHRpbWcge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRoZWlnaHQ6IDI5MHB4O1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMzBweDtcblx0XHR9XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdEBpbmNsdWRlIHh5LWNlbGwoMyk7XG5cdFx0fVxuXHR9XG59XG5cbi50ZWFtX190aXRsZSB7XG5cdGZvbnQtZmFtaWx5OiAkZGlkb3QtZm9udDtcblx0QGluY2x1ZGUgeHktY2VsbCgxMik7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdGZvbnQtc2l6ZTogNXJlbTtcbn1cbi50ZWFtX19jb250ZW50IHtcblx0QGluY2x1ZGUgeHktY2VsbCgxMik7XG5cdHAge1xuXHRcdGZvbnQtc2l6ZTogMzZweDtcblx0XHRsaW5lLWhlaWdodDogMS4xO1xuXHR9XG59IiwiYXJ0aWNsZSB7XG5cdEBpbmNsdWRlIHh5LWNlbGwoMTIpO1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJGRhcmstZ3JheTtcblx0cGFkZGluZy10b3A6ICRnbG9iYWwtbWFyZ2luO1xuXHRwYWRkaW5nLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG5cblx0JjpsYXN0LW9mLXR5cGUge1xuXHRcdGJvcmRlcjogbm9uZTtcblx0fVxuXG5cdC5ibG9nLWFydGljbGUge1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRAaW5jbHVkZSB4eS1ncmlkKCk7XG5cdFx0XHRAaW5jbHVkZSB4eS1ncmlkLWNvbnRhaW5lcigpO1xuXHRcdH1cblx0fVxuXG5cdGEuYXVjdGlvbl9faW1hZ2Uge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMjAwcHg7XG5cdFx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuXHRcdG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdEBpbmNsdWRlIHh5LWNlbGwoNSk7XG5cdFx0fVxuXHR9XG5cblx0LmJsb2ctY29udGVudC1ob2xkZXIge1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRAaW5jbHVkZSB4eS1jZWxsKDcpO1xuXHRcdH1cblx0fVxuXG5cdC5ibG9nLS1leGNlcnB0IHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKXtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblx0fVxuXG5cdGgzIHtcblx0XHRmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdH1cblxuXHRhLmJ1dHRvbi0tb3V0bGluZS1vbmx5IHtcblx0XHRtYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbjtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0QGluY2x1ZGUgeHktY2VsbCg0KTtcblx0XHR9XG5cdH1cbn1cblxuI25ld3MtbWVkaWEtZm9ybSB7XG5cdG1hcmdpbi10b3A6ICRnbG9iYWwtbWFyZ2luO1xuXHQubmV3cy1tZWRpYS1mb3JtLXdyYXBwZXIge1xuXHRcdEBpbmNsdWRlIHh5LWdyaWQoKTtcblx0XHRAaW5jbHVkZSB4eS1ncmlkLWNvbnRhaW5lcigpO1xuXG5cdFx0LnNlYXJjaCB7XG5cdFx0XHRAaW5jbHVkZSB4eS1jZWxsKDEyKTtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0XHRwYWRkaW5nOiAxLjRyZW07XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JheTtcblx0XHRcdGNvbG9yOiAkYmxhY2s7XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0XHRAaW5jbHVkZSB4eS1jZWxsKDYpO1xuXHRcdFx0XHRAaW5jbHVkZSB4eS1jZWxsLW9mZnNldCgzKTtcblx0XHRcdH1cblx0XHRcdCY6OnBsYWNlaG9sZGVyIHtcblx0XHRcdFx0Y29sb3I6ICRibGFjaztcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC5idXR0b24ge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHRAaW5jbHVkZSB4eS1jZWxsKDEyKTtcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRcdEBpbmNsdWRlIHh5LWNlbGwoMik7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LnRvZ2dsZS1jYXRlZ29yaWVzIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdFx0QGluY2x1ZGUgeHktY2VsbCgzKTtcblx0XHRcdFx0QGluY2x1ZGUgeHktY2VsbC1vZmZzZXQoOCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC5jYXRlZ29yaWVzIHtcblx0XHRAaW5jbHVkZSB4eS1ncmlkKCk7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkaGlnaGxpZ2h0LWNvbG9yO1xuXHRcdHBhZGRpbmc6IDAgMTAwcHg7XG5cblx0XHQuY2F0ZWdvcmllc19fbGlzdCB7XG5cdFx0XHRAaW5jbHVkZSB4eS1ncmlkLWNvbnRhaW5lcigpO1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHR9XG5cdFx0bGkge1xuXHRcdFx0bGlzdC1zdHlsZTogbm9uZTtcblx0XHRcdHBhZGRpbmc6IDE1cHg7XG5cblx0XHRcdGlucHV0IHtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuLm5ld3NsZXR0ZXJfX2hvbGRlciB7XG5cdEBpbmNsdWRlIHh5LWdyaWQoKTtcblx0QGluY2x1ZGUgeHktZ3JpZC1jb250YWluZXIoKTtcblxuXHQubmV3c2xldHRlcl9fYXJ0aWNsZSB7XG5cdFx0QGluY2x1ZGUgeHktY2VsbCgxMik7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdEBpbmNsdWRlIHh5LWNlbGwoMyk7XG5cdFx0fVxuXHR9XG59IiwiLmVycm9yIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLnFzIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdGJvcmRlcjogMXB4IHNvbGlkICMyNDI0MjQ7XG5cdGJvcmRlci1yYWRpdXM6IDE1cHg7XG5cdGNvbG9yOiAjMjQyNDI0O1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0Zm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuXHRmb250LXNpemU6IDEwcHg7XG5cdGhlaWdodDogMTVweDtcblx0bGluZS1oZWlnaHQ6IDE1cHg7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR3aWR0aDogMTVweDtcblx0bWFyZ2luLWJvdHRvbTogLTEycHg7XG5cdG1hcmdpbi10b3A6IC0xMnB4O1xuXHQucG9wb3ZlciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmYzIxMjtcblx0XHRjb2xvcjogIzI0MjQyNDtcblx0XHRkaXNwbGF5OiBub25lO1xuXHRcdGZvbnQtc2l6ZTogMWVtO1xuXHRcdGxpbmUtaGVpZ2h0OiAxZW07XG5cdFx0bGVmdDogLTRlbTtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHR0b3A6IDM1cHg7XG5cdFx0cGFkZGluZzogMWVtO1xuXHRcdHdpZHRoOiAxNGVtO1xuXHRcdHotaW5kZXg6IDQ7XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogN3B4IHNvbGlkICNmZmMyMTI7XG5cdFx0XHRib3JkZXItcmlnaHQ6IDdweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRcdGJvcmRlci1sZWZ0OiA3cHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0XHR0b3A6IC03cHg7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0bGVmdDogNTAlO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IC0zLjVlbTtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR9XG5cdH1cblx0Jjpob3ZlciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzI0MjQyNDtcblx0XHRjb2xvcjogI2Y1ZjVmNTtcblx0XHQucG9wb3ZlciB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGFuaW1hdGlvbjogZmFkZS1pbiAwLjNzIGxpbmVhciAxO1xuXHRcdH1cblx0fVxuXHRAa2V5ZnJhbWVzIGZhZGUtaW4ge1xuXHRcdGZyb20ge1xuXHRcdFx0b3BhY2l0eTogMDtcblx0XHR9XG5cdFx0dG8ge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHR9XG5cdH1cbn1cblxuI2ZpbGUge1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ei1pbmRleDogLTEwMDtcblx0d2lkdGg6IDA7XG59XG5cbi5maWxlLXVwbG9hZCB7XG5cdHBhZGRpbmc6IDMwcHg7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGJvcmRlcjogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG5cblxuXHQudXBsb2FkIHtcblx0XHRqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcblx0XHRtYXJnaW46IDAgYXV0bztcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxufVxuXG4uZm9ybV9faG9sZGVyIHtcblx0QGluY2x1ZGUgeHktZ3JpZCgpO1xuXHRAaW5jbHVkZSB4eS1ncmlkLWNvbnRhaW5lcig1MHJlbSk7XG5cdC5mb3JtLWVsZW1lbnQge1xuXHRcdEBpbmNsdWRlIHh5LWNlbGwoMTIpO1xuXG5cdFx0aW5wdXQsXG5cdFx0c2VsZWN0LFxuXHRcdHRleHRhcmVhIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmF5O1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblxuXHRcdFx0Jjo6cGxhY2Vob2xkZXIge1xuXHRcdFx0XHRjb2xvcjogJGRhcmtlc3QtZ3JheTtcblx0XHRcdH1cblxuXHRcdFx0b3B0aW9uLmVtcHR5IHtcblx0XHRcdFx0Y29sb3I6ICRkYXJrZXN0LWdyYXk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ji0tdGhpcmRzIHtcblx0XHRcdEBpbmNsdWRlIHh5LWNlbGwoNCk7XG5cdFx0XHRpbnB1dCB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmF5O1xuXHRcdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdFx0XHQmOjpwbGFjZWhvbGRlciB7XG5cdFx0XHRcdFx0Y29sb3I6ICRkYXJrZXN0LWdyYXk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLS1xdWFydGVyIHtcblx0XHRcdEBpbmNsdWRlIHh5LWNlbGwoMTIpO1xuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdFx0QGluY2x1ZGUgeHktY2VsbCgzKTtcblx0XHRcdH1cblxuXHRcdFx0LmV4cGlyeSB7XG5cdFx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdCNleHAtc2VwIHtcblx0XHRcdFx0XHR3aWR0aDogMTVweDtcblx0XHRcdFx0XHRmb250LXNpemU6IDJyZW07XG5cdFx0XHRcdFx0bWFyZ2luOiAwIDFyZW07XG5cdFx0XHRcdH1cblx0XHRcdFx0aW5wdXQge1xuXHRcdFx0XHRcdHdpZHRoOiA1MCU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRsYWJlbCB7XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR9XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdH1cbn1cblxuI21jX2VtYmVkX3NpZ251cF9zY3JvbGwge1xuXHRAaW5jbHVkZSB4eS1ncmlkKCk7XG5cdEBpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyKDUwcmVtKTtcblxuXHR1bHtcblx0XHRtYXJnaW46IDA7XG5cdGxpIHtcblx0XHRsaXN0LXN0eWxlOiBub25lO1xuXHRcdGxhYmVsIHtcblx0XHRcdGZvbnQtc2l6ZTogMXJlbTtcblx0XHR9XG5cdFx0aW5wdXQge1xuXHRcdFx0d2lkdGg6IDFyZW07XG5cdFx0XHRoZWlnaHQ6IDFyZW07XG5cdFx0fVxuXHR9XG5cdH1cbn1cblxuI25ld3NsZXR0ZXItc2lnbnVwIHtcblx0b3V0bGluZTogbm9uZTtcblx0Ym9yZGVyOiAxcHggc29saWQgJGJsYWNrO1xuXHQuZnVsbC13aWR0aCB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aW5wdXQge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJG1lZGl1bS1ncmF5O1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogNXB4O1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblxuXHRcdFx0Jjo6cGxhY2Vob2xkZXIge1xuXHRcdFx0XHRjb2xvcjogJGRhcmtlc3QtZ3JheTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuc2lnbnVwZm9ybSB7XG5cdFx0LmhhbGYtd2lkdGgge1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0d2lkdGg6IDUwJTtcblxuXHRcdFx0bGkge1xuXHRcdFx0XHRtYXJnaW46IDE1cHggMDtcblxuXHRcdFx0XHRpbnB1dCB7XG5cdFx0XHRcdFx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0bGFiZWwge1xuXHRcdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0XHRjb250ZW50OiAnJztcblx0XHRcdFx0XHRcdGhlaWdodDogMXJlbTtcblx0XHRcdFx0XHRcdHdpZHRoOiAxcmVtO1xuXHRcdFx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgJGRhcmtlc3QtZ3JheTtcblx0XHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRcdFx0bGVmdDogLTI1cHg7XG5cdFx0XHRcdFx0XHR0b3A6IDVweDtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQmLmNoZWNrZWQge1xuXHRcdFx0XHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRcdFx0XHRib3JkZXI6IDZweCBzb2xpZCAkZGFya2VzdC1ncmF5O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRoNSB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWFyZ2luOiAkZ2xvYmFsLW1hcmdpbiAwICRnbG9iYWwtbWFyZ2luLzI7XG5cdFx0Zm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5LS1tZWRpdW07XG5cdH1cblx0LmNsZWFyIHtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxuXHQjbWMtZW1iZWRkZWQtc3Vic2NyaWJlIHtcblx0XHRAZXh0ZW5kIC5idXR0b24tLW91dGxpbmUtb25seTtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxufSIsIi5hdWN0aW9uLWNhbGVuZGFyX19oZWFkZXIge1xuXHRAaW5jbHVkZSB4eS1ncmlkKCk7XG5cdEBpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyKDEwMHZ3KTtcblx0bWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW47XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcblxuXHQuYXVjdGlvbi1jYWxlbmRhcl9faGVhZGluZyB7XG5cdFx0QGluY2x1ZGUgeHktY2VsbCgxMik7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdEBpbmNsdWRlIHh5LWNlbGwoMyk7XG5cdFx0fVxuXHRcdGgxIHtcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMS45Mzc1cmVtO1xuXHRcdFx0fVxuXHRcdFx0Zm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuXHRcdFx0Y29sb3I6ICRkYXJrLWdyYXk7XG5cdFx0fVxuXHR9XG5cdC5hdWN0aW9uLWNhbGVuZGFyX19saW5rcyB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0QGluY2x1ZGUgeHktY2VsbCg1KTtcblx0XHRcdEBpbmNsdWRlIHh5LWNlbGwtb2Zmc2V0KDEpO1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdC5hdWN0aW9uLWNhbGVuZGFyX19saW5rcy1ob2xkZXIge1xuXHRcdFx0XHRAaW5jbHVkZSB4eS1ncmlkKCk7XG5cdFx0XHRcdGFsaWduLXNlbGY6IGNlbnRlcjtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cblx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgeHktY2VsbCgzKTtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdFx0dHJhbnNpdGlvbjogZWFzZS1pbi1vdXQgYWxsIDAuNXM7XG5cdFx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG5cdFx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0XHRib3JkZXItYm90dG9tOiAzcHggc29saWQgJGJsYWNrO1xuXHRcdFx0XHRcdFx0Y29sb3I6ICRibGFjaztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0LmF1Y3Rpb24tY2FsZW5kYXJfX3ZpZXctcmVzdWx0cyB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRAaW5jbHVkZSB4eS1jZWxsKDEyKTtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0QGluY2x1ZGUgeHktY2VsbCgyKTtcblx0XHRcdEBpbmNsdWRlIHh5LWNlbGwtb2Zmc2V0KDEpO1xuXHRcdH1cblxuXHRcdGEge1xuXHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0XHRhbGlnbi1zZWxmOiBjZW50ZXI7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0Y29sb3I6ICRibGFjaztcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLmF1Y3Rpb25zLWNhbGVuZGFyIHtcblx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xuXG5cdGgyIHtcblx0XHR3aWR0aDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuXHRcdG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuXHRcdG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG5cdH1cblxuXHQuYXVjdGlvbnMtY2FsZW5kYXJfX2xpc3Rpbmcge1xuXHRcdEBpbmNsdWRlIHh5LWdyaWQoKTtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJGxpZ2h0LWdyYXk7XG5cdFx0cGFkZGluZy1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuXHRcdHBhZGRpbmctdG9wOiAkZ2xvYmFsLW1hcmdpbjtcblxuXHRcdC5hdWN0aW9uX19kYXRlLWhvbGRlciB7XG5cdFx0XHRAaW5jbHVkZSB4eS1jZWxsKDYpO1xuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdFx0QGluY2x1ZGUgeHktY2VsbCgyKTtcblx0XHRcdH1cblx0XHRcdC5hdWN0aW9uX19sb3Qge1xuXHRcdFx0XHRjb2xvcjogJGRhcmstZ3JheTtcblx0XHRcdH1cblx0XHRcdC5hdWN0aW9uX19kYXRlIHtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdFx0XHQud29yZDEge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogNHJlbTtcblx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0fVxuXHRcdFx0XHQud29yZDIge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMS41cmVtO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC5hdWN0aW9uX19jdGFzIHtcblx0XHRcdEBpbmNsdWRlIHh5LWNlbGwoMTIpO1xuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdFx0QGluY2x1ZGUgeHktY2VsbCgzKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0LmF1Y3Rpb25fX2ltYWdlIHtcblx0XHRcdEBpbmNsdWRlIHh5LWNlbGwoNik7XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0XHRAaW5jbHVkZSB4eS1jZWxsKDIpO1xuXHRcdFx0fVxuXHRcdFx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG5cdFx0fVxuXHRcdC5hdWN0aW9uX19kZXRhaWxzIHtcblx0XHRcdEBpbmNsdWRlIHh5LWNlbGwoMTIpO1xuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdFx0QGluY2x1ZGUgeHktY2VsbCg1KTtcblx0XHRcdH1cblx0XHRcdGxpbmUtaGVpZ2h0OiAxLjI7XG5cblx0XHRcdGgyIHtcblx0XHRcdFx0Zm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuXHRcdFx0fVxuXG5cdFx0XHRwIHtcblx0XHRcdFx0Y29sb3I6ICRkYXJrLWdyYXk7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAxLjE7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5zYWxlLWluZm9ybWF0aW9uIHtcblx0QGluY2x1ZGUgeHktZ3JpZCgpO1xuXHRAaW5jbHVkZSB4eS1ncmlkLWNvbnRhaW5lcigpO1xuXHRoNCB7XG5cdFx0QGluY2x1ZGUgeHktY2VsbCgxMik7XG5cdH1cblx0LnNhbGUtaW5mb3JtYXRpb25fX2luZm8ge1xuXHRcdEBpbmNsdWRlIHh5LWNlbGwoMTIpO1xuXG5cdFx0cCxcblx0XHRhIHtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdGNvbG9yOiAkZGFyay1ncmF5O1xuXHRcdH1cblxuXHRcdGg2IHtcblx0XHRcdHNwYW4ge1xuXHRcdFx0XHRjb2xvcjogJGRhcmstZ3JheTtcblx0XHRcdH1cblx0XHR9XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdEBpbmNsdWRlIHh5LWNlbGwoNCk7XG5cdFx0fVxuXHR9XG59XG5cbi5hdWN0aW9uLWNhdGFsb2d1ZSB7XG5cdEBpbmNsdWRlIHh5LWdyaWQoKTtcblx0QGluY2x1ZGUgeHktZ3JpZC1jb250YWluZXIoKTtcblx0LmF1Y3Rpb24tY2F0YWxvZ3VlX19pdGVtIHtcblx0XHRAaW5jbHVkZSB4eS1jZWxsKDEyKTtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0QGluY2x1ZGUgeHktY2VsbCgzKTtcblx0XHRcdG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luLzI7XG5cdFx0fVxuXHRcdC5hdWN0aW9uLWNhdGFsb2d1ZV9faXRlbV9faW1hZ2Uge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdG1pbi1oZWlnaHQ6IDI4MHB4O1xuXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcblx0XHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG5cdFx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdH1cblx0XHQuYXVjdGlvbi1jYXRhbG9ndWVfX2l0ZW1fX2hlYWRpbmcge1xuXHRcdFx0QGV4dGVuZCBoNjtcblx0XHRcdHBhZGRpbmctYm90dG9tOiAxMHB4O1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cblx0XHRwIHtcblx0XHRcdGNvbG9yOiAkZGFyay1ncmF5XG5cdFx0fVxuXHR9XG5cblx0Ji5pdGVtcy1wYWdlIHtcblx0XHRtYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbiozO1xuXHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCAkZGFyay1ncmF5O1xuXG5cdFx0aDQge1xuXHRcdFx0QGluY2x1ZGUgeHktY2VsbCgxMik7XG5cdFx0XHRtYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbjtcblx0XHRcdG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuXHRcdH1cblx0fVxufVxuXG4ucGFnaW5hdGlvbi1ob2xkZXIge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRtYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbjtcblxuXHRhIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR3aWR0aDogMzBweDtcblx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGFsaWduLXNlbGY6IGNlbnRlcjtcblxuXHRcdHNwYW4ge1xuXHRcdFx0Y29sb3I6ICRibGFjaztcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdH1cblxuXHRcdCY6Zmlyc3Qtb2YtdHlwZSxcblx0XHQmOmxhc3Qtb2YtdHlwZSB7XG5cdFx0XHRmb250LXNpemU6IDJyZW07XG5cdFx0fVxuXHR9XG59XG5cbi5hdWN0aW9uLWl0ZW0ge1xuXHRAaW5jbHVkZSB4eS1ncmlkKCk7XG5cdEBpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyKCk7XG5cdC5hdWN0aW9uLWl0ZW1fX2ltYWdlcyB7XG5cdFx0QGluY2x1ZGUgeHktY2VsbCgxMik7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdEBpbmNsdWRlIHh5LWNlbGwoNik7XG5cdFx0fVxuXG5cdFx0LmF1Y3Rpb24taXRlbV9faW1hZ2VzX196b29tLFxuXHRcdC5hdWN0aW9uLWl0ZW1fX2ltYWdlc19fem9vbSB7XG5cdFx0XHRqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcblx0XHR9XG5cblx0XHQuYXVjdGlvbi1pdGVtX19pbWFnZXNfX3NtYWxsIHtcblx0XHRcdEBpbmNsdWRlIHh5LWdyaWQoKTtcblxuXHRcdFx0YSB7XG5cdFx0XHRcdEBpbmNsdWRlIHh5LWNlbGwoNCk7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRoZWlnaHQ6IDE1MHB4O1xuXHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG5cdFx0XHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5hdWN0aW9uLWl0ZW1fX2NvbnRlbnQge1xuXHRAaW5jbHVkZSB4eS1jZWxsKDEyKTtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRAaW5jbHVkZSB4eS1jZWxsKDYpO1xuXHR9XG59XG5cbi5zaXRlLWNvbnRlbnQuYXVjdGlvbnMtY2FsZW5kYXIge1xuXHQuYXVjdGlvbi1jYXRhbG9ndWUge1xuXHRcdC5hdWN0aW9uLWNhdGFsb2d1ZV9faXRlbSB7XG5cdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJGRhcmstZ3JheTtcblx0XHRcdC5hdWN0aW9uLWNhdGFsb2d1ZV9faXRlbV9faGVhZGluZyB7XG5cdFx0XHRcdGJvcmRlci1ib3R0b206IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5zZWFyY2gtcmVzdWx0c19fc2VhcmNoIHtcblx0QGluY2x1ZGUgeHktZ3JpZCgpO1xuXHRAaW5jbHVkZSB4eS1ncmlkLWNvbnRhaW5lcigpO1xuXHRtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbi8yO1xuXHQuc2VhcmNoLXJlc3VsdHNfX3NlYXJjaC1ib3gge1xuXHRcdGlucHV0IHtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHR9XG5cdFx0QGluY2x1ZGUgeHktY2VsbCgxMik7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdEBpbmNsdWRlIHh5LWNlbGwoNik7XG5cdFx0XHRAaW5jbHVkZSB4eS1jZWxsLW9mZnNldCgyKVxuXHRcdH1cblx0fVxuXG5cdC5zZWFyY2gtcmVzdWx0c19fc2VhcmNoLWJ1dHRvbiB7XG5cdFx0QGluY2x1ZGUgeHktY2VsbCgxMik7XG5cdFx0aW5wdXQge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdH1cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0QGluY2x1ZGUgeHktY2VsbCgyKTtcblx0XHR9XG5cdH1cbn1cblxuLnNlYXJjaC1yZXN1bHRzX19zZWFyY2gtY2hlY2tib3hlcyB7XG5cdGlucHV0IHtcblx0XHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdH1cblxuXHRsYWJlbCB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0aGVpZ2h0OiAxcmVtO1xuXHRcdFx0d2lkdGg6IDFyZW07XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAkZGFya2VzdC1ncmF5O1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRsZWZ0OiAtMjVweDtcblx0XHRcdHRvcDogNXB4O1xuXHRcdH1cblxuXHRcdCYuY2hlY2tlZCB7XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdGJvcmRlcjogNnB4IHNvbGlkICRkYXJrZXN0LWdyYXk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59IiwiI2NhcmQtdHlwZXMge1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDA7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cblx0bGkge1xuXHRcdGRpc3BsYXk6IGlubGluZTtcblx0XHQmLmZhZGVkIHtcblx0XHRcdG9wYWNpdHk6IDAuMztcblx0XHR9XG5cdH1cblxufVxuLnN1YnRvdGFsIHtcblx0cCB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblxuXHRcdCYudG90YWwge1xuXHRcdFx0Zm9udC1zaXplOiAxLjJyZW07XG5cdFx0XHRib3JkZXItdG9wOiAycHggc29saWQgJGJsYWNrO1xuXHRcdFx0bWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW47XG5cdFx0XHRwYWRkaW5nLXRvcDogMTVweDtcblx0XHRcdCY6bGFzdC1vZi10eXBlIHtcblx0XHRcdFx0Ym9yZGVyLXRvcDogbm9uZTtcblx0XHRcdFx0bWFyZ2luLXRvcDogMDtcblx0XHRcdFx0cGFkZGluZy10b3A6IDBcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuI21ha2UtcGF5bWVudC1idXR0b24ge1xuXHRtYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbjtcbn1cblxuLmctcmVjYXB0Y2hhIHtcblx0bWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW47XG59IiwiLmNvbnRhY3RfX2xvY2F0aW9uLWhvbGRlciB7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0QGluY2x1ZGUgeHktZ3JpZCgpO1xuXHRcdEBpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyKCk7XG5cdH1cblxuXHQuY29udGFjdF9fbG9jYXRpb24ge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAkbGlnaHQtZ3JheTtcblx0XHRwYWRkaW5nLXRvcDogJGdsb2JhbC1tYXJnaW47XG5cdFx0cGFkZGluZy1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdEBpbmNsdWRlIHh5LWNlbGwoNilcblx0XHR9XG5cdH1cblxuXHQuY29udGFjdF9fZGV0YWlscy1ob2xkZXIge1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRAaW5jbHVkZSB4eS1ncmlkKCk7XG5cdFx0fVxuXG5cdFx0LmNvbnRhY3RfX2NpdHkge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuXHRcdC5jb250YWN0X19hZGRyZXNzIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdFx0QGluY2x1ZGUgeHktY2VsbCg2KVxuXHRcdFx0fVxuXHRcdH1cblx0XHQuY29udGFjdF9fcGhvbmUge1xuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdFx0QGluY2x1ZGUgeHktY2VsbCg2KVxuXHRcdFx0fVxuXHRcdFx0cCB7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQuYWNmLW1hcCB7XG5cdFx0QGluY2x1ZGUgeHktY2VsbCgxMik7XG5cdFx0aGVpZ2h0OiAyNTBweDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRtYXJnaW46ICRnbG9iYWwtbWFyZ2luIDA7XG5cdFx0Ym9yZGVyOiA1cHggc29saWQgJGRhcmstZ3JheTtcblx0fVxuXG5cdC5jb250YWN0X19ob3VycyB7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdHNwYW4gcCB7XG5cdFx0XHRcdGNvbHVtbnM6IDI7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbiNjb250YWN0LWZvcm0ge1xuXHRAaW5jbHVkZSB4eS1ncmlkKCk7XG5cdEBpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyKDQwcmVtKTtcblxuXHRzZWN0aW9uIHtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxufSIsIi5ob3ctdG9fX2ludHJvIHtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRmb250LXNpemU6IDM2cHg7XG5cdH1cblx0cCB7XG5cdFx0bGluZS1oZWlnaHQ6IDEuMTtcblx0fVxufVxuXG4uYmlkZGluZy1jaXJjbGVfX2hvbGRlciB7XG5cdEBpbmNsdWRlIHh5LWdyaWQoKTtcblx0QGluY2x1ZGUgeHktZ3JpZC1jb250YWluZXIoMTA2LjI1cmVtKTtcblx0LmJpZGRpbmctY2lyY2xlIHtcblx0XHRAaW5jbHVkZSB4eS1jZWxsKDEyKTtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0aGVpZ2h0OiAzMzBweDtcblx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRAaW5jbHVkZSB4eS1jZWxsKDMpO1xuXHRcdFx0aGVpZ2h0OiAzNjBweDtcblx0XHR9XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdGhlaWdodDogMzAwcHg7XG5cdFx0XHR3aWR0aDogMzAwcHg7XG5cdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHR6LWluZGV4OiAtMTtcblx0XHRcdGJvcmRlcjogJGJsYWNrIDE2MHB4IHNvbGlkO1xuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdFx0aGVpZ2h0OiAzNjBweDtcblx0XHRcdFx0d2lkdGg6IDM2MHB4O1xuXHRcdFx0XHRib3JkZXI6ICRibGFjayAxODBweCBzb2xpZDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuYmlkZGluZy1jaXJjbGVfX2NvbnRlbnQge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0bGVmdDogNTMlO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXHRcdFx0d2lkdGg6IDI5MHB4O1xuXHRcdFx0dG9wOiA2NXB4O1xuXG5cdFx0XHRoMyB7XG5cdFx0XHRcdGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseS0taGVhdnk7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMzZweDtcblx0XHRcdH1cblxuXHRcdFx0cCB7XG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ji5ZZWxsb3cge1xuXHRcdC5iaWRkaW5nLWNpcmNsZSB7XG5cblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0Ym9yZGVyOiAkaGlnaGxpZ2h0LWNvbG9yIDE4MHB4IHNvbGlkO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLWhvdy10byB7XG5cdC5tYWluLWdyaWQge1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRtYXJnaW4tdG9wOiAxMjBweDtcblx0XHR9XG5cdH1cbn1cblxuLmJpZGRpbmctb3B0aW9ucyB7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0Y29sdW1uLWNvdW50OiAyO1xuXHRcdGNvbHVtbi1nYXA6IDQwcHg7XG5cdH1cbn0iLCJzZWN0aW9uIHtcblx0bWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW4vMjtcblx0cGFkZGluZy10b3A6ICRnbG9iYWwtbWFyZ2luLzI7XG5cdHdpZHRoOiAxMDAlO1xuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdG1hcmdpbi10b3A6ICRnbG9iYWwtbWFyZ2luO1xuXHRcdHBhZGRpbmctdG9wOiAkZ2xvYmFsLW1hcmdpbjtcblx0fVxuXG5cdCY6bGFzdC1vZi10eXBlIHtcblx0XHRtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcblx0XHRwYWRkaW5nLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG5cdH1cblx0Ji5uby1wYWRkaW5nIHtcblx0XHRwYWRkaW5nLXRvcDogMDtcblx0fVxuXHQuc2VjdGlvbl9faGVhZGluZyB7XG5cdFx0QGluY2x1ZGUgeHktZ3JpZCgpO1xuXHRcdEBpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyKDEwNi4yNXJlbSk7XG5cdFx0bWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4vMjtcblxuXHRcdCYtLW5vLXBhZGRpbmcge1xuXHRcdFx0QGV4dGVuZCAuc2VjdGlvbl9faGVhZGluZztcblx0XHRcdG1heC13aWR0aDogbm9uZTtcblx0XHR9XG5cdH1cblxuXHQmLnNlY3Rpb24tLWxpZ2h0LWdyZXkge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmF5O1xuXHR9XG5cblx0JjpsYXN0LW9mLXR5cGUge1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cblxuXHQuaW50cm8ge1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRwe1xuXHRcdFx0XHRmb250LXNpemU6IDM2cHg7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAxLjE7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8vRm9udCBDb2xvdXJzXG4udGV4dC0tbGlnaHQge1xuXHRjb2xvcjogJGRhcmstZ3JheTtcbn1cblxuLmZvbnQge1xuXHQmLS1oZWF2eSB7XG5cdFx0Zm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5LS1oZWF2eTtcblx0fVxuXG5cdCYtLWhlYWRpbmcge1xuXHRcdGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuXHR9XG59XG5cbi5oaWRlLWZvci1tZWRpdW0tdXAge1xuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cblxuaDEge1xuXHRjb2xvcjogJGJsYWNrO1xuXHRtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcblx0Zm9udC1zaXplOiAxLjVyZW07XG5cdGxpbmUtaGVpZ2h0OiAwLjg7XG5cdGZvbnQtZmFtaWx5OiAkZGlkb3QtZm9udDtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRmb250LXNpemU6IDVyZW07XG5cdH1cbn1cblxuLmZhZGVkLWJhY2tncm91bmQge1xuXHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgcmlnaHQ7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0LmhlYWRlcl9faG9sZGVyIHtcblx0XHRAaW5jbHVkZSB4eS1ncmlkLWNvbnRhaW5lcigpO1xuXHRcdEBpbmNsdWRlIHh5LWdyaWQoKTtcblx0XHR3aWR0aDogMTAwJTtcblx0XHQuZGVwYXJ0bWVudF9faGVhZGVyIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0bWluLWhlaWdodDogMjV2aDtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHR6LWluZGV4OiAxO1xuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0XHRtaW4taGVpZ2h0OiA1MHZoO1xuXHRcdFx0fVxuXHRcdFx0aDEge1xuXHRcdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdFx0XHRAaW5jbHVkZSB4eS1jZWxsKDEyKTtcblx0XHRcdFx0YWxpZ24tc2VsZjogZmxleC1lbmQ7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuXHRcdFx0XHRmb250LXNpemU6IDEuNXJlbTtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDAuODtcblx0XHRcdFx0Zm9udC1mYW1pbHk6ICRkaWRvdC1mb250O1xuXHRcdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0XHRzcGFuIHtcblx0XHRcdFx0XHQmOmxhc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0XHRmb250LWZhbWlseTogJGRpZG90LUl0YWxpYy1mb250O1xuXHRcdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdFx0XHRmb250LXNpemU6IDVyZW07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0JjphZnRlciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdG1pbi1oZWlnaHQ6IDI1dmg7XG5cdFx0Ly9iYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdG1pbi1oZWlnaHQ6IDUwdmg7XG5cdFx0fVxuXHR9XG59XG5cbi50d28tY29sLS1tZC11cCB7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0Y29sdW1uLWNvdW50OiAyO1xuXHRcdGNvbHVtbi1nYXA6IDQwcHg7XG5cdH1cbn1cblxuLmZ1bGwtd2lkdGgge1xuXHR3aWR0aDogMTAwJSFpbXBvcnRhbnQ7XG59XG4uaGFsZi13aWR0aCB7XG5cdEBpbmNsdWRlIHh5LWNlbGwoNik7XG59XG5cbmJvZHkuZml4ZWQge1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdHdpZHRoOiAxMDAlO1xufSIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8gRGVmYXVsdCBWYXJpYWJsZXNcblxuLy8gU2xpY2sgaWNvbiBlbnRpdHkgY29kZXMgb3V0cHV0cyB0aGUgZm9sbG93aW5nXG4vLyBcIlxcMjE5MFwiIG91dHB1dHMgYXNjaWkgY2hhcmFjdGVyIFwi4oaQXCJcbi8vIFwiXFwyMTkyXCIgb3V0cHV0cyBhc2NpaSBjaGFyYWN0ZXIgXCLihpJcIlxuLy8gXCJcXDIwMjJcIiBvdXRwdXRzIGFzY2lpIGNoYXJhY3RlciBcIuKAolwiXG5cbiRzbGljay1mb250LXBhdGg6IFwiLi9mb250cy9cIiAhZGVmYXVsdDtcbiRzbGljay1mb250LWZhbWlseTogXCJzbGlja1wiICFkZWZhdWx0O1xuJHNsaWNrLWxvYWRlci1wYXRoOiBcIi4vXCIgIWRlZmF1bHQ7XG4kc2xpY2stYXJyb3ctY29sb3I6IHdoaXRlICFkZWZhdWx0O1xuJHNsaWNrLWRvdC1jb2xvcjogYmxhY2sgIWRlZmF1bHQ7XG4kc2xpY2stZG90LWNvbG9yLWFjdGl2ZTogJHNsaWNrLWRvdC1jb2xvciAhZGVmYXVsdDtcbiRzbGljay1wcmV2LWNoYXJhY3RlcjogXCJcXDIxOTBcIiAhZGVmYXVsdDtcbiRzbGljay1uZXh0LWNoYXJhY3RlcjogXCJcXDIxOTJcIiAhZGVmYXVsdDtcbiRzbGljay1kb3QtY2hhcmFjdGVyOiBcIlxcMjAyMlwiICFkZWZhdWx0O1xuJHNsaWNrLWRvdC1zaXplOiA2cHggIWRlZmF1bHQ7XG4kc2xpY2stb3BhY2l0eS1kZWZhdWx0OiAwLjc1ICFkZWZhdWx0O1xuJHNsaWNrLW9wYWNpdHktb24taG92ZXI6IDEgIWRlZmF1bHQ7XG4kc2xpY2stb3BhY2l0eS1ub3QtYWN0aXZlOiAwLjI1ICFkZWZhdWx0O1xuXG5AZnVuY3Rpb24gc2xpY2staW1hZ2UtdXJsKCR1cmwpIHtcbiAgICBAaWYgZnVuY3Rpb24tZXhpc3RzKGltYWdlLXVybCkge1xuICAgICAgICBAcmV0dXJuIGltYWdlLXVybCgkdXJsKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgICBAcmV0dXJuIHVybCgkc2xpY2stbG9hZGVyLXBhdGggKyAkdXJsKTtcbiAgICB9XG59XG5cbkBmdW5jdGlvbiBzbGljay1mb250LXVybCgkdXJsKSB7XG4gICAgQGlmIGZ1bmN0aW9uLWV4aXN0cyhmb250LXVybCkge1xuICAgICAgICBAcmV0dXJuIGZvbnQtdXJsKCR1cmwpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gdXJsKCRzbGljay1mb250LXBhdGggKyAkdXJsKTtcbiAgICB9XG59XG5cbi8qIFNsaWRlciAqL1xuXG4uc2xpY2stbGlzdCB7XG4gICAgLnNsaWNrLWxvYWRpbmcgJiB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmYgc2xpY2staW1hZ2UtdXJsKFwiYWpheC1sb2FkZXIuZ2lmXCIpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xuICAgIH1cbn1cblxuLyogSWNvbnMgKi9cbkBpZiAkc2xpY2stZm9udC1mYW1pbHkgPT0gXCJzbGlja1wiIHtcbiAgICBAZm9udC1mYWNlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwic2xpY2tcIjtcbiAgICAgICAgc3JjOiBzbGljay1mb250LXVybChcInNsaWNrLmVvdFwiKTtcbiAgICAgICAgc3JjOiBzbGljay1mb250LXVybChcInNsaWNrLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHNsaWNrLWZvbnQtdXJsKFwic2xpY2sud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCBzbGljay1mb250LXVybChcInNsaWNrLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgc2xpY2stZm9udC11cmwoXCJzbGljay5zdmcjc2xpY2tcIikgZm9ybWF0KFwic3ZnXCIpO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgfVxufVxuXG4vKiBBcnJvd3MgKi9cblxuLnNsaWNrLXByZXYsXG4uc2xpY2stbmV4dCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMjBweDtcbiAgICB3aWR0aDogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMHB4O1xuICAgIGZvbnQtc2l6ZTogMHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdG9wOiA1MCU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgb3BhY2l0eTogJHNsaWNrLW9wYWNpdHktb24taG92ZXI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5zbGljay1kaXNhYmxlZDpiZWZvcmUge1xuICAgICAgICBvcGFjaXR5OiAkc2xpY2stb3BhY2l0eS1ub3QtYWN0aXZlO1xuICAgIH1cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkc2xpY2stZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIGNvbG9yOiAkc2xpY2stYXJyb3ctY29sb3I7XG4gICAgICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LWRlZmF1bHQ7XG4gICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIH1cbn1cblxuLnNsaWNrLXByZXYge1xuICAgIGxlZnQ6IC0yNXB4O1xuICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHJpZ2h0OiAtMjVweDtcbiAgICB9XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkc2xpY2stcHJldi1jaGFyYWN0ZXI7XG4gICAgICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICAgICAgICBjb250ZW50OiAkc2xpY2stbmV4dC1jaGFyYWN0ZXI7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zbGljay1uZXh0IHtcbiAgICByaWdodDogLTI1cHg7XG4gICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgbGVmdDogLTI1cHg7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgIH1cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRzbGljay1uZXh0LWNoYXJhY3RlcjtcbiAgICAgICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICRzbGljay1wcmV2LWNoYXJhY3RlcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogRG90cyAqL1xuXG4uc2xpY2stZG90dGVkLnNsaWNrLXNsaWRlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbn1cblxuLnNsaWNrLWRvdHMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IC0yNXB4O1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGxpIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIG1hcmdpbjogMCA1cHg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMHB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAwcHg7XG4gICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogJHNsaWNrLW9wYWNpdHktb24taG92ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAkc2xpY2stZG90LWNoYXJhY3RlcjtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRzbGljay1mb250LWZhbWlseTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRzbGljay1kb3Qtc2l6ZTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzbGljay1kb3QtY29sb3I7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogJHNsaWNrLW9wYWNpdHktbm90LWFjdGl2ZTtcbiAgICAgICAgICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgICAgICAgICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYuc2xpY2stYWN0aXZlIGJ1dHRvbjpiZWZvcmUge1xuICAgICAgICAgICAgY29sb3I6ICRzbGljay1kb3QtY29sb3ItYWN0aXZlO1xuICAgICAgICAgICAgb3BhY2l0eTogJHNsaWNrLW9wYWNpdHktZGVmYXVsdDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qIFNsaWRlciAqL1xuXG4uc2xpY2stc2xpZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXk7XG4gICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnNsaWNrLWxpc3Qge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5kcmFnZ2luZyB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgY3Vyc29yOiBoYW5kO1xuICAgIH1cbn1cbi5zbGljay1zbGlkZXIgLnNsaWNrLXRyYWNrLFxuLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG5cbi5zbGljay10cmFjayB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcblxuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuXG4gICAgLnNsaWNrLWxvYWRpbmcgJiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG59XG4uc2xpY2stc2xpZGUge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgICBpbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgJi5zbGljay1sb2FkaW5nIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgICYuZHJhZ2dpbmcgaW1nIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgLnNsaWNrLWluaXRpYWxpemVkICYge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAuc2xpY2stbG9hZGluZyAmIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cblxuICAgIC5zbGljay12ZXJ0aWNhbCAmIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgfVxufVxuLnNsaWNrLWFycm93LnNsaWNrLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qIVxuICogSGFtYnVyZ2Vyc1xuICogQGRlc2NyaXB0aW9uIFRhc3R5IENTUy1hbmltYXRlZCBoYW1idXJnZXJzXG4gKiBAYXV0aG9yIEpvbmF0aGFuIFN1aCBAam9uc3VoXG4gKiBAc2l0ZSBodHRwczovL2pvbnN1aC5jb20vaGFtYnVyZ2Vyc1xuICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2pvbnN1aC9oYW1idXJnZXJzXG4gKi9cblxuLy8gU2V0dGluZ3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4kaGFtYnVyZ2VyLXBhZGRpbmcteCAgICAgICAgICAgOiAxMHB4ICFkZWZhdWx0O1xuJGhhbWJ1cmdlci1wYWRkaW5nLXkgICAgICAgICAgIDogMTBweCAhZGVmYXVsdDtcbiRoYW1idXJnZXItbGF5ZXItd2lkdGggICAgICAgICA6IDMwcHggIWRlZmF1bHQ7XG4kaGFtYnVyZ2VyLWxheWVyLWhlaWdodCAgICAgICAgOiAzcHggIWRlZmF1bHQ7XG4kaGFtYnVyZ2VyLWxheWVyLXNwYWNpbmcgICAgICAgOiA1cHggIWRlZmF1bHQ7XG4kaGFtYnVyZ2VyLWxheWVyLWNvbG9yICAgICAgICAgOiAjMDAwICFkZWZhdWx0O1xuJGhhbWJ1cmdlci1sYXllci1ib3JkZXItcmFkaXVzIDogNHB4ICFkZWZhdWx0O1xuJGhhbWJ1cmdlci1ob3Zlci1vcGFjaXR5ICAgICAgIDogMC43ICFkZWZhdWx0O1xuJGhhbWJ1cmdlci1hY3RpdmUtbGF5ZXItY29sb3IgIDogJGhhbWJ1cmdlci1sYXllci1jb2xvciAhZGVmYXVsdDtcbiRoYW1idXJnZXItYWN0aXZlLWhvdmVyLW9wYWNpdHk6ICRoYW1idXJnZXItaG92ZXItb3BhY2l0eSAhZGVmYXVsdDtcblxuLy8gVG8gdXNlIENTUyBmaWx0ZXJzIGFzIHRoZSBob3ZlciBlZmZlY3QgaW5zdGVhZCBvZiBvcGFjaXR5LFxuLy8gc2V0ICRoYW1idXJnZXItaG92ZXItdXNlLWZpbHRlciBhcyB0cnVlIGFuZFxuLy8gY2hhbmdlIHRoZSB2YWx1ZSBvZiAkaGFtYnVyZ2VyLWhvdmVyLWZpbHRlciBhY2NvcmRpbmdseS5cbiRoYW1idXJnZXItaG92ZXItdXNlLWZpbHRlciAgIDogZmFsc2UgIWRlZmF1bHQ7XG4kaGFtYnVyZ2VyLWhvdmVyLWZpbHRlciAgICAgICA6IG9wYWNpdHkoNTAlKSAhZGVmYXVsdDtcbiRoYW1idXJnZXItYWN0aXZlLWhvdmVyLWZpbHRlcjogJGhhbWJ1cmdlci1ob3Zlci1maWx0ZXIgIWRlZmF1bHQ7XG5cbi8vIFR5cGVzIChSZW1vdmUgb3IgY29tbWVudCBvdXQgd2hhdCB5b3UgZG9u4oCZdCBuZWVkKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiRoYW1idXJnZXItdHlwZXM6IChcbiAgM2R4LFxuICAzZHgtcixcbiAgM2R5LFxuICAzZHktcixcbiAgM2R4eSxcbiAgM2R4eS1yLFxuICBhcnJvdyxcbiAgYXJyb3ctcixcbiAgYXJyb3dhbHQsXG4gIGFycm93YWx0LXIsXG4gIGFycm93dHVybixcbiAgYXJyb3d0dXJuLXIsXG4gIGJvcmluZyxcbiAgY29sbGFwc2UsXG4gIGNvbGxhcHNlLXIsXG4gIGVsYXN0aWMsXG4gIGVsYXN0aWMtcixcbiAgZW1waGF0aWMsXG4gIGVtcGhhdGljLXIsXG4gIG1pbnVzLFxuICBzbGlkZXIsXG4gIHNsaWRlci1yLFxuICBzcGluLFxuICBzcGluLXIsXG4gIHNwcmluZyxcbiAgc3ByaW5nLXIsXG4gIHN0YW5kLFxuICBzdGFuZC1yLFxuICBzcXVlZXplLFxuICB2b3J0ZXgsXG4gIHZvcnRleC1yXG4pICFkZWZhdWx0O1xuXG4vLyBCYXNlIEhhbWJ1cmdlciAoV2UgbmVlZCB0aGlzKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkBpbXBvcnQgXCJiYXNlXCI7XG5cbi8vIEhhbWJ1cmdlciB0eXBlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkBpbXBvcnQgXCJ0eXBlcy8zZHhcIjtcbkBpbXBvcnQgXCJ0eXBlcy8zZHgtclwiO1xuQGltcG9ydCBcInR5cGVzLzNkeVwiO1xuQGltcG9ydCBcInR5cGVzLzNkeS1yXCI7XG5AaW1wb3J0IFwidHlwZXMvM2R4eVwiO1xuQGltcG9ydCBcInR5cGVzLzNkeHktclwiO1xuQGltcG9ydCBcInR5cGVzL2Fycm93XCI7XG5AaW1wb3J0IFwidHlwZXMvYXJyb3ctclwiO1xuQGltcG9ydCBcInR5cGVzL2Fycm93YWx0XCI7XG5AaW1wb3J0IFwidHlwZXMvYXJyb3dhbHQtclwiO1xuQGltcG9ydCBcInR5cGVzL2Fycm93dHVyblwiO1xuQGltcG9ydCBcInR5cGVzL2Fycm93dHVybi1yXCI7XG5AaW1wb3J0IFwidHlwZXMvYm9yaW5nXCI7XG5AaW1wb3J0IFwidHlwZXMvY29sbGFwc2VcIjtcbkBpbXBvcnQgXCJ0eXBlcy9jb2xsYXBzZS1yXCI7XG5AaW1wb3J0IFwidHlwZXMvZWxhc3RpY1wiO1xuQGltcG9ydCBcInR5cGVzL2VsYXN0aWMtclwiO1xuQGltcG9ydCBcInR5cGVzL2VtcGhhdGljXCI7XG5AaW1wb3J0IFwidHlwZXMvZW1waGF0aWMtclwiO1xuQGltcG9ydCBcInR5cGVzL21pbnVzXCI7XG5AaW1wb3J0IFwidHlwZXMvc2xpZGVyXCI7XG5AaW1wb3J0IFwidHlwZXMvc2xpZGVyLXJcIjtcbkBpbXBvcnQgXCJ0eXBlcy9zcGluXCI7XG5AaW1wb3J0IFwidHlwZXMvc3Bpbi1yXCI7XG5AaW1wb3J0IFwidHlwZXMvc3ByaW5nXCI7XG5AaW1wb3J0IFwidHlwZXMvc3ByaW5nLXJcIjtcbkBpbXBvcnQgXCJ0eXBlcy9zdGFuZFwiO1xuQGltcG9ydCBcInR5cGVzL3N0YW5kLXJcIjtcbkBpbXBvcnQgXCJ0eXBlcy9zcXVlZXplXCI7XG5AaW1wb3J0IFwidHlwZXMvdm9ydGV4XCI7XG5AaW1wb3J0IFwidHlwZXMvdm9ydGV4LXJcIjtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENvb2tpbmcgdXAgYWRkaXRpb25hbCB0eXBlczpcbi8vXG4vLyBUaGUgU2FzcyBmb3IgZWFjaCBoYW1idXJnZXIgdHlwZSBzaG91bGQgYmUgbmVzdGVkXG4vLyBpbnNpZGUgYW4gQGlmIGRpcmVjdGl2ZSB0byBjaGVjayB3aGV0aGVyIG9yIG5vdFxuLy8gaXQgZXhpc3RzIGluICRoYW1idXJnZXItdHlwZXMgc28gb25seSB0aGUgQ1NTIGZvclxuLy8gaW5jbHVkZWQgdHlwZXMgYXJlIGdlbmVyYXRlZC5cbi8vXG4vLyBlLmcuIGhhbWJ1cmdlcnMvdHlwZXMvX25ldy10eXBlLnNjc3Ncbi8vXG4vLyBAaWYgaW5kZXgoJGhhbWJ1cmdlci10eXBlcywgbmV3LXR5cGUpIHtcbi8vICAgLmhhbWJ1cmdlci0tbmV3LXR5cGUge1xuLy8gICAgIC4uLlxuLy8gICB9XG4vLyB9XG4iLCIvLyBIYW1idXJnZXJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4uaGFtYnVyZ2VyIHtcbiAgcGFkZGluZzogJGhhbWJ1cmdlci1wYWRkaW5nLXkgJGhhbWJ1cmdlci1wYWRkaW5nLXg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIGZpbHRlcjtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xNXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG5cbiAgLy8gTm9ybWFsaXplICg8YnV0dG9uPilcbiAgZm9udDogaW5oZXJpdDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBtYXJnaW46IDA7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuXG4gICY6aG92ZXIge1xuICAgIEBpZiAkaGFtYnVyZ2VyLWhvdmVyLXVzZS1maWx0ZXIgPT0gdHJ1ZSB7XG4gICAgICBmaWx0ZXI6ICRoYW1idXJnZXItaG92ZXItZmlsdGVyO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBvcGFjaXR5OiAkaGFtYnVyZ2VyLWhvdmVyLW9wYWNpdHk7XG4gICAgfVxuICB9XG5cbiAgJi5pcy1hY3RpdmUge1xuICAgICY6aG92ZXIge1xuICAgICAgQGlmICRoYW1idXJnZXItaG92ZXItdXNlLWZpbHRlciA9PSB0cnVlIHtcbiAgICAgICAgZmlsdGVyOiAkaGFtYnVyZ2VyLWFjdGl2ZS1ob3Zlci1maWx0ZXI7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIG9wYWNpdHk6ICRoYW1idXJnZXItYWN0aXZlLWhvdmVyLW9wYWNpdHk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmhhbWJ1cmdlci1pbm5lcixcbiAgICAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsXG4gICAgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhhbWJ1cmdlci1hY3RpdmUtbGF5ZXItY29sb3I7XG4gICAgfVxuICB9XG59XG5cbi5oYW1idXJnZXItYm94IHtcbiAgd2lkdGg6ICRoYW1idXJnZXItbGF5ZXItd2lkdGg7XG4gIGhlaWdodDogJGhhbWJ1cmdlci1sYXllci1oZWlnaHQgKiAzICsgJGhhbWJ1cmdlci1sYXllci1zcGFjaW5nICogMjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5oYW1idXJnZXItaW5uZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoYW1idXJnZXItbGF5ZXItaGVpZ2h0IC8gLTI7XG5cbiAgJixcbiAgJjo6YmVmb3JlLFxuICAmOjphZnRlciB7XG4gICAgd2lkdGg6ICRoYW1idXJnZXItbGF5ZXItd2lkdGg7XG4gICAgaGVpZ2h0OiAkaGFtYnVyZ2VyLWxheWVyLWhlaWdodDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGFtYnVyZ2VyLWxheWVyLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6ICRoYW1idXJnZXItbGF5ZXItYm9yZGVyLXJhZGl1cztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMTVzO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlO1xuICB9XG5cbiAgJjo6YmVmb3JlLFxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgdG9wOiAoJGhhbWJ1cmdlci1sYXllci1zcGFjaW5nICsgJGhhbWJ1cmdlci1sYXllci1oZWlnaHQpICogLTE7XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgYm90dG9tOiAoJGhhbWJ1cmdlci1sYXllci1zcGFjaW5nICsgJGhhbWJ1cmdlci1sYXllci1oZWlnaHQpICogLTE7XG4gIH1cbn1cbiIsIkBpZiBpbmRleCgkaGFtYnVyZ2VyLXR5cGVzLCAzZHgpIHtcbiAgLypcbiAgICogM0RYXG4gICAqL1xuICAuaGFtYnVyZ2VyLS0zZHgge1xuICAgIC5oYW1idXJnZXItYm94IHtcbiAgICAgIHBlcnNwZWN0aXZlOiAkaGFtYnVyZ2VyLWxheWVyLXdpZHRoICogMjtcbiAgICB9XG5cbiAgICAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSksXG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIDBzIDAuMXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpO1xuXG4gICAgICAmOjpiZWZvcmUsXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwcyAwLjFzIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKDE4MGRlZyk7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsICRoYW1idXJnZXItbGF5ZXItaGVpZ2h0ICsgJGhhbWJ1cmdlci1sYXllci1zcGFjaW5nLCAwKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgKCRoYW1idXJnZXItbGF5ZXItaGVpZ2h0ICsgJGhhbWJ1cmdlci1sYXllci1zcGFjaW5nKSAqIC0xLCAwKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGlmIGluZGV4KCRoYW1idXJnZXItdHlwZXMsIDNkeC1yKSB7XG4gIC8qXG4gICAqIDNEWCBSZXZlcnNlXG4gICAqL1xuICAuaGFtYnVyZ2VyLS0zZHgtciB7XG4gICAgLmhhbWJ1cmdlci1ib3gge1xuICAgICAgcGVyc3BlY3RpdmU6ICRoYW1idXJnZXItbGF5ZXItd2lkdGggKiAyO1xuICAgIH1cblxuICAgIC5oYW1idXJnZXItaW5uZXIge1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKSxcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3IgMHMgMC4xcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSk7XG5cbiAgICAgICY6OmJlZm9yZSxcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDBzIDAuMXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIC5oYW1idXJnZXItaW5uZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsICRoYW1idXJnZXItbGF5ZXItaGVpZ2h0ICsgJGhhbWJ1cmdlci1sYXllci1zcGFjaW5nLCAwKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgKCRoYW1idXJnZXItbGF5ZXItaGVpZ2h0ICsgJGhhbWJ1cmdlci1sYXllci1zcGFjaW5nKSAqIC0xLCAwKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGlmIGluZGV4KCRoYW1idXJnZXItdHlwZXMsIDNkeSkge1xuICAvKlxuICAgKiAzRFlcbiAgICovXG4gIC5oYW1idXJnZXItLTNkeSB7XG4gICAgLmhhbWJ1cmdlci1ib3gge1xuICAgICAgcGVyc3BlY3RpdmU6ICRoYW1idXJnZXItbGF5ZXItd2lkdGggKiAyO1xuICAgIH1cblxuICAgIC5oYW1idXJnZXItaW5uZXIge1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKSxcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3IgMHMgMC4xcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSk7XG5cbiAgICAgICY6OmJlZm9yZSxcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDBzIDAuMXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIC5oYW1idXJnZXItaW5uZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVgoLTE4MGRlZyk7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsICRoYW1idXJnZXItbGF5ZXItaGVpZ2h0ICsgJGhhbWJ1cmdlci1sYXllci1zcGFjaW5nLCAwKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgKCRoYW1idXJnZXItbGF5ZXItaGVpZ2h0ICsgJGhhbWJ1cmdlci1sYXllci1zcGFjaW5nKSAqIC0xLCAwKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGlmIGluZGV4KCRoYW1idXJnZXItdHlwZXMsIDNkeS1yKSB7XG4gIC8qXG4gICAqIDNEWSBSZXZlcnNlXG4gICAqL1xuICAuaGFtYnVyZ2VyLS0zZHktciB7XG4gICAgLmhhbWJ1cmdlci1ib3gge1xuICAgICAgcGVyc3BlY3RpdmU6ICRoYW1idXJnZXItbGF5ZXItd2lkdGggKiAyO1xuICAgIH1cblxuICAgIC5oYW1idXJnZXItaW5uZXIge1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKSxcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3IgMHMgMC4xcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSk7XG5cbiAgICAgICY6OmJlZm9yZSxcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDBzIDAuMXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIC5oYW1idXJnZXItaW5uZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVgoMTgwZGVnKTtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgJGhhbWJ1cmdlci1sYXllci1oZWlnaHQgKyAkaGFtYnVyZ2VyLWxheWVyLXNwYWNpbmcsIDApIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAoJGhhbWJ1cmdlci1sYXllci1oZWlnaHQgKyAkaGFtYnVyZ2VyLWxheWVyLXNwYWNpbmcpICogLTEsIDApIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaWYgaW5kZXgoJGhhbWJ1cmdlci10eXBlcywgM2R4eSkge1xuICAvKlxuICAgKiAzRFhZXG4gICAqL1xuICAuaGFtYnVyZ2VyLS0zZHh5IHtcbiAgICAuaGFtYnVyZ2VyLWJveCB7XG4gICAgICBwZXJzcGVjdGl2ZTogJGhhbWJ1cmdlci1sYXllci13aWR0aCAqIDI7XG4gICAgfVxuXG4gICAgLmhhbWJ1cmdlci1pbm5lciB7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpLFxuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciAwcyAwLjFzIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKTtcblxuICAgICAgJjo6YmVmb3JlLFxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMHMgMC4xcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgLmhhbWJ1cmdlci1pbm5lciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlWCgxODBkZWcpIHJvdGF0ZVkoMTgwZGVnKTtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgJGhhbWJ1cmdlci1sYXllci1oZWlnaHQgKyAkaGFtYnVyZ2VyLWxheWVyLXNwYWNpbmcsIDApIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAoJGhhbWJ1cmdlci1sYXllci1oZWlnaHQgKyAkaGFtYnVyZ2VyLWxheWVyLXNwYWNpbmcpICogLTEsIDApIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaWYgaW5kZXgoJGhhbWJ1cmdlci10eXBlcywgM2R4eS1yKSB7XG4gIC8qXG4gICAqIDNEWFkgUmV2ZXJzZVxuICAgKi9cbiAgLmhhbWJ1cmdlci0tM2R4eS1yIHtcbiAgICAuaGFtYnVyZ2VyLWJveCB7XG4gICAgICBwZXJzcGVjdGl2ZTogJGhhbWJ1cmdlci1sYXllci13aWR0aCAqIDI7XG4gICAgfVxuXG4gICAgLmhhbWJ1cmdlci1pbm5lciB7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpLFxuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciAwcyAwLjFzIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKTtcblxuICAgICAgJjo6YmVmb3JlLFxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMHMgMC4xcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgLmhhbWJ1cmdlci1pbm5lciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlWCgxODBkZWcpIHJvdGF0ZVkoMTgwZGVnKSByb3RhdGVaKC0xODBkZWcpO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAkaGFtYnVyZ2VyLWxheWVyLWhlaWdodCArICRoYW1idXJnZXItbGF5ZXItc3BhY2luZywgMCkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsICgkaGFtYnVyZ2VyLWxheWVyLWhlaWdodCArICRoYW1idXJnZXItbGF5ZXItc3BhY2luZykgKiAtMSwgMCkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBpZiBpbmRleCgkaGFtYnVyZ2VyLXR5cGVzLCBhcnJvdykge1xuICAvKlxuICAgKiBBcnJvd1xuICAgKi9cbiAgLmhhbWJ1cmdlci0tYXJyb3cuaXMtYWN0aXZlIHtcbiAgICAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoJGhhbWJ1cmdlci1sYXllci13aWR0aCAqIC0wLjIsIDAsIDApIHJvdGF0ZSgtNDVkZWcpIHNjYWxlKDAuNywgMSk7XG4gICAgICB9XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgkaGFtYnVyZ2VyLWxheWVyLXdpZHRoICogLTAuMiwgMCwgMCkgcm90YXRlKDQ1ZGVnKSBzY2FsZSgwLjcsIDEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGlmIGluZGV4KCRoYW1idXJnZXItdHlwZXMsIGFycm93LXIpIHtcbiAgLypcbiAgICogQXJyb3cgUmlnaHRcbiAgICovXG4gIC5oYW1idXJnZXItLWFycm93LXIuaXMtYWN0aXZlIHtcbiAgICAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoJGhhbWJ1cmdlci1sYXllci13aWR0aCAqIDAuMiwgMCwgMCkgcm90YXRlKDQ1ZGVnKSBzY2FsZSgwLjcsIDEpO1xuICAgICAgfVxuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoJGhhbWJ1cmdlci1sYXllci13aWR0aCAqIDAuMiwgMCwgMCkgcm90YXRlKC00NWRlZykgc2NhbGUoMC43LCAxKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBpZiBpbmRleCgkaGFtYnVyZ2VyLXR5cGVzLCBhcnJvd2FsdCkge1xuICAvKlxuICAgKiBBcnJvdyBBbHRcbiAgICovXG4gIC5oYW1idXJnZXItLWFycm93YWx0IHtcbiAgICAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIHRyYW5zaXRpb246IHRvcCAwLjFzIDAuMXMgZWFzZSxcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtIDAuMXMgY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0LCAwLjQ0LCAxKTtcbiAgICAgIH1cblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICB0cmFuc2l0aW9uOiBib3R0b20gMC4xcyAwLjFzIGVhc2UsXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybSAwLjFzIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgLmhhbWJ1cmdlci1pbm5lciB7XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoJGhhbWJ1cmdlci1sYXllci13aWR0aCAqIC0wLjIsICRoYW1idXJnZXItbGF5ZXItd2lkdGggKiAtMC4yNSwgMCkgcm90YXRlKC00NWRlZykgc2NhbGUoMC43LCAxKTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiB0b3AgMC4xcyBlYXNlLFxuICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybSAwLjFzIDAuMXMgY3ViaWMtYmV6aWVyKDAuODk1LCAwLjAzLCAwLjY4NSwgMC4yMik7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoJGhhbWJ1cmdlci1sYXllci13aWR0aCAqIC0wLjIsICRoYW1idXJnZXItbGF5ZXItd2lkdGggKiAwLjI1LCAwKSByb3RhdGUoNDVkZWcpIHNjYWxlKDAuNywgMSk7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYm90dG9tIDAuMXMgZWFzZSxcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gMC4xcyAwLjFzIGN1YmljLWJlemllcigwLjg5NSwgMC4wMywgMC42ODUsIDAuMjIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaWYgaW5kZXgoJGhhbWJ1cmdlci10eXBlcywgYXJyb3dhbHQtcikge1xuICAvKlxuICAgKiBBcnJvdyBBbHQgUmlnaHRcbiAgICovXG4gIC5oYW1idXJnZXItLWFycm93YWx0LXIge1xuICAgIC5oYW1idXJnZXItaW5uZXIge1xuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgdHJhbnNpdGlvbjogdG9wIDAuMXMgMC4xcyBlYXNlLFxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gMC4xcyBjdWJpYy1iZXppZXIoMC4xNjUsIDAuODQsIDAuNDQsIDEpO1xuICAgICAgfVxuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIHRyYW5zaXRpb246IGJvdHRvbSAwLjFzIDAuMXMgZWFzZSxcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtIDAuMXMgY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0LCAwLjQ0LCAxKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgkaGFtYnVyZ2VyLWxheWVyLXdpZHRoICogMC4yLCAkaGFtYnVyZ2VyLWxheWVyLXdpZHRoICogLTAuMjUsIDApIHJvdGF0ZSg0NWRlZykgc2NhbGUoMC43LCAxKTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiB0b3AgMC4xcyBlYXNlLFxuICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybSAwLjFzIDAuMXMgY3ViaWMtYmV6aWVyKDAuODk1LCAwLjAzLCAwLjY4NSwgMC4yMik7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoJGhhbWJ1cmdlci1sYXllci13aWR0aCAqIDAuMiwgJGhhbWJ1cmdlci1sYXllci13aWR0aCAqIDAuMjUsIDApIHJvdGF0ZSgtNDVkZWcpIHNjYWxlKDAuNywgMSk7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYm90dG9tIDAuMXMgZWFzZSxcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gMC4xcyAwLjFzIGN1YmljLWJlemllcigwLjg5NSwgMC4wMywgMC42ODUsIDAuMjIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaWYgaW5kZXgoJGhhbWJ1cmdlci10eXBlcywgYXJyb3d0dXJuKSB7XG4gIC8qXG4gICAqIEFycm93IFR1cm5cbiAgICovXG4gIC5oYW1idXJnZXItLWFycm93dHVybi5pcy1hY3RpdmUge1xuICAgIC5oYW1idXJnZXItaW5uZXIge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoOHB4LCAwLCAwKSByb3RhdGUoNDVkZWcpIHNjYWxlKDAuNywgMSk7XG4gICAgICB9XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg4cHgsIDAsIDApIHJvdGF0ZSgtNDVkZWcpIHNjYWxlKDAuNywgMSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaWYgaW5kZXgoJGhhbWJ1cmdlci10eXBlcywgYXJyb3d0dXJuLXIpIHtcbiAgLypcbiAgICogQXJyb3cgVHVybiBSaWdodFxuICAgKi9cbiAgLmhhbWJ1cmdlci0tYXJyb3d0dXJuLXIuaXMtYWN0aXZlIHtcbiAgICAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xODBkZWcpO1xuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC04cHgsIDAsIDApIHJvdGF0ZSgtNDVkZWcpIHNjYWxlKDAuNywgMSk7XG4gICAgICB9XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtOHB4LCAwLCAwKSByb3RhdGUoNDVkZWcpIHNjYWxlKDAuNywgMSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaWYgaW5kZXgoJGhhbWJ1cmdlci10eXBlcywgYm9yaW5nKSB7XG4gIC8qXG4gICAqIEJvcmluZ1xuICAgKi9cbiAgLmhhbWJ1cmdlci0tYm9yaW5nIHtcbiAgICAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgICAgICYsXG4gICAgICAmOjpiZWZvcmUsXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgLmhhbWJ1cmdlci1pbm5lciB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaWYgaW5kZXgoJGhhbWJ1cmdlci10eXBlcywgY29sbGFwc2UpIHtcbiAgLypcbiAgICogQ29sbGFwc2VcbiAgICovXG4gIC5oYW1idXJnZXItLWNvbGxhcHNlIHtcbiAgICAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgICAgIHRvcDogYXV0bztcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMTNzO1xuICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4xM3M7XG4gICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgdG9wOiAoJGhhbWJ1cmdlci1sYXllci1zcGFjaW5nICogMiArICRoYW1idXJnZXItbGF5ZXItaGVpZ2h0ICogMikgKiAtMTtcbiAgICAgICAgdHJhbnNpdGlvbjogdG9wIDAuMnMgMC4ycyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMC42NjY2NywgMC42NjY2NywgMSksXG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHkgMC4xcyBsaW5lYXI7XG4gICAgICB9XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIHRyYW5zaXRpb246IHRvcCAwLjEycyAwLjJzIGN1YmljLWJlemllcigwLjMzMzMzLCAwLjY2NjY3LCAwLjY2NjY3LCAxKSxcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtIDAuMTNzIGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIC5oYW1idXJnZXItaW5uZXIge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsICgkaGFtYnVyZ2VyLWxheWVyLXNwYWNpbmcgKyAkaGFtYnVyZ2VyLWxheWVyLWhlaWdodCkgKiAtMSwgMCkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMjJzO1xuICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIHRyYW5zaXRpb246IHRvcCAwLjJzIGN1YmljLWJlemllcigwLjMzMzMzLCAwLCAwLjY2NjY3LCAwLjMzMzMzKSxcbiAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5IDAuMXMgMC4yMnMgbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiB0b3AgMC4xcyAwLjE2cyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMCwgMC42NjY2NywgMC4zMzMzMyksXG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtIDAuMTNzIDAuMjVzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaWYgaW5kZXgoJGhhbWJ1cmdlci10eXBlcywgY29sbGFwc2Utcikge1xuICAvKlxuICAgKiBDb2xsYXBzZSBSZXZlcnNlXG4gICAqL1xuICAuaGFtYnVyZ2VyLS1jb2xsYXBzZS1yIHtcbiAgICAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgICAgIHRvcDogYXV0bztcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMTNzO1xuICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4xM3M7XG4gICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgdG9wOiAoJGhhbWJ1cmdlci1sYXllci1zcGFjaW5nICogMiArICRoYW1idXJnZXItbGF5ZXItaGVpZ2h0ICogMikgKiAtMTtcbiAgICAgICAgdHJhbnNpdGlvbjogdG9wIDAuMnMgMC4ycyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMC42NjY2NywgMC42NjY2NywgMSksXG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHkgMC4xcyBsaW5lYXI7XG4gICAgICB9XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIHRyYW5zaXRpb246IHRvcCAwLjEycyAwLjJzIGN1YmljLWJlemllcigwLjMzMzMzLCAwLjY2NjY3LCAwLjY2NjY3LCAxKSxcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtIDAuMTNzIGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIC5oYW1idXJnZXItaW5uZXIge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsICgkaGFtYnVyZ2VyLWxheWVyLXNwYWNpbmcgKyAkaGFtYnVyZ2VyLWxheWVyLWhlaWdodCkgKiAtMSwgMCkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4yMnM7XG4gICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTtcblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgdHJhbnNpdGlvbjogdG9wIDAuMnMgY3ViaWMtYmV6aWVyKDAuMzMzMzMsIDAsIDAuNjY2NjcsIDAuMzMzMzMpLFxuICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHkgMC4xcyAwLjIycyBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgICAgICAgdHJhbnNpdGlvbjogdG9wIDAuMXMgMC4xNnMgY3ViaWMtYmV6aWVyKDAuMzMzMzMsIDAsIDAuNjY2NjcsIDAuMzMzMzMpLFxuICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybSAwLjEzcyAwLjI1cyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGlmIGluZGV4KCRoYW1idXJnZXItdHlwZXMsIGVsYXN0aWMpIHtcbiAgLypcbiAgICogRWxhc3RpY1xuICAgKi9cbiAgLmhhbWJ1cmdlci0tZWxhc3RpYyB7XG4gICAgLmhhbWJ1cmdlci1pbm5lciB7XG4gICAgICB0b3A6ICRoYW1idXJnZXItbGF5ZXItaGVpZ2h0IC8gMjtcbiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMjc1cztcbiAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC42OCwgLTAuNTUsIDAuMjY1LCAxLjU1KTtcblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgdG9wOiAkaGFtYnVyZ2VyLWxheWVyLWhlaWdodCArICRoYW1idXJnZXItbGF5ZXItc3BhY2luZztcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjEyNXMgMC4yNzVzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgdG9wOiAoJGhhbWJ1cmdlci1sYXllci1oZWlnaHQgKiAyKSArICgkaGFtYnVyZ2VyLWxheWVyLXNwYWNpbmcgKiAyKTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjc1cyBjdWJpYy1iZXppZXIoMC42OCwgLTAuNTUsIDAuMjY1LCAxLjU1KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgICAgICAgJHktb2Zmc2V0OiAkaGFtYnVyZ2VyLWxheWVyLXNwYWNpbmcgKyAkaGFtYnVyZ2VyLWxheWVyLWhlaWdodDtcblxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsICR5LW9mZnNldCwgMCkgcm90YXRlKDEzNWRlZyk7XG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMDc1cztcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzO1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAkeS1vZmZzZXQgKiAtMiwgMCkgcm90YXRlKC0yNzBkZWcpO1xuICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMDc1cztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGlmIGluZGV4KCRoYW1idXJnZXItdHlwZXMsIGVsYXN0aWMtcikge1xuICAvKlxuICAgKiBFbGFzdGljIFJldmVyc2VcbiAgICovXG4gIC5oYW1idXJnZXItLWVsYXN0aWMtciB7XG4gICAgLmhhbWJ1cmdlci1pbm5lciB7XG4gICAgICB0b3A6ICRoYW1idXJnZXItbGF5ZXItaGVpZ2h0IC8gMjtcbiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMjc1cztcbiAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC42OCwgLTAuNTUsIDAuMjY1LCAxLjU1KTtcblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgdG9wOiAkaGFtYnVyZ2VyLWxheWVyLWhlaWdodCArICRoYW1idXJnZXItbGF5ZXItc3BhY2luZztcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjEyNXMgMC4yNzVzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgdG9wOiAoJGhhbWJ1cmdlci1sYXllci1oZWlnaHQgKiAyKSArICgkaGFtYnVyZ2VyLWxheWVyLXNwYWNpbmcgKiAyKTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjc1cyBjdWJpYy1iZXppZXIoMC42OCwgLTAuNTUsIDAuMjY1LCAxLjU1KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgICAgICAgJHktb2Zmc2V0OiAkaGFtYnVyZ2VyLWxheWVyLXNwYWNpbmcgKyAkaGFtYnVyZ2VyLWxheWVyLWhlaWdodDtcblxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsICR5LW9mZnNldCwgMCkgcm90YXRlKC0xMzVkZWcpO1xuICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjA3NXM7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbiAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgJHktb2Zmc2V0ICogLTIsIDApIHJvdGF0ZSgyNzBkZWcpO1xuICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMDc1cztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGlmIGluZGV4KCRoYW1idXJnZXItdHlwZXMsIGVtcGhhdGljKSB7XG4gIC8qXG4gICAqIEVtcGhhdGljXG4gICAqL1xuICAuaGFtYnVyZ2VyLS1lbXBoYXRpYyB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIC5oYW1idXJnZXItaW5uZXIge1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjEyNXMgMC4xNzVzIGVhc2UtaW47XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjEyNXMgY3ViaWMtYmV6aWVyKDAuNiwgMC4wNCwgMC45OCwgMC4zMzUpLFxuICAgICAgICAgICAgICAgICAgICB0b3AgMC4wNXMgMC4xMjVzIGxpbmVhcixcbiAgICAgICAgICAgICAgICAgICAgbGVmdCAwLjEyNXMgMC4xNzVzIGVhc2UtaW47XG4gICAgICB9XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgdG9wOiAoJGhhbWJ1cmdlci1sYXllci1oZWlnaHQpICsgKCRoYW1idXJnZXItbGF5ZXItc3BhY2luZyk7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xMjVzIGN1YmljLWJlemllcigwLjYsIDAuMDQsIDAuOTgsIDAuMzM1KSxcbiAgICAgICAgICAgICAgICAgICAgdG9wIDAuMDVzIDAuMTI1cyBsaW5lYXIsXG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0IDAuMTI1cyAwLjE3NXMgZWFzZS1pbjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMHM7XG4gICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIGxlZnQ6ICRoYW1idXJnZXItbGF5ZXItd2lkdGggKiAtMjtcbiAgICAgICAgICB0b3A6ICRoYW1idXJnZXItbGF5ZXItd2lkdGggKiAtMjtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKCRoYW1idXJnZXItbGF5ZXItd2lkdGggKiAyLCAkaGFtYnVyZ2VyLWxheWVyLXdpZHRoICogMiwgMCkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBsZWZ0IDAuMTI1cyBlYXNlLW91dCxcbiAgICAgICAgICAgICAgICAgICAgICB0b3AgMC4wNXMgMC4xMjVzIGxpbmVhcixcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gMC4xMjVzIDAuMTc1cyBjdWJpYy1iZXppZXIoMC4wNzUsIDAuODIsIDAuMTY1LCAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICByaWdodDogJGhhbWJ1cmdlci1sYXllci13aWR0aCAqIC0yO1xuICAgICAgICAgIHRvcDogJGhhbWJ1cmdlci1sYXllci13aWR0aCAqIC0yO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoJGhhbWJ1cmdlci1sYXllci13aWR0aCAqIC0yLCAkaGFtYnVyZ2VyLWxheWVyLXdpZHRoICogMiwgMCkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgdHJhbnNpdGlvbjogcmlnaHQgMC4xMjVzIGVhc2Utb3V0LFxuICAgICAgICAgICAgICAgICAgICAgIHRvcCAwLjA1cyAwLjEyNXMgbGluZWFyLFxuICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybSAwLjEyNXMgMC4xNzVzIGN1YmljLWJlemllcigwLjA3NSwgMC44MiwgMC4xNjUsIDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaWYgaW5kZXgoJGhhbWJ1cmdlci10eXBlcywgZW1waGF0aWMtcikge1xuICAvKlxuICAgKiBFbXBoYXRpYyBSZXZlcnNlXG4gICAqL1xuICAuaGFtYnVyZ2VyLS1lbXBoYXRpYy1yIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLmhhbWJ1cmdlci1pbm5lciB7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTI1cyAwLjE3NXMgZWFzZS1pbjtcblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTI1cyBjdWJpYy1iZXppZXIoMC42LCAwLjA0LCAwLjk4LCAwLjMzNSksXG4gICAgICAgICAgICAgICAgICAgIHRvcCAwLjA1cyAwLjEyNXMgbGluZWFyLFxuICAgICAgICAgICAgICAgICAgICBsZWZ0IDAuMTI1cyAwLjE3NXMgZWFzZS1pbjtcbiAgICAgIH1cblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICB0b3A6ICgkaGFtYnVyZ2VyLWxheWVyLWhlaWdodCkgKyAoJGhhbWJ1cmdlci1sYXllci1zcGFjaW5nKTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjEyNXMgY3ViaWMtYmV6aWVyKDAuNiwgMC4wNCwgMC45OCwgMC4zMzUpLFxuICAgICAgICAgICAgICAgICAgICB0b3AgMC4wNXMgMC4xMjVzIGxpbmVhcixcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQgMC4xMjVzIDAuMTc1cyBlYXNlLWluO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIC5oYW1idXJnZXItaW5uZXIge1xuICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbiAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgbGVmdDogJGhhbWJ1cmdlci1sYXllci13aWR0aCAqIC0yO1xuICAgICAgICAgIHRvcDogJGhhbWJ1cmdlci1sYXllci13aWR0aCAqIDI7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgkaGFtYnVyZ2VyLWxheWVyLXdpZHRoICogMiwgJGhhbWJ1cmdlci1sYXllci13aWR0aCAqIC0yLCAwKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBsZWZ0IDAuMTI1cyBlYXNlLW91dCxcbiAgICAgICAgICAgICAgICAgICAgICB0b3AgMC4wNXMgMC4xMjVzIGxpbmVhcixcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gMC4xMjVzIDAuMTc1cyBjdWJpYy1iZXppZXIoMC4wNzUsIDAuODIsIDAuMTY1LCAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICByaWdodDogJGhhbWJ1cmdlci1sYXllci13aWR0aCAqIC0yO1xuICAgICAgICAgIHRvcDogJGhhbWJ1cmdlci1sYXllci13aWR0aCAqIDI7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgkaGFtYnVyZ2VyLWxheWVyLXdpZHRoICogLTIsICRoYW1idXJnZXItbGF5ZXItd2lkdGggKiAtMiwgMCkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiByaWdodCAwLjEyNXMgZWFzZS1vdXQsXG4gICAgICAgICAgICAgICAgICAgICAgdG9wIDAuMDVzIDAuMTI1cyBsaW5lYXIsXG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtIDAuMTI1cyAwLjE3NXMgY3ViaWMtYmV6aWVyKDAuMDc1LCAwLjgyLCAwLjE2NSwgMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBpZiBpbmRleCgkaGFtYnVyZ2VyLXR5cGVzLCBtaW51cykge1xuICAvKlxuICAgKiBNaW51c1xuICAgKi9cbiAgLmhhbWJ1cmdlci0tbWludXMge1xuICAgIC5oYW1idXJnZXItaW5uZXIge1xuICAgICAgJjo6YmVmb3JlLFxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICB0cmFuc2l0aW9uOiBib3R0b20gMC4wOHMgMHMgZWFzZS1vdXQsXG4gICAgICAgICAgICAgICAgICAgIHRvcCAwLjA4cyAwcyBlYXNlLW91dCxcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eSAwcyBsaW5lYXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgLmhhbWJ1cmdlci1pbm5lciB7XG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYm90dG9tIDAuMDhzIGVhc2Utb3V0LFxuICAgICAgICAgICAgICAgICAgICAgIHRvcCAwLjA4cyBlYXNlLW91dCxcbiAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5IDBzIDAuMDhzIGxpbmVhcjtcbiAgICAgICAgfVxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBpZiBpbmRleCgkaGFtYnVyZ2VyLXR5cGVzLCBzbGlkZXIpIHtcbiAgLypcbiAgICogU2xpZGVyXG4gICAqL1xuICAuaGFtYnVyZ2VyLS1zbGlkZXIge1xuICAgIC5oYW1idXJnZXItaW5uZXIge1xuICAgICAgdG9wOiAkaGFtYnVyZ2VyLWxheWVyLWhlaWdodCAvIDI7XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIHRvcDogJGhhbWJ1cmdlci1sYXllci1oZWlnaHQgKyAkaGFtYnVyZ2VyLWxheWVyLXNwYWNpbmc7XG4gICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XG4gICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMTVzO1xuICAgICAgfVxuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIHRvcDogKCRoYW1idXJnZXItbGF5ZXItaGVpZ2h0ICogMikgKyAoJGhhbWJ1cmdlci1sYXllci1zcGFjaW5nICogMik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgLmhhbWJ1cmdlci1pbm5lciB7XG4gICAgICAgICR5LW9mZnNldDogJGhhbWJ1cmdlci1sYXllci1zcGFjaW5nICsgJGhhbWJ1cmdlci1sYXllci1oZWlnaHQ7XG5cbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAkeS1vZmZzZXQsIDApIHJvdGF0ZSg0NWRlZyk7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKCRoYW1idXJnZXItbGF5ZXItd2lkdGggLyAtNywgJGhhbWJ1cmdlci1sYXllci1zcGFjaW5nICogLTEsIDApO1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAkeS1vZmZzZXQgKiAtMiwgMCkgcm90YXRlKC05MGRlZyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBpZiBpbmRleCgkaGFtYnVyZ2VyLXR5cGVzLCBzbGlkZXItcikge1xuICAvKlxuICAgKiBTbGlkZXIgUmV2ZXJzZVxuICAgKi9cbiAgLmhhbWJ1cmdlci0tc2xpZGVyLXIge1xuICAgIC5oYW1idXJnZXItaW5uZXIge1xuICAgICAgdG9wOiAkaGFtYnVyZ2VyLWxheWVyLWhlaWdodCAvIDI7XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIHRvcDogJGhhbWJ1cmdlci1sYXllci1oZWlnaHQgKyAkaGFtYnVyZ2VyLWxheWVyLXNwYWNpbmc7XG4gICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XG4gICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMTVzO1xuICAgICAgfVxuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIHRvcDogKCRoYW1idXJnZXItbGF5ZXItaGVpZ2h0ICogMikgKyAoJGhhbWJ1cmdlci1sYXllci1zcGFjaW5nICogMik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgLmhhbWJ1cmdlci1pbm5lciB7XG4gICAgICAgICR5LW9mZnNldDogJGhhbWJ1cmdlci1sYXllci1zcGFjaW5nICsgJGhhbWJ1cmdlci1sYXllci1oZWlnaHQ7XG5cbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAkeS1vZmZzZXQsIDApIHJvdGF0ZSgtNDVkZWcpO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZTNkKCRoYW1idXJnZXItbGF5ZXItd2lkdGggLyA3LCAkaGFtYnVyZ2VyLWxheWVyLXNwYWNpbmcgKiAtMSwgMCk7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsICR5LW9mZnNldCAqIC0yLCAwKSByb3RhdGUoOTBkZWcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaWYgaW5kZXgoJGhhbWJ1cmdlci10eXBlcywgc3Bpbikge1xuICAvKlxuICAgKiBTcGluXG4gICAqL1xuICAuaGFtYnVyZ2VyLS1zcGluIHtcbiAgICAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMjJzO1xuICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpO1xuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICB0cmFuc2l0aW9uOiB0b3AgMC4xcyAwLjI1cyBlYXNlLWluLFxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5IDAuMXMgZWFzZS1pbjtcbiAgICAgIH1cblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICB0cmFuc2l0aW9uOiBib3R0b20gMC4xcyAwLjI1cyBlYXNlLWluLFxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gMC4yMnMgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgLmhhbWJ1cmdlci1pbm5lciB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDIyNWRlZyk7XG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMTJzO1xuICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICB0cmFuc2l0aW9uOiB0b3AgMC4xcyBlYXNlLW91dCxcbiAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5IDAuMXMgMC4xMnMgZWFzZS1vdXQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYm90dG9tIDAuMXMgZWFzZS1vdXQsXG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtIDAuMjJzIDAuMTJzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaWYgaW5kZXgoJGhhbWJ1cmdlci10eXBlcywgc3Bpbi1yKSB7XG4gIC8qXG4gICAqIFNwaW4gUmV2ZXJzZVxuICAgKi9cbiAgLmhhbWJ1cmdlci0tc3Bpbi1yIHtcbiAgICAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMjJzO1xuICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpO1xuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICB0cmFuc2l0aW9uOiB0b3AgMC4xcyAwLjI1cyBlYXNlLWluLFxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5IDAuMXMgZWFzZS1pbjtcbiAgICAgIH1cblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICB0cmFuc2l0aW9uOiBib3R0b20gMC4xcyAwLjI1cyBlYXNlLWluLFxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gMC4yMnMgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgLmhhbWJ1cmdlci1pbm5lciB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0yMjVkZWcpO1xuICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjEycztcbiAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgdHJhbnNpdGlvbjogdG9wIDAuMXMgZWFzZS1vdXQsXG4gICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eSAwLjFzIDAuMTJzIGVhc2Utb3V0O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYm90dG9tIDAuMXMgZWFzZS1vdXQsXG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtIDAuMjJzIDAuMTJzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaWYgaW5kZXgoJGhhbWJ1cmdlci10eXBlcywgc3ByaW5nKSB7XG4gIC8qXG4gICAqIFNwcmluZ1xuICAgKi9cbiAgLmhhbWJ1cmdlci0tc3ByaW5nIHtcbiAgICAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgICAgIHRvcDogJGhhbWJ1cmdlci1sYXllci1oZWlnaHQgLyAyO1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwcyAwLjEzcyBsaW5lYXI7XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIHRvcDogJGhhbWJ1cmdlci1sYXllci1oZWlnaHQgKyAkaGFtYnVyZ2VyLWxheWVyLXNwYWNpbmc7XG4gICAgICAgIHRyYW5zaXRpb246IHRvcCAwLjFzIDAuMnMgY3ViaWMtYmV6aWVyKDAuMzMzMzMsIDAuNjY2NjcsIDAuNjY2NjcsIDEpLFxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gMC4xM3MgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7XG4gICAgICB9XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgdG9wOiAoJGhhbWJ1cmdlci1sYXllci1oZWlnaHQgKiAyKSArICgkaGFtYnVyZ2VyLWxheWVyLXNwYWNpbmcgKiAyKTtcbiAgICAgICAgdHJhbnNpdGlvbjogdG9wIDAuMnMgMC4ycyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMC42NjY2NywgMC42NjY2NywgMSksXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybSAwLjEzcyBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4yMnM7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgdHJhbnNpdGlvbjogdG9wIDAuMXMgMC4xNXMgY3ViaWMtYmV6aWVyKDAuMzMzMzMsIDAsIDAuNjY2NjcsIDAuMzMzMzMpLFxuICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybSAwLjEzcyAwLjIycyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsICRoYW1idXJnZXItbGF5ZXItc3BhY2luZyArICRoYW1idXJnZXItbGF5ZXItaGVpZ2h0LCAwKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICB0cmFuc2l0aW9uOiB0b3AgMC4ycyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMCwgMC42NjY2NywgMC4zMzMzMyksXG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtIDAuMTNzIDAuMjJzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgJGhhbWJ1cmdlci1sYXllci1zcGFjaW5nICsgJGhhbWJ1cmdlci1sYXllci1oZWlnaHQsIDApIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaWYgaW5kZXgoJGhhbWJ1cmdlci10eXBlcywgc3ByaW5nLXIpIHtcbiAgLypcbiAgICogU3ByaW5nIFJldmVyc2VcbiAgICovXG4gIC5oYW1idXJnZXItLXNwcmluZy1yIHtcbiAgICAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgICAgIHRvcDogYXV0bztcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMTNzO1xuICAgICAgdHJhbnNpdGlvbi1kZWxheTogMHM7XG4gICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgdG9wOiAoJGhhbWJ1cmdlci1sYXllci1zcGFjaW5nICogMiArICRoYW1idXJnZXItbGF5ZXItaGVpZ2h0ICogMikgKiAtMTtcbiAgICAgICAgdHJhbnNpdGlvbjogdG9wIDAuMnMgMC4ycyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMC42NjY2NywgMC42NjY2NywgMSksXG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHkgMHMgbGluZWFyO1xuICAgICAgfVxuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICB0cmFuc2l0aW9uOiB0b3AgMC4xcyAwLjJzIGN1YmljLWJlemllcigwLjMzMzMzLCAwLjY2NjY3LCAwLjY2NjY3LCAxKSxcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtIDAuMTNzIGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIC5oYW1idXJnZXItaW5uZXIge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsICgkaGFtYnVyZ2VyLWxheWVyLXNwYWNpbmcgKyAkaGFtYnVyZ2VyLWxheWVyLWhlaWdodCkgKiAtMSwgMCkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMjJzO1xuICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIHRyYW5zaXRpb246IHRvcCAwLjJzIGN1YmljLWJlemllcigwLjMzMzMzLCAwLCAwLjY2NjY3LCAwLjMzMzMzKSxcbiAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5IDBzIDAuMjJzIGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiB0b3AgMC4xcyAwLjE1cyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMCwgMC42NjY2NywgMC4zMzMzMyksXG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtIDAuMTNzIDAuMjJzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaWYgaW5kZXgoJGhhbWJ1cmdlci10eXBlcywgc3RhbmQpIHtcbiAgLypcbiAgICogU3RhbmRcbiAgICovXG4gIC5oYW1idXJnZXItLXN0YW5kIHtcbiAgICAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjA3NXMgMC4xNXMgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSksXG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIDBzIDAuMDc1cyBsaW5lYXI7XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIHRyYW5zaXRpb246IHRvcCAwLjA3NXMgMC4wNzVzIGVhc2UtaW4sXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybSAwLjA3NXMgMHMgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7XG4gICAgICB9XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNpdGlvbjogYm90dG9tIDAuMDc1cyAwLjA3NXMgZWFzZS1pbixcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtIDAuMDc1cyAwcyBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuXG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjA3NXMgMHMgY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSksXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3IgMHMgMC4xNXMgbGluZWFyO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgdHJhbnNpdGlvbjogdG9wIDAuMDc1cyAwLjFzIGVhc2Utb3V0LFxuICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybSAwLjA3NXMgMC4xNXMgY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBib3R0b20gMC4wNzVzIDAuMXMgZWFzZS1vdXQsXG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtIDAuMDc1cyAwLjE1cyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGlmIGluZGV4KCRoYW1idXJnZXItdHlwZXMsIHN0YW5kLXIpIHtcbiAgLypcbiAgICogU3RhbmQgUmV2ZXJzZVxuICAgKi9cbiAgLmhhbWJ1cmdlci0tc3RhbmQtciB7XG4gICAgLmhhbWJ1cmdlci1pbm5lciB7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4wNzVzIDAuMTVzIGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpLFxuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciAwcyAwLjA3NXMgbGluZWFyO1xuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICB0cmFuc2l0aW9uOiB0b3AgMC4wNzVzIDAuMDc1cyBlYXNlLWluLFxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gMC4wNzVzIDBzIGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpO1xuICAgICAgfVxuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIHRyYW5zaXRpb246IGJvdHRvbSAwLjA3NXMgMC4wNzVzIGVhc2UtaW4sXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybSAwLjA3NXMgMHMgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgLmhhbWJ1cmdlci1pbm5lciB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMDc1cyAwcyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKSxcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciAwcyAwLjE1cyBsaW5lYXI7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiB0b3AgMC4wNzVzIDAuMXMgZWFzZS1vdXQsXG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtIDAuMDc1cyAwLjE1cyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgIHRyYW5zaXRpb246IGJvdHRvbSAwLjA3NXMgMC4xcyBlYXNlLW91dCxcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gMC4wNzVzIDAuMTVzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaWYgaW5kZXgoJGhhbWJ1cmdlci10eXBlcywgc3F1ZWV6ZSkge1xuICAvKlxuICAgKiBTcXVlZXplXG4gICAqL1xuICAuaGFtYnVyZ2VyLS1zcXVlZXplIHtcbiAgICAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMDc1cztcbiAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTtcblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgdHJhbnNpdGlvbjogdG9wIDAuMDc1cyAwLjEycyBlYXNlLFxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5IDAuMDc1cyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIHRyYW5zaXRpb246IGJvdHRvbSAwLjA3NXMgMC4xMnMgZWFzZSxcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtIDAuMDc1cyBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjEycztcbiAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgdHJhbnNpdGlvbjogdG9wIDAuMDc1cyBlYXNlLFxuICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHkgMC4wNzVzIDAuMTJzIGVhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYm90dG9tIDAuMDc1cyBlYXNlLFxuICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybSAwLjA3NXMgMC4xMnMgY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBpZiBpbmRleCgkaGFtYnVyZ2VyLXR5cGVzLCB2b3J0ZXgpIHtcbiAgLypcbiAgICogVm9ydGV4XG4gICAqL1xuICAuaGFtYnVyZ2VyLS12b3J0ZXgge1xuICAgIC5oYW1idXJnZXItaW5uZXIge1xuICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4ycztcbiAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xOSwgMSwgMC4yMiwgMSk7XG5cbiAgICAgICY6OmJlZm9yZSxcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMHM7XG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMXM7XG4gICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICB9XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRvcCwgb3BhY2l0eTtcbiAgICAgIH1cblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBib3R0b20sIHRyYW5zZm9ybTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNzY1ZGVnKTtcbiAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE5LCAxLCAwLjIyLCAxKTtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGlmIGluZGV4KCRoYW1idXJnZXItdHlwZXMsIHZvcnRleC1yKSB7XG4gIC8qXG4gICAqIFZvcnRleCBSZXZlcnNlXG4gICAqL1xuICAuaGFtYnVyZ2VyLS12b3J0ZXgtciB7XG4gICAgLmhhbWJ1cmdlci1pbm5lciB7XG4gICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzO1xuICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE5LCAxLCAwLjIyLCAxKTtcblxuICAgICAgJjo6YmVmb3JlLFxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwcztcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4xcztcbiAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgIH1cblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdG9wLCBvcGFjaXR5O1xuICAgICAgfVxuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGJvdHRvbSwgdHJhbnNmb3JtO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIC5oYW1idXJnZXItaW5uZXIge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNzY1ZGVnKTtcbiAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE5LCAxLCAwLjIyLCAxKTtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ== */




.pagination-holder {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    margin-top: 2.5rem;
    justify-content: center;
    align-items: center;
}

    .pagination-holder a {
        flex-grow: 0;
        width: 50px;
        height: 50px;
        display: flex;
        line-height: 16px;
        align-items: center;
        justify-content: center;
    }

.auctions-calendar .auctions-calendar__listing {
    align-items: flex-start;
}

    .auctions-calendar .auctions-calendar__listing .auction__image {
        height: 225px;
    }

/*
*by wildnet

*/
.pagination-holder {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    margin-top: 2.5rem;
    justify-content: center;
    align-items: center;
}

    .pagination-holder a {
        flex-grow: 0;
        width: 50px;
        height: 50px;
        display: flex;
        line-height: 16px;
        align-items: center;
        justify-content: center;
    }

.auctions-calendar .auctions-calendar__listing {
    align-items: flex-start;
}

    .auctions-calendar .auctions-calendar__listing .auction__image {
        height: 225px;
    }

p.font--black.copyright-wording {
    position: static;
    margin-top: 60px;
}

.footer-container {
    padding-bottom: 0rem;
}


.news-media-form-wrapper {
    justify-content: center;
    padding-bottom: 40px;
    position: relative;
}

    .news-media-form-wrapper .search, .news-media-form-wrapper .toggle-categories {
        margin: 0 !important;
        padding: 0;
        width: auto;
        height: 50px;
    }

    .news-media-form-wrapper .toggle-categories {
        display: flex !important;
        justify-content: center;
        align-items: center;
    }

.auction-calendar__header {
    margin-top: 100px;
}





.ncul {
    right: 183px !important;
    width: 262px !important;
}

.ncul_1 {
    right: 179px !important;
    width: 254px;
}

.auction-catalogue .auction-catalogue__item .auction-catalogue__item__heading {
    height: 44px;
}

.fulCatLay {
    margin-top: 20px;
    margin-bottom: 20px;
}

    .fulCatLay #lot_no {
        border-radius: 4px;
        padding: 8px 15px;
        border: 1px solid #bbb;
    }

.filter-wrap-lot-detail {
    display: flex;
    justify-content: center;
}

    .filter-wrap-lot-detail .button {
        margin-bottom: 0px;
    }

.auctions-calendar .auctions-calendar__listing .auction__details h2 {
    margin-left: 0px;
}



.auctionnav, .auctionnav .auctionnav__item {
    display: flex;
}

.auctionnav {
    flex-direction: column;
    margin-top: 25px;
    padding: 0px 15px;
}

    .auctionnav, .auctionnav .auctionnav__item {
        padding: 0px 15px;
    }

        .auctionnav .auctionnav__item.auctionnav__item--nav {
            justify-content: space-between;
        }

        .auctionnav .auctionnav__item.auctionnav__item--back {
            justify-content: center;
            margin-top: 25px;
        }




.auction-catalogue .auction-catalogue__item .auction-catalogue__item__heading {
    min-height: 55px;
    height: auto;
}

.auction-catalogue .auction-catalogue__item .auction-catalogue__item__heading-2 {
    height: 30px !important;
    min-height: 30px !important;
}

@media (min-width:1024px) and (max-width:1099px) {
    .auction-catalogue .auction-catalogue__item .auction-catalogue__item__heading {
        min-height: 75px;
    }
}

@media (min-width:768px) and (max-width:1023px) {
    .auction-catalogue .auction-catalogue__item .auction-catalogue__item__heading {
        min-height: 99px;
    }
}

@media (min-width:640px) and (max-width:812px) and (orientation: landscape) {
    .auction-catalogue .auction-catalogue__item .auction-catalogue__item__heading {
        min-height: 121px;
    }
}



#news-media-form-sortby {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    width: 200px;
    float: right;
}
/*---------------------------Copy from  Client .CSS file--------------------------------------*/
.account__side-menu {
    display: none;
}

@media print, screen and (min-width: 40em) {
    .account__side-menu {
        display: flex;
        width: calc(25% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }
}

.account__side-menu ul {
    margin: 0;
}

.account__side-menu li {
    list-style: none;
    font-size: 22px;
    padding-bottom: 10px;
}

    .account__side-menu li.account__side-menu__current a, .account__side-menu li.account__side-menu__current .sub-menu .font--black, .sub-menu .account__side-menu li.account__side-menu__current .font--black,
    .account__side-menu li.account__side-menu__current .copyright .font--black, .copyright .account__side-menu li.account__side-menu__current .font--black {
        font-family: "Avenir LT W01_85 Heavy1475544", Sans-serif;
        color: #0a0a0a;
    }

@media print, screen and (min-width: 40em) {
    .account__content {
        width: calc(75% - 1.875rem);
        margin-right: 0.9375rem;
        margin-left: 0.9375rem;
    }
}

.account__content .form__holder {
    padding-left: 0;
}

    .account__content .form__holder .form-element {
        width: calc(100% - 0.9375rem);
        margin-left: 0;
    }

    .account__content .form__holder label {
        display: block;
    }

    .account__content .form__holder .form__holder__name {
        width: 100%;
    }

@media print, screen and (min-width: 40em) {
    .account__content .form__holder .form__holder__name {
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-flex-flow: row wrap;
        -ms-flex-flow: row wrap;
        flex-flow: row wrap;
    }

        .account__content .form__holder .form__holder__name .form-element.title {
            width: calc(25% - 1.875rem);
            margin-right: 0.9375rem;
            margin-left: 0.9375rem;
            margin-left: 0;
            width: calc(25% - 0.9375rem);
        }

        .account__content .form__holder .form__holder__name .form-element.name {
            width: calc(37.5% - 1.875rem);
            margin-right: 0.9375rem;
            margin-left: 0.9375rem;
            margin-left: 0;
            width: calc(37.5% - 0.9375rem);
        }
}

/*---------------------------Change Date - 18/01/2019--------------------------------------*/
.expandable-button {
    overflow: hidden;
}

    .expandable-button ul {
        display: flex;
        justify-content: space-between;
        padding: 0;
        flex-wrap: wrap;
        margin: 0px -15px;
    }

        .expandable-button ul li {
            list-style: none;
            flex-grow: 1;
            flex-basis: 50%;
            max-width: 50%;
            padding: 0px 15px 30px 15px;
        }

            .expandable-button ul li .button {
                margin: 0px;
                width: 100%;
                border: 2px solid #000;
                background: #fff;
                color: #000;
                font-size: 18px;
                line-height: 18px;
                padding: 15px 0;
            }

                .expandable-button ul li .button:hover {
                    background: #000;
                    color: #fff;
                }

/*---------------------------Change Date - 21/01/2019--------------------------------------*/
.auction-item__images__small_img {
    display: block;
    height: 100%;
    width: auto;
    margin: auto;
}
.auction-item__images__small_img.landscape {
    height: auto;
    width: 100%;
}


.off-canvas-content {
    margin-top: 50px;
}

.form__holder .form-element input[type="submit"] {
    background-color: black;
}

/*---------------------------Change Date - 23/01/2019--------------------------------------*/


.site-navigation .top-bar-right.loginsignup {
    align-items: center;
    padding: 0px;
    margin: 9px 0;
}

    .site-navigation .top-bar-right.loginsignup .button--outline-only {
        margin: 0px;
        margin-right: 15px;
        margin-bottom: 15px;
        border-radius: 00px;
        color: #000;
        background: #fff;
        font-size: 14px;
        line-height: 16px;
        font-weight: 400;
        transition: all .5s ease;
    }

        .site-navigation .top-bar-right.loginsignup .button--outline-only[title="Create Account"] {
        }

        /*.site-navigation .top-bar-right.loginsignup .button--outline-only[title="Login"]:after,
.site-navigation .top-bar-right.loginsignup .button--outline-only[title="Create Account"]:after,
.site-navigation .top-bar-right.loginsignup .button--outline-only[title="Sign out"]:after,
.site-navigation .top-bar-right.loginsignup .button--outline-only[title="Update Account"]:after {
font-family: fontawesome;
margin-left: 10px;
}*/

        /*.site-navigation .top-bar-right.loginsignup .button--outline-only[title="Login"]:after {
content: '\f090';
}

.site-navigation .top-bar-right.loginsignup .button--outline-only[title="Create Account"]:after {
content: '\f234';
}

.site-navigation .top-bar-right.loginsignup .button--outline-only[title="Sign out"]:after {
content: '\f08b';
}

.site-navigation .top-bar-right.loginsignup .button--outline-only[title="Update Account"]:after {
content: '\f044';
}*/

        .site-navigation .top-bar-right.loginsignup .button--outline-only[title="Login"]:hover {
            color: #fff;
            background: #000;
        }

        .site-navigation .top-bar-right.loginsignup .button--outline-only[title="Create Account"], .site-navigation .top-bar-right.loginsignup .button--outline-only[title="My Account"] {
            border: 0;
            width: 60px;
            text-align: center;
            padding: 0px;
            padding-bottom:0px;
            line-height: 14px;
            border-bottom: 2px solid #fff;
        }
.site-navigation .top-bar-right.loginsignup .button--outline-only[title="Create Account"]{
padding: 0px 10px !important; 
}
            .site-navigation .top-bar-right.loginsignup .button--outline-only[title="Create Account"]:hover, 
            .site-navigation .top-bar-right.loginsignup .button--outline-only[title="My Account"]:hover {
                border-bottom: 2px solid #000;
                
            }

        .site-navigation .top-bar-right.loginsignup .button--outline-only[title="My Account"] {
            width: auto;
            display: flex;
            align-items: center;
            justify-content: center;
        }

.auction-calendar__header .auction-calendar__links .auction-calendar__links-holder {
    display: block;
}

.backarrow {
    float: right;
}

/*---------------------------28-jan-2019--------------------------------------*/
.p_textsize {
    text-align: center;
    font-size: 25px;
    line-height: 35px;
    padding: 50px 10%;
}

.auction-calendar__header .auction-calendar__links .auction-calendar__links-holder {
    display: block;
}

.backarrow {
    /* float: right; */
    padding-right: 44px;
}

/*---------------------------29-jan-2019--------------------------------------*/
@media screen and (min-width: 1024px) {
    nav.site-navigation.top-bar {
        padding: 10px 0;
        display: flex;
        justify-content: space-between;
    }
}

.off-canvas > ul.menu {
    margin-top: 40px;
}

nav.site-navigation.top-bar .top-bar-left {
    margin:0px auto 0px 0px;
}

.auction-item__images__main img {
    width: 600px !important;
    /* height: 600px !important; */
}


.mobile-off-canvas-menu li.show-search.menu-item {
    min-height: 32px !important;
}

    .mobile-off-canvas-menu li.show-search.menu-item a {
        padding: .5rem .9rem !important;
    }

.mobile-off-canvas-menu .button--outline-only {
    width: 150px;
    margin: 15px 0 0 15px;
    padding: 10px 0px;
}

/*---------------------------30-jan-2019--------------------------------------*/

.auc_date--range, .auc_date--range .container, .auc_date--form, .auc_date--formcontrol {
    display: flex;
}

.auc_date--range {
}

    .auc_date--range .container {
        width: 1140px;
        padding: 0px 15px;
        margin: auto;
        align-items: flex-end;
        justify-content: center;
    }

        .auc_date--range .container > * {
            margin: 0 10px;
        }

.auc_date--form {
}

.auc_date--formcontrol {
    flex-direction: column;
    margin-left: 25px;
}

    .auc_date--formcontrol label {
    }

    .auc_date--formcontrol input[type="date"] {
    }

    .auc_date--formcontrol input[type="button"], .auc_date--formcontrol input[type="submit"] {
        font-family: "Linotype Didot W01", Serif;
        border: 0px;
        background: #000;
        color: #fff;
    }

.currentLot--main {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px 0;
}

    .currentLot--main .currentLot--container {
        width: 719px;
        margin: auto;
    }

    .currentLot--main .form-element.full-width, .currentLot--main .form-element.full-width .delete-alert {
        display: flex;
    }

    .currentLot--main .form-element.full-width {
        align-items: center;
    }

        .currentLot--main .form-element.full-width .input {
            margin-bottom: 5px;
            width: 525px;
        }

@media (max-width: 767px) {
    .currentLot--main .form-element.full-width .input {
        width: 100%;
    }

    #news-media-form .news-media-form-wrapper {
        justify-content: center;
        align-items: center;
        flex-direction: column;
        position: relative;
    }

    .ncul_1 {
        right: 19px !important;
        left: -1px;
        width: auto !important;
        top: 124px !important;
    }

    #news-media-form .news-media-form-wrapper .search, #news-media-form .news-media-form-wrapper .toggle-categories {
        width: calc(100% - 18px);
    }

    section:last-of-type {
        padding: 10px 0;
    }

    .auc_date--range {
        margin-bottom: 20px;
    }

        .auc_date--range .container, .auc_date--range .auc_date--form {
            flex-direction: column;
            align-items: flex-start;
            flex-grow: 1;
            width: 90%;
        }

    .auc_date--formcontrol {
        margin-left: 0px;
    }
}

.currentLot--main .form-element.full-width .delete-alert {
    margin-left: 25px;
    width: 155px;
}

.txtread {
    font-size: 20px;
    font-weight: 300;
}

.txthead {
    font-size: 3.2rem;
}

.main-content-full-width .container {
    flex-direction: column;
    align-items: flex-start;
}

input[type="reset"].button--outline-only:hover {
    background: #000;
}

.auc_date--range h1 {
    font-size: 3.2rem;
    padding-bottom: 1rem;
}

@media print, screen and (min-width: 40em) {
    .create-account form section:last-of-type {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }
}

/*---------------------------01-feb-2019--------------------------------------*/

.txt-readonly {
    border: 0px;
    background-color: #fefefe !important;
}


/*---------------------------06-feb-2019--------------------------------------*/

@media (max-width: 767px) .auc_date--formcontrol {
    margin-left: 0px;
    width: 100%;
}



/*---------------------------07-feb-2019--------------------------------------*/

@media (max-width: 767px){
    .auc_date--range .auc_date--form, .auc_date--range .auc_date--formcontrol, .auc_date--range h5 {
        margin: 0px !important;
    }
    .auc_date--range .container, .auc_date--range .auc_date--form {
        flex-direction: column;
        align-items: flex-start;
        flex-grow: 1;
        width: 100%;
    }
    .auc_date--formcontrol {
        margin-left: 0px;
        width: 100%;
    }
    
    .newsletter-signup .newsletter-signup__title {
        
    }
    .newsletter-signup .newsletter-signup__title, .newsletter-signup input, .newsletter-signup .newslettersignup.button {
        margin: 0px !important;
        width: 100% !important;
        margin: 5px 0px !important;
    }
       .newsletter-signup .newslettersignup.button{
            
        }

    .newsletter-signup {
        padding: 10px;
        margin-bottom: 0px;
        margin: 15px 0;
    }
}
#newsletter-signup .signupform .half-width li input {
    display:none;
}
#newsletter-signup .signupform .half-width li label {
    padding-left: 25px;
    margin: 0px;
}
    #newsletter-signup .signupform .half-width li label:before {
        left: 0px;
    }
.search__container .search-close-button {
    z-index: 999999999;
}

/*---------------------------11-feb-2019--------------------------------------*/
    

   #news-media-form .categories {
    position: absolute;
    right:-1px;
    left:-1px;
    top: 49px;
    padding: 0px 0px 10px 0px;
    margin-left: 0px; 

}    

#news-media-form .categories li {
    list-style: none;
    padding: 10px 10px 00px 10px;
}
#news-media-form .categories li input[type="checkbox"] {
    width: 20px;
    height: 20px;
    margin-right:5px;
    flex-shrink: 0;
}
#news-media-form .categories li label {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
        font-size: 12px;
}
#news-media-form .news-media-form-wrapper .toggle-categories {
    position: relative;
}
#news-media-form .news-media-form-wrapper div.button {
    padding: 0px;
    margin: 0px !important;
    border: 0px;
    min-width: 250px;
    position: relative;
}
#news-media-form .news-media-form-wrapper a.toggle-categories {    
    width: 100%;
}

/*---------------------------14-feb-2019--------------------------------------*/

.search__container .search-close-button{
        top: 108px;
}
@media (max-width: 480px){
           .auctionnav .auctionnav__item.auctionnav__item--nav {

    flex-wrap: wrap;
}
    .auctionnav, .auctionnav .auctionnav__item {
        padding: 0px 0px;

    }
    .main-grid .main-content-full-width{
        margin: 0px 15px;
    }
    .auctionnav__item.auctionnav__item--nav .auctionnav__items #lot_no{
        font-size: 11px;
    }
    .auctionnav__item.auctionnav__item--nav .auctionnav__items a{
        font-size: 10px;
    }
    .expandable-button ul li .button {
    margin: 0px;
    width: 100%;
    border: 2px solid #000;
    background: #fff;
    color: #000;
    font-size: 12px;
    line-height: 18px;
    padding: 5px 0;
}
.auction-item__images__main img {
    width: 600px !important;
    height: 100% !important;
}
}

/*---------------------------15-feb-2019--------------------------------------*/
.regs_form{

}
.regs_form h3{
    font-weight:600;
    padding-bottom:30px;
}
.regs_form .form-element{
    margin-left:0;
    margin-right:0;
    width: auto;
    flex-grow: 1;
    margin: 0 5px;
}

.regs_form .form__holder--title{
    display:flex;
    flex-direction:row;
}
.regs_form select,input{
    height:60px !important;
}

.regs_form .form-element.sml{
    flex-shrink:0;
    width: 290px;
    flex-grow: 0;
}

@media (max-width:767px){
    .regs_form .form-element.sml{
        width:auto;
        flex-shrink:1;
        flex-grow:1;
    }
}
/*---------------------------18-feb-2019--------------------------------------*/


.lot-container.lotC, .listForm1d, .eqnC {
    width:1170px;
    margin:auto;
    padding:0 15px;
}

@media (max-width:1200px){
    .lot-container.lotC, .listForm1d{
        width:auto;
        margin:0 15px;
        padding:0;
    }
}

.listForm1d #contact_info table tr:nth-child(1) td label{
    font-weight:600;
    font-size:16px
}

.listForm1d #contact_info table tr td div {
    font-weight:400 !important;
    font-size:14px !important;
    padding: 15px 15px !important;
    / height: 40px; /
    line-height: 14px;
    border-radius: 4px;
    / border: 1px solid #eee !important; /
    float: left !important;
}


.listForm1d #contact_info table tr td div {
    font-weight: 400 !important;
    font-size: 14px !important;
    padding: 15px 15px !important;
    / height: 40px; /
    line-height: 14px;
    border-radius: 4px;
    / border: 1px solid #eee !important; /
    float: left !important;
}


.listForm1d .bid_sheet_items tr:nth-child(1) td:nth-child(1){ width:15%; }
.listForm1d .bid_sheet_items tr:nth-child(1) td:nth-child(2){ width:62%; }
.listForm1d .bid_sheet_items tr:nth-child(1) td:nth-child(3){ width:12%; }
.listForm1d .bid_sheet_items tr:nth-child(1) td:nth-child(4){ width:10%; }


.listForm1d .bid_sheet_items tr:nth-child(1) td{

}


.listForm1d .inl {
    display: flex;
    align-items: center;
    justify-content: center;
}
.listForm1d .inl input {
    height: auto !important;
    margin: 1px 2px;
}



/*--------------------------- 19 FEb 2019 ----------------------------------*/


.eqnC fieldset{
    width: 600px;
    margin: auto;
    padding:50px 0;
}


/*--------------------------- 20 FEb 2019 ----------------------------------*/


.site-logo img {
    max-width: 300px;
    margin-top:0px;
}
nav.site-navigation.top-bar{
    padding: 0px;
}


.top-bar-center .dropdown.menu > li.opens-left > .is-dropdown-submenu.js-dropdown-active {
    z-index: 999;
    background: #FF9E31;
    width: 250px;
}

.top-bar-center .dropdown.menu > li.opens-left > .is-dropdown-submenu.js-dropdown-active:after, .top-bar-center .dropdown.menu > li.opens-left > .is-dropdown-submenu.js-dropdown-active:before {
    bottom: 100%;
    left: 30px;
    border: solid transparent;
    content: " ";
    height: 0;
    width: 0;
    position: absolute;
    pointer-events: none;
}
.top-bar-center .dropdown.menu > li.opens-left > .is-dropdown-submenu.js-dropdown-active:after {
    border-color: rgba(255, 158, 49, 0);
    border-bottom-color: #FF9E31;
    border-width: 10px;
    margin-left: 150px;
}


.loginsignup #menu-main-menu {
    padding-right: 00px;
}
.loginsignup #menu-main-menu a{
        font-size: 15px;
}
.loginsignup .button--outline-only{
    padding: 10px;
}



/*--------------------------- 21 FEb 2019 ----------------------------------*/
.top-bar-right.loginsignup {
    margin: 0 0 0 auto !important;
    padding: 15px 15px 0px 0px !important;
}


.a__1 {
    margin-top: 90px;

}

.site-navigation .top-bar-right.loginsignup .button--outline-only[title="Create Account"] {
    width: auto;
}

.site-navigation .top-bar-right.loginsignup .button--outline-only {
    font-size: 15px;
    height: 39px;
    align-items: center;
    display: flex;
    padding: 0px 10px;
}
.top-bar-center {    margin-top: -8px;
}

/*--------------------------- 25 FEb 2019 ----------------------------------*/
.one_sec_sortby_jumpto {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.bottom_pagin_jumpto_sec {
    display: flex;
    justify-content: center;
    width: 1170px;
    margin: 15px auto 20px auto;
    padding: 0px 15px;
}

@media (max-width:1170px){
.bottom_pagin_jumpto_sec { width:auto; }
}

.pagination-holder{ margin:auto; }

#news-media-form .categories li input[type="checkbox"]{height: 20px !important;}

/*---------------------------20-Mar-2019--------------------------------------*/
.newsletter-signup input{
    height: 48px !important;
}
.newsletter-signup .newslettersignup.button{
    padding: 3px 10px;
}
.main-grid .account__content > h2{
    padding-left: 25px;
}
.regs_form .form__holder input, .account__content .field-group input{
    height:39px !important;
}
.account__content .field-group button{
    height:46px !important;
}

.regs_form .form__holder input, .account__content .field-group select{
    height:39px !important;
}


.form__holder .form-element input[type="submit"], .button--outline-only{
padding: 10px 25px;
}

.newsletter-signup{
padding: 20px 0;
}

input, .regs_form select, .button--outline-only{
height: 39px !important;
}

.button{
    padding: 10px 15px;
}

.auc_date--range h1, .off-canvas-content h1, .main-content-full-width h1{
font-family: "Avenir LT W01_55 Roman1475520", Sans-serif;
text-transform: capitalize;
}

.main-content-full-width .txthead{
    font-size: 2.5rem;
}

.search-results__search{
padding-left:0px;
}

.search-results__search .search-results__search-box{
margin-left:0px;
}

@media (max-width:767px){
    .currentLot--main .currentLot--container{width:100%;}
    .search-results__search .search-results__search-button{
        margin:0px;
    }
}

.currentLot--main .currentLot--container{
margin-left: 0px;
}

/*-----------------------29 march 2019-------------------*/
input#cat_jumptolot {
   background-color: White;
}


/*-----------------------1 Aril 2019-------------------*/


.auc_date--range{    margin-bottom: 45px;}
.auc_date--range input{
    margin-bottom: 0px;
        height: 50px !important;
}

.auc_date--range .inputsubmit{
    padding: 0px 0px !important;
    width: 250px;
    height: 50px !important;
}

@media (max-width:767px){
    .auc_date--range .inputsubmit{
        width: 100%;
        margin-top: 15px !important;
    }
}
.auctions-calendar .auctions-calendar__listing .auction__image{
    background-size: contain;
    background-position: top;
    background-repeat: no-repeat;
}
.newsletter-signup .newsletter-signup__container{
        align-items: center;
}
@media (min-width:768px) and (max-width:1023px){
.newsletter-signup .newsletter-signup__container{
    flex-direction: column;
}
.newsletter-signup .newsletter-signup__container > *{
    width: 100% !important;
    margin: 3px 0 !important;
}
}
#news-media-form .news-media-form-wrapper .search{
    height: 50px !important;
}
input#cat_jumptolot{

}

input#cat_jumptolot::-webkit-input-placeholder { /* Chrome/Opera/Safari */
  color: #000;
  opacity: 1;
  font-weight: 0;
  padding-left: 10px;
}

input#cat_jumptolot::-moz-placeholder { /* Firefox 19+ */
  color: #000;
  opacity: 1;
  font-weight: 600;
  padding-left: 10px;
}
input#cat_jumptolot:-ms-input-placeholder { /* IE 10+ */
  color: #000;
  opacity: 1;
  font-weight: 600;
  padding-left: 10px;
}
input#cat_jumptolot:-moz-placeholder { /* Firefox 18- */
  color: #000;
  opacity: 1;
  font-weight: 600;
  padding-left: 10px;
}


.auction-item .auction-item__images .auction-item__images__small a{
    height: 100px;
}
.auction-item .auction-item__images .auction-item__images__small a img{
    height: auto;
}
@media (max-width: 767px){
    .one_sec_sortby_jumpto{
        flex-direction: column;
        width: 100%;
        display: flex;
        flex-grow: 1;
    }
    .pagination-holder a{
        width: 20px;
        height: 20px;
            float: left;
    }
    input#cat_jumptolot {
    width: 75px;
    font-size: 12px;
    height: 25px !important;
    padding: 0px;
    }
    .pagination-holder{
        margin: 0px !important;
        flex-wrap: wrap;
        display: inline-block;
        width: 100%;
    }
    .bottom_pagin_jumpto_sec{
        padding: 0px;
        padding: 0px 15px !important;
    }
    .pagination-holder a:last-child{
        width: 75px;
        clear: both;
        display: block;
    }

}
.pagination-holder a:last-child{
    width: 150px;
}
 input#cat_jumptolot {
    width:150px;
    font-size: 14px;
    height:30px !important;
    padding: 0px;
    }

/*--------------  css added on 02-04-19  --------------*/

input#cat_jumptolot {margin-top: 10px;}
.pagination-holder a:last-child {width: auto;}
.auc_date--range .container,.lot-container.lotC, .listForm1d, .eqnC {max-width: 1140px;width:auto;}
#news-media-form .news-media-form-wrapper div.button{width: 16.66667%;min-width: auto;}
#news-media-form .news-media-form-wrapper div.button a{font-size: 1.05rem;font-weight:normal; }
#news-media-form .auc_date--range .auc_date--formcontrol input.inputsubmit{font-family: "Avenir LT W01_85 Heavy1475544",Sans-serif;}
input#cat_jumptolot {width: 220px;height: 50px !important;}
.sort__by_sec select{width: 220px !important; height: 50px !important;}
#news-media-form .fm_pdfexport{width: 220px;}
#news-media-form .fm_pdfexport input:first-child{height: 50px !important;width:100%;margin-bottom: 14px;}

input#cat_jumptolot::placeholder{font-size:1rem;}
input#lot_no{height:50px !important; text-indent: 5px;}
input#lot_no::placeholder{font-size:1rem;color:#000;font-weight:bold;}

.auction-item__content b {font-weight: normal;}

.auc_date--range input[type=date]::-webkit-inner-spin-button {-webkit-appearance: none;display: none;}
.auction-calendar__header {margin-top: 100px;}

@media screen and (min-width:1024px) and (max-width:1244px){
    .site-logo img {max-width: 180px;margin-top: 0px;}
.top-bar .menu > li:not(.menu-text) > a, .top-bar .sub-menu .menu > li:not(.menu-text) > .font--black, .sub-menu .top-bar .menu > li:not(.menu-text) > .font--black, .top-bar .copyright .menu > li:not(.menu-text) > .font--black, .copyright .top-bar .menu > li:not(.menu-text) > .font--black {
    padding: 1rem 0.7rem;
}

.top-bar .menu a, .top-bar .menu .sub-menu .font--black, .sub-menu .top-bar .menu .font--black, .top-bar .menu .copyright .font--black,
.copyright .top-bar .menu .font--black {font-size: 0.9rem !important;}
.show-search a:after, .show-search .sub-menu .font--black:after, .sub-menu .show-search .font--black:after, .show-search .copyright .font--black:after, .copyright .show-search .font--black:after {height: 16px;
    width: 16px;position: absolute;top: 1rem;background-color: white;}
.site-navigation .top-bar-right.loginsignup .button--outline-only {font-size: 13px;}
.site-navigation .top-bar-right.loginsignup .button--outline-only {margin-right: 0px;}
input, .regs_form select, .button--outline-only {height: 32px !important;}
.site-navigation .top-bar-left .site-logo {margin-top: 0px;}

.footer-grid .copyright {width: calc(20.66667% - 1.875rem);}
}


   @media screen and (max-width:991px){
    .sale-information .sale-information__info { width: calc(100% - 1.875rem);}
   }
   @media screen and (max-width:767px){
   .bottom_pagin_jumpto_sec{display:block;}
.pagination-holder{display:flex;width:100%;margin-bottom: 5px !important;}
.pagination-holder a:first-child{margin-right: 10px;line-height: 16px;vertical-align: middle;display: inline-block;}

.auc_date--range h1 {font-size: 1.8rem;}
.auc_date--range {margin-bottom: 25px;}
.eqnC fieldset {width: auto; max-width: 600px;padding: 30px 0;}

.auc_date--range .container > * {margin: 0 0px;}
.auc_date--range .container{padding: 0px 0px;}

#news-media-form .news-media-form-wrapper div.button {width: 240px;}
#news-media-form .auc_date--range .container >*{padding: 0px 15px;}
#news-media-form .auc_date--range .auc_date--formcontrol input.inputsubmit{width:240px; margin-left: auto !important;margin-right: auto !important;}
  }

/*--------------  css added on 10-04-19  --------------*/
.auction-calendar__links{
margin-bottom:20px;
margin-top: -11px;
}

.news-media-form-wrapper{
    padding-bottom:0px;
}

@media screen and (max-width:639px){
    .auction-catalogue__item{
        margin-bottom: 25px;
        padding-bottom: 25px;
        border-bottom: 1px dashed #ccc;
    }
}
input#pdfexport {
    background: black;
    color: white;
}


/****Added on 12 Sept 2019 for live bid buttons***/


.button_bid_online {
font: bold 11px Arial;
text-decoration: none;
background-color: white;
color: black;
border: 1px solid black;
border-color: black;
padding: 2px 6px 2px 6px;
font-family: Avenir LT W01_85 Heavy1475544, Sans-serif;
-webkit-user-select: none;
width: 25%;
-webkit-transition: transform .5s;
transform-origin: left;
z-index: 0;
vertical-align: top;
transition:all 0.5s;
}

.button_bid_online:hover
{
background-image:none !important;
background-color:black !important;
color: white !important;
font-family: Avenir LT W01_85 Heavy1475544, Sans-serif;
 transform: scale(1.3, 1);
z-index: 1;
transition:all 0.5s;
} 

/*****Added on 12th December 2019*****/

a.textbutton.prev-top {
    margin-left: 41px;
}

.auctionnav__item.auctionnav__item--back {
    margin-top: 13px;
}


/*****Added on 27th April 2020 for mobile view footer*****/
@media screen and (max-width: 39.9375em) {
.footer-grid #menu-footer {    display: block;}
.footer-grid .header.no-link { width: calc(100% - 1.875rem); margin-right: 0rem; margin-left:0rem;
margin-bottom: 0.9375rem;}
#menu-footer .sub-menu { margin-left: 1.25rem;}
}

/********************************/

.partner__container {
    padding-right: .625rem;
    padding-left: .625rem;
    max-width: 68rem;
    margin: 0 auto;
    padding-top: 100px;
    padding-bottom: 100px;
    border-bottom: 3px solid #f8f8f8
}

@media print,
screen and (min-width:40em) {
    .partner__container {
        padding-right: .9375rem;
        padding-left: .9375rem
    }
}

.partner__container .partner__title {
    text-align: center
}

.partner__container .partner__title h3 {
    font-family: "Didot LT W01 Roman", Serif;
    margin-bottom: 0;
    font-size: 1.3rem
}

@media print,
screen and (min-width:40em) {
    .partner__container .partner__title h3 {
        font-size: 1.9375rem;
        letter-spacing: -.1rem
    }
}

.partner__container .partner__logo-container {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center
}

@media screen and (max-width:39.9375em) {
    .partner__container .partner__logo-container {
        -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap
    }
}

.copyright .partner__container .partner__logo-container .font--black,
.features__holder .feature .partner__container .partner__logo-container .link,
.partner__container .partner__logo-container .copyright .font--black,
.partner__container .partner__logo-container .features__holder .feature .link,
.partner__container .partner__logo-container .secondary-features .secondary-tile .link,
.partner__container .partner__logo-container .sub-menu .font--black,
.partner__container .partner__logo-container .upcoming-auction__section .link,
.partner__container .partner__logo-container a,
.secondary-features .secondary-tile .partner__container .partner__logo-container .link,
.sub-menu .partner__container .partner__logo-container .font--black,
.upcoming-auction__section .partner__container .partner__logo-container .link {
    background-size: contain;
    display: block;
    background-position: center;
    background-repeat: no-repeat
}

@media screen and (max-width:39.9375em) {
    .copyright .partner__container .partner__logo-container .font--black,
    .features__holder .feature .partner__container .partner__logo-container .link,
    .partner__container .partner__logo-container .copyright .font--black,
    .partner__container .partner__logo-container .features__holder .feature .link,
    .partner__container .partner__logo-container .secondary-features .secondary-tile .link,
    .partner__container .partner__logo-container .sub-menu .font--black,
    .partner__container .partner__logo-container .upcoming-auction__section .link,
    .partner__container .partner__logo-container a,
    .secondary-features .secondary-tile .partner__container .partner__logo-container .link,
    .sub-menu .partner__container .partner__logo-container .font--black,
    .upcoming-auction__section .partner__container .partner__logo-container .link {
        margin: 30px
    }
}

.copyright .partner__container .partner__logo-container .ifaw.font--black,
.features__holder .feature .partner__container .partner__logo-container .ifaw.link,
.partner__container .partner__logo-container .copyright .ifaw.font--black,
.partner__container .partner__logo-container .features__holder .feature .ifaw.link,
.partner__container .partner__logo-container .secondary-features .secondary-tile .ifaw.link,
.partner__container .partner__logo-container .sub-menu .ifaw.font--black,
.partner__container .partner__logo-container .upcoming-auction__section .ifaw.link,
.partner__container .partner__logo-container a.ifaw,
.secondary-features .secondary-tile .partner__container .partner__logo-container .ifaw.link,
.sub-menu .partner__container .partner__logo-container .ifaw.font--black,
.upcoming-auction__section .partner__container .partner__logo-container .ifaw.link {
    background-image: url(https://s3-ap-southeast-2.amazonaws.com/leonard-joel/wp-content/uploads/2021/06/Ifaw_logo.png);
    height: 200px;
    width: 100%
}

@media print,
screen and (min-width:40em) {
    .copyright .partner__container .partner__logo-container .ifaw.font--black,
    .features__holder .feature .partner__container .partner__logo-container .ifaw.link,
    .partner__container .partner__logo-container .copyright .ifaw.font--black,
    .partner__container .partner__logo-container .features__holder .feature .ifaw.link,
    .partner__container .partner__logo-container .secondary-features .secondary-tile .ifaw.link,
    .partner__container .partner__logo-container .sub-menu .ifaw.font--black,
    .partner__container .partner__logo-container .upcoming-auction__section .ifaw.link,
    .partner__container .partner__logo-container a.ifaw,
    .secondary-features .secondary-tile .partner__container .partner__logo-container .ifaw.link,
    .sub-menu .partner__container .partner__logo-container .ifaw.font--black,
    .upcoming-auction__section .partner__container .partner__logo-container .ifaw.link {
        width: calc(20% - 30px);
        margin-right: 30px
    }
}

.copyright .partner__container .partner__logo-container .apa.font--black,
.features__holder .feature .partner__container .partner__logo-container .apa.link,
.partner__container .partner__logo-container .copyright .apa.font--black,
.partner__container .partner__logo-container .features__holder .feature .apa.link,
.partner__container .partner__logo-container .secondary-features .secondary-tile .apa.link,
.partner__container .partner__logo-container .sub-menu .apa.font--black,
.partner__container .partner__logo-container .upcoming-auction__section .apa.link,
.partner__container .partner__logo-container a.apa,
.secondary-features .secondary-tile .partner__container .partner__logo-container .apa.link,
.sub-menu .partner__container .partner__logo-container .apa.font--black,
.upcoming-auction__section .partner__container .partner__logo-container .apa.link {
    background-image: url(https://s3-ap-southeast-2.amazonaws.com/leonard-joel/wp-content/uploads/2021/06/arts-project-australia-new-logo-trans.jpg);
    height: 120px;
    width: 100%
}

@media print,
screen and (min-width:40em) {
    .copyright .partner__container .partner__logo-container .apa.font--black,
    .features__holder .feature .partner__container .partner__logo-container .apa.link,
    .partner__container .partner__logo-container .copyright .apa.font--black,
    .partner__container .partner__logo-container .features__holder .feature .apa.link,
    .partner__container .partner__logo-container .secondary-features .secondary-tile .apa.link,
    .partner__container .partner__logo-container .sub-menu .apa.font--black,
    .partner__container .partner__logo-container .upcoming-auction__section .apa.link,
    .partner__container .partner__logo-container a.apa,
    .secondary-features .secondary-tile .partner__container .partner__logo-container .apa.link,
    .sub-menu .partner__container .partner__logo-container .apa.font--black,
    .upcoming-auction__section .partner__container .partner__logo-container .apa.link {
        width: calc(20% - 60px);
        margin: 0 30px
    }
}

.copyright .partner__container .partner__logo-container .art-guide.font--black,
.features__holder .feature .partner__container .partner__logo-container .art-guide.link,
.partner__container .partner__logo-container .copyright .art-guide.font--black,
.partner__container .partner__logo-container .features__holder .feature .art-guide.link,
.partner__container .partner__logo-container .secondary-features .secondary-tile .art-guide.link,
.partner__container .partner__logo-container .sub-menu .art-guide.font--black,
.partner__container .partner__logo-container .upcoming-auction__section .art-guide.link,
.partner__container .partner__logo-container a.art-guide,
.secondary-features .secondary-tile .partner__container .partner__logo-container .art-guide.link,
.sub-menu .partner__container .partner__logo-container .art-guide.font--black,
.upcoming-auction__section .partner__container .partner__logo-container .art-guide.link {
    background-image: url(https://s3-ap-southeast-2.amazonaws.com/leonard-joel/wp-content/uploads/2021/06/artguide-black-transparent.jpg);
    height: 60px;
    width: 100%
}

@media print,
screen and (min-width:40em) {
    .copyright .partner__container .partner__logo-container .art-guide.font--black,
    .features__holder .feature .partner__container .partner__logo-container .art-guide.link,
    .partner__container .partner__logo-container .copyright .art-guide.font--black,
    .partner__container .partner__logo-container .features__holder .feature .art-guide.link,
    .partner__container .partner__logo-container .secondary-features .secondary-tile .art-guide.link,
    .partner__container .partner__logo-container .sub-menu .art-guide.font--black,
    .partner__container .partner__logo-container .upcoming-auction__section .art-guide.link,
    .partner__container .partner__logo-container a.art-guide,
    .secondary-features .secondary-tile .partner__container .partner__logo-container .art-guide.link,
    .sub-menu .partner__container .partner__logo-container .art-guide.font--black,
    .upcoming-auction__section .partner__container .partner__logo-container .art-guide.link {
        width: calc(20% - 80px);
        margin: 0 30px 0 50px
    }
}

.copyright .partner__container .partner__logo-container .art-money.font--black,
.features__holder .feature .partner__container .partner__logo-container .art-money.link,
.partner__container .partner__logo-container .copyright .art-money.font--black,
.partner__container .partner__logo-container .features__holder .feature .art-money.link,
.partner__container .partner__logo-container .secondary-features .secondary-tile .art-money.link,
.partner__container .partner__logo-container .sub-menu .art-money.font--black,
.partner__container .partner__logo-container .upcoming-auction__section .art-money.link,
.partner__container .partner__logo-container a.art-money,
.secondary-features .secondary-tile .partner__container .partner__logo-container .art-money.link,
.sub-menu .partner__container .partner__logo-container .art-money.font--black,
.upcoming-auction__section .partner__container .partner__logo-container .art-money.link {
    background-image: url(https://s3-ap-southeast-2.amazonaws.com/leonard-joel/wp-content/uploads/2021/06/ArtMoney_LOGO_K100.jpg);
    height: 75px;
    width: 100%
}

@media print,
screen and (min-width:40em) {
    .copyright .partner__container .partner__logo-container .art-money.font--black,
    .features__holder .feature .partner__container .partner__logo-container .art-money.link,
    .partner__container .partner__logo-container .copyright .art-money.font--black,
    .partner__container .partner__logo-container .features__holder .feature .art-money.link,
    .partner__container .partner__logo-container .secondary-features .secondary-tile .art-money.link,
    .partner__container .partner__logo-container .sub-menu .art-money.font--black,
    .partner__container .partner__logo-container .upcoming-auction__section .art-money.link,
    .partner__container .partner__logo-container a.art-money,
    .secondary-features .secondary-tile .partner__container .partner__logo-container .art-money.link,
    .sub-menu .partner__container .partner__logo-container .art-money.font--black,
    .upcoming-auction__section .partner__container .partner__logo-container .art-money.link {
        width: calc(20% - 60px);
        margin: 0 30px
    }
}

.copyright .partner__container .partner__logo-container .copyright.font--black,
.features__holder .feature .partner__container .partner__logo-container .copyright.link,
.partner__container .partner__logo-container .copyright .copyright.font--black,
.partner__container .partner__logo-container .features__holder .feature .copyright.link,
.partner__container .partner__logo-container .secondary-features .secondary-tile .copyright.link,
.partner__container .partner__logo-container .sub-menu .copyright.font--black,
.partner__container .partner__logo-container .upcoming-auction__section .copyright.link,
.partner__container .partner__logo-container a.copyright,
.secondary-features .secondary-tile .partner__container .partner__logo-container .copyright.link,
.sub-menu .partner__container .partner__logo-container .copyright.font--black,
.upcoming-auction__section .partner__container .partner__logo-container .copyright.link {
    background-image: url(https://s3-ap-southeast-2.amazonaws.com/leonard-joel/wp-content/uploads/2021/06/Copyright-Agency-Logo_RGB_full-colour.png);
    height: 75px;
    width: 100%
}

@media print,
screen and (min-width:40em) {
    .copyright .partner__container .partner__logo-container .copyright.font--black,
    .features__holder .feature .partner__container .partner__logo-container .copyright.link,
    .partner__container .partner__logo-container .copyright .copyright.font--black,
    .partner__container .partner__logo-container .features__holder .feature .copyright.link,
    .partner__container .partner__logo-container .secondary-features .secondary-tile .copyright.link,
    .partner__container .partner__logo-container .sub-menu .copyright.font--black,
    .partner__container .partner__logo-container .upcoming-auction__section .copyright.link,
    .partner__container .partner__logo-container a.copyright,
    .secondary-features .secondary-tile .partner__container .partner__logo-container .copyright.link,
    .sub-menu .partner__container .partner__logo-container .copyright.font--black,
    .upcoming-auction__section .partner__container .partner__logo-container .copyright.link {
        width: calc(20% - 30px);
        margin-left: 30px
    }
}


.filter-wrap-pdf {
    margin-left: 0;
    }


    .account__side-menu li.account__side-menu__current a {
  font-size: 1.5625rem;
}

.account__side-menu {
  margin-top: 10px;
}

@media only screen 
and (min-device-width : 320px) 
and (max-device-width : 568px) {
form#form_pdfexport {
    margin-top: 37px;
}    
.login-options a:hover,
.secondary-features .secondary-tile .login-options .link:hover,
.sub-menu .login-options .font--black:hover,
.upcoming-auction__section .login-options .link:hover {
  background-color: rgba(254, 254, 254, 0.1);
}

@media print, screen and (min-width: 40em)
.filter-wrap-pdf {
    margin-left: 500px !important;
} 

.mobile-off-canvas-menu .my-account a {
color: #0a0a0a;
font-family: "atten-new", Sans-serif;
font-size: 16.5px;
}




/*!
