@charset "UTF-8";
/* Colors for the ripple elements.*/
/* stylelint-disable-next-line material/theme-mixin-api */
/* stylelint-disable-next-line material/theme-mixin-api */
/* stylelint-disable material/no-prefixes */
/* stylelint-enable */
/*! Base styles, made with normalize.css v7.0.0 */
/*
** ==== Basic colors ====
*/
/*
** ==== XPO Brand Color Palette ====
*/
/*
** ==== Main Color Palette ====
*/
/*
** ==== DEPRECATED COLORS ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
/*
** ==== COLORS APPLIED ====
*/
/*
** ==== Typography ====
*/
/*
** ==== SNACKBAR DEPRECATED VARIABLES ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
.flex--stretch {
  flex: 1;
}
@font-face {
  font-family: 'Roboto Wide Black';
  font-style: normal;
  font-weight: 900;
  src: url("https://xpodotcom.azureedge.net/xpo/files/roboto-wide--black.woff2") format("woff2"), url("https://xpodotcom.azureedge.net/xpo/files/roboto-wide--black.woff") format("woff");
}
*,
*::before,
*::after {
  box-sizing: border-box;
}
*:focus {
  outline: none;
}
:root {
  font-size: 14px;
}
html,
body {
  height: 100%;
  margin: 0;
}
html {
  line-height: 24px;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}
body {
  background-color: #f3f3f3;
  color: #4a4a4a;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-weight: 400;
  letter-spacing: 0.2px;
  line-height: 24px;
  position: relative;
}
article,
aside,
footer,
header,
nav,
section {
  display: block;
}
h1,
h2,
h3 {
  margin: 8px 0;
}
h1 {
  font-size: 1.428rem;
  font-weight: 500;
  letter-spacing: 0.38px;
  line-height: 1.286;
}
h2 {
  font-size: 1.285rem;
  font-weight: 500;
  letter-spacing: 0.33px;
  line-height: 1.143;
}
h3 {
  font-size: 1.143rem;
  font-weight: 500;
  letter-spacing: 0.3px;
  line-height: 1.143;
}
p {
  margin: 0;
}
figcaption,
figure,
main {
  display: block;
}
figure {
  margin: 1em 40px;
}
hr {
  border: 0;
  border-top: 1px solid #d8d8d8;
  display: block;
  height: 1px;
  margin: 16px 0;
  padding: 0;
}
pre {
  font-family: monospace, monospace;
  font-size: 1em;
}
a {
  background-color: transparent;
  color: #0868ac;
  text-decoration: none;
  -webkit-text-decoration-skip: objects;
}
a:hover {
  color: #0d94f4;
}
ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
}
dt {
  font-weight: 500;
}
dd {
  margin: 0 0 8px;
}
abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}
code,
kbd,
samp {
  background-color: #d8d8d8;
  font-family: monospace, monospace;
  font-size: 0.9em;
  padding: 0.2em 0.3em;
}
dfn {
  font-style: italic;
}
mark {
  background-color: #ff0;
  color: #000;
}
small {
  font-size: 80%;
}
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
audio,
video {
  display: inline-block;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
img {
  border-style: none;
  max-width: 100%;
}
svg:not(:root) {
  overflow: hidden;
}
button,
input,
optgroup,
select,
textarea {
  margin: 0;
}
button,
input {
  overflow: visible;
}
button,
select {
  text-transform: none;
}
button,
html [type='button'],
[type='reset'],
[type='submit'] {
  -webkit-appearance: button;
}
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;
}
fieldset {
  padding: 0.35em 0.75em 0.625em;
}
legend {
  box-sizing: border-box;
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal;
}
progress {
  display: inline-block;
  vertical-align: baseline;
}
textarea {
  overflow: auto;
}
[type='checkbox'],
[type='radio'] {
  box-sizing: border-box;
  padding: 0;
}
[type='number']::-webkit-inner-spin-button,
[type='number']::-webkit-outer-spin-button {
  height: auto;
}
[type='search'] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}
[type='search']::-webkit-search-cancel-button,
[type='search']::-webkit-search-decoration {
  -webkit-appearance: none;
}
::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}
details,
menu {
  display: block;
}
summary {
  display: list-item;
}
canvas {
  display: inline-block;
}
template {
  display: none;
}
[hidden] {
  display: none;
}
/*
** ==== Basic colors ====
*/
/*
** ==== XPO Brand Color Palette ====
*/
/*
** ==== Main Color Palette ====
*/
/*
** ==== DEPRECATED COLORS ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
/*
** ==== COLORS APPLIED ====
*/
/*
** ==== Typography ====
*/
/*
** ==== SNACKBAR DEPRECATED VARIABLES ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
.flex--stretch {
  flex: 1;
}
[mat-button].mat-button,
[mat-raised-button].mat-raised-button,
[mat-icon-button].mat-icon-button {
  border-width: 2px;
  font-size: 1.143rem;
  font-weight: 400;
  height: 40px;
  line-height: normal;
  padding: 0 20px;
  transition: color 200ms ease, background-color 200ms ease, border-color 200ms ease;
}
[mat-button].mat-button {
  padding: 0;
}
[mat-icon-button].mat-icon-button {
  padding: 0;
}
[mat-raised-button].mat-raised-button {
  border-style: solid;
  border-width: 2px;
  box-shadow: none !important;
  color: #ffffff;
}
[mat-raised-button].mat-raised-button, [mat-raised-button].mat-raised-button.mat-primary {
  background-color: #1976d2;
  border-color: #1976d2;
}
[mat-raised-button].mat-raised-button:hover, [mat-raised-button].mat-raised-button.mat-primary:hover {
  background-color: #2196f3;
  border-color: #2196f3;
}
[mat-raised-button].mat-raised-button:focus, [mat-raised-button].mat-raised-button:active, [mat-raised-button].mat-raised-button.mat-primary:focus, [mat-raised-button].mat-raised-button.mat-primary:active {
  background-color: #0d47a1;
  border-color: #0d47a1;
}
[mat-raised-button].mat-raised-button.mat-warn {
  background-color: #d50000;
  border-color: #d50000;
}
[mat-raised-button].mat-raised-button.mat-warn:hover {
  background-color: #ff2222;
  border-color: #ff2222;
}
[mat-raised-button].mat-raised-button.mat-warn:focus, [mat-raised-button].mat-raised-button.mat-warn:active {
  background-color: #550000;
  border-color: #550000;
}
[mat-raised-button].mat-raised-button[disabled], [mat-raised-button].mat-raised-button[disabled]:active, [mat-raised-button].mat-raised-button[disabled]:hover, [mat-raised-button].mat-raised-button[disabled]:focus {
  background-color: #d8d8d8;
  border-color: #d8d8d8;
  color: #ffffff;
  cursor: not-allowed;
}
.mat-button,
.mat-icon-button {
  background-color: transparent;
}
.mat-button.mat-primary,
.mat-icon-button.mat-primary {
  color: #0868ac;
}
.mat-button.mat-primary:hover, .mat-button.mat-primary:focus,
.mat-icon-button.mat-primary:hover,
.mat-icon-button.mat-primary:focus {
  color: #0d94f4;
}
.mat-button.mat-primary:active,
.mat-icon-button.mat-primary:active {
  color: #053c63;
}
.mat-button, .mat-button.mat-accent,
.mat-icon-button,
.mat-icon-button.mat-accent {
  color: #4a4a4a;
}
.mat-button:hover, .mat-button:focus, .mat-button.mat-accent:hover, .mat-button.mat-accent:focus,
.mat-icon-button:hover,
.mat-icon-button:focus,
.mat-icon-button.mat-accent:hover,
.mat-icon-button.mat-accent:focus {
  color: #9b9b9b;
}
.mat-button:active, .mat-button.mat-accent:active,
.mat-icon-button:active,
.mat-icon-button.mat-accent:active {
  color: #4a4a4a;
}
.mat-button.mat-warn,
.mat-icon-button.mat-warn {
  color: #d50000;
}
.mat-button.mat-warn:hover, .mat-button.mat-warn:focus,
.mat-icon-button.mat-warn:hover,
.mat-icon-button.mat-warn:focus {
  color: #ff2222;
}
.mat-button.mat-warn:active,
.mat-icon-button.mat-warn:active {
  color: #550000;
}
[mat-raised-button].mat-raised-button {
  align-items: center;
  display: inline-flex;
}
[mat-button].mat-button[disabled], [mat-button].mat-button[disabled]:active, [mat-button].mat-button[disabled]:hover, [mat-button].mat-button[disabled]:focus,
[mat-icon-button].mat-icon-button[disabled],
[mat-icon-button].mat-icon-button[disabled]:active,
[mat-icon-button].mat-icon-button[disabled]:hover,
[mat-icon-button].mat-icon-button[disabled]:focus {
  background-color: transparent;
  border-color: #bdbdbd;
  color: #bdbdbd;
  cursor: not-allowed;
}
[mat-raised-button].mat-raised-button {
  border-radius: 2px;
}
[mat-button].mat-button.xpo-SmallButton,
[mat-raised-button].mat-raised-button.xpo-SmallButton,
[mat-icon-button].mat-icon-button.xpo-SmallButton {
  border-width: 1px;
  font-size: 1rem;
  height: 30px;
  line-height: normal;
  min-width: auto;
}
[mat-button].mat-button.xpo-SmallButton .mat-icon,
[mat-raised-button].mat-raised-button.xpo-SmallButton .mat-icon,
[mat-icon-button].mat-icon-button.xpo-SmallButton .mat-icon {
  font-size: 20px;
}
[mat-button].mat-button.xpo-SmallButton .mat-button-wrapper,
[mat-raised-button].mat-raised-button.xpo-SmallButton .mat-button-wrapper,
[mat-icon-button].mat-icon-button.xpo-SmallButton .mat-button-wrapper {
  line-height: 28px;
}
[mat-button].mat-button.xpo-LargeButton,
[mat-raised-button].mat-raised-button.xpo-LargeButton {
  font-size: 1.143rem;
  height: 50px;
  line-height: normal;
}
[mat-button].mat-button.xpo-LargeButton .mat-button-toggle-button,
[mat-raised-button].mat-raised-button.xpo-LargeButton .mat-button-toggle-button {
  font-size: 1.285rem;
  height: 100%;
}
/*
  1. These are carried over from Material but UX does not
      have any design for them yet. That's why they are not
      in the sample... they're a bit of a hidden API.
*/
/* Colors for the ripple elements.*/
/* stylelint-disable-next-line material/theme-mixin-api */
/* stylelint-disable-next-line material/theme-mixin-api */
/* stylelint-disable material/no-prefixes */
/* stylelint-enable */
.xpo-Link--accent {
  color: #4a4a4a;
}
.xpo-Link--accent:hover, .xpo-Link--accent:focus, .xpo-Link--accent:active {
  text-decoration: underline;
}
.xpo-Link--accent:hover, .xpo-Link--accent:focus {
  color: #4a4a4a;
  outline: 0;
}
.xpo-Link--accent:active {
  color: #171717;
}
.mat-chip-list .mat-chip-list-wrapper {
  gap: 6px;
}
.mat-chip.mat-standard-chip.xpo-Tag {
  background-color: #fafafa;
  border: 1px solid #d8d8d8;
  border-radius: 2px;
  color: #212121;
  display: flex;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.429rem;
  height: 24px;
  margin: 4px 0;
  min-height: 24px;
  padding: 2px 8px;
}
.mat-chip.mat-standard-chip.xpo-Tag > .mat-icon {
  font-size: 1.143rem;
  height: 16px;
  margin-left: 12px;
  margin-right: 0;
  width: 16px;
}
.mat-chip.mat-standard-chip.xpo-Tag .xpo-Icon {
  height: 16px;
  margin-left: 12px;
  width: 16px;
}
.mat-chip.mat-standard-chip.xpo-Tag .xpo-Icon .mat-icon {
  height: 16px;
  margin-right: 0;
  width: 16px;
}
.mat-chip.mat-standard-chip.xpo-Tag .mat-chip-remove.mat-chip-trailing-icon {
  margin-left: 12px;
  opacity: 1;
}
.mat-chip.mat-standard-chip.xpo-Tag .mat-chip-remove.mat-chip-trailing-icon:hover {
  opacity: 1;
}
.mat-chip.mat-standard-chip.xpo-Tag:hover {
  background-color: #ffffff;
}
/*
** ==== Basic colors ====
*/
/*
** ==== XPO Brand Color Palette ====
*/
/*
** ==== Main Color Palette ====
*/
/*
** ==== DEPRECATED COLORS ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
/*
** ==== COLORS APPLIED ====
*/
/*
** ==== Typography ====
*/
/*
** ==== SNACKBAR DEPRECATED VARIABLES ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
.flex--stretch {
  flex: 1;
}
/* Colors for the ripple elements.*/
/* stylelint-disable-next-line material/theme-mixin-api */
/* stylelint-disable-next-line material/theme-mixin-api */
/* stylelint-disable material/no-prefixes */
/* stylelint-enable */
/*
** ==== Basic colors ====
*/
/*
** ==== XPO Brand Color Palette ====
*/
/*
** ==== Main Color Palette ====
*/
/*
** ==== DEPRECATED COLORS ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
/*
** ==== COLORS APPLIED ====
*/
/*
** ==== Typography ====
*/
/*
** ==== SNACKBAR DEPRECATED VARIABLES ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
.flex--stretch {
  flex: 1;
}
/*
    1. Thanks to sub-pixels and how they render this caused some nasty
        blur. Ew! What one can do is start to add sub-pixels in along
        with the "em" (or rem, or points, or 🧀; it doesn't really
        matter). This is sub-pixel pushing so I just used my eye on
        a low-rez monitor and got it as close as I could. Because
        `calc` was uses this will be handled on the DOM instead of
        during the SCSS compilation which should give the rendering
        engine the best chance to make the correct decision.
    2. This is to support the text weight changing from the label
        changing weights as we want to animate this change instead
        of a snapping change.
    3. This large bit of classes is to identify if a prefix is attached
        to the input so that we can move the label better.
    4. Material has this set to 133.333% because they scale the label.
        We're changing that scale so we need to change the size of it.
*/
/*
    1. Threw a `div` to start this off to get the score to 0011 in order
        to beat Materials 0010. Mwahahaha.
    2. This disables the caret on anything but the first menu when there
        are nested menus. This is slightly fragile but sadly Material
        doesn't give us much of a choice here. We know the first panel
        is the second child of the overlay `div` so we get the second
        with `nth-of-type(2)` which gets the second `div`...then add
        `:not()` and you now get "everything that isn't the second div.
    3. This is because the first and last menu items have space added
        around them. The carets need to respect that and because the
        area round the buttons needs to accept the hover state this
        these need to be manually moved. All other carets are just
        moved 50% wholesale.
    4. Thanks to the reduced padding we need to move the submenu trigger
        icon over just a bit.
*/
/* Colors for the ripple elements.*/
/* stylelint-disable-next-line material/theme-mixin-api */
/* stylelint-disable-next-line material/theme-mixin-api */
/* stylelint-disable material/no-prefixes */
/* stylelint-enable */
/*
** ==== Basic colors ====
*/
/*
** ==== XPO Brand Color Palette ====
*/
/*
** ==== Main Color Palette ====
*/
/*
** ==== DEPRECATED COLORS ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
/*
** ==== COLORS APPLIED ====
*/
/*
** ==== Typography ====
*/
/*
** ==== SNACKBAR DEPRECATED VARIABLES ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
.flex--stretch {
  flex: 1;
}
/*
* The following styles style tabs that have been deprecated or are not in the design system 
* and also style the tab snippets in the Core documentation.
**/
.mat-primary .mat-tab-header .mat-tab-label-container .mat-ink-bar,
.mat-primary .mat-tab-header .mat-tab-label-container .mat-tab-nav-bar.mat-primary .mat-ink-bar {
  background-color: #0d94f4;
}
.mat-primary .mat-tab-label {
  color: #000000;
  height: 40px;
  line-height: 40px;
  margin-left: 0;
  min-width: 0;
  opacity: 1;
  padding: 4px 8px;
}
.mat-primary .mat-tab-label:first-child {
  margin-left: 0;
}
.mat-primary .mat-tab-label:hover, .mat-primary .mat-tab-label.mat-tab-label-active {
  color: #000000;
}
.mat-primary .mat-tab-label.mat-tab-disabled {
  color: #d8d8d8;
}
.mat-primary .mat-tab-label .mat-tab-link:hover, .mat-primary .mat-tab-label .mat-tab-link:focus {
  text-decoration: none;
}
.mat-primary .mat-tab-label .mat-tab-labels .mat-tab-label-content {
  padding-bottom: 0;
}
.mat-primary .mat-tab-label .mat-tab-labels .mat-tab-label-content .mat-chip.xpo-Chip--small {
  font-size: 12px;
  line-height: 16px;
  min-height: 16px;
}
.mat-primary .mat-tab-label .mat-tab-labels .mat-tab-label-content .mat-chip.xpo-Chip--small .mat-icon {
  height: 12px;
  width: 12px;
}
.mat-primary .mat-tab-label .mat-tab-labels .mat-tab-label-content > .mat-icon {
  align-items: center;
  display: flex;
  font-size: 1.143rem;
  width: auto;
}
.xpo-AlternateTabs.xpo-TabsWideNav .mat-tab-header-pagination,
.xpo-PillTabGroup.xpo-TabsWideNav .mat-tab-header-pagination,
.xpo-VerticalTabs.xpo-TabsWideNav .mat-tab-header-pagination,
.xpo-PrimaryTabs.xpo-TabsWideNav .mat-tab-header-pagination {
  min-width: 40px;
  width: 40px;
  padding: 8px;
}
.xpo-AlternateTabs .mat-tab-header,
.xpo-PillTabGroup .mat-tab-header,
.xpo-VerticalTabs .mat-tab-header,
.xpo-PrimaryTabs .mat-tab-header {
  border-bottom: none;
}
.xpo-AlternateTabs .mat-tab-header-pagination,
.xpo-PillTabGroup .mat-tab-header-pagination,
.xpo-VerticalTabs .mat-tab-header-pagination,
.xpo-PrimaryTabs .mat-tab-header-pagination {
  background-color: #f6f6f6;
  border: 1px solid #d8d8d8;
  box-shadow: none;
  min-width: 24px;
  height: 40px;
  opacity: 0.8;
  padding: 8px 0;
  width: 24px;
}
.xpo-AlternateTabs .mat-tab-header-pagination:hover:not(.mat-tab-header-pagination-disabled),
.xpo-PillTabGroup .mat-tab-header-pagination:hover:not(.mat-tab-header-pagination-disabled),
.xpo-VerticalTabs .mat-tab-header-pagination:hover:not(.mat-tab-header-pagination-disabled),
.xpo-PrimaryTabs .mat-tab-header-pagination:hover:not(.mat-tab-header-pagination-disabled) {
  background-color: #ffffff;
}
.xpo-AlternateTabs .mat-tab-header-pagination-disabled,
.xpo-PillTabGroup .mat-tab-header-pagination-disabled,
.xpo-VerticalTabs .mat-tab-header-pagination-disabled,
.xpo-PrimaryTabs .mat-tab-header-pagination-disabled {
  background: #f6f6f6;
}
.xpo-AlternateTabs .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,
.xpo-PillTabGroup .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,
.xpo-VerticalTabs .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,
.xpo-PrimaryTabs .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {
  border-color: #bdbdbd;
}
.xpo-AlternateTabs .mat-tab-header-pagination-chevron,
.xpo-PillTabGroup .mat-tab-header-pagination-chevron,
.xpo-VerticalTabs .mat-tab-header-pagination-chevron,
.xpo-PrimaryTabs .mat-tab-header-pagination-chevron {
  height: 8px;
  width: 8px;
  border-color: #4a4a4a;
}
.xpo-AlternateTabs .mat-tab-header-pagination-chevron:hover,
.xpo-PillTabGroup .mat-tab-header-pagination-chevron:hover,
.xpo-VerticalTabs .mat-tab-header-pagination-chevron:hover,
.xpo-PrimaryTabs .mat-tab-header-pagination-chevron:hover {
  border-color: #212121;
}
.xpo-AlternateTabs .mat-tab-label-content,
.xpo-PillTabGroup .mat-tab-label-content,
.xpo-VerticalTabs .mat-tab-label-content,
.xpo-PrimaryTabs .mat-tab-label-content {
  gap: 8px;
}
.xpo-AlternateTabs .mat-tab-label-content > .mat-icon,
.xpo-PillTabGroup .mat-tab-label-content > .mat-icon,
.xpo-VerticalTabs .mat-tab-label-content > .mat-icon,
.xpo-PrimaryTabs .mat-tab-label-content > .mat-icon {
  font-size: 1.428rem;
  width: 20px;
  height: 20px;
}
.xpo-AlternateTabs .mat-tab-label-content .mat-badge.mat-badge-overlap,
.xpo-PillTabGroup .mat-tab-label-content .mat-badge.mat-badge-overlap,
.xpo-VerticalTabs .mat-tab-label-content .mat-badge.mat-badge-overlap,
.xpo-PrimaryTabs .mat-tab-label-content .mat-badge.mat-badge-overlap {
  display: flex;
  gap: 8px;
}
.xpo-AlternateTabs .mat-tab-label-content .mat-badge-content,
.xpo-AlternateTabs .mat-tab-label-content .mat-chip,
.xpo-PillTabGroup .mat-tab-label-content .mat-badge-content,
.xpo-PillTabGroup .mat-tab-label-content .mat-chip,
.xpo-VerticalTabs .mat-tab-label-content .mat-badge-content,
.xpo-VerticalTabs .mat-tab-label-content .mat-chip,
.xpo-PrimaryTabs .mat-tab-label-content .mat-badge-content,
.xpo-PrimaryTabs .mat-tab-label-content .mat-chip {
  align-items: center;
  background-color: #f6f6f6;
  border: 1px solid #d8d8d8;
  border-radius: 10px;
  color: #000000;
  display: flex;
  font-weight: 900;
  justify-content: center;
  height: 20px;
  line-height: 12px;
  min-width: 30px;
  overflow: initial;
  padding: 4px 8px;
  position: initial;
  width: 100%;
}
.xpo-AlternateTabs .mat-tab-list .mat-ink-bar,
.xpo-PillTabGroup .mat-tab-list .mat-ink-bar,
.xpo-VerticalTabs .mat-tab-list .mat-ink-bar,
.xpo-PrimaryTabs .mat-tab-list .mat-ink-bar {
  display: none;
}
.xpo-AlternateTabs .mat-tab-header .mat-tab-label,
.xpo-AlternateTabs .mat-tab-links .mat-tab-link,
.xpo-AlternateTabs .mat-tab-labels .mat-tab-label,
.xpo-AlternateTabs .mat-tab-nav-bar .mat-tab-link,
.xpo-PillTabGroup .mat-tab-header .mat-tab-label,
.xpo-PillTabGroup .mat-tab-links .mat-tab-link,
.xpo-PillTabGroup .mat-tab-labels .mat-tab-label,
.xpo-PillTabGroup .mat-tab-nav-bar .mat-tab-link,
.xpo-VerticalTabs .mat-tab-header .mat-tab-label,
.xpo-VerticalTabs .mat-tab-links .mat-tab-link,
.xpo-VerticalTabs .mat-tab-labels .mat-tab-label,
.xpo-VerticalTabs .mat-tab-nav-bar .mat-tab-link,
.xpo-PrimaryTabs .mat-tab-header .mat-tab-label,
.xpo-PrimaryTabs .mat-tab-links .mat-tab-link,
.xpo-PrimaryTabs .mat-tab-labels .mat-tab-label,
.xpo-PrimaryTabs .mat-tab-nav-bar .mat-tab-link {
  background-color: #ffffff;
  border-left: 1px solid #d8d8d8;
  border-top: 1px solid #d8d8d8;
  border-bottom: 1px solid #d8d8d8;
  color: #212121;
  font-weight: 700;
  height: 40px;
  line-height: 1.429rem;
  min-width: 0;
  opacity: 1;
  padding: 10px 16px;
}
.xpo-AlternateTabs .mat-tab-header .mat-tab-label.mat-tab-label-active,
.xpo-AlternateTabs .mat-tab-links .mat-tab-link.mat-tab-label-active,
.xpo-AlternateTabs .mat-tab-labels .mat-tab-label.mat-tab-label-active,
.xpo-AlternateTabs .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active,
.xpo-PillTabGroup .mat-tab-header .mat-tab-label.mat-tab-label-active,
.xpo-PillTabGroup .mat-tab-links .mat-tab-link.mat-tab-label-active,
.xpo-PillTabGroup .mat-tab-labels .mat-tab-label.mat-tab-label-active,
.xpo-PillTabGroup .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active,
.xpo-VerticalTabs .mat-tab-header .mat-tab-label.mat-tab-label-active,
.xpo-VerticalTabs .mat-tab-links .mat-tab-link.mat-tab-label-active,
.xpo-VerticalTabs .mat-tab-labels .mat-tab-label.mat-tab-label-active,
.xpo-VerticalTabs .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active,
.xpo-PrimaryTabs .mat-tab-header .mat-tab-label.mat-tab-label-active,
.xpo-PrimaryTabs .mat-tab-links .mat-tab-link.mat-tab-label-active,
.xpo-PrimaryTabs .mat-tab-labels .mat-tab-label.mat-tab-label-active,
.xpo-PrimaryTabs .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active {
  border-bottom: 1px solid #ffffff;
  border-top: 4px solid #0d47a1;
  overflow: inherit;
}
.xpo-AlternateTabs .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-tab-label-content,
.xpo-AlternateTabs .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-tab-label-content,
.xpo-AlternateTabs .mat-tab-labels .mat-tab-label.mat-tab-label-active .mat-tab-label-content,
.xpo-AlternateTabs .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active .mat-tab-label-content,
.xpo-PillTabGroup .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-tab-label-content,
.xpo-PillTabGroup .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-tab-label-content,
.xpo-PillTabGroup .mat-tab-labels .mat-tab-label.mat-tab-label-active .mat-tab-label-content,
.xpo-PillTabGroup .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active .mat-tab-label-content,
.xpo-VerticalTabs .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-tab-label-content,
.xpo-VerticalTabs .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-tab-label-content,
.xpo-VerticalTabs .mat-tab-labels .mat-tab-label.mat-tab-label-active .mat-tab-label-content,
.xpo-VerticalTabs .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active .mat-tab-label-content,
.xpo-PrimaryTabs .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-tab-label-content,
.xpo-PrimaryTabs .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-tab-label-content,
.xpo-PrimaryTabs .mat-tab-labels .mat-tab-label.mat-tab-label-active .mat-tab-label-content,
.xpo-PrimaryTabs .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active .mat-tab-label-content {
  margin-bottom: 3px;
}
.xpo-AlternateTabs .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-badge-content,
.xpo-AlternateTabs .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-chip,
.xpo-AlternateTabs .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-badge-content,
.xpo-AlternateTabs .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-chip,
.xpo-AlternateTabs .mat-tab-labels .mat-tab-label.mat-tab-label-active .mat-badge-content,
.xpo-AlternateTabs .mat-tab-labels .mat-tab-label.mat-tab-label-active .mat-chip,
.xpo-AlternateTabs .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active .mat-badge-content,
.xpo-AlternateTabs .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active .mat-chip,
.xpo-PillTabGroup .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-badge-content,
.xpo-PillTabGroup .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-chip,
.xpo-PillTabGroup .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-badge-content,
.xpo-PillTabGroup .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-chip,
.xpo-PillTabGroup .mat-tab-labels .mat-tab-label.mat-tab-label-active .mat-badge-content,
.xpo-PillTabGroup .mat-tab-labels .mat-tab-label.mat-tab-label-active .mat-chip,
.xpo-PillTabGroup .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active .mat-badge-content,
.xpo-PillTabGroup .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active .mat-chip,
.xpo-VerticalTabs .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-badge-content,
.xpo-VerticalTabs .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-chip,
.xpo-VerticalTabs .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-badge-content,
.xpo-VerticalTabs .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-chip,
.xpo-VerticalTabs .mat-tab-labels .mat-tab-label.mat-tab-label-active .mat-badge-content,
.xpo-VerticalTabs .mat-tab-labels .mat-tab-label.mat-tab-label-active .mat-chip,
.xpo-VerticalTabs .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active .mat-badge-content,
.xpo-VerticalTabs .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active .mat-chip,
.xpo-PrimaryTabs .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-badge-content,
.xpo-PrimaryTabs .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-chip,
.xpo-PrimaryTabs .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-badge-content,
.xpo-PrimaryTabs .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-chip,
.xpo-PrimaryTabs .mat-tab-labels .mat-tab-label.mat-tab-label-active .mat-badge-content,
.xpo-PrimaryTabs .mat-tab-labels .mat-tab-label.mat-tab-label-active .mat-chip,
.xpo-PrimaryTabs .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active .mat-badge-content,
.xpo-PrimaryTabs .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active .mat-chip {
  background-color: #4a4a4a;
  border: 1px solid #4a4a4a;
  color: #ffffff;
}
.xpo-AlternateTabs .mat-tab-header .mat-tab-label.mat-tab-disabled,
.xpo-AlternateTabs .mat-tab-links .mat-tab-link.mat-tab-disabled,
.xpo-AlternateTabs .mat-tab-labels .mat-tab-label.mat-tab-disabled,
.xpo-AlternateTabs .mat-tab-nav-bar .mat-tab-link.mat-tab-disabled,
.xpo-PillTabGroup .mat-tab-header .mat-tab-label.mat-tab-disabled,
.xpo-PillTabGroup .mat-tab-links .mat-tab-link.mat-tab-disabled,
.xpo-PillTabGroup .mat-tab-labels .mat-tab-label.mat-tab-disabled,
.xpo-PillTabGroup .mat-tab-nav-bar .mat-tab-link.mat-tab-disabled,
.xpo-VerticalTabs .mat-tab-header .mat-tab-label.mat-tab-disabled,
.xpo-VerticalTabs .mat-tab-links .mat-tab-link.mat-tab-disabled,
.xpo-VerticalTabs .mat-tab-labels .mat-tab-label.mat-tab-disabled,
.xpo-VerticalTabs .mat-tab-nav-bar .mat-tab-link.mat-tab-disabled,
.xpo-PrimaryTabs .mat-tab-header .mat-tab-label.mat-tab-disabled,
.xpo-PrimaryTabs .mat-tab-links .mat-tab-link.mat-tab-disabled,
.xpo-PrimaryTabs .mat-tab-labels .mat-tab-label.mat-tab-disabled,
.xpo-PrimaryTabs .mat-tab-nav-bar .mat-tab-link.mat-tab-disabled {
  background-color: #f6f6f6;
  color: #d8d8d8;
}
.xpo-AlternateTabs .mat-tab-header .mat-tab-label:last-child,
.xpo-AlternateTabs .mat-tab-links .mat-tab-link:last-child,
.xpo-AlternateTabs .mat-tab-labels .mat-tab-label:last-child,
.xpo-AlternateTabs .mat-tab-nav-bar .mat-tab-link:last-child,
.xpo-PillTabGroup .mat-tab-header .mat-tab-label:last-child,
.xpo-PillTabGroup .mat-tab-links .mat-tab-link:last-child,
.xpo-PillTabGroup .mat-tab-labels .mat-tab-label:last-child,
.xpo-PillTabGroup .mat-tab-nav-bar .mat-tab-link:last-child,
.xpo-VerticalTabs .mat-tab-header .mat-tab-label:last-child,
.xpo-VerticalTabs .mat-tab-links .mat-tab-link:last-child,
.xpo-VerticalTabs .mat-tab-labels .mat-tab-label:last-child,
.xpo-VerticalTabs .mat-tab-nav-bar .mat-tab-link:last-child,
.xpo-PrimaryTabs .mat-tab-header .mat-tab-label:last-child,
.xpo-PrimaryTabs .mat-tab-links .mat-tab-link:last-child,
.xpo-PrimaryTabs .mat-tab-labels .mat-tab-label:last-child,
.xpo-PrimaryTabs .mat-tab-nav-bar .mat-tab-link:last-child {
  border-right: 1px solid #d8d8d8;
}
.xpo-AlternateTabs .mat-tab-header .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-AlternateTabs .mat-tab-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-AlternateTabs .mat-tab-labels .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-AlternateTabs .mat-tab-nav-bar .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-PillTabGroup .mat-tab-header .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-PillTabGroup .mat-tab-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-PillTabGroup .mat-tab-labels .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-PillTabGroup .mat-tab-nav-bar .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-VerticalTabs .mat-tab-header .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-VerticalTabs .mat-tab-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-VerticalTabs .mat-tab-labels .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-VerticalTabs .mat-tab-nav-bar .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-PrimaryTabs .mat-tab-header .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-PrimaryTabs .mat-tab-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-PrimaryTabs .mat-tab-labels .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-PrimaryTabs .mat-tab-nav-bar .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) {
  border-top: 4px solid #2196f3;
}
.xpo-AlternateTabs .mat-tab-header .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-AlternateTabs .mat-tab-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-AlternateTabs .mat-tab-labels .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-AlternateTabs .mat-tab-nav-bar .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-PillTabGroup .mat-tab-header .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-PillTabGroup .mat-tab-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-PillTabGroup .mat-tab-labels .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-PillTabGroup .mat-tab-nav-bar .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-VerticalTabs .mat-tab-header .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-VerticalTabs .mat-tab-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-VerticalTabs .mat-tab-labels .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-VerticalTabs .mat-tab-nav-bar .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-PrimaryTabs .mat-tab-header .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-PrimaryTabs .mat-tab-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-PrimaryTabs .mat-tab-labels .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-PrimaryTabs .mat-tab-nav-bar .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content {
  margin-bottom: 3px;
}
.mat-tab-nav-bar.xpo-AlternateTabs {
  border-bottom: none;
}
.xpo-PillTabGroup .mat-tab-header .mat-tab-label-container .mat-tab-labels {
  gap: 4px;
}
.xpo-PillTabGroup .mat-tab-header .mat-tab-label-container .mat-tab-labels .mat-tab-label,
.xpo-PillTabGroup .mat-tab-header .mat-tab-nav-bar .mat-tab-link {
  padding: 6px 16px;
  border-radius: 20px;
  height: 32px;
  border: 0;
  font-weight: 400;
  line-height: 20px;
  color: #1976d2;
}
.xpo-PillTabGroup .mat-tab-header .mat-tab-label-container .mat-tab-labels .mat-tab-label.mat-tab-label-active,
.xpo-PillTabGroup .mat-tab-header .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active {
  background-color: #e4effa;
  color: #212121;
}
.xpo-PillTabGroup .mat-tab-header .mat-tab-label-container .mat-tab-labels .mat-tab-label.mat-tab-label-active .mat-tab-label-content,
.xpo-PillTabGroup .mat-tab-header .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active .mat-tab-label-content {
  margin-bottom: 0;
}
.xpo-PillTabGroup .mat-tab-header .mat-tab-label-container .mat-tab-labels .mat-tab-label.mat-tab-disabled,
.xpo-PillTabGroup .mat-tab-header .mat-tab-nav-bar .mat-tab-link.mat-tab-disabled {
  color: #bdbdbd;
}
.xpo-PillTabGroup .mat-tab-header .mat-tab-label-container .mat-tab-labels .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-PillTabGroup .mat-tab-header .mat-tab-nav-bar .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) {
  border: 0;
  color: #0d47a1;
}
.xpo-PillTabGroup .mat-tab-header .mat-tab-label-container .mat-tab-labels .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-PillTabGroup .mat-tab-header .mat-tab-nav-bar .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content {
  margin-bottom: 0;
}
.mat-tab-group.mat-primary.xpo-VerticalTabs {
  align-items: flex-start;
  display: flex;
  flex-direction: row;
}
.mat-tab-group.mat-primary.xpo-VerticalTabs .mat-tab-header .mat-tab-label-container .mat-tab-list {
  flex-grow: 0;
}
.mat-tab-group.mat-primary.xpo-VerticalTabs .mat-tab-header .mat-tab-label-container .mat-tab-labels {
  display: flex;
  flex-direction: column;
}
.mat-tab-group.mat-primary.xpo-VerticalTabs .mat-tab-header .mat-tab-label-container .mat-tab-labels .mat-tab-label {
  border: 1px solid #d8d8d8;
  border-top: 0;
  height: 32px;
  line-height: 1.429rem;
  justify-content: start;
  padding: 6px 16px;
}
.mat-tab-group.mat-primary.xpo-VerticalTabs .mat-tab-header .mat-tab-label-container .mat-tab-labels .mat-tab-label:first-child {
  border-top: 1px solid #d8d8d8;
}
.mat-tab-group.mat-primary.xpo-VerticalTabs .mat-tab-header .mat-tab-label-container .mat-tab-labels .mat-tab-label-content {
  font-weight: 400;
}
.mat-tab-group.mat-primary.xpo-VerticalTabs .mat-tab-header .mat-tab-label-container .mat-tab-labels .mat-tab-label-active {
  border-left: 4px solid #0d47a1;
}
.mat-tab-group.mat-primary.xpo-VerticalTabs .mat-tab-header .mat-tab-label-container .mat-tab-labels .mat-tab-label.mat-tab-label-active .mat-tab-label-content {
  font-weight: 700;
  margin-bottom: 0;
  margin-left: -3px;
}
.mat-tab-group.mat-primary.xpo-VerticalTabs .mat-tab-header .mat-tab-label-container .mat-tab-labels .mat-tab-label:hover:first-child {
  border-top: 1px solid #d8d8d8;
  border-left: 4px solid #2196f3;
}
.mat-tab-group.mat-primary.xpo-VerticalTabs .mat-tab-header .mat-tab-label-container .mat-tab-labels .mat-tab-label:hover:first-child .mat-tab-label-content {
  margin-bottom: 0;
  margin-left: -3px;
}
.mat-tab-group.mat-primary.xpo-VerticalTabs .mat-tab-header .mat-tab-label-container .mat-tab-labels .mat-tab-label:hover:not(.mat-tab-disabled):not(:first-child) {
  border-top: 0;
  border-left: 4px solid #2196f3;
}
.mat-tab-group.mat-primary.xpo-VerticalTabs .mat-tab-header .mat-tab-label-container .mat-tab-labels .mat-tab-label:hover:not(.mat-tab-disabled):not(:first-child) .mat-tab-label-content {
  margin-bottom: 0;
  margin-left: -3px;
}
/*
    1. Moves the select to sit right under the trigger
*/
/*
** ==== Basic colors ====
*/
/*
** ==== XPO Brand Color Palette ====
*/
/*
** ==== Main Color Palette ====
*/
/*
** ==== DEPRECATED COLORS ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
/*
** ==== COLORS APPLIED ====
*/
/*
** ==== Typography ====
*/
/*
** ==== SNACKBAR DEPRECATED VARIABLES ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
.flex--stretch {
  flex: 1;
}
.xpo-Footer {
  width: 100%;
}
.xpo-Footer-navbar > :nth-child(n) {
  margin: 0 12px;
}
.xpo-Footer-navbar > :nth-child(n):last-child {
  margin-right: 16px;
}
.xpo-Footer-bold-text {
  font-weight: 700;
}
.xpo-Footer--sticky {
  bottom: 0;
  position: sticky;
}
/*
** ==== Basic colors ====
*/
/*
** ==== XPO Brand Color Palette ====
*/
/*
** ==== Main Color Palette ====
*/
/*
** ==== DEPRECATED COLORS ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
/*
** ==== COLORS APPLIED ====
*/
/*
** ==== Typography ====
*/
/*
** ==== SNACKBAR DEPRECATED VARIABLES ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
.flex--stretch {
  flex: 1;
}
/*
** ==== Basic colors ====
*/
/*
** ==== XPO Brand Color Palette ====
*/
/*
** ==== Main Color Palette ====
*/
/*
** ==== DEPRECATED COLORS ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
/*
** ==== COLORS APPLIED ====
*/
/*
** ==== Typography ====
*/
/*
** ==== SNACKBAR DEPRECATED VARIABLES ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
.flex--stretch {
  flex: 1;
}
.mat-elevation-z0 {
  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z1 {
  box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z2 {
  box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z3 {
  box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z4 {
  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z5 {
  box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z6 {
  box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z7 {
  box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z8 {
  box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z9 {
  box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z10 {
  box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z11 {
  box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z12 {
  box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z13 {
  box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z14 {
  box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z15 {
  box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z16 {
  box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z17 {
  box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z18 {
  box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z19 {
  box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z20 {
  box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z21 {
  box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z22 {
  box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z23 {
  box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z24 {
  box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);
}
.mat-badge-content {
  font-weight: 600;
  font-size: 12px;
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-badge-small .mat-badge-content {
  font-size: 9px;
}
.mat-badge-large .mat-badge-content {
  font-size: 24px;
}
.mat-h1, .mat-headline, .mat-typography h1 {
  font: 400 24px/32px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
  margin: 0 0 16px;
}
.mat-h2, .mat-title, .mat-typography h2 {
  font: 500 20px/32px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
  margin: 0 0 16px;
}
.mat-h3, .mat-subheading-2, .mat-typography h3 {
  font: 400 16px/28px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
  margin: 0 0 16px;
}
.mat-h4, .mat-subheading-1, .mat-typography h4 {
  font: 400 15px/24px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
  margin: 0 0 16px;
}
.mat-h5, .mat-typography h5 {
  font: 400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;
  margin: 0 0 12px;
}
.mat-h6, .mat-typography h6 {
  font: 400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;
  margin: 0 0 12px;
}
.mat-body-strong, .mat-body-2 {
  font: 500 14px/24px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-body, .mat-body-1, .mat-typography {
  font: 400 14px/20px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-body p, .mat-body-1 p, .mat-typography p {
  margin: 0 0 12px;
}
.mat-small, .mat-caption {
  font: 400 12px/20px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-display-4, .mat-typography .mat-display-4 {
  font: 300 112px/112px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: -0.05em;
  margin: 0 0 56px;
}
.mat-display-3, .mat-typography .mat-display-3 {
  font: 400 56px/56px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: -0.02em;
  margin: 0 0 64px;
}
.mat-display-2, .mat-typography .mat-display-2 {
  font: 400 45px/48px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: -0.005em;
  margin: 0 0 64px;
}
.mat-display-1, .mat-typography .mat-display-1 {
  font: 400 34px/40px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
  margin: 0 0 64px;
}
.mat-bottom-sheet-container {
  font: 400 14px/20px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-button, .mat-raised-button, .mat-icon-button, .mat-stroked-button,
.mat-flat-button, .mat-fab, .mat-mini-fab {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 14px;
  font-weight: 500;
}
.mat-button-toggle {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-card {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-card-title {
  font-size: 24px;
  font-weight: 500;
}
.mat-card-header .mat-card-title {
  font-size: 20px;
}
.mat-card-subtitle,
.mat-card-content {
  font-size: 14px;
}
.mat-checkbox {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-checkbox-layout .mat-checkbox-label {
  line-height: 24px;
}
.mat-chip {
  font-size: 14px;
  font-weight: 500;
}
.mat-chip .mat-chip-trailing-icon.mat-icon,
.mat-chip .mat-chip-remove.mat-icon {
  font-size: 18px;
}
.mat-table {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-header-cell {
  font-size: 12px;
  font-weight: 500;
}
.mat-cell, .mat-footer-cell {
  font-size: 14px;
}
.mat-calendar {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-calendar-body {
  font-size: 13px;
}
.mat-calendar-body-label,
.mat-calendar-period-button {
  font-size: 14px;
  font-weight: 500;
}
.mat-calendar-table-header th {
  font-size: 11px;
  font-weight: 400;
}
.mat-dialog-title {
  font: 500 20px/32px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-expansion-panel-header {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 15px;
  font-weight: 400;
}
.mat-expansion-panel-content {
  font: 400 14px/20px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-form-field {
  font-size: inherit;
  font-weight: 400;
  line-height: 1.125;
  font-family: Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-form-field-wrapper {
  padding-bottom: 1.34375em;
}
.mat-form-field-prefix .mat-icon,
.mat-form-field-suffix .mat-icon {
  font-size: 150%;
  line-height: 1.125;
}
.mat-form-field-prefix .mat-icon-button,
.mat-form-field-suffix .mat-icon-button {
  height: 1.5em;
  width: 1.5em;
}
.mat-form-field-prefix .mat-icon-button .mat-icon,
.mat-form-field-suffix .mat-icon-button .mat-icon {
  height: 1.125em;
  line-height: 1.125;
}
.mat-form-field-infix {
  padding: 0.5em 0;
  border-top: 0.84375em solid transparent;
}
.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,
.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {
  transform: translateY(-1.34375em) scale(0.75);
  width: 133.33333333%;
}
.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper
.mat-form-field-label {
  transform: translateY(-1.34374em) scale(0.75);
  width: 133.33334333%;
}
.mat-form-field-label-wrapper {
  top: -0.84375em;
  padding-top: 0.84375em;
}
.mat-form-field-label {
  top: 1.34375em;
}
.mat-form-field-underline {
  bottom: 1.34375em;
}
.mat-form-field-subscript-wrapper {
  font-size: 75%;
  margin-top: 0.66666667em;
  top: calc(100% - 1.79166667em);
}
.mat-form-field-appearance-legacy .mat-form-field-wrapper {
  padding-bottom: 1.25em;
}
.mat-form-field-appearance-legacy .mat-form-field-infix {
  padding: 0.4375em 0;
}
.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,
.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {
  transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);
  -ms-transform: translateY(-1.28125em) scale(0.75);
  width: 133.33333333%;
}
.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper
.mat-form-field-label {
  transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);
  -ms-transform: translateY(-1.28124em) scale(0.75);
  width: 133.33334333%;
}
.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper
.mat-form-field-label {
  transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);
  -ms-transform: translateY(-1.28123em) scale(0.75);
  width: 133.33335333%;
}
.mat-form-field-appearance-legacy .mat-form-field-label {
  top: 1.28125em;
}
.mat-form-field-appearance-legacy .mat-form-field-underline {
  bottom: 1.25em;
}
.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper {
  margin-top: 0.54166667em;
  top: calc(100% - 1.66666667em);
}
@media print {
  .mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,
  .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {
    transform: translateY(-1.28122em) scale(0.75);
  }
  .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper
.mat-form-field-label {
    transform: translateY(-1.28121em) scale(0.75);
  }
  .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper
.mat-form-field-label {
    transform: translateY(-1.2812em) scale(0.75);
  }
}
.mat-form-field-appearance-fill .mat-form-field-infix {
  padding: 0.25em 0 0.75em 0;
}
.mat-form-field-appearance-fill .mat-form-field-label {
  top: 1.09375em;
  margin-top: -0.5em;
}
.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,
.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {
  transform: translateY(-0.59375em) scale(0.75);
  width: 133.33333333%;
}
.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper
.mat-form-field-label {
  transform: translateY(-0.59374em) scale(0.75);
  width: 133.33334333%;
}
.mat-form-field-appearance-outline .mat-form-field-infix {
  padding: 1em 0 1em 0;
}
.mat-form-field-appearance-outline .mat-form-field-label {
  top: 1.84375em;
  margin-top: -0.25em;
}
.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,
.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {
  transform: translateY(-1.59375em) scale(0.75);
  width: 133.33333333%;
}
.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper
.mat-form-field-label {
  transform: translateY(-1.59374em) scale(0.75);
  width: 133.33334333%;
}
.mat-grid-tile-header,
.mat-grid-tile-footer {
  font-size: 14px;
}
.mat-grid-tile-header .mat-line,
.mat-grid-tile-footer .mat-line {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  box-sizing: border-box;
}
.mat-grid-tile-header .mat-line:nth-child(n+2),
.mat-grid-tile-footer .mat-line:nth-child(n+2) {
  font-size: 12px;
}
input.mat-input-element {
  margin-top: -0.0625em;
}
.mat-menu-item {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 14px;
  font-weight: 400;
}
.mat-paginator,
.mat-paginator-page-size .mat-select-trigger {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 12px;
}
.mat-radio-button {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-select {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-select-trigger {
  height: 1.125em;
}
.mat-slide-toggle-content {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-slider-thumb-label-text {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 12px;
  font-weight: 500;
}
.mat-stepper-vertical, .mat-stepper-horizontal {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-step-label {
  font-size: 14px;
  font-weight: 400;
}
.mat-step-sub-label-error {
  font-weight: normal;
}
.mat-step-label-error {
  font-size: 14px;
}
.mat-step-label-selected {
  font-size: 14px;
  font-weight: 500;
}
.mat-tab-group {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-tab-label, .mat-tab-link {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 14px;
  font-weight: 500;
}
.mat-toolbar,
.mat-toolbar h1,
.mat-toolbar h2,
.mat-toolbar h3,
.mat-toolbar h4,
.mat-toolbar h5,
.mat-toolbar h6 {
  font: 500 20px/32px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
  margin: 0;
}
.mat-tooltip {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 10px;
  padding-top: 6px;
  padding-bottom: 6px;
}
.mat-tooltip-handset {
  font-size: 14px;
  padding-top: 8px;
  padding-bottom: 8px;
}
.mat-list-item {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-list-option {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-list-base .mat-list-item {
  font-size: 16px;
}
.mat-list-base .mat-list-item .mat-line {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  box-sizing: border-box;
}
.mat-list-base .mat-list-item .mat-line:nth-child(n+2) {
  font-size: 14px;
}
.mat-list-base .mat-list-option {
  font-size: 16px;
}
.mat-list-base .mat-list-option .mat-line {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  box-sizing: border-box;
}
.mat-list-base .mat-list-option .mat-line:nth-child(n+2) {
  font-size: 14px;
}
.mat-list-base .mat-subheader {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 14px;
  font-weight: 500;
}
.mat-list-base[dense] .mat-list-item {
  font-size: 12px;
}
.mat-list-base[dense] .mat-list-item .mat-line {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  box-sizing: border-box;
}
.mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2) {
  font-size: 12px;
}
.mat-list-base[dense] .mat-list-option {
  font-size: 12px;
}
.mat-list-base[dense] .mat-list-option .mat-line {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  box-sizing: border-box;
}
.mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2) {
  font-size: 12px;
}
.mat-list-base[dense] .mat-subheader {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 12px;
  font-weight: 500;
}
.mat-option {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 16px;
}
.mat-optgroup-label {
  font: 500 14px/24px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-simple-snackbar {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 14px;
}
.mat-simple-snackbar-action {
  line-height: 1;
  font-family: inherit;
  font-size: inherit;
  font-weight: 500;
}
.mat-tree {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-tree-node,
.mat-nested-tree-node {
  font-weight: 400;
  font-size: 14px;
}
.mat-ripple {
  overflow: hidden;
  position: relative;
}
.mat-ripple:not(:empty) {
  transform: translateZ(0);
}
.mat-ripple.mat-ripple-unbounded {
  overflow: visible;
}
.mat-ripple-element {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  transition: opacity, transform 0ms cubic-bezier(0, 0, 0.2, 1);
  transform: scale(0);
}
.cdk-high-contrast-active .mat-ripple-element {
  display: none;
}
.cdk-visually-hidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  outline: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
}
.cdk-overlay-container, .cdk-global-overlay-wrapper {
  pointer-events: none;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
}
.cdk-overlay-container {
  position: fixed;
  z-index: 1000;
}
.cdk-overlay-container:empty {
  display: none;
}
.cdk-global-overlay-wrapper {
  display: flex;
  position: absolute;
  z-index: 1000;
}
.cdk-overlay-pane {
  position: absolute;
  pointer-events: auto;
  box-sizing: border-box;
  z-index: 1000;
  display: flex;
  max-width: 100%;
  max-height: 100%;
}
.cdk-overlay-backdrop {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  pointer-events: auto;
  -webkit-tap-highlight-color: transparent;
  transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);
  opacity: 0;
}
.cdk-overlay-backdrop.cdk-overlay-backdrop-showing {
  opacity: 1;
}
.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing {
  opacity: 0.6;
}
.cdk-overlay-dark-backdrop {
  background: rgba(0, 0, 0, 0.32);
}
.cdk-overlay-transparent-backdrop, .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing {
  opacity: 0;
}
.cdk-overlay-connected-position-bounding-box {
  position: absolute;
  z-index: 1000;
  display: flex;
  flex-direction: column;
  min-width: 1px;
  min-height: 1px;
}
.cdk-global-scrollblock {
  position: fixed;
  width: 100%;
  overflow-y: scroll;
}
.mat-ripple-element {
  background-color: rgba(0, 0, 0, 0.1);
}
.mat-option {
  color: rgba(0, 0, 0, 0.87);
}
.mat-option:hover:not(.mat-option-disabled), .mat-option:focus:not(.mat-option-disabled) {
  background: rgba(0, 0, 0, 0.04);
}
.mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) {
  background: rgba(0, 0, 0, 0.04);
}
.mat-option.mat-active {
  background: rgba(0, 0, 0, 0.04);
  color: rgba(0, 0, 0, 0.87);
}
.mat-option.mat-option-disabled {
  color: rgba(0, 0, 0, 0.38);
}
.mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {
  color: #0868ac;
}
.mat-accent .mat-option.mat-selected:not(.mat-option-disabled) {
  color: #4a4a4a;
}
.mat-warn .mat-option.mat-selected:not(.mat-option-disabled) {
  color: #d50000;
}
.mat-optgroup-label {
  color: rgba(0, 0, 0, 0.54);
}
.mat-optgroup-disabled .mat-optgroup-label {
  color: rgba(0, 0, 0, 0.38);
}
.mat-pseudo-checkbox {
  color: rgba(0, 0, 0, 0.54);
}
.mat-pseudo-checkbox::after {
  color: #f3f3f3;
}
.mat-pseudo-checkbox-disabled {
  color: #b0b0b0;
}
.mat-primary .mat-pseudo-checkbox-checked,
.mat-primary .mat-pseudo-checkbox-indeterminate {
  background: #0868ac;
}
.mat-pseudo-checkbox-checked,
.mat-pseudo-checkbox-indeterminate,
.mat-accent .mat-pseudo-checkbox-checked,
.mat-accent .mat-pseudo-checkbox-indeterminate {
  background: #4a4a4a;
}
.mat-warn .mat-pseudo-checkbox-checked,
.mat-warn .mat-pseudo-checkbox-indeterminate {
  background: #d50000;
}
.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,
.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled {
  background: #b0b0b0;
}
.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {
  background-color: #4a4a4a;
}
.mat-slide-toggle.mat-checked .mat-slide-toggle-bar {
  background-color: rgba(74, 74, 74, 0.54);
}
.mat-slide-toggle.mat-checked .mat-ripple-element {
  background-color: #4a4a4a;
}
.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb {
  background-color: #0868ac;
}
.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar {
  background-color: rgba(8, 104, 172, 0.54);
}
.mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element {
  background-color: #0868ac;
}
.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb {
  background-color: #d50000;
}
.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar {
  background-color: rgba(213, 0, 0, 0.54);
}
.mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element {
  background-color: #d50000;
}
.mat-slide-toggle:not(.mat-checked) .mat-ripple-element {
  background-color: black;
}
.mat-slide-toggle-thumb {
  box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);
  background-color: #fafafa;
}
.mat-slide-toggle-bar {
  background-color: rgba(0, 0, 0, 0.38);
}
.mat-theme-loaded-marker {
  display: none;
}
.xpo-Card {
  background: white;
  border: 1px solid rgba(0, 0, 0, 0.12);
  color: rgba(0, 0, 0, 0.87);
}
.xpo-Button,
.xpo-Button .mat-button-toggle-button {
  text-transform: uppercase;
}
[mat-flat-button].mat-flat-button,
[mat-stroked-button].mat-stroked-button {
  border-radius: 2px;
  font-size: 1.143rem;
  font-weight: 500;
  height: 40px;
  line-height: 24px;
  padding: 8px 20px;
  min-width: auto;
  transition: color 200ms ease, background-color 200ms ease, border-color 200ms ease;
}
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard {
  height: 40px;
}
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle,
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {
  border-top-width: 2px;
}
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-button-toggle-appearance-standard.mat-button-toggle,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-button-toggle-button,
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard.mat-button-toggle,
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard .mat-button-toggle-button {
  border-width: 2px;
}
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-button-toggle-button,
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard .mat-button-toggle-button {
  font-size: 1.143rem;
  height: 100%;
}
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard {
  border-width: 2px;
}
mat-button-toggle-group.mat-button-toggle-group {
  border-width: 0;
}
[mat-flat-button].mat-flat-button {
  border-style: solid;
  border-width: 2px;
  box-shadow: none !important;
  color: #ffffff;
}
[mat-flat-button].mat-flat-button {
  background-color: #1976d2;
  border-color: #1976d2;
}
[mat-flat-button].mat-flat-button:hover {
  background-color: #2196f3;
  border-color: #2196f3;
}
[mat-flat-button].mat-flat-button:focus, [mat-flat-button].mat-flat-button:active {
  background-color: #0d47a1;
  border-color: #0d47a1;
}
[mat-flat-button].mat-flat-button[disabled], [mat-flat-button].mat-flat-button[disabled]:active, [mat-flat-button].mat-flat-button[disabled]:hover, [mat-flat-button].mat-flat-button[disabled]:focus {
  background-color: #d8d8d8;
  border-color: #d8d8d8;
  color: #ffffff;
  cursor: not-allowed;
}
.mat-stroked-button {
  background-color: #ffffff;
  border-color: #1976d2;
  color: #0d47a1;
}
.mat-stroked-button:hover {
  background-color: #e4effa;
  border-color: #1976d2;
  color: #1976d2;
}
.mat-stroked-button:focus, .mat-stroked-button:active {
  background-color: #e4effa;
  border-color: #2196f3;
  color: #2196f3;
}
.mat-stroked-button[disabled], .mat-stroked-button[disabled]:active, .mat-stroked-button[disabled]:hover, .mat-stroked-button[disabled]:focus {
  background-color: #fafafa;
  border-color: #bdbdbd;
  color: #bdbdbd;
  cursor: not-allowed;
}
[mat-flat-button].mat-flat-button,
[mat-stroked-button].mat-stroked-button {
  align-items: center;
  display: inline-flex;
  justify-content: center;
}
[mat-flat-button].mat-flat-button.xpo-SmallButton,
[mat-stroked-button].mat-stroked-button.xpo-SmallButton {
  border-width: 1px;
  font-size: 1rem;
  height: 32px;
  padding: 4px 20px;
}
[mat-flat-button].mat-flat-button.xpo-SmallButton .mat-icon,
[mat-stroked-button].mat-stroked-button.xpo-SmallButton .mat-icon {
  font-size: 20px;
}
[mat-flat-button].mat-flat-button.xpo-SmallButton .mat-button-wrapper,
[mat-stroked-button].mat-stroked-button.xpo-SmallButton .mat-button-wrapper {
  line-height: 28px;
}
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard.xpo-SmallButton,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard.xpo-SmallButton {
  height: 32px;
}
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard.xpo-SmallButton .mat-button-toggle, mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard.xpo-SmallButton.mat-button-toggle,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard.xpo-SmallButton .mat-button-toggle,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard.xpo-SmallButton.mat-button-toggle {
  border-width: 1px;
}
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard.xpo-SmallButton .mat-button-toggle .mat-button-toggle-button, mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard.xpo-SmallButton.mat-button-toggle .mat-button-toggle-button,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard.xpo-SmallButton .mat-button-toggle .mat-button-toggle-button,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard.xpo-SmallButton.mat-button-toggle .mat-button-toggle-button {
  font-size: 1rem;
  height: 100%;
}
[mat-flat-button].mat-flat-button.xpo-LargeButton,
[mat-stroked-button].mat-stroked-button.xpo-LargeButton,
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard.xpo-LargeButton,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard.xpo-LargeButton {
  font-size: 1.428rem;
  font-weight: 500;
  height: 56px;
  line-height: normal;
  padding: 16px 20px;
}
[mat-flat-button].mat-flat-button.xpo-LargeButton .mat-button-toggle-button,
[mat-stroked-button].mat-stroked-button.xpo-LargeButton .mat-button-toggle-button,
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard.xpo-LargeButton .mat-button-toggle-button,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard.xpo-LargeButton .mat-button-toggle-button {
  font-size: 1.285rem;
  height: 100%;
}
.xpo-ActionButton {
  background-color: #ffffff;
  border: 1px solid #d8d8d8;
  color: #4a4a4a;
  height: 32px;
  width: 32px;
  display: inline-flex;
  justify-content: center;
  align-items: center;
}
.xpo-ActionButton > .mat-icon {
  width: 20px;
  height: 20px;
  font-size: 20px;
}
.xpo-ActionButton:focus, .xpo-ActionButton:active {
  border: 1px solid #d8d8d8;
  color: #1976d2;
  outline: none;
}
.xpo-ActionButton:hover {
  color: #212121;
}
.xpo-ActionButton[disabled], .xpo-ActionButton[disabled]:active, .xpo-ActionButton[disabled]:hover, .xpo-ActionButton[disabled]:focus {
  background-color: #ffffff;
  border-color: #d8d8d8;
  color: #bdbdbd;
  cursor: not-allowed;
}
.mat-button-focus-overlay,
.mat-button-toggle-focus-overlay {
  opacity: 0 !important;
}
.cdk-overlay-container .cdk-global-overlay-wrapper.xpo-ApplicationSwitcher-dialog-wrapper {
  height: auto;
  max-height: 100%;
}
.cdk-overlay-container .cdk-global-overlay-wrapper.xpo-ApplicationSwitcher-dialog-wrapper .cdk-overlay-pane.xpo-ApplicationSwitcher-dialog {
  width: 100%;
  background-color: #ffffff;
  border-bottom: solid 1px #d8d8d8;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-height: 100px;
}
.xpo-ApplicationSwitcherContent {
  overflow: auto;
}
.xpo-ApplicationSwitcherContent .xpo-ApplicationCategory .xpo-Application:last-of-type .xpo-Application-content:hover {
  border-bottom: none;
}
.mat-autocomplete-panel {
  background: white;
  color: rgba(0, 0, 0, 0.87);
}
.mat-autocomplete-panel:not([class*='mat-elevation-z']) {
  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
}
.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover) {
  background: white;
}
.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled) {
  color: rgba(0, 0, 0, 0.87);
}
.mat-autocomplete-panel-above:nth-child(1) {
  border-top: 1px solid #d8d8d8;
}
.mat-autocomplete-panel-above .mat-autocomplete-panel.mat-autocomplete-visible {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
.mat-autocomplete-panel-above .mat-autocomplete-panel.mat-autocomplete-visible:last-of-type {
  border-bottom: 0;
}
.mat-form-field-suffix .mat-icon {
  cursor: pointer;
}
.mat-autocomplete-panel.mat-autocomplete-visible {
  border: 1px solid #d8d8d8;
  border-radius: 0;
  border-top: none;
  box-shadow: none;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option {
  border-bottom: 1px solid #d8d8d8;
  color: #000000;
  font-size: 14px;
  height: 30px;
  line-height: 1.429rem;
  padding: 0 8px;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option:hover {
  background-color: #e4effa;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option.mat-active {
  background: #e4effa;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option:last-of-type {
  border-bottom: 0;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option .mat-option-text {
  align-items: center;
  display: inline-flex;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option .xpo-Icon {
  margin-right: 4px;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option.xpo-Option--twoLines {
  height: 45px;
  line-height: 1.429rem;
  padding: 6px 8px;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option.xpo-Option--twoLines .mat-option-text {
  align-items: center;
  display: flex;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option.xpo-Option--twoLines .mat-option-text .xpo-Select-twoLinesContainer {
  flex-grow: 1;
  margin-left: 0;
  overflow: hidden;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option.xpo-Option--twoLines .mat-option-text .xpo-Select-twoLinesContainer span {
  overflow: hidden;
  text-overflow: ellipsis;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option.xpo-Option-hideDivider:not(:last-of-type) {
  border-bottom: none;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option .mat-icon {
  margin-right: 0;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option .xpo-icon {
  margin-right: 4px;
  vertical-align: middle;
}
.mat-autocomplete-panel.mat-autocomplete-visible .xpo-Select-twoColumnsContainer {
  display: grid;
  grid-template-columns: 20% 80%;
}
.mat-autocomplete-panel.mat-autocomplete-visible .xpo-Select-twoColumnsContainer span {
  flex: none;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mat-autocomplete-panel.mat-autocomplete-visible .xpo-Select-twoColumnsContainer span:first-of-type {
  margin-right: 4px;
}
.mat-autocomplete-panel.mat-autocomplete-visible .xpo-Select-twoColumnsContainer span:last-of-type {
  margin-left: 4px;
}
.mat-autocomplete-panel.mat-autocomplete-visible .xpo-Select-threeColumnsContainer {
  display: grid;
  grid-template-columns: 33% 34% 33%;
}
.mat-autocomplete-panel.mat-autocomplete-visible .xpo-Select-threeColumnsContainer span {
  margin: 0 4px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mat-autocomplete-panel.mat-autocomplete-visible .xpo-Select-threeColumnsContainer span:first-of-type {
  margin-left: 0;
}
.mat-autocomplete-panel.mat-autocomplete-visible .xpo-Select-threeColumnsContainer span:last-of-type {
  margin-right: 0;
}
.mat-icon.mat-badge-above:not(.xpo-Badge--important) {
  align-items: center;
  display: inline-flex;
  font-size: 20px;
  height: auto;
  width: auto;
}
.mat-icon.mat-badge-medium {
  color: #4a4a4a;
}
.mat-icon.mat-badge-medium .mat-badge-content {
  align-items: center;
  background-color: #4a4a4a;
  border: 1px solid #ffffff;
  border-radius: 2px;
  display: flex;
  font-size: 10px;
  font-weight: 600;
  height: 16px;
  justify-content: center;
  line-height: 16px;
  padding: 2px 3px;
  width: auto;
}
.mat-icon.mat-badge-medium.mat-badge-above .mat-badge-content {
  top: -9px;
}
.mat-icon.mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: -15px;
}
.mat-icon.mat-badge-medium.xpo-Badge--important.mat-badge-above .mat-badge-content {
  top: -8px;
}
.mat-icon.mat-badge-medium.xpo-Badge--important.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: -28px;
}
.mat-icon.mat-badge-medium.xpo-Badge--important .mat-badge-content {
  background-color: #cc0000;
  border-radius: 10px;
  font-weight: 600;
  height: auto;
  line-height: 10px;
  padding: 4px 8px;
  width: auto;
}
.mat-icon.mat-badge-medium.xpo-BadgeDot .mat-badge-content {
  border: none;
  border-radius: 10px;
  height: 10px;
  width: 10px;
}
.mat-icon.mat-badge-medium.xpo-BadgeDot.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: -14px;
}
.mat-icon.mat-badge-medium.xpo-BadgeDot.mat-badge-above .mat-badge-content {
  top: -1px;
}
.mat-icon.mat-badge-medium.xpo-BadgeDot--warning .mat-badge-content {
  background-color: #fbc02d;
}
.mat-icon.mat-badge-medium.xpo-BadgeDot--success .mat-badge-content {
  background-color: #4caf50;
}
.mat-icon.mat-badge-medium.xpo-BadgeDot--info .mat-badge-content {
  background-color: #0091ea;
}
.mat-icon.mat-badge-medium.xpo-BadgeDot--info .mat-badge-content {
  background-color: #0091ea;
}
.mat-icon.mat-badge-medium.xpo-BadgeDot--important .mat-badge-content {
  background-color: #d32f2f;
}
.mat-button-toggle-standalone,
.mat-button-toggle-group {
  box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
}
.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,
.mat-button-toggle-group-appearance-standard {
  box-shadow: none;
}
.mat-button-toggle {
  color: rgba(0, 0, 0, 0.38);
}
.mat-button-toggle .mat-button-toggle-focus-overlay {
  background-color: rgba(0, 0, 0, 0.12);
}
.mat-button-toggle-appearance-standard {
  color: rgba(0, 0, 0, 0.87);
  background: white;
}
.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {
  background-color: black;
}
.mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {
  border-left: solid 1px rgba(0, 0, 0, 0.12);
}
[dir='rtl'] .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {
  border-left: none;
  border-right: solid 1px rgba(0, 0, 0, 0.12);
}
.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {
  border-left: none;
  border-right: none;
  border-top: solid 1px rgba(0, 0, 0, 0.12);
}
.mat-button-toggle-checked {
  background-color: #e0e0e0;
  color: rgba(0, 0, 0, 0.54);
}
.mat-button-toggle-checked.mat-button-toggle-appearance-standard {
  color: rgba(0, 0, 0, 0.87);
}
.mat-button-toggle-disabled {
  color: rgba(0, 0, 0, 0.26);
  background-color: #eeeeee;
}
.mat-button-toggle-disabled.mat-button-toggle-appearance-standard {
  background: white;
}
.mat-button-toggle-disabled.mat-button-toggle-checked {
  background-color: #bdbdbd;
}
.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,
.mat-button-toggle-group-appearance-standard {
  border: solid 1px rgba(0, 0, 0, 0.12);
}
.mat-button-toggle-appearance-standard .mat-button-toggle-label-content {
  line-height: 48px;
}
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-standalone.mat-button-toggle-appearance-standard, mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-group-appearance-standard {
  border-radius: 2px;
}
.mat-button-toggle-standalone:not(:last-child) {
  margin-right: 2px;
}
.mat-button-toggle.mat-button-toggle-standalone,
.mat-button-toggle {
  background-color: #ffffff;
  border-color: #1976d2;
  border-style: solid;
  color: #1976d2;
  font-weight: 500;
  transition: color 200ms ease, background-color 200ms ease;
}
.mat-button-toggle.mat-button-toggle-standalone:hover, .mat-button-toggle.mat-button-toggle-standalone:focus,
.mat-button-toggle:hover,
.mat-button-toggle:focus {
  background-color: #e4effa;
}
.mat-button-toggle.mat-button-toggle-standalone:active,
.mat-button-toggle:active {
  background-color: #1976d2;
  color: #ffffff;
}
.mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-checked,
.mat-button-toggle.mat-button-toggle-checked {
  background-color: #1976d2;
  color: #ffffff;
}
.mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-disabled,
.mat-button-toggle.mat-button-toggle-disabled {
  background-color: #f6f6f6;
  color: #bdbdbd;
  outline: none;
}
.mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-disabled .mat-button-toggle-button:hover,
.mat-button-toggle.mat-button-toggle-disabled .mat-button-toggle-button:hover {
  cursor: not-allowed;
}
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-button-toggle-label-content, mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard .mat-button-toggle-label-content,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-button-toggle-label-content,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-group-appearance-standard .mat-button-toggle-label-content {
  display: flex;
  line-height: inherit;
  padding: 4px 20px;
}
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-button-toggle-label-content > .mat-icon, mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard .mat-button-toggle-label-content > .mat-icon,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-button-toggle-label-content > .mat-icon,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-group-appearance-standard .mat-button-toggle-label-content > .mat-icon {
  width: 20px;
  height: 20px;
  font-size: 20px;
}
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-standalone.mat-button-toggle-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle, mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-standalone.mat-button-toggle-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {
  border-top-color: #1976d2;
  border-top-style: solid;
}
.mat-button-toggle-standalone.mat-button-toggle-disabled.mat-button-toggle-appearance-standard {
  border-color: #bdbdbd;
}
.mat-checkbox-frame {
  border-color: rgba(0, 0, 0, 0.54);
}
.mat-checkbox-checkmark {
  fill: #f3f3f3;
}
.mat-checkbox-checkmark-path {
  stroke: #f3f3f3 !important;
}
.mat-checkbox-mixedmark {
  background-color: #f3f3f3;
}
.mat-checkbox-indeterminate.mat-primary .mat-checkbox-background, .mat-checkbox-checked.mat-primary .mat-checkbox-background {
  background-color: #0868ac;
}
.mat-checkbox-indeterminate.mat-accent .mat-checkbox-background, .mat-checkbox-checked.mat-accent .mat-checkbox-background {
  background-color: #4a4a4a;
}
.mat-checkbox-indeterminate.mat-warn .mat-checkbox-background, .mat-checkbox-checked.mat-warn .mat-checkbox-background {
  background-color: #d50000;
}
.mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background, .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {
  background-color: #b0b0b0;
}
.mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame {
  border-color: #b0b0b0;
}
.mat-checkbox-disabled .mat-checkbox-label {
  color: rgba(0, 0, 0, 0.54);
}
.mat-checkbox .mat-ripple-element {
  background-color: black;
}
.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,
.mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element {
  background: #0868ac;
}
.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,
.mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element {
  background: #4a4a4a;
}
.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,
.mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element {
  background: #d50000;
}
.mat-checkbox-background {
  transition: none !important;
}
.mat-checkbox-indeterminate.mat-accent .mat-checkbox-inner-container {
  border: 1px solid #000000;
  border-radius: 2px;
}
.mat-checkbox-indeterminate.mat-accent.mat-checkbox-disabled .mat-checkbox-inner-container {
  border: 1px solid #bdbdbd;
}
.mat-checkbox-indeterminate.mat-accent.mat-checkbox-disabled .mat-checkbox-inner-container .mat-checkbox-frame {
  border: 1px solid transparent;
}
.mat-checkbox-indeterminate.mat-accent .mat-checkbox-background {
  background: #000000;
  border: 2px solid #000000;
  height: 8px;
  margin: 3px 3px;
  padding: 1px 2px 3px 1px;
  width: 8px;
}
.mat-checkbox {
  border: 1px solid transparent;
  display: inline-flex;
  margin: 3px 4px;
  padding: 0 4px;
}
.mat-checkbox.cdk-keyboard-focused {
  border: 1px dashed #d8d8d8;
}
.mat-checkbox.xpo-CheckboxGroup-selectAll {
  margin: 3px 8px;
}
.mat-checkbox .mat-checkbox-layout {
  align-items: center;
}
.mat-checkbox.mat-checkbox-label-before .mat-checkbox-inner-container {
  margin-left: 4px;
}
.mat-checkbox .mat-checkbox-inner-container {
  align-self: flex-start;
  margin: 4px 4px 0 0;
}
.mat-checkbox-ripple {
  display: none;
}
.mat-checkbox-background .mat-checkbox-checkmark-path {
  stroke-width: 3.13333px;
}
.mat-checkbox .mat-checkbox-frame {
  border: none;
}
.mat-checkbox.mat-checkbox-disabled {
  cursor: not-allowed;
}
.mat-checkbox.mat-checkbox-disabled .mat-checkbox-label {
  color: #333333;
}
.mat-checkbox.mat-checkbox-disabled .mat-checkbox-mixedmark {
  background-color: #bdbdbd;
}
.mat-checkbox.mat-checkbox-disabled .mat-checkbox-checkmark {
  fill: #f6f6f6;
}
.mat-checkbox.mat-checkbox-disabled .mat-checkbox-background {
  background-color: #f6f6f6;
  border: 1px solid #bdbdbd;
}
.mat-checkbox-checked .mat-checkbox.mat-checkbox-disabled .mat-checkbox-background {
  background-color: #bdbdbd;
}
.mat-checkbox.mat-checkbox-disabled .mat-checkbox-background .mat-checkbox-checkmark-path {
  stroke: #ffffff !important;
}
.mat-checkbox.mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {
  background-color: #d8d8d8;
}
.mat-checkbox.mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-mixedmark {
  background-color: #f6f6f6;
}
.mat-checkbox.mat-checkbox-disabled .mat-checkbox-frame {
  border-color: #d8d8d8;
}
.mat-checkbox.mat-checkbox-checked .mat-checkbox-background {
  background-color: #000000;
}
.mat-checkbox.mat-checkbox-checked.mat-checkbox-disabled .mat-checkbox-background {
  background-color: #bdbdbd;
}
.mat-checkbox:not(.mat-checkbox-disabled) .mat-checkbox-inner-container:hover {
  background-color: transparent;
}
.mat-checkbox:not(.mat-checkbox-indeterminate) .mat-checkbox-frame {
  border: 1px solid #d8d8d8;
}
.mat-checkbox.mat-checkbox-indeterminate .mat-checkbox-background {
  background-color: #000000;
}
.mat-chip.mat-standard-chip {
  background-color: #e0e0e0;
  color: rgba(0, 0, 0, 0.87);
}
.mat-chip.mat-standard-chip .mat-chip-remove {
  color: rgba(0, 0, 0, 0.87);
  opacity: 0.4;
}
.mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {
  box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);
}
.mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover {
  opacity: 0.54;
}
.mat-chip.mat-standard-chip.mat-chip-disabled {
  opacity: 0.4;
}
.mat-chip.mat-standard-chip::after {
  background: black;
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary {
  background-color: #0868ac;
  color: white;
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove {
  color: white;
  opacity: 0.4;
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element {
  background-color: rgba(255, 255, 255, 0.1);
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn {
  background-color: #d50000;
  color: white;
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove {
  color: white;
  opacity: 0.4;
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element {
  background-color: rgba(255, 255, 255, 0.1);
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent {
  background-color: #4a4a4a;
  color: white;
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove {
  color: white;
  opacity: 0.4;
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element {
  background-color: rgba(255, 255, 255, 0.1);
}
mat-chip.mat-chip {
  font-weight: 500;
  font-size: 1rem;
  line-height: 24px;
  min-height: 24px;
}
mat-chip.mat-chip .mat-icon {
  height: 1rem;
  width: 1rem;
}
mat-chip.mat-chip.xpo-Chip--small {
  font-size: 0.875rem;
  line-height: 16px;
  min-height: 16px;
}
mat-chip.mat-chip.xpo-Chip--small .mat-icon {
  height: 0.875rem;
  width: 0.875rem;
}
mat-chip.mat-chip.mat-standard-chip {
  background-color: #d8d8d8;
  border-radius: 16px;
  padding-left: 8px;
  padding-right: 8px;
}
mat-chip.mat-chip.mat-standard-chip:not(.mat-chip-disabled):focus, mat-chip.mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {
  box-shadow: none;
}
mat-chip.mat-chip.mat-standard-chip::after {
  opacity: 0;
}
mat-chip.mat-chip.mat-standard-chip .mat-icon {
  font-size: inherit;
  margin-right: 4px;
}
mat-chip.mat-chip.mat-standard-chip .mat-icon.mat-chip-trailing-icon {
  height: auto;
  margin-left: 4px;
  margin-right: 0;
  width: auto;
}
mat-chip.mat-chip.xpo-Chip {
  display: flex;
  justify-content: center;
}
mat-chip.mat-chip.xpo-Chip--unread, mat-chip.mat-chip.xpo-Chip--critical {
  background: #d50000;
  color: #ffffff;
}
mat-chip.mat-chip.xpo-Chip--high {
  background: #ff9957;
}
mat-chip.mat-chip.xpo-Chip--medium {
  background: #ffba00;
}
mat-chip.mat-chip.xpo-Chip--green {
  background-color: #11a63b;
  color: #ffffff;
}
mat-chip.mat-chip.xpo-Chip--orange {
  background-color: #ff9957;
}
mat-chip.mat-chip.xpo-Chip--red {
  background-color: #d50000;
  color: #ffffff;
}
mat-chip.mat-chip.xpo-Chip--yellow {
  background-color: #ffba00;
}
mat-chip.mat-chip.xpo-BadgeChip.mat-chip {
  font-size: 10px;
  font-weight: 600;
  min-height: 20px;
}
mat-chip.mat-chip.xpo-BadgeChip--negative.mat-standard-chip.mat-chip {
  background-color: #fceeeb;
  border: 1px solid #fceeeb;
  color: #dd2c00;
}
mat-chip.mat-chip.xpo-BadgeChip--positive.mat-standard-chip.mat-chip {
  background-color: #f1f9f1;
  border: 1px solid #f1f9f1;
  color: #4caf50;
}
.xpo-ContextualHeader-item:first-child::before,
.xpo-HeaderArrow + .xpo-ContextualHeader-item::before {
  display: none;
}
.xpo-ContextualHeader .xpo-HeaderItems:first-child .xpo-HeaderItem:first-child::before,
.xpo-ContextualHeader .xpo-HeaderArrow + .xpo-HeaderItems .xpo-HeaderItem:first-child::before {
  display: none;
}
.mat-calendar-arrow {
  border-top-color: rgba(0, 0, 0, 0.54);
}
.mat-datepicker-toggle,
.mat-datepicker-content .mat-calendar-next-button,
.mat-datepicker-content .mat-calendar-previous-button {
  color: rgba(0, 0, 0, 0.54);
}
.mat-calendar-table-header {
  color: rgba(0, 0, 0, 0.38);
}
.mat-calendar-table-header-divider::after {
  background: rgba(0, 0, 0, 0.12);
}
.mat-calendar-body-label {
  color: rgba(0, 0, 0, 0.54);
}
.mat-calendar-body-cell-content,
.mat-date-range-input-separator {
  color: rgba(0, 0, 0, 0.87);
  border-color: transparent;
}
.mat-calendar-body-disabled > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {
  color: rgba(0, 0, 0, 0.38);
}
.mat-form-field-disabled .mat-date-range-input-separator {
  color: rgba(0, 0, 0, 0.38);
}
.mat-calendar-body-in-preview {
  color: rgba(0, 0, 0, 0.24);
}
.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {
  border-color: rgba(0, 0, 0, 0.38);
}
.mat-calendar-body-disabled > .mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {
  border-color: rgba(0, 0, 0, 0.18);
}
.mat-calendar-body-in-range::before {
  background: rgba(8, 104, 172, 0.2);
}
.mat-calendar-body-comparison-identical,
.mat-calendar-body-in-comparison-range::before {
  background: rgba(249, 171, 0, 0.2);
}
.mat-calendar-body-comparison-bridge-start::before,
[dir='rtl'] .mat-calendar-body-comparison-bridge-end::before {
  background: linear-gradient(to right, rgba(8, 104, 172, 0.2) 50%, rgba(249, 171, 0, 0.2) 50%);
}
.mat-calendar-body-comparison-bridge-end::before,
[dir='rtl'] .mat-calendar-body-comparison-bridge-start::before {
  background: linear-gradient(to left, rgba(8, 104, 172, 0.2) 50%, rgba(249, 171, 0, 0.2) 50%);
}
.mat-calendar-body-in-range > .mat-calendar-body-comparison-identical,
.mat-calendar-body-in-comparison-range.mat-calendar-body-in-range::after {
  background: #a8dab5;
}
.mat-calendar-body-comparison-identical.mat-calendar-body-selected,
.mat-calendar-body-in-comparison-range > .mat-calendar-body-selected {
  background: #46a35e;
}
.mat-calendar-body-selected {
  background-color: #0868ac;
  color: white;
}
.mat-calendar-body-disabled > .mat-calendar-body-selected {
  background-color: rgba(8, 104, 172, 0.4);
}
.mat-calendar-body-today.mat-calendar-body-selected {
  box-shadow: inset 0 0 0 1px white;
}
.mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),
.cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),
.cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {
  background-color: rgba(8, 104, 172, 0.3);
}
.mat-datepicker-content {
  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
  background-color: white;
  color: rgba(0, 0, 0, 0.87);
}
.mat-datepicker-content.mat-accent .mat-calendar-body-in-range::before {
  background: rgba(74, 74, 74, 0.2);
}
.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,
.mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range::before {
  background: rgba(249, 171, 0, 0.2);
}
.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start::before,
.mat-datepicker-content.mat-accent [dir='rtl'] .mat-calendar-body-comparison-bridge-end::before {
  background: linear-gradient(to right, rgba(74, 74, 74, 0.2) 50%, rgba(249, 171, 0, 0.2) 50%);
}
.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end::before,
.mat-datepicker-content.mat-accent [dir='rtl'] .mat-calendar-body-comparison-bridge-start::before {
  background: linear-gradient(to left, rgba(74, 74, 74, 0.2) 50%, rgba(249, 171, 0, 0.2) 50%);
}
.mat-datepicker-content.mat-accent .mat-calendar-body-in-range > .mat-calendar-body-comparison-identical,
.mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range::after {
  background: #a8dab5;
}
.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,
.mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range > .mat-calendar-body-selected {
  background: #46a35e;
}
.mat-datepicker-content.mat-accent .mat-calendar-body-selected {
  background-color: #4a4a4a;
  color: white;
}
.mat-datepicker-content.mat-accent .mat-calendar-body-disabled > .mat-calendar-body-selected {
  background-color: rgba(74, 74, 74, 0.4);
}
.mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected {
  box-shadow: inset 0 0 0 1px white;
}
.mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),
.mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),
.mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {
  background-color: rgba(74, 74, 74, 0.3);
}
.mat-datepicker-content.mat-warn .mat-calendar-body-in-range::before {
  background: rgba(213, 0, 0, 0.2);
}
.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,
.mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range::before {
  background: rgba(249, 171, 0, 0.2);
}
.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start::before,
.mat-datepicker-content.mat-warn [dir='rtl'] .mat-calendar-body-comparison-bridge-end::before {
  background: linear-gradient(to right, rgba(213, 0, 0, 0.2) 50%, rgba(249, 171, 0, 0.2) 50%);
}
.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end::before,
.mat-datepicker-content.mat-warn [dir='rtl'] .mat-calendar-body-comparison-bridge-start::before {
  background: linear-gradient(to left, rgba(213, 0, 0, 0.2) 50%, rgba(249, 171, 0, 0.2) 50%);
}
.mat-datepicker-content.mat-warn .mat-calendar-body-in-range > .mat-calendar-body-comparison-identical,
.mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range::after {
  background: #a8dab5;
}
.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,
.mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range > .mat-calendar-body-selected {
  background: #46a35e;
}
.mat-datepicker-content.mat-warn .mat-calendar-body-selected {
  background-color: #d50000;
  color: white;
}
.mat-datepicker-content.mat-warn .mat-calendar-body-disabled > .mat-calendar-body-selected {
  background-color: rgba(213, 0, 0, 0.4);
}
.mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected {
  box-shadow: inset 0 0 0 1px white;
}
.mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),
.mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),
.mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {
  background-color: rgba(213, 0, 0, 0.3);
}
.mat-datepicker-content-touch {
  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
}
.mat-datepicker-toggle-active {
  color: #0868ac;
}
.mat-datepicker-toggle-active.mat-accent {
  color: #4a4a4a;
}
.mat-datepicker-toggle-active.mat-warn {
  color: #d50000;
}
.mat-date-range-input-inner[disabled] {
  color: rgba(0, 0, 0, 0.38);
}
.xpo-DatePicker .mat-datepicker-toggle {
  display: flex;
}
.xpo-DatePicker .mat-datepicker-toggle .mat-icon-button {
  height: 16px;
  margin: 0;
  width: 16px;
}
.xpo-DatePicker .mat-datepicker-toggle .mat-icon-button .mat-button-wrapper {
  display: flex;
}
.xpo-DatePicker .mat-datepicker-toggle .mat-icon-button .mat-button-wrapper .mat-icon {
  font-size: 16px;
  height: 16px;
  line-height: 16px;
  width: 16px;
}
.xpo-DatePicker .mat-form-field-wrapper .mat-form-field-flex .mat-form-field-infix {
  min-width: 128px;
}
.xpo-DatePicker .mat-form-field-wrapper .mat-form-field-flex .mat-form-field-suffix {
  margin-right: 4px;
}
.xpo-DatePicker--active .mat-form-field-wrapper .mat-form-field-flex {
  border-color: #000000;
}
.mat-datepicker-popup .mat-datepicker-content {
  border: solid 1px #000000;
  border-radius: 0;
  margin-top: -1px;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar {
  height: 250px;
  width: 226px;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-header {
  padding-top: 0;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-controls {
  align-items: center;
  height: 30px;
  justify-content: space-between;
  margin: 8px 0;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-period-button {
  color: #000000;
  font-size: 1rem;
  font-weight: 500;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-previous-button, .mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-next-button {
  height: 16px;
  width: 16px;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-previous-button::after, .mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-next-button::after {
  border-color: #000000;
  border-top-width: 3px;
  margin: 0;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-previous-button::after {
  border-left-width: 3px;
  transform: scale(0.5305) translateX(3px) rotate(-45deg);
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-next-button::after {
  border-right-width: 3px;
  transform: scale(0.5305) translateX(-3px) rotate(45deg);
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-table-header {
  color: #000000;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-table-header th {
  font-size: 1rem;
  font-weight: 500;
  padding: 0;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-table-header-divider {
  display: none;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-body-label {
  padding: 0 !important;
  visibility: hidden;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-body-cell:hover .mat-calendar-body-cell-content {
  background-color: #e8f5fe;
  border-color: transparent;
  color: #000000;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-body-cell-content {
  background-color: #fafafa;
  color: #000000;
  font-size: 1rem;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-body-today {
  border-color: #1976d2;
  color: #1976d2;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-body-selected {
  background-color: #1976d2;
  border-color: #1976d2;
  color: #ffffff;
  font-weight: 500;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-body-selected.mat-calendar-body-today {
  box-shadow: none;
}
.mat-datepicker-popup .mat-datepicker-content mat-year-view .mat-calendar-table .mat-calendar-body-cell-content {
  border-radius: 0;
}
.mat-datepicker-popup .mat-datepicker-content mat-multi-year-view .mat-calendar-table {
  height: 205px;
}
.mat-datepicker-popup .mat-datepicker-content mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell-content {
  border-radius: 0;
  height: 30px;
}
mat-form-field.mat-form-field-type-xpo-date-range-input {
  margin-bottom: 16px;
  margin-top: 24px;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-standard .mat-form-field-flex {
  align-items: center;
  padding-top: 0;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy.mat-form-field-hide-placeholder .mat-form-field-label {
  font-size: 1rem;
  letter-spacing: normal;
  opacity: 0.5;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy.mat-form-field-hide-placeholder .mat-form-field-label-wrapper {
  left: 9px;
  overflow: visible;
  top: -12px;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy.mat-form-field-hide-placeholder.mat-form-field-should-float .mat-form-field-label {
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-weight: normal;
  letter-spacing: inherit;
  opacity: 1;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy.mat-form-field-invalid .mat-form-field-flex, mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-standard.mat-form-field-invalid .mat-form-field-flex {
  border-color: #d50000;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy .mat-form-field-wrapper, mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-standard .mat-form-field-wrapper {
  height: unset;
  line-height: 16px;
  padding: 0;
  top: 0;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper, mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-standard .mat-form-field-subscript-wrapper {
  margin: 0;
  position: relative;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy .mat-hint, mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-standard .mat-hint {
  font-size: 0.875rem;
  margin-top: 8px;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy .mat-error, mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-standard .mat-error {
  display: flex;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 16px;
  margin-top: 8px;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy .mat-error .mat-icon, mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-standard .mat-error .mat-icon {
  display: inline-flex;
  font-size: 20px;
  height: auto;
  line-height: 16px;
  margin-right: 4px;
  width: auto;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy .mat-form-field-underline, mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-standard .mat-form-field-underline {
  display: none;
}
mat-form-field.mat-form-field-type-xpo-date-range-input:not(.mat-form-field-has-label) {
  margin-top: 0;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-focused .mat-form-field-flex {
  border: 1px solid #000000;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-focused .mat-form-field-wrapper {
  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
}
mat-form-field.mat-form-field-type-xpo-date-range-input .mat-form-field-flex {
  align-items: center;
  background-color: #ffffff;
  border: 1px solid #d8d8d8;
  border-radius: 2px;
  display: flex;
}
mat-form-field.mat-form-field-type-xpo-date-range-input .mat-form-field-flex .mat-form-field-suffix {
  margin-right: 4px;
}
mat-form-field.mat-form-field-type-xpo-date-range-input .mat-form-field-flex .mat-form-field-suffix .mat-icon-button {
  height: auto;
  width: auto;
}
mat-form-field.mat-form-field-type-xpo-date-range-input .mat-form-field-flex .mat-form-field-infix {
  align-items: center;
  border: 0;
  display: flex;
  padding: 0;
  width: 208px;
}
.xpo-DateRangeInput-separator {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.cdk-overlay-pane.xpo-DateRangePicker-popup {
  margin-bottom: -1px;
  margin-top: -1px;
}
.mat-dialog-container {
  box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);
  background: white;
  color: rgba(0, 0, 0, 0.87);
}
mat-dialog-container.mat-dialog-container {
  border-radius: 0;
}
mat-dialog-container.mat-dialog-container .xpo-Dialog-container {
  display: flex;
  flex-direction: column;
  height: 100%;
}
mat-dialog-container.mat-dialog-container [mat-dialog-title].mat-dialog-title {
  color: #000000;
  display: flex;
  flex-direction: row;
  flex-shrink: 0;
  font-size: 1.714rem;
  line-height: 28px;
  font-weight: 500;
  justify-content: space-between;
  margin: 0 24px;
  padding-bottom: 12px;
  padding-top: 24px;
}
mat-dialog-container.mat-dialog-container [mat-dialog-title].mat-dialog-title:not(.xpo-ConfirmDialog-header) {
  border-bottom: 1px solid #d8d8d8;
}
mat-dialog-container.mat-dialog-container [mat-dialog-content].mat-dialog-content,
mat-dialog-container.mat-dialog-container mat-dialog-content.mat-dialog-content {
  color: #333333;
  font-size: 1.143rem;
  line-height: 24px;
  margin: 0;
  margin-bottom: auto;
  overflow: auto;
  padding: 12px 24px 24px;
}
mat-dialog-container.mat-dialog-container [mat-dialog-content].mat-dialog-content p:not(:last-of-type),
mat-dialog-container.mat-dialog-container mat-dialog-content.mat-dialog-content p:not(:last-of-type) {
  margin-bottom: 24px;
}
mat-dialog-container.mat-dialog-container [mat-dialog-actions].mat-dialog-actions,
mat-dialog-container.mat-dialog-container mat-dialog-actions.mat-dialog-actions {
  border-top: 1px solid #d8d8d8;
  flex-wrap: nowrap;
  justify-content: space-between;
  margin: 0 24px;
  min-height: auto;
  padding: 24px 0 28px;
}
mat-dialog-container.mat-dialog-container [mat-dialog-actions].mat-dialog-actions .xpo-ButtonGroup > .mat-button-base,
mat-dialog-container.mat-dialog-container mat-dialog-actions.mat-dialog-actions .xpo-ButtonGroup > .mat-button-base {
  margin-left: 0;
}
.mat-expansion-panel {
  background: white;
  color: rgba(0, 0, 0, 0.87);
}
.mat-expansion-panel:not([class*='mat-elevation-z']) {
  box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
}
.mat-action-row {
  border-top-color: rgba(0, 0, 0, 0.12);
}
.mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled='true']),
.mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled='true']),
.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled='true']) {
  background: rgba(0, 0, 0, 0.04);
}
@media (hover: none) {
  .mat-expansion-panel:not(.mat-expanded):not([aria-disabled='true'])
.mat-expansion-panel-header:hover {
    background: white;
  }
}
.mat-expansion-panel-header-title {
  color: rgba(0, 0, 0, 0.87);
}
.mat-expansion-panel-header-description,
.mat-expansion-indicator::after {
  color: rgba(0, 0, 0, 0.54);
}
.mat-expansion-panel-header[aria-disabled='true'] {
  color: rgba(0, 0, 0, 0.26);
}
.mat-expansion-panel-header[aria-disabled='true'] .mat-expansion-panel-header-title,
.mat-expansion-panel-header[aria-disabled='true'] .mat-expansion-panel-header-description {
  color: inherit;
}
.mat-expansion-panel-header {
  height: 48px;
}
.mat-expansion-panel-header.mat-expanded {
  height: 64px;
}
.mat-accordion > .mat-expansion-panel,
.mat-expansion-panel {
  margin: 0.1px;
}
.mat-accordion > .mat-expansion-panel, .mat-accordion > .mat-expansion-panel:not([class*='mat-elevation-z']),
.mat-expansion-panel,
.mat-expansion-panel:not([class*='mat-elevation-z']) {
  border-radius: 0;
  box-shadow: none;
}
.mat-accordion > .mat-expansion-panel .mat-expansion-panel-header,
.mat-expansion-panel .mat-expansion-panel-header {
  padding: 8px;
}
.mat-accordion > .mat-expansion-panel .mat-expansion-panel-header .mat-content::before,
.mat-expansion-panel .mat-expansion-panel-header .mat-content::before {
  font-family: 'Material Icons';
  font-size: 24px;
}
.mat-accordion > .mat-expansion-panel .mat-expansion-panel-header.mat-expanded > .mat-content::before,
.mat-expansion-panel .mat-expansion-panel-header.mat-expanded > .mat-content::before {
  content: 'remove';
}
.mat-accordion > .mat-expansion-panel .mat-expansion-panel-header:not(.mat-expanded) > .mat-content::before,
.mat-expansion-panel .mat-expansion-panel-header:not(.mat-expanded) > .mat-content::before {
  content: 'add';
}
.mat-accordion > .mat-expansion-panel .mat-icon,
.mat-expansion-panel .mat-icon {
  font-size: 20px;
}
.mat-accordion > .mat-expansion-panel .mat-expansion-panel-body,
.mat-expansion-panel .mat-expansion-panel-body {
  padding: 8px 39px 8px;
  padding-bottom: 8px;
}
.mat-accordion > .mat-expansion-panel .mat-expansion-panel-body p,
.mat-expansion-panel .mat-expansion-panel-body p {
  font-size: 14px;
}
.mat-accordion > .mat-expansion-panel .mat-expansion-panel-content .mat-cell > .mat-icon,
.mat-expansion-panel .mat-expansion-panel-content .mat-cell > .mat-icon {
  margin-right: 8px;
}
.mat-accordion > .mat-expansion-panel .mat-content,
.mat-expansion-panel .mat-content {
  align-items: center;
  line-height: 24px;
}
.mat-accordion > .mat-expansion-panel .mat-content .mat-expansion-panel-header-title,
.mat-expansion-panel .mat-content .mat-expansion-panel-header-title {
  margin-right: 0;
  padding: 8px 10px;
}
.mat-accordion > .mat-expansion-panel:not(.xpo-ExpansionPanelDark--wrap),
.mat-expansion-panel:not(.xpo-ExpansionPanelDark--wrap) {
  border-bottom: 1px solid #d8d8d8;
}
.mat-accordion > .mat-expansion-panel:not(.xpo-ExpansionPanelDark--wrap) mat-expansion-panel-header.mat-expansion-panel-header,
.mat-expansion-panel:not(.xpo-ExpansionPanelDark--wrap) mat-expansion-panel-header.mat-expansion-panel-header {
  font-size: 1.143rem;
}
.mat-accordion > .mat-expansion-panel:not(.xpo-ExpansionPanelDark--wrap) mat-expansion-panel-header.mat-expansion-panel-header:not([aria-disabled='true']) .mat-expansion-panel-header-title,
.mat-expansion-panel:not(.xpo-ExpansionPanelDark--wrap) mat-expansion-panel-header.mat-expansion-panel-header:not([aria-disabled='true']) .mat-expansion-panel-header-title {
  color: #000000;
}
.mat-accordion > .mat-expansion-panel:not(.xpo-ExpansionPanelDark--wrap) mat-expansion-panel-header.mat-expansion-panel-header:not([aria-disabled='true']) .mat-content::before,
.mat-expansion-panel:not(.xpo-ExpansionPanelDark--wrap) mat-expansion-panel-header.mat-expansion-panel-header:not([aria-disabled='true']) .mat-content::before {
  color: #424242;
}
.mat-accordion > .mat-expansion-panel:not(.xpo-ExpansionPanelDark--wrap) mat-expansion-panel-header.mat-expansion-panel-header[aria-disabled='true'],
.mat-expansion-panel:not(.xpo-ExpansionPanelDark--wrap) mat-expansion-panel-header.mat-expansion-panel-header[aria-disabled='true'] {
  color: #d8d8d8;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap {
  margin-bottom: 8px;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap:not(.mat-expanded),
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap:not(.mat-expanded) {
  border: 1px solid #d8d8d8;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap.mat-expanded .mat-expansion-panel-content,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap.mat-expanded .mat-expansion-panel-content {
  border: 1px solid #d8d8d8;
  border-top: none;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header {
  padding: 0;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header[aria-disabled='true'] .mat-content::before,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header[aria-disabled='true'] .mat-content::before {
  color: #f6f6f6 !important;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header[aria-disabled='true'] .mat-content .mat-expansion-panel-header-title,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header[aria-disabled='true'] .mat-content .mat-expansion-panel-header-title {
  color: #d8d8d8;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header.mat-expanded .mat-content::before,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header.mat-expanded .mat-content::before {
  background-color: #333333;
  color: #ffffff;
  margin-right: 0;
  padding: 8px;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header.mat-expanded .mat-content,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header.mat-expanded .mat-content {
  background-color: #4a4a4a;
  display: inline-flex;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header.mat-expanded .mat-content > .mat-expansion-panel-header-title,
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header.mat-expanded .mat-content .mat-expansion-panel-header-description,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header.mat-expanded .mat-content > .mat-expansion-panel-header-title,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header.mat-expanded .mat-content .mat-expansion-panel-header-description {
  color: #ffffff;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header:not(.mat-expanded) .mat-content,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header:not(.mat-expanded) .mat-content {
  background-color: #f6f6f6;
  color: #171717;
  display: inline-flex;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header:not(.mat-expanded) .mat-content::before,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header:not(.mat-expanded) .mat-content::before {
  background-color: #d8d8d8;
  color: #333333;
  margin-right: 0;
  padding: 8px;
}
.mat-accordion > .mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header ::before,
.mat-accordion > .mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .mat-icon,
.mat-accordion > .mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .mat-expansion-panel-header-title,
.mat-accordion > .mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .mat-expansion-panel-header-description,
.mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header ::before,
.mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .mat-icon,
.mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .mat-expansion-panel-header-title,
.mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .mat-expansion-panel-header-description {
  align-items: center;
  display: flex;
}
.mat-accordion > .mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header ::before,
.mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header ::before {
  margin-right: 8px;
}
.mat-accordion > .mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .mat-expansion-panel-header-title,
.mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .mat-expansion-panel-header-title {
  font-size: 1.143rem;
  font-weight: 500;
  letter-spacing: 0.3px;
  line-height: 1.143;
  flex-grow: 0;
  line-height: 24px;
}
.mat-accordion > .mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .mat-expansion-panel-header-description,
.mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .mat-expansion-panel-header-description {
  font-size: 0.875rem;
  line-height: 16px;
  flex-grow: 0;
}
.mat-accordion > .mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .xpo-StatusIndicator:not(:first-of-type),
.mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .xpo-StatusIndicator:not(:first-of-type) {
  margin-left: 8px;
}
.mat-accordion > .mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .xpo-StatusIndicator-tag,
.mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .xpo-StatusIndicator-tag {
  font-size: 10px;
}
.mat-accordion > .mat-expansion-panel.mat-expanded.mat-expansion-panel-spacing,
.mat-expansion-panel.mat-expanded.mat-expansion-panel-spacing {
  margin: 0;
}
.mat-accordion > .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled='true']):hover,
.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled='true']):hover {
  background: none;
}
.mat-accordion mat-expansion-panel.mat-expansion-panel:last-of-type {
  border-radius: 0;
}
.mat-form-field-label {
  color: rgba(0, 0, 0, 0.6);
}
.mat-hint {
  color: rgba(0, 0, 0, 0.6);
}
.mat-form-field.mat-focused .mat-form-field-label {
  color: #0868ac;
}
.mat-form-field.mat-focused .mat-form-field-label.mat-accent {
  color: #4a4a4a;
}
.mat-form-field.mat-focused .mat-form-field-label.mat-warn {
  color: #d50000;
}
.mat-focused .mat-form-field-required-marker {
  color: #4a4a4a;
}
.mat-form-field-ripple {
  background-color: rgba(0, 0, 0, 0.87);
}
.mat-form-field.mat-focused .mat-form-field-ripple {
  background-color: #0868ac;
}
.mat-form-field.mat-focused .mat-form-field-ripple.mat-accent {
  background-color: #4a4a4a;
}
.mat-form-field.mat-focused .mat-form-field-ripple.mat-warn {
  background-color: #d50000;
}
.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after {
  color: #0868ac;
}
.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after {
  color: #4a4a4a;
}
.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after {
  color: #d50000;
}
.mat-form-field.mat-form-field-invalid .mat-form-field-label {
  color: #d50000;
}
.mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,
.mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker {
  color: #d50000;
}
.mat-form-field.mat-form-field-invalid .mat-form-field-ripple,
.mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent {
  background-color: #d50000;
}
.mat-error {
  color: #d50000;
}
.mat-form-field-appearance-legacy .mat-form-field-label {
  color: rgba(0, 0, 0, 0.54);
}
.mat-form-field-appearance-legacy .mat-hint {
  color: rgba(0, 0, 0, 0.54);
}
.mat-form-field-appearance-legacy .mat-form-field-underline {
  background-color: rgba(0, 0, 0, 0.42);
}
.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline {
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);
  background-size: 4px 100%;
  background-repeat: repeat-x;
}
.mat-form-field-appearance-standard .mat-form-field-underline {
  background-color: rgba(0, 0, 0, 0.42);
}
.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline {
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);
  background-size: 4px 100%;
  background-repeat: repeat-x;
}
.mat-form-field-appearance-fill .mat-form-field-flex {
  background-color: rgba(0, 0, 0, 0.04);
}
.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex {
  background-color: rgba(0, 0, 0, 0.02);
}
.mat-form-field-appearance-fill .mat-form-field-underline::before {
  background-color: rgba(0, 0, 0, 0.42);
}
.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label {
  color: rgba(0, 0, 0, 0.38);
}
.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before {
  background-color: transparent;
}
.mat-form-field-appearance-outline .mat-form-field-outline {
  color: rgba(0, 0, 0, 0.12);
}
.mat-form-field-appearance-outline .mat-form-field-outline-thick {
  color: rgba(0, 0, 0, 0.87);
}
.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick {
  color: #0868ac;
}
.mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick {
  color: #4a4a4a;
}
.mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick {
  color: #d50000;
}
.mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick {
  color: #d50000;
}
.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label {
  color: rgba(0, 0, 0, 0.38);
}
.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline {
  color: rgba(0, 0, 0, 0.06);
}
mat-form-field.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float.mat-form-field-has-label .mat-form-field-label {
  transform: none;
  top: 0;
  font-size: 14px;
  color: #4a4a4a !important;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-weight: normal;
  letter-spacing: normal;
  overflow: visible;
  line-height: 16px;
}
mat-form-field.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float.mat-form-field-has-label .mat-form-field-label mat-label {
  align-items: center;
  display: inline-flex;
}
mat-form-field.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float.mat-form-field-has-label .mat-form-field-label mat-label .mat-icon {
  padding-left: 8px;
}
mat-form-field.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float.mat-form-field-has-label .mat-form-field-label-wrapper {
  left: 0;
  top: -24px;
}
mat-form-field.mat-form-field-type-mat-input {
  margin-bottom: 16px;
  margin-top: 24px;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard .mat-form-field-flex {
  align-items: center;
  padding-top: 0;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy.mat-form-field-hide-placeholder .mat-form-field-label {
  font-size: 1rem;
  letter-spacing: normal;
  opacity: 0.5;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy.mat-form-field-hide-placeholder .mat-form-field-label-wrapper {
  left: 9px;
  overflow: visible;
  top: -12px;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy.mat-form-field-hide-placeholder.mat-form-field-should-float .mat-form-field-label {
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-size: 1.285rem;
  font-weight: normal;
  letter-spacing: inherit;
  opacity: 1;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy.mat-form-field-invalid .mat-form-field-flex, mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard.mat-form-field-invalid .mat-form-field-flex {
  border-color: #d50000;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy .mat-form-field-wrapper, mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard .mat-form-field-wrapper {
  height: unset;
  line-height: 16px;
  padding: 0;
  top: 0;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy.ngx-FormField--inline,
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy.ngx-FormField--inline .mat-form-field-wrapper, mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard.ngx-FormField--inline,
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard.ngx-FormField--inline .mat-form-field-wrapper {
  margin-bottom: 0;
  margin-top: 0;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper, mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard .mat-form-field-subscript-wrapper {
  margin: 0;
  position: relative;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy .mat-hint, mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard .mat-hint {
  font-size: 0.875rem;
  margin-top: 8px;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy .mat-error, mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard .mat-error {
  display: flex;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 16px;
  margin-top: 8px;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy .mat-error .mat-icon, mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard .mat-error .mat-icon {
  display: inline-flex;
  font-size: 20px;
  height: auto;
  line-height: 16px;
  margin-right: 4px;
  width: auto;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy.ngx-FormField--borderless .mat-form-field-flex, mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard.ngx-FormField--borderless .mat-form-field-flex {
  border: none;
  box-shadow: unset;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy .mat-form-field-underline, mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard .mat-form-field-underline {
  display: none;
}
mat-form-field.mat-form-field-type-mat-input:not(.mat-form-field-has-label) {
  margin-top: 0;
}
mat-form-field.mat-form-field-type-mat-input.mat-focused .mat-form-field-flex {
  border: 1px solid #000000;
}
mat-form-field.mat-form-field-type-mat-input.mat-focused .mat-form-field-wrapper {
  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex {
  align-items: center;
  background-color: #ffffff;
  border: 1px solid #d8d8d8;
  border-radius: 2px;
  display: flex;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-prefix,
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-suffix {
  display: flex;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-prefix .mat-icon,
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-suffix .mat-icon {
  display: inline-flex;
  font-size: 20px;
  height: 16px;
  justify-content: center;
  line-height: 16px;
  width: 16px;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-prefix .xpo-BusyLoader,
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-suffix .xpo-BusyLoader {
  width: 24px;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-prefix {
  margin-left: 6px;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-suffix {
  margin-right: 6px;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-infix {
  align-items: center;
  border: 0;
  display: flex;
  padding: 0;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-infix .mat-icon + .mat-input-element {
  padding-left: 0;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-infix .mat-input-element {
  color: #000000;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-size: 1rem;
  margin: 0;
  padding: 6px 8px;
  resize: none;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-infix .mat-input-element:disabled {
  background-color: #f3f3f3;
  color: #000000;
  font-style: italic;
  font-weight: 400;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-label {
  color: #333333 !important;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-size: 1.428rem;
  font-weight: normal;
  letter-spacing: normal;
  overflow: visible;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-label mat-label {
  align-items: center;
  display: inline-flex;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-label mat-label .mat-icon {
  padding-left: 8px;
}
mat-form-field .xpo-Label--wrap .mat-checkbox-layout,
mat-form-field .xpo-Label--wrap .mat-radio-label {
  white-space: unset;
}
.xpo-Form--inline {
  align-items: flex-end;
  display: inline-flex;
  flex-wrap: wrap;
  width: 100%;
}
.xpo-Form--inline .mat-button-base,
.xpo-Form--inline .mat-button-toggle-group,
.xpo-Form--inline .mat-form-field,
.xpo-Form--inline .mat-form-field-type-mat-input:not(.mat-form-field-has-label) {
  margin-bottom: 16px;
  margin-right: 8px;
  width: auto;
}
.xpo-Form--inline > .mat-button-toggle {
  margin-bottom: 16px;
}
.xpo-Form--inline > .mat-button-toggle:last-of-type {
  margin-right: 8px;
}
.mat-form-field-type-mat-native-select .mat-form-field-infix::after {
  color: rgba(0, 0, 0, 0.54);
}
.mat-input-element:disabled,
.mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after {
  color: rgba(0, 0, 0, 0.38);
}
.mat-input-element {
  caret-color: #0868ac;
}
.mat-input-element::-moz-placeholder {
  color: rgba(0, 0, 0, 0.42);
}
.mat-input-element:-ms-input-placeholder {
  color: rgba(0, 0, 0, 0.42);
}
.mat-input-element::placeholder {
  color: rgba(0, 0, 0, 0.42);
}
.mat-input-element::-moz-placeholder {
  color: rgba(0, 0, 0, 0.42);
}
.mat-input-element::-webkit-input-placeholder {
  color: rgba(0, 0, 0, 0.42);
}
.mat-input-element:-ms-input-placeholder {
  color: rgba(0, 0, 0, 0.42);
}
.mat-form-field.mat-accent .mat-input-element {
  caret-color: #4a4a4a;
}
.mat-form-field.mat-warn .mat-input-element,
.mat-form-field-invalid .mat-input-element {
  caret-color: #d50000;
}
.mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after {
  color: #d50000;
}
input.mat-input-element {
  caret-color: #4a4a4a !important;
  margin-top: 0.1375em;
}
input.mat-input-element:disabled {
  cursor: not-allowed;
}
.xpo-Link {
  align-items: center;
  color: #1976d2;
  cursor: pointer;
  display: inline-flex;
  font-weight: 500;
  gap: 5px;
}
.xpo-Link:hover, .xpo-Link:focus, .xpo-Link:active {
  text-decoration: underline;
}
.xpo-Link:hover {
  color: #2196f3;
  outline: 0;
}
.xpo-Link:active, .xpo-Link:focus {
  color: #0d47a1;
  outline: none;
}
.xpo-Link[disabled] {
  color: #bdbdbd;
  cursor: not-allowed;
}
.xpo-Link--regular {
  font-weight: 400;
}
.xpo-Link > .mat-icon {
  font-size: 1.428rem;
  height: 20px;
  width: 20px;
  text-decoration: none;
}
.mat-menu-panel {
  background: white;
}
.mat-menu-panel:not([class*='mat-elevation-z']) {
  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
}
.mat-menu-item {
  background: transparent;
  color: rgba(0, 0, 0, 0.87);
}
.mat-menu-item[disabled], .mat-menu-item[disabled]::after,
.mat-menu-item[disabled] .mat-icon-no-color {
  color: rgba(0, 0, 0, 0.38);
}
.mat-menu-item .mat-icon-no-color,
.mat-menu-item-submenu-trigger::after {
  color: rgba(0, 0, 0, 0.54);
}
.mat-menu-item:hover:not([disabled]),
.mat-menu-item.cdk-program-focused:not([disabled]),
.mat-menu-item.cdk-keyboard-focused:not([disabled]),
.mat-menu-item-highlighted:not([disabled]) {
  background: rgba(0, 0, 0, 0.04);
}
div.mat-menu-panel {
  border-radius: 0;
  border: 1px solid #d8d8d8;
  box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);
  margin-top: 4px;
}
div.mat-menu-panel .mat-menu-content:not(:empty) {
  padding-bottom: 0;
  padding-top: 0;
}
div.mat-menu-panel .mat-menu-item {
  align-items: center;
  color: #000000;
  display: flex;
  gap: 8px;
  height: 32px;
  justify-content: flex-start;
  line-height: 1.429rem;
  padding: 6px 8px;
}
div.mat-menu-panel .mat-menu-item .xpo-Icon .mat-icon {
  color: #000000;
  margin-right: 0;
}
div.mat-menu-panel .mat-menu-item .xpo-Icon .mat-icon:hover {
  color: #212121;
}
div.mat-menu-panel .mat-menu-item:disabled {
  color: #bdbdbd;
}
div.mat-menu-panel .mat-menu-item:disabled .xpo-Icon .mat-icon {
  color: #bdbdbd;
}
div.mat-menu-panel .mat-menu-item:hover {
  background: #e4effa;
}
div.mat-menu-panel .mat-menu-item-submenu-trigger::after {
  margin-right: -7px;
}
div.mat-menu-panel a.mat-menu-item,
div.mat-menu-panel a.mat-menu-item:hover,
div.mat-menu-panel a.mat-menu-item:focus {
  text-decoration: none;
}
div.mat-menu-panel .mat-divider {
  color: #d8d8d8;
}
div.mat-menu-panel .mat-divider:last-child {
  display: none;
}
.cdk-overlay-connected-position-bounding-box:not(:nth-of-type(2)) .mat-menu-panel::after {
  display: none;
}
.mat-form-field.mat-form-field-type-xpo-multi-select {
  line-height: 24px;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float {
  margin-bottom: 16px;
  margin-top: 24px;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float .mat-form-field-wrapper {
  padding: 0;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float .mat-form-field-wrapper .mat-form-field-flex {
  cursor: pointer;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float .mat-form-field-wrapper .mat-form-field-flex .mat-form-field-infix {
  background-color: #ffffff;
  border: 1px solid #d8d8d8;
  border-radius: 2px;
  padding: 2px 8px;
  width: 260px;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float .mat-form-field-wrapper .mat-form-field-flex .mat-form-field-infix .mat-select-arrow {
  margin-right: 0;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float .mat-form-field-wrapper .mat-form-field-underline {
  display: none;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float .mat-form-field-wrapper .mat-form-field-subscript-wrapper {
  margin: 0;
  position: relative;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float .mat-form-field-wrapper .mat-form-field-subscript-wrapper .mat-error {
  display: flex;
  font-size: 1rem;
  font-weight: 400;
  line-height: 16px;
  margin-top: 8px;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float .mat-form-field-wrapper .mat-form-field-subscript-wrapper .mat-error .mat-icon {
  display: inline-flex;
  font-size: 20px;
  height: auto;
  line-height: 16px;
  margin-right: 4px;
  width: auto;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float.mat-focused .mat-form-field-wrapper .mat-form-field-flex .mat-form-field-infix {
  border-color: #000000;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float.mat-focused .mat-form-field-wrapper .mat-form-field-flex .mat-form-field-infix .mat-select-arrow {
  color: #4a4a4a;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float.mat-form-field-disabled .mat-form-field-wrapper .mat-form-field-flex .mat-form-field-infix {
  background-color: #f6f6f6;
  cursor: not-allowed;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float.mat-form-field-disabled .mat-form-field-wrapper .mat-form-field-flex .mat-form-field-infix .mat-select-trigger {
  cursor: not-allowed;
}
.mat-select-panel.xpo-Select-panel.xpo-Select-panelMultiple.xpo-MultiSelect-panel {
  border: 1px solid #000000;
  margin-top: 2px;
  margin-bottom: 2px;
}
.mat-select-panel.xpo-Select-panel.xpo-Select-panelMultiple.xpo-MultiSelect-panel .mat-option .mat-option-text .mat-icon {
  margin-right: 6px;
}
.mat-select-panel.xpo-Select-panel.xpo-Select-panelMultiple.xpo-MultiSelect-panel .mat-option.xpo-MultiSelectAllOption .mat-pseudo-checkbox-indeterminate {
  background: #ffffff;
  border: 1px solid #000000;
}
.mat-select-panel.xpo-Select-panel.xpo-Select-panelMultiple.xpo-MultiSelect-panel .mat-option.xpo-MultiSelectAllOption .mat-pseudo-checkbox-indeterminate::after {
  background: #000000;
  border: 2px solid #000000;
  height: 8px;
  left: 3px;
  top: 3px;
  width: 8px;
}
.xpo-MultiSelectTrigger .mat-chip-list .mat-chip-list-wrapper {
  display: inline-flex;
  flex-wrap: nowrap;
  margin: -4px 0;
  gap: 0;
}
.mat-snack-bar-container {
  color: rgba(255, 255, 255, 0.7);
  background: #323232;
  box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);
}
.mat-simple-snackbar-action {
  color: #4a4a4a;
}
snack-bar-container.mat-snack-bar-container {
  box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.12), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.2);
  background: #ffffff;
  border-radius: 2px;
  color: #4a4a4a;
  padding: 0;
  overflow: hidden;
  margin: 32px;
}
@media (max-width: 768px) {
  snack-bar-container.mat-snack-bar-container {
    min-width: 80vw;
    max-height: 40vh;
  }
}
@media (min-width: 768px) and (max-width: 1024px) {
  snack-bar-container.mat-snack-bar-container {
    min-width: 60vw;
    width: auto;
    max-height: 40vh;
  }
}
@media (min-width: 1024px) {
  snack-bar-container.mat-snack-bar-container {
    min-width: 40vw;
    max-height: 40vh;
  }
}
snack-bar-container.mat-snack-bar-container > div {
  height: 100%;
}
snack-bar-container.mat-snack-bar-container > div > div {
  height: 100%;
}
.mat-table {
  background: white;
}
.mat-table thead, .mat-table tbody, .mat-table tfoot,
mat-header-row, mat-row, mat-footer-row,
[mat-header-row], [mat-row], [mat-footer-row],
.mat-table-sticky {
  background: inherit;
}
mat-row, mat-header-row, mat-footer-row,
th.mat-header-cell, td.mat-cell, td.mat-footer-cell {
  border-bottom-color: rgba(0, 0, 0, 0.12);
}
.mat-header-cell {
  color: rgba(0, 0, 0, 0.54);
}
.mat-cell, .mat-footer-cell {
  color: rgba(0, 0, 0, 0.87);
}
.mat-table {
  border: 1px solid #d8d8d8;
}
.mat-table tr.mat-header-row,
.mat-table tr.mat-footer-row,
.mat-table tr.mat-row {
  height: 30px;
}
.mat-table mat-header-row.mat-header-row,
.mat-table mat-footer-row.mat-footer-row,
.mat-table mat-row.mat-row {
  min-height: 30px;
}
.mat-table mat-row.mat-row,
.mat-table mat-header-row.mat-header-row,
.mat-table mat-footer-row.mat-footer-row,
.mat-table th.mat-header-cell,
.mat-table td.mat-cell,
.mat-table td.mat-footer-cell {
  border-bottom-color: #d8d8d8;
}
.mat-table mat-row.mat-row:last-child,
.mat-table mat-footer-row.mat-footer-row:last-child,
.mat-table tr.mat-row:last-child > .mat-cell {
  border-bottom-color: transparent;
}
.mat-table .mat-cell .mat-icon {
  align-items: center;
  justify-content: center;
}
.mat-table .mat-cell > .xpo-Icon {
  margin-right: 4px;
}
.mat-table th.mat-header-cell,
.mat-table td.mat-cell,
.mat-table td.mat-footer-cell,
.mat-table mat-cell.mat-cell,
.mat-table mat-header-cell.mat-header-cell,
.mat-table mat-footer-cell.mat-footer-cell {
  font-size: 1rem;
}
.mat-table th.mat-header-cell, .mat-table th.mat-header-cell:first-of-type,
.mat-table td.mat-cell,
.mat-table td.mat-cell:first-of-type,
.mat-table td.mat-footer-cell,
.mat-table td.mat-footer-cell:first-of-type,
.mat-table mat-cell.mat-cell,
.mat-table mat-cell.mat-cell:first-of-type,
.mat-table mat-header-cell.mat-header-cell,
.mat-table mat-header-cell.mat-header-cell:first-of-type,
.mat-table mat-footer-cell.mat-footer-cell,
.mat-table mat-footer-cell.mat-footer-cell:first-of-type {
  padding-left: 8px;
}
.mat-table th.mat-header-cell, .mat-table th.mat-header-cell:last-of-type,
.mat-table td.mat-cell,
.mat-table td.mat-cell:last-of-type,
.mat-table td.mat-footer-cell,
.mat-table td.mat-footer-cell:last-of-type,
.mat-table mat-cell.mat-cell,
.mat-table mat-cell.mat-cell:last-of-type,
.mat-table mat-header-cell.mat-header-cell,
.mat-table mat-header-cell.mat-header-cell:last-of-type,
.mat-table mat-footer-cell.mat-footer-cell,
.mat-table mat-footer-cell.mat-footer-cell:last-of-type {
  padding-right: 8px;
}
.mat-table tr.mat-header-row,
.mat-table mat-header-row.mat-header-row {
  background-color: #f6f6f6;
  box-shadow: 0 4px -2px -1px rgba(0, 0, 0, 0.1);
}
.mat-table tr.mat-header-row .mat-header-cell,
.mat-table mat-header-row.mat-header-row .mat-header-cell {
  color: #4a4a4a;
  font-size: 0.875rem;
  font-weight: 500;
}
.mat-table tr.mat-footer-row,
.mat-table mat-footer-row.mat-footer-row {
  background-color: #e6e6e6;
}
.mat-table tr.mat-footer-row .mat-footer-cell,
.mat-table mat-footer-row.mat-footer-row .mat-footer-cell {
  font-weight: 500;
}
.mat-table .mat-tab-label.mat-tab-label-active {
  color: #000000;
}
.mat-cell .mat-icon {
  align-items: center;
  justify-content: center;
}
.mat-cell > .xpo-Icon {
  margin-right: 4px;
}
.xpo-MatTable--withColumnGroup tr.mat-header-row:first-of-type {
  background-color: #e6e6e6;
}
.xpo-MatTable--withColumnGroup tr.mat-header-row:first-of-type th.mat-header-cell {
  text-align: center;
}
.xpo-MatTable--borderRight {
  border-right: 1px solid #d8d8d8;
}
.xpo-MatTable--borderLeft {
  border-left: 1px solid #d8d8d8;
}
.xpo-MatTable-cell--textAlignRight.mat-header-cell, .xpo-MatTable-cell--textAlignRight.mat-cell, .xpo-MatTable-cell--textAlignRight.mat-footer-cell {
  justify-content: flex-end;
  text-align: right;
}
.xpo-MatTable-cell--textAlignCenter.mat-header-cell, .xpo-MatTable-cell--textAlignCenter.mat-cell, .xpo-MatTable-cell--textAlignCenter.mat-footer-cell {
  justify-content: center;
  text-align: center;
}
.mat-tab-nav-bar,
.mat-tab-header {
  border-bottom: 1px solid rgba(0, 0, 0, 0.12);
}
.mat-tab-group-inverted-header .mat-tab-nav-bar,
.mat-tab-group-inverted-header .mat-tab-header {
  border-top: 1px solid rgba(0, 0, 0, 0.12);
  border-bottom: none;
}
.mat-tab-label, .mat-tab-link {
  color: rgba(0, 0, 0, 0.87);
}
.mat-tab-label.mat-tab-disabled, .mat-tab-link.mat-tab-disabled {
  color: rgba(0, 0, 0, 0.38);
}
.mat-tab-header-pagination-chevron {
  border-color: rgba(0, 0, 0, 0.87);
}
.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {
  border-color: rgba(0, 0, 0, 0.38);
}
.mat-tab-group[class*='mat-background-'] .mat-tab-header,
.mat-tab-nav-bar[class*='mat-background-'] {
  border-bottom: none;
  border-top: none;
}
.mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {
  background-color: rgba(232, 245, 254, 0.3);
}
.mat-tab-group.mat-primary .mat-ink-bar, .mat-tab-nav-bar.mat-primary .mat-ink-bar {
  background-color: #0868ac;
}
.mat-tab-group.mat-primary.mat-background-primary > .mat-tab-header .mat-ink-bar, .mat-tab-group.mat-primary.mat-background-primary > .mat-tab-link-container .mat-ink-bar, .mat-tab-nav-bar.mat-primary.mat-background-primary > .mat-tab-header .mat-ink-bar, .mat-tab-nav-bar.mat-primary.mat-background-primary > .mat-tab-link-container .mat-ink-bar {
  background-color: white;
}
.mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {
  background-color: rgba(155, 155, 155, 0.3);
}
.mat-tab-group.mat-accent .mat-ink-bar, .mat-tab-nav-bar.mat-accent .mat-ink-bar {
  background-color: #4a4a4a;
}
.mat-tab-group.mat-accent.mat-background-accent > .mat-tab-header .mat-ink-bar, .mat-tab-group.mat-accent.mat-background-accent > .mat-tab-link-container .mat-ink-bar, .mat-tab-nav-bar.mat-accent.mat-background-accent > .mat-tab-header .mat-ink-bar, .mat-tab-nav-bar.mat-accent.mat-background-accent > .mat-tab-link-container .mat-ink-bar {
  background-color: white;
}
.mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {
  background-color: rgba(255, 34, 34, 0.3);
}
.mat-tab-group.mat-warn .mat-ink-bar, .mat-tab-nav-bar.mat-warn .mat-ink-bar {
  background-color: #d50000;
}
.mat-tab-group.mat-warn.mat-background-warn > .mat-tab-header .mat-ink-bar, .mat-tab-group.mat-warn.mat-background-warn > .mat-tab-link-container .mat-ink-bar, .mat-tab-nav-bar.mat-warn.mat-background-warn > .mat-tab-header .mat-ink-bar, .mat-tab-nav-bar.mat-warn.mat-background-warn > .mat-tab-link-container .mat-ink-bar {
  background-color: white;
}
.mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {
  background-color: rgba(232, 245, 254, 0.3);
}
.mat-tab-group.mat-background-primary > .mat-tab-header, .mat-tab-group.mat-background-primary > .mat-tab-link-container, .mat-tab-group.mat-background-primary > .mat-tab-header-pagination, .mat-tab-nav-bar.mat-background-primary > .mat-tab-header, .mat-tab-nav-bar.mat-background-primary > .mat-tab-link-container, .mat-tab-nav-bar.mat-background-primary > .mat-tab-header-pagination {
  background-color: #0868ac;
}
.mat-tab-group.mat-background-primary > .mat-tab-header .mat-tab-label, .mat-tab-group.mat-background-primary > .mat-tab-link-container .mat-tab-link, .mat-tab-nav-bar.mat-background-primary > .mat-tab-header .mat-tab-label, .mat-tab-nav-bar.mat-background-primary > .mat-tab-link-container .mat-tab-link {
  color: white;
}
.mat-tab-group.mat-background-primary > .mat-tab-header .mat-tab-label.mat-tab-disabled, .mat-tab-group.mat-background-primary > .mat-tab-link-container .mat-tab-link.mat-tab-disabled, .mat-tab-nav-bar.mat-background-primary > .mat-tab-header .mat-tab-label.mat-tab-disabled, .mat-tab-nav-bar.mat-background-primary > .mat-tab-link-container .mat-tab-link.mat-tab-disabled {
  color: rgba(255, 255, 255, 0.4);
}
.mat-tab-group.mat-background-primary > .mat-tab-header-pagination .mat-tab-header-pagination-chevron,
.mat-tab-group.mat-background-primary > .mat-tab-links .mat-focus-indicator::before,
.mat-tab-group.mat-background-primary > .mat-tab-header .mat-focus-indicator::before, .mat-tab-nav-bar.mat-background-primary > .mat-tab-header-pagination .mat-tab-header-pagination-chevron,
.mat-tab-nav-bar.mat-background-primary > .mat-tab-links .mat-focus-indicator::before,
.mat-tab-nav-bar.mat-background-primary > .mat-tab-header .mat-focus-indicator::before {
  border-color: white;
}
.mat-tab-group.mat-background-primary > .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-primary > .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {
  border-color: rgba(255, 255, 255, 0.4);
}
.mat-tab-group.mat-background-primary > .mat-tab-header .mat-ripple-element,
.mat-tab-group.mat-background-primary > .mat-tab-link-container .mat-ripple-element, .mat-tab-nav-bar.mat-background-primary > .mat-tab-header .mat-ripple-element,
.mat-tab-nav-bar.mat-background-primary > .mat-tab-link-container .mat-ripple-element {
  background-color: rgba(255, 255, 255, 0.12);
}
.mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {
  background-color: rgba(155, 155, 155, 0.3);
}
.mat-tab-group.mat-background-accent > .mat-tab-header, .mat-tab-group.mat-background-accent > .mat-tab-link-container, .mat-tab-group.mat-background-accent > .mat-tab-header-pagination, .mat-tab-nav-bar.mat-background-accent > .mat-tab-header, .mat-tab-nav-bar.mat-background-accent > .mat-tab-link-container, .mat-tab-nav-bar.mat-background-accent > .mat-tab-header-pagination {
  background-color: #4a4a4a;
}
.mat-tab-group.mat-background-accent > .mat-tab-header .mat-tab-label, .mat-tab-group.mat-background-accent > .mat-tab-link-container .mat-tab-link, .mat-tab-nav-bar.mat-background-accent > .mat-tab-header .mat-tab-label, .mat-tab-nav-bar.mat-background-accent > .mat-tab-link-container .mat-tab-link {
  color: white;
}
.mat-tab-group.mat-background-accent > .mat-tab-header .mat-tab-label.mat-tab-disabled, .mat-tab-group.mat-background-accent > .mat-tab-link-container .mat-tab-link.mat-tab-disabled, .mat-tab-nav-bar.mat-background-accent > .mat-tab-header .mat-tab-label.mat-tab-disabled, .mat-tab-nav-bar.mat-background-accent > .mat-tab-link-container .mat-tab-link.mat-tab-disabled {
  color: rgba(255, 255, 255, 0.4);
}
.mat-tab-group.mat-background-accent > .mat-tab-header-pagination .mat-tab-header-pagination-chevron,
.mat-tab-group.mat-background-accent > .mat-tab-links .mat-focus-indicator::before,
.mat-tab-group.mat-background-accent > .mat-tab-header .mat-focus-indicator::before, .mat-tab-nav-bar.mat-background-accent > .mat-tab-header-pagination .mat-tab-header-pagination-chevron,
.mat-tab-nav-bar.mat-background-accent > .mat-tab-links .mat-focus-indicator::before,
.mat-tab-nav-bar.mat-background-accent > .mat-tab-header .mat-focus-indicator::before {
  border-color: white;
}
.mat-tab-group.mat-background-accent > .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-accent > .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {
  border-color: rgba(255, 255, 255, 0.4);
}
.mat-tab-group.mat-background-accent > .mat-tab-header .mat-ripple-element,
.mat-tab-group.mat-background-accent > .mat-tab-link-container .mat-ripple-element, .mat-tab-nav-bar.mat-background-accent > .mat-tab-header .mat-ripple-element,
.mat-tab-nav-bar.mat-background-accent > .mat-tab-link-container .mat-ripple-element {
  background-color: rgba(255, 255, 255, 0.12);
}
.mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {
  background-color: rgba(255, 34, 34, 0.3);
}
.mat-tab-group.mat-background-warn > .mat-tab-header, .mat-tab-group.mat-background-warn > .mat-tab-link-container, .mat-tab-group.mat-background-warn > .mat-tab-header-pagination, .mat-tab-nav-bar.mat-background-warn > .mat-tab-header, .mat-tab-nav-bar.mat-background-warn > .mat-tab-link-container, .mat-tab-nav-bar.mat-background-warn > .mat-tab-header-pagination {
  background-color: #d50000;
}
.mat-tab-group.mat-background-warn > .mat-tab-header .mat-tab-label, .mat-tab-group.mat-background-warn > .mat-tab-link-container .mat-tab-link, .mat-tab-nav-bar.mat-background-warn > .mat-tab-header .mat-tab-label, .mat-tab-nav-bar.mat-background-warn > .mat-tab-link-container .mat-tab-link {
  color: white;
}
.mat-tab-group.mat-background-warn > .mat-tab-header .mat-tab-label.mat-tab-disabled, .mat-tab-group.mat-background-warn > .mat-tab-link-container .mat-tab-link.mat-tab-disabled, .mat-tab-nav-bar.mat-background-warn > .mat-tab-header .mat-tab-label.mat-tab-disabled, .mat-tab-nav-bar.mat-background-warn > .mat-tab-link-container .mat-tab-link.mat-tab-disabled {
  color: rgba(255, 255, 255, 0.4);
}
.mat-tab-group.mat-background-warn > .mat-tab-header-pagination .mat-tab-header-pagination-chevron,
.mat-tab-group.mat-background-warn > .mat-tab-links .mat-focus-indicator::before,
.mat-tab-group.mat-background-warn > .mat-tab-header .mat-focus-indicator::before, .mat-tab-nav-bar.mat-background-warn > .mat-tab-header-pagination .mat-tab-header-pagination-chevron,
.mat-tab-nav-bar.mat-background-warn > .mat-tab-links .mat-focus-indicator::before,
.mat-tab-nav-bar.mat-background-warn > .mat-tab-header .mat-focus-indicator::before {
  border-color: white;
}
.mat-tab-group.mat-background-warn > .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-warn > .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {
  border-color: rgba(255, 255, 255, 0.4);
}
.mat-tab-group.mat-background-warn > .mat-tab-header .mat-ripple-element,
.mat-tab-group.mat-background-warn > .mat-tab-link-container .mat-ripple-element, .mat-tab-nav-bar.mat-background-warn > .mat-tab-header .mat-ripple-element,
.mat-tab-nav-bar.mat-background-warn > .mat-tab-link-container .mat-ripple-element {
  background-color: rgba(255, 255, 255, 0.12);
}
.mat-radio-outer-circle {
  border-color: rgba(0, 0, 0, 0.54);
}
.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle {
  border-color: #0868ac;
}
.mat-radio-button.mat-primary .mat-radio-inner-circle,
.mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),
.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,
.mat-radio-button.mat-primary:active .mat-radio-persistent-ripple {
  background-color: #0868ac;
}
.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {
  border-color: #4a4a4a;
}
.mat-radio-button.mat-accent .mat-radio-inner-circle,
.mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),
.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,
.mat-radio-button.mat-accent:active .mat-radio-persistent-ripple {
  background-color: #4a4a4a;
}
.mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle {
  border-color: #d50000;
}
.mat-radio-button.mat-warn .mat-radio-inner-circle,
.mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),
.mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,
.mat-radio-button.mat-warn:active .mat-radio-persistent-ripple {
  background-color: #d50000;
}
.mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,
.mat-radio-button.mat-radio-disabled .mat-radio-outer-circle {
  border-color: rgba(0, 0, 0, 0.38);
}
.mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,
.mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {
  background-color: rgba(0, 0, 0, 0.38);
}
.mat-radio-button.mat-radio-disabled .mat-radio-label-content {
  color: rgba(0, 0, 0, 0.38);
}
.mat-radio-button .mat-ripple-element {
  background-color: black;
}
mat-radio-button.mat-radio-button .mat-radio-container {
  transform: scale(0.8);
}
mat-radio-button.mat-radio-button .mat-radio-container .mat-radio-inner-circle {
  background-color: #000000;
}
mat-radio-button.mat-radio-button .mat-radio-container .mat-radio-outer-circle {
  border-width: 1px;
}
mat-radio-button.mat-radio-button .mat-radio-label-content {
  padding-left: 2px;
}
mat-radio-button.mat-radio-button.mat-radio-checked .mat-radio-outer-circle {
  border-color: #ffffff;
}
mat-radio-button.mat-radio-button.mat-radio-checked .mat-radio-inner-circle {
  transform: scale(0.625);
}
mat-radio-button.mat-radio-button.mat-radio-disabled .mat-radio-label {
  cursor: not-allowed;
}
mat-radio-button.mat-radio-button.mat-radio-disabled .mat-radio-outer-circle,
mat-radio-button.mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle {
  border-color: #bdbdbd;
}
mat-radio-button.mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {
  background-color: #bdbdbd;
}
mat-radio-button.mat-radio-button .mat-ripple {
  display: none;
}
.mat-select-value {
  color: rgba(0, 0, 0, 0.87);
}
.mat-select-placeholder {
  color: rgba(0, 0, 0, 0.42);
}
.mat-select-disabled .mat-select-value {
  color: rgba(0, 0, 0, 0.38);
}
.mat-select-arrow {
  color: rgba(0, 0, 0, 0.54);
}
.mat-select-panel {
  background: white;
}
.mat-select-panel:not([class*='mat-elevation-z']) {
  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
}
.mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple) {
  background: rgba(0, 0, 0, 0.12);
}
.mat-form-field.mat-focused.mat-primary .mat-select-arrow {
  color: #0868ac;
}
.mat-form-field.mat-focused.mat-accent .mat-select-arrow {
  color: #4a4a4a;
}
.mat-form-field.mat-focused.mat-warn .mat-select-arrow {
  color: #d50000;
}
.mat-form-field .mat-select.mat-select-invalid .mat-select-arrow {
  color: #d50000;
}
.mat-form-field .mat-select.mat-select-disabled .mat-select-arrow {
  color: rgba(0, 0, 0, 0.38);
}
.xpo-Select-twoLinesContainer {
  color: #212121;
  display: flex;
  flex-direction: column;
  margin-left: 8px;
}
.xpo-Select-twoLinesContainer .mat-option-text:nth-of-type(1) {
  color: #000000;
  line-height: 16px;
}
.xpo-Select-twoLinesContainer .mat-option-text:nth-of-type(2) {
  color: #333333;
  font-size: 11px;
  line-height: 12px;
  padding-top: 4px;
}
.xpo-Select-twoColumnsContainer {
  display: flex;
  width: 100%;
}
.xpo-Select-twoColumnsContainer span:first-of-type {
  flex: 1;
}
.xpo-Select-twoColumnsContainer span:last-of-type {
  flex: 2;
}
.xpo-Select-panel.mat-select-panel {
  border: 1px solid #d8d8d8;
  border-radius: 0;
  border-top: none;
  box-shadow: none;
  margin-left: 7px;
  margin-top: 24px;
}
.xpo-Select-panel.mat-select-panel .mat-option,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label {
  height: 30px;
  line-height: normal;
  padding: 6px 8px;
}
.xpo-Select-panel.mat-select-panel .mat-option:not(:last-of-type),
.xpo-Select-panel.mat-select-panel .mat-optgroup-label:not(:last-of-type) {
  border-bottom: 1px solid #d8d8d8;
}
.xpo-Select-panel.mat-select-panel .mat-option.xpo-Option--twoLines,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label.xpo-Option--twoLines {
  height: 45px;
}
.xpo-Select-panel.mat-select-panel .mat-option.xpo-Option--twoLines .mat-option-text,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label.xpo-Option--twoLines .mat-option-text {
  display: flex;
  flex-direction: row;
}
.xpo-Select-panel.mat-select-panel .mat-option.xpo-Option-hideDivider:not(:last-of-type),
.xpo-Select-panel.mat-select-panel .mat-optgroup-label.xpo-Option-hideDivider:not(:last-of-type) {
  border-bottom: none;
}
.xpo-Select-panel.mat-select-panel .mat-option:hover:not(.mat-option-disabled), .xpo-Select-panel.mat-select-panel .mat-option:focus:not(.mat-option-disabled),
.xpo-Select-panel.mat-select-panel .mat-optgroup-label:hover:not(.mat-option-disabled),
.xpo-Select-panel.mat-select-panel .mat-optgroup-label:focus:not(.mat-option-disabled) {
  background: #e4effa;
}
.xpo-Select-panel.mat-select-panel .mat-option .mat-icon,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label .mat-icon {
  margin-right: 0;
}
.xpo-Select-panel.mat-select-panel .mat-option.mat-selected:not(.mat-option-disabled),
.xpo-Select-panel.mat-select-panel .mat-optgroup-label.mat-selected:not(.mat-option-disabled) {
  background: #e4effa;
  color: #4a4a4a;
}
.xpo-Select-panel.mat-select-panel .mat-option-disabled,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label-disabled {
  background-color: #f6f6f6;
}
.xpo-Select-panel.mat-select-panel .mat-option .mat-option-text,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label .mat-option-text {
  align-items: center;
  color: #333333;
}
.xpo-Select-panel.mat-select-panel .mat-option .mat-pseudo-checkbox,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label .mat-pseudo-checkbox {
  border: 1px solid #d8d8d8;
  margin-right: 6px;
}
.xpo-Select-panel.mat-select-panel .mat-option .mat-pseudo-checkbox-disabled,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label .mat-pseudo-checkbox-disabled {
  background-color: #d8d8d8;
  border-color: #d8d8d8;
}
.xpo-Select-panel.mat-select-panel .mat-option .mat-pseudo-checkbox-disabled::after,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label .mat-pseudo-checkbox-disabled::after {
  border-left: 2px solid currentColor;
  box-sizing: content-box;
  height: 3px;
  opacity: 1;
  transform: rotate(-45deg);
  width: 8px;
}
.xpo-Select-panel.mat-select-panel .mat-option .mat-pseudo-checkbox-checked,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label .mat-pseudo-checkbox-checked {
  background-color: #000000;
  border-color: #000000;
}
.xpo-Select-panel.mat-select-panel .mat-option .mat-pseudo-checkbox::after,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label .mat-pseudo-checkbox::after {
  left: 2px;
  top: 3.4px;
}
.xpo-Select-panel.mat-select-panel .mat-optgroup-label {
  border-bottom: 1px solid #d8d8d8;
  color: #333333;
  font-weight: 500;
}
.xpo-Select-panel.mat-select-panel .mat-optgroup:not(:first-of-type) .mat-optgroup-label {
  border-top: 1px solid #d8d8d8;
}
.mat-option .mat-option-ripple {
  display: none !important;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-flex {
  align-items: center;
  padding-top: 0;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard {
  margin-bottom: 16px;
  margin-top: 24px;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-wrapper .mat-form-field-infix, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-wrapper .mat-form-field-infix {
  background-color: #f6f6f6;
  cursor: not-allowed;
  font-style: italic;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-select-placeholder,
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-select-trigger, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard.mat-form-field-disabled .mat-select-placeholder,
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard.mat-form-field-disabled .mat-select-trigger {
  color: #000000;
  cursor: not-allowed;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy.mat-form-field-has-label .mat-select:not(.mat-select-empty) .mat-select-arrow-wrapper, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard.mat-form-field-has-label .mat-select:not(.mat-select-empty) .mat-select-arrow-wrapper {
  transform: none;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-subscript-wrapper {
  margin: 0;
  position: relative;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-form-field-wrapper, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-wrapper {
  height: unset;
  line-height: 16px;
  padding: 0;
}
.mat-focused .mat-form-field-infix {
  border-color: #000000 !important;
}
.mat-form-field-invalid .mat-form-field-infix {
  border-color: #d50000 !important;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-form-field-wrapper .mat-form-field-infix, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-wrapper .mat-form-field-infix {
  background-color: #ffffff;
  border: 1px solid #d8d8d8;
  border-radius: 2px;
  padding: 6px 8px;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-form-field-wrapper .mat-form-field-infix .mat-select-arrow, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-wrapper .mat-form-field-infix .mat-select-arrow {
  margin-right: 0;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-form-field-wrapper .mat-form-field-infix .mat-select-value-text, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-wrapper .mat-form-field-infix .mat-select-value-text {
  color: #212121;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy.mat-focused .mat-select-arrow, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard.mat-focused .mat-select-arrow {
  color: #4a4a4a !important;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy.ngx-FormField--inline .mat-form-field-wrapper, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard.ngx-FormField--inline .mat-form-field-wrapper {
  margin-bottom: 0;
  margin-top: 0;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy:not(.mat-form-field-should-float) .mat-form-field-label, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard:not(.mat-form-field-should-float) .mat-form-field-label {
  color: #9b9b9b;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy.mat-form-field-should-float .mat-form-field-label, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard.mat-form-field-should-float .mat-form-field-label {
  color: #333333;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy.mat-form-field-invalid .mat-form-field-label, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard.mat-form-field-invalid .mat-form-field-label {
  color: #9b9b9b !important;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy:not(.mat-form-field-should-float) .mat-form-field-label, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard:not(.mat-form-field-should-float) .mat-form-field-label {
  color: #9b9b9b;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-placeholder-required, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-placeholder-required {
  color: #d50000;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-hint, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-hint {
  font-size: 0.875rem;
  font-style: italic;
  font-weight: 400;
  line-height: 16px;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-error, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-error {
  display: flex;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 16px;
  margin-top: 8px;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-error .mat-icon, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-error .mat-icon {
  display: inline-flex;
  font-size: 20px;
  height: auto;
  line-height: 16px;
  margin-right: 4px;
  width: auto;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-form-field-prefix, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-prefix {
  padding-left: 0.3em;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-form-field-suffix, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-suffix {
  height: 24px;
  position: absolute;
  right: 24px;
  width: 24px;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy.ngx-FormField--borderless .mat-form-field-wrapper, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard.ngx-FormField--borderless .mat-form-field-wrapper {
  border: none;
  box-shadow: unset;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-form-field-underline, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-underline {
  display: none;
}
.xpo-Select-panel.mat-select-panel {
  min-width: calc(100% + 18px) !important;
}
.xpo-Select-panelMultiple.mat-select-panel {
  margin-left: 31px;
}
mat-slide-toggle.mat-slide-toggle.mat-disabled {
  opacity: unset;
}
mat-slide-toggle.mat-slide-toggle.mat-checked {
  opacity: unset;
}
mat-slide-toggle.mat-slide-toggle.mat-checked.mat-disabled .mat-slide-toggle-bar {
  background-color: #cde8cc;
  border: 1px solid #c7dec6;
}
mat-slide-toggle.mat-slide-toggle.mat-disabled .mat-slide-toggle-bar {
  background-color: #f9f9f9;
  border: 1px solid #e2e2e4;
}
mat-slide-toggle.mat-slide-toggle.mat-disabled .mat-slide-toggle-bar .mat-slide-toggle-thumb {
  box-shadow: 0 0 0 1px #e2e2e4;
}
mat-slide-toggle.mat-slide-toggle.mat-checked .mat-slide-toggle-bar {
  background-color: #4caf50;
  border: 1px solid #388e3c;
}
mat-slide-toggle.mat-slide-toggle .mat-slide-toggle-bar {
  background-color: #f6f6f6;
  border: 1px solid #d8d8d8;
  border-radius: 30px;
  height: 22px;
  width: 38px;
}
mat-slide-toggle.mat-slide-toggle.mat-checked.mat-disabled .mat-slide-toggle-thumb {
  box-shadow: 0 0 0 1px #c7dec6;
}
mat-slide-toggle.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {
  background-color: #ffffff;
  border: none;
  box-shadow: none;
}
mat-slide-toggle.mat-slide-toggle.mat-disabled .mat-slide-toggle-thumb {
  background-color: #ffffff;
}
mat-slide-toggle.mat-slide-toggle .mat-slide-toggle-thumb-container {
  cursor: pointer;
  left: 0;
  top: 0.1px;
}
mat-slide-toggle.mat-slide-toggle .mat-slide-toggle-thumb-container.mat-slide-toggle-thumb {
  background-color: #ffffff;
  height: 22px;
  width: 22px;
}
mat-slide-toggle.mat-slide-toggle .mat-slide-toggle-thumb {
  background-color: #ffffff;
  box-shadow: 0 0 0 1px #d8d8d8;
}
mat-slide-toggle.mat-slide-toggle.xpo-SlideToggle--small.mat-checked.mat-disabled .mat-slide-toggle-bar {
  background-color: #cde8cc;
  border: 1px solid #c7dec6;
}
mat-slide-toggle.mat-slide-toggle.xpo-SlideToggle--small.mat-disabled .mat-slide-toggle-bar {
  background-color: #f9f9f9;
  border: 1px solid #e2e2e4;
}
mat-slide-toggle.mat-slide-toggle.xpo-SlideToggle--small.mat-checked .mat-slide-toggle-bar {
  background-color: #4caf50;
  border: 1px solid #388e3c;
}
mat-slide-toggle.mat-slide-toggle.xpo-SlideToggle--small .mat-slide-toggle-bar {
  background-color: #f6f6f6;
  border-radius: 30px;
  height: 16px;
  width: 32px;
}
mat-slide-toggle.mat-slide-toggle.xpo-SlideToggle--small .mat-slide-toggle-thumb-container {
  height: 14px;
  width: 14px;
}
mat-slide-toggle.mat-slide-toggle.xpo-SlideToggle--small .mat-slide-toggle-thumb {
  height: 14px;
  width: 14px;
}
mat-slide-toggle.mat-slide-toggle .mat-slide-toggle-ripple {
  display: none;
}
.xpo-Ssi {
  display: inline-flex;
}
.xpo-Ssi .xpo-Icon {
  width: auto;
}
.xpo-Ssi .xpo-Icon .mat-icon svg {
  width: auto;
}
.mat-drawer.xpo-TrayDrawer {
  max-width: 10%;
  min-width: 500px;
  overflow: hidden;
  width: 10%;
}
.mat-drawer.xpo-TrayDrawer.xpo-TrayDrawer--extended {
  max-width: 90%;
  width: 90%;
}
.mat-drawer.xpo-TrayDrawer:not(.mat-drawer-side), .mat-drawer.xpo-TrayDrawer.mat-drawer-side {
  border: 1px solid #d8d8d8;
  box-shadow: 0 3px 9px 0 rgba(0, 0, 0, 0.35);
}
.mat-drawer.xpo-TrayDrawer .mat-drawer-inner-container {
  overflow: hidden;
}
.cdk-overlay-container .mat-tooltip-panel .mat-tooltip {
  background: #212121;
  border-radius: 0;
  color: #ffffff;
  display: flex;
  font-size: 1rem;
  line-height: 18px;
  overflow: visible;
  padding: 16px;
  position: relative;
  white-space: pre-line;
}
.cdk-overlay-container .mat-tooltip-panel[style*='bottom'][style*='left'] .mat-tooltip[style*='center'][style*='bottom'] {
  margin-bottom: 18px;
}
.cdk-overlay-container .mat-tooltip-panel[style*='bottom'][style*='left'] .mat-tooltip[style*='center'][style*='bottom']::after {
  border-bottom: none;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-top: 10px solid #212121;
  content: '';
  height: 0;
  left: 50%;
  position: absolute;
  top: 100%;
  transform: translateX(-50%);
  width: 0;
}
.cdk-overlay-container .mat-tooltip-panel[style*='top'][style*='left'] .mat-tooltip[style*='center'][style*='top'] {
  margin-top: 18px;
}
.cdk-overlay-container .mat-tooltip-panel[style*='top'][style*='left'] .mat-tooltip[style*='center'][style*='top']::before {
  border-bottom: 10px solid #212121;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-top: none;
  bottom: 100%;
  content: '';
  height: 0;
  left: 50%;
  position: absolute;
  transform: translateX(-50%);
  width: 0;
}
.cdk-overlay-container .mat-tooltip-panel[style*='top'][style*='left'] .mat-tooltip[style*='center'][style*='left'] {
  margin-left: 18px;
}
.cdk-overlay-container .mat-tooltip-panel[style*='top'][style*='left'] .mat-tooltip[style*='center'][style*='left']::before {
  border-bottom: 10px solid transparent;
  border-left: 10px solid transparent;
  border-right: 10px solid #212121;
  border-top: 10px solid transparent;
  content: '';
  height: 0;
  position: absolute;
  right: 100%;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
}
.cdk-overlay-container .mat-tooltip-panel[style*='top'][style*='right'] .mat-tooltip[style*='center'][style*='right'] {
  margin-right: 18px;
}
.cdk-overlay-container .mat-tooltip-panel[style*='top'][style*='right'] .mat-tooltip[style*='center'][style*='right']::after {
  border-bottom: 10px solid transparent;
  border-left: 10px solid #212121;
  border-right: 10px solid transparent;
  border-top: 10px solid transparent;
  content: '';
  height: 0;
  left: 100%;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
}
.xpo-ErrorPages-title h1 {
  font-size: 28px;
}
.xpo-ErrorPages-description {
  margin-bottom: 16px;
}
.xpo-ErrorPages-description p {
  font-size: 1.285rem;
}
.xpo-ErrorPages-action {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 32px;
  gap: 8px;
}
.xpo-ErrorPages-footer {
  width: 100%;
}
.mat-form-field-type-xpo-time-picker {
  width: 96px;
  margin-bottom: 6px;
  margin-top: 24px;
}
.mat-form-field-type-xpo-time-picker .xpo-Icon .mat-icon {
  color: #4a4a4a;
  cursor: pointer;
}
.mat-form-field-type-xpo-time-picker .xpo-Icon .mat-icon:hover {
  color: #9b9b9b;
}
.mat-form-field-type-xpo-time-picker .xpo-Icon .mat-icon:active {
  color: #4a4a4a;
}
.mat-form-field-type-xpo-time-picker .xpo-TimePicker:focus-within {
  border: solid 1px #000000;
}
.mat-form-field-type-xpo-time-picker .xpo-TimePicker.ng-touched.ng-invalid {
  border: solid 1px #d32f2f;
}
.mat-form-field-type-xpo-time-picker .mat-input-element:disabled {
  background-color: #f3f3f3;
  font-style: italic;
  font-weight: 400;
}
.mat-form-field-type-xpo-time-picker .mat-input-element:disabled ~ .xpo-Icon .mat-icon {
  color: #bdbdbd;
  cursor: not-allowed;
}
.mat-form-field-type-xpo-time-picker .mat-form-field-underline {
  display: none;
}
.mat-form-field-type-xpo-time-picker.mat-form-field-appearance-legacy .mat-form-field-infix {
  padding: 0;
  border-top: 0;
}
.mat-form-field-type-xpo-time-picker.mat-form-field-infix {
  padding: 0;
  border-top: 0;
}
.mat-form-field-type-xpo-time-picker.mat-form-field-wrapper {
  padding-bottom: 0;
  height: unset;
  line-height: 16px;
  padding: 0;
  top: 0;
}
.mat-form-field-type-xpo-time-picker.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float.mat-form-field-has-label .mat-form-field-flex
.mat-form-field-label-wrapper
.mat-form-field-label {
  line-height: 1.429rem;
  height: 20px;
}
.mat-form-field-type-xpo-time-picker.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker {
  color: #d32f2f;
}
.mat-form-field-type-xpo-time-picker .mat-error {
  color: #d32f2f;
  display: flex;
  font-size: 0.875rem;
  gap: 8px;
  line-height: 16px;
  width: 96px;
}
.mat-form-field-type-xpo-time-picker .mat-error .xpo-Icon .mat-icon {
  color: #d32f2f;
  display: inline-flex;
}
.mat-form-field-type-xpo-time-picker .mat-error > .mat-icon {
  color: #d32f2f;
  display: inline-flex;
  font-size: 20px;
  height: 20px;
}
.mat-autocomplete-panel.mat-autocomplete-visible.xpo-TimePicker-panel {
  border: solid 1px #000000;
  min-width: 96px;
  right: 1px;
  top: -1px;
  width: 96px;
}
.mat-autocomplete-panel.mat-autocomplete-visible.xpo-TimePicker-panel .mat-option {
  border: 0;
  color: #4a4a4a;
  line-height: 1.429rem;
}
.mat-autocomplete-panel.mat-autocomplete-visible.xpo-TimePicker-panel .mat-option.mat-active {
  background: #e4effa;
}
button.mat-button.xpo-DownloadButton {
  align-items: center;
  display: flex;
  height: 20px;
  min-width: 20px;
}
button.mat-button.xpo-DownloadButton .mat-spinner {
  display: inline-block;
}
.xpo-Header {
  background: white;
  border-bottom: 1px solid #d8d8d8;
}
.mat-progress-bar-background {
  fill: #e8f5fe;
}
.mat-progress-bar-buffer {
  background-color: #e8f5fe;
}
.mat-progress-bar-fill::after {
  background-color: #0868ac;
}
.mat-progress-bar.mat-accent .mat-progress-bar-background {
  fill: #9b9b9b;
}
.mat-progress-bar.mat-accent .mat-progress-bar-buffer {
  background-color: #9b9b9b;
}
.mat-progress-bar.mat-accent .mat-progress-bar-fill::after {
  background-color: #4a4a4a;
}
.mat-progress-bar.mat-warn .mat-progress-bar-background {
  fill: #ff2222;
}
.mat-progress-bar.mat-warn .mat-progress-bar-buffer {
  background-color: #ff2222;
}
.mat-progress-bar.mat-warn .mat-progress-bar-fill::after {
  background-color: #d50000;
}
.mat-progress-spinner circle, .mat-spinner circle {
  stroke: #0868ac;
}
.mat-progress-spinner.mat-accent circle, .mat-spinner.mat-accent circle {
  stroke: #4a4a4a;
}
.mat-progress-spinner.mat-warn circle, .mat-spinner.mat-warn circle {
  stroke: #d50000;
}
.mat-drawer-container {
  background-color: #f3f3f3;
  color: rgba(0, 0, 0, 0.87);
}
.mat-drawer {
  background-color: white;
  color: rgba(0, 0, 0, 0.87);
}
.mat-drawer.mat-drawer-push {
  background-color: white;
}
.mat-drawer:not(.mat-drawer-side) {
  box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);
}
.mat-drawer-side {
  border-right: solid 1px rgba(0, 0, 0, 0.12);
}
.mat-drawer-side.mat-drawer-end {
  border-left: solid 1px rgba(0, 0, 0, 0.12);
  border-right: none;
}
[dir='rtl'] .mat-drawer-side {
  border-left: solid 1px rgba(0, 0, 0, 0.12);
  border-right: none;
}
[dir='rtl'] .mat-drawer-side.mat-drawer-end {
  border-left: none;
  border-right: solid 1px rgba(0, 0, 0, 0.12);
}
.mat-drawer-backdrop.mat-drawer-shown {
  background-color: rgba(0, 0, 0, 0.6);
}
.mat-badge-content {
  color: white;
  background: #0868ac;
}
.cdk-high-contrast-active .mat-badge-content {
  outline: solid 1px;
  border-radius: 0;
}
.mat-badge-accent .mat-badge-content {
  background: #4a4a4a;
  color: white;
}
.mat-badge-warn .mat-badge-content {
  color: white;
  background: #d50000;
}
.mat-badge {
  position: relative;
}
.mat-badge-hidden .mat-badge-content {
  display: none;
}
.mat-badge-disabled .mat-badge-content {
  background: #b4b4b4;
  color: rgba(0, 0, 0, 0.38);
}
.mat-badge-content {
  position: absolute;
  text-align: center;
  display: inline-block;
  border-radius: 50%;
  transition: transform 200ms ease-in-out;
  transform: scale(0.6);
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  pointer-events: none;
}
.ng-animate-disabled .mat-badge-content,
.mat-badge-content._mat-animation-noopable {
  transition: none;
}
.mat-badge-content.mat-badge-active {
  transform: none;
}
.mat-badge-small .mat-badge-content {
  width: 16px;
  height: 16px;
  line-height: 16px;
}
.mat-badge-small.mat-badge-above .mat-badge-content {
  top: -8px;
}
.mat-badge-small.mat-badge-below .mat-badge-content {
  bottom: -8px;
}
.mat-badge-small.mat-badge-before .mat-badge-content {
  left: -16px;
}
[dir='rtl'] .mat-badge-small.mat-badge-before .mat-badge-content {
  left: auto;
  right: -16px;
}
.mat-badge-small.mat-badge-after .mat-badge-content {
  right: -16px;
}
[dir='rtl'] .mat-badge-small.mat-badge-after .mat-badge-content {
  right: auto;
  left: -16px;
}
.mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {
  left: -8px;
}
[dir='rtl'] .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {
  left: auto;
  right: -8px;
}
.mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: -8px;
}
[dir='rtl'] .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: auto;
  left: -8px;
}
.mat-badge-medium .mat-badge-content {
  width: 22px;
  height: 22px;
  line-height: 22px;
}
.mat-badge-medium.mat-badge-above .mat-badge-content {
  top: -11px;
}
.mat-badge-medium.mat-badge-below .mat-badge-content {
  bottom: -11px;
}
.mat-badge-medium.mat-badge-before .mat-badge-content {
  left: -22px;
}
[dir='rtl'] .mat-badge-medium.mat-badge-before .mat-badge-content {
  left: auto;
  right: -22px;
}
.mat-badge-medium.mat-badge-after .mat-badge-content {
  right: -22px;
}
[dir='rtl'] .mat-badge-medium.mat-badge-after .mat-badge-content {
  right: auto;
  left: -22px;
}
.mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {
  left: -11px;
}
[dir='rtl'] .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {
  left: auto;
  right: -11px;
}
.mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: -11px;
}
[dir='rtl'] .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: auto;
  left: -11px;
}
.mat-badge-large .mat-badge-content {
  width: 28px;
  height: 28px;
  line-height: 28px;
}
.mat-badge-large.mat-badge-above .mat-badge-content {
  top: -14px;
}
.mat-badge-large.mat-badge-below .mat-badge-content {
  bottom: -14px;
}
.mat-badge-large.mat-badge-before .mat-badge-content {
  left: -28px;
}
[dir='rtl'] .mat-badge-large.mat-badge-before .mat-badge-content {
  left: auto;
  right: -28px;
}
.mat-badge-large.mat-badge-after .mat-badge-content {
  right: -28px;
}
[dir='rtl'] .mat-badge-large.mat-badge-after .mat-badge-content {
  right: auto;
  left: -28px;
}
.mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {
  left: -14px;
}
[dir='rtl'] .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {
  left: auto;
  right: -14px;
}
.mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: -14px;
}
[dir='rtl'] .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: auto;
  left: -14px;
}
mat-dialog-container.mat-dialog-container {
  padding: 0;
}
.u-flex--fillSpace {
  flex: 1;
}
.u-flex--spaceBetween {
  justify-content: space-between;
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3hwby1pbnRlcm5hbC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vQGFuZ3VsYXIvbWF0ZXJpYWwvX3RoZW1pbmcuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL0Bhbmd1bGFyL2Nkay9fb3ZlcmxheS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdCQUFnQjtBQ3UwRGhCLG1DQUFBO0FBK0lBLHlEQUFBO0FBb2JBLHlEQUFBO0FBbXdEQSwyQ0FBQTtBQTZDQSxxQkFBQTtBRDFxSUEsaURBQUE7QUFxQ0E7O0NBNUNDO0FBZ0REOztDQTdDQztBQWtIRDs7Q0EvR0M7QUE0S0Q7O0NBektDO0FBNktEOztDQTFLQztBQTBRRDs7Q0F2UUM7QUE0UUQ7O0NBelFDO0FBd1dEOztDQXJXQztBQXlXRDs7Q0F0V0M7QUF1WUQ7RUFDRSxPQUFPO0FBcllUO0FBa1pBO0VBQ0UsZ0NBQWdDO0VBQ2hDLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsdUxBQ3lGO0FBaFozRjtBQW9aQTs7O0VBSUUsc0JBQXNCO0FBalp4QjtBQW9aQTtFQUNFLGFBQWE7QUFqWmY7QUFvWkE7RUFDRSxlQWxLdUI7QUEvT3pCO0FBb1pBOztFQUVFLFlBQVk7RUFDWixTQUFTO0FBalpYO0FBb1pBO0VBQ0UsaUJBL0l5QjtFQWdKekIsMEJBQTBCO0VBQzFCLDhCQUE4QjtBQWpaaEM7QUFvWkE7RUFDRSx5QkF0TWlDO0VBdU1qQyxjQXZWcUI7RUF3VnJCLDBEQXRLcUU7RUF1S3JFLGdCQW5LMEI7RUFvSzFCLHFCQWpKNkI7RUFrSjdCLGlCQTFKeUI7RUEySnpCLGtCQUFrQjtBQWpacEI7QUFvWkE7Ozs7OztFQU1FLGNBQWM7QUFqWmhCO0FBb1pBOzs7RUFHRSxhQUFtQztBQWpackM7QUFvWkE7RUFuZEUsbUJBbVJtQztFQWxSbkMsZ0JBNFJ3QjtFQTNSeEIsc0JBK1NzQztFQTlTdEMsa0JBeVNrQztBQXRPcEM7QUFpWkE7RUE5ZEUsbUJBeVJvQztFQXhS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RXlCO0FBLy9GL0I7QUN3ckJFO0VBQ0UsaUNEMDZFYztBQS9sR2xCO0FDd3JCRTtFQUNFLGlDRGswRTJCO0FBdi9GL0I7QUN5ckJFOztFQUVFLG1CQUFtQjtFQUNuQixnQkFBZ0I7QUR0ckJwQjtBQ3lyQkU7Ozs7O0VBNENNLDBDRHlzRGU7QUF0NkV2QjtBQ2lyQkU7RUFrQ0UseUJEeXREbUI7QUF4NkV2QjtBQzZxQkU7RUFrQ0UsdUJENHBEZTtBQXYyRW5CO0FDeXFCRTs7Ozs7RUE0Q00sMENEbXZEZTtBQWg4RXZCO0FDaXFCRTtFQWtDRSx5QkRxcERtQjtBQXAxRXZCO0FDNnBCRTtFQWtDRSx1QkQ0cERlO0FBdjFFbkI7QUN5cEJFOzs7OztFQTRDTSx3Q0R1d0RjO0FBcDhFdEI7QUNpcEJFO0VBa0NFLHlCRG14RGtCO0FBbDhFdEI7QUM2b0JFO0VBa0NFLHVCRDRwRGU7QUF2MEVuQjtBQ3lvQkU7Ozs7O0VBNENNLDBDRHlzRGU7QUF0M0V2QjtBQ2lvQkU7RUF3REUseUJEbXNEbUI7QUF4M0V2QjtBQzZuQkU7RUE2REUsWURpb0RlO0FBdnpFbkI7QUN5bkJFO0VBZ0VJLCtCRDhuRGE7QUFuekVuQjtBQ3FuQkU7Ozs7O0VBd0VFLG1CRHNuRGU7QUEzeUVuQjtBQzZtQkU7RUE0RUUsc0NEa25EZTtBQXZ5RW5CO0FDeW1CRTs7O0VBbUZFLDJDRDJtRGU7QUFqeUVuQjtBQ21tQkU7Ozs7O0VBNENNLDBDRG12RGU7QUExM0V2QjtBQzJsQkU7RUF3REUseUJEK25EbUI7QUE5d0V2QjtBQ3VsQkU7RUE2REUsWURpb0RlO0FBanhFbkI7QUNtbEJFO0VBZ0VJLCtCRDhuRGE7QUE3d0VuQjtBQytrQkU7Ozs7O0VBd0VFLG1CRHNuRGU7QUFyd0VuQjtBQ3VrQkU7RUE0RUUsc0NEa25EZTtBQWp3RW5CO0FDbWtCRTs7O0VBbUZFLDJDRDJtRGU7QUEzdkVuQjtBQzZqQkU7Ozs7O0VBNENNLHdDRHV3RGM7QUF4MkV0QjtBQ3FqQkU7RUF3REUseUJENnZEa0I7QUF0MkV0QjtBQ2lqQkU7RUE2REUsWURpb0RlO0FBM3VF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QXFCO0FBc3JIM0I7QUE2UkU7RUFDRSxpQkEycENlO0VBMXBDZixnQ0FzcENtQjtBQWg3Q3ZCO0FDM3dDRTtFQUNFLGFEcXZGbUI7QUF2K0N2QjtBQzN3Q0U7RUFDRSx5QkRpdkZtQjtBQW4rQ3ZCO0FDM3dDRTtFQUNFLHlCRG12Rm1CO0FBcitDdkI7QUMzd0NFO0VBRUksYURreEZpQjtBQXJnRHZCO0FDL3dDRTtFQU1JLHlCRDh3RmlCO0FBamdEdkI7QUNueENFO0VBVUkseUJEa3FGaUI7QUFyNUN2QjtBQ3p3Q0U7RUFFSSxhRHd4RmdCO0FBN2dEdEI7QUM3d0NFO0VBTUkseUJEb3hGZ0I7QUF6Z0R0QjtBQ2p4Q0U7RUFVSSx5QkRreEZnQjtBQXZnRHRCO0FDcnVDRTtFQUVJLGVEZ3JGaUI7QUF6OEN2QjtBQ3p1Q0U7RUFNSSxlRHdtRmlCO0FBajRDdkI7QUM3dUNFO0VBVUksZURrdUZnQjtBQTMvQ3RCO0FDci9CRTtFQUNFLHlCRGlnRitCO0VDaGdGL0IsMEJEcWxHYztBQTdsRWxCO0FDci9CRTtFQUNFLHVCRHVpR1c7RUN0aUdYLDBCRGdsR2M7QUF4bEVsQjtBQzEvQkU7RUFLSSx1QkRtaUdTO0FBMWlFZjtBQzkvQkU7RUExNElBLDZIQUVtRTtBRDA0S3JFO0FDbi9CRTtFQUNFLDJDRCs5RnNCO0FBeitEMUI7QUN2L0JFO0VBSUksMENENDlGb0I7RUMzOUZwQixrQkFBa0I7QUR1L0J4QjtBQUVBO0VDcC9CSSwwQ0RzOUZzQjtFQ3I5RnRCLGtCQUFrQjtBRHMvQnRCO0FBRUE7RUNyL0JNLGlCQUFpQjtFQUNqQiwyQ0RpOUZvQjtBQTE5RDFCO0FDbi9CRTtFQVFJLG9DQUF5QztBRCsrQi9DO0FDanpHRTtFQUNFLFlEMm9KZTtFQzFvSmYsbUJEdXNKbUI7QUFuNUN2QjtBQ3Z2TEk7RUFzOEVFLGtCQUFrQjtFQUNsQixnQkFBZ0I7QURxekd0QjtBQ2p6R0U7RUFFSSxtQkR5bkppQjtFQ3huSmpCLFlEK25KYTtBQTUwQ25CO0FDL3lHRTtFQUVJLFlEeW5KYTtFQ3huSmIsbUJEK3VKZ0I7QUE5N0N0QjtBQzd5R0U7RUFDRSxrQkFBa0I7QURnekd0QjtBQzd5R0U7RUFFSSxhQUFhO0FEK3lHbkI7QUMzeUdFO0VBWU0sbUJBQW9GO0VBTXRGLDBCRGt0S3lCO0FBcDdEL0I7QUMxeEdFO0VBQ0Usa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixxQkFBcUI7RUFDckIsa0JBQWtCO0VBQ2xCLHVDQUF1QztFQUN2QyxxQkFBcUI7RUFDckIsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsb0JBQW9CO0FENnhHeEI7QUMxeEdFOztFQUVFLGdCQUFnQjtBRDZ4R3BCO0FDeHhHRTtFQUVFLGVBQWU7QUQweEduQjtBQ3o3R0U7RUFDRSxXQU44QztFQU85QyxZQVA4QztFQVE5QyxpQkFSOEM7QURvOEdsRDtBQ3g3R0k7RUFDRSxTQUFlO0FEMjdHckI7QUN0N0dJO0VBQ0UsWUFBa0I7QUR5N0d4QjtBQ3A3R0k7RUFDRSxXQXpCNEM7QURnOUdsRDtBQUVBO0VDbjdHTSxVQUFVO0VBQ1YsWUFoQzRDO0FEcTlHbEQ7QUNoN0dJO0VBQ0UsWUF0QzRDO0FEeTlHbEQ7QUFFQTtFQy82R00sV0FBVztFQUNYLFdBN0M0QztBRDg5R2xEO0FDMzZHTTtFQUNFLFVBQWdCO0FEODZHeEI7QUFFQTtFQzE2R1EsVUFBVTtFQUNWLFdBQWlCO0FENDZHekI7QUN2NkdNO0VBQ0UsV0FBaUI7QUQwNkd6QjtBQUVBO0VDdDZHUSxXQUFXO0VBQ1gsVUFBZ0I7QUR3Nkd4QjtBQzMrR0U7RUFDRSxXQVB5QjtFQVF6QixZQVJ5QjtFQVN6QixpQkFUeUI7QUR1L0c3QjtBQzErR0k7RUFDRSxVQUFlO0FENitHckI7QUN4K0dJO0VBQ0UsYUFBa0I7QUQyK0d4QjtBQ3QrR0k7RUFDRSxXQTFCdUI7QURtZ0g3QjtBQUVBO0VDcitHTSxVQUFVO0VBQ1YsWUFqQ3VCO0FEd2dIN0I7QUNsK0dJO0VBQ0UsWUF2Q3VCO0FENGdIN0I7QUFFQTtFQ2orR00sV0FBVztFQUNYLFdBOUN1QjtBRGloSDdCO0FDNzlHTTtFQUNFLFdBQWdCO0FEZytHeEI7QUFFQTtFQzU5R1EsVUFBVTtFQUNWLFlBQWlCO0FEODlHekI7QUN6OUdNO0VBQ0UsWUFBaUI7QUQ0OUd6QjtBQUVBO0VDeDlHUSxXQUFXO0VBQ1gsV0FBZ0I7QUQwOUd4QjtBQzdoSEU7RUFDRSxXQUw4QztFQU05QyxZQU44QztFQU85QyxpQkFQOEM7QUR1aUhsRDtBQzVoSEk7RUFDRSxVQUFlO0FEK2hIckI7QUMxaEhJO0VBQ0UsYUFBa0I7QUQ2aEh4QjtBQ3hoSEk7RUFDRSxXQXhCNEM7QURtakhsRDtBQUVBO0VDdmhITSxVQUFVO0VBQ1YsWUEvQjRDO0FEd2pIbEQ7QUNwaEhJO0VBQ0UsWUFyQzRDO0FENGpIbEQ7QUFFQTtFQ25oSE0sV0FBVztFQUNYLFdBNUM0QztBRGlrSGxEO0FDL2dITTtFQUNFLFdBQWdCO0FEa2hIeEI7QUFFQTtFQzlnSFEsVUFBVTtFQUNWLFlBQWlCO0FEZ2hIekI7QUMzZ0hNO0VBQ0UsWUFBaUI7QUQ4Z0h6QjtBQUVBO0VDMWdIUSxXQUFXO0VBQ1gsV0FBZ0I7QUQ0Z0h4QjtBQWdvREU7RUFDRSxVQUFVO0FBN25EZDtBQTQ1REE7RUFDRSxPQUFPO0FBejVEVDtBQTQ1REE7RUFDRSw4QkFBOEI7QUF6NURoQyIsImZpbGUiOiJ4cG8taW50ZXJuYWwuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRPRE86IFJlbW92ZSB3aGVuIGNoZWNrYm94IGlzIHRoZW1lZFxuLy8gV2UgY2FuIHVzZSByZWxhdGl2ZSBpbXBvcnRzIGZvciBpbXBvcnRzIGZyb20gdGhlIGNkayBiZWNhdXNlIHdlIGJ1bmRsZSBldmVyeXRoaW5nXG4vLyB1cCBpbnRvIGEgc2luZ2xlIGZsYXQgc2NzcyBmaWxlIGZvciBtYXRlcmlhbC5cbkBpbXBvcnQgJ35AYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5AaW1wb3J0ICd+QGFuZ3VsYXIvY2RrL2ExMXknO1xuLy8gXG5AaW1wb3J0ICd+QGFuZ3VsYXIvbWF0ZXJpYWwvdGhlbWluZyc7XG5cbi8vIENvcmUgc3R5bGVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gYXBwbHkgbWF0ZXJpYWwgZGVzaWduIHRyZWF0bWVudHMgdG8gYW55IGVsZW1lbnQuXG5cbi8vIFxuLy8gXG4vLyBcbi8vIFxuLy8gXG4vLyBcbi8qISBCYXNlIHN0eWxlcywgbWFkZSB3aXRoIG5vcm1hbGl6ZS5jc3MgdjcuMC4wICovXG5AbWl4aW4gVGV4dFRyZWF0bWVudC1oZWFkZXItLXNtYWxsKCkge1xuICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1zbWFsbDtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLXNtYWxsO1xuICBsaW5lLWhlaWdodDogJHhwby1oZWFkZXItbGluZUhlaWdodC0tc21hbGw7XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tbWVkaXVtKCkge1xuICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1tZWRpdW07XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1tZWRpdW07XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1tZWRpdW07XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tbGFyZ2UoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLWxhcmdlO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbGFyZ2U7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1sYXJnZTtcbn1cblxuLy8gUmVndWxhciB0ZXh0IG1peGluc1xuQG1peGluIFRleHRUcmVhdG1lbnQtLXNtYWxsKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLXNtYWxsO1xuICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbWFsbDtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtLW1lZGl1bSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LS1sYXJnZSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1sYXJnZTtcbn1cblxuXG4vKlxuKiogPT09PSBCYXNpYyBjb2xvcnMgPT09PVxuKi9cblxuLypcbioqID09PT0gWFBPIEJyYW5kIENvbG9yIFBhbGV0dGUgPT09PVxuKi9cblxuLy8gWFBPIFJlZFxuJHhwby1icmFuZC1yZWQ6ICNjYzAwMDA7XG4keHBvLWJyYW5kLXJlZC0tOTAwOiAkeHBvLWJyYW5kLXJlZDtcbiR4cG8tYnJhbmQtcmVkLS04MDA6ICNlNDIxMGU7XG4keHBvLWJyYW5kLXJlZC0tNzAwOiAjZjMyYTEzO1xuJHhwby1icmFuZC1yZWQtLTYwMDogI2ZmMzMxNztcbiR4cG8tYnJhbmQtcmVkLS01MDA6ICNmZjM5MWM7XG4keHBvLWJyYW5kLXJlZC0tNDAwOiAjZmY1ZTNkO1xuJHhwby1icmFuZC1yZWQtLTMwMDogI2ZmN2U2MDtcbiR4cG8tYnJhbmQtcmVkLS0yMDA6ICNmZmE0OGU7XG4keHBvLWJyYW5kLXJlZC0tMTAwOiAjZmZjOGJhO1xuJHhwby1icmFuZC1yZWQtLTUwOiAjZmNlOGU2O1xuXG4vLyBYUE8gQmxhY2tcbiR4cG8tYmxhY2s6ICMwMDAwMDA7XG4keHBvLWJyYW5kLWJsYWNrLS05MDA6ICR4cG8tYmxhY2s7XG4keHBvLWJyYW5kLWJsYWNrLS04MDA6ICMyNjI2MjY7XG4keHBvLWJyYW5kLWJsYWNrLS03MDA6ICM1NTU1NTU7XG4keHBvLWJyYW5kLWJsYWNrLS02MDA6ICM3YjdiN2I7XG4keHBvLWJyYW5kLWJsYWNrLS01MDA6ICM5ZDlkOWQ7XG4keHBvLWJyYW5kLWJsYWNrLS00MDA6ICM5ZDlkOWQ7XG4keHBvLWJyYW5kLWJsYWNrLS0zMDA6ICNjNGM0YzQ7XG4keHBvLWJyYW5kLWJsYWNrLS0yMDA6ICNkOWQ5ZDk7XG4keHBvLWJyYW5kLWJsYWNrLS0xMDA6ICNlOWU5ZTk7XG4keHBvLWJyYW5kLWJsYWNrLS01MDogI2Y1ZjVmNTtcblxuLy8gWFBPIERhcmsgR3JleVxuJHhwby1icmFuZC1kYXJrLWdyZXk6ICM0MTRhNGM7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tOTAwOiAjMjIyODJiO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTgwMDogJHhwby1icmFuZC1kYXJrLWdyZXk7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNzAwOiAjNjI2ODZjO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTYwMDogIzc1N2Q4MTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS01MDA6ICNhMGE2YWE7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNDAwOiAjYmVjNWM5O1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTMwMDogI2UwZTdlYjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0yMDA6ICNlYmYyZjY7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMTAwOiAjZjBmN2ZiO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTUwOiAjZjRmY2ZmO1xuXG4vLyBYUE8gTWVkaXVtIEdyZXlcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXk6ICM4NDg0ODQ7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS05MDA6ICMyZTJlMmU7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS04MDA6ICM1MDUwNTA7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS03MDA6ICM3MDcwNzA7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS02MDA6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXk7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS01MDA6ICNhZmFmYWY7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS00MDA6ICNjZGNkY2Q7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0zMDA6ICNlZWVlZWU7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA6ICNmM2YzZjM7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0xMDA6ICNmOGY4Zjg7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS01MDogI2ZjZmNmYztcblxuLy8gWFBPIExpZ2h0IEdyZXlcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleTogI2RlZGVkZTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tOTAwOiAjMWYxZjFmO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS04MDA6ICMzZjNmM2Y7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTcwMDogIzVlNWU1ZTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNjAwOiAjNzI3MjcyO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS01MDA6ICM5YTlhOWE7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTQwMDogI2JhYmFiYTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMzAwOiAkeHBvLWJyYW5kLWxpZ2h0LWdyZXk7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTIwMDogI2VjZWNlYztcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMTAwOiAjZjRmNGY0O1xuJHhwby1icmFuZC1saWdodC1ncmV5LS01MDogI2Y5ZjlmOTtcblxuLypcbioqID09PT0gTWFpbiBDb2xvciBQYWxldHRlID09PT1cbiovXG5cbi8vIEJsYWNrIGFuZCBHcmV5XG4keHBvLWdyZXktLTk3NTogIzIxMjEyMTtcbiR4cG8tZ3JleS0tOTUwOiAjMzMzMzMzO1xuJHhwby1ncmV5LS05MDA6ICM0YTRhNGE7XG4keHBvLWdyZXktLTcwMDogIzZmNmY2ZjtcbiR4cG8tZ3JleS0tMzUwOiAjYmRiZGJkO1xuJHhwby1ncmV5LS0zMDA6ICNkOGQ4ZDg7XG4keHBvLWdyZXktLTgwOiAjZjZmNmY2O1xuJHhwby1ncmV5LS0yNTogI2ZhZmFmYTtcblxuJHhwby13aGl0ZTogI2ZmZmZmZjtcblxuLy8gTGlua3MsIEJ1dHRvbnMsIFRhYnNldCBhbmQgVGFicGlsbHNcbiR4cG8tYmx1ZS0tODUwOiAjMGQ0N2ExO1xuJHhwby1ibHVlLS04MDA6ICMxOTc2ZDI7XG4keHBvLWJsdWUtLTM1MDogIzIxOTZmMztcblxuLy8gRXJyb3IgU3RhdGVcbiR4cG8tcmVkLS0yMDA6ICNiNzFjMWM7XG4keHBvLXJlZC0tMTUwOiAjZDMyZjJmO1xuJHhwby1yZWQtLTUwOiAjZmNlZWViO1xuXG4vLyBTdWNjZXNzIFN0YXRlXG4keHBvLWdyZWVuLS02MDA6ICMzODhlM2M7XG4keHBvLWdyZWVuLS00NTA6ICM0Y2FmNTA7XG4keHBvLWdyZWVuLS01MDogI2YxZjlmMTtcblxuLy8gV2FybmluZyBTdGF0ZVxuJHhwby15ZWxsb3ctLTM1MDogI2ZmZDYwMDtcblxuJHhwby1vcmFuZ2UtLTM1MDogI2ZmNmQwMDtcblxuLy8gSW5mbyBTdGF0ZVxuJHhwby1ibHVlLS03MDA6ICMwMDkxZWE7XG5cbi8vIFRyYW5zYWN0aW9uYWwgQ2VsbHNcbiR4cG8tZ3JleS0tMTUwOiAjZWNlZmYxO1xuXG4keHBvLWJsdWVHcmV5LS03MDA6ICNjZmQ4ZGM7XG5cbi8vIEFjY2VudCBDb2xvcnNcbiR4cG8tcGluay0tNzAwOiAjYzUxMTYyO1xuXG4keHBvLXRlYWwtLTcwMDogIzAwYmZhNTtcblxuJHhwby1ibHVlLS04MjU6ICMzMDRmZmU7XG4keHBvLWJsdWUtLTIwMDogI2U0ZWZmYTtcblxuJHhwby1hY2NlbnQtcmVkLS00MDA6ICR4cG8tYnJhbmQtcmVkLS00MDA7XG4keHBvLWFjY2VudC1yZWQtLTEwMDogJHhwby1icmFuZC1yZWQtLTEwMDtcblxuJHhwby1wdXJwbGUtLTcwMDogIzYyMDBlYTtcblxuJHhwby1ncmVlbi0tMjAwOiAjYTRlNTliO1xuXG4keHBvLXllbGxvdy0tMjAwOiAjZmZmOWM0O1xuXG4vKlxuKiogPT09PSBERVBSRUNBVEVEIENPTE9SUyA9PT09XG4qL1xuXG4vKlxuKiogV0FSTklORzogVEhJUyBWQVJJQUJMRVMgV0lMTCBCRSBSRU1PVkVEIFNPT05cbiovXG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTEwMDogI2U4ZjVmZTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMTUwOiAjZTNmMmZkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0zMDA6ICMwZDk0ZjQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTQwMDogIzA4NjhhYztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tOTAwOiAjMDUzYzYzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTEwMDogI2ZmZjhlNTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS0zMDA6ICNmZmNmNGQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tNDAwOiAjZmZiYTAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTcwMDogI2ZmZDYwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS05MDA6ICM0ZDM4MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS0xMDA6ICNjOGZmZGY7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS0zMDA6ICMxY2U4NTU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS0zNTA6ICMwMGM4NTM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS00MDA6ICMxMWE2M2I7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS03MDA6ICMwMGM4NTM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS05MDA6ICMwYTYxMjI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTUwOiAjZmJmYmZiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS02MDogI2ZhZmFmYTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMTAwOiAjZjNmM2YzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0yMDA6ICNlNmU2ZTY7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTI1MDogI2RkZGRkZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNDAwOiAjOWI5YjliO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS02MDA6ICM3NTc1NzU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTY1MDogIzg1ODU4NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNzUwOiAjNTc1NzU3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS05MTU6ICM0MzQ5NGQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTkzMDogIzQyNDI0Mjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMTAwMDogIzE3MTcxNztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMTEwMDogIzIxMjEyMTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0xMDA6ICNmZmVlZWU7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMjUwOiAjZGQyYzAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTMwMDogI2ZmMjIyMjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS00MDA6ICNkNTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNjAwOiAjY2MwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTcwMDogI2QzMmYyZjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS05MDA6ICM1NTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tMTAwOiAjZmZkZmNhO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTMwMDogI2ZmOTk1Nztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS00MDA6ICNmZjY0MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tOTAwOiAjOGIzNzAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1mb250Q29sb3ItLWxpbms6ICMwODY4YWM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJhY2tncm91bmRDb2xvci0tYm9keTogI2YzZjNmMztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLWVycm9yOiAjZDUwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0tc3VjY2VzczogIzExYTYzYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLXdhcm46ICNmZmJhMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1pbmZvOiAjNGE0YTRhO1xuXG4vKlxuKiogPT09PSBDT0xPUlMgQVBQTElFRCA9PT09XG4qL1xuJHhwby1mb250Q29sb3ItLXByaW1hcnk6ICR4cG8tZ3JleS0tOTAwO1xuXG4vKlxuKiogPT09PSBUeXBvZ3JhcGh5ID09PT1cbiovXG4vLyBQdXR0aW5nIHNpemVzIGluIG1hcHMgdG8gYWxsb3cgZHluYW1pYyBzaXppbmcgZm9yIGV4dGVybmFsXG4vLyBSb290IGZvbnQtc2l6ZShzKSBhbHdheXMgaW4gcHhcbiR4cG8tZm9udFNpemUtLXJvb3Q6IDE0cHg7XG4keHBvLWZvbnRTaXplLS1zbWFsbDogMC44NzVyZW07IC8vMTJweFxuJHhwby1mb250U2l6ZS0tbWVkaXVtOiAxcmVtOyAvLzE0cHhcbiR4cG8tZm9udFNpemUtLWxhcmdlOiAxLjE0M3JlbTsgLy8xNnB4XG4keHBvLWZvbnRTaXplLS1leHRyYUxhcmdlOiAxLjI4NXJlbTsgLy8xOHB4XG4keHBvLWZvbnRTaXplLS14eGxhcmdlOiAxLjcxNHJlbTsgLy8yNHB4XG5cbiR4cG8taGVhZGVyLWZvbnRTaXplLS14c21hbGw6IDFyZW07IC8vMTRweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXNtYWxsOiAxLjE0M3JlbTsgLy8xNnB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tbWVkaXVtOiAxLjI4NXJlbTsgLy8xOHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tbGFyZ2U6IDEuNDI4cmVtOyAvLzIwcHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS14bGFyZ2U6IDEuNTcxcmVtOyAvLzIycHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS14eGxhcmdlOiAxLjg1N3JlbTsgLy8yNnB4XG5cbiR4cG8tZm9udEZhbWlseS0tcHJpbWFyeTogJ1JvYm90bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBzYW5zLXNlcmlmO1xuJHhwby1mb250RmFtaWx5LS1yb2JvdG9XaWRlQmxhY2s6ICdSb2JvdG8gV2lkZSBCbGFjaycsICdSb2JvdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgc2Fucy1zZXJpZjtcblxuJHhwby1mb250V2VpZ2h0LS1saWdodDogMzAwO1xuJHhwby1mb250V2VpZ2h0LS1ub3JtYWw6IDQwMDtcbiR4cG8tZm9udFdlaWdodC0tbWVkaXVtOiA1MDA7IC8vIERFUFJFQ0FURUQgfCBkbyBub3QgZGVsZXRlIHNpbmNlIGl0IGlzIHN0aWxsIGJlaW5nIHVzZWQgaW4gc29tZSBwcm9qZWN0c1xuJHhwby1mb250V2VpZ2h0LS1ib2xkOiA1MDA7XG4keHBvLWZvbnRXZWlnaHQtLWV4dHJhQm9sZDogNjAwO1xuJHhwby1mb250V2VpZ2h0LS1ib2xkZXI6IDcwMDtcblxuJHhwby1saW5lSGVpZ2h0LS14bDogMi4yODZyZW07IC8vIDMycHhcbiR4cG8tbGluZUhlaWdodC0tbGc6IDEuNzE0cmVtOyAvLyAyNHB4XG4keHBvLWxpbmVIZWlnaHQtLW1kOiAxLjU3MXJlbTsgLy8gMjJweFxuJHhwby1saW5lSGVpZ2h0LS1zbTogMS40MjlyZW07IC8vIDIwcHhcblxuJHhwby1saW5lSGVpZ2h0LS1iYXNlOiAyNHB4OyAvLyBmb3IgbWVkaXVtIGFuZCBsYXJnZSBmb250IHNpemVcbiR4cG8tbGluZUhlaWdodC0tbWVkaXVtOiAxOHB4OyAvLyBmb3IgbWVkaXVtIGZvbnQgc2l6ZXNcbiR4cG8tbGluZUhlaWdodC0tc21hbGw6IDE2cHg7IC8vIGZvciBzbWFsbCBmb250IHNpemVcblxuJHhwby1oZWFkZXItbGluZUhlaWdodC0tc21hbGw6IDEuMTQzOyAvLyBERVBSRUNBVEVEXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1tZWRpdW06IDEuMTQzOyAvLyBERVBSRUNBVEVEXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1sYXJnZTogMS4yODY7IC8vIERFUFJFQ0FURURcblxuJHhwby1sZXR0ZXJTcGFjaW5nLS1iYXNlOiAwLjJweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLXNtYWxsOiAwLjNweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLW1lZGl1bTogMC4zM3B4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbGFyZ2U6IDAuMzhweDtcblxuLy8gPT09PSBMYXlvdXQgPT09PVxuJHhwby1jb250ZW50U3BhY2luZzogMTZweDtcblxuLy8gQnJlYWtwb2ludHNcbiR4cG8tYnJlYWtwb2ludC0tc21hbGwteHM6IDQ4MHB4O1xuJHhwby1icmVha3BvaW50LS1zbWFsbDogNjAwcHg7XG4keHBvLWJyZWFrcG9pbnQtLW1lZGl1bTogNzY4cHg7XG4keHBvLWJyZWFrcG9pbnQtLWxhcmdlOiAxMDI1cHg7XG4keHBvLWJyZWFrcG9pbnQtLXhMYXJnZTogMTQ0MHB4O1xuXG4keHBvLXNlbGVjdC1iYWNrZ3JvdW5kQ29sb3Itb3B0aW9uT25Ib3ZlcjogJHhwby1ibHVlLS0yMDA7XG5cbi8vIC0tIE5HWC1VSSBTcGVjaWZpYyAtLVxuJG5neC1mb290ZXItaGVpZ2h0OiA0MnB4O1xuJG5neC10YWItaGVhZGVyLWhlaWdodDogNDBweDtcbiRuZ3gtdGFibGUtcm93LWhlaWdodDogMzBweDtcblxuJG5neC1pY29uLXNpemU6IDI0cHg7IC8vIFRPRE86IERlcHJlY2F0ZSB0aGlzIHZhcmlhYmxlXG4keHBvLWljb24tc2l6ZS0tc3RhbmRhcmQ6IDIwcHg7XG4keHBvLWljb24tc2l6ZS0tc21hbGw6IDE4cHg7XG4keHBvLWljb24tc2l6ZS0tbGFyZ2U6IDI0cHg7XG5cbiRuZ3gtdGhlQmxhY2tSb2JvdG86IDkwMDtcblxuJHhwby1pbnB1dC1oZWlnaHQtLWRlZmF1bHQ6IDMwcHg7XG4keHBvLWlucHV0LWhlaWdodC0tdHdvTGluZXM6IDQ1cHg7XG5cbiRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoOiAxcHg7XG5cbiRuZ3gtaW5wdXQtY29sb3Itb25Ib3ZlcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMjAwO1xuJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tZGFyazogJHhwby1ibGFjaztcbiRuZ3gtaW5wdXQtY29sb3Itb25BY3RpdmUtLWxpZ2h0OiAkeHBvLXdoaXRlO1xuJG5neC1pbnB1dC1jb2xvci1ib3JkZXI6ICR4cG8tZ3JleS0tMzAwO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlZC0tZGFyazogJHhwby1ncmV5LS0zNTA7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGUtLWxpZ2h0ZXI6ICR4cG8td2hpdGU7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1saWdodDogJHhwby1ncmV5LS04MDtcblxuJG5neC1idXR0b24tbGluZUhlaWdodDogMzZweDtcbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQtLXNtYWxsOiAyOHB4O1xuJG5neC1idXR0b24tbGluZUhlaWdodC0tbGFyZ2U6IDQ2cHg7XG4kbmd4LWJ1dHRvbi1hbmltYXRpb25EdXJhdGlvbjogMjAwbXM7XG5cbiRuZ3gtaGVhZGVyLWhlaWdodDogNDBweDtcbi8vIEZvciB1c2Ugd2hlbiBhIGhvdmVyIGlzIG5lZWRlZCBvbiBhIHdoaXRlIGJhY2tncm91bmQuXG4kbmd4LXdoaXRlQWZmb3JkYW5jZS1vbkhvdmVyLWNvbG9yOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA7XG5cbiRuZ3gtbWVudS1iYWNrZ3JvdW5kQ29sb3I6ICR4cG8td2hpdGU7XG5cbi8qXG4qKiA9PT09IFNOQUNLQkFSIERFUFJFQ0FURUQgVkFSSUFCTEVTID09PT1cbiovXG5cbi8qXG4qKiBXQVJOSU5HOiBUSElTIFZBUklBQkxFUyBXSUxMIEJFIFJFTU9WRUQgU09PTlxuKi9cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1zdWNjZXNzOiAkeHBvLWdyZWVuLS00NTA7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1lcnJvcjogJHhwby1yZWQtLTE1MDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLWluZm86ICMwMjg4ZDE7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS13YXJuOiAjZmJjMDJkO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLXN1Y2Nlc3M6ICR4cG8tZ3JlZW4tLTYwMDtcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0tZXJyb3I6ICR4cG8tcmVkLS0yMDA7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0taW5mbzogIzAxNTc5YjtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja0Jhci1tYXJnaW5Ub3A6IDMycHg7XG5cbi8vQmFkZ2VcbiRfbWF0QmFkZ2VDb250ZW50LWJhY2tncm91bmRDb2xvci0tbmVnYXRpdmU6ICR4cG8tcmVkLS01MDtcbiRfbWF0QmFkZ2VDb250ZW50LWNvbG9yLS1uZWdhdGl2ZTogI2RkMmMwMDtcbiRfbWF0QmFkZ2VDb250ZW50LWJhY2tncm91bmRDb2xvci0tcG9zaXRpdmU6ICR4cG8tZ3JlZW4tLTUwO1xuXG4kbmd4LW1lbnUtYmFja2dyb3VuZENvbG9yLW9uSG92ZXI6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwO1xuLy8gVXNlZCBhcyBhIHNwYWNlciBmb3IgZmxleGVkIGNoaWxkcmVuXG4vLyBUT0RPOiBNb3ZlIGFsbCBpbnN0YW5jZXMgdG8gdGhlIHV0aWxpdGllcyBkZWZpbml0aW9uXG4uZmxleC0tc3RyZXRjaCB7XG4gIGZsZXg6IDE7XG59XG5cbi8vIC0tLSBEaWFsb2cgLS0tXG4kbmd4LWRpYWxvZy1oZWFkZXItaGVpZ2h0OiA0OHB4O1xuJG5neC1kaWFsb2ctZm9vdGVyLWhlaWdodDogNjRweDtcblxuLy8gLS0tIFRyYW5zaXRpb25zIC0tLVxuJHhwby10cmFuc2l0aW9uLTIwMDogYWxsIDIwMG1zIGVhc2Utb3V0O1xuXG4vLyAtLS0gQ29udGV4dHVhbCBIZWFkZXIgLS0tXG4kbmd4LUNvbnRleHR1YWxIZWFkZXItc2VwYXJhdG9yLS1jb2xvcjogJHhwby1ncmV5LS0zNTA7XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byBXaWRlIEJsYWNrJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogOTAwO1xuICBzcmM6IHVybCgnaHR0cHM6Ly94cG9kb3Rjb20uYXp1cmVlZGdlLm5ldC94cG8vZmlsZXMvcm9ib3RvLXdpZGUtLWJsYWNrLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgIHVybCgnaHR0cHM6Ly94cG9kb3Rjb20uYXp1cmVlZGdlLm5ldC94cG8vZmlsZXMvcm9ib3RvLXdpZGUtLWJsYWNrLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbn1cblxuXG4qLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbio6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG46cm9vdCB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tcm9vdDtcbn1cblxuaHRtbCxcbmJvZHkge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMDtcbn1cblxuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLWJhc2U7XG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG59XG5cbmJvZHkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWJhY2tncm91bmRDb2xvci0tYm9keTtcbiAgY29sb3I6ICR4cG8tZm9udENvbG9yLS1wcmltYXJ5O1xuICBmb250LWZhbWlseTogJHhwby1mb250RmFtaWx5LS1wcmltYXJ5O1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ub3JtYWw7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWxldHRlclNwYWNpbmctLWJhc2U7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLWJhc2U7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZm9vdGVyLFxuaGVhZGVyLFxubmF2LFxuc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5oMSxcbmgyLFxuaDMge1xuICBtYXJnaW46ICgkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMikgMDtcbn1cblxuaDEge1xuICBAaW5jbHVkZSBUZXh0VHJlYXRtZW50LWhlYWRlci0tbGFyZ2UoKTtcbn1cblxuaDIge1xuICBAaW5jbHVkZSBUZXh0VHJlYXRtZW50LWhlYWRlci0tbWVkaXVtKCk7XG59XG5cbmgzIHtcbiAgQGluY2x1ZGUgVGV4dFRyZWF0bWVudC1oZWFkZXItLXNtYWxsKCk7XG59XG5cbnAge1xuICBtYXJnaW46IDA7XG59XG5cbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbmhyIHtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgJHhwby1ncmV5LS0zMDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAkeHBvLWNvbnRlbnRTcGFjaW5nIDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICR4cG8tYmx1ZS0tNDAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHM7XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICR4cG8tYmx1ZS0tMzAwO1xuICB9XG59XG5cbnVsIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmR0IHtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbn1cblxuZGQge1xuICBtYXJnaW46IDAgMCAoJHhwby1jb250ZW50U3BhY2luZyAvIDIpO1xufVxuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG59XG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmV5LS0zMDA7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgcGFkZGluZzogMC4yZW0gMC4zZW07XG59XG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxubWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG5hdWRpbyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIG1hcmdpbjogMDtcbn1cblxuYnV0dG9uLFxuaW5wdXQge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbmJ1dHRvbixcbmh0bWwgW3R5cGU9J2J1dHRvbiddLFxuW3R5cGU9J3Jlc2V0J10sXG5bdHlwZT0nc3VibWl0J10ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9J2J1dHRvbiddOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9J3Jlc2V0J106Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT0nc3VibWl0J106Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPSdidXR0b24nXTotbW96LWZvY3VzcmluZyxcblt0eXBlPSdyZXNldCddOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9J3N1Ym1pdCddOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbn1cblxubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbnByb2dyZXNzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cblt0eXBlPSdjaGVja2JveCddLFxuW3R5cGU9J3JhZGlvJ10ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAwO1xufVxuXG5bdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cblt0eXBlPSdzZWFyY2gnXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbn1cblxuW3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuW3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIGZvbnQ6IGluaGVyaXQ7XG59XG5cbmRldGFpbHMsXG5tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbmNhbnZhcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cblxuLy8gTWl4aW4gdGhhdCByZW5kZXJzIGFsbCBvZiB0aGUgY29yZSBzdHlsZXMgdGhhdCBhcmUgbm90IHRoZW1lLWRlcGVuZGVudC5cbkBtaXhpbiB4cG8tbWF0LWNvcmUoJHR5cG9ncmFwaHktY29uZmlnOiBudWxsKSB7XG4gIC8vIFByb3ZpZGVzIGV4dGVybmFsIENTUyBjbGFzc2VzIGZvciBlYWNoIGVsZXZhdGlvbiB2YWx1ZS4gRWFjaCBDU1MgY2xhc3MgaXMgZm9ybWF0dGVkIGFzXG4gIC8vIGBtYXQtZWxldmF0aW9uLXokelZhbHVlYCB3aGVyZSBgJHpWYWx1ZWAgY29ycmVzcG9uZHMgdG8gdGhlIHotc3BhY2UgdG8gd2hpY2ggdGhlIGVsZW1lbnQgaXNcbiAgLy8gZWxldmF0ZWQuXG4gIEBmb3IgJHpWYWx1ZSBmcm9tIDAgdGhyb3VnaCAyNCB7XG4gICAgLiN7JG1hdC1lbGV2YXRpb24tcHJlZml4fSN7JHpWYWx1ZX0ge1xuICAgICAgQGluY2x1ZGUgbWF0LWVsZXZhdGlvbigkelZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBhbmd1bGFyLW1hdGVyaWFsLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHktY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXJpcHBsZSgpO1xuICBAaW5jbHVkZSBjZGstYTExeSgpO1xuICBAaW5jbHVkZSBjZGstb3ZlcmxheSgpO1xuICAvLyBAaW5jbHVkZSBjZGstdGV4dC1maWVsZCgpO1xufVxuXG4vLyBNaXhpbiB0aGF0IHJlbmRlcnMgYWxsIG9mIHRoZSBjb3JlIHN0eWxlcyB0aGF0IGRlcGVuZCBvbiB0aGUgdGhlbWUuXG5AbWl4aW4geHBvLW1hdC1jb3JlLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtcmlwcGxlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1vcHRpb24tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LW9wdGdyb3VwLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1wc2V1ZG8tY2hlY2tib3gtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNsaWRlLXRvZ2dsZS10aGVtZSgkdGhlbWUpO1xuXG4gIC8vIFdyYXBwZXIgZWxlbWVudCB0aGF0IHByb3ZpZGVzIHRoZSB0aGVtZSBiYWNrZ3JvdW5kIHdoZW4gdGhlIHVzZXIncyBjb250ZW50IGlzbid0XG4gIC8vIGluc2lkZSBvZiBhIGBtYXQtc2lkZW5hdi1jb250YWluZXJgLiBOb3RlIHRoYXQgd2UgbmVlZCB0byBleGNsdWRlIHRoZSBhbXBlcnNhbmRcbiAgLy8gc2VsZWN0b3IgaW4gY2FzZSB0aGUgbWl4aW4gaXMgaW5jbHVkZWQgYXQgdGhlIHRvcCBsZXZlbC5cbiAgLy8gLm1hdC1hcHAtYmFja2dyb3VuZCN7aWYoJiwgJywgJi5tYXQtYXBwLWJhY2tncm91bmQnLCAnJyl9IHtcbiAgLy8gICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAvLyAgICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuICAvLyAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAvLyB9XG5cbiAgLy8gTWFya2VyIHRoYXQgaXMgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgdXNlciBoYXMgYWRkZWQgYSB0aGVtZSB0byB0aGVpciBwYWdlLlxuICBAYXQtcm9vdCB7XG4gICAgLm1hdC10aGVtZS1sb2FkZWQtbWFya2VyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB4cG8tY2FyZC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAueHBvLUNhcmQge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC1oZWFkZXItLXNtYWxsKCkge1xuICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1zbWFsbDtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLXNtYWxsO1xuICBsaW5lLWhlaWdodDogJHhwby1oZWFkZXItbGluZUhlaWdodC0tc21hbGw7XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tbWVkaXVtKCkge1xuICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1tZWRpdW07XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1tZWRpdW07XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1tZWRpdW07XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tbGFyZ2UoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLWxhcmdlO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbGFyZ2U7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1sYXJnZTtcbn1cblxuLy8gUmVndWxhciB0ZXh0IG1peGluc1xuQG1peGluIFRleHRUcmVhdG1lbnQtLXNtYWxsKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLXNtYWxsO1xuICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbWFsbDtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtLW1lZGl1bSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LS1sYXJnZSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1sYXJnZTtcbn1cblxuXG4vKlxuKiogPT09PSBCYXNpYyBjb2xvcnMgPT09PVxuKi9cblxuLypcbioqID09PT0gWFBPIEJyYW5kIENvbG9yIFBhbGV0dGUgPT09PVxuKi9cblxuLy8gWFBPIFJlZFxuJHhwby1icmFuZC1yZWQ6ICNjYzAwMDA7XG4keHBvLWJyYW5kLXJlZC0tOTAwOiAkeHBvLWJyYW5kLXJlZDtcbiR4cG8tYnJhbmQtcmVkLS04MDA6ICNlNDIxMGU7XG4keHBvLWJyYW5kLXJlZC0tNzAwOiAjZjMyYTEzO1xuJHhwby1icmFuZC1yZWQtLTYwMDogI2ZmMzMxNztcbiR4cG8tYnJhbmQtcmVkLS01MDA6ICNmZjM5MWM7XG4keHBvLWJyYW5kLXJlZC0tNDAwOiAjZmY1ZTNkO1xuJHhwby1icmFuZC1yZWQtLTMwMDogI2ZmN2U2MDtcbiR4cG8tYnJhbmQtcmVkLS0yMDA6ICNmZmE0OGU7XG4keHBvLWJyYW5kLXJlZC0tMTAwOiAjZmZjOGJhO1xuJHhwby1icmFuZC1yZWQtLTUwOiAjZmNlOGU2O1xuXG4vLyBYUE8gQmxhY2tcbiR4cG8tYmxhY2s6ICMwMDAwMDA7XG4keHBvLWJyYW5kLWJsYWNrLS05MDA6ICR4cG8tYmxhY2s7XG4keHBvLWJyYW5kLWJsYWNrLS04MDA6ICMyNjI2MjY7XG4keHBvLWJyYW5kLWJsYWNrLS03MDA6ICM1NTU1NTU7XG4keHBvLWJyYW5kLWJsYWNrLS02MDA6ICM3YjdiN2I7XG4keHBvLWJyYW5kLWJsYWNrLS01MDA6ICM5ZDlkOWQ7XG4keHBvLWJyYW5kLWJsYWNrLS00MDA6ICM5ZDlkOWQ7XG4keHBvLWJyYW5kLWJsYWNrLS0zMDA6ICNjNGM0YzQ7XG4keHBvLWJyYW5kLWJsYWNrLS0yMDA6ICNkOWQ5ZDk7XG4keHBvLWJyYW5kLWJsYWNrLS0xMDA6ICNlOWU5ZTk7XG4keHBvLWJyYW5kLWJsYWNrLS01MDogI2Y1ZjVmNTtcblxuLy8gWFBPIERhcmsgR3JleVxuJHhwby1icmFuZC1kYXJrLWdyZXk6ICM0MTRhNGM7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tOTAwOiAjMjIyODJiO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTgwMDogJHhwby1icmFuZC1kYXJrLWdyZXk7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNzAwOiAjNjI2ODZjO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTYwMDogIzc1N2Q4MTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS01MDA6ICNhMGE2YWE7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNDAwOiAjYmVjNWM5O1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTMwMDogI2UwZTdlYjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0yMDA6ICNlYmYyZjY7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMTAwOiAjZjBmN2ZiO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTUwOiAjZjRmY2ZmO1xuXG4vLyBYUE8gTWVkaXVtIEdyZXlcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXk6ICM4NDg0ODQ7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS05MDA6ICMyZTJlMmU7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS04MDA6ICM1MDUwNTA7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS03MDA6ICM3MDcwNzA7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS02MDA6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXk7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS01MDA6ICNhZmFmYWY7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS00MDA6ICNjZGNkY2Q7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0zMDA6ICNlZWVlZWU7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA6ICNmM2YzZjM7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0xMDA6ICNmOGY4Zjg7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS01MDogI2ZjZmNmYztcblxuLy8gWFBPIExpZ2h0IEdyZXlcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleTogI2RlZGVkZTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tOTAwOiAjMWYxZjFmO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS04MDA6ICMzZjNmM2Y7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTcwMDogIzVlNWU1ZTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNjAwOiAjNzI3MjcyO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS01MDA6ICM5YTlhOWE7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTQwMDogI2JhYmFiYTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMzAwOiAkeHBvLWJyYW5kLWxpZ2h0LWdyZXk7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTIwMDogI2VjZWNlYztcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMTAwOiAjZjRmNGY0O1xuJHhwby1icmFuZC1saWdodC1ncmV5LS01MDogI2Y5ZjlmOTtcblxuLypcbioqID09PT0gTWFpbiBDb2xvciBQYWxldHRlID09PT1cbiovXG5cbi8vIEJsYWNrIGFuZCBHcmV5XG4keHBvLWdyZXktLTk3NTogIzIxMjEyMTtcbiR4cG8tZ3JleS0tOTUwOiAjMzMzMzMzO1xuJHhwby1ncmV5LS05MDA6ICM0YTRhNGE7XG4keHBvLWdyZXktLTcwMDogIzZmNmY2ZjtcbiR4cG8tZ3JleS0tMzUwOiAjYmRiZGJkO1xuJHhwby1ncmV5LS0zMDA6ICNkOGQ4ZDg7XG4keHBvLWdyZXktLTgwOiAjZjZmNmY2O1xuJHhwby1ncmV5LS0yNTogI2ZhZmFmYTtcblxuJHhwby13aGl0ZTogI2ZmZmZmZjtcblxuLy8gTGlua3MsIEJ1dHRvbnMsIFRhYnNldCBhbmQgVGFicGlsbHNcbiR4cG8tYmx1ZS0tODUwOiAjMGQ0N2ExO1xuJHhwby1ibHVlLS04MDA6ICMxOTc2ZDI7XG4keHBvLWJsdWUtLTM1MDogIzIxOTZmMztcblxuLy8gRXJyb3IgU3RhdGVcbiR4cG8tcmVkLS0yMDA6ICNiNzFjMWM7XG4keHBvLXJlZC0tMTUwOiAjZDMyZjJmO1xuJHhwby1yZWQtLTUwOiAjZmNlZWViO1xuXG4vLyBTdWNjZXNzIFN0YXRlXG4keHBvLWdyZWVuLS02MDA6ICMzODhlM2M7XG4keHBvLWdyZWVuLS00NTA6ICM0Y2FmNTA7XG4keHBvLWdyZWVuLS01MDogI2YxZjlmMTtcblxuLy8gV2FybmluZyBTdGF0ZVxuJHhwby15ZWxsb3ctLTM1MDogI2ZmZDYwMDtcblxuJHhwby1vcmFuZ2UtLTM1MDogI2ZmNmQwMDtcblxuLy8gSW5mbyBTdGF0ZVxuJHhwby1ibHVlLS03MDA6ICMwMDkxZWE7XG5cbi8vIFRyYW5zYWN0aW9uYWwgQ2VsbHNcbiR4cG8tZ3JleS0tMTUwOiAjZWNlZmYxO1xuXG4keHBvLWJsdWVHcmV5LS03MDA6ICNjZmQ4ZGM7XG5cbi8vIEFjY2VudCBDb2xvcnNcbiR4cG8tcGluay0tNzAwOiAjYzUxMTYyO1xuXG4keHBvLXRlYWwtLTcwMDogIzAwYmZhNTtcblxuJHhwby1ibHVlLS04MjU6ICMzMDRmZmU7XG4keHBvLWJsdWUtLTIwMDogI2U0ZWZmYTtcblxuJHhwby1hY2NlbnQtcmVkLS00MDA6ICR4cG8tYnJhbmQtcmVkLS00MDA7XG4keHBvLWFjY2VudC1yZWQtLTEwMDogJHhwby1icmFuZC1yZWQtLTEwMDtcblxuJHhwby1wdXJwbGUtLTcwMDogIzYyMDBlYTtcblxuJHhwby1ncmVlbi0tMjAwOiAjYTRlNTliO1xuXG4keHBvLXllbGxvdy0tMjAwOiAjZmZmOWM0O1xuXG4vKlxuKiogPT09PSBERVBSRUNBVEVEIENPTE9SUyA9PT09XG4qL1xuXG4vKlxuKiogV0FSTklORzogVEhJUyBWQVJJQUJMRVMgV0lMTCBCRSBSRU1PVkVEIFNPT05cbiovXG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTEwMDogI2U4ZjVmZTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMTUwOiAjZTNmMmZkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0zMDA6ICMwZDk0ZjQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTQwMDogIzA4NjhhYztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tOTAwOiAjMDUzYzYzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTEwMDogI2ZmZjhlNTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS0zMDA6ICNmZmNmNGQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tNDAwOiAjZmZiYTAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTcwMDogI2ZmZDYwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS05MDA6ICM0ZDM4MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS0xMDA6ICNjOGZmZGY7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS0zMDA6ICMxY2U4NTU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS0zNTA6ICMwMGM4NTM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS00MDA6ICMxMWE2M2I7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS03MDA6ICMwMGM4NTM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS05MDA6ICMwYTYxMjI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTUwOiAjZmJmYmZiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS02MDogI2ZhZmFmYTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMTAwOiAjZjNmM2YzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0yMDA6ICNlNmU2ZTY7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTI1MDogI2RkZGRkZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNDAwOiAjOWI5YjliO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS02MDA6ICM3NTc1NzU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTY1MDogIzg1ODU4NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNzUwOiAjNTc1NzU3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS05MTU6ICM0MzQ5NGQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTkzMDogIzQyNDI0Mjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMTAwMDogIzE3MTcxNztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMTEwMDogIzIxMjEyMTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0xMDA6ICNmZmVlZWU7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMjUwOiAjZGQyYzAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTMwMDogI2ZmMjIyMjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS00MDA6ICNkNTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNjAwOiAjY2MwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTcwMDogI2QzMmYyZjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS05MDA6ICM1NTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tMTAwOiAjZmZkZmNhO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTMwMDogI2ZmOTk1Nztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS00MDA6ICNmZjY0MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tOTAwOiAjOGIzNzAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1mb250Q29sb3ItLWxpbms6ICMwODY4YWM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJhY2tncm91bmRDb2xvci0tYm9keTogI2YzZjNmMztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLWVycm9yOiAjZDUwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0tc3VjY2VzczogIzExYTYzYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLXdhcm46ICNmZmJhMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1pbmZvOiAjNGE0YTRhO1xuXG4vKlxuKiogPT09PSBDT0xPUlMgQVBQTElFRCA9PT09XG4qL1xuJHhwby1mb250Q29sb3ItLXByaW1hcnk6ICR4cG8tZ3JleS0tOTAwO1xuXG4vKlxuKiogPT09PSBUeXBvZ3JhcGh5ID09PT1cbiovXG4vLyBQdXR0aW5nIHNpemVzIGluIG1hcHMgdG8gYWxsb3cgZHluYW1pYyBzaXppbmcgZm9yIGV4dGVybmFsXG4vLyBSb290IGZvbnQtc2l6ZShzKSBhbHdheXMgaW4gcHhcbiR4cG8tZm9udFNpemUtLXJvb3Q6IDE0cHg7XG4keHBvLWZvbnRTaXplLS1zbWFsbDogMC44NzVyZW07IC8vMTJweFxuJHhwby1mb250U2l6ZS0tbWVkaXVtOiAxcmVtOyAvLzE0cHhcbiR4cG8tZm9udFNpemUtLWxhcmdlOiAxLjE0M3JlbTsgLy8xNnB4XG4keHBvLWZvbnRTaXplLS1leHRyYUxhcmdlOiAxLjI4NXJlbTsgLy8xOHB4XG4keHBvLWZvbnRTaXplLS14eGxhcmdlOiAxLjcxNHJlbTsgLy8yNHB4XG5cbiR4cG8taGVhZGVyLWZvbnRTaXplLS14c21hbGw6IDFyZW07IC8vMTRweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXNtYWxsOiAxLjE0M3JlbTsgLy8xNnB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tbWVkaXVtOiAxLjI4NXJlbTsgLy8xOHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tbGFyZ2U6IDEuNDI4cmVtOyAvLzIwcHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS14bGFyZ2U6IDEuNTcxcmVtOyAvLzIycHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS14eGxhcmdlOiAxLjg1N3JlbTsgLy8yNnB4XG5cbiR4cG8tZm9udEZhbWlseS0tcHJpbWFyeTogJ1JvYm90bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBzYW5zLXNlcmlmO1xuJHhwby1mb250RmFtaWx5LS1yb2JvdG9XaWRlQmxhY2s6ICdSb2JvdG8gV2lkZSBCbGFjaycsICdSb2JvdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgc2Fucy1zZXJpZjtcblxuJHhwby1mb250V2VpZ2h0LS1saWdodDogMzAwO1xuJHhwby1mb250V2VpZ2h0LS1ub3JtYWw6IDQwMDtcbiR4cG8tZm9udFdlaWdodC0tbWVkaXVtOiA1MDA7IC8vIERFUFJFQ0FURUQgfCBkbyBub3QgZGVsZXRlIHNpbmNlIGl0IGlzIHN0aWxsIGJlaW5nIHVzZWQgaW4gc29tZSBwcm9qZWN0c1xuJHhwby1mb250V2VpZ2h0LS1ib2xkOiA1MDA7XG4keHBvLWZvbnRXZWlnaHQtLWV4dHJhQm9sZDogNjAwO1xuJHhwby1mb250V2VpZ2h0LS1ib2xkZXI6IDcwMDtcblxuJHhwby1saW5lSGVpZ2h0LS14bDogMi4yODZyZW07IC8vIDMycHhcbiR4cG8tbGluZUhlaWdodC0tbGc6IDEuNzE0cmVtOyAvLyAyNHB4XG4keHBvLWxpbmVIZWlnaHQtLW1kOiAxLjU3MXJlbTsgLy8gMjJweFxuJHhwby1saW5lSGVpZ2h0LS1zbTogMS40MjlyZW07IC8vIDIwcHhcblxuJHhwby1saW5lSGVpZ2h0LS1iYXNlOiAyNHB4OyAvLyBmb3IgbWVkaXVtIGFuZCBsYXJnZSBmb250IHNpemVcbiR4cG8tbGluZUhlaWdodC0tbWVkaXVtOiAxOHB4OyAvLyBmb3IgbWVkaXVtIGZvbnQgc2l6ZXNcbiR4cG8tbGluZUhlaWdodC0tc21hbGw6IDE2cHg7IC8vIGZvciBzbWFsbCBmb250IHNpemVcblxuJHhwby1oZWFkZXItbGluZUhlaWdodC0tc21hbGw6IDEuMTQzOyAvLyBERVBSRUNBVEVEXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1tZWRpdW06IDEuMTQzOyAvLyBERVBSRUNBVEVEXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1sYXJnZTogMS4yODY7IC8vIERFUFJFQ0FURURcblxuJHhwby1sZXR0ZXJTcGFjaW5nLS1iYXNlOiAwLjJweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLXNtYWxsOiAwLjNweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLW1lZGl1bTogMC4zM3B4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbGFyZ2U6IDAuMzhweDtcblxuLy8gPT09PSBMYXlvdXQgPT09PVxuJHhwby1jb250ZW50U3BhY2luZzogMTZweDtcblxuLy8gQnJlYWtwb2ludHNcbiR4cG8tYnJlYWtwb2ludC0tc21hbGwteHM6IDQ4MHB4O1xuJHhwby1icmVha3BvaW50LS1zbWFsbDogNjAwcHg7XG4keHBvLWJyZWFrcG9pbnQtLW1lZGl1bTogNzY4cHg7XG4keHBvLWJyZWFrcG9pbnQtLWxhcmdlOiAxMDI1cHg7XG4keHBvLWJyZWFrcG9pbnQtLXhMYXJnZTogMTQ0MHB4O1xuXG4keHBvLXNlbGVjdC1iYWNrZ3JvdW5kQ29sb3Itb3B0aW9uT25Ib3ZlcjogJHhwby1ibHVlLS0yMDA7XG5cbi8vIC0tIE5HWC1VSSBTcGVjaWZpYyAtLVxuJG5neC1mb290ZXItaGVpZ2h0OiA0MnB4O1xuJG5neC10YWItaGVhZGVyLWhlaWdodDogNDBweDtcbiRuZ3gtdGFibGUtcm93LWhlaWdodDogMzBweDtcblxuJG5neC1pY29uLXNpemU6IDI0cHg7IC8vIFRPRE86IERlcHJlY2F0ZSB0aGlzIHZhcmlhYmxlXG4keHBvLWljb24tc2l6ZS0tc3RhbmRhcmQ6IDIwcHg7XG4keHBvLWljb24tc2l6ZS0tc21hbGw6IDE4cHg7XG4keHBvLWljb24tc2l6ZS0tbGFyZ2U6IDI0cHg7XG5cbiRuZ3gtdGhlQmxhY2tSb2JvdG86IDkwMDtcblxuJHhwby1pbnB1dC1oZWlnaHQtLWRlZmF1bHQ6IDMwcHg7XG4keHBvLWlucHV0LWhlaWdodC0tdHdvTGluZXM6IDQ1cHg7XG5cbiRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoOiAxcHg7XG5cbiRuZ3gtaW5wdXQtY29sb3Itb25Ib3ZlcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMjAwO1xuJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tZGFyazogJHhwby1ibGFjaztcbiRuZ3gtaW5wdXQtY29sb3Itb25BY3RpdmUtLWxpZ2h0OiAkeHBvLXdoaXRlO1xuJG5neC1pbnB1dC1jb2xvci1ib3JkZXI6ICR4cG8tZ3JleS0tMzAwO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlZC0tZGFyazogJHhwby1ncmV5LS0zNTA7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGUtLWxpZ2h0ZXI6ICR4cG8td2hpdGU7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1saWdodDogJHhwby1ncmV5LS04MDtcblxuJG5neC1idXR0b24tbGluZUhlaWdodDogMzZweDtcbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQtLXNtYWxsOiAyOHB4O1xuJG5neC1idXR0b24tbGluZUhlaWdodC0tbGFyZ2U6IDQ2cHg7XG4kbmd4LWJ1dHRvbi1hbmltYXRpb25EdXJhdGlvbjogMjAwbXM7XG5cbiRuZ3gtaGVhZGVyLWhlaWdodDogNDBweDtcbi8vIEZvciB1c2Ugd2hlbiBhIGhvdmVyIGlzIG5lZWRlZCBvbiBhIHdoaXRlIGJhY2tncm91bmQuXG4kbmd4LXdoaXRlQWZmb3JkYW5jZS1vbkhvdmVyLWNvbG9yOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA7XG5cbiRuZ3gtbWVudS1iYWNrZ3JvdW5kQ29sb3I6ICR4cG8td2hpdGU7XG5cbi8qXG4qKiA9PT09IFNOQUNLQkFSIERFUFJFQ0FURUQgVkFSSUFCTEVTID09PT1cbiovXG5cbi8qXG4qKiBXQVJOSU5HOiBUSElTIFZBUklBQkxFUyBXSUxMIEJFIFJFTU9WRUQgU09PTlxuKi9cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1zdWNjZXNzOiAkeHBvLWdyZWVuLS00NTA7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1lcnJvcjogJHhwby1yZWQtLTE1MDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLWluZm86ICMwMjg4ZDE7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS13YXJuOiAjZmJjMDJkO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLXN1Y2Nlc3M6ICR4cG8tZ3JlZW4tLTYwMDtcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0tZXJyb3I6ICR4cG8tcmVkLS0yMDA7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0taW5mbzogIzAxNTc5YjtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja0Jhci1tYXJnaW5Ub3A6IDMycHg7XG5cbi8vQmFkZ2VcbiRfbWF0QmFkZ2VDb250ZW50LWJhY2tncm91bmRDb2xvci0tbmVnYXRpdmU6ICR4cG8tcmVkLS01MDtcbiRfbWF0QmFkZ2VDb250ZW50LWNvbG9yLS1uZWdhdGl2ZTogI2RkMmMwMDtcbiRfbWF0QmFkZ2VDb250ZW50LWJhY2tncm91bmRDb2xvci0tcG9zaXRpdmU6ICR4cG8tZ3JlZW4tLTUwO1xuXG4kbmd4LW1lbnUtYmFja2dyb3VuZENvbG9yLW9uSG92ZXI6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwO1xuLy8gVXNlZCBhcyBhIHNwYWNlciBmb3IgZmxleGVkIGNoaWxkcmVuXG4vLyBUT0RPOiBNb3ZlIGFsbCBpbnN0YW5jZXMgdG8gdGhlIHV0aWxpdGllcyBkZWZpbml0aW9uXG4uZmxleC0tc3RyZXRjaCB7XG4gIGZsZXg6IDE7XG59XG5cbi8vIC0tLSBEaWFsb2cgLS0tXG4kbmd4LWRpYWxvZy1oZWFkZXItaGVpZ2h0OiA0OHB4O1xuJG5neC1kaWFsb2ctZm9vdGVyLWhlaWdodDogNjRweDtcblxuLy8gLS0tIFRyYW5zaXRpb25zIC0tLVxuJHhwby10cmFuc2l0aW9uLTIwMDogYWxsIDIwMG1zIGVhc2Utb3V0O1xuXG4vLyAtLS0gQ29udGV4dHVhbCBIZWFkZXIgLS0tXG4kbmd4LUNvbnRleHR1YWxIZWFkZXItc2VwYXJhdG9yLS1jb2xvcjogJHhwby1ncmV5LS0zNTA7XG5cblxuQG1peGluIHhwby1hcHBsaWNhdGlvblN3aXRjaGVyLXRoZW1lKCR0aGVtZSkge1xuICAvLyBvdmVybGF5IGRpYWxvZyB3cmFwcGVyXG4gIC5jZGstb3ZlcmxheS1jb250YWluZXIgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyLnhwby1BcHBsaWNhdGlvblN3aXRjaGVyLWRpYWxvZy13cmFwcGVyIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgIC8vIG92ZXJsYXkgcGFuZWwgY29udGVudCBzdHlsZVxuICAgIC5jZGstb3ZlcmxheS1wYW5lLnhwby1BcHBsaWNhdGlvblN3aXRjaGVyLWRpYWxvZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8td2hpdGU7XG4gICAgICAvLyBUT0RPOiBkZWZpbmUgaWYgd2UnbGwgZGlzcGxheSBhIGJvcmRlciwgYSBzaGFkb3cgb3IgYm90aFxuICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICR4cG8tZ3JleS0tMzAwO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgbWluLWhlaWdodDogMTAwcHg7XG4gICAgfVxuICB9XG5cbiAgLnhwby1BcHBsaWNhdGlvblN3aXRjaGVyQ29udGVudCB7XG4gICAgLy8gc2V0IHRoZSBjb250ZW50IHNjcm9sbCB0byBrZWVwIHRoZSBoZWFkZXIgYWx3YXlzIHZpc2libGVcbiAgICBvdmVyZmxvdzogYXV0bztcblxuICAgIC8vIGZpeCBkb3VibGUgYm90dG9tIGJvcmRlclxuICAgIC8vIGl0IGNhbnQgYmUgZG9uZSBpbnNpZGUgYXBwbGljYXRpb24gY29tcG9uZW50IGR1ZSB0byB0aGUgYGxhc3QteGAgc2VsZWN0b3JcbiAgICAvLyBlaXRoZXIgaW5zaWRlIGFwcGxpY2F0aW9uIGNhdGVnb3J5IGNvbXBvbmVudCBkdWUgdG8gdmlldyBlbmNhcHN1bGF0aW9uXG4gICAgLnhwby1BcHBsaWNhdGlvbkNhdGVnb3J5IHtcbiAgICAgIC54cG8tQXBwbGljYXRpb246bGFzdC1vZi10eXBlIHtcbiAgICAgICAgLnhwby1BcHBsaWNhdGlvbi1jb250ZW50OmhvdmVyIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB4cG8tYXV0b2NvbXBsZXRlLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtYXV0b2NvbXBsZXRlLXRoZW1lKCR0aGVtZSk7XG5cbiAgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwtYWJvdmUge1xuICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkeHBvLWdyZXktLTMwMDtcbiAgICB9XG5cbiAgICAmIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsLm1hdC1hdXRvY29tcGxldGUtdmlzaWJsZSB7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cbiAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBUT0RPOiB0aGlzIHN0eWxlIHdpbGwgYmUgYXBwbGllZCB0byBhbGwgZm9ybSBmaWVsZCB0eXBlc1xuICAvLyB3ZSBuZWVkIHRvIGZpbmQgdGhlIHdheSB0byB1c2UgaXQganVzdCBmb3IgYXV0b2NvbXBsZXRlIGNvbnRyb2xzXG4gIC5tYXQtZm9ybS1maWVsZC1zdWZmaXgge1xuICAgIC5tYXQtaWNvbiB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwubWF0LWF1dG9jb21wbGV0ZS12aXNpYmxlIHtcbiAgICAkX2F1dG9jb21wbGV0ZS1wYWRkaW5nLS12ZXJ0aWNhbDogNnB4O1xuXG4gICAgYm9yZGVyOiAxcHggc29saWQgJHhwby1ncmV5LS0zMDA7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBib3JkZXItdG9wOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG5cbiAgICAubWF0LW9wdGlvbiB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHhwby1ncmV5LS0zMDA7XG4gICAgICBjb2xvcjogJHhwby1ibGFjaztcbiAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tcm9vdDtcbiAgICAgIGhlaWdodDogJHhwby1pbnB1dC1oZWlnaHQtLWRlZmF1bHQ7XG4gICAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbTtcbiAgICAgIHBhZGRpbmc6IDAgJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWJsdWUtLTIwMDtcbiAgICAgIH1cblxuICAgICAgJi5tYXQtYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHhwby1ibHVlLS0yMDA7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgIH1cblxuICAgICAgLm1hdC1vcHRpb24tdGV4dCB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgfVxuXG4gICAgICAueHBvLUljb24ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyA0O1xuICAgICAgfVxuXG4gICAgICAmLnhwby1PcHRpb24ge1xuICAgICAgICAmLS10d29MaW5lcyB7XG4gICAgICAgICAgaGVpZ2h0OiAkeHBvLWlucHV0LWhlaWdodC0tdHdvTGluZXM7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc207XG4gICAgICAgICAgcGFkZGluZzogJF9hdXRvY29tcGxldGUtcGFkZGluZy0tdmVydGljYWwgJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG5cbiAgICAgICAgICAubWF0LW9wdGlvbi10ZXh0IHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgICAgICAueHBvLVNlbGVjdC10d29MaW5lc0NvbnRhaW5lciB7XG4gICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICAgLy8gZWFjaCBvZiB0aGUgcHJvamVjdGVkIGNvbnRlbnRcbiAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtaGlkZURpdmlkZXI6bm90KDpsYXN0LW9mLXR5cGUpIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5tYXQtaWNvbiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIH1cblxuICAgICAgLnhwby1pY29uIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAueHBvLVNlbGVjdC10d29Db2x1bW5zQ29udGFpbmVyIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDIwJSA4MCU7XG5cbiAgICAgIC8vIGVhY2ggb2YgdGhlIHByb2plY3RlZCBjb250ZW50IGZvciBjb2x1bW5zXG4gICAgICBzcGFuIHtcbiAgICAgICAgZmxleDogbm9uZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB9XG5cbiAgICAgIHNwYW46Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJHhwby1jb250ZW50U3BhY2luZyAvIDQ7XG4gICAgICB9XG5cbiAgICAgIHNwYW46bGFzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyA0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC54cG8tU2VsZWN0LXRocmVlQ29sdW1uc0NvbnRhaW5lciB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzMyUgMzQlIDMzJTtcblxuICAgICAgLy8gZWFjaCBvZiB0aGUgcHJvamVjdGVkIGNvbnRlbnQgZm9yIGNvbHVtbnNcbiAgICAgIHNwYW4ge1xuICAgICAgICBtYXJnaW46IDAgJHhwby1jb250ZW50U3BhY2luZyAvIDQ7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgfVxuXG4gICAgICBzcGFuOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cblxuICAgICAgc3BhbjpsYXN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBkb3RCYWRnZU1peCgkYmFja2dyb3VuZENvbG9yKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kQ29sb3I7XG59XG5AbWl4aW4geHBvLWJhZGdlLXRoZW1lKCR0aGVtZSkge1xuICAkX21hdEJhZGdlQ29udGVudC1mb250U2l6ZTogMTBweDtcbiAgJF9tYXRCYWRnZUNvbnRlbnQtaWNvbi1mb250U2l6ZTogMjBweDtcbiAgJF9tYXRCYWRnZUNvbnRlbnQtaGVpZ2h0OiAxNnB4O1xuICAkX21hdEJhZGdlQ29udGVudERlZmF1bHQtYm9yZGVyUmFkaXVzOiAycHg7XG4gICRfbWF0QmFkZ2VDb250ZW50LXBhZGRpbmc6IDJweCAzcHg7XG4gICRfbWF0QmFkZ2VDb250ZW50LWJvcmRlcjogJG5neC1pbnB1dC1ib3JkZXItd2lkdGggc29saWQgJHhwby13aGl0ZTtcbiAgJF9tYXRCYWRnZUNvbnRlbnQtcmlnaHQ6IC0xNXB4O1xuICAkX21hdEJhZGdlQ29udGVudC1ib3JkZXJSYWRpdXM6IDEwcHg7XG4gICRfbWF0RG90QmFkZ2VDb250ZW50LWhlaWdodFdpZHRoOiAxMHB4O1xuICAkX21hdEJhZGdlT3ZlcmxhcENvbnRlbnQtdG9wOiAtMXB4O1xuICAkX21hdEJhZGdlT3ZlcmxhcENvbnRlbnQtcmlnaHQ6IC0xNHB4O1xuICAkX21hdEJhZGdlQ29udGVudC10b3AtLWltcG9ydGFudDogLThweDtcbiAgJF9tYXRCYWRnZUNvbnRlbnQtaGVpZ2h0LS1pbXBvcnRhbnQ6IDE4cHg7XG5cbiAgLm1hdC1pY29uIHtcbiAgICAmLm1hdC1iYWRnZS1hYm92ZTpub3QoLnhwby1CYWRnZS0taW1wb3J0YW50KSB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICBmb250LXNpemU6ICRfbWF0QmFkZ2VDb250ZW50LWljb24tZm9udFNpemU7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICAmLm1hdC1iYWRnZS1tZWRpdW0ge1xuICAgICAgY29sb3I6ICR4cG8tZ3JleS0tOTAwO1xuXG4gICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTkwMDtcbiAgICAgICAgYm9yZGVyOiAkX21hdEJhZGdlQ29udGVudC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRfbWF0QmFkZ2VDb250ZW50RGVmYXVsdC1ib3JkZXJSYWRpdXM7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZvbnQtc2l6ZTogJF9tYXRCYWRnZUNvbnRlbnQtZm9udFNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWV4dHJhQm9sZDtcbiAgICAgICAgaGVpZ2h0OiAkX21hdEJhZGdlQ29udGVudC1oZWlnaHQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBsaW5lLWhlaWdodDogJF9tYXRCYWRnZUNvbnRlbnQtaGVpZ2h0O1xuICAgICAgICBwYWRkaW5nOiAkX21hdEJhZGdlQ29udGVudC1wYWRkaW5nO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgIH1cblxuICAgICAgJi5tYXQtYmFkZ2UtYWJvdmUge1xuICAgICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICAgIHRvcDogLTlweDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLm1hdC1iYWRnZS1vdmVybGFwIHtcbiAgICAgICAgJi5tYXQtYmFkZ2UtYWZ0ZXIge1xuICAgICAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgICAgICByaWdodDogJF9tYXRCYWRnZUNvbnRlbnQtcmlnaHQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vSW1wb3J0YW50IG5vdGlmaWNhdGlvbiBiYWRnZVxuICAgICAgJi54cG8tQmFkZ2UtLWltcG9ydGFudCB7XG4gICAgICAgICYubWF0LWJhZGdlLWFib3ZlIHtcbiAgICAgICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICAgICAgdG9wOiAkX21hdEJhZGdlQ29udGVudC10b3AtLWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLm1hdC1iYWRnZS1vdmVybGFwIHtcbiAgICAgICAgICAmLm1hdC1iYWRnZS1hZnRlciB7XG4gICAgICAgICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICAgICAgICByaWdodDogLTI4cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLXJlZC0tNjAwO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRfbWF0QmFkZ2VDb250ZW50LWJvcmRlclJhZGl1cztcbiAgICAgICAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1leHRyYUJvbGQ7XG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkX21hdEJhZGdlQ29udGVudC1mb250U2l6ZTtcbiAgICAgICAgICBwYWRkaW5nOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNCAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy9Eb3QgYmFkZ2VcbiAgICAgICYueHBvLUJhZGdlRG90IHtcbiAgICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJF9tYXRCYWRnZUNvbnRlbnQtYm9yZGVyUmFkaXVzO1xuICAgICAgICAgIGhlaWdodDogJF9tYXREb3RCYWRnZUNvbnRlbnQtaGVpZ2h0V2lkdGg7XG4gICAgICAgICAgd2lkdGg6ICRfbWF0RG90QmFkZ2VDb250ZW50LWhlaWdodFdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5tYXQtYmFkZ2Utb3ZlcmxhcCB7XG4gICAgICAgICAgJi5tYXQtYmFkZ2UtYWZ0ZXIge1xuICAgICAgICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgICAgICAgcmlnaHQ6ICRfbWF0QmFkZ2VPdmVybGFwQ29udGVudC1yaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLm1hdC1iYWRnZS1hYm92ZSB7XG4gICAgICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgICAgIHRvcDogJF9tYXRCYWRnZU92ZXJsYXBDb250ZW50LXRvcDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgZG90QmFkZ2VNaXgoJG5neC1TbmFja2Jhci1zdGF0dXMtLXdhcm4pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN1Y2Nlc3Mge1xuICAgICAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkb3RCYWRnZU1peCgkbmd4LVNuYWNrYmFyLXN0YXR1cy0tc3VjY2Vzcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5mbyB7XG4gICAgICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRvdEJhZGdlTWl4KCR4cG8tYmx1ZS0tNzAwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmZvIHtcbiAgICAgICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgZG90QmFkZ2VNaXgoJHhwby1ibHVlLS03MDApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWltcG9ydGFudCB7XG4gICAgICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRvdEJhZGdlTWl4KCRuZ3gtU25hY2tiYXItc3RhdHVzLS1lcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vL1xuLy8gU21hbGwgQnV0dG9uIHN0eWxlc1xuLy8vXG5cbkBtaXhpbiBidXR0b24tLXNtYWxsKCkge1xuICAkX2J1dHRvbi1ib3JkZXItLXNsaW06IDFweDtcbiAgJF9idXR0b24tZm9udFNpemUtaWNvbi0tc21hbGw6IDIwcHg7XG4gICRfYnV0dG9uLUxpbmVIZWlnaHQtLXNtYWxsOiAyOHB4O1xuICBcbiAgJF9idXR0b24tSGVpZ2h0LS1zbWFsbDogMzJweDtcbiAgJF9idXR0b24tcGFkZGluZzogNHB4IDIwcHg7XG5cbiAgW21hdC1mbGF0LWJ1dHRvbl0ubWF0LWZsYXQtYnV0dG9uLnhwby1TbWFsbEJ1dHRvbixcbiAgW21hdC1zdHJva2VkLWJ1dHRvbl0ubWF0LXN0cm9rZWQtYnV0dG9uLnhwby1TbWFsbEJ1dHRvbiB7XG4gICAgYm9yZGVyLXdpZHRoOiAkX2J1dHRvbi1ib3JkZXItLXNsaW07XG4gICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG4gICAgaGVpZ2h0OiAkX2J1dHRvbi1IZWlnaHQtLXNtYWxsO1xuICAgIHBhZGRpbmc6ICRfYnV0dG9uLXBhZGRpbmc7XG5cbiAgICAubWF0LWljb24ge1xuICAgICAgZm9udC1zaXplOiAkX2J1dHRvbi1mb250U2l6ZS1pY29uLS1zbWFsbDtcbiAgICB9XG5cbiAgICAubWF0LWJ1dHRvbi13cmFwcGVyIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkX2J1dHRvbi1MaW5lSGVpZ2h0LS1zbWFsbDtcbiAgICB9XG4gIH1cblxuICBtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkLnhwby1TbWFsbEJ1dHRvbixcbiAgbWF0LWJ1dHRvbi10b2dnbGUubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLnhwby1TbWFsbEJ1dHRvbiB7XG4gICAgaGVpZ2h0OiAkX2J1dHRvbi1IZWlnaHQtLXNtYWxsO1xuXG4gICAgLm1hdC1idXR0b24tdG9nZ2xlLFxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgICAgYm9yZGVyLXdpZHRoOiAkX2J1dHRvbi1ib3JkZXItLXNsaW07XG5cbiAgICAgIC5tYXQtYnV0dG9uLXRvZ2dsZS1idXR0b24ge1xuICAgICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy9cbi8vIExhcmdlIEJ1dHRvbiBzdHlsZXNcbi8vL1xuXG5AbWl4aW4gYnV0dG9uLS1sYXJnZSgpIHtcbiAgW21hdC1mbGF0LWJ1dHRvbl0ubWF0LWZsYXQtYnV0dG9uLnhwby1MYXJnZUJ1dHRvbixcbiAgW21hdC1zdHJva2VkLWJ1dHRvbl0ubWF0LXN0cm9rZWQtYnV0dG9uLnhwby1MYXJnZUJ1dHRvbixcbiAgbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZC54cG8tTGFyZ2VCdXR0b24sXG4gIG1hdC1idXR0b24tdG9nZ2xlLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZC54cG8tTGFyZ2VCdXR0b24ge1xuICAgICRfYnV0dG9uLWxhcmdlLWhlaWdodDogNTZweDtcbiAgICAkX2J1dHRvbi1wYWRkaW5nOiAxNnB4IDIwcHg7XG5cbiAgICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1sYXJnZTtcbiAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICAgIGhlaWdodDogJF9idXR0b24tbGFyZ2UtaGVpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgcGFkZGluZzogJF9idXR0b24tcGFkZGluZztcblxuICAgIC5tYXQtYnV0dG9uLXRvZ2dsZS1idXR0b24ge1xuICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1leHRyYUxhcmdlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG4vLy9cbi8vIEFjdGlvbiBCdXR0b24gc3R5bGVzXG4vLy9cblxuQG1peGluIHhwby1hY3Rpb24tYnV0dG9uLXRoZW1lKCR0aGVtZSkge1xuICAkX2J1dHRvbi13aWR0aDogMzJweDtcbiAgJF9idXR0b24taGVpZ2h0OiAzMnB4O1xuXG4gIC54cG8tQWN0aW9uQnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLXdoaXRlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR4cG8tZ3JleS0tMzAwO1xuICAgIGNvbG9yOiAkeHBvLWdyZXktLTkwMDtcbiAgICBoZWlnaHQ6ICRfYnV0dG9uLWhlaWdodDtcbiAgICB3aWR0aDogJF9idXR0b24td2lkdGg7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgID4gLm1hdC1pY29uIHtcbiAgICAgICRfaWNvbi1zaXplOiAyMHB4O1xuICAgICAgd2lkdGg6ICRfaWNvbi1zaXplO1xuICAgICAgaGVpZ2h0OiAkX2ljb24tc2l6ZTtcbiAgICAgIGZvbnQtc2l6ZTogJF9pY29uLXNpemU7XG4gICAgfVxuICBcblxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJHhwby1ncmV5LS0zMDA7XG4gICAgICBjb2xvcjogJHhwby1ibHVlLS04MDA7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICR4cG8tZ3JleS0tOTc1O1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIHhwby1idXR0b24tZGlzYWJsZWQoJHhwby13aGl0ZSwgJHhwby1ncmV5LS0zMDAsICR4cG8tZ3JleS0tMzUwKTtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBUT0RPOiByZW1vdmUgdGhpcyBpbXBvcnQgZm9yIGRlcHJlY2F0ZWQgc3R5bGVzXG4vLy9cbi8vIERFUFJFQ0FURUQgU1RZTEVTIEZPUiBCVVRUT05TXG4vLyBXZSdyZSBrZWVwaW5nIHRoZSBzdHlsZXMgYXJvdW5kIHNvIHRoaW5ncyBkb24ndCBicmVhayBzbyBiYWRseS5cbi8vL1xuXG5AbWl4aW4geHBvLWJ1dHRvbi1kaXNhYmxlZC1kZXByZWNhdGVkKCRiYWNrZ3JvdW5kLWNvbG9yLCAkYm9yZGVyLWNvbG9yLCAkZm9udC1jb2xvcikge1xuICAmLFxuICAmOmFjdGl2ZSxcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuICAgIGNvbG9yOiAkZm9udC1jb2xvcjtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB9XG59XG5cbiRfYnV0dG9uLXBhZGRpbmctLWhvcml6b250YWw6IDIwcHg7XG4kX2J1dHRvbi1ib3JkZXItLXJlZ3VsYXI6IDJweDtcblxuLy8gLS0tIEJ1dHRvbiBXYXJuLS0tXG4kX2J1dHRvbi13YXJuOiAkeHBvLXJlZC0tNDAwO1xuJF9idXR0b24td2Fybi0tYWN0aXZlOiAkeHBvLXJlZC0tOTAwO1xuJF9idXR0b24td2Fybi0taG92ZXI6ICR4cG8tcmVkLS0zMDA7XG4kX2J1dHRvbi1tZWRpdW0taGVpZ2h0OiA0MHB4O1xuXG4vLyBBbGwgQnV0dG9uc1xuW21hdC1idXR0b25dLm1hdC1idXR0b24sXG4gIFttYXQtcmFpc2VkLWJ1dHRvbl0ubWF0LXJhaXNlZC1idXR0b24sXG4gIFttYXQtaWNvbi1idXR0b25dLm1hdC1pY29uLWJ1dHRvbiB7XG4gIGJvcmRlci13aWR0aDogJF9idXR0b24tYm9yZGVyLS1yZWd1bGFyO1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLWxhcmdlO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ub3JtYWw7XG4gIGhlaWdodDogJF9idXR0b24tbWVkaXVtLWhlaWdodDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgcGFkZGluZzogMCAkX2J1dHRvbi1wYWRkaW5nLS1ob3Jpem9udGFsO1xuICB0cmFuc2l0aW9uOiBjb2xvciAkbmd4LWJ1dHRvbi1hbmltYXRpb25EdXJhdGlvbiBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yICRuZ3gtYnV0dG9uLWFuaW1hdGlvbkR1cmF0aW9uIGVhc2UsIGJvcmRlci1jb2xvciAkbmd4LWJ1dHRvbi1hbmltYXRpb25EdXJhdGlvbiBlYXNlO1xufVxuXG4vLyBGb3IgYnV0dG9ucyB3aXRob3V0IGJvcmRlciBvciBiYWNrZ3JvdW5kIHdlIGFyZSBub3QgdXNpbmcgdGhlIHZlcnRpY2FsIHBhZGRpbmdcblttYXQtYnV0dG9uXS5tYXQtYnV0dG9uIHtcbiAgcGFkZGluZzogMDtcbn1cblxuW21hdC1pY29uLWJ1dHRvbl0ubWF0LWljb24tYnV0dG9uIHtcbiAgcGFkZGluZzogMDtcbn1cblxuLy8gRmxhdC1idXR0b24gc3R5bGVzXG5bbWF0LXJhaXNlZC1idXR0b25dLm1hdC1yYWlzZWQtYnV0dG9uIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAkX2J1dHRvbi1ib3JkZXItLXJlZ3VsYXI7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDsgLy8gb3ZlcnJpZGVzIGFyZSBhIGplcmstLW9ubHkgZm9yIGBtYXQtcmFpc2VkLWBcbiAgY29sb3I6ICR4cG8td2hpdGU7XG5cbiAgJixcbiAgJi5tYXQtcHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ibHVlLS04MDA7XG4gICAgYm9yZGVyLWNvbG9yOiAkeHBvLWJsdWUtLTgwMDtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ibHVlLS0zNTA7XG4gICAgICBib3JkZXItY29sb3I6ICR4cG8tYmx1ZS0tMzUwO1xuICAgIH1cblxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ibHVlLS04NTA7XG4gICAgICBib3JkZXItY29sb3I6ICR4cG8tYmx1ZS0tODUwO1xuICAgIH1cbiAgfVxuXG4gICYubWF0LXdhcm4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRfYnV0dG9uLXdhcm47XG4gICAgYm9yZGVyLWNvbG9yOiAkX2J1dHRvbi13YXJuO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkX2J1dHRvbi13YXJuLS1ob3ZlcjtcbiAgICAgIGJvcmRlci1jb2xvcjogJF9idXR0b24td2Fybi0taG92ZXI7XG4gICAgfVxuXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkX2J1dHRvbi13YXJuLS1hY3RpdmU7XG4gICAgICBib3JkZXItY29sb3I6ICRfYnV0dG9uLXdhcm4tLWFjdGl2ZTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgQGluY2x1ZGUgeHBvLWJ1dHRvbi1kaXNhYmxlZC1kZXByZWNhdGVkKCR4cG8tZ3JleS0tMzAwLCAkeHBvLWdyZXktLTMwMCwgJHhwby13aGl0ZSk7XG4gIH1cbn1cblxuLy8gTGluayBidXR0b25zIGFuZCBpY29uIGJ1dHRvbnNcbi5tYXQtYnV0dG9uLFxuLm1hdC1pY29uLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICYubWF0LXByaW1hcnkge1xuICAgIGNvbG9yOiAkeHBvLWJsdWUtLTQwMDtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJHhwby1ibHVlLS0zMDA7XG4gICAgfVxuXG4gICAgJjphY3RpdmUge1xuICAgICAgY29sb3I6ICR4cG8tYmx1ZS0tOTAwO1xuICAgIH1cbiAgfVxuXG4gICYsXG4gICYubWF0LWFjY2VudCB7XG4gICAgY29sb3I6ICR4cG8tZ3JleS0tOTAwO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTQwMDtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICBjb2xvcjogJHhwby1ncmV5LS05MDA7XG4gICAgfVxuICB9XG5cbiAgJi5tYXQtd2FybiB7XG4gICAgY29sb3I6ICRfYnV0dG9uLXdhcm47XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6ICRfYnV0dG9uLXdhcm4tLWhvdmVyO1xuICAgIH1cblxuICAgICY6YWN0aXZlIHtcbiAgICAgIGNvbG9yOiAkX2J1dHRvbi13YXJuLS1hY3RpdmU7XG4gICAgfVxuICB9XG59XG5cbi8vIEJ1dHRvbnMgd2l0aCBib3JkZXJzXG5bbWF0LXJhaXNlZC1idXR0b25dLm1hdC1yYWlzZWQtYnV0dG9uIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG5cbi8vIERpc2FibGVkIHN0YXRlcyBmb3IgYnV0dG9ucyB3aXRoIG5vIGJhY2tncm91bmRcblttYXQtYnV0dG9uXS5tYXQtYnV0dG9uLFxuW21hdC1pY29uLWJ1dHRvbl0ubWF0LWljb24tYnV0dG9uIHtcbiAgJltkaXNhYmxlZF0ge1xuICAgIEBpbmNsdWRlIHhwby1idXR0b24tZGlzYWJsZWQtZGVwcmVjYXRlZCh0cmFuc3BhcmVudCwgJHhwby1ncmV5LS0zNTAsICR4cG8tZ3JleS0tMzUwKTtcbiAgfVxufVxuXG4vLyBSZW1vdmUgcm91bmRlZCBib3JkZXJzXG5bbWF0LXJhaXNlZC1idXR0b25dLm1hdC1yYWlzZWQtYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogJF9idXR0b24tYm9yZGVyLS1yZWd1bGFyO1xufVxuXG4vLy9cbi8vIERFUFJFQ0FURUQgU1RZTEVTIEZPUiBTTUFMTCBCVVRUT05TXG4vLyBXZSdyZSBrZWVwaW5nIHRoZSBzdHlsZXMgYXJvdW5kIHNvIHRoaW5ncyBkb24ndCBicmVhayBzbyBiYWRseS5cbi8vL1xuXG4gICRfYnV0dG9uLWJvcmRlci0tc2xpbTogMXB4O1xuICAkX2J1dHRvbi1mb250U2l6ZS1pY29uLS1zbWFsbDogMjBweDtcbiAgJF9idXR0b24tSGVpZ2h0LS1zbWFsbDogMzBweDtcbiAgJF9idXR0b24tTGluZUhlaWdodC0tc21hbGw6IDI4cHg7XG5cbiAgW21hdC1idXR0b25dLm1hdC1idXR0b24ueHBvLVNtYWxsQnV0dG9uLFxuICBbbWF0LXJhaXNlZC1idXR0b25dLm1hdC1yYWlzZWQtYnV0dG9uLnhwby1TbWFsbEJ1dHRvbixcbiAgW21hdC1pY29uLWJ1dHRvbl0ubWF0LWljb24tYnV0dG9uLnhwby1TbWFsbEJ1dHRvbiB7XG4gICAgYm9yZGVyLXdpZHRoOiAkX2J1dHRvbi1ib3JkZXItLXNsaW07XG4gICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG4gICAgaGVpZ2h0OiAkX2J1dHRvbi1IZWlnaHQtLXNtYWxsO1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgbWluLXdpZHRoOiBhdXRvO1xuXG4gICAgLm1hdC1pY29uIHtcbiAgICAgIGZvbnQtc2l6ZTogJF9idXR0b24tZm9udFNpemUtaWNvbi0tc21hbGw7XG4gICAgfVxuXG4gICAgLm1hdC1idXR0b24td3JhcHBlciB7XG4gICAgICBsaW5lLWhlaWdodDogJF9idXR0b24tTGluZUhlaWdodC0tc21hbGw7XG4gICAgfVxuICB9XG5cblxuLy8vXG4vLyBERVBSRUNBVEVEIFNUWUxFUyBGT1IgTEFSR0UgQlVUVE9OU1xuLy8gV2UncmUga2VlcGluZyB0aGUgc3R5bGVzIGFyb3VuZCBzbyB0aGluZ3MgZG9uJ3QgYnJlYWsgc28gYmFkbHkuXG4vLy9cblxuICBbbWF0LWJ1dHRvbl0ubWF0LWJ1dHRvbi54cG8tTGFyZ2VCdXR0b24sXG4gIFttYXQtcmFpc2VkLWJ1dHRvbl0ubWF0LXJhaXNlZC1idXR0b24ueHBvLUxhcmdlQnV0dG9uIHtcbiAgICAkX2J1dHRvbi1sYXJnZS1oZWlnaHQ6IDUwcHg7XG5cbiAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLWxhcmdlO1xuICAgIGhlaWdodDogJF9idXR0b24tbGFyZ2UtaGVpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cbiAgICAubWF0LWJ1dHRvbi10b2dnbGUtYnV0dG9uIHtcbiAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tZXh0cmFMYXJnZTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG4gIH1cblxuXG5cbkBtaXhpbiB4cG8tYnV0dG9uLWRpc2FibGVkKCRiYWNrZ3JvdW5kLWNvbG9yLCAkYm9yZGVyLWNvbG9yLCAkZm9udC1jb2xvcikge1xuICAmLFxuICAmOmFjdGl2ZSxcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuICAgIGNvbG9yOiAkZm9udC1jb2xvcjtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB9XG59XG5cbkBtaXhpbiB4cG8tYnV0dG9uLXRoZW1lKCR0aGVtZSkge1xuICAkX2J1dHRvbi1wYWRkaW5nLS1ob3Jpem9udGFsOiAyMHB4O1xuICAkX2J1dHRvbi1wYWRkaW5nLS12ZXJ0aWNhbDogOHB4O1xuICAkX2J1dHRvbi1ib3JkZXItLXJlZ3VsYXI6IDJweDtcblxuICAvLyAtLS0gQnV0dG9uIFdhcm4tLS1cbiAgJF9idXR0b24tbWVkaXVtLWhlaWdodDogNDBweDtcblxuICAvLyBCdXR0b24gZGlyZWN0aXZlXG4gIC54cG8tQnV0dG9uLFxuICAueHBvLUJ1dHRvbiAubWF0LWJ1dHRvbi10b2dnbGUtYnV0dG9uIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgLy8gQWxsIEJ1dHRvbnNcbiAgW21hdC1mbGF0LWJ1dHRvbl0ubWF0LWZsYXQtYnV0dG9uLFxuICBbbWF0LXN0cm9rZWQtYnV0dG9uXS5tYXQtc3Ryb2tlZC1idXR0b24ge1xuICAgIGJvcmRlci1yYWRpdXM6ICRfYnV0dG9uLWJvcmRlci0tcmVndWxhcjtcbiAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLWxhcmdlO1xuICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gICAgaGVpZ2h0OiAkX2J1dHRvbi1tZWRpdW0taGVpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLWJhc2U7XG4gICAgcGFkZGluZzogJF9idXR0b24tcGFkZGluZy0tdmVydGljYWwgJF9idXR0b24tcGFkZGluZy0taG9yaXpvbnRhbDtcbiAgICBtaW4td2lkdGg6IGF1dG87XG4gICAgdHJhbnNpdGlvbjogY29sb3IgJG5neC1idXR0b24tYW5pbWF0aW9uRHVyYXRpb24gZWFzZSwgYmFja2dyb3VuZC1jb2xvciAkbmd4LWJ1dHRvbi1hbmltYXRpb25EdXJhdGlvbiBlYXNlLCBib3JkZXItY29sb3IgJG5neC1idXR0b24tYW5pbWF0aW9uRHVyYXRpb24gZWFzZTtcbiAgfVxuXG4gIC8vIFRoaXMgc3R5bGVzIGFyZSBoZXJlIHRvIGJlIGFibGUgdG8gdXNlICd4cG9TbWFsbEJ1dHRvbicgYW5kICd4cG9TbWFsbEJ1dHRvbidcbiAgLy8gd2l0aCBtYXQtYnV0dG9uLXRvZ2dsZVxuICBtYXQtYnV0dG9uLXRvZ2dsZS5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4gIG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgIGhlaWdodDogJF9idXR0b24tbWVkaXVtLWhlaWdodDtcblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwge1xuICAgICAgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICAgICAgYm9yZGVyLXRvcC13aWR0aDogJF9idXR0b24tYm9yZGVyLS1yZWd1bGFyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLm1hdC1idXR0b24tdG9nZ2xlLFxuICAgIC5tYXQtYnV0dG9uLXRvZ2dsZS1idXR0b24ge1xuICAgICAgYm9yZGVyLXdpZHRoOiAkX2J1dHRvbi1ib3JkZXItLXJlZ3VsYXI7XG4gICAgfVxuXG4gICAgLm1hdC1idXR0b24tdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLWxhcmdlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIG1hdC1idXR0b24tdG9nZ2xlLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgYm9yZGVyLXdpZHRoOiAkX2J1dHRvbi1ib3JkZXItLXJlZ3VsYXI7XG4gIH1cblxuICBtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gICAgYm9yZGVyLXdpZHRoOiAwO1xuICB9XG5cbiAgLy8gRmxhdC1idXR0b24gc3R5bGVzXG4gIFttYXQtZmxhdC1idXR0b25dLm1hdC1mbGF0LWJ1dHRvbiB7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRfYnV0dG9uLWJvcmRlci0tcmVndWxhcjtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7IC8vIG92ZXJyaWRlcyBhcmUgYSBqZXJrLS1vbmx5IGZvciBgbWF0LXJhaXNlZC1gXG4gICAgY29sb3I6ICR4cG8td2hpdGU7XG5cbiAgICAmIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tYmx1ZS0tODAwO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkeHBvLWJsdWUtLTgwMDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tYmx1ZS0tMzUwO1xuICAgICAgICBib3JkZXItY29sb3I6ICR4cG8tYmx1ZS0tMzUwO1xuICAgICAgfVxuXG4gICAgICAmOmZvY3VzLFxuICAgICAgJjphY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWJsdWUtLTg1MDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkeHBvLWJsdWUtLTg1MDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBAaW5jbHVkZSB4cG8tYnV0dG9uLWRpc2FibGVkKCR4cG8tZ3JleS0tMzAwLCAkeHBvLWdyZXktLTMwMCwgJHhwby13aGl0ZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gU3Ryb2tlZCBCdXR0b25zXG4gIC5tYXQtc3Ryb2tlZC1idXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8td2hpdGU7XG4gICAgYm9yZGVyLWNvbG9yOiAkeHBvLWJsdWUtLTgwMDtcbiAgICBjb2xvcjogJHhwby1ibHVlLS04NTA7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tYmx1ZS0tMjAwO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkeHBvLWJsdWUtLTgwMDtcbiAgICAgIGNvbG9yOiAkeHBvLWJsdWUtLTgwMDtcbiAgICB9XG5cbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tYmx1ZS0tMjAwO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkeHBvLWJsdWUtLTM1MDtcbiAgICAgIGNvbG9yOiAkeHBvLWJsdWUtLTM1MDtcbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBAaW5jbHVkZSB4cG8tYnV0dG9uLWRpc2FibGVkKCR4cG8tZ3JleS0tMjUsICR4cG8tZ3JleS0tMzUwLCAkeHBvLWdyZXktLTM1MCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQnV0dG9ucyB3aXRoIGJvcmRlcnNcbiAgW21hdC1mbGF0LWJ1dHRvbl0ubWF0LWZsYXQtYnV0dG9uLFxuICBbbWF0LXN0cm9rZWQtYnV0dG9uXS5tYXQtc3Ryb2tlZC1idXR0b24ge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cblxuICAvLyBCcmluZyBpbiB0aGUgU21hbGwgQnV0dG9uIFN0eWxlc1xuICBAaW5jbHVkZSBidXR0b24tLXNtYWxsKCk7XG5cbiAgLy8gQnJpbmcgaW4gdGhlIExhcmdlIEJ1dHRvbiBTdHlsZXNcbiAgQGluY2x1ZGUgYnV0dG9uLS1sYXJnZSgpO1xuXG4gIEBpbmNsdWRlIHhwby1hY3Rpb24tYnV0dG9uLXRoZW1lKCR0aGVtZSk7XG5cbiAgLy8vXG4gIC8vIFJlbW92YWxzXG4gIC8vL1xuICAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LFxuICAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gICAgb3BhY2l0eTogMCAhaW1wb3J0YW50OyAvLyAoeHBvKTogaGlkZSBiYWNrZ3JvdW5kIGNvbG9yO1xuICB9XG5cbn1cblxuLy8vXG4vLyBTZXRzIHVwIHRoZSBidXR0b24gdG9nZ2xlIGdyb3VwXG4vLy9cblxuLypcbiAgMS4gVGhlc2UgYXJlIGNhcnJpZWQgb3ZlciBmcm9tIE1hdGVyaWFsIGJ1dCBVWCBkb2VzIG5vdFxuICAgICAgaGF2ZSBhbnkgZGVzaWduIGZvciB0aGVtIHlldC4gVGhhdCdzIHdoeSB0aGV5IGFyZSBub3RcbiAgICAgIGluIHRoZSBzYW1wbGUuLi4gdGhleSdyZSBhIGJpdCBvZiBhIGhpZGRlbiBBUEkuXG4qL1xuXG5AaW1wb3J0ICd+QGFuZ3VsYXIvbWF0ZXJpYWwvdGhlbWluZyc7XG5cbkBtaXhpbiB4cG8tYnV0dG9uLXRvZ2dsZS1ncm91cC10aGVtZSgkdGhlbWUpIHtcbiAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10b2dnbGUtdGhlbWUoJHRoZW1lKTtcblxuICBtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCxcbiAgbWF0LWJ1dHRvbi10b2dnbGUubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZSB7XG4gICAgJF9pbm5lckRpdmlkZXJDb2xvcjogJHhwby1ibHVlLS04MDA7XG4gICAgJF9pbm5lckJvcmRlclRoaWNrbmVzczogMnB4O1xuICAgICRfaW5uZXJTdGFuZGFsb25lQnV0dG9uLW1hcmdpbjogMnB4OyAvLyAjMVxuICAgICRfaW5uZXJQYWRkaW5nLS1ob3Jpem9udGFsOiAyMHB4O1xuICAgICRfaW5uZXJQYWRkaW5nLS12ZXJ0aWNhbDogNHB4O1xuXG4gICAgJi5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4gICAgJi5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcblxuICAgICAgQGF0LXJvb3QgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmU6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgIC8vICMxXG4gICAgICAgIG1hcmdpbi1yaWdodDogJF9pbm5lclN0YW5kYWxvbmVCdXR0b24tbWFyZ2luO1xuICAgICAgfVxuXG4gICAgICBAYXQtcm9vdCAubWF0LWJ1dHRvbi10b2dnbGUubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZSwgLy8gIzFcbiAgICAgIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8td2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJF9pbm5lckRpdmlkZXJDb2xvcjtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgY29sb3I6ICR4cG8tYmx1ZS0tODAwO1xuICAgICAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1tZWRpdW07XG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yICRuZ3gtYnV0dG9uLWFuaW1hdGlvbkR1cmF0aW9uIGVhc2UsIGJhY2tncm91bmQtY29sb3IgJG5neC1idXR0b24tYW5pbWF0aW9uRHVyYXRpb24gZWFzZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWJsdWUtLTIwMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWJsdWUtLTgwMDtcbiAgICAgICAgICBjb2xvcjogJHhwby13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ibHVlLS04MDA7XG4gICAgICAgICAgY29sb3I6ICR4cG8td2hpdGU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gV2lsbCBiZSBkZXByZWNhdGVkXG4gICAgICAgICYubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tODA7XG4gICAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tMzUwO1xuICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAgICAgICAubWF0LWJ1dHRvbi10b2dnbGUtYnV0dG9uIHtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBCdXR0b24gQ29udGVudFxuICAgICAgLm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgcGFkZGluZzogJF9pbm5lclBhZGRpbmctLXZlcnRpY2FsICRfaW5uZXJQYWRkaW5nLS1ob3Jpem9udGFsO1xuICAgICAgICA+IC5tYXQtaWNvbiB7XG4gICAgICAgICAgJF9pY29uLXNpemU6IDIwcHg7XG4gICAgICAgICAgd2lkdGg6ICRfaWNvbi1zaXplO1xuICAgICAgICAgIGhlaWdodDogJF9pY29uLXNpemU7XG4gICAgICAgICAgZm9udC1zaXplOiAkX2ljb24tc2l6ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBPdmVycmlkZXMgZm9yIGJvcmRlciBjb2xvcnNcblxuICAgICAgJi5tYXQtYnV0dG9uLXRvZ2dsZS12ZXJ0aWNhbCB7XG4gICAgICAgIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJF9pbm5lckRpdmlkZXJDb2xvcjtcbiAgICAgICAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgIGJvcmRlci1jb2xvcjogJHhwby1ncmV5LS0zNTA7XG4gIH1cbn1cblxuLy8gVE9ETzogcmVtb3ZlIHRoaXMgaW1wb3J0IGZvciBkZXByZWNhdGVkIHN0eWxlc1xuLy8vXG4vLyBERVBSRUNBVEVEIFNUWUxFUyBGT1IgTElOS1Ncbi8vIFdlJ3JlIGtlZXBpbmcgdGhlIHN0eWxlcyBhcm91bmQgc28gdGhpbmdzIGRvbid0IGJyZWFrIHNvIGJhZGx5LlxuLy8vXG5cbi54cG8tTGluayB7XG4gICYtLWFjY2VudCB7XG4gICAgY29sb3I6ICR4cG8tZ3JleS0tOTAwO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJHhwby1ncmV5LS05MDA7XG4gICAgICBvdXRsaW5lOiAwO1xuICAgIH1cblxuICAgICY6YWN0aXZlIHtcbiAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTEwMDA7XG4gICAgfVxuICB9XG59XG5cblxuQG1peGluIHhwby1saW5rLXRoZW1lKCR0aGVtZSkge1xuICAkX2ljb24tc2l6ZTogMjBweDsgLy8gcmVsYXRpdmUgdG8gcGFyZW50IHNpemVcbiAgJF9pY29uLWdhcDogNXB4OyBcblxuICAueHBvLUxpbmsge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY29sb3I6ICR4cG8tYmx1ZS0tODAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1tZWRpdW07ICAgICAgICBcbiAgICBnYXA6ICRfaWNvbi1nYXA7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJHhwby1ibHVlLS0zNTA7XG4gICAgICBvdXRsaW5lOiAwO1xuICAgIH1cblxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6ICR4cG8tYmx1ZS0tODUwO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBjb2xvcjogJHhwby1ncmV5LS0zNTA7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbiAgICBcbiAgICAmLS1yZWd1bGFyIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLW5vcm1hbDtcbiAgICB9XG5cbiAgICA+Lm1hdC1pY29uIHtcbiAgICAgIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLWxhcmdlO1xuICAgICAgaGVpZ2h0OiAkX2ljb24tc2l6ZTtcbiAgICAgIHdpZHRoOiAkX2ljb24tc2l6ZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gICAgXG4gIH1cbn1cblxuXG5AbWl4aW4geHBvLWRvd25sb2FkLWJ1dHRvbi10aGVtZSgkdGhlbWUpIHtcbiAgYnV0dG9uLm1hdC1idXR0b24ueHBvLURvd25sb2FkQnV0dG9uIHtcbiAgICAkX2J1dHRvbi1zaXplOiAyMHB4O1xuXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGhlaWdodDogJF9idXR0b24tc2l6ZTtcbiAgICBtaW4td2lkdGg6ICRfYnV0dG9uLXNpemU7XG5cbiAgICAubWF0LXNwaW5uZXIge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4geHBvLWNoZWNrYm94LXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtY2hlY2tib3gtdGhlbWUoJHRoZW1lKTtcbiAgJF9jaGVja2JveC1pbmRldGVybWluYXRlLWJvcmRlclJhZGl1czogMnB4O1xuICAkX2NoZWNrYm94LWluZGV0ZXJtaW5hdGUtcGFkZGluZzogMXB4IDJweCAzcHggMXB4O1xuICAkX2NoZWNrYm94LWluZGV0ZXJtaW5hdGUtbWFyZ2luOiAzcHggM3B4O1xuICAkX2NoZWNrYm94LWluZGV0ZXJtaW5hdGUtYm9yZGVyOiAycHggc29saWQgJHhwby1ibGFjaztcblxuICAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsgLy8gQXZvaWQgZGVmYXVsdCBpbmRldGVybWl0YXRlIHN0eWxlIHdoZW4gbGVmdCBpbmRldGVybWluYXRlIHN0YXRlXG4gIH1cblxuICAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LWFjY2VudCB7XG4gICAgLm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXIge1xuICAgICAgYm9yZGVyOiAkbmd4LWlucHV0LWJvcmRlci13aWR0aCBzb2xpZCAkeHBvLWJsYWNrO1xuICAgICAgYm9yZGVyLXJhZGl1czogJF9jaGVja2JveC1pbmRldGVybWluYXRlLWJvcmRlclJhZGl1cztcbiAgICB9XG5cbiAgICAmLm1hdC1jaGVja2JveC1kaXNhYmxlZCB7XG4gICAgICAubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lciB7XG4gICAgICAgIGJvcmRlcjogJG5neC1pbnB1dC1ib3JkZXItd2lkdGggc29saWQgJHhwby1ncmV5LS0zNTA7XG5cbiAgICAgICAgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gICAgICAgICAgYm9yZGVyOiAkbmd4LWlucHV0LWJvcmRlci13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kOiAkeHBvLWJsYWNrO1xuICAgICAgYm9yZGVyOiAkX2NoZWNrYm94LWluZGV0ZXJtaW5hdGUtYm9yZGVyO1xuICAgICAgaGVpZ2h0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgICAgIG1hcmdpbjogJF9jaGVja2JveC1pbmRldGVybWluYXRlLW1hcmdpbjtcbiAgICAgIHBhZGRpbmc6ICRfY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1wYWRkaW5nO1xuICAgICAgd2lkdGg6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2hlY2tib3gge1xuICAgICRfbWF0LWNoZWNrYm94LWNsYXNzOiAmO1xuXG4gICAgYm9yZGVyOiAkbmd4LWlucHV0LWJvcmRlci13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBtYXJnaW46IDNweCAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNDtcbiAgICBwYWRkaW5nOiAwICR4cG8tY29udGVudFNwYWNpbmcgLyA0O1xuXG4gICAgJi5jZGsta2V5Ym9hcmQtZm9jdXNlZCB7XG4gICAgICBib3JkZXI6ICRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoIGRhc2hlZCAkeHBvLWdyZXktLTMwMDtcbiAgICB9XG5cbiAgICAmLnhwby1DaGVja2JveEdyb3VwLXNlbGVjdEFsbCB7XG4gICAgICBtYXJnaW46IDNweCAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgICB9XG5cbiAgICAubWF0LWNoZWNrYm94LWxheW91dCB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgICYubWF0LWNoZWNrYm94LWxhYmVsLWJlZm9yZSAubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lciB7XG4gICAgICBtYXJnaW4tbGVmdDogJHhwby1jb250ZW50U3BhY2luZyAvIDQ7XG4gICAgfVxuXG4gICAgLm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXIge1xuICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICAgIG1hcmdpbjogJHhwby1jb250ZW50U3BhY2luZyAvIDQgJHhwby1jb250ZW50U3BhY2luZyAvIDQgMCAwO1xuICAgIH1cblxuICAgICYtcmlwcGxlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJi1iYWNrZ3JvdW5kIHtcbiAgICAgIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrIHtcbiAgICAgICAgJi1wYXRoIHtcbiAgICAgICAgICBzdHJva2Utd2lkdGg6IDMuMTMzMzNweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cblxuICAgICYubWF0LWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgIC5tYXQtY2hlY2tib3gtbGFiZWwge1xuICAgICAgICBjb2xvcjogJHhwby1ncmV5LS05NTA7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtY2hlY2tib3gtbWl4ZWRtYXJrIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlZC0tZGFyaztcbiAgICAgIH1cblxuICAgICAgLm1hdC1jaGVja2JveC1jaGVja21hcmsge1xuICAgICAgICBmaWxsOiAkbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1saWdodDtcbiAgICAgIH1cblxuICAgICAgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlZC0tbGlnaHQ7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR4cG8tZ3JleS0tMzUwO1xuXG4gICAgICAgIC5tYXQtY2hlY2tib3gtY2hlY2tlZCAmIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTM1MDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGgge1xuICAgICAgICAgIHN0cm9rZTogJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlLS1saWdodGVyICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gICAgICAgIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmV5LS0zMDA7XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWNoZWNrYm94LW1peGVkbWFyayB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlZC0tbGlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHhwby1ncmV5LS0zMDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5tYXQtY2hlY2tib3gtY2hlY2tlZCB7XG4gICAgICAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1kYXJrO1xuICAgICAgfVxuXG4gICAgICAmLm1hdC1jaGVja2JveC1kaXNhYmxlZCB7XG4gICAgICAgIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlZC0tZGFyaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpIHtcbiAgICAgICN7JF9tYXQtY2hlY2tib3gtY2xhc3N9LWlubmVyLWNvbnRhaW5lcjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSkge1xuICAgICAgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRuZ3gtaW5wdXQtY29sb3ItYm9yZGVyO1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuZ3gtaW5wdXQtY29sb3Itb25BY3RpdmUtLWRhcms7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBjaGlwLXNpemUoJGNoaXAtc2l6ZSwgJGZvbnQtc2l6ZSkge1xuICBmb250LXNpemU6ICRmb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAkY2hpcC1zaXplO1xuICBtaW4taGVpZ2h0OiAkY2hpcC1zaXplO1xufVxuXG5AbWl4aW4gaWNvbi1zaXplKCRpY29uLXNpemUpIHtcbiAgaGVpZ2h0OiAkaWNvbi1zaXplO1xuICB3aWR0aDogJGljb24tc2l6ZTtcbn1cblxuQG1peGluIGNoaXBzLWJhZGdlKCRiYWNrZ3JvdW5kQ29sb3IsICRib3JkZXIsICRjb2xvcikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZENvbG9yO1xuICBib3JkZXI6ICRib3JkZXI7XG4gIGNvbG9yOiAkY29sb3I7XG59XG5cbkBtaXhpbiB4cG8tY2hpcHMtdGhlbWUoJHRoZW1lKSB7XG4gIEBpbmNsdWRlIG1hdC1jaGlwcy10aGVtZSgkdGhlbWUpO1xuXG4gIG1hdC1jaGlwLm1hdC1jaGlwIHtcbiAgICAkX21hdENoaXAtcHJpb3JpdHktY3JpdGljYWw6ICR4cG8tY29sb3ItLWVycm9yO1xuICAgICRfbWF0Q2hpcC1wcmlvcml0eS1oaWdoOiAkeHBvLW9yYW5nZS0tMzAwO1xuICAgICRfbWF0Q2hpcC1wcmlvcml0eS1tZWRpdW06ICR4cG8tY29sb3ItLXdhcm47XG4gICAgJF9tYXRDaGlwLWJvcmRlci1yYWRpdXMtLWRlZmF1bHQ6ICR4cG8tY29udGVudFNwYWNpbmc7XG4gICAgJF9tYXRDaGlwLXRhZ3MtYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICRfbWF0Q2hpcC10YWdMYXJnZS1oZWlnaHQ6IDMwcHg7XG4gICAgJF9tYXRCYWRnZUNvbnRlbnQtZm9udFNpemU6IDEwcHg7XG4gICAgJF9tYXRDaGlwLUJhZGdlLWhlaWdodDogMjBweDtcblxuICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLW1lZGl1bTtcblxuICAgIEBpbmNsdWRlIGNoaXAtc2l6ZSgkeHBvLWxpbmVIZWlnaHQtLWJhc2UsICR4cG8tZm9udFNpemUtLW1lZGl1bSk7XG5cbiAgICAubWF0LWljb24ge1xuICAgICAgQGluY2x1ZGUgaWNvbi1zaXplKCR4cG8tZm9udFNpemUtLW1lZGl1bSk7XG4gICAgfVxuXG4gICAgJi54cG8tQ2hpcC0tc21hbGwge1xuICAgICAgQGluY2x1ZGUgY2hpcC1zaXplKCR4cG8tbGluZUhlaWdodC0tc21hbGwsICR4cG8tZm9udFNpemUtLXNtYWxsKTtcblxuICAgICAgLm1hdC1pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgaWNvbi1zaXplKCR4cG8tZm9udFNpemUtLXNtYWxsKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1zdGFuZGFyZC1jaGlwIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tMzAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogJF9tYXRDaGlwLWJvcmRlci1yYWRpdXMtLWRlZmF1bHQ7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgICAgcGFkZGluZy1yaWdodDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG5cbiAgICAgICY6bm90KC5tYXQtY2hpcC1kaXNhYmxlZCkge1xuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtaWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNDtcblxuICAgICAgICAmLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ge1xuICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICBtYXJnaW4tbGVmdDogJHhwby1jb250ZW50U3BhY2luZyAvIDQ7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi54cG8tQ2hpcCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICYtLXVucmVhZCxcbiAgICAgICYtLWNyaXRpY2FsIHtcbiAgICAgICAgYmFja2dyb3VuZDogJF9tYXRDaGlwLXByaW9yaXR5LWNyaXRpY2FsO1xuICAgICAgICBjb2xvcjogJHhwby13aGl0ZTtcbiAgICAgIH1cblxuICAgICAgJi0taGlnaCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRfbWF0Q2hpcC1wcmlvcml0eS1oaWdoO1xuICAgICAgfVxuXG4gICAgICAmLS1tZWRpdW0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkX21hdENoaXAtcHJpb3JpdHktbWVkaXVtO1xuICAgICAgfVxuXG4gICAgICAmLS1ncmVlbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JlZW4tLTQwMDtcbiAgICAgICAgY29sb3I6ICR4cG8td2hpdGU7XG4gICAgICB9XG5cbiAgICAgICYtLW9yYW5nZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tb3JhbmdlLS0zMDA7XG4gICAgICB9XG5cbiAgICAgICYtLXJlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tcmVkLS00MDA7XG4gICAgICAgIGNvbG9yOiAkeHBvLXdoaXRlO1xuICAgICAgfVxuXG4gICAgICAmLS15ZWxsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLXllbGxvdy0tNDAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICYueHBvLUJhZGdlQ2hpcCB7XG4gICAgICAmLm1hdC1jaGlwIHtcbiAgICAgICAgZm9udC1zaXplOiAkX21hdEJhZGdlQ29udGVudC1mb250U2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tZXh0cmFCb2xkO1xuICAgICAgICBtaW4taGVpZ2h0OiAkX21hdENoaXAtQmFkZ2UtaGVpZ2h0O1xuICAgICAgfVxuXG4gICAgICAvLyBOdW1iZXJlZFxuICAgICAgJi0tbmVnYXRpdmUge1xuICAgICAgICAmLm1hdC1zdGFuZGFyZC1jaGlwIHtcbiAgICAgICAgICAmLm1hdC1jaGlwIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNoaXBzLWJhZGdlKFxuICAgICAgICAgICAgICAkX21hdEJhZGdlQ29udGVudC1iYWNrZ3JvdW5kQ29sb3ItLW5lZ2F0aXZlLFxuICAgICAgICAgICAgICAkbmd4LWlucHV0LWJvcmRlci13aWR0aCBzb2xpZCAkX21hdEJhZGdlQ29udGVudC1iYWNrZ3JvdW5kQ29sb3ItLW5lZ2F0aXZlLFxuICAgICAgICAgICAgICAkX21hdEJhZGdlQ29udGVudC1jb2xvci0tbmVnYXRpdmVcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYtLXBvc2l0aXZlIHtcbiAgICAgICAgJi5tYXQtc3RhbmRhcmQtY2hpcCB7XG4gICAgICAgICAgJi5tYXQtY2hpcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjaGlwcy1iYWRnZShcbiAgICAgICAgICAgICAgJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1wb3NpdGl2ZSxcbiAgICAgICAgICAgICAgJG5neC1pbnB1dC1ib3JkZXItd2lkdGggc29saWQgJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1wb3NpdGl2ZSxcbiAgICAgICAgICAgICAgJG5neC1TbmFja2Jhci1zdGF0dXMtLXN1Y2Nlc3NcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuLm1hdC1jaGlwLWxpc3Qge1xuICAubWF0LWNoaXAtbGlzdC13cmFwcGVyIHtcbiAgICAkX21hdENoaXAtd3JhcHBlci1nYXA6IDZweDtcbiAgICBnYXA6ICRfbWF0Q2hpcC13cmFwcGVyLWdhcDtcbiAgfSAgXG59XG4ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAueHBvLVRhZyB7XG4gICRfbWF0Q2hpcC1ib3JkZXItcmFkaXVzLS1kZWZhdWx0OiAkeHBvLWNvbnRlbnRTcGFjaW5nO1xuICAkX21hdENoaXAtZ2FwOiAxMnB4O1xuICAkX21hdENoaXAtbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICAkX21hdENoaXAtdGFncy1ib3JkZXItcmFkaXVzOiAycHg7XG4gICRfbWF0Q2hpcC10YWdzLWhlaWdodDogMjRweDtcbiAgJF9tYXRDaGlwLXRhZ3MtbWFyZ2luOiA0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tMjU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICR4cG8tZ3JleS0tMzAwO1xuICBib3JkZXItcmFkaXVzOiAkX21hdENoaXAtdGFncy1ib3JkZXItcmFkaXVzO1xuICBjb2xvcjogJHhwby1ncmV5LS05NzU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtO1xuICBoZWlnaHQ6ICRfbWF0Q2hpcC10YWdzLWhlaWdodDtcbiAgbWFyZ2luOiAkX21hdENoaXAtdGFncy1tYXJnaW4gMDtcbiAgbWluLWhlaWdodDogJF9tYXRDaGlwLXRhZ3MtaGVpZ2h0O1xuICBwYWRkaW5nOiAoJHhwby1jb250ZW50U3BhY2luZyAvIDgpICgkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMik7XG5cbiAgPiAubWF0LWljb24ge1xuICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbGFyZ2U7XG4gICAgaGVpZ2h0OiAkeHBvLWNvbnRlbnRTcGFjaW5nO1xuICAgIG1hcmdpbi1sZWZ0OiAkX21hdENoaXAtbWFyZ2luLXJpZ2h0O1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB3aWR0aDogJHhwby1jb250ZW50U3BhY2luZztcbiAgfSBcbiAgLnhwby1JY29uIHtcbiAgICBoZWlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmc7XG4gICAgbWFyZ2luLWxlZnQ6ICRfbWF0Q2hpcC1tYXJnaW4tcmlnaHQ7XG4gICAgd2lkdGg6ICR4cG8tY29udGVudFNwYWNpbmc7IFxuICAgIC5tYXQtaWNvbiB7XG4gICAgICBoZWlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmc7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICB3aWR0aDogJHhwby1jb250ZW50U3BhY2luZztcbiAgICB9IFxuICB9XG4gIC5tYXQtY2hpcC1yZW1vdmUubWF0LWNoaXAtdHJhaWxpbmctaWNvbiB7XG4gICAgbWFyZ2luLWxlZnQ6ICRfbWF0Q2hpcC1tYXJnaW4tcmlnaHQ7XG4gICAgb3BhY2l0eTogMTtcbiAgICAmOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8td2hpdGU7XG4gIH1cbiAgICBcbn1cblxuQG1peGluIHhwby1jb250ZXh0dWFsLWhlYWRlci10aGVtZSgkdGhlbWUpIHtcbiAgLnhwby1Db250ZXh0dWFsSGVhZGVyIHtcbiAgICBcbiAgICAvLyBUT0RPOiByZXZpZXcgd2hlbiBkZXZlbG9waW5nIGB4cG8tY29udGV4dHVhbC1oZWFkZXItaXRlbWAgY29tcGxldGVseSBpbmRlcGVuZGVudCBmcm9tIGVhY2ggb3RoZXJcbiAgICAmLWl0ZW06Zmlyc3QtY2hpbGQsXG4gICAgLnhwby1IZWFkZXJBcnJvdyArICYtaXRlbSB7XG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC54cG8tSGVhZGVySXRlbXM6Zmlyc3QtY2hpbGQsXG4gICAgLnhwby1IZWFkZXJBcnJvdyArIC54cG8tSGVhZGVySXRlbXMge1xuICAgICAgLnhwby1IZWFkZXJJdGVtOmZpcnN0LWNoaWxkOjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC1oZWFkZXItLXNtYWxsKCkge1xuICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1zbWFsbDtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLXNtYWxsO1xuICBsaW5lLWhlaWdodDogJHhwby1oZWFkZXItbGluZUhlaWdodC0tc21hbGw7XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tbWVkaXVtKCkge1xuICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1tZWRpdW07XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1tZWRpdW07XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1tZWRpdW07XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tbGFyZ2UoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLWxhcmdlO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbGFyZ2U7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1sYXJnZTtcbn1cblxuLy8gUmVndWxhciB0ZXh0IG1peGluc1xuQG1peGluIFRleHRUcmVhdG1lbnQtLXNtYWxsKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLXNtYWxsO1xuICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbWFsbDtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtLW1lZGl1bSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LS1sYXJnZSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1sYXJnZTtcbn1cblxuXG4vKlxuKiogPT09PSBCYXNpYyBjb2xvcnMgPT09PVxuKi9cblxuLypcbioqID09PT0gWFBPIEJyYW5kIENvbG9yIFBhbGV0dGUgPT09PVxuKi9cblxuLy8gWFBPIFJlZFxuJHhwby1icmFuZC1yZWQ6ICNjYzAwMDA7XG4keHBvLWJyYW5kLXJlZC0tOTAwOiAkeHBvLWJyYW5kLXJlZDtcbiR4cG8tYnJhbmQtcmVkLS04MDA6ICNlNDIxMGU7XG4keHBvLWJyYW5kLXJlZC0tNzAwOiAjZjMyYTEzO1xuJHhwby1icmFuZC1yZWQtLTYwMDogI2ZmMzMxNztcbiR4cG8tYnJhbmQtcmVkLS01MDA6ICNmZjM5MWM7XG4keHBvLWJyYW5kLXJlZC0tNDAwOiAjZmY1ZTNkO1xuJHhwby1icmFuZC1yZWQtLTMwMDogI2ZmN2U2MDtcbiR4cG8tYnJhbmQtcmVkLS0yMDA6ICNmZmE0OGU7XG4keHBvLWJyYW5kLXJlZC0tMTAwOiAjZmZjOGJhO1xuJHhwby1icmFuZC1yZWQtLTUwOiAjZmNlOGU2O1xuXG4vLyBYUE8gQmxhY2tcbiR4cG8tYmxhY2s6ICMwMDAwMDA7XG4keHBvLWJyYW5kLWJsYWNrLS05MDA6ICR4cG8tYmxhY2s7XG4keHBvLWJyYW5kLWJsYWNrLS04MDA6ICMyNjI2MjY7XG4keHBvLWJyYW5kLWJsYWNrLS03MDA6ICM1NTU1NTU7XG4keHBvLWJyYW5kLWJsYWNrLS02MDA6ICM3YjdiN2I7XG4keHBvLWJyYW5kLWJsYWNrLS01MDA6ICM5ZDlkOWQ7XG4keHBvLWJyYW5kLWJsYWNrLS00MDA6ICM5ZDlkOWQ7XG4keHBvLWJyYW5kLWJsYWNrLS0zMDA6ICNjNGM0YzQ7XG4keHBvLWJyYW5kLWJsYWNrLS0yMDA6ICNkOWQ5ZDk7XG4keHBvLWJyYW5kLWJsYWNrLS0xMDA6ICNlOWU5ZTk7XG4keHBvLWJyYW5kLWJsYWNrLS01MDogI2Y1ZjVmNTtcblxuLy8gWFBPIERhcmsgR3JleVxuJHhwby1icmFuZC1kYXJrLWdyZXk6ICM0MTRhNGM7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tOTAwOiAjMjIyODJiO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTgwMDogJHhwby1icmFuZC1kYXJrLWdyZXk7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNzAwOiAjNjI2ODZjO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTYwMDogIzc1N2Q4MTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS01MDA6ICNhMGE2YWE7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNDAwOiAjYmVjNWM5O1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTMwMDogI2UwZTdlYjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0yMDA6ICNlYmYyZjY7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMTAwOiAjZjBmN2ZiO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTUwOiAjZjRmY2ZmO1xuXG4vLyBYUE8gTWVkaXVtIEdyZXlcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXk6ICM4NDg0ODQ7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS05MDA6ICMyZTJlMmU7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS04MDA6ICM1MDUwNTA7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS03MDA6ICM3MDcwNzA7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS02MDA6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXk7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS01MDA6ICNhZmFmYWY7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS00MDA6ICNjZGNkY2Q7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0zMDA6ICNlZWVlZWU7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA6ICNmM2YzZjM7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0xMDA6ICNmOGY4Zjg7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS01MDogI2ZjZmNmYztcblxuLy8gWFBPIExpZ2h0IEdyZXlcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleTogI2RlZGVkZTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tOTAwOiAjMWYxZjFmO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS04MDA6ICMzZjNmM2Y7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTcwMDogIzVlNWU1ZTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNjAwOiAjNzI3MjcyO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS01MDA6ICM5YTlhOWE7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTQwMDogI2JhYmFiYTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMzAwOiAkeHBvLWJyYW5kLWxpZ2h0LWdyZXk7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTIwMDogI2VjZWNlYztcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMTAwOiAjZjRmNGY0O1xuJHhwby1icmFuZC1saWdodC1ncmV5LS01MDogI2Y5ZjlmOTtcblxuLypcbioqID09PT0gTWFpbiBDb2xvciBQYWxldHRlID09PT1cbiovXG5cbi8vIEJsYWNrIGFuZCBHcmV5XG4keHBvLWdyZXktLTk3NTogIzIxMjEyMTtcbiR4cG8tZ3JleS0tOTUwOiAjMzMzMzMzO1xuJHhwby1ncmV5LS05MDA6ICM0YTRhNGE7XG4keHBvLWdyZXktLTcwMDogIzZmNmY2ZjtcbiR4cG8tZ3JleS0tMzUwOiAjYmRiZGJkO1xuJHhwby1ncmV5LS0zMDA6ICNkOGQ4ZDg7XG4keHBvLWdyZXktLTgwOiAjZjZmNmY2O1xuJHhwby1ncmV5LS0yNTogI2ZhZmFmYTtcblxuJHhwby13aGl0ZTogI2ZmZmZmZjtcblxuLy8gTGlua3MsIEJ1dHRvbnMsIFRhYnNldCBhbmQgVGFicGlsbHNcbiR4cG8tYmx1ZS0tODUwOiAjMGQ0N2ExO1xuJHhwby1ibHVlLS04MDA6ICMxOTc2ZDI7XG4keHBvLWJsdWUtLTM1MDogIzIxOTZmMztcblxuLy8gRXJyb3IgU3RhdGVcbiR4cG8tcmVkLS0yMDA6ICNiNzFjMWM7XG4keHBvLXJlZC0tMTUwOiAjZDMyZjJmO1xuJHhwby1yZWQtLTUwOiAjZmNlZWViO1xuXG4vLyBTdWNjZXNzIFN0YXRlXG4keHBvLWdyZWVuLS02MDA6ICMzODhlM2M7XG4keHBvLWdyZWVuLS00NTA6ICM0Y2FmNTA7XG4keHBvLWdyZWVuLS01MDogI2YxZjlmMTtcblxuLy8gV2FybmluZyBTdGF0ZVxuJHhwby15ZWxsb3ctLTM1MDogI2ZmZDYwMDtcblxuJHhwby1vcmFuZ2UtLTM1MDogI2ZmNmQwMDtcblxuLy8gSW5mbyBTdGF0ZVxuJHhwby1ibHVlLS03MDA6ICMwMDkxZWE7XG5cbi8vIFRyYW5zYWN0aW9uYWwgQ2VsbHNcbiR4cG8tZ3JleS0tMTUwOiAjZWNlZmYxO1xuXG4keHBvLWJsdWVHcmV5LS03MDA6ICNjZmQ4ZGM7XG5cbi8vIEFjY2VudCBDb2xvcnNcbiR4cG8tcGluay0tNzAwOiAjYzUxMTYyO1xuXG4keHBvLXRlYWwtLTcwMDogIzAwYmZhNTtcblxuJHhwby1ibHVlLS04MjU6ICMzMDRmZmU7XG4keHBvLWJsdWUtLTIwMDogI2U0ZWZmYTtcblxuJHhwby1hY2NlbnQtcmVkLS00MDA6ICR4cG8tYnJhbmQtcmVkLS00MDA7XG4keHBvLWFjY2VudC1yZWQtLTEwMDogJHhwby1icmFuZC1yZWQtLTEwMDtcblxuJHhwby1wdXJwbGUtLTcwMDogIzYyMDBlYTtcblxuJHhwby1ncmVlbi0tMjAwOiAjYTRlNTliO1xuXG4keHBvLXllbGxvdy0tMjAwOiAjZmZmOWM0O1xuXG4vKlxuKiogPT09PSBERVBSRUNBVEVEIENPTE9SUyA9PT09XG4qL1xuXG4vKlxuKiogV0FSTklORzogVEhJUyBWQVJJQUJMRVMgV0lMTCBCRSBSRU1PVkVEIFNPT05cbiovXG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTEwMDogI2U4ZjVmZTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMTUwOiAjZTNmMmZkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0zMDA6ICMwZDk0ZjQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTQwMDogIzA4NjhhYztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tOTAwOiAjMDUzYzYzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTEwMDogI2ZmZjhlNTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS0zMDA6ICNmZmNmNGQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tNDAwOiAjZmZiYTAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTcwMDogI2ZmZDYwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS05MDA6ICM0ZDM4MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS0xMDA6ICNjOGZmZGY7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS0zMDA6ICMxY2U4NTU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS0zNTA6ICMwMGM4NTM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS00MDA6ICMxMWE2M2I7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS03MDA6ICMwMGM4NTM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS05MDA6ICMwYTYxMjI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTUwOiAjZmJmYmZiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS02MDogI2ZhZmFmYTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMTAwOiAjZjNmM2YzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0yMDA6ICNlNmU2ZTY7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTI1MDogI2RkZGRkZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNDAwOiAjOWI5YjliO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS02MDA6ICM3NTc1NzU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTY1MDogIzg1ODU4NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNzUwOiAjNTc1NzU3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS05MTU6ICM0MzQ5NGQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTkzMDogIzQyNDI0Mjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMTAwMDogIzE3MTcxNztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMTEwMDogIzIxMjEyMTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0xMDA6ICNmZmVlZWU7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMjUwOiAjZGQyYzAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTMwMDogI2ZmMjIyMjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS00MDA6ICNkNTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNjAwOiAjY2MwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTcwMDogI2QzMmYyZjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS05MDA6ICM1NTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tMTAwOiAjZmZkZmNhO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTMwMDogI2ZmOTk1Nztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS00MDA6ICNmZjY0MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tOTAwOiAjOGIzNzAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1mb250Q29sb3ItLWxpbms6ICMwODY4YWM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJhY2tncm91bmRDb2xvci0tYm9keTogI2YzZjNmMztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLWVycm9yOiAjZDUwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0tc3VjY2VzczogIzExYTYzYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLXdhcm46ICNmZmJhMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1pbmZvOiAjNGE0YTRhO1xuXG4vKlxuKiogPT09PSBDT0xPUlMgQVBQTElFRCA9PT09XG4qL1xuJHhwby1mb250Q29sb3ItLXByaW1hcnk6ICR4cG8tZ3JleS0tOTAwO1xuXG4vKlxuKiogPT09PSBUeXBvZ3JhcGh5ID09PT1cbiovXG4vLyBQdXR0aW5nIHNpemVzIGluIG1hcHMgdG8gYWxsb3cgZHluYW1pYyBzaXppbmcgZm9yIGV4dGVybmFsXG4vLyBSb290IGZvbnQtc2l6ZShzKSBhbHdheXMgaW4gcHhcbiR4cG8tZm9udFNpemUtLXJvb3Q6IDE0cHg7XG4keHBvLWZvbnRTaXplLS1zbWFsbDogMC44NzVyZW07IC8vMTJweFxuJHhwby1mb250U2l6ZS0tbWVkaXVtOiAxcmVtOyAvLzE0cHhcbiR4cG8tZm9udFNpemUtLWxhcmdlOiAxLjE0M3JlbTsgLy8xNnB4XG4keHBvLWZvbnRTaXplLS1leHRyYUxhcmdlOiAxLjI4NXJlbTsgLy8xOHB4XG4keHBvLWZvbnRTaXplLS14eGxhcmdlOiAxLjcxNHJlbTsgLy8yNHB4XG5cbiR4cG8taGVhZGVyLWZvbnRTaXplLS14c21hbGw6IDFyZW07IC8vMTRweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXNtYWxsOiAxLjE0M3JlbTsgLy8xNnB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tbWVkaXVtOiAxLjI4NXJlbTsgLy8xOHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tbGFyZ2U6IDEuNDI4cmVtOyAvLzIwcHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS14bGFyZ2U6IDEuNTcxcmVtOyAvLzIycHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS14eGxhcmdlOiAxLjg1N3JlbTsgLy8yNnB4XG5cbiR4cG8tZm9udEZhbWlseS0tcHJpbWFyeTogJ1JvYm90bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBzYW5zLXNlcmlmO1xuJHhwby1mb250RmFtaWx5LS1yb2JvdG9XaWRlQmxhY2s6ICdSb2JvdG8gV2lkZSBCbGFjaycsICdSb2JvdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgc2Fucy1zZXJpZjtcblxuJHhwby1mb250V2VpZ2h0LS1saWdodDogMzAwO1xuJHhwby1mb250V2VpZ2h0LS1ub3JtYWw6IDQwMDtcbiR4cG8tZm9udFdlaWdodC0tbWVkaXVtOiA1MDA7IC8vIERFUFJFQ0FURUQgfCBkbyBub3QgZGVsZXRlIHNpbmNlIGl0IGlzIHN0aWxsIGJlaW5nIHVzZWQgaW4gc29tZSBwcm9qZWN0c1xuJHhwby1mb250V2VpZ2h0LS1ib2xkOiA1MDA7XG4keHBvLWZvbnRXZWlnaHQtLWV4dHJhQm9sZDogNjAwO1xuJHhwby1mb250V2VpZ2h0LS1ib2xkZXI6IDcwMDtcblxuJHhwby1saW5lSGVpZ2h0LS14bDogMi4yODZyZW07IC8vIDMycHhcbiR4cG8tbGluZUhlaWdodC0tbGc6IDEuNzE0cmVtOyAvLyAyNHB4XG4keHBvLWxpbmVIZWlnaHQtLW1kOiAxLjU3MXJlbTsgLy8gMjJweFxuJHhwby1saW5lSGVpZ2h0LS1zbTogMS40MjlyZW07IC8vIDIwcHhcblxuJHhwby1saW5lSGVpZ2h0LS1iYXNlOiAyNHB4OyAvLyBmb3IgbWVkaXVtIGFuZCBsYXJnZSBmb250IHNpemVcbiR4cG8tbGluZUhlaWdodC0tbWVkaXVtOiAxOHB4OyAvLyBmb3IgbWVkaXVtIGZvbnQgc2l6ZXNcbiR4cG8tbGluZUhlaWdodC0tc21hbGw6IDE2cHg7IC8vIGZvciBzbWFsbCBmb250IHNpemVcblxuJHhwby1oZWFkZXItbGluZUhlaWdodC0tc21hbGw6IDEuMTQzOyAvLyBERVBSRUNBVEVEXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1tZWRpdW06IDEuMTQzOyAvLyBERVBSRUNBVEVEXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1sYXJnZTogMS4yODY7IC8vIERFUFJFQ0FURURcblxuJHhwby1sZXR0ZXJTcGFjaW5nLS1iYXNlOiAwLjJweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLXNtYWxsOiAwLjNweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLW1lZGl1bTogMC4zM3B4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbGFyZ2U6IDAuMzhweDtcblxuLy8gPT09PSBMYXlvdXQgPT09PVxuJHhwby1jb250ZW50U3BhY2luZzogMTZweDtcblxuLy8gQnJlYWtwb2ludHNcbiR4cG8tYnJlYWtwb2ludC0tc21hbGwteHM6IDQ4MHB4O1xuJHhwby1icmVha3BvaW50LS1zbWFsbDogNjAwcHg7XG4keHBvLWJyZWFrcG9pbnQtLW1lZGl1bTogNzY4cHg7XG4keHBvLWJyZWFrcG9pbnQtLWxhcmdlOiAxMDI1cHg7XG4keHBvLWJyZWFrcG9pbnQtLXhMYXJnZTogMTQ0MHB4O1xuXG4keHBvLXNlbGVjdC1iYWNrZ3JvdW5kQ29sb3Itb3B0aW9uT25Ib3ZlcjogJHhwby1ibHVlLS0yMDA7XG5cbi8vIC0tIE5HWC1VSSBTcGVjaWZpYyAtLVxuJG5neC1mb290ZXItaGVpZ2h0OiA0MnB4O1xuJG5neC10YWItaGVhZGVyLWhlaWdodDogNDBweDtcbiRuZ3gtdGFibGUtcm93LWhlaWdodDogMzBweDtcblxuJG5neC1pY29uLXNpemU6IDI0cHg7IC8vIFRPRE86IERlcHJlY2F0ZSB0aGlzIHZhcmlhYmxlXG4keHBvLWljb24tc2l6ZS0tc3RhbmRhcmQ6IDIwcHg7XG4keHBvLWljb24tc2l6ZS0tc21hbGw6IDE4cHg7XG4keHBvLWljb24tc2l6ZS0tbGFyZ2U6IDI0cHg7XG5cbiRuZ3gtdGhlQmxhY2tSb2JvdG86IDkwMDtcblxuJHhwby1pbnB1dC1oZWlnaHQtLWRlZmF1bHQ6IDMwcHg7XG4keHBvLWlucHV0LWhlaWdodC0tdHdvTGluZXM6IDQ1cHg7XG5cbiRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoOiAxcHg7XG5cbiRuZ3gtaW5wdXQtY29sb3Itb25Ib3ZlcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMjAwO1xuJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tZGFyazogJHhwby1ibGFjaztcbiRuZ3gtaW5wdXQtY29sb3Itb25BY3RpdmUtLWxpZ2h0OiAkeHBvLXdoaXRlO1xuJG5neC1pbnB1dC1jb2xvci1ib3JkZXI6ICR4cG8tZ3JleS0tMzAwO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlZC0tZGFyazogJHhwby1ncmV5LS0zNTA7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGUtLWxpZ2h0ZXI6ICR4cG8td2hpdGU7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1saWdodDogJHhwby1ncmV5LS04MDtcblxuJG5neC1idXR0b24tbGluZUhlaWdodDogMzZweDtcbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQtLXNtYWxsOiAyOHB4O1xuJG5neC1idXR0b24tbGluZUhlaWdodC0tbGFyZ2U6IDQ2cHg7XG4kbmd4LWJ1dHRvbi1hbmltYXRpb25EdXJhdGlvbjogMjAwbXM7XG5cbiRuZ3gtaGVhZGVyLWhlaWdodDogNDBweDtcbi8vIEZvciB1c2Ugd2hlbiBhIGhvdmVyIGlzIG5lZWRlZCBvbiBhIHdoaXRlIGJhY2tncm91bmQuXG4kbmd4LXdoaXRlQWZmb3JkYW5jZS1vbkhvdmVyLWNvbG9yOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA7XG5cbiRuZ3gtbWVudS1iYWNrZ3JvdW5kQ29sb3I6ICR4cG8td2hpdGU7XG5cbi8qXG4qKiA9PT09IFNOQUNLQkFSIERFUFJFQ0FURUQgVkFSSUFCTEVTID09PT1cbiovXG5cbi8qXG4qKiBXQVJOSU5HOiBUSElTIFZBUklBQkxFUyBXSUxMIEJFIFJFTU9WRUQgU09PTlxuKi9cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1zdWNjZXNzOiAkeHBvLWdyZWVuLS00NTA7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1lcnJvcjogJHhwby1yZWQtLTE1MDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLWluZm86ICMwMjg4ZDE7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS13YXJuOiAjZmJjMDJkO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLXN1Y2Nlc3M6ICR4cG8tZ3JlZW4tLTYwMDtcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0tZXJyb3I6ICR4cG8tcmVkLS0yMDA7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0taW5mbzogIzAxNTc5YjtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja0Jhci1tYXJnaW5Ub3A6IDMycHg7XG5cbi8vQmFkZ2VcbiRfbWF0QmFkZ2VDb250ZW50LWJhY2tncm91bmRDb2xvci0tbmVnYXRpdmU6ICR4cG8tcmVkLS01MDtcbiRfbWF0QmFkZ2VDb250ZW50LWNvbG9yLS1uZWdhdGl2ZTogI2RkMmMwMDtcbiRfbWF0QmFkZ2VDb250ZW50LWJhY2tncm91bmRDb2xvci0tcG9zaXRpdmU6ICR4cG8tZ3JlZW4tLTUwO1xuXG4kbmd4LW1lbnUtYmFja2dyb3VuZENvbG9yLW9uSG92ZXI6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwO1xuLy8gVXNlZCBhcyBhIHNwYWNlciBmb3IgZmxleGVkIGNoaWxkcmVuXG4vLyBUT0RPOiBNb3ZlIGFsbCBpbnN0YW5jZXMgdG8gdGhlIHV0aWxpdGllcyBkZWZpbml0aW9uXG4uZmxleC0tc3RyZXRjaCB7XG4gIGZsZXg6IDE7XG59XG5cbi8vIC0tLSBEaWFsb2cgLS0tXG4kbmd4LWRpYWxvZy1oZWFkZXItaGVpZ2h0OiA0OHB4O1xuJG5neC1kaWFsb2ctZm9vdGVyLWhlaWdodDogNjRweDtcblxuLy8gLS0tIFRyYW5zaXRpb25zIC0tLVxuJHhwby10cmFuc2l0aW9uLTIwMDogYWxsIDIwMG1zIGVhc2Utb3V0O1xuXG4vLyAtLS0gQ29udGV4dHVhbCBIZWFkZXIgLS0tXG4kbmd4LUNvbnRleHR1YWxIZWFkZXItc2VwYXJhdG9yLS1jb2xvcjogJHhwby1ncmV5LS0zNTA7XG5cblxuJF9kYXRlUGlja2VyLWlucHV0LS1ib3JkZXI6IHNvbGlkIDFweCAkeHBvLWJsYWNrO1xuJF9kYXRlUGlja2VyLWlucHV0LS1taW5XaWR0aDogJHhwby1jb250ZW50U3BhY2luZyAqIDg7XG5cbiRfZGF0ZVBpY2tlci1wb3B1cC0tbWFyZ2luVG9wQWRqdXN0bWVudDogLTFweDtcblxuJF9kYXRlUGlja2VyLXBhbmVsLS1oZWlnaHQ6IDI1MHB4O1xuJF9kYXRlUGlja2VyLXBhbmVsLS13aWR0aDogMjI2cHg7XG5cbiRfZGF0ZVBpY2tlci1jb250cm9sc0Jhci0taGVpZ2h0OiAzMHB4O1xuJF9kYXRlUGlja2VyLWNvbnRyb2xzQmFyLS1tYXJnaW5zOiAkeHBvLWNvbnRlbnRTcGFjaW5nICogMC41O1xuJF9kYXRlUGlja2VyLWNvbnRyb2xzQmFyLWJ1dHRvbnMtLXRoaWNrbmVzczogM3B4O1xuJF9kYXRlUGlja2VyLWNvbnRyb2xzQmFyLXByZXZOZXh0QnV0dG9ucy0tc2l6ZTogJHhwby1jb250ZW50U3BhY2luZztcbiRfZGF0ZVBpY2tlci1jb250cm9sc0Jhci0tc2NhbGU6IHNjYWxlKDAuNTMwNSk7XG5cbiRfZGF0ZVBpY2tlci15ZWFyUGlja2VyLWNlbGxDb250ZW50LS1oZWlnaHQ6IDMwcHg7XG5cbiRfZGF0ZVBpY2tlci1tdWx0aVllYXItLWhlaWdodDogMjA1cHg7XG5cbkBtaXhpbiB4cG8tZGF0ZVBpY2tlci10aGVtZSgkdGhlbWUpIHtcbiAgQGluY2x1ZGUgbWF0LWRhdGVwaWNrZXItdGhlbWUoJHRoZW1lKTtcblxuICAvLy9cbiAgLy8vIERhdGUgUGlja2VyIElucHV0LCBjYWxlbmRhciBidXR0b25cbiAgLy8vXG4gIC54cG8tRGF0ZVBpY2tlciB7XG4gICAgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZSB7XG4gICAgICAkX2RhdGVQaWNrZXItdG9nZ2xlLS1zaXplOiAxNnB4O1xuXG4gICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAubWF0LWljb24tYnV0dG9uIHtcbiAgICAgICAgaGVpZ2h0OiAkX2RhdGVQaWNrZXItdG9nZ2xlLS1zaXplO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHdpZHRoOiAkX2RhdGVQaWNrZXItdG9nZ2xlLS1zaXplO1xuXG4gICAgICAgIC5tYXQtYnV0dG9uLXdyYXBwZXIge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAubWF0LWljb24ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkX2RhdGVQaWNrZXItdG9nZ2xlLS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkX2RhdGVQaWNrZXItdG9nZ2xlLS1zaXplO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRfZGF0ZVBpY2tlci10b2dnbGUtLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJF9kYXRlUGlja2VyLXRvZ2dsZS0tc2l6ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgICAgICAvLyBtaW4td2lkdGggcHJvcGVydHkgc2V0IHRvIGF2b2lkIG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBpY29uIG92ZXJsYXBzIHRleHQgaW5wdXRcbiAgICAgICAgLy8gYmFzZWQgb24gY29udGVudCBzcGFjaW5nXG4gICAgICAgIG1pbi13aWR0aDogJF9kYXRlUGlja2VyLWlucHV0LS1taW5XaWR0aDtcbiAgICAgIH1cblxuICAgICAgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCB7XG4gICAgICAgICRfZGF0ZVBpY2tlci10b2dnbGUtLW1hcmdpbi1yaWdodDogNHB4O1xuXG4gICAgICAgIG1hcmdpbi1yaWdodDogJF9kYXRlUGlja2VyLXRvZ2dsZS0tbWFyZ2luLXJpZ2h0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIHNob3cgZGVmaW5lZCBib3JkZXIgY29sb3IgaW4gZGF0ZSBwaWNrZXIgaW5wdXQgdGV4dFxuICAgIC8vIHdoZW4gZGF0ZSBwaWNrZXIgY2FsZW5kYXIgaXMgb3BlblxuICAgICYtLWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICBib3JkZXItY29sb3I6ICR4cG8tYmxhY2s7XG4gICAgfVxuICB9XG5cbiAgLy8vXG4gIC8vLyBEYXRlIFBpY2tlciBDYWxlbmRhciBwb3B1cFxuICAvLy9cbiAgLm1hdC1kYXRlcGlja2VyLXBvcHVwIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IHtcbiAgICBib3JkZXI6ICRfZGF0ZVBpY2tlci1pbnB1dC0tYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgLy8gdGhpcyBpcyBhIG5lZ2F0aXZlIHRvcCBtYXJnaW4gdXNlZCB0byBzaG93IHRoZSBjYWxlbmRhciBwb3B1cCB0b3AgYm9yZGVyXG4gICAgLy8gYW5kIHRvIG5vdCBzaG93aW5nIHRoZSBpbnB1dCB0ZXh0IGJvdHRvbSBib3JkZXJcbiAgICBtYXJnaW4tdG9wOiAkX2RhdGVQaWNrZXItcG9wdXAtLW1hcmdpblRvcEFkanVzdG1lbnQ7XG5cbiAgICAueHBvLURhdGVQaWNrZXItY2FsZW5kYXIubWF0LWNhbGVuZGFyIHtcbiAgICAgIGhlaWdodDogJF9kYXRlUGlja2VyLXBhbmVsLS1oZWlnaHQ7XG4gICAgICB3aWR0aDogJF9kYXRlUGlja2VyLXBhbmVsLS13aWR0aDtcblxuICAgICAgLm1hdC1jYWxlbmRhciB7XG4gICAgICAgIC8vL1xuICAgICAgICAvLy8gU3R5bGVzIGZvciBjYWxlbmRhciBoZWFkZXJcbiAgICAgICAgLy8vXG4gICAgICAgICYtaGVhZGVyIHtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtY29udHJvbHMge1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgaGVpZ2h0OiAkX2RhdGVQaWNrZXItY29udHJvbHNCYXItLWhlaWdodDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgbWFyZ2luOiAkX2RhdGVQaWNrZXItY29udHJvbHNCYXItLW1hcmdpbnMgMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtcGVyaW9kLWJ1dHRvbiB7XG4gICAgICAgICAgY29sb3I6ICR4cG8tYmxhY2s7XG4gICAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG4gICAgICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtcHJldmlvdXMtYnV0dG9uLFxuICAgICAgICAmLW5leHQtYnV0dG9uIHtcbiAgICAgICAgICBoZWlnaHQ6ICRfZGF0ZVBpY2tlci1jb250cm9sc0Jhci1wcmV2TmV4dEJ1dHRvbnMtLXNpemU7XG4gICAgICAgICAgd2lkdGg6ICRfZGF0ZVBpY2tlci1jb250cm9sc0Jhci1wcmV2TmV4dEJ1dHRvbnMtLXNpemU7XG5cbiAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICR4cG8tYmxhY2s7XG4gICAgICAgICAgICBib3JkZXItdG9wLXdpZHRoOiAkX2RhdGVQaWNrZXItY29udHJvbHNCYXItYnV0dG9ucy0tdGhpY2tuZXNzO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtcHJldmlvdXMtYnV0dG9uIHtcbiAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBib3JkZXItbGVmdC13aWR0aDogJF9kYXRlUGlja2VyLWNvbnRyb2xzQmFyLWJ1dHRvbnMtLXRoaWNrbmVzcztcbiAgICAgICAgICAgIHRyYW5zZm9ybTogJF9kYXRlUGlja2VyLWNvbnRyb2xzQmFyLS1zY2FsZSB0cmFuc2xhdGVYKCRfZGF0ZVBpY2tlci1jb250cm9sc0Jhci1idXR0b25zLS10aGlja25lc3MpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtbmV4dC1idXR0b24ge1xuICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogJF9kYXRlUGlja2VyLWNvbnRyb2xzQmFyLWJ1dHRvbnMtLXRoaWNrbmVzcztcbiAgICAgICAgICAgIHRyYW5zZm9ybTogJF9kYXRlUGlja2VyLWNvbnRyb2xzQmFyLS1zY2FsZSB0cmFuc2xhdGVYKC0kX2RhdGVQaWNrZXItY29udHJvbHNCYXItYnV0dG9ucy0tdGhpY2tuZXNzKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vL1xuICAgICAgICAvLy8gU3R5bGVzIGZvciBjYWxlbmRhciB0YWJsZSBoZWFkZXJcbiAgICAgICAgLy8vXG4gICAgICAgICYtdGFibGUtaGVhZGVyIHtcbiAgICAgICAgICBjb2xvcjogJHhwby1ibGFjaztcblxuICAgICAgICAgIHRoIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi1kaXZpZGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8vXG4gICAgICAgIC8vLyBDb21tb24gc3R5bGVzIGZvciBjYWxlbmRhciBib2R5IHZpZXdzXG4gICAgICAgIC8vL1xuICAgICAgICAmLWJvZHkge1xuICAgICAgICAgICYtbGFiZWwge1xuICAgICAgICAgICAgLy8gIWltcG9ydGFudCBpcyBuZWVkZWQgaW4gb3JkZXIgdG8gb3ZlcnJpZGUgaW4tbGluZSBzdHlsZXNcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIC8vIGZvciBzcGFjaW5nIHB1cnBvc2VzIHdlIG5lZWQgdG8ga2VlcCB0aGUgZWxlbWVudCBzaXplXG4gICAgICAgICAgICAvLyBzbyB3ZSB1c2UgdmlzaWJpbGl0eTogaGlkZGVuIGluc3RlYWQgb2YgZGlzcGxheTogbm9uZVxuICAgICAgICAgICAgLy8gYmVzaWRlcyB0aGlzIGNsYXNzIGlzIGFwcGx5IHRvIGEgdGQgZWxlbWVudFxuICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYtY2VsbDpob3ZlciB7XG4gICAgICAgICAgICAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50IHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ibHVlLS0xMDA7XG4gICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgIGNvbG9yOiAkeHBvLWJsYWNrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgICYtY2VsbC1jb250ZW50IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tNjA7XG4gICAgICAgICAgICBjb2xvcjogJHhwby1ibGFjaztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYtdG9kYXkge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkeHBvLWJsdWUtLTgwMDtcbiAgICAgICAgICAgIGNvbG9yOiAkeHBvLWJsdWUtLTgwMDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tYmx1ZS0tODAwO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkeHBvLWJsdWUtLTgwMDtcbiAgICAgICAgICAgIGNvbG9yOiAkeHBvLXdoaXRlO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcblxuICAgICAgICAgICAgJi5tYXQtY2FsZW5kYXItYm9keS10b2RheSB7XG4gICAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8vXG4gICAgLy8vIFN0eWxlcyBmb3IgY2FsZW5kYXIgeWVhciB2aWV3XG4gICAgLy8vXG4gICAgbWF0LXllYXItdmlldyAubWF0LWNhbGVuZGFyLXRhYmxlIHtcbiAgICAgIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vL1xuICAgIC8vLyBTdHlsZXMgZm9yIGNhbGVuZGFyIG11bHRpLXllYXIgdmlld1xuICAgIC8vL1xuICAgIG1hdC1tdWx0aS15ZWFyLXZpZXcgLm1hdC1jYWxlbmRhci10YWJsZSB7XG4gICAgICBoZWlnaHQ6ICRfZGF0ZVBpY2tlci1tdWx0aVllYXItLWhlaWdodDtcblxuICAgICAgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudCB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGhlaWdodDogJF9kYXRlUGlja2VyLXllYXJQaWNrZXItY2VsbENvbnRlbnQtLWhlaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHhwby1kYXRlLXJhbmdlLXBpY2tlci10aGVtZSgkdGhlbWUpIHtcbiAgLy8gREFURSBSQU5HRSBJTlBVVCBGT1JNIEZJRUxEIFNUWUxFXG4gIG1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLXR5cGUteHBvLWRhdGUtcmFuZ2UtaW5wdXQge1xuICAgIC8vIHVzZSBhIG5lZ2F0aXZlIG1hcmdpbiB0byBwb3NpdGlvbiB0aGUgbGFiZWwgb24gdG9wIGZvciB0aGUgaW5wdXQgY29udHJvbFxuICAgIC8vIGluIHRoZSBzYW1lIHdheSBpdCBpcyBkb25lIGZvciBcIm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LWlucHV0XCJcbiAgICAkX2Zvcm1GaWVsZC1tYXJnaW5Ub3A6IDI0cHg7XG4gICAgJF9mb3JtRmllbGQtaWNvbi1mb250U2l6ZTogMjBweDtcblxuICAgIG1hcmdpbi1ib3R0b206ICR4cG8tY29udGVudFNwYWNpbmc7XG4gICAgbWFyZ2luLXRvcDogJF9mb3JtRmllbGQtbWFyZ2luVG9wO1xuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSW5wdXQgZGVmYXVsdCBiZWhhdmlvclxuICAgICYubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kge1xuICAgICAgLy8gT25seSBwbGFjZWhvbGRlclxuICAgICAgJi5tYXQtZm9ybS1maWVsZC1oaWRlLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgICAgICAgICAkX2xhYmVsV3JhcHBlci10b3AtLWRlZmF1bHQ6IC0xMnB4O1xuICAgICAgICAgICRfbGFiZWxXcmFwcGVyLWxlZnQtLWRlZmF1bHQ6IDlweDtcblxuICAgICAgICAgIGxlZnQ6ICRfbGFiZWxXcmFwcGVyLWxlZnQtLWRlZmF1bHQ7XG4gICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgICAgdG9wOiAkX2xhYmVsV3JhcHBlci10b3AtLWRlZmF1bHQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGb2N1c2VkIG9yIHdpdGggdmFsdWVcbiAgICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQge1xuICAgICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJHhwby1mb250RmFtaWx5LS1wcmltYXJ5O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiBpbmhlcml0O1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5LFxuICAgICYubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICAvLyBTZXRzIHRoZSBib3JkZXIgY29sb3Igd2hlbiBpbnZhbGlkXG4gICAgICAmLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICAgICAgICBib3JkZXItY29sb3I6ICR4cG8tcmVkLS00MDA7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICAgICAgaGVpZ2h0OiB1bnNldDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc21hbGw7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgIH1cblxuICAgICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtaGludCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tc21hbGw7XG4gICAgICAgIG1hcmdpbi10b3A6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgICAgfVxuXG4gICAgICAubWF0LWVycm9yIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICR4cG8tZm9udEZhbWlseS0tcHJpbWFyeTtcbiAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLW5vcm1hbDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc21hbGw7XG4gICAgICAgIG1hcmdpbi10b3A6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuXG4gICAgICAgIC5tYXQtaWNvbiB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgZm9udC1zaXplOiAkX2Zvcm1GaWVsZC1pY29uLWZvbnRTaXplO1xuICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbWFsbDtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyA0O1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFJlbW92ZXMgdGhlIHVuZGVybGluZVxuICAgICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLm1hdC1mb3JtLWZpZWxkLWhhcy1sYWJlbCkge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICAmLm1hdC1mb2N1c2VkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgICAgICAgYm9yZGVyOiAkbmd4LWlucHV0LWJvcmRlci13aWR0aCBzb2xpZCAkeHBvLWJsYWNrO1xuICAgICAgfVxuXG4gICAgICAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgICAgIEBpbmNsdWRlIG1hdC1lbGV2YXRpb24oMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICAgICAgJF9mb3JtRmllbGQtYm9yZGVyUmFkaXVzOiAycHg7XG5cbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLXdoaXRlO1xuICAgICAgYm9yZGVyOiAkbmd4LWlucHV0LWJvcmRlci13aWR0aCBzb2xpZCAkbmd4LWlucHV0LWNvbG9yLWJvcmRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRfZm9ybUZpZWxkLWJvcmRlclJhZGl1cztcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC1zdWZmaXgge1xuICAgICAgICAkX2Zvcm1GaWVsZC1zdWZmaXgtbWFyZ2luOiA0cHg7XG5cbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkX2Zvcm1GaWVsZC1zdWZmaXgtbWFyZ2luO1xuXG4gICAgICAgIC5tYXQtaWNvbi1idXR0b24ge1xuICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHdpZHRoOiAyMDhweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBEQVRFIFJBTkdFIElOUFVUXG4gIC54cG8tRGF0ZVJhbmdlSW5wdXQge1xuICAgICYtc2VwYXJhdG9yIHtcbiAgICAgIC8vIERpc2FibGUgdGV4dCBzZWxlY3Rpb25cbiAgICAgIC8vIHdlIGFkZCB0aGlzIGhlcmUsIGluc3RlYWQgb2YgdGhlIGNvbXBvbmVudCBzdHlsZXMgZGVmaW5pdGlvblxuICAgICAgLy8ganVzdCB0byByZXVzZSBtYXRlcmlhbCBtaXhpbiB3ZSBoYXZlIGF2YWlsYWJsZSBoZXJlIGFuZCBpdCdzIG5vdCBhdmFpbGFibGVcbiAgICAgIC8vIGluc2lkZSB0aGUgY29tcG9uZW50IHN0eWxlcyBkZWZpbml0aW9uXG4gICAgICBAaW5jbHVkZSB1c2VyLXNlbGVjdChub25lKTtcbiAgICB9XG4gIH1cblxuICAvLyBEQVRFIFBJQ0tFUiBQT1BVUFxuICAuY2RrLW92ZXJsYXktcGFuZS54cG8tRGF0ZVJhbmdlUGlja2VyLXBvcHVwIHtcbiAgICAvLyB0aGUgc2FtZSBhcyBmb3IgYG1hcmdpbi10b3BgIGluIGNhc2UgdGhlIGNhbGVuZGFyIGlzIHNob3duIGFib3ZlIHRoZSBpbnB1dFxuICAgIG1hcmdpbi1ib3R0b206IC0xcHg7XG4gICAgLy8gdGhpcyBpcyBhIG5lZ2F0aXZlIHRvcCBtYXJnaW4gdXNlZCB0byBzaG93IHRoZSBjYWxlbmRhciBwb3B1cCB0b3AgYm9yZGVyXG4gICAgLy8gYW5kIHRvIG5vdCBzaG93aW5nIHRoZSBpbnB1dCBib3R0b20gYm9yZGVyXG4gICAgbWFyZ2luLXRvcDogLTFweDtcbiAgfVxufVxuXG5AaW1wb3J0ICd+QGFuZ3VsYXIvbWF0ZXJpYWwvdGhlbWluZyc7XG4vLyBUT0RPOiBSZW5hbWUgdGhpcyBzbyBpdCBkb2Vzbid0IGdldCBjb25mdXNlZCB3aXRoIHRoZSBwYWdlJ3MgaGVhZGVyXG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tc21hbGwoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLXNtYWxsO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1zbWFsbDtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1tZWRpdW0oKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLW1lZGl1bTtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLW1lZGl1bTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLW1lZGl1bTtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1sYXJnZSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbGFyZ2U7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1sYXJnZTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLWxhcmdlO1xufVxuXG4vLyBSZWd1bGFyIHRleHQgbWl4aW5zXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tc21hbGwoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tbWVkaXVtKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtLWxhcmdlKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLWxhcmdlO1xufVxuXG5cbi8qXG4qKiA9PT09IEJhc2ljIGNvbG9ycyA9PT09XG4qL1xuXG4vKlxuKiogPT09PSBYUE8gQnJhbmQgQ29sb3IgUGFsZXR0ZSA9PT09XG4qL1xuXG4vLyBYUE8gUmVkXG4keHBvLWJyYW5kLXJlZDogI2NjMDAwMDtcbiR4cG8tYnJhbmQtcmVkLS05MDA6ICR4cG8tYnJhbmQtcmVkO1xuJHhwby1icmFuZC1yZWQtLTgwMDogI2U0MjEwZTtcbiR4cG8tYnJhbmQtcmVkLS03MDA6ICNmMzJhMTM7XG4keHBvLWJyYW5kLXJlZC0tNjAwOiAjZmYzMzE3O1xuJHhwby1icmFuZC1yZWQtLTUwMDogI2ZmMzkxYztcbiR4cG8tYnJhbmQtcmVkLS00MDA6ICNmZjVlM2Q7XG4keHBvLWJyYW5kLXJlZC0tMzAwOiAjZmY3ZTYwO1xuJHhwby1icmFuZC1yZWQtLTIwMDogI2ZmYTQ4ZTtcbiR4cG8tYnJhbmQtcmVkLS0xMDA6ICNmZmM4YmE7XG4keHBvLWJyYW5kLXJlZC0tNTA6ICNmY2U4ZTY7XG5cbi8vIFhQTyBCbGFja1xuJHhwby1ibGFjazogIzAwMDAwMDtcbiR4cG8tYnJhbmQtYmxhY2stLTkwMDogJHhwby1ibGFjaztcbiR4cG8tYnJhbmQtYmxhY2stLTgwMDogIzI2MjYyNjtcbiR4cG8tYnJhbmQtYmxhY2stLTcwMDogIzU1NTU1NTtcbiR4cG8tYnJhbmQtYmxhY2stLTYwMDogIzdiN2I3YjtcbiR4cG8tYnJhbmQtYmxhY2stLTUwMDogIzlkOWQ5ZDtcbiR4cG8tYnJhbmQtYmxhY2stLTQwMDogIzlkOWQ5ZDtcbiR4cG8tYnJhbmQtYmxhY2stLTMwMDogI2M0YzRjNDtcbiR4cG8tYnJhbmQtYmxhY2stLTIwMDogI2Q5ZDlkOTtcbiR4cG8tYnJhbmQtYmxhY2stLTEwMDogI2U5ZTllOTtcbiR4cG8tYnJhbmQtYmxhY2stLTUwOiAjZjVmNWY1O1xuXG4vLyBYUE8gRGFyayBHcmV5XG4keHBvLWJyYW5kLWRhcmstZ3JleTogIzQxNGE0YztcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS05MDA6ICMyMjI4MmI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tODAwOiAkeHBvLWJyYW5kLWRhcmstZ3JleTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS03MDA6ICM2MjY4NmM7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNjAwOiAjNzU3ZDgxO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTUwMDogI2EwYTZhYTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS00MDA6ICNiZWM1Yzk7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMzAwOiAjZTBlN2ViO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTIwMDogI2ViZjJmNjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0xMDA6ICNmMGY3ZmI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNTA6ICNmNGZjZmY7XG5cbi8vIFhQTyBNZWRpdW0gR3JleVxuJHhwby1icmFuZC1tZWRpdW0tZ3JleTogIzg0ODQ4NDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTkwMDogIzJlMmUyZTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTgwMDogIzUwNTA1MDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTcwMDogIzcwNzA3MDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTYwMDogJHhwby1icmFuZC1tZWRpdW0tZ3JleTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwMDogI2FmYWZhZjtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTQwMDogI2NkY2RjZDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTMwMDogI2VlZWVlZTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDogI2YzZjNmMztcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTEwMDogI2Y4ZjhmODtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwOiAjZmNmY2ZjO1xuXG4vLyBYUE8gTGlnaHQgR3JleVxuJHhwby1icmFuZC1saWdodC1ncmV5OiAjZGVkZWRlO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS05MDA6ICMxZjFmMWY7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTgwMDogIzNmM2YzZjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNzAwOiAjNWU1ZTVlO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS02MDA6ICM3MjcyNzI7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwMDogIzlhOWE5YTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNDAwOiAjYmFiYWJhO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0zMDA6ICR4cG8tYnJhbmQtbGlnaHQtZ3JleTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMjAwOiAjZWNlY2VjO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0xMDA6ICNmNGY0ZjQ7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwOiAjZjlmOWY5O1xuXG4vKlxuKiogPT09PSBNYWluIENvbG9yIFBhbGV0dGUgPT09PVxuKi9cblxuLy8gQmxhY2sgYW5kIEdyZXlcbiR4cG8tZ3JleS0tOTc1OiAjMjEyMTIxO1xuJHhwby1ncmV5LS05NTA6ICMzMzMzMzM7XG4keHBvLWdyZXktLTkwMDogIzRhNGE0YTtcbiR4cG8tZ3JleS0tNzAwOiAjNmY2ZjZmO1xuJHhwby1ncmV5LS0zNTA6ICNiZGJkYmQ7XG4keHBvLWdyZXktLTMwMDogI2Q4ZDhkODtcbiR4cG8tZ3JleS0tODA6ICNmNmY2ZjY7XG4keHBvLWdyZXktLTI1OiAjZmFmYWZhO1xuXG4keHBvLXdoaXRlOiAjZmZmZmZmO1xuXG4vLyBMaW5rcywgQnV0dG9ucywgVGFic2V0IGFuZCBUYWJwaWxsc1xuJHhwby1ibHVlLS04NTA6ICMwZDQ3YTE7XG4keHBvLWJsdWUtLTgwMDogIzE5NzZkMjtcbiR4cG8tYmx1ZS0tMzUwOiAjMjE5NmYzO1xuXG4vLyBFcnJvciBTdGF0ZVxuJHhwby1yZWQtLTIwMDogI2I3MWMxYztcbiR4cG8tcmVkLS0xNTA6ICNkMzJmMmY7XG4keHBvLXJlZC0tNTA6ICNmY2VlZWI7XG5cbi8vIFN1Y2Nlc3MgU3RhdGVcbiR4cG8tZ3JlZW4tLTYwMDogIzM4OGUzYztcbiR4cG8tZ3JlZW4tLTQ1MDogIzRjYWY1MDtcbiR4cG8tZ3JlZW4tLTUwOiAjZjFmOWYxO1xuXG4vLyBXYXJuaW5nIFN0YXRlXG4keHBvLXllbGxvdy0tMzUwOiAjZmZkNjAwO1xuXG4keHBvLW9yYW5nZS0tMzUwOiAjZmY2ZDAwO1xuXG4vLyBJbmZvIFN0YXRlXG4keHBvLWJsdWUtLTcwMDogIzAwOTFlYTtcblxuLy8gVHJhbnNhY3Rpb25hbCBDZWxsc1xuJHhwby1ncmV5LS0xNTA6ICNlY2VmZjE7XG5cbiR4cG8tYmx1ZUdyZXktLTcwMDogI2NmZDhkYztcblxuLy8gQWNjZW50IENvbG9yc1xuJHhwby1waW5rLS03MDA6ICNjNTExNjI7XG5cbiR4cG8tdGVhbC0tNzAwOiAjMDBiZmE1O1xuXG4keHBvLWJsdWUtLTgyNTogIzMwNGZmZTtcbiR4cG8tYmx1ZS0tMjAwOiAjZTRlZmZhO1xuXG4keHBvLWFjY2VudC1yZWQtLTQwMDogJHhwby1icmFuZC1yZWQtLTQwMDtcbiR4cG8tYWNjZW50LXJlZC0tMTAwOiAkeHBvLWJyYW5kLXJlZC0tMTAwO1xuXG4keHBvLXB1cnBsZS0tNzAwOiAjNjIwMGVhO1xuXG4keHBvLWdyZWVuLS0yMDA6ICNhNGU1OWI7XG5cbiR4cG8teWVsbG93LS0yMDA6ICNmZmY5YzQ7XG5cbi8qXG4qKiA9PT09IERFUFJFQ0FURUQgQ09MT1JTID09PT1cbiovXG5cbi8qXG4qKiBXQVJOSU5HOiBUSElTIFZBUklBQkxFUyBXSUxMIEJFIFJFTU9WRUQgU09PTlxuKi9cbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMTAwOiAjZThmNWZlO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0xNTA6ICNlM2YyZmQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTMwMDogIzBkOTRmNDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tNDAwOiAjMDg2OGFjO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS05MDA6ICMwNTNjNjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tMTAwOiAjZmZmOGU1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTMwMDogI2ZmY2Y0ZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS00MDA6ICNmZmJhMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tNzAwOiAjZmZkNjAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTkwMDogIzRkMzgwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTEwMDogI2M4ZmZkZjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTMwMDogIzFjZTg1NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTM1MDogIzAwYzg1Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTQwMDogIzExYTYzYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTcwMDogIzAwYzg1Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTkwMDogIzBhNjEyMjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNTA6ICNmYmZiZmI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTYwOiAjZmFmYWZhO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMDA6ICNmM2YzZjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTIwMDogI2U2ZTZlNjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMjUwOiAjZGRkZGRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS00MDA6ICM5YjliOWI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTYwMDogIzc1NzU3NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjUwOiAjODU4NTg1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS03NTA6ICM1NzU3NTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTkxNTogIzQzNDk0ZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tOTMwOiAjNDI0MjQyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMDAwOiAjMTcxNzE3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMTAwOiAjMjEyMTIxO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTEwMDogI2ZmZWVlZTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0yNTA6ICNkZDJjMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMzAwOiAjZmYyMjIyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTQwMDogI2Q1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS02MDA6ICNjYzAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNzAwOiAjZDMyZjJmO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTkwMDogIzU1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS0xMDA6ICNmZmRmY2E7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tMzAwOiAjZmY5OTU3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTQwMDogI2ZmNjQwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS05MDA6ICM4YjM3MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWZvbnRDb2xvci0tbGluazogIzA4NjhhYztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmFja2dyb3VuZENvbG9yLS1ib2R5OiAjZjNmM2YzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0tZXJyb3I6ICNkNTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1zdWNjZXNzOiAjMTFhNjNiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0td2FybjogI2ZmYmEwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLWluZm86ICM0YTRhNGE7XG5cbi8qXG4qKiA9PT09IENPTE9SUyBBUFBMSUVEID09PT1cbiovXG4keHBvLWZvbnRDb2xvci0tcHJpbWFyeTogJHhwby1ncmV5LS05MDA7XG5cbi8qXG4qKiA9PT09IFR5cG9ncmFwaHkgPT09PVxuKi9cbi8vIFB1dHRpbmcgc2l6ZXMgaW4gbWFwcyB0byBhbGxvdyBkeW5hbWljIHNpemluZyBmb3IgZXh0ZXJuYWxcbi8vIFJvb3QgZm9udC1zaXplKHMpIGFsd2F5cyBpbiBweFxuJHhwby1mb250U2l6ZS0tcm9vdDogMTRweDtcbiR4cG8tZm9udFNpemUtLXNtYWxsOiAwLjg3NXJlbTsgLy8xMnB4XG4keHBvLWZvbnRTaXplLS1tZWRpdW06IDFyZW07IC8vMTRweFxuJHhwby1mb250U2l6ZS0tbGFyZ2U6IDEuMTQzcmVtOyAvLzE2cHhcbiR4cG8tZm9udFNpemUtLWV4dHJhTGFyZ2U6IDEuMjg1cmVtOyAvLzE4cHhcbiR4cG8tZm9udFNpemUtLXh4bGFyZ2U6IDEuNzE0cmVtOyAvLzI0cHhcblxuJHhwby1oZWFkZXItZm9udFNpemUtLXhzbWFsbDogMXJlbTsgLy8xNHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tc21hbGw6IDEuMTQzcmVtOyAvLzE2cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1tZWRpdW06IDEuMjg1cmVtOyAvLzE4cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1sYXJnZTogMS40MjhyZW07IC8vMjBweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXhsYXJnZTogMS41NzFyZW07IC8vMjJweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXh4bGFyZ2U6IDEuODU3cmVtOyAvLzI2cHhcblxuJHhwby1mb250RmFtaWx5LS1wcmltYXJ5OiAnUm9ib3RvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XG4keHBvLWZvbnRGYW1pbHktLXJvYm90b1dpZGVCbGFjazogJ1JvYm90byBXaWRlIEJsYWNrJywgJ1JvYm90bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXG4keHBvLWZvbnRXZWlnaHQtLWxpZ2h0OiAzMDA7XG4keHBvLWZvbnRXZWlnaHQtLW5vcm1hbDogNDAwO1xuJHhwby1mb250V2VpZ2h0LS1tZWRpdW06IDUwMDsgLy8gREVQUkVDQVRFRCB8IGRvIG5vdCBkZWxldGUgc2luY2UgaXQgaXMgc3RpbGwgYmVpbmcgdXNlZCBpbiBzb21lIHByb2plY3RzXG4keHBvLWZvbnRXZWlnaHQtLWJvbGQ6IDUwMDtcbiR4cG8tZm9udFdlaWdodC0tZXh0cmFCb2xkOiA2MDA7XG4keHBvLWZvbnRXZWlnaHQtLWJvbGRlcjogNzAwO1xuXG4keHBvLWxpbmVIZWlnaHQtLXhsOiAyLjI4NnJlbTsgLy8gMzJweFxuJHhwby1saW5lSGVpZ2h0LS1sZzogMS43MTRyZW07IC8vIDI0cHhcbiR4cG8tbGluZUhlaWdodC0tbWQ6IDEuNTcxcmVtOyAvLyAyMnB4XG4keHBvLWxpbmVIZWlnaHQtLXNtOiAxLjQyOXJlbTsgLy8gMjBweFxuXG4keHBvLWxpbmVIZWlnaHQtLWJhc2U6IDI0cHg7IC8vIGZvciBtZWRpdW0gYW5kIGxhcmdlIGZvbnQgc2l6ZVxuJHhwby1saW5lSGVpZ2h0LS1tZWRpdW06IDE4cHg7IC8vIGZvciBtZWRpdW0gZm9udCBzaXplc1xuJHhwby1saW5lSGVpZ2h0LS1zbWFsbDogMTZweDsgLy8gZm9yIHNtYWxsIGZvbnQgc2l6ZVxuXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1zbWFsbDogMS4xNDM7IC8vIERFUFJFQ0FURURcbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLW1lZGl1bTogMS4xNDM7IC8vIERFUFJFQ0FURURcbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLWxhcmdlOiAxLjI4NjsgLy8gREVQUkVDQVRFRFxuXG4keHBvLWxldHRlclNwYWNpbmctLWJhc2U6IDAuMnB4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tc21hbGw6IDAuM3B4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbWVkaXVtOiAwLjMzcHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1sYXJnZTogMC4zOHB4O1xuXG4vLyA9PT09IExheW91dCA9PT09XG4keHBvLWNvbnRlbnRTcGFjaW5nOiAxNnB4O1xuXG4vLyBCcmVha3BvaW50c1xuJHhwby1icmVha3BvaW50LS1zbWFsbC14czogNDgwcHg7XG4keHBvLWJyZWFrcG9pbnQtLXNtYWxsOiA2MDBweDtcbiR4cG8tYnJlYWtwb2ludC0tbWVkaXVtOiA3NjhweDtcbiR4cG8tYnJlYWtwb2ludC0tbGFyZ2U6IDEwMjVweDtcbiR4cG8tYnJlYWtwb2ludC0teExhcmdlOiAxNDQwcHg7XG5cbiR4cG8tc2VsZWN0LWJhY2tncm91bmRDb2xvci1vcHRpb25PbkhvdmVyOiAkeHBvLWJsdWUtLTIwMDtcblxuLy8gLS0gTkdYLVVJIFNwZWNpZmljIC0tXG4kbmd4LWZvb3Rlci1oZWlnaHQ6IDQycHg7XG4kbmd4LXRhYi1oZWFkZXItaGVpZ2h0OiA0MHB4O1xuJG5neC10YWJsZS1yb3ctaGVpZ2h0OiAzMHB4O1xuXG4kbmd4LWljb24tc2l6ZTogMjRweDsgLy8gVE9ETzogRGVwcmVjYXRlIHRoaXMgdmFyaWFibGVcbiR4cG8taWNvbi1zaXplLS1zdGFuZGFyZDogMjBweDtcbiR4cG8taWNvbi1zaXplLS1zbWFsbDogMThweDtcbiR4cG8taWNvbi1zaXplLS1sYXJnZTogMjRweDtcblxuJG5neC10aGVCbGFja1JvYm90bzogOTAwO1xuXG4keHBvLWlucHV0LWhlaWdodC0tZGVmYXVsdDogMzBweDtcbiR4cG8taW5wdXQtaGVpZ2h0LS10d29MaW5lczogNDVweDtcblxuJG5neC1pbnB1dC1ib3JkZXItd2lkdGg6IDFweDtcblxuJG5neC1pbnB1dC1jb2xvci1vbkhvdmVyOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA7XG4kbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1kYXJrOiAkeHBvLWJsYWNrO1xuJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tbGlnaHQ6ICR4cG8td2hpdGU7XG4kbmd4LWlucHV0LWNvbG9yLWJvcmRlcjogJHhwby1ncmV5LS0zMDA7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1kYXJrOiAkeHBvLWdyZXktLTM1MDtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZS0tbGlnaHRlcjogJHhwby13aGl0ZTtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWxpZ2h0OiAkeHBvLWdyZXktLTgwO1xuXG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0OiAzNnB4O1xuJG5neC1idXR0b24tbGluZUhlaWdodC0tc21hbGw6IDI4cHg7XG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0LS1sYXJnZTogNDZweDtcbiRuZ3gtYnV0dG9uLWFuaW1hdGlvbkR1cmF0aW9uOiAyMDBtcztcblxuJG5neC1oZWFkZXItaGVpZ2h0OiA0MHB4O1xuLy8gRm9yIHVzZSB3aGVuIGEgaG92ZXIgaXMgbmVlZGVkIG9uIGEgd2hpdGUgYmFja2dyb3VuZC5cbiRuZ3gtd2hpdGVBZmZvcmRhbmNlLW9uSG92ZXItY29sb3I6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDtcblxuJG5neC1tZW51LWJhY2tncm91bmRDb2xvcjogJHhwby13aGl0ZTtcblxuLypcbioqID09PT0gU05BQ0tCQVIgREVQUkVDQVRFRCBWQVJJQUJMRVMgPT09PVxuKi9cblxuLypcbioqIFdBUk5JTkc6IFRISVMgVkFSSUFCTEVTIFdJTEwgQkUgUkVNT1ZFRCBTT09OXG4qL1xuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLXN1Y2Nlc3M6ICR4cG8tZ3JlZW4tLTQ1MDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLWVycm9yOiAkeHBvLXJlZC0tMTUwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0taW5mbzogIzAyODhkMTtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLXdhcm46ICNmYmMwMmQ7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0tc3VjY2VzczogJHhwby1ncmVlbi0tNjAwO1xuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1lcnJvcjogJHhwby1yZWQtLTIwMDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1pbmZvOiAjMDE1NzliO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrQmFyLW1hcmdpblRvcDogMzJweDtcblxuLy9CYWRnZVxuJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1uZWdhdGl2ZTogJHhwby1yZWQtLTUwO1xuJF9tYXRCYWRnZUNvbnRlbnQtY29sb3ItLW5lZ2F0aXZlOiAjZGQyYzAwO1xuJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1wb3NpdGl2ZTogJHhwby1ncmVlbi0tNTA7XG5cbiRuZ3gtbWVudS1iYWNrZ3JvdW5kQ29sb3Itb25Ib3ZlcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTA7XG4vLyBVc2VkIGFzIGEgc3BhY2VyIGZvciBmbGV4ZWQgY2hpbGRyZW5cbi8vIFRPRE86IE1vdmUgYWxsIGluc3RhbmNlcyB0byB0aGUgdXRpbGl0aWVzIGRlZmluaXRpb25cbi5mbGV4LS1zdHJldGNoIHtcbiAgZmxleDogMTtcbn1cblxuLy8gLS0tIERpYWxvZyAtLS1cbiRuZ3gtZGlhbG9nLWhlYWRlci1oZWlnaHQ6IDQ4cHg7XG4kbmd4LWRpYWxvZy1mb290ZXItaGVpZ2h0OiA2NHB4O1xuXG4vLyAtLS0gVHJhbnNpdGlvbnMgLS0tXG4keHBvLXRyYW5zaXRpb24tMjAwOiBhbGwgMjAwbXMgZWFzZS1vdXQ7XG5cbi8vIC0tLSBDb250ZXh0dWFsIEhlYWRlciAtLS1cbiRuZ3gtQ29udGV4dHVhbEhlYWRlci1zZXBhcmF0b3ItLWNvbG9yOiAkeHBvLWdyZXktLTM1MDtcblxuXG5AbWl4aW4gZGlhbG9nLWhlYWRlci0tcHJpbWFyeSgpIHtcbiAgJF9kaWFsb2ctaGVhZGVyUGFkZGluZzogMjRweDtcbiAgJF9kaWFsb2ctaG9yaXpvbnRhbE1hcmdpbjogMjRweDtcbiAgJF9kaWFsb2ctbGluZUhlaWdodDogMjhweDtcblxuICBjb2xvcjogJHhwby1ibGFjaztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC1zaHJpbms6IDA7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0teHhsYXJnZTtcbiAgbGluZS1oZWlnaHQ6ICRfZGlhbG9nLWxpbmVIZWlnaHQ7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luOiAwICRfZGlhbG9nLWhvcml6b250YWxNYXJnaW47XG4gIHBhZGRpbmctYm90dG9tOiAkX2RpYWxvZy1oZWFkZXJQYWRkaW5nIC8gMjtcbiAgcGFkZGluZy10b3A6ICRfZGlhbG9nLWhlYWRlclBhZGRpbmc7XG59XG5cblxuQG1peGluIHhwby1kaWFsb2ctdGhlbWUoJHRoZW1lKSB7XG4gIEBpbmNsdWRlIG1hdC1kaWFsb2ctdGhlbWUoJHRoZW1lKTtcbiAgJF9kaWFsb2ctc3BhY2luZzogMjRweDtcblxuICBtYXQtZGlhbG9nLWNvbnRhaW5lci5tYXQtZGlhbG9nLWNvbnRhaW5lciB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgIC54cG8tRGlhbG9nLWNvbnRhaW5lciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBbbWF0LWRpYWxvZy10aXRsZV0ubWF0LWRpYWxvZy10aXRsZSB7XG4gICAgICBAaW5jbHVkZSBkaWFsb2ctaGVhZGVyLS1wcmltYXJ5KCk7XG5cbiAgICAgICY6bm90KC54cG8tQ29uZmlybURpYWxvZy1oZWFkZXIpIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR4cG8tZ3JleS0tMzAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIFttYXQtZGlhbG9nLWNvbnRlbnRdLm1hdC1kaWFsb2ctY29udGVudCxcbiAgICBtYXQtZGlhbG9nLWNvbnRlbnQubWF0LWRpYWxvZy1jb250ZW50IHtcbiAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTk1MDtcbiAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbGFyZ2U7XG4gICAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1iYXNlO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogYXV0bztcbiAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgcGFkZGluZzogJF9kaWFsb2ctc3BhY2luZyAvIDIgJF9kaWFsb2ctc3BhY2luZyAkX2RpYWxvZy1zcGFjaW5nO1xuICAgICAgcDpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkX2RpYWxvZy1zcGFjaW5nO1xuICAgICAgfVxuICAgIH1cblxuICAgIFttYXQtZGlhbG9nLWFjdGlvbnNdLm1hdC1kaWFsb2ctYWN0aW9ucyxcbiAgICBtYXQtZGlhbG9nLWFjdGlvbnMubWF0LWRpYWxvZy1hY3Rpb25zIHtcbiAgICAgICRfZGlhbG9nLXNwYWNpbmctYnV0dG9uOiAyOHB4O1xuXG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHhwby1ncmV5LS0zMDA7IFxuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBtYXJnaW46IDAgJF9kaWFsb2ctc3BhY2luZztcbiAgICAgIG1pbi1oZWlnaHQ6IGF1dG87XG4gICAgICBwYWRkaW5nOiAkX2RpYWxvZy1zcGFjaW5nIDAgJF9kaWFsb2ctc3BhY2luZy1idXR0b247XG5cbiAgICAgIC54cG8tQnV0dG9uR3JvdXAgPiAubWF0LWJ1dHRvbi1iYXNlIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFRoaXMgb3ZlcnJpZGVzIHN0eWxlcyBpbiBvcmRlciBmb3IgdGhlIGV4cGFuc2lvbi1wYW5lbCB0byBtYXRjaCB0aGVcbi8vIG5neC1sdGwtY29yZSBkZXNpZ24gZ3VpZGVsaW5lcy5cbkBtaXhpbiB4cG8tZXhwYW5zaW9uLXBhbmVsLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtZXhwYW5zaW9uLXBhbmVsLXRoZW1lKCR0aGVtZSk7XG5cbiAgJF9tYXRFeHBhbnNpb24taGVhZGVyVGl0bGUtcGFkZGluZ0xlZnQ6IDEwcHg7XG4gICRfcGFuZWxNYXRJY29uLWZvbnRTaXplOiAyMHB4O1xuICAkX21hdEV4cGFuc2lvblBhbmVsQm9keS1wYWRkaW5nOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMiAzOXB4ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAkX21hdEV4cGFuc2lvblBhbmVsSGVhZGVyLVN0YXR1c0luZGljYXRvci1mb250U2l6ZTogMTBweDtcblxuICAubWF0LWFjY29yZGlvbiA+IC5tYXQtZXhwYW5zaW9uLXBhbmVsLFxuICAubWF0LWV4cGFuc2lvbi1wYW5lbCB7XG4gICAgLy8gRml4IHNjcm9sbGluZyB3aGVuIG9wZW5pbmcgcGFuZWwgYW5kIG90aGVyIHBhbmVsIGlzIGFscmVhZHkgb3BlbmVkXG4gICAgbWFyZ2luOiAwLjFweDtcblxuICAgICYsXG4gICAgJjpub3QoW2NsYXNzKj0nbWF0LWVsZXZhdGlvbi16J10pIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cblxuICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciB7XG4gICAgICBwYWRkaW5nOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcblxuICAgICAgLm1hdC1jb250ZW50OjpiZWZvcmUgIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdNYXRlcmlhbCBJY29ucyc7XG4gICAgICAgIGZvbnQtc2l6ZTogJHhwby1saW5lSGVpZ2h0LS1iYXNlO1xuICAgICAgfVxuXG4gICAgICAmLm1hdC1leHBhbmRlZCA+IC5tYXQtY29udGVudDo6YmVmb3JlICB7XG4gICAgICAgIGNvbnRlbnQ6ICdyZW1vdmUnO1xuICAgICAgfVxuXG4gICAgICAmOm5vdCgubWF0LWV4cGFuZGVkKSA+IC5tYXQtY29udGVudDo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJ2FkZCc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1pY29uIHtcbiAgICAgIGZvbnQtc2l6ZTogJF9wYW5lbE1hdEljb24tZm9udFNpemU7XG4gICAgfVxuXG4gICAgLm1hdC1leHBhbnNpb24tcGFuZWwtYm9keSB7XG4gICAgICBwYWRkaW5nOiAkX21hdEV4cGFuc2lvblBhbmVsQm9keS1wYWRkaW5nO1xuICAgICAgcGFkZGluZy1ib3R0b206ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuXG4gICAgICBwIHtcbiAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1yb290O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnQge1xuICAgICAgLm1hdC1jZWxsIHtcbiAgICAgICAgPiAubWF0LWljb24ge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWNvbnRlbnQge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLWJhc2U7XG5cbiAgICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogJHhwby1jb250ZW50U3BhY2luZyAvIDIgJF9tYXRFeHBhbnNpb24taGVhZGVyVGl0bGUtcGFkZGluZ0xlZnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLnhwby1FeHBhbnNpb25QYW5lbERhcmstLXdyYXApIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkeHBvLWdyZXktLTMwMDtcblxuICAgICAgbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICAgICAgICAmLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIHtcbiAgICAgICAgICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1zbWFsbDtcblxuICAgICAgICAgICY6bm90KFthcmlhLWRpc2FibGVkPSd0cnVlJ10pIHtcbiAgICAgICAgICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSB7XG4gICAgICAgICAgICAgIGNvbG9yOiAkeHBvLWJsYWNrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubWF0LWNvbnRlbnQ6OmJlZm9yZSB7XG4gICAgICAgICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTkzMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSB7XG4gICAgICAgICAgICBjb2xvcjogJHhwby1ncmV5LS0zMDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi54cG8tRXhwYW5zaW9uUGFuZWxEYXJrLS13cmFwIHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuXG4gICAgICAmOm5vdCgubWF0LWV4cGFuZGVkKSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR4cG8tZ3JleS0tMzAwO1xuICAgICAgfVxuXG4gICAgICAmLm1hdC1leHBhbmRlZCB7XG4gICAgICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnQge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR4cG8tZ3JleS0tMzAwO1xuICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cblxuICAgICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIHtcbiAgICAgICAgJlthcmlhLWRpc2FibGVkPSd0cnVlJ10ge1xuICAgICAgICAgIC5tYXQtY29udGVudCB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICBjb2xvcjogJHhwby1ncmV5LS04MCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUge1xuICAgICAgICAgICAgICBjb2xvcjogJHhwby1ncmV5LS0zMDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5tYXQtZXhwYW5kZWQge1xuICAgICAgICAgIC5tYXQtY29udGVudDo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tOTUwO1xuICAgICAgICAgICAgY29sb3I6ICR4cG8td2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAubWF0LWNvbnRlbnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmV5LS05MDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcblxuICAgICAgICAgICAgJiA+IC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSxcbiAgICAgICAgICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICAgIGNvbG9yOiAkeHBvLXdoaXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KC5tYXQtZXhwYW5kZWQpIHtcbiAgICAgICAgICAubWF0LWNvbnRlbnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmV5LS04MDtcbiAgICAgICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTEwMDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmV5LS0zMDA7XG4gICAgICAgICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTk1MDtcbiAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICBwYWRkaW5nOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciB7XG4gICAgICAmLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIHtcbiAgICAgICAgOjpiZWZvcmUsXG4gICAgICAgIC5tYXQtaWNvbixcbiAgICAgICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlLFxuICAgICAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgIDo6YmVmb3JlIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlIHtcbiAgICAgICAgICBAaW5jbHVkZSBUZXh0VHJlYXRtZW50LWhlYWRlci0tc21hbGwoKTtcblxuICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1iYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uIHtcbiAgICAgICAgICBAaW5jbHVkZSBUZXh0VHJlYXRtZW50LS1zbWFsbCgpO1xuXG4gICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnhwby1TdGF0dXNJbmRpY2F0b3Ige1xuICAgICAgICAgICY6bm90KDpmaXJzdC1vZi10eXBlKSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi10YWcge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkX21hdEV4cGFuc2lvblBhbmVsSGVhZGVyLVN0YXR1c0luZGljYXRvci1mb250U2l6ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1leHBhbmRlZCB7XG4gICAgICAmLm1hdC1leHBhbnNpb24tcGFuZWwtc3BhY2luZyB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6bm90KFthcmlhLWRpc2FibGVkPSd0cnVlJ10pOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVtb3ZpbmcgYm9yZGVyLXJhZGl1cyBvbiBuZXN0ZWQgYWNjb3JkaW9ucy5cbiAgLy8gTW92aW5nIGl0IG91dCBvZiB0aGUgbWFpbiB3cmFwcGVyIGJlY2F1c2Ugd2UgbmVlZCB0byBhZGQgdGhlIHNwZWNpZmljaXR5LFxuICAvLyBpbiBvcmRlciB0byBvdmVycmlkZSBNYXRlcmlhbCdzIHN0eWxlcy5cbiAgLm1hdC1hY2NvcmRpb24gbWF0LWV4cGFuc2lvbi1wYW5lbC5tYXQtZXhwYW5zaW9uLXBhbmVsOmxhc3Qtb2YtdHlwZSB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuXG5AbWl4aW4geHBvLWZvcm0tZmllbGQtbGFiZWwoKSB7XG4gICRfbGFiZWwtdG9wOiAtMjRweDtcblxuICBtYXQtZm9ybS1maWVsZCB7XG4gICAgJi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSB7XG4gICAgICAmLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQge1xuICAgICAgICAmLm1hdC1mb3JtLWZpZWxkLWhhcy1sYWJlbCB7XG4gICAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgICAgIC8vIE92ZXJyaWRpbmcgbWF0ZXJpYWwgdHJhbnNmb3JtIHNpbmNlIHRoZXkgc2NhbGUgdGhlIGZvcm0gbGFiZWwgZm9yIFwic29tZVwiIHJlYXNvbiAoUHJvYmFibHkgYmVjYXVzZSBvZiB0aGVpciBmYW5jeVxuICAgICAgICAgICAgLy8gYW5pbWF0aW9ucykgdG8gY2hhbmdlIGl0J3MgZm9udCBzaXplIGFuZCB0aGF0IGNhdXNlcyBsb3Qgb2Ygbm9pc2UgKFlvdSBjYW4ndCBzZXQgYSBwcm9wZXIgZm9udC1zaXplIHNpbmNlIFxuICAgICAgICAgICAgLy8gaXQnbGwgbmV2ZXIgcmVmbGVjdCB0aGUgcmVhbCBzaXplKS4gQWxzbyBvcGVuZWQgYW4gaXNzdWUgdG8gdW5kZXJzdGFuZCB3aHk6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvaXNzdWVzLzIzOTQwIFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1yb290O1xuICAgICAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tOTAwICFpbXBvcnRhbnQ7IC8vIFRoZSByZWFzb24gb2YgdGhlICFpbXBvcnRhbnQgaXMgdGhlIGJsdWUgY29sb3Igb24gZm9jdXNcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkeHBvLWZvbnRGYW1pbHktLXByaW1hcnk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc21hbGw7XG5cbiAgICAgICAgICAgIG1hdC1sYWJlbCB7XG4gICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXG4gICAgICAgICAgICAgIC5tYXQtaWNvbiB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgdG9wOiAkX2xhYmVsLXRvcDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vXG4vLyBUaGUgb3ZlcnJpZGVzIGluIG9yZGVyIGZvciB0aGUgZm9ybSBmaWVsZCB0byBtYXRjaCB0aGVcbi8vICAgZGVzaWduIHNwZWNpZmljYXRpb25zLlxuLy8gQXMgYSBub3RlOiBUaGlzIGRvZXMgbm90IGNvbnRhaW4gdGhlIHN0eWxlcyBmb3IgdGhlIGlucHV0c1xuLy8gICB0aGVtc2VsdmVzLiBUaG9zZSBjYW4gYmUgZm91bmQgaW4gdGhlIGlucHV0IHRoZW1lLiBXaGlsZVxuLy8gICBtb3N0IG9mIHRoZSBzdHlsaW5nIGZvciBpbnB1dHMgaXMgaGVyZSwgdGVjaG5pY2FsbHkgaXQnc1xuLy8gICB0aGUgXCJmb3JtLWZpZWxkXCIgdGhhdCBpcyBiZWluZyBzdHlsZWQgaGVyZS5cbi8vXG4vLyBBZGRpdGlvbmFsIE5vdGU6IFBsZWFzZSBjb250aW51ZSB0byB1c2UgRU1zIGZvciBzaXppbmcuXG4vLyAgIFRoaXMgYWxsb3dzIHRoZSBpbnB1dHMgdG8gYmUgc2NhbGVkIG91dHNpZGUgb2YgdGhlXG4vLyAgIGNvbXBvbmVudHMgYXJvdW5kIGl0LiBUaGlzIGlzIHdoYXQgTWF0ZXJpYWwgZG9lcyBhbmRcbi8vICAgaXQgaGFzIGJlZW4ga2VwdCBmdW5jdGlvbmluZyBieSBrZWVwaW5nIHRoZSB0cmVuZC5cbi8vXG4vLyBAYXV0aG9yICAgIFBldGVyIFJhbXNpbmcgPHBldGVyLnJhbXNpbmdAeHBvLmNvbT5cbi8vXG4vLyBAdGhhbmtzICAgIEFsbGlzb24sIFBldGVyJ3Mgd2lmZSwgd2hvIHNwZW50IGEgbG9uZWx5XG4vLyAgICAgICAgICAgICB3ZWVrZW5kIHdoaWxlIGhlIGNvZGVkIHRoaXMgaW4gdGhlIG9mZmljZS5cbi8vXG4vLyBUT0RPOiBGaWd1cmUgb3V0IHRoZSBAYXQtcm9vdCBvcmdhbml6YXRpb24gaGVyZS4gVGhlXG4vLyAgICAgICAgY29tcGlsYXRpb24gaXMgYSBiaXQgd29ua3kuXG4vLy9cblxuLypcbiAgICAxLiBUaGFua3MgdG8gc3ViLXBpeGVscyBhbmQgaG93IHRoZXkgcmVuZGVyIHRoaXMgY2F1c2VkIHNvbWUgbmFzdHlcbiAgICAgICAgYmx1ci4gRXchIFdoYXQgb25lIGNhbiBkbyBpcyBzdGFydCB0byBhZGQgc3ViLXBpeGVscyBpbiBhbG9uZ1xuICAgICAgICB3aXRoIHRoZSBcImVtXCIgKG9yIHJlbSwgb3IgcG9pbnRzLCBvciDwn6eAOyBpdCBkb2Vzbid0IHJlYWxseVxuICAgICAgICBtYXR0ZXIpLiBUaGlzIGlzIHN1Yi1waXhlbCBwdXNoaW5nIHNvIEkganVzdCB1c2VkIG15IGV5ZSBvblxuICAgICAgICBhIGxvdy1yZXogbW9uaXRvciBhbmQgZ290IGl0IGFzIGNsb3NlIGFzIEkgY291bGQuIEJlY2F1c2VcbiAgICAgICAgYGNhbGNgIHdhcyB1c2VzIHRoaXMgd2lsbCBiZSBoYW5kbGVkIG9uIHRoZSBET00gaW5zdGVhZCBvZlxuICAgICAgICBkdXJpbmcgdGhlIFNDU1MgY29tcGlsYXRpb24gd2hpY2ggc2hvdWxkIGdpdmUgdGhlIHJlbmRlcmluZ1xuICAgICAgICBlbmdpbmUgdGhlIGJlc3QgY2hhbmNlIHRvIG1ha2UgdGhlIGNvcnJlY3QgZGVjaXNpb24uXG4gICAgMi4gVGhpcyBpcyB0byBzdXBwb3J0IHRoZSB0ZXh0IHdlaWdodCBjaGFuZ2luZyBmcm9tIHRoZSBsYWJlbFxuICAgICAgICBjaGFuZ2luZyB3ZWlnaHRzIGFzIHdlIHdhbnQgdG8gYW5pbWF0ZSB0aGlzIGNoYW5nZSBpbnN0ZWFkXG4gICAgICAgIG9mIGEgc25hcHBpbmcgY2hhbmdlLlxuICAgIDMuIFRoaXMgbGFyZ2UgYml0IG9mIGNsYXNzZXMgaXMgdG8gaWRlbnRpZnkgaWYgYSBwcmVmaXggaXMgYXR0YWNoZWRcbiAgICAgICAgdG8gdGhlIGlucHV0IHNvIHRoYXQgd2UgY2FuIG1vdmUgdGhlIGxhYmVsIGJldHRlci5cbiAgICA0LiBNYXRlcmlhbCBoYXMgdGhpcyBzZXQgdG8gMTMzLjMzMyUgYmVjYXVzZSB0aGV5IHNjYWxlIHRoZSBsYWJlbC5cbiAgICAgICAgV2UncmUgY2hhbmdpbmcgdGhhdCBzY2FsZSBzbyB3ZSBuZWVkIHRvIGNoYW5nZSB0aGUgc2l6ZSBvZiBpdC5cbiovXG5cbkBtaXhpbiB4cG8tZm9ybS1maWVsZC10aGVtZSgkdGhlbWUpIHtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLWZvcm0tZmllbGQtbGFiZWwoKTtcblxuICAvLyBJTlBVVCBTVFlMRVxuICBtYXQtZm9ybS1maWVsZCB7XG4gICAgJi5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1pbnB1dCB7XG4gICAgICAkX2xhYmVsLXRvcDogLTI0cHg7XG4gICAgICAkX2Zvcm1GaWVsZC1tYXJnaW5Ub3A6IDI0cHg7XG4gICAgICAkX2RlZmF1bHRGb3JtRmllbGRXcmFwcGVyLXRvcDogLTEycHg7XG4gICAgICAkX2RlZmF1bHRGb3JtRmllbGRXcmFwcGVyLWxlZnQ6IDlweDtcbiAgICAgICRfZm9ybS1maWVsZC1ib3JkZXJSYWRpdXM6IDJweDtcbiAgICAgICRfZm9ybUZpZWxkLXN1ZmZpeFByZWZpeC1tYXJnaW46IDZweDtcbiAgICAgICRfZm9ybUZpZWxkLWljb24tc2l6ZTogMTZweDtcbiAgICAgICRfZm9ybUZpZWxkLWljb24tZm9udFNpemU6IDIwcHg7XG4gICAgICAkX2Zvcm1GaWVsZC1zdWZmaXhQcmVmaXgtbG9hZGVyLS1zaXplOiAyNHB4O1xuXG4gICAgICBtYXJnaW4tYm90dG9tOiAkeHBvLWNvbnRlbnRTcGFjaW5nO1xuICAgICAgbWFyZ2luLXRvcDogJF9mb3JtRmllbGQtbWFyZ2luVG9wO1xuXG4gICAgICAmLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgICAgICAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBJbnB1dCBkZWZhdWx0IGJlaGF2aW9yXG4gICAgICAmLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IHtcblxuICAgICAgICAmLm1hdC1mb3JtLWZpZWxkLWhpZGUtcGxhY2Vob2xkZXIge1xuICAgICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICAgICAgICAgICAgbGVmdDogJF9kZWZhdWx0Rm9ybUZpZWxkV3JhcHBlci1sZWZ0O1xuICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgICAgICB0b3A6ICRfZGVmYXVsdEZvcm1GaWVsZFdyYXBwZXItdG9wO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIEZvY3VzZWQgb3Igd2l0aCB2YWx1ZVxuICAgICAgICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IHtcbiAgICAgICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkeHBvLWZvbnRGYW1pbHktLXByaW1hcnk7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLW1lZGl1bTsgLy9UaGlzIHNpemUgaW4gMThweCBiZWNhdXNlIHRoZSBkZWZhdWx0IGxhYmVsIHdpdGggc2NhbGUoMC43NSlcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IGluaGVyaXQ7XG4gICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3ksXG4gICAgICAmLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgICAgICAkX2lubmVySW5wdXQtbGVmdFBhZGRpbmc6IDAuMjVlbTtcbiAgICAgICAgJF9pbm5lcklucHV0LXJpZ2h0UGFkZGluZzogMC4yNWVtO1xuICAgICAgICAkX2lucHV0LWJvcmRlckNvbG9yLS1mb2N1c2VkOiAkbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1kYXJrO1xuXG4gICAgICAgIC8vIFNldHMgdGhlIGJvcmRlciBjb2xvciB3aGVuIGludmFsaWRcbiAgICAgICAgJi5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICR4cG8tY29sb3ItLWVycm9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgICAgICAgIGhlaWdodDogdW5zZXQ7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc21hbGw7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLm5neC1Gb3JtRmllbGQtLWlubGluZSB7XG4gICAgICAgICAgJixcbiAgICAgICAgICAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXIge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWhpbnQge1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tc21hbGw7XG4gICAgICAgICAgbWFyZ2luLXRvcDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWVycm9yIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAkeHBvLWZvbnRGYW1pbHktLXByaW1hcnk7XG4gICAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG4gICAgICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tbm9ybWFsO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xuICAgICAgICAgIG1hcmdpbi10b3A6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuXG4gICAgICAgICAgLm1hdC1pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkX2Zvcm1GaWVsZC1pY29uLWZvbnRTaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc21hbGw7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyA0O1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gQm9yZGVybGVzc1xuICAgICAgICAvLyBUaGlzIGNsYXNzIGhhcyB0aGUgb2xkIGZvcm1hdCwgd2UncmUgbm90IHVwZGF0aW5nIG5vdyBiZWNhdXNlIGl0IG1pZ2h0IGJlaW5nXG4gICAgICAgIC8vIHVzZWQgaW4gc2V2ZXJhbCBhcHBsaWNhdGlvbnNcbiAgICAgICAgJi5uZ3gtRm9ybUZpZWxkLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiB1bnNldDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSRU1PVkFMU1xuICAgICAgICAvLyBSZW1vdmVzIHRoZSB1bmRlcmxpbmVcbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOm5vdCgubWF0LWZvcm0tZmllbGQtaGFzLWxhYmVsKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWZvY3VzZWQge1xuICAgICAgICAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICAgICAgYm9yZGVyOiAkbmd4LWlucHV0LWJvcmRlci13aWR0aCBzb2xpZCAkeHBvLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgICAgICAgIEBpbmNsdWRlIG1hdC1lbGV2YXRpb24oMCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLXdoaXRlO1xuICAgICAgICBib3JkZXI6ICRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoIHNvbGlkICRuZ3gtaW5wdXQtY29sb3ItYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkX2Zvcm0tZmllbGQtYm9yZGVyUmFkaXVzO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1wcmVmaXgsXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1zdWZmaXgge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAubWF0LWljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICBmb250LXNpemU6ICRfZm9ybUZpZWxkLWljb24tZm9udFNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRfZm9ybUZpZWxkLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRfZm9ybUZpZWxkLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkX2Zvcm1GaWVsZC1pY29uLXNpemU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLnhwby1CdXN5TG9hZGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkX2Zvcm1GaWVsZC1zdWZmaXhQcmVmaXgtbG9hZGVyLS1zaXplO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1wcmVmaXgge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkX2Zvcm1GaWVsZC1zdWZmaXhQcmVmaXgtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkX2Zvcm1GaWVsZC1zdWZmaXhQcmVmaXgtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgICAubWF0LWljb24gKyAubWF0LWlucHV0LWVsZW1lbnQge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gICAgICAgICAgICBjb2xvcjogJHhwby1ibGFjaztcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkeHBvLWZvbnRGYW1pbHktLXByaW1hcnk7XG4gICAgICAgICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDZweCAkeHBvLWNvbnRlbnRTcGFjaW5nLzI7XG4gICAgICAgICAgICByZXNpemU6IG5vbmU7XG5cbiAgICAgICAgICAgICY6ZGlzYWJsZWQge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTEwMDtcbiAgICAgICAgICAgICAgY29sb3I6ICR4cG8tYmxhY2s7XG4gICAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBjb2xvcjogJHhwby1ncmV5LS05NTAgIWltcG9ydGFudDsgLy8gVGhlIHJlYXNvbiBvZiB0aGUgIWltcG9ydGFudCBpcyB0aGUgYmx1ZSBjb2xvciBvbiBmb2N1c1xuICAgICAgICBmb250LWZhbWlseTogJHhwby1mb250RmFtaWx5LS1wcmltYXJ5O1xuICAgICAgICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1sYXJnZTsgLy9UaGlzIHNpemUgaW4gMjBweCBiZWNhdXNlIHRoZSBkZWZhdWx0IGxhYmVsIHdpdGggc2NhbGUoMC43NSlcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG5cbiAgICAgICAgbWF0LWxhYmVsIHtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXG4gICAgICAgICAgLm1hdC1pY29uIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gWFBPIGN1c3RvbSBDb21wb25lbnRzL0RpcmVjdGl2ZXNcbiAgICAueHBvLUxhYmVsLS13cmFwIHtcbiAgICAgIC5tYXQtY2hlY2tib3gtbGF5b3V0LFxuICAgICAgLm1hdC1yYWRpby1sYWJlbCB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiB1bnNldDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLnhwby1Gb3JtLS1pbmxpbmUge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAubWF0LWJ1dHRvbi1iYXNlLFxuICAgIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCxcbiAgICAubWF0LWZvcm0tZmllbGQsXG4gICAgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LWlucHV0Om5vdCgubWF0LWZvcm0tZmllbGQtaGFzLWxhYmVsKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkeHBvLWNvbnRlbnRTcGFjaW5nO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgICYgPiAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJHhwby1jb250ZW50U3BhY2luZztcblxuICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy9cbi8vIFRoZSBvdmVycmlkZXMgaW4gb3JkZXIgZm9yIHRoZSBJbnB1dCB0byBtYXRjaCB0aGUgZGVzaWduXG4vL1xuLy8gQXMgYSBub3RlOiBUaGlzIGlzIGp1c3QgZm9yIElucHV0cy4gTW9zdCBvZiB0aGUgc3R5bGluZ1xuLy8gICBmb3IgaW5wdXRzIGlzIGFjdHVhbGx5IGhhbmRsZWQgb24gdGhlIEZvcm0gRmllbGQuXG4vL1xuLy8gQWRkaXRpb25hbCBOb3RlOiBQbGVhc2UgY29udGludWUgdG8gdXNlIEVNcyBmb3Igc2l6aW5nLlxuLy8gICBUaGlzIGFsbG93cyB0aGUgaW5wdXRzIHRvIGJlIHNjYWxlZCBvdXRzaWRlIG9mIHRoZVxuLy8gICBjb21wb25lbnRzIGFyb3VuZCBpdC4gVGhpcyBpcyB3aGF0IE1hdGVyaWFsIGRvZXMgYW5kXG4vLyAgIGl0IGhhcyBiZWVuIGtlcHQgZnVuY3Rpb25pbmcgYnkga2VlcGluZyB0aGUgdHJlbmQuXG4vL1xuLy8gQGF1dGhvciAgICBQZXRlciBSYW1zaW5nIDxwZXRlci5yYW1zaW5nQHhwby5jb20+XG4vLy9cblxuQG1peGluIHhwby1pbnB1dC10aGVtZSgkdGhlbWUpIHtcbiAgQGluY2x1ZGUgbWF0LWlucHV0LXRoZW1lKCR0aGVtZSk7XG5cbiAgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIGNhcmV0LWNvbG9yOiAkeHBvLWdyZXktLTkwMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi10b3A6IDAuMTM3NWVtO1xuXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbiAgfVxufVxuXG4vLy9cbi8vIFRoZSBjb2RlIHRvIG1ha2UgdGhlIGJhc2UgTWF0ZXJpYWwgTWVudXMgbWFrZSBCcmFkIGhhcHB5XG4vL1xuLy8gLi4uYW5kIE1hcmlvLCB0b28uXG4vL1xuLy8gQGF1dGhvciAgICBQZXRlciBSYW1zaW5nIDxwZXRlci5yYW1zaW5nQHhwby5jb20+XG4vL1xuLy8vXG5cbi8qXG4gICAgMS4gVGhyZXcgYSBgZGl2YCB0byBzdGFydCB0aGlzIG9mZiB0byBnZXQgdGhlIHNjb3JlIHRvIDAwMTEgaW4gb3JkZXJcbiAgICAgICAgdG8gYmVhdCBNYXRlcmlhbHMgMDAxMC4gTXdhaGFoYWhhLlxuICAgIDIuIFRoaXMgZGlzYWJsZXMgdGhlIGNhcmV0IG9uIGFueXRoaW5nIGJ1dCB0aGUgZmlyc3QgbWVudSB3aGVuIHRoZXJlXG4gICAgICAgIGFyZSBuZXN0ZWQgbWVudXMuIFRoaXMgaXMgc2xpZ2h0bHkgZnJhZ2lsZSBidXQgc2FkbHkgTWF0ZXJpYWxcbiAgICAgICAgZG9lc24ndCBnaXZlIHVzIG11Y2ggb2YgYSBjaG9pY2UgaGVyZS4gV2Uga25vdyB0aGUgZmlyc3QgcGFuZWxcbiAgICAgICAgaXMgdGhlIHNlY29uZCBjaGlsZCBvZiB0aGUgb3ZlcmxheSBgZGl2YCBzbyB3ZSBnZXQgdGhlIHNlY29uZFxuICAgICAgICB3aXRoIGBudGgtb2YtdHlwZSgyKWAgd2hpY2ggZ2V0cyB0aGUgc2Vjb25kIGBkaXZgLi4udGhlbiBhZGRcbiAgICAgICAgYDpub3QoKWAgYW5kIHlvdSBub3cgZ2V0IFwiZXZlcnl0aGluZyB0aGF0IGlzbid0IHRoZSBzZWNvbmQgZGl2LlxuICAgIDMuIFRoaXMgaXMgYmVjYXVzZSB0aGUgZmlyc3QgYW5kIGxhc3QgbWVudSBpdGVtcyBoYXZlIHNwYWNlIGFkZGVkXG4gICAgICAgIGFyb3VuZCB0aGVtLiBUaGUgY2FyZXRzIG5lZWQgdG8gcmVzcGVjdCB0aGF0IGFuZCBiZWNhdXNlIHRoZVxuICAgICAgICBhcmVhIHJvdW5kIHRoZSBidXR0b25zIG5lZWRzIHRvIGFjY2VwdCB0aGUgaG92ZXIgc3RhdGUgdGhpc1xuICAgICAgICB0aGVzZSBuZWVkIHRvIGJlIG1hbnVhbGx5IG1vdmVkLiBBbGwgb3RoZXIgY2FyZXRzIGFyZSBqdXN0XG4gICAgICAgIG1vdmVkIDUwJSB3aG9sZXNhbGUuXG4gICAgNC4gVGhhbmtzIHRvIHRoZSByZWR1Y2VkIHBhZGRpbmcgd2UgbmVlZCB0byBtb3ZlIHRoZSBzdWJtZW51IHRyaWdnZXJcbiAgICAgICAgaWNvbiBvdmVyIGp1c3QgYSBiaXQuXG4qL1xuQGltcG9ydCAnfkBhbmd1bGFyL21hdGVyaWFsL3RoZW1pbmcnO1xuXG5AbWl4aW4geHBvLW1lbnUtdGhlbWUoJHRoZW1lKSB7XG4gIEBpbmNsdWRlIG1hdC1tZW51LXRoZW1lKCR0aGVtZSk7XG5cbiAgZGl2Lm1hdC1tZW51LXBhbmVsIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJvcmRlciA6IDFweCBzb2xpZCAkeHBvLWdyZXktLTMwMDtcbiAgICBAaW5jbHVkZSBtYXQtZWxldmF0aW9uKDEpO1xuICAgIG1hcmdpbi10b3A6ICR4cG8tY29udGVudFNwYWNpbmcgLyA0O1xuXG5cbiAgICAubWF0LW1lbnUtY29udGVudDpub3QoOmVtcHR5KSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cblxuICAgIC5tYXQtbWVudS1pdGVtIHtcbiAgICAgICRfbWVudS1wYWRkaW5nOiA2cHg7XG5cbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBjb2xvcjogJHhwby1ibGFjaztcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBnYXA6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgICAgaGVpZ2h0OiAkeHBvLWNvbnRlbnRTcGFjaW5nICogMjtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtO1xuICAgICAgcGFkZGluZzogJF9tZW51LXBhZGRpbmcgJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG5cbiAgICAgIC54cG8tSWNvbiAubWF0LWljb24ge1xuICAgICAgICBjb2xvcjogJHhwby1ibGFjaztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tOTc1O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmOmRpc2FibGVkIHtcbiAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tMzUwO1xuXG4gICAgICAgIC54cG8tSWNvbiAubWF0LWljb24ge1xuICAgICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTM1MDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR4cG8tYmx1ZS0tMjAwO1xuICAgICAgfVxuXG4gICAgICAvLyBUT0RPIFRoZSBuZXN0ZWQgbWVudSBoYXMgYmVlbiBkZXByZWNhdGVkIGluIHRoZSBkb2N1bWVudGF0aW9uIGJ1dCB0aGUgY2xhc3MgaXMgbm90IHJlbW92ZWQgdG8gYXZvaWQgYnJlYWtpbmcgY2hhbmdlcy5cbiAgICAgICYtc3VibWVudS10cmlnZ2VyOjphZnRlciB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTdweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhLm1hdC1tZW51LWl0ZW0sXG4gICAgYS5tYXQtbWVudS1pdGVtOmhvdmVyLFxuICAgIGEubWF0LW1lbnUtaXRlbTpmb2N1cyB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gVE9ETyBUaGUgZGl2aWRlciBzdHlsZSBoYXMgYmVlbiBkZXByZWNhdGVkIGluIHRoZSBkb2N1bWVudGF0aW9uIGJ1dCB0aGUgY2xhc3MgaXMgbm90IHJlbW92ZWQgdG8gYXZvaWQgYnJlYWtpbmcgY2hhbmdlcy5cbiAgICAubWF0LWRpdmlkZXIgeyBcbiAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTMwMDtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBUT0RPIFRoZSBjbGFzcyBpcyBub3QgcmVtb3ZlZCB0byBhdm9pZCBicmVha2luZyBjaGFuZ2VzLlxuICAuY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveDpub3QoOm50aC1vZi10eXBlKDIpKSB7XG4gICAgLm1hdC1tZW51LXBhbmVsOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4geHBvLW11bHRpLXNlbGVjdC10aGVtZSgkdGhlbWUpIHtcbiAgLy9cbiAgLy8gTVVMVEkgU0VMRUNUIEZPUk0gRklFTERcbiAgLy9cbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLXR5cGUteHBvLW11bHRpLXNlbGVjdCB7XG4gICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tYmFzZTtcbiAgICAvL1xuICAgIC8vIFN0eWxlcyBoZXJlIGFwcGx5IHRvIGRlZmF1bHQgYXBwZWFyYW5jZSBgbGVnYWN5YFxuICAgIC8vIGFuZCB0byBmbG9hdCBsYWJlbCBgYWx3YXlzYFxuICAgIC8vXG4gICAgJi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQge1xuICAgICAgJF9mb3JtRmllbGQtbWFyZ2luVG9wOiAyNHB4O1xuXG4gICAgICBtYXJnaW4tYm90dG9tOiAkeHBvLWNvbnRlbnRTcGFjaW5nO1xuICAgICAgbWFyZ2luLXRvcDogJF9mb3JtRmllbGQtbWFyZ2luVG9wO1xuXG4gICAgICAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICAgICAgICAkX2Zvcm1GaWVsZC1pbmZpeC1ib3JkZXJSYWRpdXM6IDJweDtcbiAgICAgICAgICAgICRfZm9ybUZpZWxkLWluZml4LXZQYWRkaW5nOiAycHg7XG4gICAgICAgICAgICAkX2Zvcm1GaWVsZC13aWR0aDogMjYwcHg7XG5cbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8td2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkeHBvLWdyZXktLTMwMDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRfZm9ybUZpZWxkLWluZml4LWJvcmRlclJhZGl1cztcbiAgICAgICAgICAgIHBhZGRpbmc6ICRfZm9ybUZpZWxkLWluZml4LXZQYWRkaW5nICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgICAgICAgICAgd2lkdGg6ICRfZm9ybUZpZWxkLXdpZHRoO1xuXG4gICAgICAgICAgICAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBoaWRlcyB0aGUgZm9ybS1maWVsZCB1bmRlcmxpbmUgRE9NIGVsZW1lbnRcbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgIC5tYXQtZXJyb3Ige1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tbm9ybWFsO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc21hbGw7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcblxuICAgICAgICAgICAgLm1hdC1pY29uIHtcbiAgICAgICAgICAgICAgJF9pY29uLWZvbnRTaXplOiAyMHB4O1xuXG4gICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgICBmb250LXNpemU6ICRfaWNvbi1mb250U2l6ZTtcbiAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbWFsbDtcbiAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNDtcbiAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vXG4gICAgICAvLyBGb2N1c2VkIHN0YXRlXG4gICAgICAvL1xuICAgICAgJi5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtZmxleCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgICAgICBib3JkZXItY29sb3I6ICR4cG8tYmxhY2s7XG5cbiAgICAgICAgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTkwMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvL1xuICAgICAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgICAgIC8vXG4gICAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIHtcbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWZsZXggLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTgwO1xuICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy9cbiAgLy8gTVVMVEkgU0VMRUNUIFBBTkVMXG4gIC8vXG4gIC5tYXQtc2VsZWN0LXBhbmVsLnhwby1TZWxlY3QtcGFuZWwueHBvLVNlbGVjdC1wYW5lbE11bHRpcGxlLnhwby1NdWx0aVNlbGVjdC1wYW5lbCB7XG4gICAgLy8gdGhpcyBpcyB0aGUgc2FtZSBhcyB0aGUgZm9ybS1maWVsZCBwYWRkaW5nIHRvcCBhbmQgYm90dG9tXG4gICAgLy8gd2UgbmVlZCB0byBwbGFjZSB0aGUgcGFuZWwgb3B0aW9ucyBqdXN0IGFib3ZlIG9yIGJlbG93IHRoZSBmb3JtLWZpZWxkIFxuICAgIC8vIGFuZCBub3QgaW4gdGhlIG1hdC1zZWxlY3QgcG9zaXRpb24gKHdobyB0cmlnZ2VycyB0byBzaG93IHRoZSBwYW5lbClcbiAgICAkX3BhbmVsLW1hcmdpbjogMnB4O1xuXG4gICAgYm9yZGVyOiAxcHggc29saWQgJHhwby1ibGFjaztcbiAgICBtYXJnaW4tdG9wOiAkX3BhbmVsLW1hcmdpbjtcbiAgICBtYXJnaW4tYm90dG9tOiAkX3BhbmVsLW1hcmdpbjtcbiAgICBcbiAgICAubWF0LW9wdGlvbiAubWF0LW9wdGlvbi10ZXh0IHtcblxuICAgICAgLm1hdC1pY29uIHtcbiAgICAgICAgJF9pY29uLW1hcmdpblJpZ2h0OiA2cHg7XG5cbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkX2ljb24tbWFyZ2luUmlnaHQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gb3ZlcnJpZGVzIHRoZSBjaGVja2JveCBpbmRldGVybWluYXRlIHN0eWxlcyBmb3JcbiAgICAvLyBzZWxlY3QgYWxsIG9wdGlvblxuICAgIC5tYXQtb3B0aW9uLnhwby1NdWx0aVNlbGVjdEFsbE9wdGlvbiAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICAgIGJhY2tncm91bmQ6ICR4cG8td2hpdGU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkeHBvLWJsYWNrO1xuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgICRfY2hlY2tib3gtYWZ0ZXItYm9yZGVyLXdpZHRoOiAycHg7XG4gICAgICAgICRfY2hlY2tib3gtYWZ0ZXItdG9wOiAzcHg7XG4gICAgICAgICRfY2hlY2tib3gtYWZ0ZXItbGVmdDogM3B4O1xuXG4gICAgICAgIGJhY2tncm91bmQ6ICR4cG8tYmxhY2s7XG4gICAgICAgIGJvcmRlcjogJF9jaGVja2JveC1hZnRlci1ib3JkZXItd2lkdGggc29saWQgJHhwby1ibGFjaztcbiAgICAgICAgaGVpZ2h0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgICAgICAgbGVmdDogJF9jaGVja2JveC1hZnRlci1sZWZ0O1xuICAgICAgICB0b3A6ICRfY2hlY2tib3gtYWZ0ZXItdG9wO1xuICAgICAgICB3aWR0aDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy9cbiAgLy8gTVVMVEkgU0VMRUNUIFRSSUdHRVJcbiAgLy9cbiAgLy8gbmVlZCB0byBmaXggd3JhcHBlciBzdHlsZXMgdG8gZGlzcGxheSBpbnNpZGUgbWF0LWZvcm0tZmllbGQgYXBwcm9wcmlhdGVseVxuICAueHBvLU11bHRpU2VsZWN0VHJpZ2dlciAubWF0LWNoaXAtbGlzdCAubWF0LWNoaXAtbGlzdC13cmFwcGVyIHtcbiAgICAkX3dyYXBwZXItZGVmYXVsdE1hdGVyaWFsTWFyZ2luOiAtNHB4O1xuXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgbWFyZ2luOiAkX3dyYXBwZXItZGVmYXVsdE1hdGVyaWFsTWFyZ2luIDA7XG5cbiAgICAvLyBuZWVkIHRvIHJlbW92ZSBnYXAgYmV0d2VlbiBtYXQtY2hpcHNcbiAgICAvLyBpbnN0ZWFkIHdlIHVzZSBtYXJnaW5zIHRvIGFwcGx5IHRoZSBoaWRlIGFuZCBzaG93IGxvZ2ljIGFjY29yZGluZyB0aGUgYXZhaWxhYmxlIHNwYWNlIGluIHRoZSBjb250YWluZXJcbiAgICBnYXA6IDA7XG4gIH1cbn1cblxuQG1peGluIHNuYWNrYmFyLS13aWR0aC0tYnJlYWtwb2ludCgpIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgLy8gdGFibGV0IGxhbmRzY2FwZVxuICAgIG1pbi13aWR0aDogODB2dztcbiAgICBtYXgtaGVpZ2h0OiA0MHZoO1xuICB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIC8vIHRhYmxldCBwb3J0cmFpdFxuICAgIG1pbi13aWR0aDogNjB2dztcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXgtaGVpZ2h0OiA0MHZoO1xuICB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAvLyBkZXNrdG9wXG4gICAgbWluLXdpZHRoOiA0MHZ3O1xuICAgIG1heC1oZWlnaHQ6IDQwdmg7XG4gIH1cbn1cblxuQG1peGluIHNuYWNrQmFyLS1iYWNrZ3JvdW5kKCRuYW1lLCAkYmFja2dyb3VuZC1jb2xvcikge1xuICAmLS0jeyRuYW1lfSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3I7XG4gIH1cbn1cblxuQG1peGluIHNuYWNrQmFyLS10ZXh0LS1jb2xvcigkbmFtZSwgJGNvbG9yKSB7XG4gICYtLSN7JG5hbWV9IHtcbiAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgLnhwby1MaW5rIHtcbiAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ub3JtYWw7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBzbmFja0Jhci0tY2xvc2UtLWNvbG9yKCRuYW1lLCAkY29sb3IpIHtcbiAgJi0tI3skbmFtZX0gJi1jbG9zZUJ1dHRvbiB7XG4gICAgY29sb3I6ICRjb2xvcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICR4cG8td2hpdGU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tc21hbGwoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLXNtYWxsO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1zbWFsbDtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1tZWRpdW0oKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLW1lZGl1bTtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLW1lZGl1bTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLW1lZGl1bTtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1sYXJnZSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbGFyZ2U7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1sYXJnZTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLWxhcmdlO1xufVxuXG4vLyBSZWd1bGFyIHRleHQgbWl4aW5zXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tc21hbGwoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tbWVkaXVtKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtLWxhcmdlKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLWxhcmdlO1xufVxuXG5cbi8qXG4qKiA9PT09IEJhc2ljIGNvbG9ycyA9PT09XG4qL1xuXG4vKlxuKiogPT09PSBYUE8gQnJhbmQgQ29sb3IgUGFsZXR0ZSA9PT09XG4qL1xuXG4vLyBYUE8gUmVkXG4keHBvLWJyYW5kLXJlZDogI2NjMDAwMDtcbiR4cG8tYnJhbmQtcmVkLS05MDA6ICR4cG8tYnJhbmQtcmVkO1xuJHhwby1icmFuZC1yZWQtLTgwMDogI2U0MjEwZTtcbiR4cG8tYnJhbmQtcmVkLS03MDA6ICNmMzJhMTM7XG4keHBvLWJyYW5kLXJlZC0tNjAwOiAjZmYzMzE3O1xuJHhwby1icmFuZC1yZWQtLTUwMDogI2ZmMzkxYztcbiR4cG8tYnJhbmQtcmVkLS00MDA6ICNmZjVlM2Q7XG4keHBvLWJyYW5kLXJlZC0tMzAwOiAjZmY3ZTYwO1xuJHhwby1icmFuZC1yZWQtLTIwMDogI2ZmYTQ4ZTtcbiR4cG8tYnJhbmQtcmVkLS0xMDA6ICNmZmM4YmE7XG4keHBvLWJyYW5kLXJlZC0tNTA6ICNmY2U4ZTY7XG5cbi8vIFhQTyBCbGFja1xuJHhwby1ibGFjazogIzAwMDAwMDtcbiR4cG8tYnJhbmQtYmxhY2stLTkwMDogJHhwby1ibGFjaztcbiR4cG8tYnJhbmQtYmxhY2stLTgwMDogIzI2MjYyNjtcbiR4cG8tYnJhbmQtYmxhY2stLTcwMDogIzU1NTU1NTtcbiR4cG8tYnJhbmQtYmxhY2stLTYwMDogIzdiN2I3YjtcbiR4cG8tYnJhbmQtYmxhY2stLTUwMDogIzlkOWQ5ZDtcbiR4cG8tYnJhbmQtYmxhY2stLTQwMDogIzlkOWQ5ZDtcbiR4cG8tYnJhbmQtYmxhY2stLTMwMDogI2M0YzRjNDtcbiR4cG8tYnJhbmQtYmxhY2stLTIwMDogI2Q5ZDlkOTtcbiR4cG8tYnJhbmQtYmxhY2stLTEwMDogI2U5ZTllOTtcbiR4cG8tYnJhbmQtYmxhY2stLTUwOiAjZjVmNWY1O1xuXG4vLyBYUE8gRGFyayBHcmV5XG4keHBvLWJyYW5kLWRhcmstZ3JleTogIzQxNGE0YztcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS05MDA6ICMyMjI4MmI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tODAwOiAkeHBvLWJyYW5kLWRhcmstZ3JleTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS03MDA6ICM2MjY4NmM7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNjAwOiAjNzU3ZDgxO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTUwMDogI2EwYTZhYTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS00MDA6ICNiZWM1Yzk7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMzAwOiAjZTBlN2ViO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTIwMDogI2ViZjJmNjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0xMDA6ICNmMGY3ZmI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNTA6ICNmNGZjZmY7XG5cbi8vIFhQTyBNZWRpdW0gR3JleVxuJHhwby1icmFuZC1tZWRpdW0tZ3JleTogIzg0ODQ4NDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTkwMDogIzJlMmUyZTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTgwMDogIzUwNTA1MDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTcwMDogIzcwNzA3MDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTYwMDogJHhwby1icmFuZC1tZWRpdW0tZ3JleTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwMDogI2FmYWZhZjtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTQwMDogI2NkY2RjZDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTMwMDogI2VlZWVlZTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDogI2YzZjNmMztcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTEwMDogI2Y4ZjhmODtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwOiAjZmNmY2ZjO1xuXG4vLyBYUE8gTGlnaHQgR3JleVxuJHhwby1icmFuZC1saWdodC1ncmV5OiAjZGVkZWRlO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS05MDA6ICMxZjFmMWY7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTgwMDogIzNmM2YzZjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNzAwOiAjNWU1ZTVlO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS02MDA6ICM3MjcyNzI7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwMDogIzlhOWE5YTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNDAwOiAjYmFiYWJhO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0zMDA6ICR4cG8tYnJhbmQtbGlnaHQtZ3JleTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMjAwOiAjZWNlY2VjO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0xMDA6ICNmNGY0ZjQ7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwOiAjZjlmOWY5O1xuXG4vKlxuKiogPT09PSBNYWluIENvbG9yIFBhbGV0dGUgPT09PVxuKi9cblxuLy8gQmxhY2sgYW5kIEdyZXlcbiR4cG8tZ3JleS0tOTc1OiAjMjEyMTIxO1xuJHhwby1ncmV5LS05NTA6ICMzMzMzMzM7XG4keHBvLWdyZXktLTkwMDogIzRhNGE0YTtcbiR4cG8tZ3JleS0tNzAwOiAjNmY2ZjZmO1xuJHhwby1ncmV5LS0zNTA6ICNiZGJkYmQ7XG4keHBvLWdyZXktLTMwMDogI2Q4ZDhkODtcbiR4cG8tZ3JleS0tODA6ICNmNmY2ZjY7XG4keHBvLWdyZXktLTI1OiAjZmFmYWZhO1xuXG4keHBvLXdoaXRlOiAjZmZmZmZmO1xuXG4vLyBMaW5rcywgQnV0dG9ucywgVGFic2V0IGFuZCBUYWJwaWxsc1xuJHhwby1ibHVlLS04NTA6ICMwZDQ3YTE7XG4keHBvLWJsdWUtLTgwMDogIzE5NzZkMjtcbiR4cG8tYmx1ZS0tMzUwOiAjMjE5NmYzO1xuXG4vLyBFcnJvciBTdGF0ZVxuJHhwby1yZWQtLTIwMDogI2I3MWMxYztcbiR4cG8tcmVkLS0xNTA6ICNkMzJmMmY7XG4keHBvLXJlZC0tNTA6ICNmY2VlZWI7XG5cbi8vIFN1Y2Nlc3MgU3RhdGVcbiR4cG8tZ3JlZW4tLTYwMDogIzM4OGUzYztcbiR4cG8tZ3JlZW4tLTQ1MDogIzRjYWY1MDtcbiR4cG8tZ3JlZW4tLTUwOiAjZjFmOWYxO1xuXG4vLyBXYXJuaW5nIFN0YXRlXG4keHBvLXllbGxvdy0tMzUwOiAjZmZkNjAwO1xuXG4keHBvLW9yYW5nZS0tMzUwOiAjZmY2ZDAwO1xuXG4vLyBJbmZvIFN0YXRlXG4keHBvLWJsdWUtLTcwMDogIzAwOTFlYTtcblxuLy8gVHJhbnNhY3Rpb25hbCBDZWxsc1xuJHhwby1ncmV5LS0xNTA6ICNlY2VmZjE7XG5cbiR4cG8tYmx1ZUdyZXktLTcwMDogI2NmZDhkYztcblxuLy8gQWNjZW50IENvbG9yc1xuJHhwby1waW5rLS03MDA6ICNjNTExNjI7XG5cbiR4cG8tdGVhbC0tNzAwOiAjMDBiZmE1O1xuXG4keHBvLWJsdWUtLTgyNTogIzMwNGZmZTtcbiR4cG8tYmx1ZS0tMjAwOiAjZTRlZmZhO1xuXG4keHBvLWFjY2VudC1yZWQtLTQwMDogJHhwby1icmFuZC1yZWQtLTQwMDtcbiR4cG8tYWNjZW50LXJlZC0tMTAwOiAkeHBvLWJyYW5kLXJlZC0tMTAwO1xuXG4keHBvLXB1cnBsZS0tNzAwOiAjNjIwMGVhO1xuXG4keHBvLWdyZWVuLS0yMDA6ICNhNGU1OWI7XG5cbiR4cG8teWVsbG93LS0yMDA6ICNmZmY5YzQ7XG5cbi8qXG4qKiA9PT09IERFUFJFQ0FURUQgQ09MT1JTID09PT1cbiovXG5cbi8qXG4qKiBXQVJOSU5HOiBUSElTIFZBUklBQkxFUyBXSUxMIEJFIFJFTU9WRUQgU09PTlxuKi9cbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMTAwOiAjZThmNWZlO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0xNTA6ICNlM2YyZmQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTMwMDogIzBkOTRmNDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tNDAwOiAjMDg2OGFjO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS05MDA6ICMwNTNjNjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tMTAwOiAjZmZmOGU1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTMwMDogI2ZmY2Y0ZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS00MDA6ICNmZmJhMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tNzAwOiAjZmZkNjAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTkwMDogIzRkMzgwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTEwMDogI2M4ZmZkZjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTMwMDogIzFjZTg1NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTM1MDogIzAwYzg1Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTQwMDogIzExYTYzYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTcwMDogIzAwYzg1Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTkwMDogIzBhNjEyMjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNTA6ICNmYmZiZmI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTYwOiAjZmFmYWZhO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMDA6ICNmM2YzZjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTIwMDogI2U2ZTZlNjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMjUwOiAjZGRkZGRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS00MDA6ICM5YjliOWI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTYwMDogIzc1NzU3NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjUwOiAjODU4NTg1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS03NTA6ICM1NzU3NTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTkxNTogIzQzNDk0ZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tOTMwOiAjNDI0MjQyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMDAwOiAjMTcxNzE3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMTAwOiAjMjEyMTIxO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTEwMDogI2ZmZWVlZTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0yNTA6ICNkZDJjMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMzAwOiAjZmYyMjIyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTQwMDogI2Q1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS02MDA6ICNjYzAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNzAwOiAjZDMyZjJmO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTkwMDogIzU1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS0xMDA6ICNmZmRmY2E7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tMzAwOiAjZmY5OTU3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTQwMDogI2ZmNjQwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS05MDA6ICM4YjM3MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWZvbnRDb2xvci0tbGluazogIzA4NjhhYztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmFja2dyb3VuZENvbG9yLS1ib2R5OiAjZjNmM2YzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0tZXJyb3I6ICNkNTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1zdWNjZXNzOiAjMTFhNjNiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0td2FybjogI2ZmYmEwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLWluZm86ICM0YTRhNGE7XG5cbi8qXG4qKiA9PT09IENPTE9SUyBBUFBMSUVEID09PT1cbiovXG4keHBvLWZvbnRDb2xvci0tcHJpbWFyeTogJHhwby1ncmV5LS05MDA7XG5cbi8qXG4qKiA9PT09IFR5cG9ncmFwaHkgPT09PVxuKi9cbi8vIFB1dHRpbmcgc2l6ZXMgaW4gbWFwcyB0byBhbGxvdyBkeW5hbWljIHNpemluZyBmb3IgZXh0ZXJuYWxcbi8vIFJvb3QgZm9udC1zaXplKHMpIGFsd2F5cyBpbiBweFxuJHhwby1mb250U2l6ZS0tcm9vdDogMTRweDtcbiR4cG8tZm9udFNpemUtLXNtYWxsOiAwLjg3NXJlbTsgLy8xMnB4XG4keHBvLWZvbnRTaXplLS1tZWRpdW06IDFyZW07IC8vMTRweFxuJHhwby1mb250U2l6ZS0tbGFyZ2U6IDEuMTQzcmVtOyAvLzE2cHhcbiR4cG8tZm9udFNpemUtLWV4dHJhTGFyZ2U6IDEuMjg1cmVtOyAvLzE4cHhcbiR4cG8tZm9udFNpemUtLXh4bGFyZ2U6IDEuNzE0cmVtOyAvLzI0cHhcblxuJHhwby1oZWFkZXItZm9udFNpemUtLXhzbWFsbDogMXJlbTsgLy8xNHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tc21hbGw6IDEuMTQzcmVtOyAvLzE2cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1tZWRpdW06IDEuMjg1cmVtOyAvLzE4cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1sYXJnZTogMS40MjhyZW07IC8vMjBweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXhsYXJnZTogMS41NzFyZW07IC8vMjJweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXh4bGFyZ2U6IDEuODU3cmVtOyAvLzI2cHhcblxuJHhwby1mb250RmFtaWx5LS1wcmltYXJ5OiAnUm9ib3RvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XG4keHBvLWZvbnRGYW1pbHktLXJvYm90b1dpZGVCbGFjazogJ1JvYm90byBXaWRlIEJsYWNrJywgJ1JvYm90bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXG4keHBvLWZvbnRXZWlnaHQtLWxpZ2h0OiAzMDA7XG4keHBvLWZvbnRXZWlnaHQtLW5vcm1hbDogNDAwO1xuJHhwby1mb250V2VpZ2h0LS1tZWRpdW06IDUwMDsgLy8gREVQUkVDQVRFRCB8IGRvIG5vdCBkZWxldGUgc2luY2UgaXQgaXMgc3RpbGwgYmVpbmcgdXNlZCBpbiBzb21lIHByb2plY3RzXG4keHBvLWZvbnRXZWlnaHQtLWJvbGQ6IDUwMDtcbiR4cG8tZm9udFdlaWdodC0tZXh0cmFCb2xkOiA2MDA7XG4keHBvLWZvbnRXZWlnaHQtLWJvbGRlcjogNzAwO1xuXG4keHBvLWxpbmVIZWlnaHQtLXhsOiAyLjI4NnJlbTsgLy8gMzJweFxuJHhwby1saW5lSGVpZ2h0LS1sZzogMS43MTRyZW07IC8vIDI0cHhcbiR4cG8tbGluZUhlaWdodC0tbWQ6IDEuNTcxcmVtOyAvLyAyMnB4XG4keHBvLWxpbmVIZWlnaHQtLXNtOiAxLjQyOXJlbTsgLy8gMjBweFxuXG4keHBvLWxpbmVIZWlnaHQtLWJhc2U6IDI0cHg7IC8vIGZvciBtZWRpdW0gYW5kIGxhcmdlIGZvbnQgc2l6ZVxuJHhwby1saW5lSGVpZ2h0LS1tZWRpdW06IDE4cHg7IC8vIGZvciBtZWRpdW0gZm9udCBzaXplc1xuJHhwby1saW5lSGVpZ2h0LS1zbWFsbDogMTZweDsgLy8gZm9yIHNtYWxsIGZvbnQgc2l6ZVxuXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1zbWFsbDogMS4xNDM7IC8vIERFUFJFQ0FURURcbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLW1lZGl1bTogMS4xNDM7IC8vIERFUFJFQ0FURURcbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLWxhcmdlOiAxLjI4NjsgLy8gREVQUkVDQVRFRFxuXG4keHBvLWxldHRlclNwYWNpbmctLWJhc2U6IDAuMnB4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tc21hbGw6IDAuM3B4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbWVkaXVtOiAwLjMzcHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1sYXJnZTogMC4zOHB4O1xuXG4vLyA9PT09IExheW91dCA9PT09XG4keHBvLWNvbnRlbnRTcGFjaW5nOiAxNnB4O1xuXG4vLyBCcmVha3BvaW50c1xuJHhwby1icmVha3BvaW50LS1zbWFsbC14czogNDgwcHg7XG4keHBvLWJyZWFrcG9pbnQtLXNtYWxsOiA2MDBweDtcbiR4cG8tYnJlYWtwb2ludC0tbWVkaXVtOiA3NjhweDtcbiR4cG8tYnJlYWtwb2ludC0tbGFyZ2U6IDEwMjVweDtcbiR4cG8tYnJlYWtwb2ludC0teExhcmdlOiAxNDQwcHg7XG5cbiR4cG8tc2VsZWN0LWJhY2tncm91bmRDb2xvci1vcHRpb25PbkhvdmVyOiAkeHBvLWJsdWUtLTIwMDtcblxuLy8gLS0gTkdYLVVJIFNwZWNpZmljIC0tXG4kbmd4LWZvb3Rlci1oZWlnaHQ6IDQycHg7XG4kbmd4LXRhYi1oZWFkZXItaGVpZ2h0OiA0MHB4O1xuJG5neC10YWJsZS1yb3ctaGVpZ2h0OiAzMHB4O1xuXG4kbmd4LWljb24tc2l6ZTogMjRweDsgLy8gVE9ETzogRGVwcmVjYXRlIHRoaXMgdmFyaWFibGVcbiR4cG8taWNvbi1zaXplLS1zdGFuZGFyZDogMjBweDtcbiR4cG8taWNvbi1zaXplLS1zbWFsbDogMThweDtcbiR4cG8taWNvbi1zaXplLS1sYXJnZTogMjRweDtcblxuJG5neC10aGVCbGFja1JvYm90bzogOTAwO1xuXG4keHBvLWlucHV0LWhlaWdodC0tZGVmYXVsdDogMzBweDtcbiR4cG8taW5wdXQtaGVpZ2h0LS10d29MaW5lczogNDVweDtcblxuJG5neC1pbnB1dC1ib3JkZXItd2lkdGg6IDFweDtcblxuJG5neC1pbnB1dC1jb2xvci1vbkhvdmVyOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA7XG4kbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1kYXJrOiAkeHBvLWJsYWNrO1xuJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tbGlnaHQ6ICR4cG8td2hpdGU7XG4kbmd4LWlucHV0LWNvbG9yLWJvcmRlcjogJHhwby1ncmV5LS0zMDA7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1kYXJrOiAkeHBvLWdyZXktLTM1MDtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZS0tbGlnaHRlcjogJHhwby13aGl0ZTtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWxpZ2h0OiAkeHBvLWdyZXktLTgwO1xuXG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0OiAzNnB4O1xuJG5neC1idXR0b24tbGluZUhlaWdodC0tc21hbGw6IDI4cHg7XG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0LS1sYXJnZTogNDZweDtcbiRuZ3gtYnV0dG9uLWFuaW1hdGlvbkR1cmF0aW9uOiAyMDBtcztcblxuJG5neC1oZWFkZXItaGVpZ2h0OiA0MHB4O1xuLy8gRm9yIHVzZSB3aGVuIGEgaG92ZXIgaXMgbmVlZGVkIG9uIGEgd2hpdGUgYmFja2dyb3VuZC5cbiRuZ3gtd2hpdGVBZmZvcmRhbmNlLW9uSG92ZXItY29sb3I6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDtcblxuJG5neC1tZW51LWJhY2tncm91bmRDb2xvcjogJHhwby13aGl0ZTtcblxuLypcbioqID09PT0gU05BQ0tCQVIgREVQUkVDQVRFRCBWQVJJQUJMRVMgPT09PVxuKi9cblxuLypcbioqIFdBUk5JTkc6IFRISVMgVkFSSUFCTEVTIFdJTEwgQkUgUkVNT1ZFRCBTT09OXG4qL1xuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLXN1Y2Nlc3M6ICR4cG8tZ3JlZW4tLTQ1MDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLWVycm9yOiAkeHBvLXJlZC0tMTUwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0taW5mbzogIzAyODhkMTtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLXdhcm46ICNmYmMwMmQ7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0tc3VjY2VzczogJHhwby1ncmVlbi0tNjAwO1xuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1lcnJvcjogJHhwby1yZWQtLTIwMDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1pbmZvOiAjMDE1NzliO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrQmFyLW1hcmdpblRvcDogMzJweDtcblxuLy9CYWRnZVxuJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1uZWdhdGl2ZTogJHhwby1yZWQtLTUwO1xuJF9tYXRCYWRnZUNvbnRlbnQtY29sb3ItLW5lZ2F0aXZlOiAjZGQyYzAwO1xuJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1wb3NpdGl2ZTogJHhwby1ncmVlbi0tNTA7XG5cbiRuZ3gtbWVudS1iYWNrZ3JvdW5kQ29sb3Itb25Ib3ZlcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTA7XG4vLyBVc2VkIGFzIGEgc3BhY2VyIGZvciBmbGV4ZWQgY2hpbGRyZW5cbi8vIFRPRE86IE1vdmUgYWxsIGluc3RhbmNlcyB0byB0aGUgdXRpbGl0aWVzIGRlZmluaXRpb25cbi5mbGV4LS1zdHJldGNoIHtcbiAgZmxleDogMTtcbn1cblxuLy8gLS0tIERpYWxvZyAtLS1cbiRuZ3gtZGlhbG9nLWhlYWRlci1oZWlnaHQ6IDQ4cHg7XG4kbmd4LWRpYWxvZy1mb290ZXItaGVpZ2h0OiA2NHB4O1xuXG4vLyAtLS0gVHJhbnNpdGlvbnMgLS0tXG4keHBvLXRyYW5zaXRpb24tMjAwOiBhbGwgMjAwbXMgZWFzZS1vdXQ7XG5cbi8vIC0tLSBDb250ZXh0dWFsIEhlYWRlciAtLS1cbiRuZ3gtQ29udGV4dHVhbEhlYWRlci1zZXBhcmF0b3ItLWNvbG9yOiAkeHBvLWdyZXktLTM1MDtcblxuXG5AbWl4aW4geHBvLXNuYWNrLWJhci10aGVtZSgkdGhlbWUpIHtcbiAgQGluY2x1ZGUgbWF0LXNuYWNrLWJhci10aGVtZSgkdGhlbWUpO1xuXG4gIHNuYWNrLWJhci1jb250YWluZXIubWF0LXNuYWNrLWJhci1jb250YWluZXIge1xuICAgICRfc25hY2tCYXItYm9yZGVyUmFkaXVzOiAycHg7XG5cbiAgICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4xMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuXG4gICAgYmFja2dyb3VuZDogJHhwby13aGl0ZTtcbiAgICBib3JkZXItcmFkaXVzOiAkX3NuYWNrQmFyLWJvcmRlclJhZGl1cztcbiAgICBjb2xvcjogJHhwby1mb250Q29sb3ItLXByaW1hcnk7XG4gICAgcGFkZGluZzogMDtcbiAgICBAaW5jbHVkZSBzbmFja2Jhci0td2lkdGgtLWJyZWFrcG9pbnQoKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1hcmdpbjogJHhwby1jb250ZW50U3BhY2luZyAqIDI7XG5cbiAgICAvLyBzbmFjay1iYXItY29udGFpbmVyIChmb3JtIE1hdGVyaWFsIDExLngpLCByZW5kZXJzIGluc2lkZSB0d28gYGRpdmAgdGFncyB3aXRob3V0IGFueSBjc3MgY2xhc3Mgb3IgdGFnIG5hbWVcbiAgICAvLyBzbyB3ZSBuZWVkIHRvIHVzZSB0aGlzIHNlbGVjdG9yIHRvIHNldCB0aGUgaGVpZ2h0IGZvciB0aGUgZWxlbWVudHMgaW5zaWRlIG91ciBub3RpZmljYXRpb24tdGVtcGxhdGUgY29tcG9uZW50XG4gICAgLy8gVE9ETzogZmluZCBhIGJldHRlciB3YXkgdG8gZG8gdGhpc1xuICAgID4gZGl2IHtcbiAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgPiBkaXYge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB4cG8tdGFibGUtdGhlbWUoJHRoZW1lKSB7XG4gIEBpbmNsdWRlIG1hdC10YWJsZS10aGVtZSgkdGhlbWUpO1xuXG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7IC8vIFRPRE86IGZvciBhbGwgb2YgdGhlc2UgdmFyaWFibGVzLCBpdCBzaG91bGQgY29tZSBmcm9tIHRoZSBwYWxldHRlXG4gICRfdGFibGUtc3BhY2luZzogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICRfdGFibGUtYm9yZGVyQ29sb3I6ICR4cG8tZ3JleS0tMzAwO1xuICAkX3RhYmxlLWJvcmRlcjogMXB4IHNvbGlkICRfdGFibGUtYm9yZGVyQ29sb3I7XG4gICRfZm9vdGVyLWJhY2tncm91bmRDb2xvcjogaWYoJGlzLWRhcmstdGhlbWUsICR4cG8tZ3JleS0tNzAwLCAkeHBvLWdyZXktLTIwMCk7XG4gICRfaGVhZGVyLWdyb3VwQmFja2dyb3VuZENvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgJHhwby1ncmV5LS05MDAsICR4cG8tZ3JleS0tMjAwKTtcbiAgJF9oZWFkZXItYmFja2dyb3VuZENvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgJHhwby1ncmV5LS03MDAsICR4cG8tZ3JleS0tODApO1xuICAkX2hlYWRlci1jb2xvcjogaWYoJGlzLWRhcmstdGhlbWUsIHdoaXRlLCAkeHBvLWdyZXktLTkwMCk7XG5cbiAgLy8gV3JhcHBpbmcgYWxsIHN0eWxlcyBhcm91bmQgYC5tYXQtdGFibGVgIHRvIGluY3JlYXNlIHNwZWNpZmljaXR5IHNvXG4gIC8vIHRoZXNlIHN0eWxlcyB0YWtlIHBlcnNpc3RhbmNlIG92ZXIgbWF0ZXJpYWwnc1xuICAubWF0LXRhYmxlIHtcbiAgICBib3JkZXI6ICRfdGFibGUtYm9yZGVyO1xuXG4gICAgdHIubWF0LWhlYWRlci1yb3csXG4gICAgdHIubWF0LWZvb3Rlci1yb3csXG4gICAgdHIubWF0LXJvdyB7XG4gICAgICBoZWlnaHQ6ICRuZ3gtdGFibGUtcm93LWhlaWdodDtcbiAgICB9XG5cbiAgICBtYXQtaGVhZGVyLXJvdy5tYXQtaGVhZGVyLXJvdyxcbiAgICBtYXQtZm9vdGVyLXJvdy5tYXQtZm9vdGVyLXJvdyxcbiAgICBtYXQtcm93Lm1hdC1yb3cge1xuICAgICAgbWluLWhlaWdodDogJG5neC10YWJsZS1yb3ctaGVpZ2h0O1xuICAgIH1cblxuICAgIC8vIEJvcmRlciBCb3R0b20gZWxlbWVudHNcbiAgICBtYXQtcm93Lm1hdC1yb3csXG4gICAgbWF0LWhlYWRlci1yb3cubWF0LWhlYWRlci1yb3csXG4gICAgbWF0LWZvb3Rlci1yb3cubWF0LWZvb3Rlci1yb3csXG4gICAgdGgubWF0LWhlYWRlci1jZWxsLFxuICAgIHRkLm1hdC1jZWxsLFxuICAgIHRkLm1hdC1mb290ZXItY2VsbCB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkX3RhYmxlLWJvcmRlckNvbG9yO1xuICAgIH1cblxuICAgIC8vIFJlbW92ZSBib3JkZXIgYm90dG9tIGNvbG9yIGZyb20gbGFzdCByb3cgdG8gYXZvaWQgZG91YmxlIGJvcmRlclxuICAgIG1hdC1yb3cubWF0LXJvdzpsYXN0LWNoaWxkLFxuICAgIG1hdC1mb290ZXItcm93Lm1hdC1mb290ZXItcm93Omxhc3QtY2hpbGQsXG4gICAgdHIubWF0LXJvdzpsYXN0LWNoaWxkID4gLm1hdC1jZWxsIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC5tYXQtY2VsbCB7XG4gICAgICAubWF0LWljb24ge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgPiAueHBvLUljb24ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyA0O1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBBbGwgQ2VsbHNcbiAgICB0aC5tYXQtaGVhZGVyLWNlbGwsXG4gICAgdGQubWF0LWNlbGwsXG4gICAgdGQubWF0LWZvb3Rlci1jZWxsLFxuICAgIG1hdC1jZWxsLm1hdC1jZWxsLFxuICAgIG1hdC1oZWFkZXItY2VsbC5tYXQtaGVhZGVyLWNlbGwsXG4gICAgbWF0LWZvb3Rlci1jZWxsLm1hdC1mb290ZXItY2VsbCB7XG4gICAgICAmLFxuICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgLy8gbmVlZGVkIHRvIG92ZXJyaWRlIG1hdGVyaWFsJ3Mgc3R5bGVzXG4gICAgICAgIHBhZGRpbmctbGVmdDogJF90YWJsZS1zcGFjaW5nO1xuICAgICAgfVxuXG4gICAgICAmLFxuICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAvLyBuZWVkZWQgdG8gb3ZlcnJpZGUgbWF0ZXJpYWwncyBzdHlsZXNcbiAgICAgICAgcGFkZGluZy1yaWdodDogJF90YWJsZS1zcGFjaW5nO1xuICAgICAgfVxuXG4gICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbiAgICB9XG5cbiAgICAvLyBIZWFkZXIgcm93c1xuICAgIHRyLm1hdC1oZWFkZXItcm93LFxuICAgIG1hdC1oZWFkZXItcm93Lm1hdC1oZWFkZXItcm93IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRfaGVhZGVyLWJhY2tncm91bmRDb2xvcjtcbiAgICAgIGJveC1zaGFkb3c6IDAgNHB4IC0ycHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG5cbiAgICAgIC5tYXQtaGVhZGVyLWNlbGwge1xuICAgICAgICBjb2xvcjogJF9oZWFkZXItY29sb3I7XG4gICAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tc21hbGw7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLW1lZGl1bTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBGb290ZXIgUm93c1xuICAgIHRyLm1hdC1mb290ZXItcm93LFxuICAgIG1hdC1mb290ZXItcm93Lm1hdC1mb290ZXItcm93IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRfZm9vdGVyLWJhY2tncm91bmRDb2xvcjtcblxuICAgICAgLm1hdC1mb290ZXItY2VsbCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLW1lZGl1bTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWxhYmVsLWFjdGl2ZSB7XG4gICAgICBjb2xvcjogJHhwby1ibGFjaztcbiAgICB9XG4gIH1cblxuICAubWF0LWNlbGwge1xuICAgIC5tYXQtaWNvbiB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuXG4gICAgPiAueHBvLUljb24ge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNDtcbiAgICB9XG4gIH1cblxuICAvLyBYcG8gQ3VzdG9tIENsYXNzXG4gIC54cG8tTWF0VGFibGUge1xuICAgIC8vIENvbHVtbiBHcm91cFxuICAgICYtLXdpdGhDb2x1bW5Hcm91cCB7XG4gICAgICAvLyBQcmltYXJ5IGhlYWRlclxuICAgICAgdHIubWF0LWhlYWRlci1yb3c6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRfaGVhZGVyLWdyb3VwQmFja2dyb3VuZENvbG9yO1xuXG4gICAgICAgIHRoLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmV1c2FibGUgQ2xhc3Nlc1xuICAgICYtLWJvcmRlclJpZ2h0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJF90YWJsZS1ib3JkZXI7XG4gICAgfVxuXG4gICAgJi0tYm9yZGVyTGVmdCB7XG4gICAgICBib3JkZXItbGVmdDogJF90YWJsZS1ib3JkZXI7XG4gICAgfVxuXG4gICAgLy8gQ2VsbCBDbGFzc2VzXG4gICAgJi1jZWxsIHtcbiAgICAgICYtLXRleHRBbGlnblJpZ2h0IHtcbiAgICAgICAgJi5tYXQtaGVhZGVyLWNlbGwsXG4gICAgICAgICYubWF0LWNlbGwsXG4gICAgICAgICYubWF0LWZvb3Rlci1jZWxsIHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYtLXRleHRBbGlnbkNlbnRlciB7XG4gICAgICAgICYubWF0LWhlYWRlci1jZWxsLFxuICAgICAgICAmLm1hdC1jZWxsLFxuICAgICAgICAmLm1hdC1mb290ZXItY2VsbCB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qXG4qIFRoZSBmb2xsb3dpbmcgc3R5bGVzIHN0eWxlIHRhYnMgdGhhdCBoYXZlIGJlZW4gZGVwcmVjYXRlZCBvciBhcmUgbm90IGluIHRoZSBkZXNpZ24gc3lzdGVtIFxuKiBhbmQgYWxzbyBzdHlsZSB0aGUgdGFiIHNuaXBwZXRzIGluIHRoZSBDb3JlIGRvY3VtZW50YXRpb24uXG4qKi9cblxuLm1hdC1wcmltYXJ5IHtcbiAgXG4gIC5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbC1jb250YWluZXIge1xuXG4gICAgLm1hdC1pbmstYmFyLFxuICAgIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC1pbmstYmFyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tYmx1ZS0tMzAwO1xuICAgIH1cblxuICB9XG4gLm1hdC10YWItbGFiZWwge1xuICAgIGNvbG9yOiAkeHBvLWJsYWNrO1xuICAgIGhlaWdodDogJG5neC10YWItaGVhZGVyLWhlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJG5neC10YWItaGVhZGVyLWhlaWdodDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgb3BhY2l0eTogMTsgLy8gT3ZlcnJpZGluZyBtYXRlcmlhbCdzIDAuNiBvcGFjaXR5XG4gICAgcGFkZGluZzogJHhwby1jb250ZW50U3BhY2luZyAvIDQgJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cblxuICAgICY6aG92ZXIsXG4gICAgJi5tYXQtdGFiLWxhYmVsLWFjdGl2ZSB7XG4gICAgICBjb2xvcjogJHhwby1ibGFjaztcbiAgICB9XG5cbiAgICAmLm1hdC10YWItZGlzYWJsZWQge1xuICAgICAgY29sb3I6ICR4cG8tZ3JleS0tMzAwO1xuICAgIH1cblxuICAgIC5tYXQtdGFiLWxpbmsge1xuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC10YWItbGFiZWxzIC5tYXQtdGFiLWxhYmVsLWNvbnRlbnQge1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG5cbiAgICAgIC5tYXQtY2hpcC54cG8tQ2hpcC0tc21hbGwge1xuICAgICAgICAkX21hdENoaXAtZm9udC1zaXplOiAxMnB4O1xuXG4gICAgICAgIEBpbmNsdWRlIGNoaXAtc2l6ZSgkeHBvLWxpbmVIZWlnaHQtLXNtYWxsLCAkX21hdENoaXAtZm9udC1zaXplKTtcblxuICAgICAgICAubWF0LWljb24ge1xuICAgICAgICAgIEBpbmNsdWRlIGljb24tc2l6ZSgkX21hdENoaXAtZm9udC1zaXplKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmID4gLm1hdC1pY29uIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1sYXJnZTtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiRfdGFiLWJvcmRlcjogMXB4IHNvbGlkICR4cG8tZ3JleS0tMzAwO1xuJF90YWItaW5rLXRoaWNrbmVzczogNHB4O1xuXG4ueHBvLUFsdGVybmF0ZVRhYnMsIFxuLnhwby1QaWxsVGFiR3JvdXAsXG4ueHBvLVZlcnRpY2FsVGFicyxcbi54cG8tUHJpbWFyeVRhYnMgLy8gVE9ETyBUaGlzIGNsYXNzIHdpbGwgYmUgZGVsZXRlZCBiZWNhdXNlIHRoZSBkaXJlY3RpdmUgaXMgYWxyZWFkeSBkZXByZWNhdGVkLlxue1xuICAmLnhwby1UYWJzV2lkZU5hdiB7XG4gICAgLm1hdC10YWItaGVhZGVyIHtcbiAgICAgICYtcGFnaW5hdGlvbiB7XG4gICAgICAgICRfcGFnaW5hdGlvbi13aWRlTmF2LXdpZHRoOiA0MHB4O1xuXG4gICAgICAgIG1pbi13aWR0aDogJF9wYWdpbmF0aW9uLXdpZGVOYXYtd2lkdGg7XG4gICAgICAgIHdpZHRoOiAkX3BhZ2luYXRpb24td2lkZU5hdi13aWR0aDtcbiAgICAgICAgcGFkZGluZzogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5tYXQtdGFiLWhlYWRlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgfVxuICAubWF0LXRhYi1oZWFkZXIge1xuICAgICYtcGFnaW5hdGlvbiB7XG4gICAgICAkX3BhZ2luYXRpb24taGVpZ2h0OiA0MHB4O1xuICAgICAgJF9wYWdpbmF0aW9uLXdpZHRoOiAyNHB4O1xuXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTgwO1xuICAgICAgYm9yZGVyOiAkX3RhYi1ib3JkZXI7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgbWluLXdpZHRoOiAkX3BhZ2luYXRpb24td2lkdGg7XG4gICAgICBoZWlnaHQ6ICRfcGFnaW5hdGlvbi1oZWlnaHQ7XG4gICAgICBvcGFjaXR5OiAwLjg7XG4gICAgICBwYWRkaW5nOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMiAwO1xuICAgICAgd2lkdGg6ICRfcGFnaW5hdGlvbi13aWR0aDtcblxuICAgICAgJjpob3Zlcjpub3QoLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby13aGl0ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgJi1wYWdpbmF0aW9uLWRpc2FibGVkIHtcbiAgICAgIGJhY2tncm91bmQ6ICR4cG8tZ3JleS0tODA7XG4gICAgfVxuICAgICYtcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHhwby1ncmV5LS0zNTA7XG4gICAgfVxuICAgICYtcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgICAgIGhlaWdodDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgICB3aWR0aDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgICBib3JkZXItY29sb3I6ICR4cG8tZ3JleS0tOTAwO1xuXG4gICAgICAmOmhvdmVyOm5vdCgubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uKSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHhwby1ncmV5LS05NzU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5tYXQtdGFiLWxhYmVsLWNvbnRlbnQge1xuICAgIGdhcDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG5cbiAgICAmID4gLm1hdC1pY29uIHtcbiAgICAgIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLWxhcmdlO1xuICAgICAgd2lkdGg6ICR4cG8taWNvbi1zaXplLS1zdGFuZGFyZDtcbiAgICAgIGhlaWdodDogJHhwby1pY29uLXNpemUtLXN0YW5kYXJkO1xuICAgIH1cbiAgICAubWF0LWJhZGdlLm1hdC1iYWRnZS1vdmVybGFwIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBnYXA6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgIH1cbiAgICAubWF0LWJhZGdlLWNvbnRlbnQsIFxuICAgICAgLm1hdC1jaGlwIC8vIFRoaXMgc2hvdWxkbid0IGJlIHVzZWQgd2l0aCB0aGUgbmV3IGRlc2lnbiwgYnV0IHdlIGtlZXAgaXQgZm9yIGNvbXBhdGliaWxpdHkgcmVhc29ucyAodG8gbm90IGFkZCBicmVha2luZyBjaGFuZ2VzKS5cbiAgICB7XG4gICAgICAkX2JhZGdlLXJhZGl1czogMTBweDtcbiAgICAgICRfYmFkZ2UtbWluLWhlaWdodDogMTJweDtcbiAgICAgICRfYmFkZ2UtaGVpZ2h0OiAyMHB4O1xuICAgICAgJF9iYWRnZS13aWR0aDogMTAwJTtcbiAgICAgICRfYmFkZ2UtbWluLXdpZHRoOiAzMHB4O1xuICAgICAgJF9iYWRnZS1mb250V2VpZ2h0OiA5MDA7XG5cbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTgwO1xuICAgICAgYm9yZGVyOiAkX3RhYi1ib3JkZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAkX2JhZGdlLXJhZGl1cztcbiAgICAgIGNvbG9yOiAkeHBvLWJsYWNrO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkX2JhZGdlLWZvbnRXZWlnaHQ7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGhlaWdodDogJF9iYWRnZS1oZWlnaHQ7XG4gICAgICBsaW5lLWhlaWdodDogJF9iYWRnZS1taW4taGVpZ2h0O1xuICAgICAgbWluLXdpZHRoOiAkX2JhZGdlLW1pbi13aWR0aDtcbiAgICAgIG92ZXJmbG93OiBpbml0aWFsO1xuICAgICAgcGFkZGluZzogJHhwby1jb250ZW50U3BhY2luZyAvIDQgJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgICAgIHdpZHRoOiAkX2JhZGdlLXdpZHRoO1xuICAgIH1cbiAgfVxuICAubWF0LXRhYi1saXN0IC5tYXQtaW5rLWJhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwsXG4gIC5tYXQtdGFiLWxpbmtzIC5tYXQtdGFiLWxpbmssXG4gIC5tYXQtdGFiLWxhYmVscyAubWF0LXRhYi1sYWJlbCxcbiAgLm1hdC10YWItbmF2LWJhciAubWF0LXRhYi1saW5rIHtcbiAgICAkX3RhYi1wYWRkaW5nOiAxMHB4O1xuICAgICRfdGFiLWhlaWdodDogNDBweDtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8td2hpdGU7XG4gICAgYm9yZGVyLWxlZnQ6ICRfdGFiLWJvcmRlcjtcbiAgICBib3JkZXItdG9wOiAkX3RhYi1ib3JkZXI7XG4gICAgYm9yZGVyLWJvdHRvbTogJF90YWItYm9yZGVyO1xuICAgIGNvbG9yOiAkeHBvLWdyZXktLTk3NTtcbiAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkZXI7XG4gICAgaGVpZ2h0OiAkX3RhYi1oZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc207XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgcGFkZGluZzogJF90YWItcGFkZGluZyAkeHBvLWNvbnRlbnRTcGFjaW5nO1xuXG4gICAgJi5tYXQtdGFiLWxhYmVsLWFjdGl2ZSB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHhwby13aGl0ZTtcbiAgICAgIGJvcmRlci10b3A6ICRfdGFiLWluay10aGlja25lc3Mgc29saWQgJHhwby1ibHVlLS04NTA7XG4gICAgICBvdmVyZmxvdzogaW5oZXJpdDtcbiAgICAgIC5tYXQtdGFiLWxhYmVsLWNvbnRlbnQge1xuICAgICAgICAkX2JhZGdlLW1hcmdpbi1ib3R0b206IDNweDtcblxuICAgICAgICBtYXJnaW4tYm90dG9tOiAkX2JhZGdlLW1hcmdpbi1ib3R0b207XG4gICAgICB9XG4gICAgICAubWF0LWJhZGdlLWNvbnRlbnQsXG4gICAgICAgICAgLm1hdC1jaGlwIC8vIFRoaXMgc2hvdWxkbid0IGJlIHVzZWQgd2l0aCB0aGUgbmV3IGRlc2lnbiwgYnV0IHdlIGtlZXAgaXQgZm9yIGNvbXBhdGliaWxpdHkgcmVhc29ucyAodG8gbm90IGFkZCBicmVha2luZyBjaGFuZ2VzKS5cbiAgICAgIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmV5LS05MDA7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR4cG8tZ3JleS0tOTAwO1xuICAgICAgICBjb2xvcjogJHhwby13aGl0ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgJi5tYXQtdGFiLWRpc2FibGVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tODA7XG4gICAgICBjb2xvcjogJHhwby1ncmV5LS0zMDA7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICRfdGFiLWJvcmRlcjtcbiAgICB9XG4gICAgJjpob3Zlcjpub3QoLm1hdC10YWItZGlzYWJsZWQpOm5vdCgubWF0LXRhYi1sYWJlbC1hY3RpdmUpIHtcbiAgICAgIGJvcmRlci10b3A6ICRfdGFiLWluay10aGlja25lc3Mgc29saWQgJHhwby1ibHVlLS0zNTA7XG5cbiAgICAgIC5tYXQtdGFiLWxhYmVsLWNvbnRlbnQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkX3RhYi1pbmstdGhpY2tuZXNzIC0gMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbi5tYXQtdGFiLW5hdi1iYXIueHBvLUFsdGVybmF0ZVRhYnMge1xuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuXG4ueHBvLVBpbGxUYWJHcm91cCB7XG4gIC5tYXQtdGFiLWhlYWRlciB7XG4gICAgLm1hdC10YWItbGFiZWwtY29udGFpbmVyIC5tYXQtdGFiLWxhYmVscyB7XG4gICAgICBnYXA6IDRweDtcbiAgICB9XG5cbiAgICAubWF0LXRhYi1sYWJlbC1jb250YWluZXIgLm1hdC10YWItbGFiZWxzIC5tYXQtdGFiLWxhYmVsLFxuICAgIC5tYXQtdGFiLW5hdi1iYXIgLm1hdC10YWItbGluayB7XG4gICAgICAkX3BpbGwtdGFiLXJhZGl1czogMjBweDtcbiAgICAgICRfcGlsbC10YWItbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAkX3BpbGwtdGFiLWhlaWdodDogMzJweDtcbiAgICAgICRfcGlsbC10YWItcGFkZGluZzogNnB4O1xuXG4gICAgICBwYWRkaW5nOiAkX3BpbGwtdGFiLXBhZGRpbmcgJHhwby1jb250ZW50U3BhY2luZztcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRfcGlsbC10YWItcmFkaXVzO1xuICAgICAgaGVpZ2h0OiAkX3BpbGwtdGFiLWhlaWdodDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLW5vcm1hbDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkX3BpbGwtdGFiLWxpbmUtaGVpZ2h0O1xuICAgICAgY29sb3I6ICR4cG8tYmx1ZS0tODAwO1xuICAgICAgJi5tYXQtdGFiLWxhYmVsLWFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tYmx1ZS0tMjAwO1xuICAgICAgICBjb2xvcjogJHhwby1ncmV5LS05NzU7XG5cbiAgICAgICAgLm1hdC10YWItbGFiZWwtY29udGVudCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5tYXQtdGFiLWRpc2FibGVkIHtcbiAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tMzUwO1xuICAgICAgfVxuICAgICAgJjpob3Zlcjpub3QoLm1hdC10YWItZGlzYWJsZWQpOm5vdCgubWF0LXRhYi1sYWJlbC1hY3RpdmUpIHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBjb2xvcjogJHhwby1ibHVlLS04NTA7XG4gICAgICAgIC5tYXQtdGFiLWxhYmVsLWNvbnRlbnQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuJF90YWItYm9yZGVyOiAxcHggc29saWQgJHhwby1ncmV5LS0zMDA7XG4kX3RhYi1pbmstdGhpY2tuZXNzOiA0cHg7XG5cbi5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5Lnhwby1WZXJ0aWNhbFRhYnMge1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgLm1hdC10YWItaGVhZGVyIHtcbiAgICAubWF0LXRhYi1sYWJlbC1jb250YWluZXIge1xuICAgICAgLm1hdC10YWItbGlzdCB7XG4gICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgIH1cbiAgICAgIC5tYXQtdGFiLWxhYmVscyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgLm1hdC10YWItbGFiZWwge1xuICAgICAgICAgICRfdmVydGljYWwtaGVpZ2h0OiAzMnB4O1xuICAgICAgICAgICRfdmVydGljYWwtcGFkZGluZzogNnB4O1xuICAgICAgICAgICRfdmVydGljYWwtbWFyZ2luOiAtM3B4O1xuXG4gICAgICAgICAgYm9yZGVyOiAkX3RhYi1ib3JkZXI7XG4gICAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgICBoZWlnaHQ6ICRfdmVydGljYWwtaGVpZ2h0O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG4gICAgICAgICAgcGFkZGluZzogJF92ZXJ0aWNhbC1wYWRkaW5nICR4cG8tY29udGVudFNwYWNpbmc7XG4gICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkX3RhYi1ib3JkZXI7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi1jb250ZW50IHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLW5vcm1hbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLWFjdGl2ZSB7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogJF90YWItaW5rLXRoaWNrbmVzcyBzb2xpZCAkeHBvLWJsdWUtLTg1MDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLm1hdC10YWItbGFiZWwtYWN0aXZlIC5tYXQtdGFiLWxhYmVsLWNvbnRlbnQge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZGVyO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkX3ZlcnRpY2FsLW1hcmdpbjtcbiAgICAgICAgICB9XG4gICAgICAgICAgJjpob3ZlcjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkX3RhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogJF90YWItaW5rLXRoaWNrbmVzcyBzb2xpZCAkeHBvLWJsdWUtLTM1MDtcblxuICAgICAgICAgICAgLm1hdC10YWItbGFiZWwtY29udGVudCB7XG4gICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkX3ZlcnRpY2FsLW1hcmdpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgJjpob3Zlcjpub3QoLm1hdC10YWItZGlzYWJsZWQpOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogJF90YWItaW5rLXRoaWNrbmVzcyBzb2xpZCAkeHBvLWJsdWUtLTM1MDtcblxuICAgICAgICAgICAgLm1hdC10YWItbGFiZWwtY29udGVudCB7XG4gICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkX3ZlcnRpY2FsLW1hcmdpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG5AbWl4aW4geHBvLXRhYnMtdGhlbWUoJHRoZW1lKSB7XG4gIEBpbmNsdWRlIG1hdC10YWJzLXRoZW1lKCR0aGVtZSk7XG59XG5cbi8vL1xuLy8gT3ZlcnJpZGVzIGZvciB0aGUgU2VsZWN0XG4vL1xuLy8gQGF1dGhvcjogUGV0ZXIgUmFtc2luZyA8cGV0ZXIucmFtc2luZ0B4cG8uY29tPlxuLy8vXG5cbi8qXG4gICAgMS4gTW92ZXMgdGhlIHNlbGVjdCB0byBzaXQgcmlnaHQgdW5kZXIgdGhlIHRyaWdnZXJcbiovXG5cbkBtaXhpbiB4cG8tc2VsZWN0LXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtc2VsZWN0LXRoZW1lKCR0aGVtZSk7XG4gICRfb3B0aW9uLWhlaWdodDogMi4zZW07XG4gICRfc2VsZWN0LXR3b0xpbmVzRGVzY3JpcHRpb24tZm9udFNpemU6IDExcHg7XG4gICRfc2VsZWN0UGFuZWwtbWFyZ2luTGVmdDogN3B4O1xuICAkX3NlbGVjdFBhbmVsLW1hcmdpblRvcDogMjRweDtcbiAgJF9zZWxlY3RJbnB1dC1wYWRkaW5nLS12ZXJ0aWNhbDogNnB4O1xuICAkX2Zvcm0tZmllbGQtYm9yZGVyUmFkaXVzOiAycHg7XG4gICRfZm9ybS1maWVsZC1zdWZmaXgtbG9hZGVyLS1zaXplOiAyNHB4O1xuICAkX2Zvcm0tZmllbGQtc3VmZml4LXJpZ2h0OiAyNHB4O1xuICAkX2Zvcm1GaWVsZC1pY29uLXNpemU6IDE2cHg7XG4gICRfZm9ybUZpZWxkLWljb24tZm9udFNpemU6IDIwcHg7XG5cbiAgLy8gU2VsZWN0IHdpdGggaWNvbiBhbmQgdHdvIGxpbmVzXG4gIC54cG8tU2VsZWN0LXR3b0xpbmVzQ29udGFpbmVyIHtcbiAgICBjb2xvcjogJHhwby1ncmV5LS0xMTAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXJnaW4tbGVmdDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG5cbiAgICAubWF0LW9wdGlvbi10ZXh0IHtcbiAgICAgICY6bnRoLW9mLXR5cGUoMSkge1xuICAgICAgICBjb2xvcjogJHhwby1ibGFjaztcbiAgICAgICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc21hbGw7XG4gICAgICB9XG5cbiAgICAgICY6bnRoLW9mLXR5cGUoMikge1xuICAgICAgICBjb2xvcjogJHhwby1ncmV5LS05NTA7XG4gICAgICAgIGZvbnQtc2l6ZTogJF9zZWxlY3QtdHdvTGluZXNEZXNjcmlwdGlvbi1mb250U2l6ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEycHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAueHBvLVNlbGVjdC10d29Db2x1bW5zQ29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgc3BhbjpmaXJzdC1vZi10eXBlIHtcbiAgICAgIGZsZXg6IDE7XG4gICAgfVxuXG4gICAgc3BhbjpsYXN0LW9mLXR5cGUge1xuICAgICAgZmxleDogMjtcbiAgICB9XG4gIH1cblxuICAueHBvLVNlbGVjdC1wYW5lbCB7XG4gICAgJi5tYXQtc2VsZWN0LXBhbmVsIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRuZ3gtaW5wdXQtY29sb3ItYm9yZGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgbWFyZ2luLWxlZnQ6ICRfc2VsZWN0UGFuZWwtbWFyZ2luTGVmdDsgLy8gIzFcbiAgICAgIG1hcmdpbi10b3A6ICRfc2VsZWN0UGFuZWwtbWFyZ2luVG9wOyAvLyAjMVxuXG4gICAgICAubWF0LW9wdGlvbixcbiAgICAgIC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICAgICAgICBoZWlnaHQ6ICR4cG8taW5wdXQtaGVpZ2h0LS1kZWZhdWx0OyAvLyBUaGUgc3R5bGUgaXMgb3ZlcndyaXR0ZW4gYnkgZGVmYXVsdCBvdGhlcndpc2VcbiAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgLy8gVGhlIHN0eWxlIGlzIG92ZXJ3cml0dGVuIGJ5IGRlZmF1bHQgb3RoZXJ3aXNlXG4gICAgICAgIHBhZGRpbmc6ICRfc2VsZWN0SW5wdXQtcGFkZGluZy0tdmVydGljYWwgJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG5cbiAgICAgICAgJjpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206ICRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoIHNvbGlkICR4cG8tZ3JleS0tMzAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi54cG8tT3B0aW9uIHtcbiAgICAgICAgICAmLS10d29MaW5lcyB7XG4gICAgICAgICAgICBoZWlnaHQ6ICR4cG8taW5wdXQtaGVpZ2h0LS10d29MaW5lcztcblxuICAgICAgICAgICAgLm1hdC1vcHRpb24tdGV4dCB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi1oaWRlRGl2aWRlcjpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCksXG4gICAgICAgICY6Zm9jdXM6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJHhwby1zZWxlY3QtYmFja2dyb3VuZENvbG9yLW9wdGlvbk9uSG92ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWljb24ge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubWF0LXNlbGVjdGVkIHtcbiAgICAgICAgICAmOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHhwby1zZWxlY3QtYmFja2dyb3VuZENvbG9yLW9wdGlvbk9uSG92ZXI7XG4gICAgICAgICAgICBjb2xvcjogJHhwby1ncmV5LS05MDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi1kaXNhYmxlZCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmV5LS04MDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXQtb3B0aW9uLXRleHQge1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tOTUwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hdC1wc2V1ZG8tY2hlY2tib3gge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRuZ3gtaW5wdXQtY29sb3ItYm9yZGVyO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuXG4gICAgICAgICAgJi1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTMwMDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHhwby1ncmV5LS0zMDA7XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgICAgICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgICAgICAgICAgICBoZWlnaHQ6IDNweDtcbiAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgICAgLy8gRm9yIHNvbWUgc3RyYW5nZSByZWFzb24gQW5ndWxhciBNYXRlcmlhbCBkb2Vzbid0IGhhdmUgdGhlc2Ugc3R5bGVzXG4gICAgICAgICAgICAgIC8vIGZvciB0aGUgZGlzYWJsZWQgb3B0aW9ucywgd2UgYXJlIGFkZGluZyBpdCB0byBlbnN1cmUgdGhhdCB3ZSBjYW4gc2hvd1xuICAgICAgICAgICAgICAvLyBzZWxlY3RlZCBvcHRpb25zIGFzIGRpc2FibGVkLlxuICAgICAgICAgICAgICB3aWR0aDogOHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgICYtY2hlY2tlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWJsYWNrO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkeHBvLWJsYWNrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIC8vIFRoZXNlIHZhbHVlcyBhcmUgbmVlZGVkIHRvIG92ZXJyaWRlIHRoZSBvbmVzIHNldCBieSBNYXRlcmlhbCxcbiAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gb3ZlcnJpZGUgdGhlbSBiZWNhdXNlIHdlIGNoYW5nZWQgdGhlIGJvcmRlci13aXRoLlxuICAgICAgICAgICAgbGVmdDogMnB4O1xuICAgICAgICAgICAgdG9wOiAzLjRweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gQXBwbHlpbmcgdGhlc2Ugc3R5bGVzIG91dHNpZGUgdGhlIG1hdC1vcHRpb24gYmxvY2ssIHNvIGl0XG4gICAgICAvLyBkb2Vzbid0IG1peHVwIG9yIGJyZWFrIHRoZSBtYXQtb3B0aW9uXG4gICAgICAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJG5neC1pbnB1dC1ib3JkZXItd2lkdGggc29saWQgJHhwby1ncmV5LS0zMDA7XG4gICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTk1MDtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgICAgIH1cblxuICAgICAgLm1hdC1vcHRncm91cCB7XG4gICAgICAgICY6bm90KDpmaXJzdC1vZi10eXBlKSAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgICAgICAgICBib3JkZXItdG9wOiAkbmd4LWlucHV0LWJvcmRlci13aWR0aCBzb2xpZCAkeHBvLWdyZXktLTMwMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlbW92YWxzXG4gIC5tYXQtb3B0aW9uIC5tYXQtb3B0aW9uLXJpcHBsZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkIHtcbiAgICAmLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LXNlbGVjdCB7XG4gICAgICAmLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgICAgICAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtc2VsZWN0IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3ksXG4gICAgICAmLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgICAgICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkdGhlbWUsIGlzLWRhcmspOyAvLyBUT0RPOiB2YXJpYWJsZXMgdXNpbmcgdGhpcyBzaG91bGQgY29tZSBmcm9tIHBhbGV0dGVcbiAgICAgICAgJF9pbnB1dC1ib3JkZXJDb2xvci0tZm9jdXNlZDogJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tZGFyaztcbiAgICAgICAgJF9pbnB1dC1ib3JkZXJDb2xvcjogJG5neC1pbnB1dC1jb2xvci1ib3JkZXI7XG4gICAgICAgICRfbGFiZWxWZXJ0aWNhbE1vdmVtZW50OiAtMS4zZW07XG4gICAgICAgICRfcHJlZml4U3VmZml4SWNvbi1zaXplOiAyZW07XG4gICAgICAgICRfaW5wdXQtcGxhY2Vob2xkZXJUZXh0Q29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCAkeHBvLWdyZXktLTEwMCwgJHhwby1ncmV5LS00MDApO1xuICAgICAgICAkX2lucHV0LWxhYmVsVGV4dENvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgJHhwby1ncmV5LS01MCwgJHhwby1ncmV5LS03MDApO1xuICAgICAgICAkX2Zvcm1GaWVsZC1tYXJnaW5Ub3A6IDI0cHg7XG5cbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHhwby1jb250ZW50U3BhY2luZztcbiAgICAgICAgbWFyZ2luLXRvcDogJF9mb3JtRmllbGQtbWFyZ2luVG9wO1xuXG4gICAgICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQge1xuICAgICAgICAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTgwO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAubWF0LXNlbGVjdC1wbGFjZWhvbGRlcixcbiAgICAgICAgICAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkeHBvLWJsYWNrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLm1hdC1mb3JtLWZpZWxkLWhhcy1sYWJlbCAubWF0LXNlbGVjdDpub3QoLm1hdC1zZWxlY3QtZW1wdHkpIC5tYXQtc2VsZWN0LWFycm93LXdyYXBwZXIge1xuICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICAgICAgICBoZWlnaHQ6IHVuc2V0O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgICAvLyBTZXRzIHRoZSBmb2N1c2VkIGJvcmRlciBjb2xvciBhbmQgYm94IHNoYWRvd1xuICAgICAgICAgIEBhdC1yb290IC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkX2lucHV0LWJvcmRlckNvbG9yLS1mb2N1c2VkICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gU2V0cyB0aGUgYm9yZGVyIGNvbG9yIHdoZW4gaW52YWxpZFxuICAgICAgICAgIEBhdC1yb290IC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICR4cG8tY29sb3ItLWVycm9yICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8td2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6ICRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoIHNvbGlkICRfaW5wdXQtYm9yZGVyQ29sb3I7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkX2Zvcm0tZmllbGQtYm9yZGVyUmFkaXVzO1xuICAgICAgICAgICAgcGFkZGluZzogJF9zZWxlY3RJbnB1dC1wYWRkaW5nLS12ZXJ0aWNhbCAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcblxuICAgICAgICAgICAgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5tYXQtc2VsZWN0LXZhbHVlLXRleHQge1xuICAgICAgICAgICAgICBjb2xvcjogJHhwby1ncmV5LS0xMTAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubWF0LWZvY3VzZWQge1xuICAgICAgICAgIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICAgICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTkwMCAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubmd4LUZvcm1GaWVsZC0taW5saW5lIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCgubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0KSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICAgIGNvbG9yOiAkX2lucHV0LXBsYWNlaG9sZGVyVGV4dENvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgICBjb2xvcjogJHhwby1ncmV5LS05NTA7XG4gICAgICAgIH1cblxuICAgICAgICAmLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgICBjb2xvcjogJF9pbnB1dC1wbGFjZWhvbGRlclRleHRDb2xvciAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoLm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCkgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgICBjb2xvcjogJF9pbnB1dC1wbGFjZWhvbGRlclRleHRDb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoaXMgaXMgdGhlIGFzdGVyaXNrIHRoYXQgaXMgYWRkZWQgaWYgYHJlcXVpcmVkYCBpcyBhZGRlZCB0byB0aGUgaW5wdXRcbiAgICAgICAgLm1hdC1wbGFjZWhvbGRlci1yZXF1aXJlZCB7XG4gICAgICAgICAgY29sb3I6ICR4cG8tY29sb3ItLWVycm9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hdC1oaW50IHtcbiAgICAgICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLXNtYWxsO1xuICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ub3JtYWw7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWVycm9yIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAkeHBvLWZvbnRGYW1pbHktLXByaW1hcnk7XG4gICAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG4gICAgICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tbm9ybWFsO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xuICAgICAgICAgIG1hcmdpbi10b3A6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuXG4gICAgICAgICAgLm1hdC1pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkX2Zvcm1GaWVsZC1pY29uLWZvbnRTaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc21hbGw7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyA0O1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLXByZWZpeCB7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjNlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1zdWZmaXgge1xuICAgICAgICAgIGhlaWdodDogJF9mb3JtLWZpZWxkLXN1ZmZpeC1sb2FkZXItLXNpemU7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHJpZ2h0OiAkX2Zvcm0tZmllbGQtc3VmZml4LXJpZ2h0O1xuICAgICAgICAgIHdpZHRoOiAkX2Zvcm0tZmllbGQtc3VmZml4LWxvYWRlci0tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEJvcmRlcmxlc3NcbiAgICAgICAgJi5uZ3gtRm9ybUZpZWxkLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiB1bnNldDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSRU1PVkFMU1xuICAgICAgICAvLyBSZW1vdmVzIHRoZSB1bmRlcmxpbmVcbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFRoZXNlIHN0eWxlcyByZW1vdmUgdGhlIGV4dHJhIHdpZHRoIGFuZCB0aGUgdHJhbnNsYXRlWCBpbmxpbmUgc3R5bGVzLFxuICAvLyBhZGRlZCBieSBBbmd1bGFyIE1hdGVyaWFsIHVzaW5nIHZhcmlhYmxlcyBTRUxFQ1RfUEFORUxfUEFERElOR19YXG4gIC8vIGFuZCBTRUxFQ1RfTVVMVElQTEVfUEFORUxfUEFERElOR19YLlxuICAvLyBBbHRob3VnaCBTRUxFQ1RfTVVMVElQTEVfUEFORUxfUEFERElOR19YIGlzIHB1YmxpYyBhbmQgcmlnaHQgbm93IHdlIGNvdWxkXG4gIC8vIG92ZXJyaWRlIGl0LCBpdCdzIG1hcmtlZCBhcyBkZXByZWNhdGVkLCBzbyB3ZSBhcmUgYXBwbHlpbmcgdGhpcyBzb2x1dGlvbiB0aGF0XG4gIC8vIHdpbGwgYmUgdmFsaWQgdXAgdG8gQW5ndWxhcjEyLlxuICAueHBvLVNlbGVjdC1wYW5lbC5tYXQtc2VsZWN0LXBhbmVsIHtcbiAgICBtaW4td2lkdGg6IGNhbGMoMTAwJSArIDE4cHgpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAueHBvLVNlbGVjdC1wYW5lbE11bHRpcGxlLm1hdC1zZWxlY3QtcGFuZWwge1xuICAgIG1hcmdpbi1sZWZ0OiAzMXB4O1xuICB9XG59XG5cbkBtaXhpbiB4cG8tc2xpZGUtdG9nZ2xlLXRoZW1lKCR0aGVtZSkge1xuICAkX3RodW1iU2l6ZTogMjJweDtcblxuICBtYXQtc2xpZGUtdG9nZ2xlLm1hdC1zbGlkZS10b2dnbGUge1xuICAgICRfbWF0U2xpZGVUb2dnbGUtd2lkdGgtc21hbGw6IDMycHg7XG4gICAgJF9tYXRTbGlkZVRvZ2dsZS1oZWlnaHQtc21hbGw6IDE2cHg7XG4gICAgJF9tYXRTbGlkZVRvZ2dsZS10aHVtYi1zbWFsbDogMTRweDtcbiAgICAkX21hdFNsaWRlVG9nZ2xlLXRodW1iOiAyMHB4O1xuICAgICRfbWF0U2xpZGVUb2dnbGUtYmFyLXdpdGg6IDM4cHg7XG4gICAgJF9tYXRTbGlkZVRvZ2dsZS1ib3JkZXItdW5zZWxlY3RlZC1kaXNhYmxlZDogI2UyZTJlNDtcbiAgICAkX21hdFNsaWRlVG9nZ2xlLWJvcmRlci1jaGVja2VkLWRpc2FibGVkOiAjYzdkZWM2O1xuICAgICRfbWF0U2xpZGVUb2dnbGUtYmFja2dyb3VuZC1iYXI6ICNjZGU4Y2M7XG5cbiAgICAmLm1hdC1kaXNhYmxlZCB7XG4gICAgICBvcGFjaXR5OiB1bnNldDtcbiAgICB9XG5cbiAgICAmLm1hdC1jaGVja2VkIHtcbiAgICAgIG9wYWNpdHk6IHVuc2V0O1xuICAgIH1cblxuICAgICYubWF0LWNoZWNrZWQubWF0LWRpc2FibGVkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkX21hdFNsaWRlVG9nZ2xlLWJhY2tncm91bmQtYmFyO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJF9tYXRTbGlkZVRvZ2dsZS1ib3JkZXItY2hlY2tlZC1kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAmLm1hdC1kaXNhYmxlZCAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1icmFuZC1saWdodC1ncmV5LS01MDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRfbWF0U2xpZGVUb2dnbGUtYm9yZGVyLXVuc2VsZWN0ZWQtZGlzYWJsZWQ7XG5cbiAgICAgIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRfbWF0U2xpZGVUb2dnbGUtYm9yZGVyLXVuc2VsZWN0ZWQtZGlzYWJsZWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmVlbi0tNDUwO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJHhwby1ncmVlbi0tNjAwO1xuICAgIH1cblxuICAgIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTgwO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJHhwby1ncmV5LS0zMDA7XG4gICAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xuICAgICAgaGVpZ2h0OiAkX3RodW1iU2l6ZTtcbiAgICAgIHdpZHRoOiAkX21hdFNsaWRlVG9nZ2xlLWJhci13aXRoO1xuICAgIH1cblxuICAgICYubWF0LWNoZWNrZWQubWF0LWRpc2FibGVkIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkX21hdFNsaWRlVG9nZ2xlLWJvcmRlci1jaGVja2VkLWRpc2FibGVkO1xuICAgIH1cblxuICAgICYubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby13aGl0ZTtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5tYXQtZGlzYWJsZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby13aGl0ZTtcbiAgICB9XG5cbiAgICAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYi1jb250YWluZXIge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRvcDogMC4xcHg7XG5cbiAgICAgICYubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8td2hpdGU7XG4gICAgICAgIGhlaWdodDogJF90aHVtYlNpemU7XG4gICAgICAgIHdpZHRoOiAkX3RodW1iU2l6ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLXdoaXRlO1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICR4cG8tZ3JleS0tMzAwO1xuICAgIH1cblxuICAgICYueHBvLVNsaWRlVG9nZ2xlLS1zbWFsbCB7XG4gICAgICAmLm1hdC1jaGVja2VkLm1hdC1kaXNhYmxlZCAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkX21hdFNsaWRlVG9nZ2xlLWJhY2tncm91bmQtYmFyO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkX21hdFNsaWRlVG9nZ2xlLWJvcmRlci1jaGVja2VkLWRpc2FibGVkO1xuICAgICAgfVxuXG4gICAgICAmLm1hdC1kaXNhYmxlZCAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkX21hdFNsaWRlVG9nZ2xlLWJvcmRlci11bnNlbGVjdGVkLWRpc2FibGVkO1xuICAgICAgfVxuXG4gICAgICAmLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JlZW4tLTQ1MDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHhwby1ncmVlbi0tNjAwO1xuICAgICAgfVxuXG4gICAgICAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTgwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xuICAgICAgICBoZWlnaHQ6ICRfbWF0U2xpZGVUb2dnbGUtaGVpZ2h0LXNtYWxsO1xuICAgICAgICB3aWR0aDogJF9tYXRTbGlkZVRvZ2dsZS13aWR0aC1zbWFsbDtcbiAgICAgIH1cblxuICAgICAgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWItY29udGFpbmVyIHtcbiAgICAgICAgaGVpZ2h0OiAkX21hdFNsaWRlVG9nZ2xlLXRodW1iLXNtYWxsO1xuICAgICAgICB3aWR0aDogJF9tYXRTbGlkZVRvZ2dsZS10aHVtYi1zbWFsbDtcbiAgICAgIH1cblxuICAgICAgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICAgICAgICBoZWlnaHQ6ICRfbWF0U2xpZGVUb2dnbGUtdGh1bWItc21hbGw7XG4gICAgICAgIHdpZHRoOiAkX21hdFNsaWRlVG9nZ2xlLXRodW1iLXNtYWxsO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtc2xpZGUtdG9nZ2xlLXJpcHBsZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4vLy9cbi8vIE92ZXJyaWRlcyBmb3IgdGhlIHJhZGlvIGJ1dHRvblxuLy8vXG5cbkBtaXhpbiB4cG8tcmFkaW8tdGhlbWUoJHRoZW1lKSB7XG4gIEBpbmNsdWRlIG1hdC1yYWRpby10aGVtZSgkdGhlbWUpO1xuXG4gIG1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWJ1dHRvbiB7XG4gICAgLm1hdC1yYWRpby1jb250YWluZXIge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xuXG4gICAgICAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuZ3gtaW5wdXQtY29sb3Itb25BY3RpdmUtLWRhcms7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAkbmd4LWlucHV0LWJvcmRlci13aWR0aDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xuICAgICAgcGFkZGluZy1sZWZ0OiAycHg7XG4gICAgfVxuXG4gICAgJi5tYXQtcmFkaW8tY2hlY2tlZCB7XG4gICAgICAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tbGlnaHQ7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjYyNSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5tYXQtcmFkaW8tZGlzYWJsZWQge1xuICAgICAgLm1hdC1yYWRpby1sYWJlbCB7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlLFxuICAgICAgJi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlZC0tZGFyaztcbiAgICAgIH1cblxuICAgICAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1kYXJrO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vL1xuICAgIC8vIFJlbW92YWxzXG4gICAgLy8vXG4gICAgLm1hdC1yaXBwbGUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHhwby1oZWFkZXItdGhlbWUoJHRoZW1lKSB7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG5cbiAgLnhwby1IZWFkZXIge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgYXBwLWJhcik7XG4gICAgYm9yZGVyLWJvdHRvbTogaWYoJGlzLWRhcmstdGhlbWUsIDJweCwgMXB4KSBzb2xpZCBpZigkaXMtZGFyay10aGVtZSwgdHJhbnNwYXJlbnQsICR4cG8tZ3JleS0tMzAwKTtcbiAgfVxufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC1oZWFkZXItLXNtYWxsKCkge1xuICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1zbWFsbDtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLXNtYWxsO1xuICBsaW5lLWhlaWdodDogJHhwby1oZWFkZXItbGluZUhlaWdodC0tc21hbGw7XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tbWVkaXVtKCkge1xuICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1tZWRpdW07XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1tZWRpdW07XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1tZWRpdW07XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tbGFyZ2UoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLWxhcmdlO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbGFyZ2U7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1sYXJnZTtcbn1cblxuLy8gUmVndWxhciB0ZXh0IG1peGluc1xuQG1peGluIFRleHRUcmVhdG1lbnQtLXNtYWxsKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLXNtYWxsO1xuICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbWFsbDtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtLW1lZGl1bSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LS1sYXJnZSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1sYXJnZTtcbn1cblxuXG4vKlxuKiogPT09PSBCYXNpYyBjb2xvcnMgPT09PVxuKi9cblxuLypcbioqID09PT0gWFBPIEJyYW5kIENvbG9yIFBhbGV0dGUgPT09PVxuKi9cblxuLy8gWFBPIFJlZFxuJHhwby1icmFuZC1yZWQ6ICNjYzAwMDA7XG4keHBvLWJyYW5kLXJlZC0tOTAwOiAkeHBvLWJyYW5kLXJlZDtcbiR4cG8tYnJhbmQtcmVkLS04MDA6ICNlNDIxMGU7XG4keHBvLWJyYW5kLXJlZC0tNzAwOiAjZjMyYTEzO1xuJHhwby1icmFuZC1yZWQtLTYwMDogI2ZmMzMxNztcbiR4cG8tYnJhbmQtcmVkLS01MDA6ICNmZjM5MWM7XG4keHBvLWJyYW5kLXJlZC0tNDAwOiAjZmY1ZTNkO1xuJHhwby1icmFuZC1yZWQtLTMwMDogI2ZmN2U2MDtcbiR4cG8tYnJhbmQtcmVkLS0yMDA6ICNmZmE0OGU7XG4keHBvLWJyYW5kLXJlZC0tMTAwOiAjZmZjOGJhO1xuJHhwby1icmFuZC1yZWQtLTUwOiAjZmNlOGU2O1xuXG4vLyBYUE8gQmxhY2tcbiR4cG8tYmxhY2s6ICMwMDAwMDA7XG4keHBvLWJyYW5kLWJsYWNrLS05MDA6ICR4cG8tYmxhY2s7XG4keHBvLWJyYW5kLWJsYWNrLS04MDA6ICMyNjI2MjY7XG4keHBvLWJyYW5kLWJsYWNrLS03MDA6ICM1NTU1NTU7XG4keHBvLWJyYW5kLWJsYWNrLS02MDA6ICM3YjdiN2I7XG4keHBvLWJyYW5kLWJsYWNrLS01MDA6ICM5ZDlkOWQ7XG4keHBvLWJyYW5kLWJsYWNrLS00MDA6ICM5ZDlkOWQ7XG4keHBvLWJyYW5kLWJsYWNrLS0zMDA6ICNjNGM0YzQ7XG4keHBvLWJyYW5kLWJsYWNrLS0yMDA6ICNkOWQ5ZDk7XG4keHBvLWJyYW5kLWJsYWNrLS0xMDA6ICNlOWU5ZTk7XG4keHBvLWJyYW5kLWJsYWNrLS01MDogI2Y1ZjVmNTtcblxuLy8gWFBPIERhcmsgR3JleVxuJHhwby1icmFuZC1kYXJrLWdyZXk6ICM0MTRhNGM7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tOTAwOiAjMjIyODJiO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTgwMDogJHhwby1icmFuZC1kYXJrLWdyZXk7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNzAwOiAjNjI2ODZjO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTYwMDogIzc1N2Q4MTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS01MDA6ICNhMGE2YWE7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNDAwOiAjYmVjNWM5O1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTMwMDogI2UwZTdlYjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0yMDA6ICNlYmYyZjY7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMTAwOiAjZjBmN2ZiO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTUwOiAjZjRmY2ZmO1xuXG4vLyBYUE8gTWVkaXVtIEdyZXlcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXk6ICM4NDg0ODQ7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS05MDA6ICMyZTJlMmU7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS04MDA6ICM1MDUwNTA7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS03MDA6ICM3MDcwNzA7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS02MDA6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXk7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS01MDA6ICNhZmFmYWY7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS00MDA6ICNjZGNkY2Q7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0zMDA6ICNlZWVlZWU7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA6ICNmM2YzZjM7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0xMDA6ICNmOGY4Zjg7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS01MDogI2ZjZmNmYztcblxuLy8gWFBPIExpZ2h0IEdyZXlcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleTogI2RlZGVkZTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tOTAwOiAjMWYxZjFmO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS04MDA6ICMzZjNmM2Y7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTcwMDogIzVlNWU1ZTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNjAwOiAjNzI3MjcyO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS01MDA6ICM5YTlhOWE7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTQwMDogI2JhYmFiYTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMzAwOiAkeHBvLWJyYW5kLWxpZ2h0LWdyZXk7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTIwMDogI2VjZWNlYztcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMTAwOiAjZjRmNGY0O1xuJHhwby1icmFuZC1saWdodC1ncmV5LS01MDogI2Y5ZjlmOTtcblxuLypcbioqID09PT0gTWFpbiBDb2xvciBQYWxldHRlID09PT1cbiovXG5cbi8vIEJsYWNrIGFuZCBHcmV5XG4keHBvLWdyZXktLTk3NTogIzIxMjEyMTtcbiR4cG8tZ3JleS0tOTUwOiAjMzMzMzMzO1xuJHhwby1ncmV5LS05MDA6ICM0YTRhNGE7XG4keHBvLWdyZXktLTcwMDogIzZmNmY2ZjtcbiR4cG8tZ3JleS0tMzUwOiAjYmRiZGJkO1xuJHhwby1ncmV5LS0zMDA6ICNkOGQ4ZDg7XG4keHBvLWdyZXktLTgwOiAjZjZmNmY2O1xuJHhwby1ncmV5LS0yNTogI2ZhZmFmYTtcblxuJHhwby13aGl0ZTogI2ZmZmZmZjtcblxuLy8gTGlua3MsIEJ1dHRvbnMsIFRhYnNldCBhbmQgVGFicGlsbHNcbiR4cG8tYmx1ZS0tODUwOiAjMGQ0N2ExO1xuJHhwby1ibHVlLS04MDA6ICMxOTc2ZDI7XG4keHBvLWJsdWUtLTM1MDogIzIxOTZmMztcblxuLy8gRXJyb3IgU3RhdGVcbiR4cG8tcmVkLS0yMDA6ICNiNzFjMWM7XG4keHBvLXJlZC0tMTUwOiAjZDMyZjJmO1xuJHhwby1yZWQtLTUwOiAjZmNlZWViO1xuXG4vLyBTdWNjZXNzIFN0YXRlXG4keHBvLWdyZWVuLS02MDA6ICMzODhlM2M7XG4keHBvLWdyZWVuLS00NTA6ICM0Y2FmNTA7XG4keHBvLWdyZWVuLS01MDogI2YxZjlmMTtcblxuLy8gV2FybmluZyBTdGF0ZVxuJHhwby15ZWxsb3ctLTM1MDogI2ZmZDYwMDtcblxuJHhwby1vcmFuZ2UtLTM1MDogI2ZmNmQwMDtcblxuLy8gSW5mbyBTdGF0ZVxuJHhwby1ibHVlLS03MDA6ICMwMDkxZWE7XG5cbi8vIFRyYW5zYWN0aW9uYWwgQ2VsbHNcbiR4cG8tZ3JleS0tMTUwOiAjZWNlZmYxO1xuXG4keHBvLWJsdWVHcmV5LS03MDA6ICNjZmQ4ZGM7XG5cbi8vIEFjY2VudCBDb2xvcnNcbiR4cG8tcGluay0tNzAwOiAjYzUxMTYyO1xuXG4keHBvLXRlYWwtLTcwMDogIzAwYmZhNTtcblxuJHhwby1ibHVlLS04MjU6ICMzMDRmZmU7XG4keHBvLWJsdWUtLTIwMDogI2U0ZWZmYTtcblxuJHhwby1hY2NlbnQtcmVkLS00MDA6ICR4cG8tYnJhbmQtcmVkLS00MDA7XG4keHBvLWFjY2VudC1yZWQtLTEwMDogJHhwby1icmFuZC1yZWQtLTEwMDtcblxuJHhwby1wdXJwbGUtLTcwMDogIzYyMDBlYTtcblxuJHhwby1ncmVlbi0tMjAwOiAjYTRlNTliO1xuXG4keHBvLXllbGxvdy0tMjAwOiAjZmZmOWM0O1xuXG4vKlxuKiogPT09PSBERVBSRUNBVEVEIENPTE9SUyA9PT09XG4qL1xuXG4vKlxuKiogV0FSTklORzogVEhJUyBWQVJJQUJMRVMgV0lMTCBCRSBSRU1PVkVEIFNPT05cbiovXG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTEwMDogI2U4ZjVmZTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMTUwOiAjZTNmMmZkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0zMDA6ICMwZDk0ZjQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTQwMDogIzA4NjhhYztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tOTAwOiAjMDUzYzYzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTEwMDogI2ZmZjhlNTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS0zMDA6ICNmZmNmNGQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tNDAwOiAjZmZiYTAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTcwMDogI2ZmZDYwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS05MDA6ICM0ZDM4MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS0xMDA6ICNjOGZmZGY7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS0zMDA6ICMxY2U4NTU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS0zNTA6ICMwMGM4NTM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS00MDA6ICMxMWE2M2I7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS03MDA6ICMwMGM4NTM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS05MDA6ICMwYTYxMjI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTUwOiAjZmJmYmZiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS02MDogI2ZhZmFmYTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMTAwOiAjZjNmM2YzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0yMDA6ICNlNmU2ZTY7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTI1MDogI2RkZGRkZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNDAwOiAjOWI5YjliO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS02MDA6ICM3NTc1NzU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTY1MDogIzg1ODU4NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNzUwOiAjNTc1NzU3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS05MTU6ICM0MzQ5NGQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTkzMDogIzQyNDI0Mjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMTAwMDogIzE3MTcxNztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMTEwMDogIzIxMjEyMTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0xMDA6ICNmZmVlZWU7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMjUwOiAjZGQyYzAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTMwMDogI2ZmMjIyMjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS00MDA6ICNkNTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNjAwOiAjY2MwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTcwMDogI2QzMmYyZjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS05MDA6ICM1NTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tMTAwOiAjZmZkZmNhO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTMwMDogI2ZmOTk1Nztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS00MDA6ICNmZjY0MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tOTAwOiAjOGIzNzAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1mb250Q29sb3ItLWxpbms6ICMwODY4YWM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJhY2tncm91bmRDb2xvci0tYm9keTogI2YzZjNmMztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLWVycm9yOiAjZDUwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0tc3VjY2VzczogIzExYTYzYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLXdhcm46ICNmZmJhMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1pbmZvOiAjNGE0YTRhO1xuXG4vKlxuKiogPT09PSBDT0xPUlMgQVBQTElFRCA9PT09XG4qL1xuJHhwby1mb250Q29sb3ItLXByaW1hcnk6ICR4cG8tZ3JleS0tOTAwO1xuXG4vKlxuKiogPT09PSBUeXBvZ3JhcGh5ID09PT1cbiovXG4vLyBQdXR0aW5nIHNpemVzIGluIG1hcHMgdG8gYWxsb3cgZHluYW1pYyBzaXppbmcgZm9yIGV4dGVybmFsXG4vLyBSb290IGZvbnQtc2l6ZShzKSBhbHdheXMgaW4gcHhcbiR4cG8tZm9udFNpemUtLXJvb3Q6IDE0cHg7XG4keHBvLWZvbnRTaXplLS1zbWFsbDogMC44NzVyZW07IC8vMTJweFxuJHhwby1mb250U2l6ZS0tbWVkaXVtOiAxcmVtOyAvLzE0cHhcbiR4cG8tZm9udFNpemUtLWxhcmdlOiAxLjE0M3JlbTsgLy8xNnB4XG4keHBvLWZvbnRTaXplLS1leHRyYUxhcmdlOiAxLjI4NXJlbTsgLy8xOHB4XG4keHBvLWZvbnRTaXplLS14eGxhcmdlOiAxLjcxNHJlbTsgLy8yNHB4XG5cbiR4cG8taGVhZGVyLWZvbnRTaXplLS14c21hbGw6IDFyZW07IC8vMTRweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXNtYWxsOiAxLjE0M3JlbTsgLy8xNnB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tbWVkaXVtOiAxLjI4NXJlbTsgLy8xOHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tbGFyZ2U6IDEuNDI4cmVtOyAvLzIwcHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS14bGFyZ2U6IDEuNTcxcmVtOyAvLzIycHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS14eGxhcmdlOiAxLjg1N3JlbTsgLy8yNnB4XG5cbiR4cG8tZm9udEZhbWlseS0tcHJpbWFyeTogJ1JvYm90bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBzYW5zLXNlcmlmO1xuJHhwby1mb250RmFtaWx5LS1yb2JvdG9XaWRlQmxhY2s6ICdSb2JvdG8gV2lkZSBCbGFjaycsICdSb2JvdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgc2Fucy1zZXJpZjtcblxuJHhwby1mb250V2VpZ2h0LS1saWdodDogMzAwO1xuJHhwby1mb250V2VpZ2h0LS1ub3JtYWw6IDQwMDtcbiR4cG8tZm9udFdlaWdodC0tbWVkaXVtOiA1MDA7IC8vIERFUFJFQ0FURUQgfCBkbyBub3QgZGVsZXRlIHNpbmNlIGl0IGlzIHN0aWxsIGJlaW5nIHVzZWQgaW4gc29tZSBwcm9qZWN0c1xuJHhwby1mb250V2VpZ2h0LS1ib2xkOiA1MDA7XG4keHBvLWZvbnRXZWlnaHQtLWV4dHJhQm9sZDogNjAwO1xuJHhwby1mb250V2VpZ2h0LS1ib2xkZXI6IDcwMDtcblxuJHhwby1saW5lSGVpZ2h0LS14bDogMi4yODZyZW07IC8vIDMycHhcbiR4cG8tbGluZUhlaWdodC0tbGc6IDEuNzE0cmVtOyAvLyAyNHB4XG4keHBvLWxpbmVIZWlnaHQtLW1kOiAxLjU3MXJlbTsgLy8gMjJweFxuJHhwby1saW5lSGVpZ2h0LS1zbTogMS40MjlyZW07IC8vIDIwcHhcblxuJHhwby1saW5lSGVpZ2h0LS1iYXNlOiAyNHB4OyAvLyBmb3IgbWVkaXVtIGFuZCBsYXJnZSBmb250IHNpemVcbiR4cG8tbGluZUhlaWdodC0tbWVkaXVtOiAxOHB4OyAvLyBmb3IgbWVkaXVtIGZvbnQgc2l6ZXNcbiR4cG8tbGluZUhlaWdodC0tc21hbGw6IDE2cHg7IC8vIGZvciBzbWFsbCBmb250IHNpemVcblxuJHhwby1oZWFkZXItbGluZUhlaWdodC0tc21hbGw6IDEuMTQzOyAvLyBERVBSRUNBVEVEXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1tZWRpdW06IDEuMTQzOyAvLyBERVBSRUNBVEVEXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1sYXJnZTogMS4yODY7IC8vIERFUFJFQ0FURURcblxuJHhwby1sZXR0ZXJTcGFjaW5nLS1iYXNlOiAwLjJweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLXNtYWxsOiAwLjNweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLW1lZGl1bTogMC4zM3B4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbGFyZ2U6IDAuMzhweDtcblxuLy8gPT09PSBMYXlvdXQgPT09PVxuJHhwby1jb250ZW50U3BhY2luZzogMTZweDtcblxuLy8gQnJlYWtwb2ludHNcbiR4cG8tYnJlYWtwb2ludC0tc21hbGwteHM6IDQ4MHB4O1xuJHhwby1icmVha3BvaW50LS1zbWFsbDogNjAwcHg7XG4keHBvLWJyZWFrcG9pbnQtLW1lZGl1bTogNzY4cHg7XG4keHBvLWJyZWFrcG9pbnQtLWxhcmdlOiAxMDI1cHg7XG4keHBvLWJyZWFrcG9pbnQtLXhMYXJnZTogMTQ0MHB4O1xuXG4keHBvLXNlbGVjdC1iYWNrZ3JvdW5kQ29sb3Itb3B0aW9uT25Ib3ZlcjogJHhwby1ibHVlLS0yMDA7XG5cbi8vIC0tIE5HWC1VSSBTcGVjaWZpYyAtLVxuJG5neC1mb290ZXItaGVpZ2h0OiA0MnB4O1xuJG5neC10YWItaGVhZGVyLWhlaWdodDogNDBweDtcbiRuZ3gtdGFibGUtcm93LWhlaWdodDogMzBweDtcblxuJG5neC1pY29uLXNpemU6IDI0cHg7IC8vIFRPRE86IERlcHJlY2F0ZSB0aGlzIHZhcmlhYmxlXG4keHBvLWljb24tc2l6ZS0tc3RhbmRhcmQ6IDIwcHg7XG4keHBvLWljb24tc2l6ZS0tc21hbGw6IDE4cHg7XG4keHBvLWljb24tc2l6ZS0tbGFyZ2U6IDI0cHg7XG5cbiRuZ3gtdGhlQmxhY2tSb2JvdG86IDkwMDtcblxuJHhwby1pbnB1dC1oZWlnaHQtLWRlZmF1bHQ6IDMwcHg7XG4keHBvLWlucHV0LWhlaWdodC0tdHdvTGluZXM6IDQ1cHg7XG5cbiRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoOiAxcHg7XG5cbiRuZ3gtaW5wdXQtY29sb3Itb25Ib3ZlcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMjAwO1xuJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tZGFyazogJHhwby1ibGFjaztcbiRuZ3gtaW5wdXQtY29sb3Itb25BY3RpdmUtLWxpZ2h0OiAkeHBvLXdoaXRlO1xuJG5neC1pbnB1dC1jb2xvci1ib3JkZXI6ICR4cG8tZ3JleS0tMzAwO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlZC0tZGFyazogJHhwby1ncmV5LS0zNTA7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGUtLWxpZ2h0ZXI6ICR4cG8td2hpdGU7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1saWdodDogJHhwby1ncmV5LS04MDtcblxuJG5neC1idXR0b24tbGluZUhlaWdodDogMzZweDtcbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQtLXNtYWxsOiAyOHB4O1xuJG5neC1idXR0b24tbGluZUhlaWdodC0tbGFyZ2U6IDQ2cHg7XG4kbmd4LWJ1dHRvbi1hbmltYXRpb25EdXJhdGlvbjogMjAwbXM7XG5cbiRuZ3gtaGVhZGVyLWhlaWdodDogNDBweDtcbi8vIEZvciB1c2Ugd2hlbiBhIGhvdmVyIGlzIG5lZWRlZCBvbiBhIHdoaXRlIGJhY2tncm91bmQuXG4kbmd4LXdoaXRlQWZmb3JkYW5jZS1vbkhvdmVyLWNvbG9yOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA7XG5cbiRuZ3gtbWVudS1iYWNrZ3JvdW5kQ29sb3I6ICR4cG8td2hpdGU7XG5cbi8qXG4qKiA9PT09IFNOQUNLQkFSIERFUFJFQ0FURUQgVkFSSUFCTEVTID09PT1cbiovXG5cbi8qXG4qKiBXQVJOSU5HOiBUSElTIFZBUklBQkxFUyBXSUxMIEJFIFJFTU9WRUQgU09PTlxuKi9cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1zdWNjZXNzOiAkeHBvLWdyZWVuLS00NTA7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1lcnJvcjogJHhwby1yZWQtLTE1MDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLWluZm86ICMwMjg4ZDE7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS13YXJuOiAjZmJjMDJkO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLXN1Y2Nlc3M6ICR4cG8tZ3JlZW4tLTYwMDtcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0tZXJyb3I6ICR4cG8tcmVkLS0yMDA7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0taW5mbzogIzAxNTc5YjtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja0Jhci1tYXJnaW5Ub3A6IDMycHg7XG5cbi8vQmFkZ2VcbiRfbWF0QmFkZ2VDb250ZW50LWJhY2tncm91bmRDb2xvci0tbmVnYXRpdmU6ICR4cG8tcmVkLS01MDtcbiRfbWF0QmFkZ2VDb250ZW50LWNvbG9yLS1uZWdhdGl2ZTogI2RkMmMwMDtcbiRfbWF0QmFkZ2VDb250ZW50LWJhY2tncm91bmRDb2xvci0tcG9zaXRpdmU6ICR4cG8tZ3JlZW4tLTUwO1xuXG4kbmd4LW1lbnUtYmFja2dyb3VuZENvbG9yLW9uSG92ZXI6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwO1xuLy8gVXNlZCBhcyBhIHNwYWNlciBmb3IgZmxleGVkIGNoaWxkcmVuXG4vLyBUT0RPOiBNb3ZlIGFsbCBpbnN0YW5jZXMgdG8gdGhlIHV0aWxpdGllcyBkZWZpbml0aW9uXG4uZmxleC0tc3RyZXRjaCB7XG4gIGZsZXg6IDE7XG59XG5cbi8vIC0tLSBEaWFsb2cgLS0tXG4kbmd4LWRpYWxvZy1oZWFkZXItaGVpZ2h0OiA0OHB4O1xuJG5neC1kaWFsb2ctZm9vdGVyLWhlaWdodDogNjRweDtcblxuLy8gLS0tIFRyYW5zaXRpb25zIC0tLVxuJHhwby10cmFuc2l0aW9uLTIwMDogYWxsIDIwMG1zIGVhc2Utb3V0O1xuXG4vLyAtLS0gQ29udGV4dHVhbCBIZWFkZXIgLS0tXG4kbmd4LUNvbnRleHR1YWxIZWFkZXItc2VwYXJhdG9yLS1jb2xvcjogJHhwby1ncmV5LS0zNTA7XG5cblxuLnhwby1Gb290ZXIge1xuICAkX2Zvb3RlckxpbmstbWFyZ2luOiAwIDEycHg7XG5cbiAgd2lkdGg6IDEwMCU7XG5cbiAgJi1uYXZiYXIge1xuICAgICYgPiA6bnRoLWNoaWxkKG4pIHtcbiAgICAgIG1hcmdpbjogJF9mb290ZXJMaW5rLW1hcmdpbjtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkeHBvLWNvbnRlbnRTcGFjaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYtYm9sZC10ZXh0IHtcbiAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkZXI7XG4gIH1cbiAgLy8gVE9ETzogZGVmaW5lIGhlcmUgc3R5bGVzIGZvciBzdGlja3kgd2hlbiBmb290ZXIgY29tcG9uZW50IGlzIGRlZmluZWQgdG8gYmUgcGFydCBvZiB0aGUgc2hlbGwgY29tcG9uZW50XG4gICYtLXN0aWNreSB7XG4gICAgYm90dG9tOiAwO1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gIH1cbn1cblxuQG1peGluIHhwby1zcGVjaWFsLXN0YXR1cy1pbmRpY2F0b3JzLXRoZW1lKCR0aGVtZSkge1xuICAueHBvLVNzaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG5cbiAgICAueHBvLUljb24ge1xuICAgICAgd2lkdGg6IGF1dG87XG5cbiAgICAgIC5tYXQtaWNvbiBzdmcge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHhwby10YWItZHJhd2VyLXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC8vIFRPRE9cbiAgLy8gLnhwby1UYWJEcmF3ZXIge1xuXG4gIC8vICAgJi1uYXYsXG4gIC8vICAgJi1idXR0b24gIHtcbiAgLy8gICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gIC8vICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICAvLyAgIH1cbiAgLy8gfVxufVxuXG5AbWl4aW4geHBvLXRyYXktdGhlbWUoJHRoZW1lKSB7XG4gIC5tYXQtZHJhd2VyLnhwby1UcmF5RHJhd2VyIHtcbiAgICAkX3RyYXlEcmF3ZXItLW1pbldpZHRoOiA1MDBweDtcbiAgICAkX3RyYXlEcmF3ZXItLW1heFdpZHRoOiAxMCU7XG4gICAgJF90cmF5RHJhd2VyLS1tYXhXaWR0aEV4dGVuZGVkOiA5MCU7XG4gICAgJF90cmF5RHJhd2VyLXNoYWRvdy0tdk9mZnNldDogM3B4O1xuICAgICRfdHJheURyYXdlci1zaGFkb3ctLWJsdXI6IDlweDtcbiAgICAkX3RyYXlEcmF3ZXItc2hhZG93LS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM1KTtcblxuICAgIG1heC13aWR0aDogJF90cmF5RHJhd2VyLS1tYXhXaWR0aDtcbiAgICBtaW4td2lkdGg6ICRfdHJheURyYXdlci0tbWluV2lkdGg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aWR0aDogJF90cmF5RHJhd2VyLS1tYXhXaWR0aDtcblxuICAgICYueHBvLVRyYXlEcmF3ZXItLWV4dGVuZGVkIHtcbiAgICAgIG1heC13aWR0aDogJF90cmF5RHJhd2VyLS1tYXhXaWR0aEV4dGVuZGVkO1xuICAgICAgd2lkdGg6ICRfdHJheURyYXdlci0tbWF4V2lkdGhFeHRlbmRlZDtcbiAgICB9XG5cbiAgICAmOm5vdCgubWF0LWRyYXdlci1zaWRlKSxcbiAgICAmLm1hdC1kcmF3ZXItc2lkZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkeHBvLWdyZXktLTMwMDtcbiAgICAgIGJveC1zaGFkb3c6IDAgJF90cmF5RHJhd2VyLXNoYWRvdy0tdk9mZnNldCAkX3RyYXlEcmF3ZXItc2hhZG93LS1ibHVyIDAgJF90cmF5RHJhd2VyLXNoYWRvdy0tY29sb3I7XG4gICAgfVxuXG4gICAgLm1hdC1kcmF3ZXItaW5uZXItY29udGFpbmVyIHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tc21hbGwoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLXNtYWxsO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1zbWFsbDtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1tZWRpdW0oKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLW1lZGl1bTtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLW1lZGl1bTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLW1lZGl1bTtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1sYXJnZSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbGFyZ2U7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1sYXJnZTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLWxhcmdlO1xufVxuXG4vLyBSZWd1bGFyIHRleHQgbWl4aW5zXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tc21hbGwoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tbWVkaXVtKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtLWxhcmdlKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLWxhcmdlO1xufVxuXG5cbi8qXG4qKiA9PT09IEJhc2ljIGNvbG9ycyA9PT09XG4qL1xuXG4vKlxuKiogPT09PSBYUE8gQnJhbmQgQ29sb3IgUGFsZXR0ZSA9PT09XG4qL1xuXG4vLyBYUE8gUmVkXG4keHBvLWJyYW5kLXJlZDogI2NjMDAwMDtcbiR4cG8tYnJhbmQtcmVkLS05MDA6ICR4cG8tYnJhbmQtcmVkO1xuJHhwby1icmFuZC1yZWQtLTgwMDogI2U0MjEwZTtcbiR4cG8tYnJhbmQtcmVkLS03MDA6ICNmMzJhMTM7XG4keHBvLWJyYW5kLXJlZC0tNjAwOiAjZmYzMzE3O1xuJHhwby1icmFuZC1yZWQtLTUwMDogI2ZmMzkxYztcbiR4cG8tYnJhbmQtcmVkLS00MDA6ICNmZjVlM2Q7XG4keHBvLWJyYW5kLXJlZC0tMzAwOiAjZmY3ZTYwO1xuJHhwby1icmFuZC1yZWQtLTIwMDogI2ZmYTQ4ZTtcbiR4cG8tYnJhbmQtcmVkLS0xMDA6ICNmZmM4YmE7XG4keHBvLWJyYW5kLXJlZC0tNTA6ICNmY2U4ZTY7XG5cbi8vIFhQTyBCbGFja1xuJHhwby1ibGFjazogIzAwMDAwMDtcbiR4cG8tYnJhbmQtYmxhY2stLTkwMDogJHhwby1ibGFjaztcbiR4cG8tYnJhbmQtYmxhY2stLTgwMDogIzI2MjYyNjtcbiR4cG8tYnJhbmQtYmxhY2stLTcwMDogIzU1NTU1NTtcbiR4cG8tYnJhbmQtYmxhY2stLTYwMDogIzdiN2I3YjtcbiR4cG8tYnJhbmQtYmxhY2stLTUwMDogIzlkOWQ5ZDtcbiR4cG8tYnJhbmQtYmxhY2stLTQwMDogIzlkOWQ5ZDtcbiR4cG8tYnJhbmQtYmxhY2stLTMwMDogI2M0YzRjNDtcbiR4cG8tYnJhbmQtYmxhY2stLTIwMDogI2Q5ZDlkOTtcbiR4cG8tYnJhbmQtYmxhY2stLTEwMDogI2U5ZTllOTtcbiR4cG8tYnJhbmQtYmxhY2stLTUwOiAjZjVmNWY1O1xuXG4vLyBYUE8gRGFyayBHcmV5XG4keHBvLWJyYW5kLWRhcmstZ3JleTogIzQxNGE0YztcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS05MDA6ICMyMjI4MmI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tODAwOiAkeHBvLWJyYW5kLWRhcmstZ3JleTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS03MDA6ICM2MjY4NmM7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNjAwOiAjNzU3ZDgxO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTUwMDogI2EwYTZhYTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS00MDA6ICNiZWM1Yzk7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMzAwOiAjZTBlN2ViO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTIwMDogI2ViZjJmNjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0xMDA6ICNmMGY3ZmI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNTA6ICNmNGZjZmY7XG5cbi8vIFhQTyBNZWRpdW0gR3JleVxuJHhwby1icmFuZC1tZWRpdW0tZ3JleTogIzg0ODQ4NDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTkwMDogIzJlMmUyZTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTgwMDogIzUwNTA1MDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTcwMDogIzcwNzA3MDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTYwMDogJHhwby1icmFuZC1tZWRpdW0tZ3JleTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwMDogI2FmYWZhZjtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTQwMDogI2NkY2RjZDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTMwMDogI2VlZWVlZTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDogI2YzZjNmMztcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTEwMDogI2Y4ZjhmODtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwOiAjZmNmY2ZjO1xuXG4vLyBYUE8gTGlnaHQgR3JleVxuJHhwby1icmFuZC1saWdodC1ncmV5OiAjZGVkZWRlO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS05MDA6ICMxZjFmMWY7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTgwMDogIzNmM2YzZjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNzAwOiAjNWU1ZTVlO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS02MDA6ICM3MjcyNzI7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwMDogIzlhOWE5YTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNDAwOiAjYmFiYWJhO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0zMDA6ICR4cG8tYnJhbmQtbGlnaHQtZ3JleTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMjAwOiAjZWNlY2VjO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0xMDA6ICNmNGY0ZjQ7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwOiAjZjlmOWY5O1xuXG4vKlxuKiogPT09PSBNYWluIENvbG9yIFBhbGV0dGUgPT09PVxuKi9cblxuLy8gQmxhY2sgYW5kIEdyZXlcbiR4cG8tZ3JleS0tOTc1OiAjMjEyMTIxO1xuJHhwby1ncmV5LS05NTA6ICMzMzMzMzM7XG4keHBvLWdyZXktLTkwMDogIzRhNGE0YTtcbiR4cG8tZ3JleS0tNzAwOiAjNmY2ZjZmO1xuJHhwby1ncmV5LS0zNTA6ICNiZGJkYmQ7XG4keHBvLWdyZXktLTMwMDogI2Q4ZDhkODtcbiR4cG8tZ3JleS0tODA6ICNmNmY2ZjY7XG4keHBvLWdyZXktLTI1OiAjZmFmYWZhO1xuXG4keHBvLXdoaXRlOiAjZmZmZmZmO1xuXG4vLyBMaW5rcywgQnV0dG9ucywgVGFic2V0IGFuZCBUYWJwaWxsc1xuJHhwby1ibHVlLS04NTA6ICMwZDQ3YTE7XG4keHBvLWJsdWUtLTgwMDogIzE5NzZkMjtcbiR4cG8tYmx1ZS0tMzUwOiAjMjE5NmYzO1xuXG4vLyBFcnJvciBTdGF0ZVxuJHhwby1yZWQtLTIwMDogI2I3MWMxYztcbiR4cG8tcmVkLS0xNTA6ICNkMzJmMmY7XG4keHBvLXJlZC0tNTA6ICNmY2VlZWI7XG5cbi8vIFN1Y2Nlc3MgU3RhdGVcbiR4cG8tZ3JlZW4tLTYwMDogIzM4OGUzYztcbiR4cG8tZ3JlZW4tLTQ1MDogIzRjYWY1MDtcbiR4cG8tZ3JlZW4tLTUwOiAjZjFmOWYxO1xuXG4vLyBXYXJuaW5nIFN0YXRlXG4keHBvLXllbGxvdy0tMzUwOiAjZmZkNjAwO1xuXG4keHBvLW9yYW5nZS0tMzUwOiAjZmY2ZDAwO1xuXG4vLyBJbmZvIFN0YXRlXG4keHBvLWJsdWUtLTcwMDogIzAwOTFlYTtcblxuLy8gVHJhbnNhY3Rpb25hbCBDZWxsc1xuJHhwby1ncmV5LS0xNTA6ICNlY2VmZjE7XG5cbiR4cG8tYmx1ZUdyZXktLTcwMDogI2NmZDhkYztcblxuLy8gQWNjZW50IENvbG9yc1xuJHhwby1waW5rLS03MDA6ICNjNTExNjI7XG5cbiR4cG8tdGVhbC0tNzAwOiAjMDBiZmE1O1xuXG4keHBvLWJsdWUtLTgyNTogIzMwNGZmZTtcbiR4cG8tYmx1ZS0tMjAwOiAjZTRlZmZhO1xuXG4keHBvLWFjY2VudC1yZWQtLTQwMDogJHhwby1icmFuZC1yZWQtLTQwMDtcbiR4cG8tYWNjZW50LXJlZC0tMTAwOiAkeHBvLWJyYW5kLXJlZC0tMTAwO1xuXG4keHBvLXB1cnBsZS0tNzAwOiAjNjIwMGVhO1xuXG4keHBvLWdyZWVuLS0yMDA6ICNhNGU1OWI7XG5cbiR4cG8teWVsbG93LS0yMDA6ICNmZmY5YzQ7XG5cbi8qXG4qKiA9PT09IERFUFJFQ0FURUQgQ09MT1JTID09PT1cbiovXG5cbi8qXG4qKiBXQVJOSU5HOiBUSElTIFZBUklBQkxFUyBXSUxMIEJFIFJFTU9WRUQgU09PTlxuKi9cbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMTAwOiAjZThmNWZlO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0xNTA6ICNlM2YyZmQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTMwMDogIzBkOTRmNDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tNDAwOiAjMDg2OGFjO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS05MDA6ICMwNTNjNjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tMTAwOiAjZmZmOGU1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTMwMDogI2ZmY2Y0ZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS00MDA6ICNmZmJhMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tNzAwOiAjZmZkNjAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTkwMDogIzRkMzgwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTEwMDogI2M4ZmZkZjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTMwMDogIzFjZTg1NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTM1MDogIzAwYzg1Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTQwMDogIzExYTYzYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTcwMDogIzAwYzg1Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTkwMDogIzBhNjEyMjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNTA6ICNmYmZiZmI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTYwOiAjZmFmYWZhO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMDA6ICNmM2YzZjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTIwMDogI2U2ZTZlNjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMjUwOiAjZGRkZGRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS00MDA6ICM5YjliOWI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTYwMDogIzc1NzU3NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjUwOiAjODU4NTg1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS03NTA6ICM1NzU3NTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTkxNTogIzQzNDk0ZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tOTMwOiAjNDI0MjQyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMDAwOiAjMTcxNzE3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMTAwOiAjMjEyMTIxO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTEwMDogI2ZmZWVlZTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0yNTA6ICNkZDJjMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMzAwOiAjZmYyMjIyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTQwMDogI2Q1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS02MDA6ICNjYzAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNzAwOiAjZDMyZjJmO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTkwMDogIzU1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS0xMDA6ICNmZmRmY2E7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tMzAwOiAjZmY5OTU3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTQwMDogI2ZmNjQwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS05MDA6ICM4YjM3MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWZvbnRDb2xvci0tbGluazogIzA4NjhhYztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmFja2dyb3VuZENvbG9yLS1ib2R5OiAjZjNmM2YzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0tZXJyb3I6ICNkNTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1zdWNjZXNzOiAjMTFhNjNiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0td2FybjogI2ZmYmEwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLWluZm86ICM0YTRhNGE7XG5cbi8qXG4qKiA9PT09IENPTE9SUyBBUFBMSUVEID09PT1cbiovXG4keHBvLWZvbnRDb2xvci0tcHJpbWFyeTogJHhwby1ncmV5LS05MDA7XG5cbi8qXG4qKiA9PT09IFR5cG9ncmFwaHkgPT09PVxuKi9cbi8vIFB1dHRpbmcgc2l6ZXMgaW4gbWFwcyB0byBhbGxvdyBkeW5hbWljIHNpemluZyBmb3IgZXh0ZXJuYWxcbi8vIFJvb3QgZm9udC1zaXplKHMpIGFsd2F5cyBpbiBweFxuJHhwby1mb250U2l6ZS0tcm9vdDogMTRweDtcbiR4cG8tZm9udFNpemUtLXNtYWxsOiAwLjg3NXJlbTsgLy8xMnB4XG4keHBvLWZvbnRTaXplLS1tZWRpdW06IDFyZW07IC8vMTRweFxuJHhwby1mb250U2l6ZS0tbGFyZ2U6IDEuMTQzcmVtOyAvLzE2cHhcbiR4cG8tZm9udFNpemUtLWV4dHJhTGFyZ2U6IDEuMjg1cmVtOyAvLzE4cHhcbiR4cG8tZm9udFNpemUtLXh4bGFyZ2U6IDEuNzE0cmVtOyAvLzI0cHhcblxuJHhwby1oZWFkZXItZm9udFNpemUtLXhzbWFsbDogMXJlbTsgLy8xNHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tc21hbGw6IDEuMTQzcmVtOyAvLzE2cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1tZWRpdW06IDEuMjg1cmVtOyAvLzE4cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1sYXJnZTogMS40MjhyZW07IC8vMjBweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXhsYXJnZTogMS41NzFyZW07IC8vMjJweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXh4bGFyZ2U6IDEuODU3cmVtOyAvLzI2cHhcblxuJHhwby1mb250RmFtaWx5LS1wcmltYXJ5OiAnUm9ib3RvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XG4keHBvLWZvbnRGYW1pbHktLXJvYm90b1dpZGVCbGFjazogJ1JvYm90byBXaWRlIEJsYWNrJywgJ1JvYm90bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXG4keHBvLWZvbnRXZWlnaHQtLWxpZ2h0OiAzMDA7XG4keHBvLWZvbnRXZWlnaHQtLW5vcm1hbDogNDAwO1xuJHhwby1mb250V2VpZ2h0LS1tZWRpdW06IDUwMDsgLy8gREVQUkVDQVRFRCB8IGRvIG5vdCBkZWxldGUgc2luY2UgaXQgaXMgc3RpbGwgYmVpbmcgdXNlZCBpbiBzb21lIHByb2plY3RzXG4keHBvLWZvbnRXZWlnaHQtLWJvbGQ6IDUwMDtcbiR4cG8tZm9udFdlaWdodC0tZXh0cmFCb2xkOiA2MDA7XG4keHBvLWZvbnRXZWlnaHQtLWJvbGRlcjogNzAwO1xuXG4keHBvLWxpbmVIZWlnaHQtLXhsOiAyLjI4NnJlbTsgLy8gMzJweFxuJHhwby1saW5lSGVpZ2h0LS1sZzogMS43MTRyZW07IC8vIDI0cHhcbiR4cG8tbGluZUhlaWdodC0tbWQ6IDEuNTcxcmVtOyAvLyAyMnB4XG4keHBvLWxpbmVIZWlnaHQtLXNtOiAxLjQyOXJlbTsgLy8gMjBweFxuXG4keHBvLWxpbmVIZWlnaHQtLWJhc2U6IDI0cHg7IC8vIGZvciBtZWRpdW0gYW5kIGxhcmdlIGZvbnQgc2l6ZVxuJHhwby1saW5lSGVpZ2h0LS1tZWRpdW06IDE4cHg7IC8vIGZvciBtZWRpdW0gZm9udCBzaXplc1xuJHhwby1saW5lSGVpZ2h0LS1zbWFsbDogMTZweDsgLy8gZm9yIHNtYWxsIGZvbnQgc2l6ZVxuXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1zbWFsbDogMS4xNDM7IC8vIERFUFJFQ0FURURcbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLW1lZGl1bTogMS4xNDM7IC8vIERFUFJFQ0FURURcbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLWxhcmdlOiAxLjI4NjsgLy8gREVQUkVDQVRFRFxuXG4keHBvLWxldHRlclNwYWNpbmctLWJhc2U6IDAuMnB4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tc21hbGw6IDAuM3B4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbWVkaXVtOiAwLjMzcHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1sYXJnZTogMC4zOHB4O1xuXG4vLyA9PT09IExheW91dCA9PT09XG4keHBvLWNvbnRlbnRTcGFjaW5nOiAxNnB4O1xuXG4vLyBCcmVha3BvaW50c1xuJHhwby1icmVha3BvaW50LS1zbWFsbC14czogNDgwcHg7XG4keHBvLWJyZWFrcG9pbnQtLXNtYWxsOiA2MDBweDtcbiR4cG8tYnJlYWtwb2ludC0tbWVkaXVtOiA3NjhweDtcbiR4cG8tYnJlYWtwb2ludC0tbGFyZ2U6IDEwMjVweDtcbiR4cG8tYnJlYWtwb2ludC0teExhcmdlOiAxNDQwcHg7XG5cbiR4cG8tc2VsZWN0LWJhY2tncm91bmRDb2xvci1vcHRpb25PbkhvdmVyOiAkeHBvLWJsdWUtLTIwMDtcblxuLy8gLS0gTkdYLVVJIFNwZWNpZmljIC0tXG4kbmd4LWZvb3Rlci1oZWlnaHQ6IDQycHg7XG4kbmd4LXRhYi1oZWFkZXItaGVpZ2h0OiA0MHB4O1xuJG5neC10YWJsZS1yb3ctaGVpZ2h0OiAzMHB4O1xuXG4kbmd4LWljb24tc2l6ZTogMjRweDsgLy8gVE9ETzogRGVwcmVjYXRlIHRoaXMgdmFyaWFibGVcbiR4cG8taWNvbi1zaXplLS1zdGFuZGFyZDogMjBweDtcbiR4cG8taWNvbi1zaXplLS1zbWFsbDogMThweDtcbiR4cG8taWNvbi1zaXplLS1sYXJnZTogMjRweDtcblxuJG5neC10aGVCbGFja1JvYm90bzogOTAwO1xuXG4keHBvLWlucHV0LWhlaWdodC0tZGVmYXVsdDogMzBweDtcbiR4cG8taW5wdXQtaGVpZ2h0LS10d29MaW5lczogNDVweDtcblxuJG5neC1pbnB1dC1ib3JkZXItd2lkdGg6IDFweDtcblxuJG5neC1pbnB1dC1jb2xvci1vbkhvdmVyOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA7XG4kbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1kYXJrOiAkeHBvLWJsYWNrO1xuJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tbGlnaHQ6ICR4cG8td2hpdGU7XG4kbmd4LWlucHV0LWNvbG9yLWJvcmRlcjogJHhwby1ncmV5LS0zMDA7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1kYXJrOiAkeHBvLWdyZXktLTM1MDtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZS0tbGlnaHRlcjogJHhwby13aGl0ZTtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWxpZ2h0OiAkeHBvLWdyZXktLTgwO1xuXG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0OiAzNnB4O1xuJG5neC1idXR0b24tbGluZUhlaWdodC0tc21hbGw6IDI4cHg7XG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0LS1sYXJnZTogNDZweDtcbiRuZ3gtYnV0dG9uLWFuaW1hdGlvbkR1cmF0aW9uOiAyMDBtcztcblxuJG5neC1oZWFkZXItaGVpZ2h0OiA0MHB4O1xuLy8gRm9yIHVzZSB3aGVuIGEgaG92ZXIgaXMgbmVlZGVkIG9uIGEgd2hpdGUgYmFja2dyb3VuZC5cbiRuZ3gtd2hpdGVBZmZvcmRhbmNlLW9uSG92ZXItY29sb3I6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDtcblxuJG5neC1tZW51LWJhY2tncm91bmRDb2xvcjogJHhwby13aGl0ZTtcblxuLypcbioqID09PT0gU05BQ0tCQVIgREVQUkVDQVRFRCBWQVJJQUJMRVMgPT09PVxuKi9cblxuLypcbioqIFdBUk5JTkc6IFRISVMgVkFSSUFCTEVTIFdJTEwgQkUgUkVNT1ZFRCBTT09OXG4qL1xuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLXN1Y2Nlc3M6ICR4cG8tZ3JlZW4tLTQ1MDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLWVycm9yOiAkeHBvLXJlZC0tMTUwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0taW5mbzogIzAyODhkMTtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLXdhcm46ICNmYmMwMmQ7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0tc3VjY2VzczogJHhwby1ncmVlbi0tNjAwO1xuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1lcnJvcjogJHhwby1yZWQtLTIwMDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1pbmZvOiAjMDE1NzliO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrQmFyLW1hcmdpblRvcDogMzJweDtcblxuLy9CYWRnZVxuJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1uZWdhdGl2ZTogJHhwby1yZWQtLTUwO1xuJF9tYXRCYWRnZUNvbnRlbnQtY29sb3ItLW5lZ2F0aXZlOiAjZGQyYzAwO1xuJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1wb3NpdGl2ZTogJHhwby1ncmVlbi0tNTA7XG5cbiRuZ3gtbWVudS1iYWNrZ3JvdW5kQ29sb3Itb25Ib3ZlcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTA7XG4vLyBVc2VkIGFzIGEgc3BhY2VyIGZvciBmbGV4ZWQgY2hpbGRyZW5cbi8vIFRPRE86IE1vdmUgYWxsIGluc3RhbmNlcyB0byB0aGUgdXRpbGl0aWVzIGRlZmluaXRpb25cbi5mbGV4LS1zdHJldGNoIHtcbiAgZmxleDogMTtcbn1cblxuLy8gLS0tIERpYWxvZyAtLS1cbiRuZ3gtZGlhbG9nLWhlYWRlci1oZWlnaHQ6IDQ4cHg7XG4kbmd4LWRpYWxvZy1mb290ZXItaGVpZ2h0OiA2NHB4O1xuXG4vLyAtLS0gVHJhbnNpdGlvbnMgLS0tXG4keHBvLXRyYW5zaXRpb24tMjAwOiBhbGwgMjAwbXMgZWFzZS1vdXQ7XG5cbi8vIC0tLSBDb250ZXh0dWFsIEhlYWRlciAtLS1cbiRuZ3gtQ29udGV4dHVhbEhlYWRlci1zZXBhcmF0b3ItLWNvbG9yOiAkeHBvLWdyZXktLTM1MDtcblxuXG4vLy9cbi8vIE92ZXJyaWRlcyBmb3IgdGhlIHRvb2x0aXBcbi8vL1xuXG4keHBvLXRvb2x0aXAtYXJyb3ctbWFyZ2luOiAxOHB4O1xuJHhwby10b29sdGlwLWFycm93LXdpZHRoOiAxMHB4O1xuJHhwby10b29sdGlwLWFycm93LWhlaWdodDogMTBweDtcblxuQG1peGluIHhwby10b29sdGlwLXRoZW1lKCR0aGVtZSkge1xuICAuY2RrLW92ZXJsYXktY29udGFpbmVyIHtcbiAgICAubWF0LXRvb2x0aXAtcGFuZWwge1xuICAgICAgLm1hdC10b29sdGlwIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHhwby1ncmV5LS0xMTAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHhwby13aGl0ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG4gICAgICAgIC8vIG5lZWQgdG8gdXNlIHNhbWUgZm9udC1zaXplIGZvciBsaW5lLWhlaWdodFxuICAgICAgICAvLyB0byBrZWVwIHRoZSBzcGFjZXMgYmV0d2VlbiB0ZXh0IGFuZCBib3ggYm9yZGVyIGFzIHRoZXkgYXJlIGluIHRoZSB2aXN1YWwgc3BlY3NcbiAgICAgICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tbWVkaXVtO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgcGFkZGluZzogJHhwby1jb250ZW50U3BhY2luZztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XG4gICAgICB9XG5cbiAgICAgIC8vXG4gICAgICAvLyBTZWxlY3RvcnMgdG8gZmluZCB0aGUgZWxlbWVudCB0aGF0IGlzIHBvc2l0aW9uZWQgXCJhYm92ZVwiLCBcImJlbG93XCIsIFwiYmVmb3JlXCIsIFwiYWZ0ZXJcIiwgXCJyaWdodFwiIG9yIFwibGVmdFwiXG4gICAgICAvLyBUaGlzIGlzIGEgY29tYmluYXRpb24gYmV0d2VlbiB0aGUgLm1hdC10b29sdGlwLXBhbmVsIGFuZCAubWF0LXRvb2x0aXAgaW5saW5lIHN0eWxlXG4gICAgICAvL1xuXG4gICAgICAvLyBUaGlzIHNlbGVjdG9yIGxldCB1cyBmaW5kIHRoZSBwb3NpdGlvbiBcImFib3ZlXCJcbiAgICAgICZbc3R5bGUqPSdib3R0b20nXVtzdHlsZSo9J2xlZnQnXSB7XG5cbiAgICAgICAgLy8gU2VsZWN0b3IgdG8gZmluZCB0aGUgZWxlbWVudCBwb3NpdGlvbmVkOiBcImFib3ZlXCJcbiAgICAgICAgLm1hdC10b29sdGlwW3N0eWxlKj0nY2VudGVyJ11bc3R5bGUqPSdib3R0b20nXSB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHhwby10b29sdGlwLWFycm93LW1hcmdpbjtcblxuICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogJHhwby10b29sdGlwLWFycm93LXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkeHBvLXRvb2x0aXAtYXJyb3ctd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkeHBvLXRvb2x0aXAtYXJyb3ctaGVpZ2h0IHNvbGlkICR4cG8tZ3JleS0tMTEwMDtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFRoaXMgc2VsZWN0b3IgbGV0IHVzIGZpbmQgdGhlIHBvc2l0aW9ucyBcImJlbG93XCIsIFwiYWZ0ZXJcIiwgXCJyaWdodFwiXG4gICAgICAmW3N0eWxlKj0ndG9wJ11bc3R5bGUqPSdsZWZ0J10ge1xuXG4gICAgICAgIC8vIFNlbGVjdG9yIHRvIGZpbmQgdGhlIGVsZW1lbnQgcG9zaXRpb25lZDogXCJiZWxvd1wiXG4gICAgICAgIC5tYXQtdG9vbHRpcFtzdHlsZSo9J2NlbnRlciddW3N0eWxlKj0ndG9wJ10ge1xuICAgICAgICAgIG1hcmdpbi10b3A6ICR4cG8tdG9vbHRpcC1hcnJvdy1tYXJnaW47XG5cbiAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJHhwby10b29sdGlwLWFycm93LWhlaWdodCBzb2xpZCAkeHBvLWdyZXktLTExMDA7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogJHhwby10b29sdGlwLWFycm93LXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkeHBvLXRvb2x0aXAtYXJyb3ctd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICAgICAgYm90dG9tOiAxMDAlO1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyAvLyBTZWxlY3RvciB0byBmaW5kIHRoZSBlbGVtZW50IHBvc2l0aW9uZWQ6ICBcImFmdGVyXCIsIFwicmlnaHRcIlxuICAgICAgICAubWF0LXRvb2x0aXBbc3R5bGUqPSdjZW50ZXInXVtzdHlsZSo9J2xlZnQnXSB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6ICR4cG8tdG9vbHRpcC1hcnJvdy1tYXJnaW47XG5cbiAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJHhwby10b29sdGlwLWFycm93LXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6ICR4cG8tdG9vbHRpcC1hcnJvdy1oZWlnaHQgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICR4cG8tdG9vbHRpcC1hcnJvdy1oZWlnaHQgc29saWQgJHhwby1ncmV5LS0xMTAwO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHhwby10b29sdGlwLWFycm93LXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogMTAwJTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIC8vIFNlbGVjdG9yIHRvIGZpbmQgdGhlIGVsZW1lbnQgcG9zaXRpb25lZDogXCJiZWZvcmVcIiwgXCJsZWZ0XCJcbiAgICAgICZbc3R5bGUqPSd0b3AnXVtzdHlsZSo9J3JpZ2h0J10ge1xuXG4gICAgICAgIC8vcG9zaXRpb24gYmVmb3JlLCBsZWZ0XG4gICAgICAgIC5tYXQtdG9vbHRpcFtzdHlsZSo9J2NlbnRlciddW3N0eWxlKj0ncmlnaHQnXSB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkeHBvLXRvb2x0aXAtYXJyb3ctbWFyZ2luO1xuXG4gICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJHhwby10b29sdGlwLWFycm93LXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6ICR4cG8tdG9vbHRpcC1hcnJvdy1oZWlnaHQgc29saWQgJHhwby1ncmV5LS0xMTAwO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkeHBvLXRvb2x0aXAtYXJyb3ctaGVpZ2h0IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHhwby10b29sdGlwLWFycm93LXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1zbWFsbCgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tc21hbGw7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1zbWFsbDtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLXNtYWxsO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC1oZWFkZXItLW1lZGl1bSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbWVkaXVtO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbWVkaXVtO1xuICBsaW5lLWhlaWdodDogJHhwby1oZWFkZXItbGluZUhlaWdodC0tbWVkaXVtO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC1oZWFkZXItLWxhcmdlKCkge1xuICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1sYXJnZTtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLWxhcmdlO1xuICBsaW5lLWhlaWdodDogJHhwby1oZWFkZXItbGluZUhlaWdodC0tbGFyZ2U7XG59XG5cbi8vIFJlZ3VsYXIgdGV4dCBtaXhpbnNcbkBtaXhpbiBUZXh0VHJlYXRtZW50LS1zbWFsbCgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1zbWFsbDtcbiAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc21hbGw7XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LS1tZWRpdW0oKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tbGFyZ2UoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbGFyZ2U7XG59XG5cblxuLypcbioqID09PT0gQmFzaWMgY29sb3JzID09PT1cbiovXG5cbi8qXG4qKiA9PT09IFhQTyBCcmFuZCBDb2xvciBQYWxldHRlID09PT1cbiovXG5cbi8vIFhQTyBSZWRcbiR4cG8tYnJhbmQtcmVkOiAjY2MwMDAwO1xuJHhwby1icmFuZC1yZWQtLTkwMDogJHhwby1icmFuZC1yZWQ7XG4keHBvLWJyYW5kLXJlZC0tODAwOiAjZTQyMTBlO1xuJHhwby1icmFuZC1yZWQtLTcwMDogI2YzMmExMztcbiR4cG8tYnJhbmQtcmVkLS02MDA6ICNmZjMzMTc7XG4keHBvLWJyYW5kLXJlZC0tNTAwOiAjZmYzOTFjO1xuJHhwby1icmFuZC1yZWQtLTQwMDogI2ZmNWUzZDtcbiR4cG8tYnJhbmQtcmVkLS0zMDA6ICNmZjdlNjA7XG4keHBvLWJyYW5kLXJlZC0tMjAwOiAjZmZhNDhlO1xuJHhwby1icmFuZC1yZWQtLTEwMDogI2ZmYzhiYTtcbiR4cG8tYnJhbmQtcmVkLS01MDogI2ZjZThlNjtcblxuLy8gWFBPIEJsYWNrXG4keHBvLWJsYWNrOiAjMDAwMDAwO1xuJHhwby1icmFuZC1ibGFjay0tOTAwOiAkeHBvLWJsYWNrO1xuJHhwby1icmFuZC1ibGFjay0tODAwOiAjMjYyNjI2O1xuJHhwby1icmFuZC1ibGFjay0tNzAwOiAjNTU1NTU1O1xuJHhwby1icmFuZC1ibGFjay0tNjAwOiAjN2I3YjdiO1xuJHhwby1icmFuZC1ibGFjay0tNTAwOiAjOWQ5ZDlkO1xuJHhwby1icmFuZC1ibGFjay0tNDAwOiAjOWQ5ZDlkO1xuJHhwby1icmFuZC1ibGFjay0tMzAwOiAjYzRjNGM0O1xuJHhwby1icmFuZC1ibGFjay0tMjAwOiAjZDlkOWQ5O1xuJHhwby1icmFuZC1ibGFjay0tMTAwOiAjZTllOWU5O1xuJHhwby1icmFuZC1ibGFjay0tNTA6ICNmNWY1ZjU7XG5cbi8vIFhQTyBEYXJrIEdyZXlcbiR4cG8tYnJhbmQtZGFyay1ncmV5OiAjNDE0YTRjO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTkwMDogIzIyMjgyYjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS04MDA6ICR4cG8tYnJhbmQtZGFyay1ncmV5O1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTcwMDogIzYyNjg2YztcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS02MDA6ICM3NTdkODE7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNTAwOiAjYTBhNmFhO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTQwMDogI2JlYzVjOTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0zMDA6ICNlMGU3ZWI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMjAwOiAjZWJmMmY2O1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTEwMDogI2YwZjdmYjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS01MDogI2Y0ZmNmZjtcblxuLy8gWFBPIE1lZGl1bSBHcmV5XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5OiAjODQ4NDg0O1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tOTAwOiAjMmUyZTJlO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tODAwOiAjNTA1MDUwO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNzAwOiAjNzA3MDcwO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNjAwOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5O1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTAwOiAjYWZhZmFmO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNDAwOiAjY2RjZGNkO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMzAwOiAjZWVlZWVlO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMjAwOiAjZjNmM2YzO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMTAwOiAjZjhmOGY4O1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTA6ICNmY2ZjZmM7XG5cbi8vIFhQTyBMaWdodCBHcmV5XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXk6ICNkZWRlZGU7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTkwMDogIzFmMWYxZjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tODAwOiAjM2YzZjNmO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS03MDA6ICM1ZTVlNWU7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTYwMDogIzcyNzI3MjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNTAwOiAjOWE5YTlhO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS00MDA6ICNiYWJhYmE7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTMwMDogJHhwby1icmFuZC1saWdodC1ncmV5O1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0yMDA6ICNlY2VjZWM7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTEwMDogI2Y0ZjRmNDtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNTA6ICNmOWY5Zjk7XG5cbi8qXG4qKiA9PT09IE1haW4gQ29sb3IgUGFsZXR0ZSA9PT09XG4qL1xuXG4vLyBCbGFjayBhbmQgR3JleVxuJHhwby1ncmV5LS05NzU6ICMyMTIxMjE7XG4keHBvLWdyZXktLTk1MDogIzMzMzMzMztcbiR4cG8tZ3JleS0tOTAwOiAjNGE0YTRhO1xuJHhwby1ncmV5LS03MDA6ICM2ZjZmNmY7XG4keHBvLWdyZXktLTM1MDogI2JkYmRiZDtcbiR4cG8tZ3JleS0tMzAwOiAjZDhkOGQ4O1xuJHhwby1ncmV5LS04MDogI2Y2ZjZmNjtcbiR4cG8tZ3JleS0tMjU6ICNmYWZhZmE7XG5cbiR4cG8td2hpdGU6ICNmZmZmZmY7XG5cbi8vIExpbmtzLCBCdXR0b25zLCBUYWJzZXQgYW5kIFRhYnBpbGxzXG4keHBvLWJsdWUtLTg1MDogIzBkNDdhMTtcbiR4cG8tYmx1ZS0tODAwOiAjMTk3NmQyO1xuJHhwby1ibHVlLS0zNTA6ICMyMTk2ZjM7XG5cbi8vIEVycm9yIFN0YXRlXG4keHBvLXJlZC0tMjAwOiAjYjcxYzFjO1xuJHhwby1yZWQtLTE1MDogI2QzMmYyZjtcbiR4cG8tcmVkLS01MDogI2ZjZWVlYjtcblxuLy8gU3VjY2VzcyBTdGF0ZVxuJHhwby1ncmVlbi0tNjAwOiAjMzg4ZTNjO1xuJHhwby1ncmVlbi0tNDUwOiAjNGNhZjUwO1xuJHhwby1ncmVlbi0tNTA6ICNmMWY5ZjE7XG5cbi8vIFdhcm5pbmcgU3RhdGVcbiR4cG8teWVsbG93LS0zNTA6ICNmZmQ2MDA7XG5cbiR4cG8tb3JhbmdlLS0zNTA6ICNmZjZkMDA7XG5cbi8vIEluZm8gU3RhdGVcbiR4cG8tYmx1ZS0tNzAwOiAjMDA5MWVhO1xuXG4vLyBUcmFuc2FjdGlvbmFsIENlbGxzXG4keHBvLWdyZXktLTE1MDogI2VjZWZmMTtcblxuJHhwby1ibHVlR3JleS0tNzAwOiAjY2ZkOGRjO1xuXG4vLyBBY2NlbnQgQ29sb3JzXG4keHBvLXBpbmstLTcwMDogI2M1MTE2MjtcblxuJHhwby10ZWFsLS03MDA6ICMwMGJmYTU7XG5cbiR4cG8tYmx1ZS0tODI1OiAjMzA0ZmZlO1xuJHhwby1ibHVlLS0yMDA6ICNlNGVmZmE7XG5cbiR4cG8tYWNjZW50LXJlZC0tNDAwOiAkeHBvLWJyYW5kLXJlZC0tNDAwO1xuJHhwby1hY2NlbnQtcmVkLS0xMDA6ICR4cG8tYnJhbmQtcmVkLS0xMDA7XG5cbiR4cG8tcHVycGxlLS03MDA6ICM2MjAwZWE7XG5cbiR4cG8tZ3JlZW4tLTIwMDogI2E0ZTU5YjtcblxuJHhwby15ZWxsb3ctLTIwMDogI2ZmZjljNDtcblxuLypcbioqID09PT0gREVQUkVDQVRFRCBDT0xPUlMgPT09PVxuKi9cblxuLypcbioqIFdBUk5JTkc6IFRISVMgVkFSSUFCTEVTIFdJTEwgQkUgUkVNT1ZFRCBTT09OXG4qL1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0xMDA6ICNlOGY1ZmU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTE1MDogI2UzZjJmZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMzAwOiAjMGQ5NGY0O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS00MDA6ICMwODY4YWM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTkwMDogIzA1M2M2Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS0xMDA6ICNmZmY4ZTU7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tMzAwOiAjZmZjZjRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTQwMDogI2ZmYmEwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS03MDA6ICNmZmQ2MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tOTAwOiAjNGQzODAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tMTAwOiAjYzhmZmRmO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tMzAwOiAjMWNlODU1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tMzUwOiAjMDBjODUzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tNDAwOiAjMTFhNjNiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tNzAwOiAjMDBjODUzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tOTAwOiAjMGE2MTIyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS01MDogI2ZiZmJmYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjA6ICNmYWZhZmE7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTEwMDogI2YzZjNmMztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMjAwOiAjZTZlNmU2O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0yNTA6ICNkZGRkZGQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTQwMDogIzliOWI5Yjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjAwOiAjNzU3NTc1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS02NTA6ICM4NTg1ODU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTc1MDogIzU3NTc1Nztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tOTE1OiAjNDM0OTRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS05MzA6ICM0MjQyNDI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTEwMDA6ICMxNzE3MTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTExMDA6ICMyMTIxMjE7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMTAwOiAjZmZlZWVlO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTI1MDogI2RkMmMwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0zMDA6ICNmZjIyMjI7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNDAwOiAjZDUwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTYwMDogI2NjMDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS03MDA6ICNkMzJmMmY7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tOTAwOiAjNTUwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTEwMDogI2ZmZGZjYTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS0zMDA6ICNmZjk5NTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tNDAwOiAjZmY2NDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTkwMDogIzhiMzcwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZm9udENvbG9yLS1saW5rOiAjMDg2OGFjO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1iYWNrZ3JvdW5kQ29sb3ItLWJvZHk6ICNmM2YzZjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1lcnJvcjogI2Q1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLXN1Y2Nlc3M6ICMxMWE2M2I7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS13YXJuOiAjZmZiYTAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0taW5mbzogIzRhNGE0YTtcblxuLypcbioqID09PT0gQ09MT1JTIEFQUExJRUQgPT09PVxuKi9cbiR4cG8tZm9udENvbG9yLS1wcmltYXJ5OiAkeHBvLWdyZXktLTkwMDtcblxuLypcbioqID09PT0gVHlwb2dyYXBoeSA9PT09XG4qL1xuLy8gUHV0dGluZyBzaXplcyBpbiBtYXBzIHRvIGFsbG93IGR5bmFtaWMgc2l6aW5nIGZvciBleHRlcm5hbFxuLy8gUm9vdCBmb250LXNpemUocykgYWx3YXlzIGluIHB4XG4keHBvLWZvbnRTaXplLS1yb290OiAxNHB4O1xuJHhwby1mb250U2l6ZS0tc21hbGw6IDAuODc1cmVtOyAvLzEycHhcbiR4cG8tZm9udFNpemUtLW1lZGl1bTogMXJlbTsgLy8xNHB4XG4keHBvLWZvbnRTaXplLS1sYXJnZTogMS4xNDNyZW07IC8vMTZweFxuJHhwby1mb250U2l6ZS0tZXh0cmFMYXJnZTogMS4yODVyZW07IC8vMThweFxuJHhwby1mb250U2l6ZS0teHhsYXJnZTogMS43MTRyZW07IC8vMjRweFxuXG4keHBvLWhlYWRlci1mb250U2l6ZS0teHNtYWxsOiAxcmVtOyAvLzE0cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1zbWFsbDogMS4xNDNyZW07IC8vMTZweFxuJHhwby1oZWFkZXItZm9udFNpemUtLW1lZGl1bTogMS4yODVyZW07IC8vMThweFxuJHhwby1oZWFkZXItZm9udFNpemUtLWxhcmdlOiAxLjQyOHJlbTsgLy8yMHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0teGxhcmdlOiAxLjU3MXJlbTsgLy8yMnB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0teHhsYXJnZTogMS44NTdyZW07IC8vMjZweFxuXG4keHBvLWZvbnRGYW1pbHktLXByaW1hcnk6ICdSb2JvdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiR4cG8tZm9udEZhbWlseS0tcm9ib3RvV2lkZUJsYWNrOiAnUm9ib3RvIFdpZGUgQmxhY2snLCAnUm9ib3RvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XG5cbiR4cG8tZm9udFdlaWdodC0tbGlnaHQ6IDMwMDtcbiR4cG8tZm9udFdlaWdodC0tbm9ybWFsOiA0MDA7XG4keHBvLWZvbnRXZWlnaHQtLW1lZGl1bTogNTAwOyAvLyBERVBSRUNBVEVEIHwgZG8gbm90IGRlbGV0ZSBzaW5jZSBpdCBpcyBzdGlsbCBiZWluZyB1c2VkIGluIHNvbWUgcHJvamVjdHNcbiR4cG8tZm9udFdlaWdodC0tYm9sZDogNTAwO1xuJHhwby1mb250V2VpZ2h0LS1leHRyYUJvbGQ6IDYwMDtcbiR4cG8tZm9udFdlaWdodC0tYm9sZGVyOiA3MDA7XG5cbiR4cG8tbGluZUhlaWdodC0teGw6IDIuMjg2cmVtOyAvLyAzMnB4XG4keHBvLWxpbmVIZWlnaHQtLWxnOiAxLjcxNHJlbTsgLy8gMjRweFxuJHhwby1saW5lSGVpZ2h0LS1tZDogMS41NzFyZW07IC8vIDIycHhcbiR4cG8tbGluZUhlaWdodC0tc206IDEuNDI5cmVtOyAvLyAyMHB4XG5cbiR4cG8tbGluZUhlaWdodC0tYmFzZTogMjRweDsgLy8gZm9yIG1lZGl1bSBhbmQgbGFyZ2UgZm9udCBzaXplXG4keHBvLWxpbmVIZWlnaHQtLW1lZGl1bTogMThweDsgLy8gZm9yIG1lZGl1bSBmb250IHNpemVzXG4keHBvLWxpbmVIZWlnaHQtLXNtYWxsOiAxNnB4OyAvLyBmb3Igc21hbGwgZm9udCBzaXplXG5cbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLXNtYWxsOiAxLjE0MzsgLy8gREVQUkVDQVRFRFxuJHhwby1oZWFkZXItbGluZUhlaWdodC0tbWVkaXVtOiAxLjE0MzsgLy8gREVQUkVDQVRFRFxuJHhwby1oZWFkZXItbGluZUhlaWdodC0tbGFyZ2U6IDEuMjg2OyAvLyBERVBSRUNBVEVEXG5cbiR4cG8tbGV0dGVyU3BhY2luZy0tYmFzZTogMC4ycHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1zbWFsbDogMC4zcHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1tZWRpdW06IDAuMzNweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLWxhcmdlOiAwLjM4cHg7XG5cbi8vID09PT0gTGF5b3V0ID09PT1cbiR4cG8tY29udGVudFNwYWNpbmc6IDE2cHg7XG5cbi8vIEJyZWFrcG9pbnRzXG4keHBvLWJyZWFrcG9pbnQtLXNtYWxsLXhzOiA0ODBweDtcbiR4cG8tYnJlYWtwb2ludC0tc21hbGw6IDYwMHB4O1xuJHhwby1icmVha3BvaW50LS1tZWRpdW06IDc2OHB4O1xuJHhwby1icmVha3BvaW50LS1sYXJnZTogMTAyNXB4O1xuJHhwby1icmVha3BvaW50LS14TGFyZ2U6IDE0NDBweDtcblxuJHhwby1zZWxlY3QtYmFja2dyb3VuZENvbG9yLW9wdGlvbk9uSG92ZXI6ICR4cG8tYmx1ZS0tMjAwO1xuXG4vLyAtLSBOR1gtVUkgU3BlY2lmaWMgLS1cbiRuZ3gtZm9vdGVyLWhlaWdodDogNDJweDtcbiRuZ3gtdGFiLWhlYWRlci1oZWlnaHQ6IDQwcHg7XG4kbmd4LXRhYmxlLXJvdy1oZWlnaHQ6IDMwcHg7XG5cbiRuZ3gtaWNvbi1zaXplOiAyNHB4OyAvLyBUT0RPOiBEZXByZWNhdGUgdGhpcyB2YXJpYWJsZVxuJHhwby1pY29uLXNpemUtLXN0YW5kYXJkOiAyMHB4O1xuJHhwby1pY29uLXNpemUtLXNtYWxsOiAxOHB4O1xuJHhwby1pY29uLXNpemUtLWxhcmdlOiAyNHB4O1xuXG4kbmd4LXRoZUJsYWNrUm9ib3RvOiA5MDA7XG5cbiR4cG8taW5wdXQtaGVpZ2h0LS1kZWZhdWx0OiAzMHB4O1xuJHhwby1pbnB1dC1oZWlnaHQtLXR3b0xpbmVzOiA0NXB4O1xuXG4kbmd4LWlucHV0LWJvcmRlci13aWR0aDogMXB4O1xuXG4kbmd4LWlucHV0LWNvbG9yLW9uSG92ZXI6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDtcbiRuZ3gtaW5wdXQtY29sb3Itb25BY3RpdmUtLWRhcms6ICR4cG8tYmxhY2s7XG4kbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1saWdodDogJHhwby13aGl0ZTtcbiRuZ3gtaW5wdXQtY29sb3ItYm9yZGVyOiAkeHBvLWdyZXktLTMwMDtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWRhcms6ICR4cG8tZ3JleS0tMzUwO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlLS1saWdodGVyOiAkeHBvLXdoaXRlO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlZC0tbGlnaHQ6ICR4cG8tZ3JleS0tODA7XG5cbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQ6IDM2cHg7XG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0LS1zbWFsbDogMjhweDtcbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQtLWxhcmdlOiA0NnB4O1xuJG5neC1idXR0b24tYW5pbWF0aW9uRHVyYXRpb246IDIwMG1zO1xuXG4kbmd4LWhlYWRlci1oZWlnaHQ6IDQwcHg7XG4vLyBGb3IgdXNlIHdoZW4gYSBob3ZlciBpcyBuZWVkZWQgb24gYSB3aGl0ZSBiYWNrZ3JvdW5kLlxuJG5neC13aGl0ZUFmZm9yZGFuY2Utb25Ib3Zlci1jb2xvcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMjAwO1xuXG4kbmd4LW1lbnUtYmFja2dyb3VuZENvbG9yOiAkeHBvLXdoaXRlO1xuXG4vKlxuKiogPT09PSBTTkFDS0JBUiBERVBSRUNBVEVEIFZBUklBQkxFUyA9PT09XG4qL1xuXG4vKlxuKiogV0FSTklORzogVEhJUyBWQVJJQUJMRVMgV0lMTCBCRSBSRU1PVkVEIFNPT05cbiovXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0tc3VjY2VzczogJHhwby1ncmVlbi0tNDUwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0tZXJyb3I6ICR4cG8tcmVkLS0xNTA7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1pbmZvOiAjMDI4OGQxO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0td2FybjogI2ZiYzAyZDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1zdWNjZXNzOiAkeHBvLWdyZWVuLS02MDA7XG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLWVycm9yOiAkeHBvLXJlZC0tMjAwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLWluZm86ICMwMTU3OWI7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tCYXItbWFyZ2luVG9wOiAzMnB4O1xuXG4vL0JhZGdlXG4kX21hdEJhZGdlQ29udGVudC1iYWNrZ3JvdW5kQ29sb3ItLW5lZ2F0aXZlOiAkeHBvLXJlZC0tNTA7XG4kX21hdEJhZGdlQ29udGVudC1jb2xvci0tbmVnYXRpdmU6ICNkZDJjMDA7XG4kX21hdEJhZGdlQ29udGVudC1iYWNrZ3JvdW5kQ29sb3ItLXBvc2l0aXZlOiAkeHBvLWdyZWVuLS01MDtcblxuJG5neC1tZW51LWJhY2tncm91bmRDb2xvci1vbkhvdmVyOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS01MDtcbi8vIFVzZWQgYXMgYSBzcGFjZXIgZm9yIGZsZXhlZCBjaGlsZHJlblxuLy8gVE9ETzogTW92ZSBhbGwgaW5zdGFuY2VzIHRvIHRoZSB1dGlsaXRpZXMgZGVmaW5pdGlvblxuLmZsZXgtLXN0cmV0Y2gge1xuICBmbGV4OiAxO1xufVxuXG4vLyAtLS0gRGlhbG9nIC0tLVxuJG5neC1kaWFsb2ctaGVhZGVyLWhlaWdodDogNDhweDtcbiRuZ3gtZGlhbG9nLWZvb3Rlci1oZWlnaHQ6IDY0cHg7XG5cbi8vIC0tLSBUcmFuc2l0aW9ucyAtLS1cbiR4cG8tdHJhbnNpdGlvbi0yMDA6IGFsbCAyMDBtcyBlYXNlLW91dDtcblxuLy8gLS0tIENvbnRleHR1YWwgSGVhZGVyIC0tLVxuJG5neC1Db250ZXh0dWFsSGVhZGVyLXNlcGFyYXRvci0tY29sb3I6ICR4cG8tZ3JleS0tMzUwO1xuXG5cbkBtaXhpbiB4cG8tZXJyb3ItcGFnZXMtdGhlbWUoJHRoZW1lKSB7XG4gIC54cG8tRXJyb3JQYWdlcyB7ICAgIFxuICAgICYtdGl0bGUge1xuICAgICAgJF90aXRsZS1mb250U2l6ZTogMjhweDtcblxuICAgICAgLy8gVE9ETzogdGhpcyB3aWxsIGJlIG5vdCBuZWNlc3Nhcnkgd2hlbiBbTkdYTFRMLTEzMjVdIGlzIHJlc29sdmVkXG4gICAgICBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJF90aXRsZS1mb250U2l6ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgJi1kZXNjcmlwdGlvbiB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkeHBvLWNvbnRlbnRTcGFjaW5nO1xuICAgICAgcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tZXh0cmFMYXJnZTtcbiAgICAgIH1cbiAgICB9XG4gICAgJi1hY3Rpb24ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIG1hcmdpbi1ib3R0b206ICR4cG8tY29udGVudFNwYWNpbmcgKiAyO1xuICAgICAgZ2FwOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgICB9XG4gICAgJi1mb290ZXIge1xuICAgICAgJF9mb290ZXItd2lkdGg6IDEwMCU7XG4gICAgICBcbiAgICAgIHdpZHRoOiAkX2Zvb3Rlci13aWR0aDtcbiAgICB9XG4gIH1cbn1cblxuXG5cbkBtaXhpbiB4cG8tdGltZS1waWNrZXItdGhlbWUoJHRoZW1lKSB7XG4gICRfdGltZVBpY2tlci13aWR0aDogOTZweDtcbiAgJF90aW1lUGlja2VyLW1hcmdpblRvcDogMjRweDtcbiAgJF90aW1lUGlja2VyLW1hcmdpbkJvdHRvbTogNnB4O1xuXG4gIC5tYXQtZm9ybS1maWVsZC10eXBlLXhwby10aW1lLXBpY2tlciAge1xuICAgIHdpZHRoOiAkX3RpbWVQaWNrZXItd2lkdGg7XG4gICAgbWFyZ2luLWJvdHRvbTogJF90aW1lUGlja2VyLW1hcmdpbkJvdHRvbTtcbiAgICBtYXJnaW4tdG9wOiAkX3RpbWVQaWNrZXItbWFyZ2luVG9wO1xuXG4gICAgLnhwby1JY29uIC5tYXQtaWNvbiB7XG4gICAgICBjb2xvcjogJHhwby1ncmV5LS05MDA7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tNDAwOyAvL1RPRE8gRG9lcyBleGlzdCBpbiBmaWdtYSBJIHVzZSB0aGUgc2FtZSBjb2xvciB0byBkYXRlIHJhbmdlLWRhdGUgcmFuZ2UgcGlja2VyXG4gICAgICB9XG4gICAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTkwMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAueHBvLVRpbWVQaWNrZXIge1xuICAgICAgJjpmb2N1cy13aXRoaW4ge1xuICAgICAgICBib3JkZXI6IHNvbGlkIDFweCAkeHBvLWJsYWNrO1xuICAgICAgfVxuICAgICAgJi5uZy10b3VjaGVkLm5nLWludmFsaWQge1xuICAgICAgICBib3JkZXI6IHNvbGlkIDFweCAkeHBvLXJlZC0tMTUwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtaW5wdXQtZWxlbWVudDpkaXNhYmxlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTEwMDtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLW5vcm1hbDtcbiAgICAgIH4ueHBvLUljb24gLm1hdC1pY29uIHtcbiAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tMzUwO1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICB9XG4gICAgfVxuICAgICYubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgfVxuICAgIFxuICAgICYubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIGhlaWdodDogdW5zZXQ7XG4gICAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbWFsbDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLWhhcy1sYWJlbFxuICAgICAgLm1hdC1mb3JtLWZpZWxkLWZsZXhcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgJF90aW1lUGlja2VyLWhlaWdodDogMjBweDtcblxuICAgICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc207XG4gICAgICBoZWlnaHQ6ICRfdGltZVBpY2tlci1oZWlnaHQ7XG4gICAgfVxuICAgICYubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwgLm1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlciB7XG4gICAgICBjb2xvcjogJHhwby1yZWQtLTE1MDtcbiAgICB9XG4gICAgLm1hdC1lcnJvciB7XG4gICAgICBjb2xvcjogJHhwby1yZWQtLTE1MDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLXNtYWxsO1xuICAgICAgZ2FwOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xuICAgICAgd2lkdGg6ICRfdGltZVBpY2tlci13aWR0aDtcblxuICAgICAgLnhwby1JY29uIC5tYXQtaWNvbiB7XG4gICAgICAgIGNvbG9yOiAkeHBvLXJlZC0tMTUwO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIH1cbiAgICAgID4gLm1hdC1pY29uIHtcbiAgICAgICAgY29sb3I6ICR4cG8tcmVkLS0xNTA7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBmb250LXNpemU6ICR4cG8taWNvbi1zaXplLS1zdGFuZGFyZDtcbiAgICAgICAgaGVpZ2h0OiAkeHBvLWljb24tc2l6ZS0tc3RhbmRhcmQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwubWF0LWF1dG9jb21wbGV0ZS12aXNpYmxlLnhwby1UaW1lUGlja2VyLXBhbmVsIHtcbiAgICAkX3RpbWVQaWNrZXItcmlnaHQ6IDFweDtcbiAgICAkX3RpbWVQaWNrZXItdG9wOiAtMXB4O1xuICAgIGJvcmRlcjogc29saWQgMXB4ICR4cG8tYmxhY2s7XG4gICAgbWluLXdpZHRoOiAkX3RpbWVQaWNrZXItd2lkdGg7XG4gICAgcmlnaHQ6ICRfdGltZVBpY2tlci1yaWdodDtcbiAgICB0b3A6ICRfdGltZVBpY2tlci10b3A7XG4gICAgd2lkdGg6ICRfdGltZVBpY2tlci13aWR0aDtcbiAgXG4gICAgLm1hdC1vcHRpb24ge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgY29sb3I6ICR4cG8tZ3JleS0tOTAwO1xuICAgICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc207XG5cbiAgICAgICYubWF0LWFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR4cG8tYmx1ZS0tMjAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8vIENyZWF0ZSBhIHRoZW1lLlxuQG1peGluIHhwby1tYXRlcmlhbC1pbnRlcm5hbC10aGVtZSgkdGhlbWUpIHtcbiAgQGluY2x1ZGUgeHBvLW1hdC1jb3JlLXRoZW1lKCR0aGVtZSk7XG5cbiAgQGluY2x1ZGUgeHBvLWNhcmQtdGhlbWUoJHRoZW1lKTtcblxuICBAaW5jbHVkZSB4cG8tYnV0dG9uLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby1hcHBsaWNhdGlvblN3aXRjaGVyLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby1hdXRvY29tcGxldGUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLWJhZGdlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby1idXR0b24tdG9nZ2xlLWdyb3VwLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby1jaGVja2JveC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tY2hpcHMtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLWNvbnRleHR1YWwtaGVhZGVyLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby1kYXRlUGlja2VyLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby1kYXRlLXJhbmdlLXBpY2tlci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tZGlhbG9nLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby1leHBhbnNpb24tcGFuZWwtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLWZvcm0tZmllbGQtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLWlucHV0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby1saW5rLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby1tZW51LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby1tdWx0aS1zZWxlY3QtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLXNuYWNrLWJhci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tdGFibGUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLXRhYnMtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLXJhZGlvLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby1zZWxlY3QtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLXNsaWRlLXRvZ2dsZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tc3BlY2lhbC1zdGF0dXMtaW5kaWNhdG9ycy10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tdHJheS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tdG9vbHRpcC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tZXJyb3ItcGFnZXMtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLXRpbWUtcGlja2VyLXRoZW1lKCR0aGVtZSk7XG5cbiAgLy8gWHBvIENvbXBvbmVudCB0aGVtZXNcbiAgQGluY2x1ZGUgeHBvLWRvd25sb2FkLWJ1dHRvbi10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8taGVhZGVyLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby10YWItZHJhd2VyLXRoZW1lKCR0aGVtZSk7XG5cbiAgLy8gTWF0ZXJpYWwgdGhlbWVzIHRoYXQgZG9udCBuZWVkIG92ZXJyaWRlcyBzaW5jZSB0aGV5IG1hdGNoIG91ciBzdHlsZSBhbHJlYWR5XG4gIEBpbmNsdWRlIG1hdC1wcm9ncmVzcy1iYXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXByb2dyZXNzLXNwaW5uZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNpZGVuYXYtdGhlbWUoJHRoZW1lKTtcblxuICAvLyBUT0RPOiByZW1vdmUgd2hlbiB4cG8tdGhlbWVkXG4gIEBpbmNsdWRlIG1hdC10b29sdGlwLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1iYWRnZS10aGVtZSgkdGhlbWUpO1xuXG4gIG1hdC1kaWFsb2ctY29udGFpbmVyLm1hdC1kaWFsb2ctY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbi8vIFRPRE86IGludHJvZHVjZSBvdXIgZ3JleXM/XG4kZGFyay1wcmltYXJ5LXRleHQ6IHJnYmEoYmxhY2ssIDAuODcpO1xuJGRhcmstc2Vjb25kYXJ5LXRleHQ6IHJnYmEoYmxhY2ssIDAuNTQpO1xuJGRhcmstZGlzYWJsZWQtdGV4dDogcmdiYShibGFjaywgMC4zOCk7XG4kZGFyay1kaXZpZGVyczogcmdiYShibGFjaywgMC4xMik7XG4kZGFyay1mb2N1c2VkOiByZ2JhKGJsYWNrLCAwLjEyKTtcblxuJGxpZ2h0LXByaW1hcnktdGV4dDogd2hpdGU7XG4kbGlnaHQtc2Vjb25kYXJ5LXRleHQ6IHJnYmEod2hpdGUsIDAuNyk7XG4kbGlnaHQtZGlzYWJsZWQtdGV4dDogcmdiYSh3aGl0ZSwgMC41KTtcbiRsaWdodC1kaXZpZGVyczogcmdiYSh3aGl0ZSwgMC4xMik7XG4kbGlnaHQtZm9jdXNlZDogcmdiYSh3aGl0ZSwgMC4xMik7XG5cbiR4cG8tZ3JleS0tOTUwOiAjMzMzMzMzOyAvLyBUT0RPOiB0aGlzIGlzIHdoYXQgaXMgc3BlYydkIG91dCBmb3IgZGFyayBjYXJkIGJhY2tncm91bmRzLCBidXQgaXRzIG5vdCBpbiBvdXIgdmFyIGxpc3RcblxuJHhwby1ibHVlLXBhbGV0dGU6IChcbiAgMTAwOiAkeHBvLWJsdWUtLTEwMCxcbiAgMzAwOiAkeHBvLWJsdWUtLTEwMCxcbiAgNDAwOiAkeHBvLWJsdWUtLTQwMCxcbiAgOTAwOiAkeHBvLWJsdWUtLTkwMCxcbiAgY29udHJhc3Q6IChcbiAgICAxMDA6ICR4cG8td2hpdGUsXG4gICAgMzAwOiAkeHBvLXdoaXRlLFxuICAgIDQwMDogJHhwby13aGl0ZSxcbiAgICA5MDA6ICR4cG8td2hpdGUsXG4gICksXG4pO1xuXG4keHBvLWdyZXktcGFsZXR0ZTogKFxuICAxMDA6ICR4cG8tZ3JleS0tMTAwLFxuICAzMDA6ICR4cG8tZ3JleS0tMzAwLFxuICA0MDA6ICR4cG8tZ3JleS0tNDAwLFxuICA5MDA6ICR4cG8tZ3JleS0tOTAwLFxuICBjb250cmFzdDogKFxuICAgIDEwMDogJHhwby1ncmV5LS05MDAsXG4gICAgMzAwOiAkeHBvLWdyZXktLTkwMCxcbiAgICA0MDA6ICR4cG8tZ3JleS0tOTAwLFxuICAgIDkwMDogJHhwby13aGl0ZSxcbiAgKSxcbik7XG5cbiR4cG8tcmVkLXBhbGV0dGU6IChcbiAgMTAwOiAkeHBvLXJlZC0tMTAwLFxuICAzMDA6ICR4cG8tcmVkLS0zMDAsXG4gIDQwMDogJHhwby1yZWQtLTQwMCxcbiAgOTAwOiAkeHBvLXJlZC0tOTAwLFxuICBjb250cmFzdDogKFxuICAgIDEwMDogJHhwby13aGl0ZSxcbiAgICAzMDA6ICR4cG8td2hpdGUsXG4gICAgNDAwOiAkeHBvLXdoaXRlLFxuICAgIDkwMDogJHhwby13aGl0ZSxcbiAgKSxcbik7XG5cbi8vIEJhY2tncm91bmQgcGFsZXR0ZSBmb3IgbGlnaHQgdGhlbWVzLlxuJHhwby1saWdodC10aGVtZS1iYWNrZ3JvdW5kOiAoXG4gIHN0YXR1cy1iYXI6IG1hcF9nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBhcHAtYmFyOiAkeHBvLXdoaXRlLFxuICBiYWNrZ3JvdW5kOiAkeHBvLWJhY2tncm91bmRDb2xvci0tYm9keSxcbiAgaG92ZXI6IHJnYmEoYmxhY2ssIDAuMDQpLFxuICBjYXJkOiB3aGl0ZSxcbiAgZGlhbG9nOiB3aGl0ZSxcbiAgZGlzYWJsZWQtYnV0dG9uOiByZ2JhKGJsYWNrLCAwLjEyKSxcbiAgcmFpc2VkLWJ1dHRvbjogd2hpdGUsXG4gIGZvY3VzZWQtYnV0dG9uOiAkZGFyay1mb2N1c2VkLFxuICBzZWxlY3RlZC1idXR0b246IG1hcF9nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBzZWxlY3RlZC1kaXNhYmxlZC1idXR0b246IG1hcF9nZXQoJG1hdC1ncmV5LCA0MDApLFxuICBkaXNhYmxlZC1idXR0b24tdG9nZ2xlOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMjAwKSxcbiAgdW5zZWxlY3RlZC1jaGlwOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMzAwKSxcbiAgZGlzYWJsZWQtbGlzdC1vcHRpb246IG1hcF9nZXQoJG1hdC1ncmV5LCAyMDApLFxuKTtcblxuLy8gQmFja2dyb3VuZCBwYWxldHRlIGZvciBkYXJrIHRoZW1lcy5cbiR4cG8tZGFyay10aGVtZS1iYWNrZ3JvdW5kOiAoXG4gIHN0YXR1cy1iYXI6IGJsYWNrLFxuICBhcHAtYmFyOiAkeHBvLWdyZXktLTk1MCxcbiAgYmFja2dyb3VuZDogJHhwby1ncmV5LS0xMDAwLFxuICBob3ZlcjogcmdiYSh3aGl0ZSwgMC4wNCksXG4gIGNhcmQ6ICR4cG8tZ3JleS0tOTUwLFxuICBkaWFsb2c6ICR4cG8tZ3JleS0tOTUwLFxuICBkaXNhYmxlZC1idXR0b246IHJnYmEod2hpdGUsIDAuMTIpLFxuICByYWlzZWQtYnV0dG9uOiAkeHBvLWdyZXktLTk1MCxcbiAgZm9jdXNlZC1idXR0b246ICRsaWdodC1mb2N1c2VkLFxuICBzZWxlY3RlZC1idXR0b246IG1hcF9nZXQoJG1hdC1ncmV5LCA5MDApLFxuICBzZWxlY3RlZC1kaXNhYmxlZC1idXR0b246ICR4cG8tZ3JleS0tOTUwLFxuICBkaXNhYmxlZC1idXR0b24tdG9nZ2xlOiBibGFjayxcbiAgdW5zZWxlY3RlZC1jaGlwOiBtYXBfZ2V0KCRtYXQtZ3JleSwgNzAwKSxcbiAgZGlzYWJsZWQtbGlzdC1vcHRpb246IGJsYWNrLFxuKTtcblxuLy8gRm9yZWdyb3VuZCBwYWxldHRlIGZvciBsaWdodCB0aGVtZXMuXG4keHBvLWxpZ2h0LXRoZW1lLWZvcmVncm91bmQ6IChcbiAgYmFzZTogYmxhY2ssXG4gIGRpdmlkZXI6ICRkYXJrLWRpdmlkZXJzLFxuICBkaXZpZGVyczogJGRhcmstZGl2aWRlcnMsXG4gIGRpc2FibGVkOiAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBkaXNhYmxlZC1idXR0b246IHJnYmEoYmxhY2ssIDAuMjYpLFxuICBkaXNhYmxlZC10ZXh0OiAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBlbGV2YXRpb246IGJsYWNrLFxuICBoaW50LXRleHQ6ICRkYXJrLWRpc2FibGVkLXRleHQsXG4gIHNlY29uZGFyeS10ZXh0OiAkZGFyay1zZWNvbmRhcnktdGV4dCxcbiAgaWNvbjogcmdiYShibGFjaywgMC41NCksXG4gIGljb25zOiByZ2JhKGJsYWNrLCAwLjU0KSxcbiAgdGV4dDogcmdiYShibGFjaywgMC44NyksXG4gIHNsaWRlci1taW46IHJnYmEoYmxhY2ssIDAuODcpLFxuICBzbGlkZXItb2ZmOiByZ2JhKGJsYWNrLCAwLjI2KSxcbiAgc2xpZGVyLW9mZi1hY3RpdmU6IHJnYmEoYmxhY2ssIDAuMzgpLFxuKTtcblxuLy8gRm9yZWdyb3VuZCBwYWxldHRlIGZvciBkYXJrIHRoZW1lcy5cbiR4cG8tZGFyay10aGVtZS1mb3JlZ3JvdW5kOiAoXG4gIGJhc2U6IHdoaXRlLFxuICBkaXZpZGVyOiAkbGlnaHQtZGl2aWRlcnMsXG4gIGRpdmlkZXJzOiAkbGlnaHQtZGl2aWRlcnMsXG4gIGRpc2FibGVkOiAkbGlnaHQtZGlzYWJsZWQtdGV4dCxcbiAgZGlzYWJsZWQtYnV0dG9uOiByZ2JhKHdoaXRlLCAwLjMpLFxuICBkaXNhYmxlZC10ZXh0OiAkbGlnaHQtZGlzYWJsZWQtdGV4dCxcbiAgZWxldmF0aW9uOiBibGFjayxcbiAgaGludC10ZXh0OiAkbGlnaHQtZGlzYWJsZWQtdGV4dCxcbiAgc2Vjb25kYXJ5LXRleHQ6ICRsaWdodC1zZWNvbmRhcnktdGV4dCxcbiAgaWNvbjogd2hpdGUsXG4gIGljb25zOiB3aGl0ZSxcbiAgdGV4dDogd2hpdGUsXG4gIHNsaWRlci1taW46IHdoaXRlLFxuICBzbGlkZXItb2ZmOiByZ2JhKHdoaXRlLCAwLjMpLFxuICBzbGlkZXItb2ZmLWFjdGl2ZTogcmdiYSh3aGl0ZSwgMC4zKSxcbik7XG5cbi8vIFRPRE86IGludHJvZHVjZSBvdXIgZ3JleXM/XG4kZGFyay1wcmltYXJ5LXRleHQ6IHJnYmEoYmxhY2ssIDAuODcpO1xuJGRhcmstc2Vjb25kYXJ5LXRleHQ6IHJnYmEoYmxhY2ssIDAuNTQpO1xuJGRhcmstZGlzYWJsZWQtdGV4dDogcmdiYShibGFjaywgMC4zOCk7XG4kZGFyay1kaXZpZGVyczogcmdiYShibGFjaywgMC4xMik7XG4kZGFyay1mb2N1c2VkOiByZ2JhKGJsYWNrLCAwLjEyKTtcblxuJGxpZ2h0LXByaW1hcnktdGV4dDogd2hpdGU7XG4kbGlnaHQtc2Vjb25kYXJ5LXRleHQ6IHJnYmEod2hpdGUsIDAuNyk7XG4kbGlnaHQtZGlzYWJsZWQtdGV4dDogcmdiYSh3aGl0ZSwgMC41KTtcbiRsaWdodC1kaXZpZGVyczogcmdiYSh3aGl0ZSwgMC4xMik7XG4kbGlnaHQtZm9jdXNlZDogcmdiYSh3aGl0ZSwgMC4xMik7XG5cbiR4cG8tZ3JleS0tOTUwOiAjMzMzMzMzOyAvLyBUT0RPOiB0aGlzIGlzIHdoYXQgaXMgc3BlYydkIG91dCBmb3IgZGFyayBjYXJkIGJhY2tncm91bmRzLCBidXQgaXRzIG5vdCBpbiBvdXIgdmFyIGxpc3RcblxuJHhwby1ibHVlLXBhbGV0dGU6IChcbiAgMTAwOiAkeHBvLWJsdWUtLTEwMCxcbiAgMzAwOiAkeHBvLWJsdWUtLTEwMCxcbiAgNDAwOiAkeHBvLWJsdWUtLTQwMCxcbiAgOTAwOiAkeHBvLWJsdWUtLTkwMCxcbiAgY29udHJhc3Q6IChcbiAgICAxMDA6ICR4cG8td2hpdGUsXG4gICAgMzAwOiAkeHBvLXdoaXRlLFxuICAgIDQwMDogJHhwby13aGl0ZSxcbiAgICA5MDA6ICR4cG8td2hpdGUsXG4gICksXG4pO1xuXG4keHBvLWdyZXktcGFsZXR0ZTogKFxuICAxMDA6ICR4cG8tZ3JleS0tMTAwLFxuICAzMDA6ICR4cG8tZ3JleS0tMzAwLFxuICA0MDA6ICR4cG8tZ3JleS0tNDAwLFxuICA5MDA6ICR4cG8tZ3JleS0tOTAwLFxuICBjb250cmFzdDogKFxuICAgIDEwMDogJHhwby1ncmV5LS05MDAsXG4gICAgMzAwOiAkeHBvLWdyZXktLTkwMCxcbiAgICA0MDA6ICR4cG8tZ3JleS0tOTAwLFxuICAgIDkwMDogJHhwby13aGl0ZSxcbiAgKSxcbik7XG5cbiR4cG8tcmVkLXBhbGV0dGU6IChcbiAgMTAwOiAkeHBvLXJlZC0tMTAwLFxuICAzMDA6ICR4cG8tcmVkLS0zMDAsXG4gIDQwMDogJHhwby1yZWQtLTQwMCxcbiAgOTAwOiAkeHBvLXJlZC0tOTAwLFxuICBjb250cmFzdDogKFxuICAgIDEwMDogJHhwby13aGl0ZSxcbiAgICAzMDA6ICR4cG8td2hpdGUsXG4gICAgNDAwOiAkeHBvLXdoaXRlLFxuICAgIDkwMDogJHhwby13aGl0ZSxcbiAgKSxcbik7XG5cbi8vIEJhY2tncm91bmQgcGFsZXR0ZSBmb3IgbGlnaHQgdGhlbWVzLlxuJHhwby1saWdodC10aGVtZS1iYWNrZ3JvdW5kOiAoXG4gIHN0YXR1cy1iYXI6IG1hcF9nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBhcHAtYmFyOiAkeHBvLXdoaXRlLFxuICBiYWNrZ3JvdW5kOiAkeHBvLWJhY2tncm91bmRDb2xvci0tYm9keSxcbiAgaG92ZXI6IHJnYmEoYmxhY2ssIDAuMDQpLFxuICBjYXJkOiB3aGl0ZSxcbiAgZGlhbG9nOiB3aGl0ZSxcbiAgZGlzYWJsZWQtYnV0dG9uOiByZ2JhKGJsYWNrLCAwLjEyKSxcbiAgcmFpc2VkLWJ1dHRvbjogd2hpdGUsXG4gIGZvY3VzZWQtYnV0dG9uOiAkZGFyay1mb2N1c2VkLFxuICBzZWxlY3RlZC1idXR0b246IG1hcF9nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBzZWxlY3RlZC1kaXNhYmxlZC1idXR0b246IG1hcF9nZXQoJG1hdC1ncmV5LCA0MDApLFxuICBkaXNhYmxlZC1idXR0b24tdG9nZ2xlOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMjAwKSxcbiAgdW5zZWxlY3RlZC1jaGlwOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMzAwKSxcbiAgZGlzYWJsZWQtbGlzdC1vcHRpb246IG1hcF9nZXQoJG1hdC1ncmV5LCAyMDApLFxuKTtcblxuLy8gQmFja2dyb3VuZCBwYWxldHRlIGZvciBkYXJrIHRoZW1lcy5cbiR4cG8tZGFyay10aGVtZS1iYWNrZ3JvdW5kOiAoXG4gIHN0YXR1cy1iYXI6IGJsYWNrLFxuICBhcHAtYmFyOiAkeHBvLWdyZXktLTk1MCxcbiAgYmFja2dyb3VuZDogJHhwby1ncmV5LS0xMDAwLFxuICBob3ZlcjogcmdiYSh3aGl0ZSwgMC4wNCksXG4gIGNhcmQ6ICR4cG8tZ3JleS0tOTUwLFxuICBkaWFsb2c6ICR4cG8tZ3JleS0tOTUwLFxuICBkaXNhYmxlZC1idXR0b246IHJnYmEod2hpdGUsIDAuMTIpLFxuICByYWlzZWQtYnV0dG9uOiAkeHBvLWdyZXktLTk1MCxcbiAgZm9jdXNlZC1idXR0b246ICRsaWdodC1mb2N1c2VkLFxuICBzZWxlY3RlZC1idXR0b246IG1hcF9nZXQoJG1hdC1ncmV5LCA5MDApLFxuICBzZWxlY3RlZC1kaXNhYmxlZC1idXR0b246ICR4cG8tZ3JleS0tOTUwLFxuICBkaXNhYmxlZC1idXR0b24tdG9nZ2xlOiBibGFjayxcbiAgdW5zZWxlY3RlZC1jaGlwOiBtYXBfZ2V0KCRtYXQtZ3JleSwgNzAwKSxcbiAgZGlzYWJsZWQtbGlzdC1vcHRpb246IGJsYWNrLFxuKTtcblxuLy8gRm9yZWdyb3VuZCBwYWxldHRlIGZvciBsaWdodCB0aGVtZXMuXG4keHBvLWxpZ2h0LXRoZW1lLWZvcmVncm91bmQ6IChcbiAgYmFzZTogYmxhY2ssXG4gIGRpdmlkZXI6ICRkYXJrLWRpdmlkZXJzLFxuICBkaXZpZGVyczogJGRhcmstZGl2aWRlcnMsXG4gIGRpc2FibGVkOiAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBkaXNhYmxlZC1idXR0b246IHJnYmEoYmxhY2ssIDAuMjYpLFxuICBkaXNhYmxlZC10ZXh0OiAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBlbGV2YXRpb246IGJsYWNrLFxuICBoaW50LXRleHQ6ICRkYXJrLWRpc2FibGVkLXRleHQsXG4gIHNlY29uZGFyeS10ZXh0OiAkZGFyay1zZWNvbmRhcnktdGV4dCxcbiAgaWNvbjogcmdiYShibGFjaywgMC41NCksXG4gIGljb25zOiByZ2JhKGJsYWNrLCAwLjU0KSxcbiAgdGV4dDogcmdiYShibGFjaywgMC44NyksXG4gIHNsaWRlci1taW46IHJnYmEoYmxhY2ssIDAuODcpLFxuICBzbGlkZXItb2ZmOiByZ2JhKGJsYWNrLCAwLjI2KSxcbiAgc2xpZGVyLW9mZi1hY3RpdmU6IHJnYmEoYmxhY2ssIDAuMzgpLFxuKTtcblxuLy8gRm9yZWdyb3VuZCBwYWxldHRlIGZvciBkYXJrIHRoZW1lcy5cbiR4cG8tZGFyay10aGVtZS1mb3JlZ3JvdW5kOiAoXG4gIGJhc2U6IHdoaXRlLFxuICBkaXZpZGVyOiAkbGlnaHQtZGl2aWRlcnMsXG4gIGRpdmlkZXJzOiAkbGlnaHQtZGl2aWRlcnMsXG4gIGRpc2FibGVkOiAkbGlnaHQtZGlzYWJsZWQtdGV4dCxcbiAgZGlzYWJsZWQtYnV0dG9uOiByZ2JhKHdoaXRlLCAwLjMpLFxuICBkaXNhYmxlZC10ZXh0OiAkbGlnaHQtZGlzYWJsZWQtdGV4dCxcbiAgZWxldmF0aW9uOiBibGFjayxcbiAgaGludC10ZXh0OiAkbGlnaHQtZGlzYWJsZWQtdGV4dCxcbiAgc2Vjb25kYXJ5LXRleHQ6ICRsaWdodC1zZWNvbmRhcnktdGV4dCxcbiAgaWNvbjogd2hpdGUsXG4gIGljb25zOiB3aGl0ZSxcbiAgdGV4dDogd2hpdGUsXG4gIHNsaWRlci1taW46IHdoaXRlLFxuICBzbGlkZXItb2ZmOiByZ2JhKHdoaXRlLCAwLjMpLFxuICBzbGlkZXItb2ZmLWFjdGl2ZTogcmdiYSh3aGl0ZSwgMC4zKSxcbik7XG5cblxuLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBvYmplY3QgZm9yIGEgbGlnaHQgdGhlbWUgdG8gYmUgZ2l2ZW4gdG8gaW5kaXZpZHVhbCBjb21wb25lbnQgdGhlbWUgbWl4aW5zLlxuQGZ1bmN0aW9uIHhwby1saWdodC10aGVtZSgkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm4pIHtcbiAgQHJldHVybiAocHJpbWFyeTogJHByaW1hcnksIGFjY2VudDogJGFjY2VudCwgd2FybjogJHdhcm4sIGlzLWRhcms6IGZhbHNlLCBmb3JlZ3JvdW5kOiAkeHBvLWxpZ2h0LXRoZW1lLWZvcmVncm91bmQsIGJhY2tncm91bmQ6ICR4cG8tbGlnaHQtdGhlbWUtYmFja2dyb3VuZCk7XG59XG5cbi8vIENyZWF0ZXMgYSBjb250YWluZXIgb2JqZWN0IGZvciBhIGRhcmsgdGhlbWUgdG8gYmUgZ2l2ZW4gdG8gaW5kaXZpZHVhbCBjb21wb25lbnQgdGhlbWUgbWl4aW5zLlxuQGZ1bmN0aW9uIHhwby1kYXJrLXRoZW1lKCRwcmltYXJ5LCAkYWNjZW50LCAkd2Fybikge1xuICBAcmV0dXJuIChwcmltYXJ5OiAkcHJpbWFyeSwgYWNjZW50OiAkYWNjZW50LCB3YXJuOiAkd2FybiwgaXMtZGFyazogdHJ1ZSwgZm9yZWdyb3VuZDogJHhwby1kYXJrLXRoZW1lLWZvcmVncm91bmQsIGJhY2tncm91bmQ6ICR4cG8tZGFyay10aGVtZS1iYWNrZ3JvdW5kKTtcbn1cblxuXG4vLyBJbmNsdWRlIG5vbi10aGVtZSBzdHlsZXMgZm9yIGNvcmUuXG5AaW5jbHVkZSB4cG8tbWF0LWNvcmUoKTtcblxuLy8gRGVmaW5lIGEgdGhlbWUuXG4kcHJpbWFyeTogbWF0LXBhbGV0dGUoJHhwby1ibHVlLXBhbGV0dGUsIDQwMCwgMzAwLCA5MDApO1xuJGFjY2VudDogbWF0LXBhbGV0dGUoJHhwby1ncmV5LXBhbGV0dGUsIDkwMCwgNDAwLCA5MDApO1xuJHdhcm46IG1hdC1wYWxldHRlKCR4cG8tcmVkLXBhbGV0dGUsIDQwMCwgMzAwLCA5MDApO1xuXG4kdGhlbWU6IHhwby1saWdodC10aGVtZSgkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm4pO1xuXG4vLyBJbmNsdWRlIGFsbCB0aGVtZSBzdHlsZXMgZm9yIHRoZSBjb21wb25lbnRzLlxuQGluY2x1ZGUgeHBvLW1hdGVyaWFsLWludGVybmFsLXRoZW1lKCR0aGVtZSk7XG5cbi8vIFRISVMgSVMgSlVTVCBIRVJFIFVOVElMIFdFIENBTiBHRVQgVEhFTSBJTiBBUkNcbi8vIFRPRE86IEFueXRoaW5nIGhlcmUgc2hvdWxkIGJlIGJhY2stcG9ydGVkIHRvIEFSQ1xuLnUtZmxleC0tZmlsbFNwYWNlIHtcbiAgZmxleDogMTtcbn1cblxuLnUtZmxleC0tc3BhY2VCZXR3ZWVuIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuIiwiLy8gRmlsZSBmb3Igd2hpY2ggYWxsIGltcG9ydHMgYXJlIHJlc29sdmVkIGFuZCBidW5kbGVkLiBUaGlzIGlzIHRoZSBlbnRyeS1wb2ludCBmb3Jcbi8vIHRoZSBgQGFuZ3VsYXIvbWF0ZXJpYWxgIHRoZW1pbmcgU2FzcyBidW5kbGUuIFNlZSBgLy9zcmMvbWF0ZXJpYWw6dGhlbWluZ19idW5kbGVgLlxuXG4vLyBJbXBvcnQgYWxsIHRoZSB0aGVtaW5nIGZ1bmN0aW9uYWxpdHkuXG4vLyBXZSB3YW50IG92ZXJsYXlzIHRvIGFsd2F5cyBhcHBlYXIgb3ZlciB1c2VyIGNvbnRlbnQsIHNvIHNldCBhIGJhc2VsaW5lXG4vLyB2ZXJ5IGhpZ2ggei1pbmRleCBmb3IgdGhlIG92ZXJsYXkgY29udGFpbmVyLCB3aGljaCBpcyB3aGVyZSB3ZSBjcmVhdGUgdGhlIG5ld1xuLy8gc3RhY2tpbmcgY29udGV4dCBmb3IgYWxsIG92ZXJsYXlzLlxuJGNkay16LWluZGV4LW92ZXJsYXktY29udGFpbmVyOiAxMDAwICFkZWZhdWx0O1xuJGNkay16LWluZGV4LW92ZXJsYXk6IDEwMDAgIWRlZmF1bHQ7XG4kY2RrLXotaW5kZXgtb3ZlcmxheS1iYWNrZHJvcDogMTAwMCAhZGVmYXVsdDtcblxuLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgYWxsIG9mIHRoZSBiYWNrZHJvcHNcbiRjZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wLWJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zMikgIWRlZmF1bHQ7XG5cbi8vIERlZmF1bHQgYmFja2Ryb3AgYW5pbWF0aW9uIGlzIGJhc2VkIG9uIHRoZSBNYXRlcmlhbCBEZXNpZ24gc3dpZnQtZWFzZS1vdXQuXG4kYmFja2Ryb3AtYW5pbWF0aW9uLWR1cmF0aW9uOiA0MDBtcyAhZGVmYXVsdDtcbiRiYWNrZHJvcC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSAhZGVmYXVsdDtcblxuXG5AbWl4aW4gY2RrLW92ZXJsYXkoKSB7XG4gIC5jZGstb3ZlcmxheS1jb250YWluZXIsIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlciB7XG4gICAgLy8gRGlzYWJsZSBldmVudHMgZnJvbSBiZWluZyBjYXB0dXJlZCBvbiB0aGUgb3ZlcmxheSBjb250YWluZXIuXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAvLyBUaGUgY29udGFpbmVyIHNob3VsZCBiZSB0aGUgc2l6ZSBvZiB0aGUgdmlld3BvcnQuXG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLy8gVGhlIG92ZXJsYXktY29udGFpbmVyIGlzIGFuIGludmlzaWJsZSBlbGVtZW50IHdoaWNoIGNvbnRhaW5zIGFsbCBpbmRpdmlkdWFsIG92ZXJsYXlzLlxuICAuY2RrLW92ZXJsYXktY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXktY29udGFpbmVyO1xuXG4gICAgJjplbXB0eSB7XG4gICAgICAvLyBIaWRlIHRoZSBlbGVtZW50IHdoZW4gaXQgZG9lc24ndCBoYXZlIGFueSBjaGlsZCBub2Rlcy4gVGhpcyBkb2Vzbid0XG4gICAgICAvLyBpbmNsdWRlIG92ZXJsYXlzIHRoYXQgaGF2ZSBiZWVuIGRldGFjaGVkLCByYXRoZXIgdGhhbiBkaXNwb3NlZC5cbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLy8gV2UgdXNlIGFuIGV4dHJhIHdyYXBwZXIgZWxlbWVudCBpbiBvcmRlciB0byB1c2UgbWFrZSB0aGUgb3ZlcmxheSBpdHNlbGYgYSBmbGV4IGl0ZW0uXG4gIC8vIFRoaXMgbWFrZXMgY2VudGVyaW5nIHRoZSBvdmVybGF5IGVhc3kgd2l0aG91dCBydW5uaW5nIGludG8gdGhlIHN1YnBpeGVsIHJlbmRlcmluZ1xuICAvLyBwcm9ibGVtcyB0aWVkIHRvIHVzaW5nIGB0cmFuc2Zvcm1gIGFuZCB3aXRob3V0IGludGVyZmVyaW5nIHdpdGggdGhlIG90aGVyIHBvc2l0aW9uXG4gIC8vIHN0cmF0ZWdpZXMuXG4gIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXk7XG4gIH1cblxuICAvLyBBIHNpbmdsZSBvdmVybGF5IHBhbmUuXG4gIC5jZGstb3ZlcmxheS1wYW5lIHtcbiAgICAvLyBOb3RlOiBpdCdzIGltcG9ydGFudCBmb3IgdGhpcyBvbmUgdG8gc3RhcnQgb2ZmIGBhYnNvbHV0ZWAsXG4gICAgLy8gaW4gb3JkZXIgZm9yIHVzIHRvIGJlIGFibGUgdG8gbWVhc3VyZSBpdCBjb3JyZWN0bHkuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXk7XG5cbiAgICAvLyBGb3IgY29ubmVjdGVkLXBvc2l0aW9uIG92ZXJsYXlzLCB3ZSBzZXQgYGRpc3BsYXk6IGZsZXhgIGluXG4gICAgLy8gb3JkZXIgdG8gZm9yY2UgYG1heC13aWR0aGAgYW5kIGBtYXgtaGVpZ2h0YCB0byB0YWtlIGVmZmVjdC5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgLmNkay1vdmVybGF5LWJhY2tkcm9wIHtcbiAgICAvLyBUT0RPKGplbGJvdXJuKTogcmV1c2Ugc2lkZW5hdiBmdWxsc2NyZWVuIG1peGluLlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG5cbiAgICB6LWluZGV4OiAkY2RrLXotaW5kZXgtb3ZlcmxheS1iYWNrZHJvcDtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJGJhY2tkcm9wLWFuaW1hdGlvbi1kdXJhdGlvbiAkYmFja2Ryb3AtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjtcbiAgICBvcGFjaXR5OiAwO1xuXG4gICAgJi5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nIHtcbiAgICAgIG9wYWNpdHk6IDE7XG5cbiAgICAgIC8vIE5vdGUgdGhhdCB3ZSBjYW4ndCBpbXBvcnQgYW5kIHVzZSB0aGUgYGhpZ2gtY29udHJhc3RgIG1peGluIGZyb20gYF9hMTF5LnNjc3NgLCBiZWNhdXNlXG4gICAgICAvLyB0aGlzIGZpbGUgd2lsbCBiZSBjb3BpZWQgdG8gdGhlIHRvcC1sZXZlbCBgY2RrYCBwYWNrYWdlIHdoZW4gcHV0dGluZyB0b2dldGhlciB0aGUgZmlsZXNcbiAgICAgIC8vIGZvciBucG0uIEFueSByZWxhdGl2ZSBpbXBvcnQgcGF0aHMgd2UgdXNlIGhlcmUgd2lsbCBiZWNvbWUgaW52YWxpZCBvbmNlIHRoZSBmaWxlIGlzIGNvcGllZC5cbiAgICAgIC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgJiB7XG4gICAgICAgIC8vIEluIGhpZ2ggY29udHJhc3QgbW9kZSB0aGUgcmdiYSBiYWNrZ3JvdW5kIHdpbGwgYmVjb21lIHNvbGlkXG4gICAgICAgIC8vIHNvIHdlIG5lZWQgdG8gZmFsbCBiYWNrIHRvIG1ha2luZyBpdCBvcGFxdWUgdXNpbmcgYG9wYWNpdHlgLlxuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3Age1xuICAgIGJhY2tncm91bmQ6ICRjZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wLWJhY2tncm91bmQ7XG4gIH1cblxuICAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3Age1xuICAgIC8vIE5vdGU6IGFzIG9mIEZpcmVmb3ggNTcsIGhhdmluZyB0aGUgYmFja2Ryb3AgYmUgYGJhY2tncm91bmQ6IG5vbmVgIHdpbGwgcHJldmVudCBpdCBmcm9tXG4gICAgLy8gY2FwdHVyaW5nIHRoZSB1c2VyJ3MgbW91c2Ugc2Nyb2xsIGV2ZW50cy4gU2luY2Ugd2UgYWxzbyBjYW4ndCB1c2Ugc29tZXRoaW5nIGxpa2VcbiAgICAvLyBgcmdiYSgwLCAwLCAwLCAwKWAsIHdlIHdvcmsgYXJvdW5kIHRoZSBpbmNvbnNpc3RlbmN5IGJ5IG5vdCBzZXR0aW5nIHRoZSBiYWNrZ3JvdW5kIGF0XG4gICAgLy8gYWxsIGFuZCB1c2luZyBgb3BhY2l0eWAgdG8gbWFrZSB0aGUgZWxlbWVudCB0cmFuc3BhcmVudC5cbiAgICAmLCAmLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cblxuICAvLyBPdmVybGF5IHBhcmVudCBlbGVtZW50IHVzZWQgd2l0aCB0aGUgY29ubmVjdGVkIHBvc2l0aW9uIHN0cmF0ZWd5LiBVc2VkIHRvIGNvbnN0cmFpbiB0aGVcbiAgLy8gb3ZlcmxheSBlbGVtZW50J3Mgc2l6ZSB0byBmaXQgd2l0aGluIHRoZSB2aWV3cG9ydC5cbiAgLmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3gge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAkY2RrLXotaW5kZXgtb3ZlcmxheTtcblxuICAgIC8vIFdlIHVzZSBgZGlzcGxheTogZmxleGAgb24gdGhpcyBlbGVtZW50IGV4Y2x1c2l2ZWx5IGZvciBjZW50ZXJpbmcgY29ubmVjdGVkIG92ZXJsYXlzLlxuICAgIC8vIFdoZW4gKm5vdCogY2VudGVyaW5nLCBhIHRvcC9sZWZ0L2JvdHRvbS9yaWdodCB3aWxsIGJlIHNldCB3aGljaCBvdmVycmlkZXMgdGhlIG5vcm1hbFxuICAgIC8vIGZsZXggbGF5b3V0LlxuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAvLyBXZSB1c2UgdGhlIGBjb2x1bW5gIGRpcmVjdGlvbiBoZXJlIHRvIGF2b2lkIHNvbWUgZmxleGJveCBpc3N1ZXMgaW4gRWRnZVxuICAgIC8vIHdoZW4gdXNpbmcgdGhlIFwiZ3JvdyBhZnRlciBvcGVuXCIgb3B0aW9ucy5cbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgLy8gQWRkIHNvbWUgZGltZW5zaW9ucyBzbyB0aGUgZWxlbWVudCBoYXMgYW4gYGlubmVyVGV4dGAgd2hpY2ggc29tZSBwZW9wbGUgZGVwZW5kIG9uIGluIHRlc3RzLlxuICAgIG1pbi13aWR0aDogMXB4O1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgfVxuXG4gIC8vIFVzZWQgd2hlbiBkaXNhYmxpbmcgZ2xvYmFsIHNjcm9sbGluZy5cbiAgLmNkay1nbG9iYWwtc2Nyb2xsYmxvY2sge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcblxuICAgIC8vIE5lY2Vzc2FyeSBmb3IgdGhlIGNvbnRlbnQgbm90IHRvIGxvc2UgaXRzIHdpZHRoLiBOb3RlIHRoYXQgd2UncmUgdXNpbmcgMTAwJSwgaW5zdGVhZCBvZlxuICAgIC8vIDEwMHZ3LCBiZWNhdXNlIDEwMHZ3IGluY2x1ZGVzIHRoZSB3aWR0aCBwbHVzIHRoZSBzY3JvbGxiYXIsIHdoZXJlYXMgMTAwJSBpcyB0aGUgd2lkdGhcbiAgICAvLyB0aGF0IHRoZSBlbGVtZW50IGhhZCBiZWZvcmUgd2UgbWFkZSBpdCBgZml4ZWRgLlxuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLy8gTm90ZTogdGhpcyB3aWxsIGFsd2F5cyBhZGQgYSBzY3JvbGxiYXIgdG8gd2hhdGV2ZXIgZWxlbWVudCBpdCBpcyBvbiwgd2hpY2ggY2FuXG4gICAgLy8gcG90ZW50aWFsbHkgcmVzdWx0IGluIGRvdWJsZSBzY3JvbGxiYXJzLiBJdCBzaG91bGRuJ3QgYmUgYW4gaXNzdWUsIGJlY2F1c2Ugd2Ugd29uJ3RcbiAgICAvLyBibG9jayBzY3JvbGxpbmcgb24gYSBwYWdlIHRoYXQgZG9lc24ndCBoYXZlIGEgc2Nyb2xsYmFyIGluIHRoZSBmaXJzdCBwbGFjZS5cbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIH1cbn1cblxuQG1peGluIGNkay1hMTF5IHtcbiAgLmNkay12aXN1YWxseS1oaWRkZW4ge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG5cbiAgICAvLyBUaGlzIHdvcmtzIGFyb3VuZCBhIENocm9tZSBidWcgdGhhdCBjYW4gY2F1c2UgdGhlIHRhYiB0byBjcmFzaCB3aGVuIGxhcmdlIGFtb3VudHMgb2ZcbiAgICAvLyBub24tRW5nbGlzaCB0ZXh0IGdldCB3cmFwcGVkOiBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD0xMjAxNDQ0XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIC8vIEF2b2lkIGJyb3dzZXJzIHJlbmRlcmluZyB0aGUgZm9jdXMgcmluZyBpbiBzb21lIGNhc2VzLlxuICAgIG91dGxpbmU6IDA7XG5cbiAgICAvLyBBdm9pZCBzb21lIGNhc2VzIHdoZXJlIHRoZSBicm93c2VyIHdpbGwgc3RpbGwgcmVuZGVyIHRoZSBuYXRpdmUgY29udHJvbHMgKHNlZSAjOTA0OSkuXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxufVxuXG4vLy8gRW1pdHMgdGhlIG1peGluJ3MgY29udGVudCBuZXN0ZWQgdW5kZXIgYCRzZWxlY3Rvci1jb250ZXh0YCBpZiBgJHNlbGVjdG9yLWNvbnRleHRgXG4vLy8gaXMgbm9uLWVtcHR5LlxuLy8vIEBwYXJhbSBzZWxlY3Rvci1jb250ZXh0IFRoZSBzZWxlY3RvciB1bmRlciB3aGljaCB0byBuZXN0IHRoZSBtaXhpbidzIGNvbnRlbnQuXG5AbWl4aW4gX2Nkay1vcHRpb25hbGx5LW5lc3QtY29udGVudCgkc2VsZWN0b3ItY29udGV4dCkge1xuICBAaWYgKCRzZWxlY3Rvci1jb250ZXh0ID09ICcnKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgICN7JHNlbGVjdG9yLWNvbnRleHR9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQXBwbGllcyBzdHlsZXMgZm9yIHVzZXJzIGluIGhpZ2ggY29udHJhc3QgbW9kZS4gTm90ZSB0aGF0IHRoaXMgb25seSBhcHBsaWVzXG4vLy8gdG8gTWljcm9zb2Z0IGJyb3dzZXJzLiBDaHJvbWUgY2FuIGJlIGluY2x1ZGVkIGJ5IGNoZWNraW5nIGZvciB0aGUgYGh0bWxbaGNdYFxuLy8vIGF0dHJpYnV0ZSwgaG93ZXZlciBDaHJvbWUgaGFuZGxlcyBoaWdoIGNvbnRyYXN0IGRpZmZlcmVudGx5LlxuLy8vXG4vLy8gQHBhcmFtIHRhcmdldCBXaGljaCBraW5kIG9mIGhpZ2ggY29udHJhc3Qgc2V0dGluZyB0byB0YXJnZXQuIERlZmF1bHRzIHRvIGBhY3RpdmVgLCBjYW4gYmVcbi8vLyAgICBgd2hpdGUtb24tYmxhY2tgIG9yIGBibGFjay1vbi13aGl0ZWAuXG4vLy8gQHBhcmFtIGVuY2Fwc3VsYXRpb24gV2hldGhlciB0byBlbWl0IHN0eWxlcyBmb3IgdmlldyBlbmNhcHN1bGF0aW9uLiBWYWx1ZXMgYXJlOlxuLy8vICAgICAqIGBvbmAgLSB3b3JrcyBmb3IgYEVtdWxhdGVkYCwgYE5hdGl2ZWAsIGFuZCBgU2hhZG93RG9tYFxuLy8vICAgICAqIGBvZmZgIC0gd29ya3MgZm9yIGBOb25lYFxuLy8vICAgICAqIGBhbnlgIC0gd29ya3MgZm9yIGFsbCBlbmNhcHN1bGF0aW9uIG1vZGVzIGJ5IGVtaXR0aW5nIHRoZSBDU1MgdHdpY2UgKGRlZmF1bHQpLlxuQG1peGluIGNkay1oaWdoLWNvbnRyYXN0KCR0YXJnZXQ6IGFjdGl2ZSwgJGVuY2Fwc3VsYXRpb246ICdhbnknKSB7XG4gIEBpZiAoJHRhcmdldCAhPSAnYWN0aXZlJyBhbmQgJHRhcmdldCAhPSAnYmxhY2stb24td2hpdGUnIGFuZCAkdGFyZ2V0ICE9ICd3aGl0ZS1vbi1ibGFjaycpIHtcbiAgICBAZXJyb3IgJ1Vua25vd24gY2RrLWhpZ2gtY29udHJhc3QgdmFsdWUgXCIjeyR0YXJnZXR9XCIgcHJvdmlkZWQuICcgK1xuICAgICAgICAgICAnQWxsb3dlZCB2YWx1ZXMgYXJlIFwiYWN0aXZlXCIsIFwiYmxhY2stb24td2hpdGVcIiwgYW5kIFwid2hpdGUtb24tYmxhY2tcIic7XG4gIH1cblxuICBAaWYgKCRlbmNhcHN1bGF0aW9uICE9ICdvbicgYW5kICRlbmNhcHN1bGF0aW9uICE9ICdvZmYnIGFuZCAkZW5jYXBzdWxhdGlvbiAhPSAnYW55Jykge1xuICAgIEBlcnJvciAnVW5rbm93biBjZGstaGlnaC1jb250cmFzdCBlbmNhcHN1bGF0aW9uIFwiI3skZW5jYXBzdWxhdGlvbn1cIiBwcm92aWRlZC4gJyArXG4gICAgICAgICAgICdBbGxvd2VkIHZhbHVlcyBhcmUgXCJvblwiLCBcIm9mZlwiLCBhbmQgXCJhbnlcIic7XG4gIH1cblxuICAvLyBJZiB0aGUgc2VsZWN0b3IgY29udGV4dCBoYXMgbXVsdGlwbGUgcGFydHMsIHN1Y2ggYXMgYC5zZWN0aW9uLCAucmVnaW9uYCwganVzdCBkb2luZ1xuICAvLyBgLmNkay1oaWdoLWNvbnRyYXN0LXh4eCAjeyZ9YCB3aWxsIG9ubHkgYXBwbHkgdGhlIHBhcmVudCBzZWxlY3RvciB0byB0aGUgZmlyc3QgcGFydCBvZiB0aGVcbiAgLy8gY29udGV4dC4gV2UgYWRkcmVzcyB0aGlzIGJ5IG5lc3RpbmcgdGhlIHNlbGVjdG9yIGNvbnRleHQgdW5kZXIgLmNkay1oaWdoLWNvbnRyYXN0LlxuICBAYXQtcm9vdCB7XG4gICAgJHNlbGVjdG9yLWNvbnRleHQ6ICN7Jn07XG5cbiAgICBAaWYgKCRlbmNhcHN1bGF0aW9uICE9ICdvbicpIHtcbiAgICAgIC8vIE5vdGUgdGhhdCBpZiB0aGlzIHNlbGVjdG9yIGlzIHVwZGF0ZWQsIHRoZSBzYW1lIGNoYW5nZSBoYXMgdG8gYmUgbWFkZSBpbnNpZGVcbiAgICAgIC8vIGBfb3ZlcmxheS5zY3NzYCB3aGljaCBjYW4ndCBkZXBlbmQgb24gdGhpcyBtaXhpbiBkdWUgdG8gc29tZSBpbmZyYXN0cnVjdHVyZSBsaW1pdGF0aW9ucy5cbiAgICAgIC5jZGstaGlnaC1jb250cmFzdC0jeyR0YXJnZXR9IHtcbiAgICAgICAgQGluY2x1ZGUgX2Nkay1vcHRpb25hbGx5LW5lc3QtY29udGVudCgkc2VsZWN0b3ItY29udGV4dCkge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICgkZW5jYXBzdWxhdGlvbiAhPSAnb2ZmJykge1xuICAgICAgLmNkay1oaWdoLWNvbnRyYXN0LSN7JHRhcmdldH0gOmhvc3Qge1xuICAgICAgICBAaW5jbHVkZSBfY2RrLW9wdGlvbmFsbHktbmVzdC1jb250ZW50KCRzZWxlY3Rvci1jb250ZXh0KSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gQ29yZSBzdHlsZXMgdGhhdCBlbmFibGUgbW9uaXRvcmluZyBhdXRvZmlsbCBzdGF0ZSBvZiB0ZXh0IGZpZWxkcy5cbkBtaXhpbiBjZGstdGV4dC1maWVsZCB7XG4gIC8vIEtleWZyYW1lcyB0aGF0IGFwcGx5IG5vIHN0eWxlcywgYnV0IGFsbG93IHVzIHRvIG1vbml0b3Igd2hlbiBhbiB0ZXh0IGZpZWxkIGJlY29tZXMgYXV0b2ZpbGxlZFxuICAvLyBieSB3YXRjaGluZyBmb3IgdGhlIGFuaW1hdGlvbiBldmVudHMgdGhhdCBhcmUgZmlyZWQgd2hlbiB0aGV5IHN0YXJ0LiBOb3RlOiB0aGUgLyohKi8gY29tbWVudCBpc1xuICAvLyBuZWVkZWQgdG8gcHJldmVudCBMaWJTYXNzIGZyb20gc3RyaXBwaW5nIHRoZSBrZXlmcmFtZXMgb3V0LlxuICAvLyBCYXNlZCBvbjogaHR0cHM6Ly9tZWRpdW0uY29tL0BicnVubi9kZXRlY3RpbmctYXV0b2ZpbGxlZC1maWVsZHMtaW4tamF2YXNjcmlwdC1hZWQ1OThkMjVkYTdcbiAgQGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCB7LyohKi99XG4gIEBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIHsvKiEqL31cblxuICAuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIC8vIFNpbmNlIENocm9tZSA4MCB3ZSBuZWVkIGEgMW1zIGRlbGF5LCBvciB0aGUgYW5pbWF0aW9uc3RhcnQgZXZlbnQgd29uJ3QgZmlyZS5cbiAgICBhbmltYXRpb246IGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtcztcbiAgfVxuXG4gIC5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWQ6bm90KDotd2Via2l0LWF1dG9maWxsKSB7XG4gICAgLy8gU2luY2UgQ2hyb21lIDgwIHdlIG5lZWQgYSAxbXMgZGVsYXksIG9yIHRoZSBhbmltYXRpb25zdGFydCBldmVudCB3b24ndCBmaXJlLlxuICAgIGFuaW1hdGlvbjogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtcztcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgcmVzaXplIGhhbmRsZSBvbiBhdXRvc2l6aW5nIHRleHRhcmVhcywgYmVjYXVzZSB3aGF0ZXZlciBoZWlnaHRcbiAgLy8gdGhlIHVzZXIgcmVzaXplZCB0byB3aWxsIGJlIG92ZXJ3cml0dGVuIG9uY2UgdGhleSBzdGFydCB0eXBpbmcgYWdhaW4uXG4gIHRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZSB7XG4gICAgcmVzaXplOiBub25lO1xuICB9XG5cbiAgLy8gVGhpcyBjbGFzcyBpcyB0ZW1wb3JhcmlseSBhcHBsaWVkIHRvIHRoZSB0ZXh0YXJlYSB3aGVuIGl0IGlzIGJlaW5nIG1lYXN1cmVkLiBJdCBpcyBpbW1lZGlhdGVseVxuICAvLyByZW1vdmVkIHdoZW4gbWVhc3VyaW5nIGlzIGNvbXBsZXRlLiBXZSB1c2UgYCFpbXBvcnRhbnRgIHJ1bGVzIGhlcmUgdG8gbWFrZSBzdXJlIHVzZXItc3BlY2lmaWVkXG4gIC8vIHJ1bGVzIGRvIG5vdCBpbnRlcmZlcmUgd2l0aCB0aGUgbWVhc3VyZW1lbnQuXG4gIHRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmcge1xuICAgIEBpbmNsdWRlIF9jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWJhc2U7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICB9XG5cbiAgLy8gU2ltaWxhciB0byB0aGUgYGNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdgIGNsYXNzLCBidXQgb25seSBhcHBsaWVkIG9uIEZpcmVmb3guIFdlIG5lZWRcbiAgLy8gdG8gdXNlIHRoaXMgY2xhc3MsIGJlY2F1c2UgRmlyZWZveCBoYXMgYSBidWcgd2hlcmUgY2hhbmdpbmcgdGhlIGBvdmVyZmxvd2AgYnJlYWtzIHRoZSB1c2VyJ3NcbiAgLy8gYWJpbGl0eSB0byB1bmRvL3JlZG8gd2hhdCB0aGV5IHdlcmUgdHlwaW5nIChzZWUgIzE2NjI5KS4gVGhpcyBjbGFzcyBpcyBvbmx5IHNjb3BlZCB0byBGaXJlZm94LFxuICAvLyBiZWNhdXNlIHRoZSBtZWFzdXJlbWVudHMgdGhlcmUgZG9uJ3Qgc2VlbSB0byBiZSBhZmZlY3RlZCBieSB0aGUgYGhlaWdodDogMGAsIHdoZXJlYXMgb24gb3RoZXJcbiAgLy8gYnJvd3NlcnMgdGhleSBhcmUsIGUuZy4gQ2hyb21lIGRldGVjdHMgbG9uZ2VyIHRleHQgYW5kIElFIGRvZXMndCByZXNpemUgYmFjayB0byBub3JtYWwuXG4gIC8vIElkZW50aWNhbCBpc3N1ZSByZXBvcnQ6IGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTQ0ODc4NFxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3gge1xuICAgIEBpbmNsdWRlIF9jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWJhc2U7XG4gICAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1peGluIF9jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWJhc2Uge1xuICAvLyBIYXZpbmcgMnB4IHRvcCBhbmQgYm90dG9tIHBhZGRpbmcgc2VlbXMgdG8gZml4IGEgYnVnIHdoZXJlIENocm9tZSBnZXRzIGFuIGluY29ycmVjdFxuICAvLyBtZWFzdXJlbWVudC4gV2UganVzdCBoYXZlIHRvIGFjY291bnQgZm9yIGl0IGxhdGVyIGFuZCBzdWJ0cmFjdCBpdCBvZmYgdGhlIGZpbmFsIHJlc3VsdC5cbiAgcGFkZGluZzogMnB4IDAgIWltcG9ydGFudDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3ggIWltcG9ydGFudDtcbn1cblxuLy8gVXNlZCB0byBnZW5lcmF0ZSBVSURzIGZvciBrZXlmcmFtZXMgdXNlZCB0byBjaGFuZ2UgdGhlIHRleHQgZmllbGQgYXV0b2ZpbGwgc3R5bGVzLlxuJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50OiAwO1xuXG4vLyBNaXhpbiB1c2VkIHRvIGFwcGx5IGN1c3RvbSBiYWNrZ3JvdW5kIGFuZCBmb3JlZ3JvdW5kIGNvbG9ycyB0byBhbiBhdXRvZmlsbGVkIHRleHQgZmllbGQuXG4vLyBCYXNlZCBvbjogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjc4MTU0OS9cbi8vIHJlbW92aW5nLWlucHV0LWJhY2tncm91bmQtY29sb3VyLWZvci1jaHJvbWUtYXV0b2NvbXBsZXRlI2Fuc3dlci0zNzQzMjI2MFxuQG1peGluIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yKCRiYWNrZ3JvdW5kLCAkZm9yZWdyb3VuZDonJykge1xuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLSN7JGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50fSB7XG4gICAgdG8ge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICBAaWYgJGZvcmVncm91bmQgIT0gJycgeyBjb2xvcjogJGZvcmVncm91bmQ7IH1cbiAgICB9XG4gIH1cblxuICAmOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIGFuaW1hdGlvbjogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItI3skY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnR9IGJvdGg7XG4gIH1cblxuICAmLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDotd2Via2l0LWF1dG9maWxsIHtcbiAgICAvLyBTaW5jZSBDaHJvbWUgODAgd2UgbmVlZCBhIDFtcyBkZWxheSBmb3IgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQsIG9yIHRoZSBhbmltYXRpb25zdGFydFxuICAgIC8vIGV2ZW50IHdvbid0IGZpcmUuXG4gICAgYW5pbWF0aW9uOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXMsXG4gICAgICAgICAgICAgICBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci0jeyRjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudH0gYm90aDtcbiAgfVxuXG4gICRjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudDpcbiAgICAgICRjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudCArIDEgIWdsb2JhbDtcbn1cblxuXG4vLyBDb3JlIHN0eWxlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIGFwcGx5IG1hdGVyaWFsIGRlc2lnbiB0cmVhdG1lbnRzIHRvIGFueSBlbGVtZW50LlxuLy8gTWVkaWEgcXVlcmllc1xuLy8gVE9ETyhqb3NlcGhwZXJyb3R0KTogQ2hhbmdlICRtYXQteHNtYWxsIGFuZCAkbWF0LXNtYWxsIHVzYWdlcyB0byByZWx5IG9uIEJyZWFrcG9pbnRPYnNlcnZlcixcbiRtYXQteHNtYWxsOiAnbWF4LXdpZHRoOiA1OTlweCc7XG4kbWF0LXNtYWxsOiAnbWF4LXdpZHRoOiA5NTlweCc7XG5cbi8vIFRPRE86IFJldmlzaXQgYWxsIHotaW5kaWNlcyBiZWZvcmUgYmV0YVxuLy8gei1pbmRleCBtYXN0ZXIgbGlzdFxuXG4kei1pbmRleC1mYWI6IDIwICFkZWZhdWx0O1xuJHotaW5kZXgtZHJhd2VyOiAxMDAgIWRlZmF1bHQ7XG5cbi8vIEdsb2JhbCBjb25zdGFudHNcbiRwaTogMy4xNDE1OTI2NTtcblxuLy8gUGFkZGluZyBiZXR3ZWVuIGlucHV0IHRvZ2dsZXMgYW5kIHRoZWlyIGxhYmVsc1xuJG1hdC10b2dnbGUtcGFkZGluZzogOHB4ICFkZWZhdWx0O1xuLy8gV2lkdGggYW5kIGhlaWdodCBvZiBpbnB1dCB0b2dnbGVzXG4kbWF0LXRvZ2dsZS1zaXplOiAyMHB4ICFkZWZhdWx0O1xuXG4vLyBFYXNpbmcgQ3VydmVzXG4vLyBUT0RPKGplbGJvdXJuKTogYWxsIG9mIHRoZXNlIG5lZWQgdG8gYmUgcmV2aXNpdGVkXG5cbi8vIFRoZSBkZWZhdWx0IGFuaW1hdGlvbiBjdXJ2ZXMgdXNlZCBieSBtYXRlcmlhbCBkZXNpZ24uXG4kbWF0LWxpbmVhci1vdXQtc2xvdy1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLCAwLCAwLjIsIDAuMSkgIWRlZmF1bHQ7XG4kbWF0LWZhc3Qtb3V0LXNsb3ctaW4tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpICFkZWZhdWx0O1xuJG1hdC1mYXN0LW91dC1saW5lYXItaW4tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKSAhZGVmYXVsdDtcblxuJGVhc2UtaW4tb3V0LWN1cnZlLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSkgIWRlZmF1bHQ7XG5cbiRzd2lmdC1lYXNlLW91dC1kdXJhdGlvbjogNDAwbXMgIWRlZmF1bHQ7XG4kc3dpZnQtZWFzZS1vdXQtdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLW91dDogYWxsICRzd2lmdC1lYXNlLW91dC1kdXJhdGlvbiAkc3dpZnQtZWFzZS1vdXQtdGltaW5nLWZ1bmN0aW9uICFkZWZhdWx0O1xuXG4kc3dpZnQtZWFzZS1pbi1kdXJhdGlvbjogMzAwbXMgIWRlZmF1bHQ7XG4kc3dpZnQtZWFzZS1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1LCAwLCAwLjU1LCAwLjIpICFkZWZhdWx0O1xuJHN3aWZ0LWVhc2UtaW46IGFsbCAkc3dpZnQtZWFzZS1pbi1kdXJhdGlvbiAkc3dpZnQtZWFzZS1pbi10aW1pbmctZnVuY3Rpb24gIWRlZmF1bHQ7XG5cbiRzd2lmdC1lYXNlLWluLW91dC1kdXJhdGlvbjogNTAwbXMgIWRlZmF1bHQ7XG4kc3dpZnQtZWFzZS1pbi1vdXQtdGltaW5nLWZ1bmN0aW9uOiAkZWFzZS1pbi1vdXQtY3VydmUtZnVuY3Rpb24gIWRlZmF1bHQ7XG4kc3dpZnQtZWFzZS1pbi1vdXQ6IGFsbCAkc3dpZnQtZWFzZS1pbi1vdXQtZHVyYXRpb24gJHN3aWZ0LWVhc2UtaW4tb3V0LXRpbWluZy1mdW5jdGlvbiAhZGVmYXVsdDtcblxuJHN3aWZ0LWxpbmVhci1kdXJhdGlvbjogODBtcyAhZGVmYXVsdDtcbiRzd2lmdC1saW5lYXItdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXIgIWRlZmF1bHQ7XG4kc3dpZnQtbGluZWFyOiBhbGwgJHN3aWZ0LWxpbmVhci1kdXJhdGlvbiAkc3dpZnQtbGluZWFyLXRpbWluZy1mdW5jdGlvbiAhZGVmYXVsdDtcblxuXG5cbi8vIEEgY29sbGVjdGlvbiBvZiBtaXhpbnMgYW5kIENTUyBjbGFzc2VzIHRoYXQgY2FuIGJlIHVzZWQgdG8gYXBwbHkgZWxldmF0aW9uIHRvIGEgbWF0ZXJpYWxcbi8vIGVsZW1lbnQuXG4vLyBTZWU6IGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2Vudmlyb25tZW50L2VsZXZhdGlvbi5odG1sXG4vLyBFeGFtcGxlczpcbi8vXG4vL1xuLy8gLm1hdC1mb28ge1xuLy8gICBAaW5jbHVkZSAkbWF0LWVsZXZhdGlvbigyKTtcbi8vXG4vLyAgICY6YWN0aXZlIHtcbi8vICAgICBAaW5jbHVkZSAkbWF0LWVsZXZhdGlvbig4KTtcbi8vICAgfVxuLy8gfVxuLy9cbi8vIDxkaXYgaWQ9XCJleHRlcm5hbC1jYXJkXCIgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXoyXCI+PHA+U29tZSBjb250ZW50PC9wPjwvZGl2PlxuLy9cbi8vIEZvciBhbiBleHBsYW5hdGlvbiBvZiB0aGUgZGVzaWduIGJlaGluZCBob3cgZWxldmF0aW9uIGlzIGltcGxlbWVudGVkLCBzZWUgdGhlIGRlc2lnbiBkb2MgYXRcbi8vIGh0dHBzOi8vZ29vLmdsL0txMGs5Wi5cblxuLy8gQ29sb3JzIGZvciB1bWJyYSwgcGVudW1icmEsIGFuZCBhbWJpZW50IHNoYWRvd3MuIEFzIGRlc2NyaWJlZCBpbiB0aGUgZGVzaWduIGRvYywgZWFjaCBlbGV2YXRpb25cbi8vIGxldmVsIGlzIGNyZWF0ZWQgdXNpbmcgYSBzZXQgb2YgMyBzaGFkb3cgdmFsdWVzLCBvbmUgZm9yIHVtYnJhICh0aGUgc2hhZG93IHJlcHJlc2VudGluZyB0aGVcbi8vIHNwYWNlIGNvbXBsZXRlbHkgb2JzY3VyZWQgYnkgYW4gb2JqZWN0IHJlbGF0aXZlIHRvIGl0cyBsaWdodCBzb3VyY2UpLCBvbmUgZm9yIHBlbnVtYnJhICh0aGVcbi8vIHNwYWNlIHBhcnRpYWxseSBvYnNjdXJlZCBieSBhbiBvYmplY3QpLCBhbmQgb25lIGZvciBhbWJpZW50ICh0aGUgc3BhY2Ugd2hpY2ggY29udGFpbnMgdGhlIG9iamVjdFxuLy8gaXRzZWxmKS4gRm9yIGEgZnVydGhlciBleHBsYW5hdGlvbiBvZiB0aGVzZSB0ZXJtcyBhbmQgdGhlaXIgbWVhbmluZ3MsIHNlZVxuLy8gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVW1icmEsX3BlbnVtYnJhX2FuZF9hbnR1bWJyYS5cblxuLy8gTWFwcyBmb3IgdGhlIGRpZmZlcmVudCBzaGFkb3cgc2V0cyBhbmQgdGhlaXIgdmFsdWVzIHdpdGhpbiBlYWNoIHotc3BhY2UuIFRoZXNlIHZhbHVlcyB3ZXJlXG4vLyBjcmVhdGVkIGJ5IHRha2luZyBhIGZldyByZWZlcmVuY2Ugc2hhZG93IHNldHMgY3JlYXRlZCBieSBHb29nbGUncyBEZXNpZ25lcnMgYW5kIGludGVycG9sYXRpbmdcbi8vIGFsbCBvZiB0aGUgdmFsdWVzIGJldHdlZW4gdGhlbS5cblxuQGZ1bmN0aW9uIF9nZXQtdW1icmEtbWFwKCRjb2xvciwgJG9wYWNpdHkpIHtcbiAgJHNoYWRvdy1jb2xvcjogaWYodHlwZS1vZigkY29sb3IpID09IGNvbG9yLCByZ2JhKCRjb2xvciwgJG9wYWNpdHkgKiAwLjIpLCAkY29sb3IpO1xuXG4gIEByZXR1cm4gKFxuICAgIDA6ICcwcHggMHB4IDBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTogJzBweCAycHggMXB4IC0xcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjogJzBweCAzcHggMXB4IC0ycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMzogJzBweCAzcHggM3B4IC0ycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNDogJzBweCAycHggNHB4IC0xcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNTogJzBweCAzcHggNXB4IC0xcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNjogJzBweCAzcHggNXB4IC0xcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNzogJzBweCA0cHggNXB4IC0ycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgODogJzBweCA1cHggNXB4IC0zcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgOTogJzBweCA1cHggNnB4IC0zcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTA6ICcwcHggNnB4IDZweCAtM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDExOiAnMHB4IDZweCA3cHggLTRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMjogJzBweCA3cHggOHB4IC00cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTM6ICcwcHggN3B4IDhweCAtNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE0OiAnMHB4IDdweCA5cHggLTRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNTogJzBweCA4cHggOXB4IC01cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTY6ICcwcHggOHB4IDEwcHggLTVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNzogJzBweCA4cHggMTFweCAtNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE4OiAnMHB4IDlweCAxMXB4IC01cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTk6ICcwcHggOXB4IDEycHggLTZweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMDogJzBweCAxMHB4IDEzcHggLTZweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMTogJzBweCAxMHB4IDEzcHggLTZweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMjogJzBweCAxMHB4IDE0cHggLTZweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMzogJzBweCAxMXB4IDE0cHggLTdweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyNDogJzBweCAxMXB4IDE1cHggLTdweCAjeyRzaGFkb3ctY29sb3J9J1xuICApO1xufVxuXG5AZnVuY3Rpb24gX2dldC1wZW51bWJyYS1tYXAoJGNvbG9yLCAkb3BhY2l0eSkge1xuICAkc2hhZG93LWNvbG9yOiBpZih0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IsIHJnYmEoJGNvbG9yLCAkb3BhY2l0eSAqIDAuMTQpLCAkY29sb3IpO1xuXG4gIEByZXR1cm4gKFxuICAgIDA6ICcwcHggMHB4IDBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTogJzBweCAxcHggMXB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyOiAnMHB4IDJweCAycHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDM6ICcwcHggM3B4IDRweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNDogJzBweCA0cHggNXB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA1OiAnMHB4IDVweCA4cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDY6ICcwcHggNnB4IDEwcHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDc6ICcwcHggN3B4IDEwcHggMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDg6ICcwcHggOHB4IDEwcHggMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDk6ICcwcHggOXB4IDEycHggMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEwOiAnMHB4IDEwcHggMTRweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTE6ICcwcHggMTFweCAxNXB4IDFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMjogJzBweCAxMnB4IDE3cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEzOiAnMHB4IDEzcHggMTlweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTQ6ICcwcHggMTRweCAyMXB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNTogJzBweCAxNXB4IDIycHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE2OiAnMHB4IDE2cHggMjRweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTc6ICcwcHggMTdweCAyNnB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxODogJzBweCAxOHB4IDI4cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE5OiAnMHB4IDE5cHggMjlweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjA6ICcwcHggMjBweCAzMXB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMTogJzBweCAyMXB4IDMzcHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIyOiAnMHB4IDIycHggMzVweCAzcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjM6ICcwcHggMjNweCAzNnB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyNDogJzBweCAyNHB4IDM4cHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nXG4gICk7XG59XG5cbkBmdW5jdGlvbiBfZ2V0LWFtYmllbnQtbWFwKCRjb2xvciwgJG9wYWNpdHkpIHtcbiAgJHNoYWRvdy1jb2xvcjogaWYodHlwZS1vZigkY29sb3IpID09IGNvbG9yLCByZ2JhKCRjb2xvciwgJG9wYWNpdHkgKiAwLjEyKSwgJGNvbG9yKTtcblxuICBAcmV0dXJuIChcbiAgICAwOiAnMHB4IDBweCAwcHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE6ICcwcHggMXB4IDNweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjogJzBweCAxcHggNXB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAzOiAnMHB4IDFweCA4cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDQ6ICcwcHggMXB4IDEwcHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDU6ICcwcHggMXB4IDE0cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDY6ICcwcHggMXB4IDE4cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDc6ICcwcHggMnB4IDE2cHggMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDg6ICcwcHggM3B4IDE0cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDk6ICcwcHggM3B4IDE2cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEwOiAnMHB4IDRweCAxOHB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMTogJzBweCA0cHggMjBweCAzcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTI6ICcwcHggNXB4IDIycHggNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEzOiAnMHB4IDVweCAyNHB4IDRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNDogJzBweCA1cHggMjZweCA0cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTU6ICcwcHggNnB4IDI4cHggNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE2OiAnMHB4IDZweCAzMHB4IDVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNzogJzBweCA2cHggMzJweCA1cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTg6ICcwcHggN3B4IDM0cHggNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE5OiAnMHB4IDdweCAzNnB4IDZweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMDogJzBweCA4cHggMzhweCA3cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjE6ICcwcHggOHB4IDQwcHggN3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIyOiAnMHB4IDhweCA0MnB4IDdweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMzogJzBweCA5cHggNDRweCA4cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjQ6ICcwcHggOXB4IDQ2cHggOHB4ICN7JHNoYWRvdy1jb2xvcn0nXG4gICk7XG59XG5cbi8vIFRoZSBkZWZhdWx0IGR1cmF0aW9uIHZhbHVlIGZvciBlbGV2YXRpb24gdHJhbnNpdGlvbnMuXG4kbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uOiAyODBtcyAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgZWFzaW5nIHZhbHVlIGZvciBlbGV2YXRpb24gdHJhbnNpdGlvbnMuXG4kbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJG1hdC1mYXN0LW91dC1zbG93LWluLXRpbWluZy1mdW5jdGlvbjtcblxuLy8gVGhlIGRlZmF1bHQgY29sb3IgZm9yIGVsZXZhdGlvbiBzaGFkb3dzLlxuJG1hdC1lbGV2YXRpb24tY29sb3I6IGJsYWNrICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBvcGFjaXR5IHNjYWxpbmcgdmFsdWUgZm9yIGVsZXZhdGlvbiBzaGFkb3dzLlxuJG1hdC1lbGV2YXRpb24tb3BhY2l0eTogMSAhZGVmYXVsdDtcblxuLy8gUHJlZml4IGZvciBlbGV2YXRpb24tcmVsYXRlZCBzZWxlY3RvcnMuXG4kbWF0LWVsZXZhdGlvbi1wcmVmaXg6ICdtYXQtZWxldmF0aW9uLXonO1xuXG4vLyBBcHBsaWVzIHRoZSBjb3JyZWN0IGNzcyBydWxlcyB0byBhbiBlbGVtZW50IHRvIGdpdmUgaXQgdGhlIGVsZXZhdGlvbiBzcGVjaWZpZWQgYnkgJHpWYWx1ZS5cbi8vIFRoZSAkelZhbHVlIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyNC5cbkBtaXhpbiBtYXQtZWxldmF0aW9uKCR6VmFsdWUsICRjb2xvcjogJG1hdC1lbGV2YXRpb24tY29sb3IsICRvcGFjaXR5OiAkbWF0LWVsZXZhdGlvbi1vcGFjaXR5KSB7XG4gIEBpZiB0eXBlLW9mKCR6VmFsdWUpICE9IG51bWJlciBvciBub3QgdW5pdGxlc3MoJHpWYWx1ZSkge1xuICAgIEBlcnJvciAnJHpWYWx1ZSBtdXN0IGJlIGEgdW5pdGxlc3MgbnVtYmVyJztcbiAgfVxuICBAaWYgJHpWYWx1ZSA8IDAgb3IgJHpWYWx1ZSA+IDI0IHtcbiAgICBAZXJyb3IgJyR6VmFsdWUgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDI0JztcbiAgfVxuXG4gIGJveC1zaGFkb3c6ICN7bWFwLWdldChfZ2V0LXVtYnJhLW1hcCgkY29sb3IsICRvcGFjaXR5KSwgJHpWYWx1ZSl9LFxuICAgICAgICAgICAgICAje21hcC1nZXQoX2dldC1wZW51bWJyYS1tYXAoJGNvbG9yLCAkb3BhY2l0eSksICR6VmFsdWUpfSxcbiAgICAgICAgICAgICAgI3ttYXAtZ2V0KF9nZXQtYW1iaWVudC1tYXAoJGNvbG9yLCAkb3BhY2l0eSksICR6VmFsdWUpfTtcbn1cblxuLy8gQXBwbGllcyB0aGUgZWxldmF0aW9uIHRvIGFuIGVsZW1lbnQgaW4gYSBtYW5uZXIgdGhhdCBhbGxvd3Ncbi8vIGNvbnN1bWVycyB0byBvdmVycmlkZSBpdCB2aWEgdGhlIE1hdGVyaWFsIGVsZXZhdGlvbiBjbGFzc2VzLlxuQG1peGluIG1hdC1vdmVycmlkYWJsZS1lbGV2YXRpb24oXG4gICAgJHpWYWx1ZSxcbiAgICAkY29sb3I6ICRtYXQtZWxldmF0aW9uLWNvbG9yLFxuICAgICRvcGFjaXR5OiAkbWF0LWVsZXZhdGlvbi1vcGFjaXR5KSB7XG4gICY6bm90KFtjbGFzcyo9JyN7JG1hdC1lbGV2YXRpb24tcHJlZml4fSddKSB7XG4gICAgQGluY2x1ZGUgbWF0LWVsZXZhdGlvbigkelZhbHVlLCAkY29sb3IsICRvcGFjaXR5KTtcbiAgfVxufVxuXG4vLyBSZXR1cm5zIGEgc3RyaW5nIHRoYXQgY2FuIGJlIHVzZWQgYXMgdGhlIHZhbHVlIGZvciBhIHRyYW5zaXRpb24gcHJvcGVydHkgZm9yIGVsZXZhdGlvbi5cbi8vIENhbGxpbmcgdGhpcyBmdW5jdGlvbiBkaXJlY3RseSBpcyB1c2VmdWwgaW4gc2l0dWF0aW9ucyB3aGVyZSBhIGNvbXBvbmVudCBuZWVkcyB0byB0cmFuc2l0aW9uXG4vLyBtb3JlIHRoYW4gb25lIHByb3BlcnR5LlxuLy9cbi8vIC5mb28ge1xuLy8gICB0cmFuc2l0aW9uOiBtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tcHJvcGVydHktdmFsdWUoKSwgb3BhY2l0eSAxMDBtcyBlYXNlO1xuLy8gfVxuQGZ1bmN0aW9uIG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1wcm9wZXJ0eS12YWx1ZShcbiAgICAkZHVyYXRpb246ICRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24sXG4gICAgJGVhc2luZzogJG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pIHtcbiAgQHJldHVybiBib3gtc2hhZG93ICN7JGR1cmF0aW9ufSAjeyRlYXNpbmd9O1xufVxuXG4vLyBBcHBsaWVzIHRoZSBjb3JyZWN0IGNzcyBydWxlcyBuZWVkZWQgdG8gaGF2ZSBhbiBlbGVtZW50IHRyYW5zaXRpb24gYmV0d2VlbiBlbGV2YXRpb25zLlxuLy8gVGhpcyBtaXhpbiBzaG91bGQgYmUgYXBwbGllZCB0byBlbGVtZW50cyB3aG9zZSBlbGV2YXRpb24gdmFsdWVzIHdpbGwgY2hhbmdlIGRlcGVuZGluZyBvbiB0aGVpclxuLy8gY29udGV4dCAoZS5nLiB3aGVuIGFjdGl2ZSBvciBkaXNhYmxlZCkuXG4vL1xuLy8gTk9URSh0cmF2aXNrYXVmbWFuKTogQm90aCB0aGlzIG1peGluIGFuZCB0aGUgYWJvdmUgZnVuY3Rpb24gdXNlIGRlZmF1bHQgcGFyYW1ldGVycyBzbyB0aGV5IGNhblxuLy8gYmUgdXNlZCBpbiB0aGUgc2FtZSB3YXkgYnkgY2xpZW50cy5cbkBtaXhpbiBtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24oXG4gICAgJGR1cmF0aW9uOiAkbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uLFxuICAgICRlYXNpbmc6ICRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKSB7XG4gIHRyYW5zaXRpb246IG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1wcm9wZXJ0eS12YWx1ZSgkZHVyYXRpb24sICRlYXNpbmcpO1xufVxuXG5cbkBtaXhpbiBtYXQtcHJpdmF0ZS10aGVtZS1lbGV2YXRpb24oJHpWYWx1ZSwgJGNvbmZpZywgJG9wYWNpdHk6ICRtYXQtZWxldmF0aW9uLW9wYWNpdHkpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG4gICRlbGV2YXRpb24tY29sb3I6IG1hcC1nZXQoJGZvcmVncm91bmQsIGVsZXZhdGlvbik7XG4gICRlbGV2YXRpb24tY29sb3Itb3ItZGVmYXVsdDogaWYoJGVsZXZhdGlvbi1jb2xvciA9PSBudWxsLCAkbWF0LWVsZXZhdGlvbi1jb2xvciwgJGVsZXZhdGlvbi1jb2xvcik7XG5cbiAgQGluY2x1ZGUgbWF0LWVsZXZhdGlvbigkelZhbHVlLCAkZWxldmF0aW9uLWNvbG9yLW9yLWRlZmF1bHQsICRvcGFjaXR5KTtcbn1cblxuQG1peGluIG1hdC1wcml2YXRlLXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbigkelZhbHVlLCAkY29uZmlnLCAkb3BhY2l0eTogJG1hdC1lbGV2YXRpb24tb3BhY2l0eSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGVsZXZhdGlvbi1jb2xvcjogbWFwLWdldCgkZm9yZWdyb3VuZCwgZWxldmF0aW9uKTtcbiAgJGVsZXZhdGlvbi1jb2xvci1vci1kZWZhdWx0OiBpZigkZWxldmF0aW9uLWNvbG9yID09IG51bGwsICRtYXQtZWxldmF0aW9uLWNvbG9yLCAkZWxldmF0aW9uLWNvbG9yKTtcblxuICBAaW5jbHVkZSBtYXQtb3ZlcnJpZGFibGUtZWxldmF0aW9uKCR6VmFsdWUsICRlbGV2YXRpb24tY29sb3Itb3ItZGVmYXVsdCwgJG9wYWNpdHkpO1xufVxuXG4vLyBJZiB0aGUgbWF0LWFuaW1hdGlvbi1ub29wIGNsYXNzIGlzIHByZXNlbnQgb24gdGhlIGNvbXBvbmVudHMgcm9vdCBlbGVtZW50LFxuLy8gcHJldmVudCBub24gY3NzIGFuaW1hdGlvbnMgZnJvbSBydW5uaW5nLlxuLy8gTk9URTogQ3VycmVudGx5IHRoaXMgbWl4aW4gc2hvdWxkIG9ubHkgYmUgdXNlZCB3aXRoIGNvbXBvbmVudHMgdGhhdCBkbyBub3Rcbi8vIGhhdmUgYW55IHByb2plY3RlZCBjb250ZW50LlxuQG1peGluIG1hdC1wcml2YXRlLWFuaW1hdGlvbi1ub29wKCkge1xuICAvLyBAYXQtcm9vdCBpcyB1c2VkIHRvIHN0ZXBzIG91dHNpZGUgb2YgdGhlIGhpZXJhcmNoeSBvZiB0aGUgc2NzcyBydWxlcy4gVGhpcyBpc1xuICAvLyBkb25lIHRvIGFsbG93IGEgY2xhc3MgdG8gYmUgYWRkZWQgdG8gYmUgYWRkZWQgdG8gYmFzZSBvZiB0aGUgc2NzcyBuZXN0aW5nXG4gIC8vIGNvbnRleHQuXG4gIC8vIEZvciBleGFtcGxlOlxuICAvLyAubXktcm9vdCB7XG4gIC8vICAgLm15LXN1YmNsYXNzIHtcbiAgLy8gICAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1hbmltYXRpb24tbm9vcCgpO1xuICAvLyAgICB9XG4gIC8vIH1cbiAgLy8gcmVzdWx0cyBpbjpcbiAgLy8gLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm15LXJvb3QgLm15LXN1YmNsYXNzIHsgLi4uIH1cbiAgQGF0LXJvb3QgLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlI3smfSB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gQ29sb3IgcGFsZXR0ZXMgZnJvbSB0aGUgTWF0ZXJpYWwgRGVzaWduIHNwZWMuXG4vLyBTZWUgaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vY29sb3IvXG4vL1xuLy8gQ29udHJhc3QgY29sb3JzIGFyZSBoYXJkLWNvZGVkIGJlY2F1c2UgaXQgaXMgdG9vIGRpZmZpY3VsdCAocHJvYmFibHkgaW1wb3NzaWJsZSkgdG9cbi8vIGNhbGN1bGF0ZSB0aGVtLiBUaGVzZSBjb250cmFzdCBjb2xvcnMgYXJlIHB1bGxlZCBmcm9tIHRoZSBwdWJsaWMgTWF0ZXJpYWwgRGVzaWduIHNwZWMgc3dhdGNoZXMuXG4vLyBXaGlsZSB0aGUgY29udHJhc3QgY29sb3JzIGluIHRoZSBzcGVjIGFyZSBub3QgcHJlc2NyaXB0aXZlLCB3ZSB1c2UgdGhlbSBmb3IgY29udmVuaWVuY2UuXG5cblxuLy8gQGRlcHJlY2F0ZWQgcmVuYW1lZCB0byAkZGFyay1wcmltYXJ5LXRleHQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kYmxhY2stODctb3BhY2l0eTogcmdiYShibGFjaywgMC44Nyk7XG4vLyBAZGVwcmVjYXRlZCByZW5hbWVkIHRvICRsaWdodC1wcmltYXJ5LXRleHQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kd2hpdGUtODctb3BhY2l0eTogcmdiYSh3aGl0ZSwgMC44Nyk7XG4vLyBAZGVwcmVjYXRlZCB1c2UgJGRhcmstW3NlY29uZGFyeS10ZXh0LGRpc2FibGVkLXRleHQsZGl2aWRlcnMsZm9jdXNlZF0gaW5zdGVhZC5cbi8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjBcbiRibGFjay0xMi1vcGFjaXR5OiByZ2JhKGJsYWNrLCAwLjEyKTtcbi8vIEBkZXByZWNhdGVkIHVzZSAkbGlnaHQtW3NlY29uZGFyeS10ZXh0LGRpc2FibGVkLXRleHQsZGl2aWRlcnMsZm9jdXNlZF0gaW5zdGVhZC5cbi8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjBcbiR3aGl0ZS0xMi1vcGFjaXR5OiByZ2JhKHdoaXRlLCAwLjEyKTtcbi8vIEBkZXByZWNhdGVkIHVzZSAkZGFyay1bc2Vjb25kYXJ5LXRleHQsZGlzYWJsZWQtdGV4dCxkaXZpZGVycyxmb2N1c2VkXSBpbnN0ZWFkLlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJGJsYWNrLTYtb3BhY2l0eTogcmdiYShibGFjaywgMC4wNik7XG4vLyBAZGVwcmVjYXRlZCB1c2UgJGxpZ2h0LVtzZWNvbmRhcnktdGV4dCxkaXNhYmxlZC10ZXh0LGRpdmlkZXJzLGZvY3VzZWRdIGluc3RlYWQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kd2hpdGUtNi1vcGFjaXR5OiByZ2JhKHdoaXRlLCAwLjA2KTtcblxuJGRhcmstcHJpbWFyeS10ZXh0OiByZ2JhKGJsYWNrLCAwLjg3KTtcbiRkYXJrLXNlY29uZGFyeS10ZXh0OiByZ2JhKGJsYWNrLCAwLjU0KTtcbiRkYXJrLWRpc2FibGVkLXRleHQ6IHJnYmEoYmxhY2ssIDAuMzgpO1xuJGRhcmstZGl2aWRlcnM6IHJnYmEoYmxhY2ssIDAuMTIpO1xuJGRhcmstZm9jdXNlZDogcmdiYShibGFjaywgMC4xMik7XG4kbGlnaHQtcHJpbWFyeS10ZXh0OiB3aGl0ZTtcbiRsaWdodC1zZWNvbmRhcnktdGV4dDogcmdiYSh3aGl0ZSwgMC43KTtcbiRsaWdodC1kaXNhYmxlZC10ZXh0OiByZ2JhKHdoaXRlLCAwLjUpO1xuJGxpZ2h0LWRpdmlkZXJzOiByZ2JhKHdoaXRlLCAwLjEyKTtcbiRsaWdodC1mb2N1c2VkOiByZ2JhKHdoaXRlLCAwLjEyKTtcblxuJG1hdC1yZWQ6IChcbiAgNTA6ICNmZmViZWUsXG4gIDEwMDogI2ZmY2RkMixcbiAgMjAwOiAjZWY5YTlhLFxuICAzMDA6ICNlNTczNzMsXG4gIDQwMDogI2VmNTM1MCxcbiAgNTAwOiAjZjQ0MzM2LFxuICA2MDA6ICNlNTM5MzUsXG4gIDcwMDogI2QzMmYyZixcbiAgODAwOiAjYzYyODI4LFxuICA5MDA6ICNiNzFjMWMsXG4gIEExMDA6ICNmZjhhODAsXG4gIEEyMDA6ICNmZjUyNTIsXG4gIEE0MDA6ICNmZjE3NDQsXG4gIEE3MDA6ICNkNTAwMDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1waW5rOiAoXG4gIDUwOiAjZmNlNGVjLFxuICAxMDA6ICNmOGJiZDAsXG4gIDIwMDogI2Y0OGZiMSxcbiAgMzAwOiAjZjA2MjkyLFxuICA0MDA6ICNlYzQwN2EsXG4gIDUwMDogI2U5MWU2MyxcbiAgNjAwOiAjZDgxYjYwLFxuICA3MDA6ICNjMjE4NWIsXG4gIDgwMDogI2FkMTQ1NyxcbiAgOTAwOiAjODgwZTRmLFxuICBBMTAwOiAjZmY4MGFiLFxuICBBMjAwOiAjZmY0MDgxLFxuICBBNDAwOiAjZjUwMDU3LFxuICBBNzAwOiAjYzUxMTYyLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtcHVycGxlOiAoXG4gIDUwOiAjZjNlNWY1LFxuICAxMDA6ICNlMWJlZTcsXG4gIDIwMDogI2NlOTNkOCxcbiAgMzAwOiAjYmE2OGM4LFxuICA0MDA6ICNhYjQ3YmMsXG4gIDUwMDogIzljMjdiMCxcbiAgNjAwOiAjOGUyNGFhLFxuICA3MDA6ICM3YjFmYTIsXG4gIDgwMDogIzZhMWI5YSxcbiAgOTAwOiAjNGExNDhjLFxuICBBMTAwOiAjZWE4MGZjLFxuICBBMjAwOiAjZTA0MGZiLFxuICBBNDAwOiAjZDUwMGY5LFxuICBBNzAwOiAjYWEwMGZmLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1kZWVwLXB1cnBsZTogKFxuICA1MDogI2VkZTdmNixcbiAgMTAwOiAjZDFjNGU5LFxuICAyMDA6ICNiMzlkZGIsXG4gIDMwMDogIzk1NzVjZCxcbiAgNDAwOiAjN2U1N2MyLFxuICA1MDA6ICM2NzNhYjcsXG4gIDYwMDogIzVlMzViMSxcbiAgNzAwOiAjNTEyZGE4LFxuICA4MDA6ICM0NTI3YTAsXG4gIDkwMDogIzMxMWI5MixcbiAgQTEwMDogI2IzODhmZixcbiAgQTIwMDogIzdjNGRmZixcbiAgQTQwMDogIzY1MWZmZixcbiAgQTcwMDogIzYyMDBlYSxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtaW5kaWdvOiAoXG4gIDUwOiAjZThlYWY2LFxuICAxMDA6ICNjNWNhZTksXG4gIDIwMDogIzlmYThkYSxcbiAgMzAwOiAjNzk4NmNiLFxuICA0MDA6ICM1YzZiYzAsXG4gIDUwMDogIzNmNTFiNSxcbiAgNjAwOiAjMzk0OWFiLFxuICA3MDA6ICMzMDNmOWYsXG4gIDgwMDogIzI4MzU5MyxcbiAgOTAwOiAjMWEyMzdlLFxuICBBMTAwOiAjOGM5ZWZmLFxuICBBMjAwOiAjNTM2ZGZlLFxuICBBNDAwOiAjM2Q1YWZlLFxuICBBNzAwOiAjMzA0ZmZlLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1ibHVlOiAoXG4gIDUwOiAjZTNmMmZkLFxuICAxMDA6ICNiYmRlZmIsXG4gIDIwMDogIzkwY2FmOSxcbiAgMzAwOiAjNjRiNWY2LFxuICA0MDA6ICM0MmE1ZjUsXG4gIDUwMDogIzIxOTZmMyxcbiAgNjAwOiAjMWU4OGU1LFxuICA3MDA6ICMxOTc2ZDIsXG4gIDgwMDogIzE1NjVjMCxcbiAgOTAwOiAjMGQ0N2ExLFxuICBBMTAwOiAjODJiMWZmLFxuICBBMjAwOiAjNDQ4YWZmLFxuICBBNDAwOiAjMjk3OWZmLFxuICBBNzAwOiAjMjk2MmZmLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtbGlnaHQtYmx1ZTogKFxuICA1MDogI2UxZjVmZSxcbiAgMTAwOiAjYjNlNWZjLFxuICAyMDA6ICM4MWQ0ZmEsXG4gIDMwMDogIzRmYzNmNyxcbiAgNDAwOiAjMjliNmY2LFxuICA1MDA6ICMwM2E5ZjQsXG4gIDYwMDogIzAzOWJlNSxcbiAgNzAwOiAjMDI4OGQxLFxuICA4MDA6ICMwMjc3YmQsXG4gIDkwMDogIzAxNTc5YixcbiAgQTEwMDogIzgwZDhmZixcbiAgQTIwMDogIzQwYzRmZixcbiAgQTQwMDogIzAwYjBmZixcbiAgQTcwMDogIzAwOTFlYSxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1jeWFuOiAoXG4gIDUwOiAjZTBmN2ZhLFxuICAxMDA6ICNiMmViZjIsXG4gIDIwMDogIzgwZGVlYSxcbiAgMzAwOiAjNGRkMGUxLFxuICA0MDA6ICMyNmM2ZGEsXG4gIDUwMDogIzAwYmNkNCxcbiAgNjAwOiAjMDBhY2MxLFxuICA3MDA6ICMwMDk3YTcsXG4gIDgwMDogIzAwODM4ZixcbiAgOTAwOiAjMDA2MDY0LFxuICBBMTAwOiAjODRmZmZmLFxuICBBMjAwOiAjMThmZmZmLFxuICBBNDAwOiAjMDBlNWZmLFxuICBBNzAwOiAjMDBiOGQ0LFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtdGVhbDogKFxuICA1MDogI2UwZjJmMSxcbiAgMTAwOiAjYjJkZmRiLFxuICAyMDA6ICM4MGNiYzQsXG4gIDMwMDogIzRkYjZhYyxcbiAgNDAwOiAjMjZhNjlhLFxuICA1MDA6ICMwMDk2ODgsXG4gIDYwMDogIzAwODk3YixcbiAgNzAwOiAjMDA3OTZiLFxuICA4MDA6ICMwMDY5NWMsXG4gIDkwMDogIzAwNGQ0MCxcbiAgQTEwMDogI2E3ZmZlYixcbiAgQTIwMDogIzY0ZmZkYSxcbiAgQTQwMDogIzFkZTliNixcbiAgQTcwMDogIzAwYmZhNSxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWdyZWVuOiAoXG4gIDUwOiAjZThmNWU5LFxuICAxMDA6ICNjOGU2YzksXG4gIDIwMDogI2E1ZDZhNyxcbiAgMzAwOiAjODFjNzg0LFxuICA0MDA6ICM2NmJiNmEsXG4gIDUwMDogIzRjYWY1MCxcbiAgNjAwOiAjNDNhMDQ3LFxuICA3MDA6ICMzODhlM2MsXG4gIDgwMDogIzJlN2QzMixcbiAgOTAwOiAjMWI1ZTIwLFxuICBBMTAwOiAjYjlmNmNhLFxuICBBMjAwOiAjNjlmMGFlLFxuICBBNDAwOiAjMDBlNjc2LFxuICBBNzAwOiAjMDBjODUzLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1saWdodC1ncmVlbjogKFxuICA1MDogI2YxZjhlOSxcbiAgMTAwOiAjZGNlZGM4LFxuICAyMDA6ICNjNWUxYTUsXG4gIDMwMDogI2FlZDU4MSxcbiAgNDAwOiAjOWNjYzY1LFxuICA1MDA6ICM4YmMzNGEsXG4gIDYwMDogIzdjYjM0MixcbiAgNzAwOiAjNjg5ZjM4LFxuICA4MDA6ICM1NThiMmYsXG4gIDkwMDogIzMzNjkxZSxcbiAgQTEwMDogI2NjZmY5MCxcbiAgQTIwMDogI2IyZmY1OSxcbiAgQTQwMDogIzc2ZmYwMyxcbiAgQTcwMDogIzY0ZGQxNyxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1saW1lOiAoXG4gIDUwOiAjZjlmYmU3LFxuICAxMDA6ICNmMGY0YzMsXG4gIDIwMDogI2U2ZWU5YyxcbiAgMzAwOiAjZGNlNzc1LFxuICA0MDA6ICNkNGUxNTcsXG4gIDUwMDogI2NkZGMzOSxcbiAgNjAwOiAjYzBjYTMzLFxuICA3MDA6ICNhZmI0MmIsXG4gIDgwMDogIzllOWQyNCxcbiAgOTAwOiAjODI3NzE3LFxuICBBMTAwOiAjZjRmZjgxLFxuICBBMjAwOiAjZWVmZjQxLFxuICBBNDAwOiAjYzZmZjAwLFxuICBBNzAwOiAjYWVlYTAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC15ZWxsb3c6IChcbiAgNTA6ICNmZmZkZTcsXG4gIDEwMDogI2ZmZjljNCxcbiAgMjAwOiAjZmZmNTlkLFxuICAzMDA6ICNmZmYxNzYsXG4gIDQwMDogI2ZmZWU1OCxcbiAgNTAwOiAjZmZlYjNiLFxuICA2MDA6ICNmZGQ4MzUsXG4gIDcwMDogI2ZiYzAyZCxcbiAgODAwOiAjZjlhODI1LFxuICA5MDA6ICNmNTdmMTcsXG4gIEExMDA6ICNmZmZmOGQsXG4gIEEyMDA6ICNmZmZmMDAsXG4gIEE0MDA6ICNmZmVhMDAsXG4gIEE3MDA6ICNmZmQ2MDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtYW1iZXI6IChcbiAgNTA6ICNmZmY4ZTEsXG4gIDEwMDogI2ZmZWNiMyxcbiAgMjAwOiAjZmZlMDgyLFxuICAzMDA6ICNmZmQ1NGYsXG4gIDQwMDogI2ZmY2EyOCxcbiAgNTAwOiAjZmZjMTA3LFxuICA2MDA6ICNmZmIzMDAsXG4gIDcwMDogI2ZmYTAwMCxcbiAgODAwOiAjZmY4ZjAwLFxuICA5MDA6ICNmZjZmMDAsXG4gIEExMDA6ICNmZmU1N2YsXG4gIEEyMDA6ICNmZmQ3NDAsXG4gIEE0MDA6ICNmZmM0MDAsXG4gIEE3MDA6ICNmZmFiMDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtb3JhbmdlOiAoXG4gIDUwOiAjZmZmM2UwLFxuICAxMDA6ICNmZmUwYjIsXG4gIDIwMDogI2ZmY2M4MCxcbiAgMzAwOiAjZmZiNzRkLFxuICA0MDA6ICNmZmE3MjYsXG4gIDUwMDogI2ZmOTgwMCxcbiAgNjAwOiAjZmI4YzAwLFxuICA3MDA6ICNmNTdjMDAsXG4gIDgwMDogI2VmNmMwMCxcbiAgOTAwOiAjZTY1MTAwLFxuICBBMTAwOiAjZmZkMTgwLFxuICBBMjAwOiAjZmZhYjQwLFxuICBBNDAwOiAjZmY5MTAwLFxuICBBNzAwOiAjZmY2ZDAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiBibGFjayxcbiAgKVxuKTtcblxuJG1hdC1kZWVwLW9yYW5nZTogKFxuICA1MDogI2ZiZTllNyxcbiAgMTAwOiAjZmZjY2JjLFxuICAyMDA6ICNmZmFiOTEsXG4gIDMwMDogI2ZmOGE2NSxcbiAgNDAwOiAjZmY3MDQzLFxuICA1MDA6ICNmZjU3MjIsXG4gIDYwMDogI2Y0NTExZSxcbiAgNzAwOiAjZTY0YTE5LFxuICA4MDA6ICNkODQzMTUsXG4gIDkwMDogI2JmMzYwYyxcbiAgQTEwMDogI2ZmOWU4MCxcbiAgQTIwMDogI2ZmNmU0MCxcbiAgQTQwMDogI2ZmM2QwMCxcbiAgQTcwMDogI2RkMmMwMCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtYnJvd246IChcbiAgNTA6ICNlZmViZTksXG4gIDEwMDogI2Q3Y2NjOCxcbiAgMjAwOiAjYmNhYWE0LFxuICAzMDA6ICNhMTg4N2YsXG4gIDQwMDogIzhkNmU2MyxcbiAgNTAwOiAjNzk1NTQ4LFxuICA2MDA6ICM2ZDRjNDEsXG4gIDcwMDogIzVkNDAzNyxcbiAgODAwOiAjNGUzNDJlLFxuICA5MDA6ICMzZTI3MjMsXG4gIEExMDA6ICNkN2NjYzgsXG4gIEEyMDA6ICNiY2FhYTQsXG4gIEE0MDA6ICM4ZDZlNjMsXG4gIEE3MDA6ICM1ZDQwMzcsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtZ3JleTogKFxuICA1MDogI2ZhZmFmYSxcbiAgMTAwOiAjZjVmNWY1LFxuICAyMDA6ICNlZWVlZWUsXG4gIDMwMDogI2UwZTBlMCxcbiAgNDAwOiAjYmRiZGJkLFxuICA1MDA6ICM5ZTllOWUsXG4gIDYwMDogIzc1NzU3NSxcbiAgNzAwOiAjNjE2MTYxLFxuICA4MDA6ICM0MjQyNDIsXG4gIDkwMDogIzIxMjEyMSxcbiAgQTEwMDogI2ZmZmZmZixcbiAgQTIwMDogI2VlZWVlZSxcbiAgQTQwMDogI2JkYmRiZCxcbiAgQTcwMDogIzYxNjE2MSxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4vLyBBbGlhcyBmb3IgYWx0ZXJuYXRlIHNwZWxsaW5nLlxuJG1hdC1ncmF5OiAkbWF0LWdyZXk7XG5cbiRtYXQtYmx1ZS1ncmV5OiAoXG4gIDUwOiAjZWNlZmYxLFxuICAxMDA6ICNjZmQ4ZGMsXG4gIDIwMDogI2IwYmVjNSxcbiAgMzAwOiAjOTBhNGFlLFxuICA0MDA6ICM3ODkwOWMsXG4gIDUwMDogIzYwN2Q4YixcbiAgNjAwOiAjNTQ2ZTdhLFxuICA3MDA6ICM0NTVhNjQsXG4gIDgwMDogIzM3NDc0ZixcbiAgOTAwOiAjMjYzMjM4LFxuICBBMTAwOiAjY2ZkOGRjLFxuICBBMjAwOiAjYjBiZWM1LFxuICBBNDAwOiAjNzg5MDljLFxuICBBNzAwOiAjNDU1YTY0LFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbi8vIEFsaWFzIGZvciBhbHRlcm5hdGUgc3BlbGxpbmcuXG4kbWF0LWJsdWUtZ3JheTogJG1hdC1ibHVlLWdyZXk7XG5cblxuLy8gQmFja2dyb3VuZCBwYWxldHRlIGZvciBsaWdodCB0aGVtZXMuXG4kbWF0LWxpZ2h0LXRoZW1lLWJhY2tncm91bmQ6IChcbiAgc3RhdHVzLWJhcjogbWFwLWdldCgkbWF0LWdyZXksIDMwMCksXG4gIGFwcC1iYXI6ICAgIG1hcC1nZXQoJG1hdC1ncmV5LCAxMDApLFxuICBiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRtYXQtZ3JleSwgNTApLFxuICBob3ZlcjogICAgICByZ2JhKGJsYWNrLCAwLjA0KSwgLy8gVE9ETyhrYXJhKTogY2hlY2sgc3R5bGUgd2l0aCBNYXRlcmlhbCBEZXNpZ24gVVhcbiAgY2FyZDogICAgICAgd2hpdGUsXG4gIGRpYWxvZzogICAgIHdoaXRlLFxuICBkaXNhYmxlZC1idXR0b246IHJnYmEoYmxhY2ssIDAuMTIpLFxuICByYWlzZWQtYnV0dG9uOiB3aGl0ZSxcbiAgZm9jdXNlZC1idXR0b246ICRkYXJrLWZvY3VzZWQsXG4gIHNlbGVjdGVkLWJ1dHRvbjogbWFwLWdldCgkbWF0LWdyZXksIDMwMCksXG4gIHNlbGVjdGVkLWRpc2FibGVkLWJ1dHRvbjogbWFwLWdldCgkbWF0LWdyZXksIDQwMCksXG4gIGRpc2FibGVkLWJ1dHRvbi10b2dnbGU6IG1hcC1nZXQoJG1hdC1ncmV5LCAyMDApLFxuICB1bnNlbGVjdGVkLWNoaXA6IG1hcC1nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBkaXNhYmxlZC1saXN0LW9wdGlvbjogbWFwLWdldCgkbWF0LWdyZXksIDIwMCksXG4gIHRvb2x0aXA6IG1hcC1nZXQoJG1hdC1ncmV5LCA3MDApLFxuKTtcblxuLy8gQmFja2dyb3VuZCBwYWxldHRlIGZvciBkYXJrIHRoZW1lcy5cbiRtYXQtZGFyay10aGVtZS1iYWNrZ3JvdW5kOiAoXG4gIHN0YXR1cy1iYXI6IGJsYWNrLFxuICBhcHAtYmFyOiAgICBtYXAtZ2V0KCRtYXQtZ3JleSwgOTAwKSxcbiAgYmFja2dyb3VuZDogIzMwMzAzMCxcbiAgaG92ZXI6ICAgICAgcmdiYSh3aGl0ZSwgMC4wNCksIC8vIFRPRE8oa2FyYSk6IGNoZWNrIHN0eWxlIHdpdGggTWF0ZXJpYWwgRGVzaWduIFVYXG4gIGNhcmQ6ICAgICAgIG1hcC1nZXQoJG1hdC1ncmV5LCA4MDApLFxuICBkaWFsb2c6ICAgICBtYXAtZ2V0KCRtYXQtZ3JleSwgODAwKSxcbiAgZGlzYWJsZWQtYnV0dG9uOiByZ2JhKHdoaXRlLCAwLjEyKSxcbiAgcmFpc2VkLWJ1dHRvbjogbWFwLWdldCgkbWF0LWdyZXksIDgwMCksXG4gIGZvY3VzZWQtYnV0dG9uOiAkbGlnaHQtZm9jdXNlZCxcbiAgc2VsZWN0ZWQtYnV0dG9uOiBtYXAtZ2V0KCRtYXQtZ3JleSwgOTAwKSxcbiAgc2VsZWN0ZWQtZGlzYWJsZWQtYnV0dG9uOiBtYXAtZ2V0KCRtYXQtZ3JleSwgODAwKSxcbiAgZGlzYWJsZWQtYnV0dG9uLXRvZ2dsZTogYmxhY2ssXG4gIHVuc2VsZWN0ZWQtY2hpcDogbWFwLWdldCgkbWF0LWdyZXksIDcwMCksXG4gIGRpc2FibGVkLWxpc3Qtb3B0aW9uOiBibGFjayxcbiAgdG9vbHRpcDogbWFwLWdldCgkbWF0LWdyZXksIDcwMCksXG4pO1xuXG4vLyBGb3JlZ3JvdW5kIHBhbGV0dGUgZm9yIGxpZ2h0IHRoZW1lcy5cbiRtYXQtbGlnaHQtdGhlbWUtZm9yZWdyb3VuZDogKFxuICBiYXNlOiAgICAgICAgICAgICAgYmxhY2ssXG4gIGRpdmlkZXI6ICAgICAgICAgICAkZGFyay1kaXZpZGVycyxcbiAgZGl2aWRlcnM6ICAgICAgICAgICRkYXJrLWRpdmlkZXJzLFxuICBkaXNhYmxlZDogICAgICAgICAgJGRhcmstZGlzYWJsZWQtdGV4dCxcbiAgZGlzYWJsZWQtYnV0dG9uOiAgIHJnYmEoYmxhY2ssIDAuMjYpLFxuICBkaXNhYmxlZC10ZXh0OiAgICAgJGRhcmstZGlzYWJsZWQtdGV4dCxcbiAgZWxldmF0aW9uOiAgICAgICAgIGJsYWNrLFxuICBoaW50LXRleHQ6ICAgICAgICAgJGRhcmstZGlzYWJsZWQtdGV4dCxcbiAgc2Vjb25kYXJ5LXRleHQ6ICAgICRkYXJrLXNlY29uZGFyeS10ZXh0LFxuICBpY29uOiAgICAgICAgICAgICAgcmdiYShibGFjaywgMC41NCksXG4gIGljb25zOiAgICAgICAgICAgICByZ2JhKGJsYWNrLCAwLjU0KSxcbiAgdGV4dDogICAgICAgICAgICAgIHJnYmEoYmxhY2ssIDAuODcpLFxuICBzbGlkZXItbWluOiAgICAgICAgcmdiYShibGFjaywgMC44NyksXG4gIHNsaWRlci1vZmY6ICAgICAgICByZ2JhKGJsYWNrLCAwLjI2KSxcbiAgc2xpZGVyLW9mZi1hY3RpdmU6IHJnYmEoYmxhY2ssIDAuMzgpLFxuKTtcblxuLy8gRm9yZWdyb3VuZCBwYWxldHRlIGZvciBkYXJrIHRoZW1lcy5cbiRtYXQtZGFyay10aGVtZS1mb3JlZ3JvdW5kOiAoXG4gIGJhc2U6ICAgICAgICAgICAgICB3aGl0ZSxcbiAgZGl2aWRlcjogICAgICAgICAgICRsaWdodC1kaXZpZGVycyxcbiAgZGl2aWRlcnM6ICAgICAgICAgICRsaWdodC1kaXZpZGVycyxcbiAgZGlzYWJsZWQ6ICAgICAgICAgICRsaWdodC1kaXNhYmxlZC10ZXh0LFxuICBkaXNhYmxlZC1idXR0b246ICAgcmdiYSh3aGl0ZSwgMC4zKSxcbiAgZGlzYWJsZWQtdGV4dDogICAgICRsaWdodC1kaXNhYmxlZC10ZXh0LFxuICBlbGV2YXRpb246ICAgICAgICAgYmxhY2ssXG4gIGhpbnQtdGV4dDogICAgICAgICAkbGlnaHQtZGlzYWJsZWQtdGV4dCxcbiAgc2Vjb25kYXJ5LXRleHQ6ICAgICRsaWdodC1zZWNvbmRhcnktdGV4dCxcbiAgaWNvbjogICAgICAgICAgICAgIHdoaXRlLFxuICBpY29uczogICAgICAgICAgICAgd2hpdGUsXG4gIHRleHQ6ICAgICAgICAgICAgICB3aGl0ZSxcbiAgc2xpZGVyLW1pbjogICAgICAgIHdoaXRlLFxuICBzbGlkZXItb2ZmOiAgICAgICAgcmdiYSh3aGl0ZSwgMC4zKSxcbiAgc2xpZGVyLW9mZi1hY3RpdmU6IHJnYmEod2hpdGUsIDAuMyksXG4pO1xuXG4vLyBOb3RlIHRoYXQgdGhpcyBmaWxlIGlzIGNhbGxlZCBgcHJpdmF0ZWAsIGJlY2F1c2UgdGhlIEFQSXMgaW4gaXQgYXJlbid0IHB1YmxpYyB5ZXQuXG4vLyBPbmNlIHRoZXkncmUgbWFkZSBhdmFpbGFibGUsIHRoZSBjb2RlIHNob3VsZCBiZSBtb3ZlZCBvdXQgaW50byBhbiBgaW5kZXguc2Nzc2AuXG5cbi8vIFRha2VuIGZyb20gbWF0LWRlbnNpdHkgd2l0aCBzbWFsbCBtb2RpZmljYXRpb25zIHRvIG5vdCByZWx5IG9uIHRoZSBuZXcgU2FzcyBtb2R1bGVcbi8vIHN5c3RlbSwgYW5kIHRvIHN1cHBvcnQgYXJiaXRyYXJ5IHByb3BlcnRpZXMgaW4gYSBkZW5zaXR5IGNvbmZpZ3VyYXRpb24uXG4vLyBodHRwczovL2dpdGh1Yi5jb20vbWF0ZXJpYWwtY29tcG9uZW50cy9tYXRlcmlhbC1jb21wb25lbnRzLXdlYi9ibG9iL21hc3Rlci9wYWNrYWdlcy9tZGMtZGVuc2l0eVxuXG4kX21hdC1kZW5zaXR5LWludGVydmFsOiA0cHggIWRlZmF1bHQ7XG4kX21hdC1kZW5zaXR5LW1pbmltdW0tc2NhbGU6IG1pbmltdW0gIWRlZmF1bHQ7XG4kX21hdC1kZW5zaXR5LW1heGltdW0tc2NhbGU6IG1heGltdW0gIWRlZmF1bHQ7XG4kX21hdC1kZW5zaXR5LXN1cHBvcnRlZC1zY2FsZXM6IChkZWZhdWx0LCBtaW5pbXVtLCBtYXhpbXVtKSAhZGVmYXVsdDtcbiRfbWF0LWRlbnNpdHktZGVmYXVsdC1zY2FsZTogMCAhZGVmYXVsdDtcblxuLy8gV2hldGhlciBkZW5zaXR5IHNob3VsZCBiZSBnZW5lcmF0ZWQgYXQgcm9vdC4gVGhpcyB3aWxsIGJlIHRlbXBvcmFyaWx5IHNldCB0byBgdHJ1ZWBcbi8vIHdoZW5ldmVyIGRlbnNpdHkgc3R5bGVzIGZvciBsZWdhY3kgdGhlbWVzIGFyZSBnZW5lcmF0ZWQuXG4kbWF0LXByaXZhdGUtZGVuc2l0eS1nZW5lcmF0ZS1hdC1yb290OiBmYWxzZTtcbi8vIFdoZXRoZXIgZGVuc2l0eSBzdHlsZXMgc2hvdWxkIGJlIGdlbmVyYXRlZC4gVGhpcyB3aWxsIGJlIHRlbXBvcmFyaWx5IHNldCB0byBgZmFsc2VgIGlmXG4vLyBkdXBsaWNhdGUgZGVuc2l0eSBzdHlsZXMgZm9yIGEgbGVnYWN5IHRoZW1lIHdvdWxkIGJlIGdlbmVyYXRlZC4gRm9yIGxlZ2FjeSB0aGVtZXMsXG4vLyB3ZSBhbHdheXMgZ2VuZXJhdGUgdGhlIGRlZmF1bHQgZGVuc2l0eSAqKm9ubHkgb25jZSoqIGF0IHJvb3QuXG4kbWF0LXByaXZhdGUtZGVuc2l0eS1nZW5lcmF0ZS1zdHlsZXM6IHRydWU7XG5cbi8vIE1peGluIHRoYXQgY2FuIGJlIHVzZWQgdG8gd3JhcCBkZW5zaXR5IHN0eWxlcyBvZiBnaXZlbiBjb21wb25lbnRzLiBUaGUgbWl4aW4gd2lsbFxuLy8gbW92ZSB0aGUgZGVuc2l0eSBzdHlsZXMgdG8gcm9vdCBpZiB0aGUgYCRtYXQtcHJpdmF0ZS1kZW5zaXR5LWdlbmVyYXRlLWF0LXJvb3RgIGdsb2JhbCB2YXJpYWJsZVxuLy8gaXMgc2V0LiBJZiBgJG1hdC1wcml2YXRlLWRlbnNpdHktZ2VuZXJhdGUtc3R5bGVzYCBpcyBzZXQgdG8gYGZhbHNlYCwgZ2VuZXJhdGlvbiBvZiBkZW5zaXR5XG4vLyBzdHlsZXMgd3JhcHBlZCBpbiB0aGlzIG1peGluIGlzIHNraXBwZWQuIFRoaXMgbWl4aW4gZXhpc3RzIHRvIGltcHJvdmUgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbi8vIG9mIHRoZSBuZXcgdGhlbWluZyBBUEkgd2hlcmUgZGVuc2l0eSBzdHlsZXMgYXJlIGluY2x1ZGVkIGFzIHBhcnQgb2YgdGhlbWVzLiBQcmV2aW91c2x5LFxuLy8gZGVuc2l0eSBzdHlsZXMgb2YgY29tcG9uZW50cyB3ZXJlIHBhcnQgb2YgdGhlaXIgYmFzZSBzdHlsZXMuIFdpdGggdGhlIG5ldyBBUEksIHRoZXkgYXJlXG4vLyBwYXJ0IG9mIHRoZSB0aGVtaW5nIHN5c3RlbS4gVGhlIGA8Li4+LXRoZW1lYCBtaXhpbnMgZ2VuZXJhdGUgZGVuc2l0eSBieSBkZWZhdWx0IHVubGVzc1xuLy8gdGhlIGRlbnNpdHkgY29uZmlndXJhdGlvbiBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCBhcyBwZXIgbmV3IEFQSS4gVGhpcyBtZWFucywgdGhhdCBwcm9qZWN0c1xuLy8gdXNpbmcgYDwuLj4tdGhlbWVgIG1peGlucyBmb3Igc2VwYXJhdGUgdGhlbWVzIChsaWtlIGAuZGFyay10aGVtZWApIHdpbGwgY2F1c2UgZHVwbGljYXRlXG4vLyBkZW5zaXR5IHN0eWxlcy4gVGhpcyBpcyBicmVha2luZyBhcyBpdCBpbmNyZWFzZXMgc3BlY2lmaWNpdHkgb2YgZGVuc2l0eSBzdHlsZXMuIFRoaXMgbWl4aW5cbi8vIHByb3ZpZGVzIGFuIEFQSSB0byBjb250cm9sIGdlbmVyYXRpb24gb2YgZGVuc2l0eSBzdHlsZXMgc28gdGhhdCB3ZSBjYW4gZW5zdXJlIHRoZXkgYXJlIG9ubHlcbi8vIGNyZWF0ZWQgKm9uY2UqIGFuZCBhdCByb290LlxuQG1peGluIG1hdC1wcml2YXRlLWRlbnNpdHktbGVnYWN5LWNvbXBhdGliaWxpdHkoKSB7XG4gIEBpZiAkbWF0LXByaXZhdGUtZGVuc2l0eS1nZW5lcmF0ZS1zdHlsZXMgYW5kICRtYXQtcHJpdmF0ZS1kZW5zaXR5LWdlbmVyYXRlLWF0LXJvb3Qge1xuICAgIEBhdC1yb290IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkbWF0LXByaXZhdGUtZGVuc2l0eS1nZW5lcmF0ZS1zdHlsZXMge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBmdW5jdGlvbiBtYXQtcHJpdmF0ZS1kZW5zaXR5LXByb3AtdmFsdWUoJGRlbnNpdHktY29uZmlnLCAkZGVuc2l0eS1zY2FsZSwgJHByb3BlcnR5LW5hbWUpIHtcbiAgQGlmICh0eXBlLW9mKCRkZW5zaXR5LXNjYWxlKSA9PSAnc3RyaW5nJyBhbmRcbiAgICAgIGluZGV4KCRsaXN0OiAkX21hdC1kZW5zaXR5LXN1cHBvcnRlZC1zY2FsZXMsICR2YWx1ZTogJGRlbnNpdHktc2NhbGUpID09IG51bGwpIHtcbiAgICBAZXJyb3IgJ21hdC1kZW5zaXR5OiBTdXBwb3J0ZWQgZGVuc2l0eSBzY2FsZXMgI3skX21hdC1kZW5zaXR5LXN1cHBvcnRlZC1zY2FsZXN9LCAnICArXG4gICAgICAnYnV0IHJlY2VpdmVkICN7JGRlbnNpdHktc2NhbGV9Lic7XG4gIH1cblxuICAkdmFsdWU6IG51bGw7XG4gICRwcm9wZXJ0eS1zY2FsZS1tYXA6IG1hcC1nZXQoJGRlbnNpdHktY29uZmlnLCAkcHJvcGVydHktbmFtZSk7XG5cbiAgQGlmIG1hcC1oYXMta2V5KCRwcm9wZXJ0eS1zY2FsZS1tYXAsICRkZW5zaXR5LXNjYWxlKSB7XG4gICAgJHZhbHVlOiBtYXAtZ2V0KCRwcm9wZXJ0eS1zY2FsZS1tYXAsICRkZW5zaXR5LXNjYWxlKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgJHZhbHVlOiBtYXAtZ2V0KCRwcm9wZXJ0eS1zY2FsZS1tYXAsIGRlZmF1bHQpICsgJGRlbnNpdHktc2NhbGUgKiAkX21hdC1kZW5zaXR5LWludGVydmFsO1xuICB9XG5cbiAgJG1pbi12YWx1ZTogbWFwLWdldCgkcHJvcGVydHktc2NhbGUtbWFwLCAkX21hdC1kZW5zaXR5LW1pbmltdW0tc2NhbGUpO1xuICAkbWF4LXZhbHVlOiBtYXAtZ2V0KCRwcm9wZXJ0eS1zY2FsZS1tYXAsICRfbWF0LWRlbnNpdHktbWF4aW11bS1zY2FsZSk7XG5cbiAgQGlmICgkdmFsdWUgPCAkbWluLXZhbHVlIG9yICR2YWx1ZSA+ICRtYXgtdmFsdWUpIHtcbiAgICBAZXJyb3IgJ21hdC1kZW5zaXR5OiAjeyRwcm9wZXJ0eS1uYW1lfSBtdXN0IGJlIGJldHdlZW4gI3skbWluLXZhbHVlfSBhbmQgJyArXG4gICAgICAnI3skbWF4LXZhbHVlfSAoaW5jbHVzaXZlKSwgYnV0IHJlY2VpdmVkICN7JHZhbHVlfS4nO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cblxuLy8gV2hldGhlciBkdXBsaWNhdGlvbiB3YXJuaW5ncyBzaG91bGQgYmUgZGlzYWJsZWQuIFdhcm5pbmdzIGVuYWJsZWQgYnkgZGVmYXVsdC5cbiRtYXQtdGhlbWUtaWdub3JlLWR1cGxpY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gV2hldGhlciBkZW5zaXR5IHNob3VsZCBiZSBnZW5lcmF0ZWQgYnkgZGVmYXVsdC5cbiRfbWF0LXRoZW1lLWdlbmVyYXRlLWRlZmF1bHQtZGVuc2l0eTogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gV2FybmluZyB0aGF0IHdpbGwgYmUgcHJpbnRlZCBpZiBkdXBsaWNhdGVkIHN0eWxlcyBhcmUgZ2VuZXJhdGVkIGJ5IGEgdGhlbWUuXG4kX21hdC10aGVtZS1kdXBsaWNhdGUtd2FybmluZzogJ1JlYWQgbW9yZSBhYm91dCBob3cgc3R5bGUgZHVwbGljYXRpb24gY2FuIGJlIGF2b2lkZWQgaW4gYSAnICtcbiAgJ2RlZGljYXRlZCBndWlkZS4gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9ibG9iL21hc3Rlci9ndWlkZXMvZHVwbGljYXRlLXRoZW1pbmctc3R5bGVzLm1kJztcblxuLy8gVGhlc2UgdmFyaWFibGUgYXJlIG5vdCBpbnRlbmRlZCB0byBiZSBvdmVycmlkZGVuIGV4dGVybmFsbHkuIFRoZXkgdXNlIGAhZGVmYXVsdGAgdG9cbi8vIGF2b2lkIGJlaW5nIHJlc2V0IGV2ZXJ5IHRpbWUgdGhpcyBmaWxlIGlzIGltcG9ydGVkLlxuJF9tYXQtdGhlbWUtZW1pdHRlZC1jb2xvcjogKCkgIWRlZmF1bHQ7XG4kX21hdC10aGVtZS1lbWl0dGVkLXR5cG9ncmFwaHk6ICgpICFkZWZhdWx0O1xuJF9tYXQtdGhlbWUtZW1pdHRlZC1kZW5zaXR5OiAoKSAhZGVmYXVsdDtcblxuLy8gRm9yIGEgZ2l2ZW4gaHVlIGluIGEgcGFsZXR0ZSwgcmV0dXJuIHRoZSBjb250cmFzdCBjb2xvciBmcm9tIHRoZSBtYXAgb2YgY29udHJhc3QgcGFsZXR0ZXMuXG4vLyBAcGFyYW0gJHBhbGV0dGVcbi8vIEBwYXJhbSAkaHVlXG5AZnVuY3Rpb24gbWF0LWNvbnRyYXN0KCRwYWxldHRlLCAkaHVlKSB7XG4gIEByZXR1cm4gbWFwLWdldChtYXAtZ2V0KCRwYWxldHRlLCBjb250cmFzdCksICRodWUpO1xufVxuXG5cbi8vIENyZWF0ZXMgYSBtYXAgb2YgaHVlcyB0byBjb2xvcnMgZm9yIGEgdGhlbWUuIFRoaXMgaXMgdXNlZCB0byBkZWZpbmUgYSB0aGVtZSBwYWxldHRlIGluIHRlcm1zXG4vLyBvZiB0aGUgTWF0ZXJpYWwgRGVzaWduIGh1ZXMuXG4vLyBAcGFyYW0gJGJhc2UtcGFsZXR0ZVxuLy8gQHBhcmFtICRkZWZhdWx0XG4vLyBAcGFyYW0gJGxpZ2h0ZXJcbi8vIEBwYXJhbSAkZGFya2VyXG4vLyBAcGFyYW0gJHRleHRcbkBmdW5jdGlvbiBtYXQtcGFsZXR0ZSgkYmFzZS1wYWxldHRlLCAkZGVmYXVsdDogNTAwLCAkbGlnaHRlcjogMTAwLCAkZGFya2VyOiA3MDAsICR0ZXh0OiAkZGVmYXVsdCkge1xuICAkcmVzdWx0OiBtYXAtbWVyZ2UoJGJhc2UtcGFsZXR0ZSwgKFxuICAgIGRlZmF1bHQ6IG1hcC1nZXQoJGJhc2UtcGFsZXR0ZSwgJGRlZmF1bHQpLFxuICAgIGxpZ2h0ZXI6IG1hcC1nZXQoJGJhc2UtcGFsZXR0ZSwgJGxpZ2h0ZXIpLFxuICAgIGRhcmtlcjogbWFwLWdldCgkYmFzZS1wYWxldHRlLCAkZGFya2VyKSxcbiAgICB0ZXh0OiBtYXAtZ2V0KCRiYXNlLXBhbGV0dGUsICR0ZXh0KSxcblxuICAgIGRlZmF1bHQtY29udHJhc3Q6IG1hdC1jb250cmFzdCgkYmFzZS1wYWxldHRlLCAkZGVmYXVsdCksXG4gICAgbGlnaHRlci1jb250cmFzdDogbWF0LWNvbnRyYXN0KCRiYXNlLXBhbGV0dGUsICRsaWdodGVyKSxcbiAgICBkYXJrZXItY29udHJhc3Q6IG1hdC1jb250cmFzdCgkYmFzZS1wYWxldHRlLCAkZGFya2VyKVxuICApKTtcblxuICAvLyBGb3IgZWFjaCBodWUgaW4gdGhlIHBhbGV0dGUsIGFkZCBhIFwiLWNvbnRyYXN0XCIgY29sb3IgdG8gdGhlIG1hcC5cbiAgQGVhY2ggJGh1ZSwgJGNvbG9yIGluICRiYXNlLXBhbGV0dGUge1xuICAgICRyZXN1bHQ6IG1hcC1tZXJnZSgkcmVzdWx0LCAoXG4gICAgICAnI3skaHVlfS1jb250cmFzdCc6IG1hdC1jb250cmFzdCgkYmFzZS1wYWxldHRlLCAkaHVlKVxuICAgICkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG5cbi8vIEdldHMgYSBjb2xvciBmcm9tIGEgdGhlbWUgcGFsZXR0ZSAodGhlIG91dHB1dCBvZiBtYXQtcGFsZXR0ZSkuXG4vLyBUaGUgaHVlIGNhbiBiZSBvbmUgb2YgdGhlIHN0YW5kYXJkIHZhbHVlcyAoNTAwLCBBNDAwLCBldGMuKSwgb25lIG9mIHRoZSB0aHJlZSBwcmVjb25maWd1cmVkXG4vLyBodWVzIChkZWZhdWx0LCBsaWdodGVyLCBkYXJrZXIpLCBvciBhbnkgb2YgdGhlIGFmb3JlbWVudGlvbmVkIHByZWZpeGVkIHdpdGggXCItY29udHJhc3RcIi5cbi8vXG4vLyBAcGFyYW0gJHBhbGV0dGUgVGhlIHRoZW1lIHBhbGV0dGUgKG91dHB1dCBvZiBtYXQtcGFsZXR0ZSkuXG4vLyBAcGFyYW0gJGh1ZSBUaGUgaHVlIGZyb20gdGhlIHBhbGV0dGUgdG8gdXNlLiBJZiB0aGlzIGlzIGEgdmFsdWUgYmV0d2VlbiAwIGFuZCAxLCBpdCB3aWxsXG4vLyAgICAgYmUgdHJlYXRlZCBhcyBvcGFjaXR5LlxuLy8gQHBhcmFtICRvcGFjaXR5IFRoZSBhbHBoYSBjaGFubmVsIHZhbHVlIGZvciB0aGUgY29sb3IuXG5AZnVuY3Rpb24gbWF0LWNvbG9yKCRwYWxldHRlLCAkaHVlOiBkZWZhdWx0LCAkb3BhY2l0eTogbnVsbCkge1xuICAvLyBJZiBodWVLZXkgaXMgYSBudW1iZXIgYmV0d2VlbiB6ZXJvIGFuZCBvbmUsIHRoZW4gaXQgYWN0dWFsbHkgY29udGFpbnMgYW5cbiAgLy8gb3BhY2l0eSB2YWx1ZSwgc28gcmVjYWxsIHRoaXMgZnVuY3Rpb24gd2l0aCB0aGUgZGVmYXVsdCBodWUgYW5kIHRoYXQgZ2l2ZW4gb3BhY2l0eS5cbiAgQGlmIHR5cGUtb2YoJGh1ZSkgPT0gbnVtYmVyIGFuZCAkaHVlID49IDAgYW5kICRodWUgPD0gMSB7XG4gICAgQHJldHVybiBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQsICRodWUpO1xuICB9XG5cbiAgJGNvbG9yOiBtYXAtZ2V0KCRwYWxldHRlLCAkaHVlKTtcblxuICBAaWYgKHR5cGUtb2YoJGNvbG9yKSAhPSBjb2xvcikge1xuICAgIC8vIElmIHRoZSAkY29sb3IgcmVzb2x2ZWQgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBmcm9tIGEgY29sb3IgKGUuZy4gYSBDU1MgdmFyaWFibGUpLFxuICAgIC8vIHdlIGNhbid0IGFwcGx5IHRoZSBvcGFjaXR5IGFueXdheSBzbyB3ZSByZXR1cm4gdGhlIHZhbHVlIGFzIGlzLCBvdGhlcndpc2UgU2FzcyBjYW5cbiAgICAvLyB0aHJvdyBhbiBlcnJvciBvciBvdXRwdXQgc29tZXRoaW5nIGludmFsaWQuXG4gICAgQHJldHVybiAkY29sb3I7XG4gIH1cblxuICBAcmV0dXJuIHJnYmEoJGNvbG9yLCBpZigkb3BhY2l0eSA9PSBudWxsLCBvcGFjaXR5KCRjb2xvciksICRvcGFjaXR5KSk7XG59XG5cbi8vIFZhbGlkYXRlcyB0aGUgc3BlY2lmaWVkIHRoZW1lIGJ5IGVuc3VyaW5nIHRoYXQgdGhlIG9wdGlvbmFsIGNvbG9yIGNvbmZpZyBkZWZpbmVzXG4vLyBhIHByaW1hcnksIGFjY2VudCBhbmQgd2FybiBwYWxldHRlLiBSZXR1cm5zIHRoZSB0aGVtZSBpZiBubyBmYWlsdXJlcyB3ZXJlIGZvdW5kLlxuQGZ1bmN0aW9uIF9tYXQtdmFsaWRhdGUtdGhlbWUoJHRoZW1lKSB7XG4gIEBpZiBtYXAtZ2V0KCR0aGVtZSwgY29sb3IpIHtcbiAgICAkY29sb3I6IG1hcC1nZXQoJHRoZW1lLCBjb2xvcik7XG4gICAgQGlmIG5vdCBtYXAtZ2V0KCRjb2xvciwgcHJpbWFyeSkge1xuICAgICAgQGVycm9yICdUaGVtZSBkb2VzIG5vdCBkZWZpbmUgYSB2YWxpZCBcInByaW1hcnlcIiBwYWxldHRlLic7XG4gICAgfVxuICAgIEBlbHNlIGlmIG5vdCBtYXAtZ2V0KCRjb2xvciwgYWNjZW50KSB7XG4gICAgICBAZXJyb3IgJ1RoZW1lIGRvZXMgbm90IGRlZmluZSBhIHZhbGlkIFwiYWNjZW50XCIgcGFsZXR0ZS4nO1xuICAgIH1cbiAgICBAZWxzZSBpZiBub3QgbWFwLWdldCgkY29sb3IsIHdhcm4pIHtcbiAgICAgIEBlcnJvciAnVGhlbWUgZG9lcyBub3QgZGVmaW5lIGEgdmFsaWQgXCJ3YXJuXCIgcGFsZXR0ZS4nO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuICR0aGVtZTtcbn1cblxuLy8gQ3JlYXRlcyBhIGxpZ2h0LXRoZW1lZCBjb2xvciBjb25maWd1cmF0aW9uIGZyb20gdGhlIHNwZWNpZmllZFxuLy8gcHJpbWFyeSwgYWNjZW50IGFuZCB3YXJuIHBhbGV0dGVzLlxuQGZ1bmN0aW9uIF9tYXQtY3JlYXRlLWxpZ2h0LWNvbG9yLWNvbmZpZygkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm46IG51bGwpIHtcbiAgQHJldHVybiAoXG4gICAgcHJpbWFyeTogJHByaW1hcnksXG4gICAgYWNjZW50OiAkYWNjZW50LFxuICAgIHdhcm46IGlmKCR3YXJuICE9IG51bGwsICR3YXJuLCBtYXQtcGFsZXR0ZSgkbWF0LXJlZCkpLFxuICAgIGlzLWRhcms6IGZhbHNlLFxuICAgIGZvcmVncm91bmQ6ICRtYXQtbGlnaHQtdGhlbWUtZm9yZWdyb3VuZCxcbiAgICBiYWNrZ3JvdW5kOiAkbWF0LWxpZ2h0LXRoZW1lLWJhY2tncm91bmQsXG4gICk7XG59XG5cbi8vIENyZWF0ZXMgYSBkYXJrLXRoZW1lZCBjb2xvciBjb25maWd1cmF0aW9uIGZyb20gdGhlIHNwZWNpZmllZFxuLy8gcHJpbWFyeSwgYWNjZW50IGFuZCB3YXJuIHBhbGV0dGVzLlxuQGZ1bmN0aW9uIF9tYXQtY3JlYXRlLWRhcmstY29sb3ItY29uZmlnKCRwcmltYXJ5LCAkYWNjZW50LCAkd2FybjogbnVsbCkge1xuICBAcmV0dXJuIChcbiAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICBhY2NlbnQ6ICRhY2NlbnQsXG4gICAgd2FybjogaWYoJHdhcm4gIT0gbnVsbCwgJHdhcm4sIG1hdC1wYWxldHRlKCRtYXQtcmVkKSksXG4gICAgaXMtZGFyazogdHJ1ZSxcbiAgICBmb3JlZ3JvdW5kOiAkbWF0LWRhcmstdGhlbWUtZm9yZWdyb3VuZCxcbiAgICBiYWNrZ3JvdW5kOiAkbWF0LWRhcmstdGhlbWUtYmFja2dyb3VuZCxcbiAgKTtcbn1cblxuLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBvYmplY3QgZm9yIGEgbGlnaHQgdGhlbWUgdG8gYmUgZ2l2ZW4gdG8gaW5kaXZpZHVhbCBjb21wb25lbnQgdGhlbWUgbWl4aW5zLlxuLy8gVE9ETzogUmVtb3ZlIGxlZ2FjeSBBUEkgYW5kIHJlbmFtZSBgJHByaW1hcnlgIHRvIGAkY29uZmlnYC4gQ3VycmVudGx5IGl0IGNhbm5vdCBiZSByZW5hbWVkXG4vLyBhcyBpdCB3b3VsZCBicmVhayBleGlzdGluZyBhcHBzIHRoYXQgc2V0IHRoZSBwYXJhbWV0ZXIgYnkgbmFtZS5cbkBmdW5jdGlvbiBtYXQtbGlnaHQtdGhlbWUoJHByaW1hcnksICRhY2NlbnQ6IG51bGwsICR3YXJuOiBtYXQtcGFsZXR0ZSgkbWF0LXJlZCkpIHtcbiAgLy8gVGhpcyBmdW5jdGlvbiBjcmVhdGVzIGEgY29udGFpbmVyIG9iamVjdCBmb3IgdGhlIGluZGl2aWR1YWwgY29tcG9uZW50IHRoZW1lIG1peGlucy4gQ29uc3VtZXJzXG4gIC8vIGNhbiBjb25zdHJ1Y3Qgc3VjaCBhbiBvYmplY3QgYnkgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLCBvciBieSBidWlsZGluZyB0aGUgb2JqZWN0IG1hbnVhbGx5LlxuICAvLyBUaGVyZSBhcmUgdHdvIHBvc3NpYmxlIHdheXMgdG8gaW52b2tlIHRoaXMgZnVuY3Rpb24gaW4gb3JkZXIgdG8gY3JlYXRlIHN1Y2ggYW4gb2JqZWN0OlxuICAvL1xuICAvLyAgICAoMSkgUGFzc2luZyBpbiBhIG1hcCB0aGF0IGhvbGRzIG9wdGlvbmFsIGNvbmZpZ3VyYXRpb25zIGZvciBpbmRpdmlkdWFsIHBhcnRzIG9mIHRoZVxuICAvLyAgICAgICAgdGhlbWluZyBzeXN0ZW0uIEZvciBgY29sb3JgIGNvbmZpZ3VyYXRpb25zLCB0aGUgZnVuY3Rpb24gb25seSBleHBlY3RzIHRoZSBwYWxldHRlc1xuICAvLyAgICAgICAgZm9yIGBwcmltYXJ5YCBhbmQgYGFjY2VudGAgKGFuZCBvcHRpb25hbGx5IGB3YXJuYCkuIFRoZSBmdW5jdGlvbiB3aWxsIGV4cGFuZCB0aGVcbiAgLy8gICAgICAgIHNob3J0aGFuZCBpbnRvIGFuIGFjdHVhbCBjb25maWd1cmF0aW9uIHRoYXQgY2FuIGJlIGNvbnN1bWVkIGluIGAtY29sb3JgIG1peGlucy5cbiAgLy8gICAgKDIpIExlZ2FjeSBwYXR0ZXJuOiBQYXNzaW5nIGluIHRoZSBwYWxldHRlcyBhcyBwYXJhbWV0ZXJzLiBUaGlzIGlzIG5vdCBhcyBmbGV4aWJsZVxuICAvLyAgICAgICAgYXMgcGFzc2luZyBpbiBhIGNvbmZpZ3VyYXRpb24gbWFwIGJlY2F1c2Ugb25seSB0aGUgYGNvbG9yYCBzeXN0ZW0gY2FuIGJlIGNvbmZpZ3VyZWQuXG4gIC8vXG4gIC8vIElmIHRoZSBsZWdhY3kgcGF0dGVybiBpcyB1c2VkLCB3ZSBnZW5lcmF0ZSBhIGNvbnRhaW5lciBvYmplY3Qgb25seSB3aXRoIGEgbGlnaHQtdGhlbWVkXG4gIC8vIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBgY29sb3JgIHRoZW1pbmcgcGFydC5cbiAgQGlmICRhY2NlbnQgIT0gbnVsbCB7XG4gICAgQHJldHVybiBtYXQtcHJpdmF0ZS1jcmVhdGUtYmFja3dhcmRzLWNvbXBhdGliaWxpdHktdGhlbWUoX21hdC12YWxpZGF0ZS10aGVtZSgoXG4gICAgICBfaXMtbGVnYWN5LXRoZW1lOiB0cnVlLFxuICAgICAgY29sb3I6IF9tYXQtY3JlYXRlLWxpZ2h0LWNvbG9yLWNvbmZpZygkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm4pLFxuICAgICkpKTtcbiAgfVxuICAvLyBJZiB0aGUgbWFwIHBhdHRlcm4gaXMgdXNlZCAoMSksIHdlIGp1c3QgcGFzcy10aHJvdWdoIHRoZSBjb25maWd1cmF0aW9ucyBmb3IgaW5kaXZpZHVhbFxuICAvLyBwYXJ0cyBvZiB0aGUgdGhlbWluZyBzeXN0ZW0sIGJ1dCB1cGRhdGUgdGhlIGBjb2xvcmAgY29uZmlndXJhdGlvbiBpZiBzZXQuIEFzIGV4cGxhaW5lZFxuICAvLyBhYm92ZSwgdGhlIGNvbG9yIHNob3J0aGFuZCB3aWxsIGJlIGV4cGFuZGVkIHRvIGFuIGFjdHVhbCBsaWdodC10aGVtZWQgY29sb3IgY29uZmlndXJhdGlvbi5cbiAgJHJlc3VsdDogJHByaW1hcnk7XG4gIEBpZiBtYXAtZ2V0KCRwcmltYXJ5LCBjb2xvcikge1xuICAgICRjb2xvci1zZXR0aW5nczogbWFwLWdldCgkcHJpbWFyeSwgY29sb3IpO1xuICAgICRwcmltYXJ5OiBtYXAtZ2V0KCRjb2xvci1zZXR0aW5ncywgcHJpbWFyeSk7XG4gICAgJGFjY2VudDogbWFwLWdldCgkY29sb3Itc2V0dGluZ3MsIGFjY2VudCk7XG4gICAgJHdhcm46IG1hcC1nZXQoJGNvbG9yLXNldHRpbmdzLCB3YXJuKTtcbiAgICAkcmVzdWx0OiBtYXAtbWVyZ2UoJHJlc3VsdCwgKGNvbG9yOiBfbWF0LWNyZWF0ZS1saWdodC1jb2xvci1jb25maWcoJHByaW1hcnksICRhY2NlbnQsICR3YXJuKSkpO1xuICB9XG4gIEByZXR1cm4gbWF0LXByaXZhdGUtY3JlYXRlLWJhY2t3YXJkcy1jb21wYXRpYmlsaXR5LXRoZW1lKF9tYXQtdmFsaWRhdGUtdGhlbWUoJHJlc3VsdCkpO1xufVxuXG4vLyBDcmVhdGVzIGEgY29udGFpbmVyIG9iamVjdCBmb3IgYSBkYXJrIHRoZW1lIHRvIGJlIGdpdmVuIHRvIGluZGl2aWR1YWwgY29tcG9uZW50IHRoZW1lIG1peGlucy5cbi8vIFRPRE86IFJlbW92ZSBsZWdhY3kgQVBJIGFuZCByZW5hbWUgYCRwcmltYXJ5YCB0byBgJGNvbmZpZ2AuIEN1cnJlbnRseSBpdCBjYW5ub3QgYmUgcmVuYW1lZFxuLy8gYXMgaXQgd291bGQgYnJlYWsgZXhpc3RpbmcgYXBwcyB0aGF0IHNldCB0aGUgcGFyYW1ldGVyIGJ5IG5hbWUuXG5AZnVuY3Rpb24gbWF0LWRhcmstdGhlbWUoJHByaW1hcnksICRhY2NlbnQ6IG51bGwsICR3YXJuOiBtYXQtcGFsZXR0ZSgkbWF0LXJlZCkpIHtcbiAgLy8gVGhpcyBmdW5jdGlvbiBjcmVhdGVzIGEgY29udGFpbmVyIG9iamVjdCBmb3IgdGhlIGluZGl2aWR1YWwgY29tcG9uZW50IHRoZW1lIG1peGlucy4gQ29uc3VtZXJzXG4gIC8vIGNhbiBjb25zdHJ1Y3Qgc3VjaCBhbiBvYmplY3QgYnkgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLCBvciBieSBidWlsZGluZyB0aGUgb2JqZWN0IG1hbnVhbGx5LlxuICAvLyBUaGVyZSBhcmUgdHdvIHBvc3NpYmxlIHdheXMgdG8gaW52b2tlIHRoaXMgZnVuY3Rpb24gaW4gb3JkZXIgdG8gY3JlYXRlIHN1Y2ggYW4gb2JqZWN0OlxuICAvL1xuICAvLyAgICAoMSkgUGFzc2luZyBpbiBhIG1hcCB0aGF0IGhvbGRzIG9wdGlvbmFsIGNvbmZpZ3VyYXRpb25zIGZvciBpbmRpdmlkdWFsIHBhcnRzIG9mIHRoZVxuICAvLyAgICAgICAgdGhlbWluZyBzeXN0ZW0uIEZvciBgY29sb3JgIGNvbmZpZ3VyYXRpb25zLCB0aGUgZnVuY3Rpb24gb25seSBleHBlY3RzIHRoZSBwYWxldHRlc1xuICAvLyAgICAgICAgZm9yIGBwcmltYXJ5YCBhbmQgYGFjY2VudGAgKGFuZCBvcHRpb25hbGx5IGB3YXJuYCkuIFRoZSBmdW5jdGlvbiB3aWxsIGV4cGFuZCB0aGVcbiAgLy8gICAgICAgIHNob3J0aGFuZCBpbnRvIGFuIGFjdHVhbCBjb25maWd1cmF0aW9uIHRoYXQgY2FuIGJlIGNvbnN1bWVkIGluIGAtY29sb3JgIG1peGlucy5cbiAgLy8gICAgKDIpIExlZ2FjeSBwYXR0ZXJuOiBQYXNzaW5nIGluIHRoZSBwYWxldHRlcyBhcyBwYXJhbWV0ZXJzLiBUaGlzIGlzIG5vdCBhcyBmbGV4aWJsZVxuICAvLyAgICAgICAgYXMgcGFzc2luZyBpbiBhIGNvbmZpZ3VyYXRpb24gbWFwIGJlY2F1c2Ugb25seSB0aGUgYGNvbG9yYCBzeXN0ZW0gY2FuIGJlIGNvbmZpZ3VyZWQuXG4gIC8vXG4gIC8vIElmIHRoZSBsZWdhY3kgcGF0dGVybiBpcyB1c2VkLCB3ZSBnZW5lcmF0ZSBhIGNvbnRhaW5lciBvYmplY3Qgb25seSB3aXRoIGEgZGFyay10aGVtZWRcbiAgLy8gY29uZmlndXJhdGlvbiBmb3IgdGhlIGBjb2xvcmAgdGhlbWluZyBwYXJ0LlxuICBAaWYgJGFjY2VudCAhPSBudWxsIHtcbiAgICBAcmV0dXJuIG1hdC1wcml2YXRlLWNyZWF0ZS1iYWNrd2FyZHMtY29tcGF0aWJpbGl0eS10aGVtZShfbWF0LXZhbGlkYXRlLXRoZW1lKChcbiAgICAgIF9pcy1sZWdhY3ktdGhlbWU6IHRydWUsXG4gICAgICBjb2xvcjogX21hdC1jcmVhdGUtZGFyay1jb2xvci1jb25maWcoJHByaW1hcnksICRhY2NlbnQsICR3YXJuKSxcbiAgICApKSk7XG4gIH1cbiAgLy8gSWYgdGhlIG1hcCBwYXR0ZXJuIGlzIHVzZWQgKDEpLCB3ZSBqdXN0IHBhc3MtdGhyb3VnaCB0aGUgY29uZmlndXJhdGlvbnMgZm9yIGluZGl2aWR1YWxcbiAgLy8gcGFydHMgb2YgdGhlIHRoZW1pbmcgc3lzdGVtLCBidXQgdXBkYXRlIHRoZSBgY29sb3JgIGNvbmZpZ3VyYXRpb24gaWYgc2V0LiBBcyBleHBsYWluZWRcbiAgLy8gYWJvdmUsIHRoZSBjb2xvciBzaG9ydGhhbmQgd2lsbCBiZSBleHBhbmRlZCB0byBhbiBhY3R1YWwgZGFyay10aGVtZWQgY29sb3IgY29uZmlndXJhdGlvbi5cbiAgJHJlc3VsdDogJHByaW1hcnk7XG4gIEBpZiBtYXAtZ2V0KCRwcmltYXJ5LCBjb2xvcikge1xuICAgICRjb2xvci1zZXR0aW5nczogbWFwLWdldCgkcHJpbWFyeSwgY29sb3IpO1xuICAgICRwcmltYXJ5OiBtYXAtZ2V0KCRjb2xvci1zZXR0aW5ncywgcHJpbWFyeSk7XG4gICAgJGFjY2VudDogbWFwLWdldCgkY29sb3Itc2V0dGluZ3MsIGFjY2VudCk7XG4gICAgJHdhcm46IG1hcC1nZXQoJGNvbG9yLXNldHRpbmdzLCB3YXJuKTtcbiAgICAkcmVzdWx0OiBtYXAtbWVyZ2UoJHJlc3VsdCwgKGNvbG9yOiBfbWF0LWNyZWF0ZS1kYXJrLWNvbG9yLWNvbmZpZygkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm4pKSk7XG4gIH1cbiAgQHJldHVybiBtYXQtcHJpdmF0ZS1jcmVhdGUtYmFja3dhcmRzLWNvbXBhdGliaWxpdHktdGhlbWUoX21hdC12YWxpZGF0ZS10aGVtZSgkcmVzdWx0KSk7XG59XG5cbi8vLyBHZXRzIHRoZSBjb2xvciBjb25maWd1cmF0aW9uIGZyb20gdGhlIGdpdmVuIHRoZW1lIG9yIGNvbmZpZ3VyYXRpb24uXG5AZnVuY3Rpb24gbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lLCAkZGVmYXVsdDogbnVsbCkge1xuICAvLyBJZiBhIGNvbmZpZ3VyYXRpb24gaGFzIGJlZW4gcGFzc2VkLCByZXR1cm4gdGhlIGNvbmZpZyBkaXJlY3RseS5cbiAgQGlmIG5vdCBtYXQtcHJpdmF0ZS1pcy10aGVtZS1vYmplY3QoJHRoZW1lKSB7XG4gICAgQHJldHVybiAkdGhlbWU7XG4gIH1cbiAgLy8gSWYgdGhlIHRoZW1lIGhhcyBiZWVuIGNvbnN0cnVjdGVkIHRocm91Z2ggdGhlIGxlZ2FjeSB0aGVtaW5nIEFQSSwgd2UgdXNlIHRoZSB0aGVtZSBvYmplY3RcbiAgLy8gYXMgY29sb3IgY29uZmlndXJhdGlvbiBpbnN0ZWFkIG9mIHRoZSBkZWRpY2F0ZWQgYGNvbG9yYCBwcm9wZXJ0eS4gV2UgZG8gdGhpcyBiZWNhdXNlIGZvclxuICAvLyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgd2UgY29waWVkIHRoZSBjb2xvciBjb25maWd1cmF0aW9uIGZyb20gYCR0aGVtZS5jb2xvcmAgdG8gYCR0aGVtZWAuXG4gIC8vIEhlbmNlIGRldmVsb3BlcnMgY291bGQgY3VzdG9taXplIHRoZSBjb2xvcnMgYXQgdG9wLWxldmVsIGFuZCB3YW50IHRvIHJlc3BlY3QgdGhlc2UgY2hhbmdlc1xuICAvLyBUT0RPOiBSZW1vdmUgd2hlbiBsZWdhY3kgdGhlbWluZyBBUEkgaXMgcmVtb3ZlZC5cbiAgQGlmIG1hdC1wcml2YXRlLWlzLWxlZ2FjeS1jb25zdHJ1Y3RlZC10aGVtZSgkdGhlbWUpIHtcbiAgICBAcmV0dXJuICR0aGVtZTtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJHRoZW1lLCBjb2xvcikge1xuICAgIEByZXR1cm4gbWFwLWdldCgkdGhlbWUsIGNvbG9yKTtcbiAgfVxuICBAcmV0dXJuICRkZWZhdWx0O1xufVxuXG4vLy8gR2V0cyB0aGUgZGVuc2l0eSBjb25maWd1cmF0aW9uIGZyb20gdGhlIGdpdmVuIHRoZW1lIG9yIGNvbmZpZ3VyYXRpb24uXG5AZnVuY3Rpb24gbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUtb3ItY29uZmlnLCAkZGVmYXVsdDogMCkge1xuICAvLyBJZiBhIGNvbmZpZ3VyYXRpb24gaGFzIGJlZW4gcGFzc2VkLCByZXR1cm4gdGhlIGNvbmZpZyBkaXJlY3RseS5cbiAgQGlmIG5vdCBtYXQtcHJpdmF0ZS1pcy10aGVtZS1vYmplY3QoJHRoZW1lLW9yLWNvbmZpZykge1xuICAgIEByZXR1cm4gJHRoZW1lLW9yLWNvbmZpZztcbiAgfVxuICAvLyBJbiBjYXNlIGEgdGhlbWUgaGFzIGJlZW4gcGFzc2VkLCBleHRyYWN0IHRoZSBjb25maWd1cmF0aW9uIGlmIHByZXNlbnQsXG4gIC8vIG9yIGZhbGwgYmFjayB0byB0aGUgZGVmYXVsdCBkZW5zaXR5IGNvbmZpZy5cbiAgQGlmIG1hcC1oYXMta2V5KCR0aGVtZS1vci1jb25maWcsIGRlbnNpdHkpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJHRoZW1lLW9yLWNvbmZpZywgZGVuc2l0eSk7XG4gIH1cbiAgQHJldHVybiAkZGVmYXVsdDtcbn1cblxuLy8vIEdldHMgdGhlIHR5cG9ncmFwaHkgY29uZmlndXJhdGlvbiBmcm9tIHRoZSBnaXZlbiB0aGVtZSBvciBjb25maWd1cmF0aW9uLlxuLy8vIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgdHlwb2dyYXBoeSBpcyBub3QgaW5jbHVkZWQgYnkgZGVmYXVsdC5cbkBmdW5jdGlvbiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZS1vci1jb25maWcsICRkZWZhdWx0OiBudWxsKSB7XG4gIC8vIElmIGEgY29uZmlndXJhdGlvbiBoYXMgYmVlbiBwYXNzZWQsIHJldHVybiB0aGUgY29uZmlnIGRpcmVjdGx5LlxuICBAaWYgbm90IG1hdC1wcml2YXRlLWlzLXRoZW1lLW9iamVjdCgkdGhlbWUtb3ItY29uZmlnKSB7XG4gICAgQHJldHVybiAkdGhlbWUtb3ItY29uZmlnO1xuICB9XG4gIC8vIEluIGNhc2UgYSB0aGVtZSBoYXMgYmVlbiBwYXNzZWQsIGV4dHJhY3QgdGhlIGNvbmZpZ3VyYXRpb24gaWYgcHJlc2VudCxcbiAgLy8gb3IgZmFsbCBiYWNrIHRvIHRoZSBkZWZhdWx0IHR5cG9ncmFwaHkgY29uZmlnLlxuICBAaWYgKG1hcC1oYXMta2V5KCR0aGVtZS1vci1jb25maWcsIHR5cG9ncmFwaHkpKSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCR0aGVtZS1vci1jb25maWcsIHR5cG9ncmFwaHkpO1xuICB9XG4gIEByZXR1cm4gJGRlZmF1bHQ7XG59XG5cblxuLy9cbi8vIFByaXZhdGUgQVBJc1xuLy9cblxuLy8gQ2hlY2tzIGlmIGNvbmZpZ3VyYXRpb25zIHRoYXQgaGF2ZSBiZWVuIGRlY2xhcmVkIGluIHRoZSBnaXZlbiB0aGVtZSBoYXZlIGJlZW4gZ2VuZXJhdGVkXG4vLyBiZWZvcmUuIElmIHNvLCB3YXJuaW5ncyB3aWxsIGJlIHJlcG9ydGVkLiBUaGlzIHNob3VsZCBub3RpZnkgZGV2ZWxvcGVycyBpbiBjYXNlIGR1cGxpY2F0ZVxuLy8gc3R5bGVzIGFyZSBhY2NpZGVudGFsbHkgZ2VuZXJhdGVkIGR1ZSB0byB3cm9uZyB1c2FnZSBvZiB0aGUgYWxsLXRoZW1lIG1peGlucy5cbi8vXG4vLyBBZGRpdGlvbmFsbHksIHRoaXMgbWl4aW4gY29udHJvbHMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBkZW5zaXR5IGNvbmZpZ3VyYXRpb24uIEJ5XG4vLyBkZWZhdWx0LCBkZW5zaXR5IHN0eWxlcyBhcmUgZ2VuZXJhdGVkIGF0IHNjYWxlIHplcm8uIElmIHRoZSBzYW1lIGRlbnNpdHkgc3R5bGVzIHdvdWxkIGJlXG4vLyBnZW5lcmF0ZWQgYSBzZWNvbmQgdGltZSB0aG91Z2gsIHRoZSBkZWZhdWx0IHZhbHVlIHdpbGwgY2hhbmdlIHRvIGF2b2lkIGR1cGxpY2F0ZSBzdHlsZXMuXG4vL1xuLy8gVGhlIG1peGluIGtlZXBzIHRyYWNrIG9mIGFsbCBjb25maWd1cmF0aW9ucyBpbiBhIGxpc3QgdGhhdCBpcyBzY29wZWQgdG8gdGhlIHNwZWNpZmllZFxuLy8gaWQuIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgYSBnaXZlbiB0aGVtZSBjYW4gYmUgcGFzc2VkIHRvIG11bHRpcGxlIGRpc2pvaW50IHRoZW1lIG1peGluc1xuLy8gKGUuZy4gYGFuZ3VsYXItbWF0ZXJpYWwtdGhlbWVgIGFuZCBgYW5ndWxhci1tYXRlcmlhbC1tZGMtdGhlbWVgKSB3aXRob3V0IGNhdXNpbmcgYW55XG4vLyBzdHlsZSBkdXBsaWNhdGlvbi5cbkBtaXhpbiBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZS1vci1jb2xvci1jb25maWcsICRpZCkge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICRjb2xvci1jb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICRkZW5zaXR5LWNvbmZpZzogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAkdHlwb2dyYXBoeS1jb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcbiAgLy8gTGlzdHMgb2YgcHJldmlvdXMgYGNvbG9yYCwgYGRlbnNpdHlgIGFuZCBgdHlwb2dyYXBoeWAgY29uZmlndXJhdGlvbnMuXG4gICRwcmV2aW91cy1jb2xvcjogbWFwLWdldCgkX21hdC10aGVtZS1lbWl0dGVkLWNvbG9yLCAkaWQpIG9yICgpO1xuICAkcHJldmlvdXMtdHlwb2dyYXBoeTogbWFwLWdldCgkX21hdC10aGVtZS1lbWl0dGVkLXR5cG9ncmFwaHksICRpZCkgb3IgKCk7XG4gICRwcmV2aW91cy1kZW5zaXR5OiBtYXAtZ2V0KCRfbWF0LXRoZW1lLWVtaXR0ZWQtZGVuc2l0eSwgJGlkKSBvciAoKTtcbiAgLy8gV2hldGhlciBkdXBsaWNhdGUgbGVnYWN5IGRlbnNpdHkgc3R5bGVzIHdvdWxkIGJlIGdlbmVyYXRlZC5cbiAgJGR1cGxpY2F0ZS1sZWdhY3ktZGVuc2l0eTogZmFsc2U7XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIGNvbG9yIGNvbmZpZ3VyYXRpb24gaGFzIGJlZW4gZ2VuZXJhdGVkIGJlZm9yZS5cbiAgQGlmICRjb2xvci1jb25maWcgIT0gbnVsbCB7XG4gICAgQGlmIGluZGV4KCRwcmV2aW91cy1jb2xvciwgJGNvbG9yLWNvbmZpZykgIT0gbnVsbCBhbmRcbiAgICAgICAgbm90ICRtYXQtdGhlbWUtaWdub3JlLWR1cGxpY2F0aW9uLXdhcm5pbmdzIHtcbiAgICAgIEB3YXJuICdUaGUgc2FtZSBjb2xvciBzdHlsZXMgYXJlIGdlbmVyYXRlZCBtdWx0aXBsZSB0aW1lcy4gJyArXG4gICAgICAgICAgJF9tYXQtdGhlbWUtZHVwbGljYXRlLXdhcm5pbmc7XG4gICAgfVxuICAgICRwcmV2aW91cy1jb2xvcjogYXBwZW5kKCRwcmV2aW91cy1jb2xvciwgJGNvbG9yLWNvbmZpZyk7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgdHlwb2dyYXBoeSBjb25maWd1cmF0aW9uIGhhcyBiZWVuIGdlbmVyYXRlZCBiZWZvcmUuXG4gIEBpZiAkdHlwb2dyYXBoeS1jb25maWcgIT0gbnVsbCB7XG4gICAgQGlmIGluZGV4KCRwcmV2aW91cy10eXBvZ3JhcGh5LCAkdHlwb2dyYXBoeS1jb25maWcpICE9IG51bGwgYW5kXG4gICAgICAgIG5vdCAkbWF0LXRoZW1lLWlnbm9yZS1kdXBsaWNhdGlvbi13YXJuaW5ncyB7XG4gICAgICBAd2FybiAnVGhlIHNhbWUgdHlwb2dyYXBoeSBzdHlsZXMgYXJlIGdlbmVyYXRlZCBtdWx0aXBsZSB0aW1lcy4gJyArXG4gICAgICAgICAgJF9tYXQtdGhlbWUtZHVwbGljYXRlLXdhcm5pbmc7XG4gICAgfVxuICAgICRwcmV2aW91cy10eXBvZ3JhcGh5OiBhcHBlbmQoJHByZXZpb3VzLXR5cG9ncmFwaHksICR0eXBvZ3JhcGh5LWNvbmZpZyk7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgZGVuc2l0eSBjb25maWd1cmF0aW9uIGhhcyBiZWVuIGdlbmVyYXRlZCBiZWZvcmUuXG4gIEBpZiAkZGVuc2l0eS1jb25maWcgIT0gbnVsbCB7XG4gICAgQGlmIGluZGV4KCRwcmV2aW91cy1kZW5zaXR5LCAkZGVuc2l0eS1jb25maWcpICE9IG51bGwge1xuICAgICAgLy8gT25seSByZXBvcnQgYSB3YXJuaW5nIGlmIGRlbnNpdHkgc3R5bGVzIHdvdWxkIGJlIGR1cGxpY2F0ZWQgZm9yIG5vbi1sZWdhY3kgdGhlbWVcbiAgICAgIC8vIGRlZmluaXRpb25zLiBGb3IgbGVnYWN5IHRoZW1lcywgd2UgaGF2ZSBjb21wYXRpYmlsaXR5IGxvZ2ljIHRoYXQgYXZvaWRzIGR1cGxpY2F0aW9uXG4gICAgICAvLyBvZiBkZWZhdWx0IGRlbnNpdHkgc3R5bGVzLiBXZSBkb24ndCB3YW50IHRvIHJlcG9ydCBhIHdhcm5pbmcgaW4gdGhvc2UgY2FzZXMuXG4gICAgICBAaWYgbWF0LXByaXZhdGUtaXMtbGVnYWN5LWNvbnN0cnVjdGVkLXRoZW1lKCR0aGVtZSkge1xuICAgICAgICAkZHVwbGljYXRlLWxlZ2FjeS1kZW5zaXR5OiB0cnVlO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgbm90ICRtYXQtdGhlbWUtaWdub3JlLWR1cGxpY2F0aW9uLXdhcm5pbmdzIHtcbiAgICAgICAgQHdhcm4gJ1RoZSBzYW1lIGRlbnNpdHkgc3R5bGVzIGFyZSBnZW5lcmF0ZWQgbXVsdGlwbGUgdGltZXMuICcgK1xuICAgICAgICAgICAkX21hdC10aGVtZS1kdXBsaWNhdGUtd2FybmluZztcbiAgICAgIH1cbiAgICB9XG4gICAgJHByZXZpb3VzLWRlbnNpdHk6IGFwcGVuZCgkcHJldmlvdXMtZGVuc2l0eSwgJGRlbnNpdHktY29uZmlnKTtcbiAgfVxuXG4gICRfbWF0LXRoZW1lLWVtaXR0ZWQtY29sb3I6IG1hcC1tZXJnZShcbiAgICAgICRfbWF0LXRoZW1lLWVtaXR0ZWQtY29sb3IsICgkaWQ6ICRwcmV2aW91cy1jb2xvcikpICFnbG9iYWw7XG4gICRfbWF0LXRoZW1lLWVtaXR0ZWQtZGVuc2l0eTogbWFwLW1lcmdlKFxuICAgICAgJF9tYXQtdGhlbWUtZW1pdHRlZC1kZW5zaXR5LCAoJGlkOiAkcHJldmlvdXMtZGVuc2l0eSkpICFnbG9iYWw7XG4gICRfbWF0LXRoZW1lLWVtaXR0ZWQtdHlwb2dyYXBoeTogbWFwLW1lcmdlKFxuICAgICAgJF9tYXQtdGhlbWUtZW1pdHRlZC10eXBvZ3JhcGh5LCAoJGlkOiAkcHJldmlvdXMtdHlwb2dyYXBoeSkpICFnbG9iYWw7XG5cbiAgLy8gT3B0aW9uYWxseSwgY29uc3VtZXJzIG9mIHRoaXMgbWl4aW4gY2FuIHdyYXAgY29udGVudHMgaW5zaWRlIHNvIHRoYXQgbmVzdGVkXG4gIC8vIGR1cGxpY2F0ZSBzdHlsZSBjaGVja3MgZG8gbm90IHJlcG9ydCBhbm90aGVyIHdhcm5pbmcuIGUuZy4gaWYgZGV2ZWxvcGVycyBpbmNsdWRlXG4gIC8vIHRoZSBgYW5ndWxhci1tYXRlcmlhbC10aGVtZWAgbWl4aW4gdHdpY2UsIG9ubHkgdGhlIHRvcC1sZXZlbCBkdXBsaWNhdGUgc3R5bGVzIGNoZWNrXG4gIC8vIHNob3VsZCByZXBvcnQgYSB3YXJuaW5nLiBOb3QgYWxsIGluZGl2aWR1YWwgY29tcG9uZW50cyBzaG91bGQgcmVwb3J0IGEgd2FybmluZyB0b28uXG4gICRvcmlnLW1hdC10aGVtZS1pZ25vcmUtZHVwbGljYXRpb24td2FybmluZ3M6ICRtYXQtdGhlbWUtaWdub3JlLWR1cGxpY2F0aW9uLXdhcm5pbmdzO1xuICAkbWF0LXRoZW1lLWlnbm9yZS1kdXBsaWNhdGlvbi13YXJuaW5nczogdHJ1ZSAhZ2xvYmFsO1xuXG4gIC8vIElmIGR1cGxpY2F0ZSBkZWZhdWx0IGRlbnNpdHkgc3R5bGVzIHdvdWxkIGJlIGdlbmVyYXRlZCBmb3IgYSBsZWdhY3kgY29uc3RydWN0ZWQgdGhlbWUsXG4gIC8vIHdlIGFkanVzdCB0aGUgZGVuc2l0eSBnZW5lcmF0aW9uIHNvIHRoYXQgbm8gZGVuc2l0eSBzdHlsZXMgYXJlIGdlbmVyYXRlZCBieSBkZWZhdWx0LlxuICAvLyBJZiBubyBkZWZhdWx0IGRlbnNpdHkgc3R5bGVzIGhhdmUgYmVlbiBnZW5lcmF0ZWQgeWV0LCB3ZSBlbnN1cmUgdGhhdCB0aGUgc3R5bGVzXG4gIC8vIGFyZSBnZW5lcmF0ZWQgYXQgcm9vdC4gRm9yIGxlZ2FjeSB0aGVtZXMgb3VyIGdvYWwgaXMgdG8gZ2VuZXJhdGUgZGVmYXVsdCBkZW5zaXR5XG4gIC8vIHN0eWxlcyAqKm9uY2UqKiBhbmQgYXQgcm9vdC4gVGhpcyBtYXRjaGVzIHRoZSBvbGQgYmVoYXZpb3Igd2hlcmUgZGVuc2l0eSBzdHlsZXMgd2VyZVxuICAvLyBwYXJ0IG9mIHRoZSBiYXNlIGNvbXBvbmVudCBzdHlsZXMgKHRoYXQgZGlkIG5vdCB1c2UgdmlldyBlbmNhcHN1bGF0aW9uKS5cbiAgLy8gVE9ETzogUmVtb3ZlIHRoaXMgY29tcGF0aWJpbGl0eSBsb2dpYyB3aGVuIHRoZSBsZWdhY3kgdGhlbWluZyBBUEkgaXMgcmVtb3ZlZC5cbiAgJG1hdC1wcml2YXRlLWRlbnNpdHktZ2VuZXJhdGUtYXQtcm9vdDogbWF0LXByaXZhdGUtaXMtbGVnYWN5LWNvbnN0cnVjdGVkLXRoZW1lKCR0aGVtZSkgIWdsb2JhbDtcbiAgJG1hdC1wcml2YXRlLWRlbnNpdHktZ2VuZXJhdGUtc3R5bGVzOiBub3QgJGR1cGxpY2F0ZS1sZWdhY3ktZGVuc2l0eSAhZ2xvYmFsO1xuXG4gIEBjb250ZW50O1xuICAkbWF0LXRoZW1lLWlnbm9yZS1kdXBsaWNhdGlvbi13YXJuaW5nczogJG9yaWctbWF0LXRoZW1lLWlnbm9yZS1kdXBsaWNhdGlvbi13YXJuaW5ncyAhZ2xvYmFsO1xuXG4gICRtYXQtcHJpdmF0ZS1kZW5zaXR5LWdlbmVyYXRlLWF0LXJvb3Q6IGZhbHNlICFnbG9iYWw7XG4gICRtYXQtcHJpdmF0ZS1kZW5zaXR5LWdlbmVyYXRlLXN0eWxlczogdHJ1ZSAhZ2xvYmFsO1xufVxuXG4vLyBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gdmFsdWUgcmVzb2x2ZXMgdG8gYSB0aGVtZSBvYmplY3QuIFRoZW1lIG9iamVjdHMgYXJlIGFsd2F5c1xuLy8gb2YgdHlwZSBgbWFwYCBhbmQgY2FuIG9wdGlvbmFsbHkgb25seSBzcGVjaWZ5IGBjb2xvcmAsIGBkZW5zaXR5YCBvciBgdHlwb2dyYXBoeWAuXG5AZnVuY3Rpb24gbWF0LXByaXZhdGUtaXMtdGhlbWUtb2JqZWN0KCR2YWx1ZSkge1xuICBAcmV0dXJuIHR5cGUtb2YoJHZhbHVlKSA9PSAnbWFwJyBhbmQgKFxuICAgIG1hcC1oYXMta2V5KCR2YWx1ZSwgY29sb3IpIG9yXG4gICAgbWFwLWhhcy1rZXkoJHZhbHVlLCBkZW5zaXR5KSBvclxuICAgIG1hcC1oYXMta2V5KCR2YWx1ZSwgdHlwb2dyYXBoeSkgb3JcbiAgICBsZW5ndGgoJHZhbHVlKSA9PSAwXG4gICk7XG59XG5cbi8vIENoZWNrcyB3aGV0aGVyIGEgZ2l2ZW4gdmFsdWUgY29ycmVzcG9uZHMgdG8gYSBsZWdhY3kgY29uc3RydWN0ZWQgdGhlbWUuXG5AZnVuY3Rpb24gbWF0LXByaXZhdGUtaXMtbGVnYWN5LWNvbnN0cnVjdGVkLXRoZW1lKCR2YWx1ZSkge1xuICBAcmV0dXJuIHR5cGUtb2YoJHZhbHVlKSA9PSAnbWFwJyBhbmQgbWFwLWdldCgkdmFsdWUsICdfaXMtbGVnYWN5LXRoZW1lJyk7XG59XG5cbi8vIENyZWF0ZXMgYSBiYWNrd2FyZHMgY29tcGF0aWJsZSB0aGVtZS4gUHJldmlvdXNseSBpbiBBbmd1bGFyIE1hdGVyaWFsLCB0aGVtZSBvYmplY3RzXG4vLyBjb250YWluZWQgdGhlIGNvbG9yIGNvbmZpZ3VyYXRpb24gZGlyZWN0bHkuIFdpdGggdGhlIHJlY2VudCByZWZhY3RvcmluZyBvZiB0aGUgdGhlbWluZ1xuLy8gc3lzdGVtIHRvIGFsbG93IGZvciBkZW5zaXR5IGFuZCB0eXBvZ3JhcGh5IGNvbmZpZ3VyYXRpb25zLCB0aGlzIGlzIG5vIGxvbmdlciB0aGUgY2FzZS5cbi8vIFRvIGVuc3VyZSB0aGF0IGNvbnN0cnVjdGVkIHRoZW1lcyB3aGljaCB3aWxsIGJlIHBhc3NlZCB0byBjdXN0b20gdGhlbWUgbWl4aW5zIGRvIG5vdCBicmVhayxcbi8vIHdlIGNvcHkgdGhlIGNvbG9yIGNvbmZpZ3VyYXRpb24gYW5kIHB1dCBpdHMgcHJvcGVydGllcyBhdCB0aGUgdG9wLWxldmVsIG9mIHRoZSB0aGVtZSBvYmplY3QuXG4vLyBIZXJlIGlzIGFuIGV4YW1wbGUgb2YgYSBwYXR0ZXJuIHRoYXQgc2hvdWxkIHN0aWxsIHdvcmsgdW50aWwgaXQncyBvZmZpY2lhbGx5IG1hcmtlZCBhcyBhXG4vLyBicmVha2luZyBjaGFuZ2U6XG4vL1xuLy8gICAgQG1peGluIG15LWN1c3RvbS1jb21wb25lbnQtdGhlbWUoJHRoZW1lKSB7XG4vLyAgICAgIC5teS1jb21wIHtcbi8vICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IobWFwLWdldCgkdGhlbWUsIHByaW1hcnkpKTtcbi8vICAgICAgfVxuLy8gICAgfVxuLy9cbi8vIE5vdGUgdGhhdCB0aGUgYCR0aGVtZS5wcmltYXJ5YCBrZXkgZG9lcyB1c3VhbGx5IG5vdCBleGlzdCBzaW5jZSB0aGUgY29sb3IgY29uZmlndXJhdGlvblxuLy8gaXMgc3RvcmVkIGluIGAkdGhlbWUuY29sb3JgIHdoaWNoIGNvbnRhaW5zIGEgcHJvcGVydHkgZm9yIGBwcmltYXJ5YC4gVGhpcyBtZXRob2QgY29waWVzXG4vLyB0aGUgbWFwIGZyb20gYCR0aGVtZS5jb2xvcmAgdG8gYCR0aGVtZWAgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LlxuQGZ1bmN0aW9uIG1hdC1wcml2YXRlLWNyZWF0ZS1iYWNrd2FyZHMtY29tcGF0aWJpbGl0eS10aGVtZSgkdGhlbWUpIHtcbiAgQGlmIG5vdCBtYXAtZ2V0KCR0aGVtZSwgY29sb3IpIHtcbiAgICBAcmV0dXJuICR0aGVtZTtcbiAgfVxuICAkY29sb3I6IG1hcC1nZXQoJHRoZW1lLCBjb2xvcik7XG4gIEByZXR1cm4gbWFwLW1lcmdlKCR0aGVtZSwgJGNvbG9yKTtcbn1cblxuLy8gR2V0cyB0aGUgdGhlbWUgZnJvbSB0aGUgZ2l2ZW4gdmFsdWUgdGhhdCBpcyBlaXRoZXIgYWxyZWFkeSBhIHRoZW1lLCBvciBhIGNvbG9yIGNvbmZpZ3VyYXRpb24uXG4vLyBUaGlzIGhhbmRsZXMgdGhlIGxlZ2FjeSBjYXNlIHdoZXJlIGRldmVsb3BlcnMgcGFzcyBhIGNvbG9yIGNvbmZpZ3VyYXRpb24gZGlyZWN0bHkgdG8gdGhlXG4vLyB0aGVtZSBtaXhpbi4gQmVmb3JlIHdlIGludHJvZHVjZWQgdGhlIG5ldyBwYXR0ZXJuIGZvciBjb25zdHJ1Y3RpbmcgYSB0aGVtZSwgZGV2ZWxvcGVycyBwYXNzZWRcbi8vIHRoZSBjb2xvciBjb25maWd1cmF0aW9uIGRpcmVjdGx5IHRvIHRoZSB0aGVtZSBtaXhpbnMuIFRoaXMgY2FuIGJlIHN0aWxsIHRoZSBjYXNlIGlmIGRldmVsb3BlcnNcbi8vIGNvbnN0cnVjdCBhIHRoZW1lIG1hbnVhbGx5IGFuZCBwYXNzIGl0IHRvIGEgdGhlbWUuIFdlIHN1cHBvcnQgdGhpcyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuXG4vLyBUT0RPKGRldnZlcnNpb24pOiByZW1vdmUgdGhpcyBpbiB0aGUgZnV0dXJlLiBDb25zdHJ1Y3RpbmcgdGhlbWVzIG1hbnVhbGx5IGlzIHJhcmUsXG4vLyBhbmQgdGhlIGNvZGUgY2FuIGJlIGVhc2lseSB1cGRhdGVkIHRvIHRoZSBuZXcgQVBJLlxuQGZ1bmN0aW9uIG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICBAaWYgbWF0LXByaXZhdGUtaXMtdGhlbWUtb2JqZWN0KCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgICBAcmV0dXJuICR0aGVtZS1vci1jb2xvci1jb25maWc7XG4gIH1cbiAgQHJldHVybiBtYXQtcHJpdmF0ZS1jcmVhdGUtYmFja3dhcmRzLWNvbXBhdGliaWxpdHktdGhlbWUoKFxuICAgIF9pcy1sZWdhY3ktdGhlbWU6IHRydWUsXG4gICAgY29sb3I6ICR0aGVtZS1vci1jb2xvci1jb25maWdcbiAgKSk7XG59XG5cblxuXG4kbWF0LXJpcHBsZS1jb2xvci1vcGFjaXR5OiAwLjE7XG5cbkBtaXhpbiBtYXQtcmlwcGxlKCkge1xuXG4gIC8vIFRoZSBob3N0IGVsZW1lbnQgb2YgYW4gbWF0LXJpcHBsZSBkaXJlY3RpdmUgc2hvdWxkIGFsd2F5cyBoYXZlIGEgcG9zaXRpb24gb2YgXCJhYnNvbHV0ZVwiIG9yXG4gIC8vIFwicmVsYXRpdmVcIiBzbyB0aGF0IHRoZSByaXBwbGVzIGluc2lkZSBhcmUgY29ycmVjdGx5IHBvc2l0aW9uZWQgcmVsYXRpdmVseSB0byB0aGUgY29udGFpbmVyLlxuICAubWF0LXJpcHBsZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIC8vIEJ5IGRlZmF1bHQsIGV2ZXJ5IHJpcHBsZSBjb250YWluZXIgc2hvdWxkIGhhdmUgcG9zaXRpb246IHJlbGF0aXZlIGluIGZhdm9yIG9mIGNyZWF0aW5nIGFuXG4gICAgLy8gZWFzeSBBUEkgZm9yIGRldmVsb3BlcnMgdXNpbmcgdGhlIE1hdFJpcHBsZSBkaXJlY3RpdmUuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLy8gUHJvbW90ZSBjb250YWluZXJzIHRoYXQgaGF2ZSByaXBwbGVzIHRvIGEgbmV3IGxheWVyLiBXZSB3YW50IHRvIHRhcmdldCBgOm5vdCg6ZW1wdHkpYCxcbiAgICAvLyBiZWNhdXNlIHdlIGRvbid0IHdhbnQgYWxsIHJpcHBsZSBjb250YWluZXJzIHRvIGhhdmUgdGhlaXIgb3duIGxheWVyIHNpbmNlIHRoZXkncmUgdXNlZCBpbiBhXG4gICAgLy8gbG90IG9mIHBsYWNlcyBhbmQgdGhlIGxheWVyIGlzIG9ubHkgcmVsZXZhbnQgd2hpbGUgYW5pbWF0aW5nLiBOb3RlIHRoYXQgaWRlYWxseSB3ZSdkIHVzZVxuICAgIC8vIHRoZSBgY29udGFpbmAgcHJvcGVydHkgaGVyZSAoc2VlICMxMzE3NSksIGJlY2F1c2UgYDplbXB0eWAgY2FuIGJlIGJyb2tlbiBieSBoYXZpbmcgZXh0cmFcbiAgICAvLyB0ZXh0IGluc2lkZSB0aGUgZWxlbWVudCwgYnV0IGl0IGlzbid0IHZlcnkgd2VsbCBzdXBwb3J0ZWQgeWV0LlxuICAgICY6bm90KDplbXB0eSkge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxuXG4gIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5LCB0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG5cbiAgICAvLyBJbiBoaWdoIGNvbnRyYXN0IG1vZGUgdGhlIHJpcHBsZSBpcyBvcGFxdWUsIGNhdXNpbmcgaXQgdG8gb2JzdHJ1Y3QgdGhlIGNvbnRlbnQuXG4gICAgQGluY2x1ZGUgY2RrLWhpZ2gtY29udHJhc3QoYWN0aXZlLCBvZmYpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8qIENvbG9ycyBmb3IgdGhlIHJpcHBsZSBlbGVtZW50cy4qL1xuQG1peGluIG1hdC1yaXBwbGUtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG4gICRmb3JlZ3JvdW5kLWJhc2U6IG1hcC1nZXQoJGZvcmVncm91bmQsIGJhc2UpO1xuXG4gIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIC8vIElmIHRoZSByaXBwbGUgY29sb3IgaXMgcmVzb2x2ZXMgdG8gYSBjb2xvciAqdHlwZSosIHdlIGNhbiB1c2UgaXQgZGlyZWN0bHksIG90aGVyd2lzZVxuICAgIC8vIChlLmcuIGl0IHJlc29sdmVzIHRvIGEgQ1NTIHZhcmlhYmxlKSB3ZSBmYWxsIGJhY2sgdG8gdXNpbmcgdGhlIGNvbG9yIGFuZCBzZXR0aW5nIGFuIG9wYWNpdHkuXG4gICAgQGlmICh0eXBlLW9mKCRmb3JlZ3JvdW5kLWJhc2UpID09IGNvbG9yKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRmb3JlZ3JvdW5kLWJhc2UsICRtYXQtcmlwcGxlLWNvbG9yLW9wYWNpdHkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZm9yZWdyb3VuZC1iYXNlO1xuICAgICAgb3BhY2l0eTogJG1hdC1yaXBwbGUtY29sb3Itb3BhY2l0eTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1yaXBwbGUtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LXJpcHBsZScpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1yaXBwbGUtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBUaGlzIG1peGluIGVuc3VyZXMgYW4gZWxlbWVudCBzcGFucyB0byBmaWxsIHRoZSBuZWFyZXN0IGFuY2VzdG9yIHdpdGggZGVmaW5lZCBwb3NpdGlvbmluZy5cbkBtaXhpbiBtYXQtZmlsbCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuXG5cbi8vLyBNaXhpbiB0aGF0IHR1cm5zIG9uIHN0cm9uZyBmb2N1cyBpbmRpY2F0b3JzLlxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyAgIC5teS1hcHAge1xuLy8vICAgICBAaW5jbHVkZSBtYXQtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMoJGNvbmZpZyk7XG4vLy8gICB9XG5AbWl4aW4gbWF0LXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzKCRjb25maWc6ICgpKSB7XG4gIC8vIERlZmF1bHQgZm9jdXMgaW5kaWNhdG9yIGNvbmZpZy5cbiAgJGRlZmF1bHQtY29uZmlnOiAoXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZCxcbiAgICBib3JkZXItd2lkdGg6IDNweCxcbiAgICBib3JkZXItcmFkaXVzOiA0cHgsXG4gICk7XG5cbiAgLy8gTWVyZ2UgZGVmYXVsdCBjb25maWcgd2l0aCB1c2VyIGNvbmZpZy5cbiAgJGNvbmZpZzogbWFwLW1lcmdlKCRkZWZhdWx0LWNvbmZpZywgJGNvbmZpZyk7XG4gICRib3JkZXItc3R5bGU6IG1hcC1nZXQoJGNvbmZpZywgYm9yZGVyLXN0eWxlKTtcbiAgJGJvcmRlci13aWR0aDogbWFwLWdldCgkY29uZmlnLCBib3JkZXItd2lkdGgpO1xuICAkYm9yZGVyLXJhZGl1czogbWFwLWdldCgkY29uZmlnLCBib3JkZXItcmFkaXVzKTtcblxuICAvLyBCYXNlIHN0eWxlcyBmb3IgZm9jdXMgaW5kaWNhdG9ycy5cbiAgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgbWF0LWZpbGwoKTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGJvcmRlcjogJGJvcmRlci13aWR0aCAkYm9yZGVyLXN0eWxlIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICB9XG5cbiAgLy8gQnkgZGVmYXVsdCwgYWxsIGZvY3VzIGluZGljYXRvcnMgYXJlIGZsdXNoIHdpdGggdGhlIGJvdW5kaW5nIGJveCBvZiB0aGVpclxuICAvLyBob3N0IGVsZW1lbnQuIEZvciBwYXJ0aWN1bGFyIGVsZW1lbnRzIChsaXN0ZWQgYmVsb3cpLCBkZWZhdWx0IGluc2V0L29mZnNldFxuICAvLyB2YWx1ZXMgYXJlIG5lY2Vzc2FyeSB0byBlbnN1cmUgdGhhdCB0aGUgZm9jdXMgaW5kaWNhdG9yIGlzIHN1ZmZpY2llbnRseVxuICAvLyBjb250cmFzdGl2ZSBhbmQgcmVuZGVycyBhcHByb3ByaWF0ZWx5LlxuXG4gIC5tYXQtZm9jdXMtaW5kaWNhdG9yLm1hdC1mbGF0LWJ1dHRvbjo6YmVmb3JlLFxuICAubWF0LWZvY3VzLWluZGljYXRvci5tYXQtcmFpc2VkLWJ1dHRvbjo6YmVmb3JlLFxuICAubWF0LWZvY3VzLWluZGljYXRvci5tYXQtZmFiOjpiZWZvcmUsXG4gIC5tYXQtZm9jdXMtaW5kaWNhdG9yLm1hdC1taW5pLWZhYjo6YmVmb3JlLFxuICAubWF0LWZvY3VzLWluZGljYXRvci5tYXQtY2hpcDo6YmVmb3JlLFxuICAubWF0LWZvY3VzLWluZGljYXRvci5tYXQtc29ydC1oZWFkZXItY29udGFpbmVyOjpiZWZvcmUge1xuICAgIG1hcmdpbjogLSgkYm9yZGVyLXdpZHRoICsgMnB4KTtcbiAgfVxuXG4gIC5tYXQtZm9jdXMtaW5kaWNhdG9yLm1hdC1zdHJva2VkLWJ1dHRvbjo6YmVmb3JlLFxuICAubWF0LWZvY3VzLWluZGljYXRvci5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6OmJlZm9yZSB7XG4gICAgbWFyZ2luOiAtKCRib3JkZXItd2lkdGggKyAzcHgpO1xuICB9XG5cbiAgLm1hdC1mb2N1cy1pbmRpY2F0b3IubWF0LXRhYi1saW5rOjpiZWZvcmUsXG4gIC5tYXQtZm9jdXMtaW5kaWNhdG9yLm1hdC10YWItbGFiZWw6OmJlZm9yZSB7XG4gICAgbWFyZ2luOiA1cHg7XG4gIH1cblxuICAvLyBSZW5kZXIgdGhlIGZvY3VzIGluZGljYXRvciBvbiBmb2N1cy4gRGVmaW5pbmcgYSBwc2V1ZG8gZWxlbWVudCdzXG4gIC8vIGNvbnRlbnQgd2lsbCBjYXVzZSBpdCB0byByZW5kZXIuXG5cbiAgLy8gQ2hlY2tib3hlcywgcmFkaW9zLCBhbmQgc2xpZGUgdG9nZ2xlcyByZW5kZXIgZm9jdXMgaW5kaWNhdG9ycyB3aGVuIHRoZVxuICAvLyBhc3NvY2lhdGVkIHZpc3VhbGx5LWhpZGRlbiBpbnB1dCBpcyBmb2N1c2VkLlxuICAubWF0LWNoZWNrYm94LWlucHV0OmZvY3VzIH4gLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSxcbiAgLm1hdC1yYWRpby1pbnB1dDpmb2N1cyB+IC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsXG4gIC5tYXQtc2xpZGUtdG9nZ2xlLWlucHV0OmZvY3VzIH4gLm1hdC1zbGlkZS10b2dnbGUtdGh1bWItY29udGFpbmVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsXG5cbiAgLy8gRm9yIG9wdGlvbnMsIHJlbmRlciB0aGUgZm9jdXMgaW5kaWNhdG9yIHdoZW4gdGhlIGNsYXNzIC5tYXQtYWN0aXZlXG4gIC8vIGlzIHByZXNlbnQuXG4gIC5tYXQtZm9jdXMtaW5kaWNhdG9yLm1hdC1vcHRpb24ubWF0LWFjdGl2ZTo6YmVmb3JlLFxuXG4gIC8vIEZvciBjYWxlbmRhciBjZWxscywgcmVuZGVyIHRoZSBmb2N1cyBpbmRpY2F0b3Igd2hlbiB0aGUgcGFyZW50IGNlbGwgaXNcbiAgLy8gZm9jdXNlZC5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6Zm9jdXMgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSxcblxuICAvLyBGb3IgYWxsIG90aGVyIGNvbXBvbmVudHMsIHJlbmRlciB0aGUgZm9jdXMgaW5kaWNhdG9yIG9uIGZvY3VzLlxuICAubWF0LWZvY3VzLWluZGljYXRvcjpmb2N1czo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgfVxufVxuXG4vLyBNaXhpbiB0aGF0IGFwcGxpZXMgdGhlIGJvcmRlciBjb2xvciBmb3IgdGhlIGZvY3VzIGluZGljYXRvcnMuXG5AbWl4aW4gX21hdC1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycy1ib3JkZXItY29sb3IoJGNvbG9yKSB7XG4gIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUge1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgQGluY2x1ZGUgX21hdC1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycy1ib3JkZXItY29sb3IobWF0LWNvbG9yKG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSkpKTtcbn1cblxuLy8vIE1peGluIHRoYXQgc2V0cyB0aGUgY29sb3Igb2YgdGhlIGZvY3VzIGluZGljYXRvcnMuXG4vLy9cbi8vLyBAcGFyYW0ge2NvbG9yfG1hcH0gJHRoZW1lLW9yLWNvbG9yXG4vLy8gICBJZiB0aGVtZSwgZm9jdXMgaW5kaWNhdG9ycyBhcmUgc2V0IHRvIHRoZSBwcmltYXJ5IGNvbG9yIG9mIHRoZSB0aGVtZS4gSWZcbi8vLyAgIGNvbG9yLCBmb2N1cyBpbmRpY2F0b3JzIGFyZSBzZXQgdG8gdGhhdCBjb2xvci5cbi8vL1xuLy8vIEBleGFtcGxlXG4vLy8gICAuZGVtby1kYXJrLXRoZW1lIHtcbi8vLyAgICAgQGluY2x1ZGUgbWF0LXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLXRoZW1lKCRkYXJrLXRoZW1lLW1hcCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vICAgLmRlbW8tcmVkLXRoZW1lIHtcbi8vLyAgICAgQGluY2x1ZGUgbWF0LXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLXRoZW1lKCNmMDApO1xuLy8vICAgfVxuLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG1hdGVyaWFsL3RoZW1lLW1peGluLWFwaSAqL1xuQG1peGluIG1hdC1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycy10aGVtZSgkdGhlbWUtb3ItY29sb3IpIHtcbiAgQGlmIHR5cGUtb2YoJHRoZW1lLW9yLWNvbG9yKSAhPSAnbWFwJyB7XG4gICAgQGluY2x1ZGUgX21hdC1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycy1ib3JkZXItY29sb3IoJHRoZW1lLW9yLWNvbG9yKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvcik7XG4gICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMnKSB7XG4gICAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgICBAaW5jbHVkZSBtYXQtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtY29sb3IoJGNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gTWl4aW4gdGhhdCBlbnN1cmVzIGZvY3VzIGluZGljYXRvciBob3N0IGVsZW1lbnRzIGFyZSBwb3NpdGlvbmVkIHNvIHRoYXQgdGhlIGZvY3VzIGluZGljYXRvclxuLy8gcHNldWRvIGVsZW1lbnQgd2l0aGluIGlzIHBvc2l0aW9uZWQgcmVsYXRpdmUgdG8gdGhlIGhvc3QuIFByaXZhdGUgbWl4aW4gaW5jbHVkZWQgd2l0aGluXG4vLyBgbWF0LWNvcmVgLlxuQG1peGluIG1hdC1wcml2YXRlLXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLXBvc2l0aW9uaW5nKCkge1xuICAubWF0LWZvY3VzLWluZGljYXRvciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG59XG5cblxuXG4vLyBVdGlsaXR5IGZvciBmZXRjaGluZyBhIG5lc3RlZCB2YWx1ZSBmcm9tIGEgdHlwb2dyYXBoeSBjb25maWcuXG5AZnVuY3Rpb24gX21hdC1nZXQtdHlwZS12YWx1ZSgkY29uZmlnLCAkbGV2ZWwsICRuYW1lKSB7XG4gIEByZXR1cm4gbWFwLWdldChtYXAtZ2V0KCRjb25maWcsICRsZXZlbCksICRuYW1lKTtcbn1cblxuLy8gR2V0cyB0aGUgZm9udCBzaXplIGZvciBhIGxldmVsIGluc2lkZSBhIHR5cG9ncmFwaHkgY29uZmlnLlxuQGZ1bmN0aW9uIG1hdC1mb250LXNpemUoJGNvbmZpZywgJGxldmVsKSB7XG4gIEByZXR1cm4gX21hdC1nZXQtdHlwZS12YWx1ZSgkY29uZmlnLCAkbGV2ZWwsIGZvbnQtc2l6ZSk7XG59XG5cbi8vIEdldHMgdGhlIGxpbmUgaGVpZ2h0IGZvciBhIGxldmVsIGluc2lkZSBhIHR5cG9ncmFwaHkgY29uZmlnLlxuQGZ1bmN0aW9uIG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCAkbGV2ZWwpIHtcbiAgQHJldHVybiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgbGluZS1oZWlnaHQpO1xufVxuXG4vLyBHZXRzIHRoZSBmb250IHdlaWdodCBmb3IgYSBsZXZlbCBpbnNpZGUgYSB0eXBvZ3JhcGh5IGNvbmZpZy5cbkBmdW5jdGlvbiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgJGxldmVsKSB7XG4gIEByZXR1cm4gX21hdC1nZXQtdHlwZS12YWx1ZSgkY29uZmlnLCAkbGV2ZWwsIGZvbnQtd2VpZ2h0KTtcbn1cblxuLy8gR2V0cyB0aGUgbGV0dGVyIHNwYWNpbmcgZm9yIGEgbGV2ZWwgaW5zaWRlIGEgdHlwb2dyYXBoeSBjb25maWcuXG5AZnVuY3Rpb24gbWF0LWxldHRlci1zcGFjaW5nKCRjb25maWcsICRsZXZlbCkge1xuICBAcmV0dXJuIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCBsZXR0ZXItc3BhY2luZyk7XG59XG5cbi8vIEdldHMgdGhlIGZvbnQtZmFtaWx5IGZyb20gYSB0eXBvZ3JhcGh5IGNvbmZpZyBhbmQgcmVtb3ZlcyB0aGUgcXVvdGVzIGFyb3VuZCBpdC5cbkBmdW5jdGlvbiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgJGxldmVsOiBudWxsKSB7XG4gICRmb250LWZhbWlseTogbWFwLWdldCgkY29uZmlnLCBmb250LWZhbWlseSk7XG5cbiAgQGlmICRsZXZlbCAhPSBudWxsIHtcbiAgICAkZm9udC1mYW1pbHk6IF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCBmb250LWZhbWlseSk7XG4gIH1cblxuICAvLyBHdWFyZCBhZ2FpbnN0IHVucXVvdGluZyBub24tc3RyaW5nIHZhbHVlcywgYmVjYXVzZSBpdCdzIGRlcHJlY2F0ZWQuXG4gIEByZXR1cm4gaWYodHlwZS1vZigkZm9udC1mYW1pbHkpID09IHN0cmluZywgdW5xdW90ZSgkZm9udC1mYW1pbHkpLCAkZm9udC1mYW1pbHkpO1xufVxuXG4vLyBPdXRwdXRzIHRoZSBzaG9ydGhhbmQgYGZvbnRgIENTUyBwcm9wZXJ0eSwgYmFzZWQgb24gYSBzZXQgb2YgdHlwb2dyYXBoeSB2YWx1ZXMuIEZhbGxzIGJhY2sgdG9cbi8vIHRoZSBpbmRpdmlkdWFsIHByb3BlcnRpZXMgaWYgYSB2YWx1ZSB0aGF0IGlzbid0IGFsbG93ZWQgaW4gdGhlIHNob3J0aGFuZCBpcyBwYXNzZWQgaW4uXG5AbWl4aW4gbWF0LXR5cG9ncmFwaHktZm9udC1zaG9ydGhhbmQoJGZvbnQtc2l6ZSwgJGZvbnQtd2VpZ2h0LCAkbGluZS1oZWlnaHQsICRmb250LWZhbWlseSkge1xuICAvLyBJZiBhbnkgb2YgdGhlIHZhbHVlcyBhcmUgc2V0IHRvIGBpbmhlcml0YCwgd2UgY2FuJ3QgdXNlIHRoZSBzaG9ydGhhbmRcbiAgLy8gc28gd2UgZmFsbCBiYWNrIHRvIHBhc3NpbmcgaW4gdGhlIGluZGl2aWR1YWwgcHJvcGVydGllcy5cbiAgQGlmICgkZm9udC1zaXplID09IGluaGVyaXQgb3JcbiAgICAgICAkZm9udC13ZWlnaHQgPT0gaW5oZXJpdCBvclxuICAgICAgICRsaW5lLWhlaWdodCA9PSBpbmhlcml0IG9yXG4gICAgICAgJGZvbnQtZmFtaWx5ID09IGluaGVyaXQgb3JcbiAgICAgICAkZm9udC1zaXplID09IG51bGwgb3JcbiAgICAgICAkZm9udC13ZWlnaHQgPT0gbnVsbCBvclxuICAgICAgICRsaW5lLWhlaWdodCA9PSBudWxsIG9yXG4gICAgICAgJGZvbnQtZmFtaWx5ID09IG51bGwpIHtcblxuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gT3RoZXJ3aXNlIHVzZSB0aGUgc2hvcnRoYW5kIGBmb250YCwgYmVjYXVzZSBpdCdzIHRoZSBsZWFzdCBhbW91bnQgb2YgYnl0ZXMuIE5vdGVcbiAgICAvLyB0aGF0IHdlIG5lZWQgdG8gdXNlIGludGVycG9sYXRpb24gZm9yIGBmb250LXNpemUvbGluZS1oZWlnaHRgIGluIG9yZGVyIHRvIHByZXZlbnRcbiAgICAvLyBTYXNzIGZyb20gZGl2aWRpbmcgdGhlIHR3byB2YWx1ZXMuXG4gICAgZm9udDogJGZvbnQtd2VpZ2h0ICN7JGZvbnQtc2l6ZX0vI3skbGluZS1oZWlnaHR9ICRmb250LWZhbWlseTtcbiAgfVxufVxuXG4vLyBDb252ZXJ0cyBhIHR5cG9ncmFwaHkgbGV2ZWwgaW50byBDU1Mgc3R5bGVzLlxuQG1peGluIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCAkbGV2ZWwpIHtcbiAgJGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCAkbGV2ZWwpO1xuICAkZm9udC13ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCAkbGV2ZWwpO1xuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCAkbGV2ZWwpO1xuICAkZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCAkbGV2ZWwpO1xuXG4gIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWZvbnQtc2hvcnRoYW5kKCRmb250LXNpemUsICRmb250LXdlaWdodCwgJGxpbmUtaGVpZ2h0LCAkZm9udC1mYW1pbHkpO1xuICBsZXR0ZXItc3BhY2luZzogbWF0LWxldHRlci1zcGFjaW5nKCRjb25maWcsICRsZXZlbCk7XG59XG5cblxuQG1peGluIG1hdC1vcHRpb24tY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcblxuICAubWF0LW9wdGlvbiB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgICAmOmhvdmVyOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCksXG4gICAgJjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIpO1xuICAgIH1cblxuICAgIC8vIEluIG11bHRpcGxlIG1vZGUgdGhlcmUgaXMgYSBjaGVja2JveCB0byBzaG93IHRoYXQgdGhlIG9wdGlvbiBpcyBzZWxlY3RlZC5cbiAgICAmLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgfVxuXG4gICAgJi5tYXQtYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIpO1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtb3B0aW9uLWRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1wcmltYXJ5IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LW9wdGlvbi10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC1vcHRpb24ge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBzdWJoZWFkaW5nLTIpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gX21hdC1vcHRpb24tZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LW9wdGlvbi10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtb3B0aW9uJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LW9wdGlvbi1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LW9wdGlvbi1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LW9wdGlvbi10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5AbWl4aW4gbWF0LW9wdGdyb3VwLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtb3B0Z3JvdXAtZGlzYWJsZWQgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgaGludC10ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LW9wdGdyb3VwLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC1vcHRncm91cC1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtb3B0Z3JvdXAtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LW9wdGdyb3VwJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LW9wdGdyb3VwLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtb3B0Z3JvdXAtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1vcHRncm91cC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cbkBtaXhpbiBtYXQtcHNldWRvLWNoZWNrYm94LWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCRjb25maWcsIGlzLWRhcmspO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG5cbiAgLy8gTk9URSh0cmF2aXNrYXVmbWFuKTogV2hpbGUgdGhlIHNwZWMgY2FsbHMgZm9yIHRyYW5zbHVjZW50IGJsYWNrcy93aGl0ZXMgZm9yIGRpc2FibGVkIGNvbG9ycyxcbiAgLy8gdGhpcyBkb2VzIG5vdCB3b3JrIHdlbGwgd2l0aCBlbGVtZW50cyBsYXllcmVkIG9uIHRvcCBvZiBvbmUgYW5vdGhlci4gVG8gZ2V0IGFyb3VuZCB0aGlzIHdlXG4gIC8vIGJsZW5kIHRoZSBjb2xvcnMgdG9nZXRoZXIgYmFzZWQgb24gdGhlIGJhc2UgY29sb3IgYW5kIHRoZSB0aGVtZSBiYWNrZ3JvdW5kLlxuICAkd2hpdGUtMzBwY3Qtb3BhY2l0eS1vbi1kYXJrOiAjNjg2ODY4O1xuICAkYmxhY2stMjZwY3Qtb3BhY2l0eS1vbi1saWdodDogI2IwYjBiMDtcbiAgJGRpc2FibGVkLWNvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgJHdoaXRlLTMwcGN0LW9wYWNpdHktb24tZGFyaywgJGJsYWNrLTI2cGN0LW9wYWNpdHktb24tbGlnaHQpO1xuICAkY29sb3JlZC1ib3gtc2VsZWN0b3I6ICcubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlJztcblxuICAubWF0LXBzZXVkby1jaGVja2JveCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpLCBzZWNvbmRhcnktdGV4dCk7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBiYWNrZ3JvdW5kKTtcbiAgICB9XG4gIH1cblxuICAubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCB7XG4gICAgY29sb3I6ICRkaXNhYmxlZC1jb2xvcjtcbiAgfVxuXG4gIC5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuICAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSkpO1xuICB9XG5cbiAgLy8gRGVmYXVsdCB0byB0aGUgYWNjZW50IGNvbG9yLiBOb3RlIHRoYXQgdGhlIHBzZXVkbyBjaGVja2JveGVzIGFyZSBtZWFudCB0byBpbmhlcml0IHRoZVxuICAvLyB0aGVtZSBmcm9tIHRoZWlyIHBhcmVudCwgcmF0aGVyIHRoYW4gaW1wbGVtZW50aW5nIHRoZWlyIG93biB0aGVtaW5nLCB3aGljaCBpcyB3aHkgd2VcbiAgLy8gZG9uJ3QgYXR0YWNoIHRvIHRoZSBgbWF0LSpgIGNsYXNzZXMuIEFsc28gbm90ZSB0aGF0IHRoaXMgbmVlZHMgdG8gYmUgYmVsb3cgYC5tYXQtcHJpbWFyeWBcbiAgLy8gaW4gb3JkZXIgdG8gYWxsb3cgZm9yIHRoZSBjb2xvciB0byBiZSBvdmVyd3JpdHRlbiBpZiB0aGUgY2hlY2tib3ggaXMgaW5zaWRlIGEgcGFyZW50IHRoYXRcbiAgLy8gaGFzIGBtYXQtYWNjZW50YCBhbmQgaXMgcGxhY2VkIGluc2lkZSBhbm90aGVyIHBhcmVudCB0aGF0IGhhcyBgbWF0LXByaW1hcnlgLlxuICAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuICAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLFxuICAubWF0LWFjY2VudCAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuICAubWF0LWFjY2VudCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IobWFwLWdldCgkY29uZmlnLCBhY2NlbnQpKTtcbiAgfVxuXG4gIC5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuICAubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKG1hcC1nZXQoJGNvbmZpZywgd2FybikpO1xuICB9XG5cbiAgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbiAgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gICAgJi5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICAgIGJhY2tncm91bmQ6ICRkaXNhYmxlZC1jb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1wc2V1ZG8tY2hlY2tib3gtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gX21hdC1wc2V1ZG8tY2hlY2tib3gtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LXBzZXVkby1jaGVja2JveC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtcHNldWRvLWNoZWNrYm94Jykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXBzZXVkby1jaGVja2JveC1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXBzZXVkby1jaGVja2JveC1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXBzZXVkby1jaGVja2JveC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cbi8vIFJlcHJlc2VudHMgYSB0eXBvZ3JhcGh5IGxldmVsIGZyb20gdGhlIE1hdGVyaWFsIGRlc2lnbiBzcGVjLlxuQGZ1bmN0aW9uIG1hdC10eXBvZ3JhcGh5LWxldmVsKFxuICAkZm9udC1zaXplLFxuICAkbGluZS1oZWlnaHQ6ICRmb250LXNpemUsXG4gICRmb250LXdlaWdodDogNDAwLFxuICAkZm9udC1mYW1pbHk6IG51bGwsXG4gICRsZXR0ZXItc3BhY2luZzogbm9ybWFsKSB7XG5cbiAgQHJldHVybiAoXG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLFxuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQsXG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodCxcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LFxuICAgIGxldHRlci1zcGFjaW5nOiAkbGV0dGVyLXNwYWNpbmdcbiAgKTtcbn1cblxuLy8gUmVwcmVzZW50cyBhIGNvbGxlY3Rpb24gb2YgdHlwb2dyYXBoeSBsZXZlbHMuXG4vLyBEZWZhdWx0cyBjb21lIGZyb20gaHR0cHM6Ly9tYXRlcmlhbC5pby9ndWlkZWxpbmVzL3N0eWxlL3R5cG9ncmFwaHkuaHRtbFxuLy8gTm90ZTogVGhlIHNwZWMgZG9lc24ndCBtZW50aW9uIGxldHRlciBzcGFjaW5nLiBUaGUgdmFsdWVzIGhlcmUgY29tZSBmcm9tXG4vLyBleWViYWxsaW5nIGl0IHVudGlsIGl0IGxvb2tlZCBleGFjdGx5IGxpa2UgdGhlIHNwZWMgZXhhbXBsZXMuXG5AZnVuY3Rpb24gbWF0LXR5cG9ncmFwaHktY29uZmlnKFxuICAkZm9udC1mYW1pbHk6ICAgJ1JvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmJyxcbiAgJGRpc3BsYXktNDogICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDExMnB4LCAxMTJweCwgMzAwLCAkbGV0dGVyLXNwYWNpbmc6IC0wLjA1ZW0pLFxuICAkZGlzcGxheS0zOiAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoNTZweCwgNTZweCwgNDAwLCAkbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW0pLFxuICAkZGlzcGxheS0yOiAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoNDVweCwgNDhweCwgNDAwLCAkbGV0dGVyLXNwYWNpbmc6IC0wLjAwNWVtKSxcbiAgJGRpc3BsYXktMTogICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDM0cHgsIDQwcHgsIDQwMCksXG4gICRoZWFkbGluZTogICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgyNHB4LCAzMnB4LCA0MDApLFxuICAkdGl0bGU6ICAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMjBweCwgMzJweCwgNTAwKSxcbiAgJHN1YmhlYWRpbmctMjogIG1hdC10eXBvZ3JhcGh5LWxldmVsKDE2cHgsIDI4cHgsIDQwMCksXG4gICRzdWJoZWFkaW5nLTE6ICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxNXB4LCAyNHB4LCA0MDApLFxuICAkYm9keS0yOiAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTRweCwgMjRweCwgNTAwKSxcbiAgJGJvZHktMTogICAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDE0cHgsIDIwcHgsIDQwMCksXG4gICRjYXB0aW9uOiAgICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxMnB4LCAyMHB4LCA0MDApLFxuICAkYnV0dG9uOiAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTRweCwgMTRweCwgNTAwKSxcbiAgLy8gTGluZS1oZWlnaHQgbXVzdCBiZSB1bml0LWxlc3MgZnJhY3Rpb24gb2YgdGhlIGZvbnQtc2l6ZS5cbiAgJGlucHV0OiAgICAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKGluaGVyaXQsIDEuMTI1LCA0MDApXG4pIHtcblxuICAvLyBEZWNsYXJlIGFuIGluaXRpYWwgbWFwIHdpdGggYWxsIG9mIHRoZSBsZXZlbHMuXG4gICRjb25maWc6IChcbiAgICBkaXNwbGF5LTQ6ICAgICAgJGRpc3BsYXktNCxcbiAgICBkaXNwbGF5LTM6ICAgICAgJGRpc3BsYXktMyxcbiAgICBkaXNwbGF5LTI6ICAgICAgJGRpc3BsYXktMixcbiAgICBkaXNwbGF5LTE6ICAgICAgJGRpc3BsYXktMSxcbiAgICBoZWFkbGluZTogICAgICAgJGhlYWRsaW5lLFxuICAgIHRpdGxlOiAgICAgICAgICAkdGl0bGUsXG4gICAgc3ViaGVhZGluZy0yOiAgICRzdWJoZWFkaW5nLTIsXG4gICAgc3ViaGVhZGluZy0xOiAgICRzdWJoZWFkaW5nLTEsXG4gICAgYm9keS0yOiAgICAgICAgICRib2R5LTIsXG4gICAgYm9keS0xOiAgICAgICAgICRib2R5LTEsXG4gICAgY2FwdGlvbjogICAgICAgICRjYXB0aW9uLFxuICAgIGJ1dHRvbjogICAgICAgICAkYnV0dG9uLFxuICAgIGlucHV0OiAgICAgICAgICAkaW5wdXQsXG4gICk7XG5cbiAgLy8gTG9vcCB0aHJvdWdoIHRoZSBsZXZlbHMgYW5kIHNldCB0aGUgYGZvbnQtZmFtaWx5YCBvZiB0aGUgb25lcyB0aGF0IGRvbid0IGhhdmUgb25lIHRvIHRoZSBiYXNlLlxuICAvLyBOb3RlIHRoYXQgU2FzcyBjYW4ndCBtb2RpZnkgbWFwcyBpbiBwbGFjZSwgd2hpY2ggbWVhbnMgdGhhdCB3ZSBuZWVkIHRvIG1lcmdlIGFuZCByZS1hc3NpZ24uXG4gIEBlYWNoICRrZXksICRsZXZlbCBpbiAkY29uZmlnIHtcbiAgICBAaWYgbWFwLWdldCgkbGV2ZWwsIGZvbnQtZmFtaWx5KSA9PSBudWxsIHtcbiAgICAgICRuZXctbGV2ZWw6IG1hcC1tZXJnZSgkbGV2ZWwsIChmb250LWZhbWlseTogJGZvbnQtZmFtaWx5KSk7XG4gICAgICAkY29uZmlnOiBtYXAtbWVyZ2UoJGNvbmZpZywgKCRrZXk6ICRuZXctbGV2ZWwpKTtcbiAgICB9XG4gIH1cblxuICAvLyBBZGQgdGhlIGJhc2UgZm9udCBmYW1pbHkgdG8gdGhlIGNvbmZpZy5cbiAgQHJldHVybiBtYXAtbWVyZ2UoJGNvbmZpZywgKGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHkpKTtcbn1cblxuLy8gV2hldGhlciBhIGNvbmZpZyBpcyBmb3IgdGhlIE1hdGVyaWFsIERlc2lnbiAyMDE4IHR5cG9ncmFwaHkgc3lzdGVtLlxuQGZ1bmN0aW9uIG1hdC1wcml2YXRlLXR5cG9ncmFwaHktaXMtMjAxOC1jb25maWcoJGNvbmZpZykge1xuICBAcmV0dXJuIG1hcC1nZXQoJGNvbmZpZywgaGVhZGxpbmUtMSkgIT0gbnVsbDtcbn1cblxuLy8gV2hldGhlciBhIGNvbmZpZyBpcyBmb3IgdGhlIE1hdGVyaWFsIERlc2lnbiAyMDE0IHR5cG9ncmFwaHkgc3lzdGVtLlxuQGZ1bmN0aW9uIG1hdC1wcml2YXRlLXR5cG9ncmFwaHktaXMtMjAxNC1jb25maWcoJGNvbmZpZykge1xuICBAcmV0dXJuIG1hcC1nZXQoJGNvbmZpZywgaGVhZGxpbmUpICE9IG51bGw7XG59XG5cbi8vIEdpdmVuIGEgY29uZmlnIGZvciBlaXRoZXIgdGhlIDIwMTQgb3IgMjAxOCBNYXRlcmlhbCBEZXNpZ24gdHlwb2dyYXBoeSBzeXN0ZW0sXG4vLyBwcm9kdWNlcyBhIG5vcm1hbGl6ZWQgdHlwb2dyYXBoeSBjb25maWcgZm9yIHRoZSAyMDE0IE1hdGVyaWFsIERlc2lnbiB0eXBvZ3JhcGh5IHN5c3RlbS5cbi8vIDIwMTQgLSBodHRwczovL21hdGVyaWFsLmlvL2FyY2hpdmUvZ3VpZGVsaW5lcy9zdHlsZS90eXBvZ3JhcGh5Lmh0bWwjdHlwb2dyYXBoeS1zdHlsZXNcbi8vIDIwMTggLSBodHRwczovL21hdGVyaWFsLmlvL2Rlc2lnbi90eXBvZ3JhcGh5L3RoZS10eXBlLXN5c3RlbS5odG1sI3R5cGUtc2NhbGVcbkBmdW5jdGlvbiBtYXQtcHJpdmF0ZS10eXBvZ3JhcGh5LXRvLTIwMTQtY29uZmlnKCRjb25maWcpIHtcbiAgQGlmIG1hdC1wcml2YXRlLXR5cG9ncmFwaHktaXMtMjAxOC1jb25maWcoJGNvbmZpZykge1xuICAgIEByZXR1cm4gbWF0LXR5cG9ncmFwaHktY29uZmlnKFxuICAgICAgICAkZGlzcGxheS00OiBtYXAtZ2V0KCRjb25maWcsIGhlYWRsaW5lLTEpLFxuICAgICAgICAkZGlzcGxheS0zOiBtYXAtZ2V0KCRjb25maWcsIGhlYWRsaW5lLTIpLFxuICAgICAgICAkZGlzcGxheS0yOiBtYXAtZ2V0KCRjb25maWcsIGhlYWRsaW5lLTMpLFxuICAgICAgICAkZGlzcGxheS0xOiBtYXAtZ2V0KCRjb25maWcsIGhlYWRsaW5lLTQpLFxuICAgICAgICAkaGVhZGxpbmU6IG1hcC1nZXQoJGNvbmZpZywgaGVhZGxpbmUtNSksXG4gICAgICAgICR0aXRsZTogbWFwLWdldCgkY29uZmlnLCBoZWFkbGluZS02KSxcbiAgICAgICAgJHN1YmhlYWRpbmctMjogbWFwLWdldCgkY29uZmlnLCBzdWJ0aXRsZS0xKSxcbiAgICAgICAgJHN1YmhlYWRpbmctMTogbWFwLWdldCgkY29uZmlnLCBzdWJ0aXRsZS0yKSxcbiAgICAgICAgJGJvZHktMjogbWFwLWdldCgkY29uZmlnLCBib2R5LTEpLFxuICAgICAgICAkYm9keS0xOiBtYXAtZ2V0KCRjb25maWcsIGJvZHktMiksXG4gICAgICAgICRidXR0b246IG1hcC1nZXQoJGNvbmZpZywgYnV0dG9uKSxcbiAgICAgICAgJGNhcHRpb246IG1hcC1nZXQoJGNvbmZpZywgY2FwdGlvbiksXG4gICAgKTtcbiAgfVxuICBAcmV0dXJuICRjb25maWc7XG59XG5cbi8vIEdpdmVuIGEgY29uZmlnIGZvciBlaXRoZXIgdGhlIDIwMTQgb3IgMjAxOCBNYXRlcmlhbCBEZXNpZ24gdHlwb2dyYXBoeSBzeXN0ZW0sXG4vLyBwcm9kdWNlcyBhIG5vcm1hbGl6ZWQgdHlwb2dyYXBoeSBjb25maWcgZm9yIHRoZSAyMDE4IE1hdGVyaWFsIERlc2lnbiB0eXBvZ3JhcGh5IHN5c3RlbS5cbi8vIDIwMTQgLSBodHRwczovL21hdGVyaWFsLmlvL2FyY2hpdmUvZ3VpZGVsaW5lcy9zdHlsZS90eXBvZ3JhcGh5Lmh0bWwjdHlwb2dyYXBoeS1zdHlsZXNcbi8vIDIwMTggLSBodHRwczovL21hdGVyaWFsLmlvL2Rlc2lnbi90eXBvZ3JhcGh5L3RoZS10eXBlLXN5c3RlbS5odG1sI3R5cGUtc2NhbGVcbkBmdW5jdGlvbiBtYXQtcHJpdmF0ZS10eXBvZ3JhcGh5LXRvLTIwMTgtY29uZmlnKCRjb25maWcpIHtcbiAgQGlmIG1hdC1wcml2YXRlLXR5cG9ncmFwaHktaXMtMjAxNC1jb25maWcoJGNvbmZpZykge1xuICAgIEByZXR1cm4gKFxuICAgICAgICBoZWFkbGluZS0xOiBtYXAtZ2V0KCRjb25maWcsIGRpc3BsYXktNCksXG4gICAgICAgIGhlYWRsaW5lLTI6IG1hcC1nZXQoJGNvbmZpZywgZGlzcGxheS0zKSxcbiAgICAgICAgaGVhZGxpbmUtMzogbWFwLWdldCgkY29uZmlnLCBkaXNwbGF5LTIpLFxuICAgICAgICBoZWFkbGluZS00OiBtYXAtZ2V0KCRjb25maWcsIGRpc3BsYXktMSksXG4gICAgICAgIGhlYWRsaW5lLTU6IG1hcC1nZXQoJGNvbmZpZywgaGVhZGxpbmUpLFxuICAgICAgICBoZWFkbGluZS02OiBtYXAtZ2V0KCRjb25maWcsIHRpdGxlKSxcbiAgICAgICAgc3VidGl0bGUtMTogbWFwLWdldCgkY29uZmlnLCBzdWJoZWFkaW5nLTIpLFxuICAgICAgICBzdWJ0aXRsZS0yOiBtYXAtZ2V0KCRjb25maWcsIHN1YmhlYWRpbmctMSksXG4gICAgICAgIGJvZHktMTogbWFwLWdldCgkY29uZmlnLCBib2R5LTIpLFxuICAgICAgICBib2R5LTI6IG1hcC1nZXQoJGNvbmZpZywgYm9keS0xKSxcbiAgICAgICAgYnV0dG9uOiBtYXAtZ2V0KCRjb25maWcsIGJ1dHRvbiksXG4gICAgICAgIGNhcHRpb246IG1hcC1nZXQoJGNvbmZpZywgY2FwdGlvbiksXG4gICAgKTtcbiAgfVxuICBAcmV0dXJuICRjb25maWc7XG59XG5cbi8vIEFkZHMgdGhlIGJhc2UgdHlwb2dyYXBoeSBzdHlsZXMsIGJhc2VkIG9uIGEgY29uZmlnLlxuLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG1hdGVyaWFsL3RoZW1lLW1peGluLWFwaSAqL1xuQG1peGluIG1hdC1iYXNlLXR5cG9ncmFwaHkoJGNvbmZpZywgJHNlbGVjdG9yOiAnLm1hdC10eXBvZ3JhcGh5Jykge1xuICAubWF0LWgxLCAubWF0LWhlYWRsaW5lLCAjeyRzZWxlY3Rvcn0gaDEge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBoZWFkbGluZSk7XG4gICAgbWFyZ2luOiAwIDAgMTZweDtcbiAgfVxuXG4gIC5tYXQtaDIsIC5tYXQtdGl0bGUsICN7JHNlbGVjdG9yfSBoMiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIHRpdGxlKTtcbiAgICBtYXJnaW46IDAgMCAxNnB4O1xuICB9XG5cbiAgLm1hdC1oMywgLm1hdC1zdWJoZWFkaW5nLTIsICN7JHNlbGVjdG9yfSBoMyB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIHN1YmhlYWRpbmctMik7XG4gICAgbWFyZ2luOiAwIDAgMTZweDtcbiAgfVxuXG4gIC5tYXQtaDQsIC5tYXQtc3ViaGVhZGluZy0xLCAjeyRzZWxlY3Rvcn0gaDQge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBzdWJoZWFkaW5nLTEpO1xuICAgIG1hcmdpbjogMCAwIDE2cHg7XG4gIH1cblxuICAvLyBOb3RlOiB0aGUgc3BlYyBkb2Vzbid0IGhhdmUgYW55dGhpbmcgdGhhdCB3b3VsZCBjb3JyZXNwb25kIHRvIGg1IGFuZCBoNiwgYnV0IHdlIGFkZCB0aGVzZSBmb3JcbiAgLy8gY29uc2lzdGVuY3kuIFRoZSBmb250IHNpemVzIGNvbWUgZnJvbSB0aGUgQ2hyb21lIHVzZXIgYWdlbnQgc3R5bGVzIHdoaWNoIGhhdmUgaDUgYXQgMC44M2VtXG4gIC8vIGFuZCBoNiBhdCAwLjY3ZW0uXG4gIC5tYXQtaDUsICN7JHNlbGVjdG9yfSBoNSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktZm9udC1zaG9ydGhhbmQoXG4gICAgICAgLy8gY2FsYyBpcyB1c2VkIGhlcmUgdG8gc3VwcG9ydCBjc3MgdmFyaWFibGVzXG4gICAgICBjYWxjKCN7bWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpfSAqIDAuODMpLFxuICAgICAgbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSksXG4gICAgICBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgYm9keS0xKSxcbiAgICAgIG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBib2R5LTEpXG4gICAgKTtcblxuICAgIG1hcmdpbjogMCAwIDEycHg7XG4gIH1cblxuICAubWF0LWg2LCAjeyRzZWxlY3Rvcn0gaDYge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWZvbnQtc2hvcnRoYW5kKFxuICAgICAgIC8vIGNhbGMgaXMgdXNlZCBoZXJlIHRvIHN1cHBvcnQgY3NzIHZhcmlhYmxlc1xuICAgICAgY2FsYygje21hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKX0gKiAwLjY3KSxcbiAgICAgIG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpLFxuICAgICAgbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGJvZHktMSksXG4gICAgICBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYm9keS0xKVxuICAgICk7XG5cbiAgICBtYXJnaW46IDAgMCAxMnB4O1xuICB9XG5cbiAgLm1hdC1ib2R5LXN0cm9uZywgLm1hdC1ib2R5LTIge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTIpO1xuICB9XG5cbiAgLm1hdC1ib2R5LCAubWF0LWJvZHktMSwgI3skc2VsZWN0b3J9IHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgYm9keS0xKTtcblxuICAgIHAge1xuICAgICAgbWFyZ2luOiAwIDAgMTJweDtcbiAgICB9XG4gIH1cblxuICAubWF0LXNtYWxsLCAubWF0LWNhcHRpb24ge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBjYXB0aW9uKTtcbiAgfVxuXG4gIC5tYXQtZGlzcGxheS00LCAjeyRzZWxlY3Rvcn0gLm1hdC1kaXNwbGF5LTQge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBkaXNwbGF5LTQpO1xuICAgIG1hcmdpbjogMCAwIDU2cHg7XG4gIH1cblxuICAubWF0LWRpc3BsYXktMywgI3skc2VsZWN0b3J9IC5tYXQtZGlzcGxheS0zIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgZGlzcGxheS0zKTtcbiAgICBtYXJnaW46IDAgMCA2NHB4O1xuICB9XG5cbiAgLm1hdC1kaXNwbGF5LTIsICN7JHNlbGVjdG9yfSAubWF0LWRpc3BsYXktMiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGRpc3BsYXktMik7XG4gICAgbWFyZ2luOiAwIDAgNjRweDtcbiAgfVxuXG4gIC5tYXQtZGlzcGxheS0xLCAjeyRzZWxlY3Rvcn0gLm1hdC1kaXNwbGF5LTEge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBkaXNwbGF5LTEpO1xuICAgIG1hcmdpbjogMCAwIDY0cHg7XG4gIH1cbn1cblxuXG5cblxuQG1peGluIG1hdC1hdXRvY29tcGxldGUtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuXG4gIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIHtcbiAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNCwgJGNvbmZpZyk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgIC8vIFNlbGVjdGVkIG9wdGlvbnMgaW4gYXV0b2NvbXBsZXRlcyBzaG91bGQgbm90IGJlIGdyYXksIGJ1dCB3ZVxuICAgIC8vIG9ubHkgd2FudCB0byBvdmVycmlkZSB0aGUgYmFja2dyb3VuZCBmb3Igc2VsZWN0ZWQgb3B0aW9ucyBpZlxuICAgIC8vIHRoZXkgYXJlICpub3QqIGluIGhvdmVyIG9yIGZvY3VzIHN0YXRlLiBUaGlzIGNoYW5nZSBoYXMgdG8gYmVcbiAgICAvLyBtYWRlIGhlcmUgYmVjYXVzZSBiYXNlIG9wdGlvbiBzdHlsZXMgYXJlIHNoYXJlZCBiZXR3ZWVuIHRoZVxuICAgIC8vIGF1dG9jb21wbGV0ZSBhbmQgdGhlIHNlbGVjdC5cbiAgICAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtYWN0aXZlKTpub3QoOmhvdmVyKSB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuXG4gICAgICAmOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1hdXRvY29tcGxldGUtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gX21hdC1hdXRvY29tcGxldGUtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWF1dG9jb21wbGV0ZS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtYXV0b2NvbXBsZXRlJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWF1dG9jb21wbGV0ZS1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWF1dG9jb21wbGV0ZS1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWF1dG9jb21wbGV0ZS10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuLy8gVGhpcyBjb250YWlucyBhbGwgb2YgdGhlIHN0eWxlcyBmb3IgdGhlIGJhZGdlXG4vLyByYXRoZXIgdGhhbiBqdXN0IHRoZSBjb2xvci90aGVtZSBiZWNhdXNlIG9mXG4vLyBubyBzdHlsZSBzaGVldCBzdXBwb3J0IGZvciBkaXJlY3RpdmVzLlxuXG5cblxuXG5cbiRtYXQtYmFkZ2UtZm9udC1zaXplOiAxMnB4O1xuJG1hdC1iYWRnZS1mb250LXdlaWdodDogNjAwO1xuJG1hdC1iYWRnZS1kZWZhdWx0LXNpemU6IDIycHggIWRlZmF1bHQ7XG4kbWF0LWJhZGdlLXNtYWxsLXNpemU6ICRtYXQtYmFkZ2UtZGVmYXVsdC1zaXplIC0gNjtcbiRtYXQtYmFkZ2UtbGFyZ2Utc2l6ZTogJG1hdC1iYWRnZS1kZWZhdWx0LXNpemUgKyA2O1xuXG4vLyBNaXhpbiBmb3IgYnVpbGRpbmcgb2Zmc2V0IGdpdmVuIGRpZmZlcmVudCBzaXplc1xuQG1peGluIF9tYXQtYmFkZ2Utc2l6ZSgkc2l6ZSkge1xuICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgIHdpZHRoOiAkc2l6ZTtcbiAgICBoZWlnaHQ6ICRzaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkc2l6ZTtcbiAgfVxuXG4gICYubWF0LWJhZGdlLWFib3ZlIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgdG9wOiAtJHNpemUgLyAyO1xuICAgIH1cbiAgfVxuXG4gICYubWF0LWJhZGdlLWJlbG93IHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgYm90dG9tOiAtJHNpemUgLyAyO1xuICAgIH1cbiAgfVxuXG4gICYubWF0LWJhZGdlLWJlZm9yZSB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIGxlZnQ6IC0kc2l6ZTtcbiAgICB9XG4gIH1cblxuICBbZGlyPSdydGwnXSAmLm1hdC1iYWRnZS1iZWZvcmUge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgcmlnaHQ6IC0kc2l6ZTtcbiAgICB9XG4gIH1cblxuICAmLm1hdC1iYWRnZS1hZnRlciB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIHJpZ2h0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgW2Rpcj0ncnRsJ10gJi5tYXQtYmFkZ2UtYWZ0ZXIge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICByaWdodDogYXV0bztcbiAgICAgIGxlZnQ6IC0kc2l6ZTtcbiAgICB9XG4gIH1cblxuICAmLm1hdC1iYWRnZS1vdmVybGFwIHtcbiAgICAmLm1hdC1iYWRnZS1iZWZvcmUge1xuICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgbGVmdDogLSRzaXplIC8gMjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBbZGlyPSdydGwnXSAmLm1hdC1iYWRnZS1iZWZvcmUge1xuICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IC0kc2l6ZSAvIDI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5tYXQtYmFkZ2UtYWZ0ZXIge1xuICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgcmlnaHQ6IC0kc2l6ZSAvIDI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgW2Rpcj0ncnRsJ10gJi5tYXQtYmFkZ2UtYWZ0ZXIge1xuICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIGxlZnQ6IC0kc2l6ZSAvIDI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtYmFkZ2UtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIGRlZmF1bHQtY29udHJhc3QpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG5cbiAgICBAaW5jbHVkZSBjZGstaGlnaC1jb250cmFzdChhY3RpdmUsIG9mZikge1xuICAgICAgb3V0bGluZTogc29saWQgMXB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICB9XG4gIH1cblxuICAubWF0LWJhZGdlLWFjY2VudCB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1iYWRnZS13YXJuIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHdhcm4pO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYmFkZ2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC5tYXQtYmFkZ2UtaGlkZGVuIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJhZGdlLWRpc2FibGVkIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgJGFwcC1iYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdiYWNrZ3JvdW5kJyk7XG4gICAgICAkYmFkZ2UtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtYnV0dG9uKTtcblxuICAgICAgLy8gVGhlIGRpc2FibGVkIGNvbG9yIHVzdWFsbHkgaGFzIHNvbWUga2luZCBvZiBvcGFjaXR5LCBidXQgYmVjYXVzZSB0aGUgYmFkZ2UgaXMgb3ZlcmxheWVkXG4gICAgICAvLyBvbiB0b3Agb2Ygc29tZXRoaW5nIGVsc2UsIGl0IHdvbid0IGxvb2sgZ29vZCBpZiBpdCdzIG9wYXF1ZS4gSWYgaXQgaXMgYSBjb2xvciAqdHlwZSosXG4gICAgICAvLyB3ZSBjb252ZXJ0IGl0IGludG8gYSBzb2xpZCBjb2xvciBieSB0YWtpbmcgdGhlIG9wYWNpdHkgZnJvbSB0aGUgcmdiYSB2YWx1ZSBhbmQgdXNpbmdcbiAgICAgIC8vIHRoZSB2YWx1ZSB0byBkZXRlcm1pbmUgdGhlIHBlcmNlbnRhZ2Ugb2YgdGhlIGJhY2tncm91bmQgdG8gcHV0IGludG8gZm9yZWdyb3VuZCB3aGVuXG4gICAgICAvLyBtaXhpbmcgdGhlIGNvbG9ycyB0b2dldGhlci5cbiAgICAgIEBpZiAodHlwZS1vZigkYmFkZ2UtY29sb3IpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRhcHAtYmFja2dyb3VuZCkgPT0gY29sb3IpIHtcbiAgICAgICAgJGJhZGdlLW9wYWNpdHk6IG9wYWNpdHkoJGJhZGdlLWNvbG9yKTtcbiAgICAgICAgYmFja2dyb3VuZDogbWl4KCRhcHAtYmFja2dyb3VuZCwgcmdiYSgkYmFkZ2UtY29sb3IsIDEpLCAoMSAtICRiYWRnZS1vcGFjaXR5KSAqIDEwMCUpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYmFkZ2UtY29sb3I7XG4gICAgICB9XG5cbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyMDBtcyBlYXNlLWluLW91dDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNik7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG5cbiAgLm5nLWFuaW1hdGUtZGlzYWJsZWQgLm1hdC1iYWRnZS1jb250ZW50LFxuICAubWF0LWJhZGdlLWNvbnRlbnQuX21hdC1hbmltYXRpb24tbm9vcGFibGUge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cblxuICAvLyBUaGUgYWN0aXZlIGNsYXNzIGlzIGFkZGVkIGFmdGVyIHRoZSBlbGVtZW50IGlzIGFkZGVkXG4gIC8vIHNvIGl0IGNhbiBhbmltYXRlIHNjYWxlIHRvIGRlZmF1bHRcbiAgLm1hdC1iYWRnZS1jb250ZW50Lm1hdC1iYWRnZS1hY3RpdmUge1xuICAgIC8vIFNjYWxlIHRvIGBub25lYCBpbnN0ZWFkIG9mIGAxYCB0byBhdm9pZCBibHVycnkgdGV4dCBpbiBzb21lIGJyb3dzZXJzLlxuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIC5tYXQtYmFkZ2Utc21hbGwge1xuICAgIEBpbmNsdWRlIF9tYXQtYmFkZ2Utc2l6ZSgkbWF0LWJhZGdlLXNtYWxsLXNpemUpO1xuICB9XG4gIC5tYXQtYmFkZ2UtbWVkaXVtIHtcbiAgICBAaW5jbHVkZSBfbWF0LWJhZGdlLXNpemUoJG1hdC1iYWRnZS1kZWZhdWx0LXNpemUpO1xuICB9XG4gIC5tYXQtYmFkZ2UtbGFyZ2Uge1xuICAgIEBpbmNsdWRlIF9tYXQtYmFkZ2Utc2l6ZSgkbWF0LWJhZGdlLWxhcmdlLXNpemUpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtYmFkZ2UtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgZm9udC13ZWlnaHQ6ICRtYXQtYmFkZ2UtZm9udC13ZWlnaHQ7XG4gICAgZm9udC1zaXplOiAkbWF0LWJhZGdlLWZvbnQtc2l6ZTtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1iYWRnZS1zbWFsbCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgIC8vIFNldCB0aGUgZm9udCBzaXplIHRvIDc1JSBvZiB0aGUgb3JpZ2luYWwuXG4gICAgZm9udC1zaXplOiAkbWF0LWJhZGdlLWZvbnQtc2l6ZSAqIDAuNzU7XG4gIH1cblxuICAubWF0LWJhZGdlLWxhcmdlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgZm9udC1zaXplOiAkbWF0LWJhZGdlLWZvbnQtc2l6ZSAqIDI7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtYmFkZ2UtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWJhZGdlLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1iYWRnZScpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1iYWRnZS1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWJhZGdlLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtYmFkZ2UtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LWJvdHRvbS1zaGVldC1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS10aGVtZS1lbGV2YXRpb24oMTYsICRjb25maWcpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlhbG9nKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJvdHRvbS1zaGVldC10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgYm9keS0xKTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC1ib3R0b20tc2hlZXQtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWJvdHRvbS1zaGVldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtYm90dG9tLXNoZWV0Jykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWJvdHRvbS1zaGVldC1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWJvdHRvbS1zaGVldC1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWJvdHRvbS1zaGVldC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG4kX21hdC1idXR0b24tcmlwcGxlLW9wYWNpdHk6IDAuMTtcblxuLy8gQXBwbGllcyBhIGZvY3VzIHN0eWxlIHRvIGFuIG1hdC1idXR0b24gZWxlbWVudCBmb3IgZWFjaCBvZiB0aGUgc3VwcG9ydGVkIHBhbGV0dGVzLlxuQG1peGluIF9tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXktY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG5cbiAgJi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnkpO1xuICB9XG5cbiAgJi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgfVxuXG4gICYubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuKTtcbiAgfVxuXG4gICYubWF0LWJ1dHRvbi1kaXNhYmxlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4vLyBBcHBsaWVzIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIGZvciBhIHJpcHBsZS4gSWYgdGhlIHZhbHVlIHByb3ZpZGVkIGlzIG5vdCBhIFNhc3MgY29sb3IsXG4vLyB3ZSBhc3N1bWUgdGhhdCB3ZSd2ZSBiZWVuIGdpdmVuIGEgQ1NTIHZhcmlhYmxlLiBTaW5jZSB3ZSBjYW4ndCBwZXJmb3JtIGFscGhhLWJsZW5kaW5nXG4vLyBvbiBhIENTUyB2YXJpYWJsZSwgd2UgaW5zdGVhZCBhZGQgdGhlIG9wYWNpdHkgZGlyZWN0bHkgdG8gdGhlIHJpcHBsZSBlbGVtZW50LlxuQG1peGluIF9tYXQtYnV0dG9uLXJpcHBsZS1iYWNrZ3JvdW5kKCRwYWxldHRlLCAkaHVlLCAkb3BhY2l0eSkge1xuICAkYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCAkaHVlLCAkb3BhY2l0eSk7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yO1xuICBAaWYgKHR5cGUtb2YoJGJhY2tncm91bmQtY29sb3IpICE9IGNvbG9yKSB7XG4gICAgb3BhY2l0eTogJG9wYWNpdHk7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtYnV0dG9uLXJpcHBsZS1jb2xvcigkdGhlbWUsICRodWUsICRvcGFjaXR5OiAkX21hdC1idXR0b24tcmlwcGxlLW9wYWNpdHkpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG5cbiAgJi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi1yaXBwbGUtYmFja2dyb3VuZCgkcHJpbWFyeSwgJGh1ZSwgJG9wYWNpdHkpO1xuICB9XG5cbiAgJi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXJpcHBsZS1iYWNrZ3JvdW5kKCRhY2NlbnQsICRodWUsICRvcGFjaXR5KTtcbiAgfVxuXG4gICYubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tcmlwcGxlLWJhY2tncm91bmQoJHdhcm4sICRodWUsICRvcGFjaXR5KTtcbiAgfVxufVxuXG4vLyBBcHBsaWVzIGEgcHJvcGVydHkgdG8gYW4gbWF0LWJ1dHRvbiBlbGVtZW50IGZvciBlYWNoIG9mIHRoZSBzdXBwb3J0ZWQgcGFsZXR0ZXMuXG5AbWl4aW4gX21hdC1idXR0b24tdGhlbWUtcHJvcGVydHkoJHRoZW1lLCAkcHJvcGVydHksICRodWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgJi5tYXQtcHJpbWFyeSB7XG4gICAgI3skcHJvcGVydHl9OiBtYXQtY29sb3IoJHByaW1hcnksICRodWUpO1xuICB9XG4gICYubWF0LWFjY2VudCB7XG4gICAgI3skcHJvcGVydHl9OiBtYXQtY29sb3IoJGFjY2VudCwgJGh1ZSk7XG4gIH1cbiAgJi5tYXQtd2FybiB7XG4gICAgI3skcHJvcGVydHl9OiBtYXQtY29sb3IoJHdhcm4sICRodWUpO1xuICB9XG5cbiAgJi5tYXQtcHJpbWFyeSwgJi5tYXQtYWNjZW50LCAmLm1hdC13YXJuLCAmLm1hdC1idXR0b24tZGlzYWJsZWQge1xuICAgICYubWF0LWJ1dHRvbi1kaXNhYmxlZCB7XG4gICAgICAkcGFsZXR0ZTogaWYoJHByb3BlcnR5ID09ICdjb2xvcicsICRmb3JlZ3JvdW5kLCAkYmFja2dyb3VuZCk7XG4gICAgICAjeyRwcm9wZXJ0eX06IG1hdC1jb2xvcigkcGFsZXR0ZSwgZGlzYWJsZWQtYnV0dG9uKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1idXR0b24tY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWJ1dHRvbiwgLm1hdC1pY29uLWJ1dHRvbiwgLm1hdC1zdHJva2VkLWJ1dHRvbiB7XG4gICAgLy8gQnV0dG9ucyB3aXRob3V0IGEgYmFja2dyb3VuZCBjb2xvciBzaG91bGQgaW5oZXJpdCB0aGUgZm9udCBjb2xvci4gVGhpcyBpcyBuZWNlc3NhcnkgdG9cbiAgICAvLyBlbnN1cmUgdGhhdCB0aGUgYnV0dG9uIGlzIHJlYWRhYmxlIG9uIGN1c3RvbSBiYWNrZ3JvdW5kIGNvbG9ycy4gSXQncyB3cm9uZyB0byBhbHdheXMgYXNzdW1lXG4gICAgLy8gdGhhdCB0aG9zZSBidXR0b25zIGFyZSBhbHdheXMgcGxhY2VkIGluc2lkZSBvZiBjb250YWluZXJzIHdpdGggdGhlIGRlZmF1bHQgYmFja2dyb3VuZFxuICAgIC8vIGNvbG9yIG9mIHRoZSB0aGVtZSAoZS5nLiB0aGVtZWQgdG9vbGJhcnMpLlxuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tdGhlbWUtcHJvcGVydHkoJGNvbmZpZywgJ2NvbG9yJywgdGV4dCk7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tZm9jdXMtb3ZlcmxheS1jb2xvcigkY29uZmlnKTtcblxuICAgIC8vIFNldHVwIHRoZSByaXBwbGUgY29sb3IgdG8gYmUgYmFzZWQgb24gdGhlIHRleHQgY29sb3IuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSByaXBwbGVzXG4gICAgLy8gYXJlIG1hdGNoaW5nIHdpdGggdGhlIGN1cnJlbnQgdGhlbWUgcGFsZXR0ZSBhbmQgYXJlIGluIGNvbnRyYXN0IHRvIHRoZSBiYWNrZ3JvdW5kIGNvbG9yXG4gICAgLy8gKGUuZyBpbiB0aGVtZWQgdG9vbGJhcnMpLlxuICAgIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgb3BhY2l0eTogJF9tYXQtYnV0dG9uLXJpcHBsZS1vcGFjaXR5O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICAgIGJhY2tncm91bmQ6IG1hcC1nZXQoJGZvcmVncm91bmQsIGJhc2UpO1xuICB9XG5cbiAgLy8gTm90ZTogdGhpcyBuZWVkcyBhIGJpdCBleHRyYSBzcGVjaWZpY2l0eSwgYmVjYXVzZSB3ZSdyZSBub3QgZ3VhcmFudGVlZCB0aGUgaW5jbHVzaW9uXG4gIC8vIG9yZGVyIG9mIHRoZSB0aGVtZSBzdHlsZXMgYW5kIHRoZSBidXR0b24gcmVzZXQgbWF5IGVuZCB1cCByZXNldHRpbmcgdGhpcyBhcyB3ZWxsLlxuICAubWF0LXN0cm9rZWQtYnV0dG9uOm5vdCgubWF0LWJ1dHRvbi1kaXNhYmxlZCkge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxuXG4gIC5tYXQtZmxhdC1idXR0b24sIC5tYXQtcmFpc2VkLWJ1dHRvbiwgLm1hdC1mYWIsIC5tYXQtbWluaS1mYWIge1xuICAgIC8vIERlZmF1bHQgZm9udCBhbmQgYmFja2dyb3VuZCBjb2xvciB3aGVuIG5vdCB1c2luZyBhbnkgY29sb3IgcGFsZXR0ZS5cbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIHJhaXNlZC1idXR0b24pO1xuXG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tdGhlbWUtcHJvcGVydHkoJGNvbmZpZywgJ2NvbG9yJywgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tdGhlbWUtcHJvcGVydHkoJGNvbmZpZywgJ2JhY2tncm91bmQtY29sb3InLCBkZWZhdWx0KTtcbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi1yaXBwbGUtY29sb3IoJGNvbmZpZywgZGVmYXVsdC1jb250cmFzdCk7XG4gIH1cblxuICAubWF0LXN0cm9rZWQtYnV0dG9uLCAubWF0LWZsYXQtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMCwgJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LXJhaXNlZC1idXR0b24ge1xuICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbigyLCAkY29uZmlnKTtcblxuICAgICY6bm90KC5tYXQtYnV0dG9uLWRpc2FibGVkKTphY3RpdmUge1xuICAgICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDgsICRjb25maWcpO1xuICAgIH1cblxuICAgICYubWF0LWJ1dHRvbi1kaXNhYmxlZCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMCwgJGNvbmZpZyk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mYWIsIC5tYXQtbWluaS1mYWIge1xuICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbig2LCAkY29uZmlnKTtcblxuICAgICY6bm90KC5tYXQtYnV0dG9uLWRpc2FibGVkKTphY3RpdmUge1xuICAgICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDEyLCAkY29uZmlnKTtcbiAgICB9XG5cbiAgICAmLm1hdC1idXR0b24tZGlzYWJsZWQge1xuICAgICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDAsICRjb25maWcpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJ1dHRvbi10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC1idXR0b24sIC5tYXQtcmFpc2VkLWJ1dHRvbiwgLm1hdC1pY29uLWJ1dHRvbiwgLm1hdC1zdHJva2VkLWJ1dHRvbixcbiAgLm1hdC1mbGF0LWJ1dHRvbiwgLm1hdC1mYWIsIC5tYXQtbWluaS1mYWIge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJ1dHRvbik7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJ1dHRvbik7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gX21hdC1idXR0b24tZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWJ1dHRvbi10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtYnV0dG9uJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWJ1dHRvbi1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuJG1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYXJkLWhlaWdodDogNDhweCAhZGVmYXVsdDtcbi8vIE1pbmltdW0gaGVpZ2h0IGZvciBoaWdoZXN0IGRlbnNpdHkgY2FuIHZhcnkgYmFzZWQgb24gdGhlIGNvbnRlbnQgdGhhdCBkZXZlbG9wZXJzXG4vLyBwcm9qZWN0IGludG8gYnV0dG9uLXRvZ2dsZSdzLiBXZSB1c2UgYSBtaW5pbXVtIG9mIGAyNHB4YCB0aG91Z2ggYmVjYXVzZSBjb21tb25seVxuLy8gaWNvbnMgb3IgdGV4dCBhcmUgZGlzcGxheWVkLiBJY29ucyBieSBkZWZhdWx0IGhhdmUgYSBzaXplIG9mIGAyNHB4YC5cbiRtYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFyZC1taW5pbXVtLWhlaWdodDogMjRweCAhZGVmYXVsdDtcbiRtYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFyZC1tYXhpbXVtLWhlaWdodDogJG1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYXJkLWhlaWdodCAhZGVmYXVsdDtcblxuJG1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYXJkLWRlbnNpdHktY29uZmlnOiAoXG4gIGhlaWdodDogKFxuICAgIGRlZmF1bHQ6ICRtYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFyZC1oZWlnaHQsXG4gICAgbWF4aW11bTogJG1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYXJkLW1heGltdW0taGVpZ2h0LFxuICAgIG1pbmltdW06ICRtYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFyZC1taW5pbXVtLWhlaWdodCxcbiAgKVxuKSAhZGVmYXVsdDtcblxuXG5AbWl4aW4gbWF0LWJ1dHRvbi10b2dnbGUtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZGl2aWRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcblxuICAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZSxcbiAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIHtcbiAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS10aGVtZS1lbGV2YXRpb24oMiwgJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLFxuICAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgaGludC10ZXh0KTtcblxuICAgIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZm9jdXNlZC1idXR0b24pO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuXG4gICAgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBmb2N1c2VkLWJ1dHRvbiwgMSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICBib3JkZXItbGVmdDogc29saWQgMXB4ICRkaXZpZGVyLWNvbG9yO1xuICB9XG5cbiAgW2Rpcj0ncnRsJ10gLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweCAkZGl2aWRlci1jb2xvcjtcbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkLm1hdC1idXR0b24tdG9nZ2xlLXZlcnRpY2FsIHtcbiAgICAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICBib3JkZXItdG9wOiBzb2xpZCAxcHggJGRpdmlkZXItY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgc2VsZWN0ZWQtYnV0dG9uKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG5cbiAgICAmLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC1idXR0b24pO1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlzYWJsZWQtYnV0dG9uLXRvZ2dsZSk7XG5cbiAgICAmLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICB9XG5cbiAgICAmLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBzZWxlY3RlZC1kaXNhYmxlZC1idXR0b24pO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICBib3JkZXI6IHNvbGlkIDFweCAkZGl2aWRlci1jb2xvcjtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJ1dHRvbi10b2dnbGUtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJ1dHRvbi10b2dnbGUtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRkZW5zaXR5LXNjYWxlOiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkc3RhbmRhcmQtaGVpZ2h0OiBtYXQtcHJpdmF0ZS1kZW5zaXR5LXByb3AtdmFsdWUoXG4gICAgICAkbWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhcmQtZGVuc2l0eS1jb25maWcsICRkZW5zaXR5LXNjYWxlLCBoZWlnaHQpO1xuXG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWRlbnNpdHktbGVnYWN5LWNvbXBhdGliaWxpdHkoKSB7XG4gICAgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnQge1xuICAgICAgbGluZS1oZWlnaHQ6ICRzdGFuZGFyZC1oZWlnaHQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtYnV0dG9uLXRvZ2dsZS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtYnV0dG9uLXRvZ2dsZScpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1idXR0b24tdG9nZ2xlLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1idXR0b24tdG9nZ2xlLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtYnV0dG9uLXRvZ2dsZS10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1jYXJkLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWNhcmQge1xuICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbigxLCAkY29uZmlnKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgLy8gTmVlZHMgZXh0cmEgc3BlY2lmaWNpdHkgdG8gYmUgYWJsZSB0byBvdmVycmlkZSB0aGUgZWxldmF0aW9uIHNlbGVjdG9ycy5cbiAgICAmLm1hdC1jYXJkLWZsYXQge1xuICAgICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDAsICRjb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FyZC1zdWJ0aXRsZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtY2FyZC10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC1jYXJkIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1jYXJkLXRpdGxlIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGhlYWRsaW5lKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIHRpdGxlKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWNhcmQtaGVhZGVyIC5tYXQtY2FyZC10aXRsZSB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIHRpdGxlKTtcbiAgfVxuXG4gIC5tYXQtY2FyZC1zdWJ0aXRsZSxcbiAgLm1hdC1jYXJkLWNvbnRlbnQge1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LWNhcmQtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWNhcmQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWNhcmQnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtY2FyZC1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWNhcmQtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1jYXJkLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtY2hlY2tib3gtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJGNvbmZpZywgaXMtZGFyayk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cblxuICAvLyBUaGUgY29sb3Igb2YgdGhlIGNoZWNrYm94J3MgY2hlY2ttYXJrIC8gbWl4ZWRtYXJrLlxuICAkY2hlY2tib3gtbWFyay1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBiYWNrZ3JvdW5kKTtcblxuICAvLyBOT1RFKHRyYXZpc2thdWZtYW4pOiBXaGlsZSB0aGUgc3BlYyBjYWxscyBmb3IgdHJhbnNsdWNlbnQgYmxhY2tzL3doaXRlcyBmb3IgZGlzYWJsZWQgY29sb3JzLFxuICAvLyB0aGlzIGRvZXMgbm90IHdvcmsgd2VsbCB3aXRoIGVsZW1lbnRzIGxheWVyZWQgb24gdG9wIG9mIG9uZSBhbm90aGVyLiBUbyBnZXQgYXJvdW5kIHRoaXMgd2VcbiAgLy8gYmxlbmQgdGhlIGNvbG9ycyB0b2dldGhlciBiYXNlZCBvbiB0aGUgYmFzZSBjb2xvciBhbmQgdGhlIHRoZW1lIGJhY2tncm91bmQuXG4gICR3aGl0ZS0zMHBjdC1vcGFjaXR5LW9uLWRhcms6ICM2ODY4Njg7XG4gICRibGFjay0yNnBjdC1vcGFjaXR5LW9uLWxpZ2h0OiAjYjBiMGIwO1xuICAkZGlzYWJsZWQtY29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCAkd2hpdGUtMzBwY3Qtb3BhY2l0eS1vbi1kYXJrLCAkYmxhY2stMjZwY3Qtb3BhY2l0eS1vbi1saWdodCk7XG5cbiAgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrIHtcbiAgICBmaWxsOiAkY2hlY2tib3gtbWFyay1jb2xvcjtcbiAgfVxuXG4gIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGgge1xuICAgIC8vICFpbXBvcnRhbnQgaXMgbmVlZGVkIGhlcmUgYmVjYXVzZSBhIHN0cm9rZSBtdXN0IGJlIHNldCBhcyBhblxuICAgIC8vIGF0dHJpYnV0ZSBvbiB0aGUgU1ZHIGluIG9yZGVyIGZvciBsaW5lIGFuaW1hdGlvbiB0byB3b3JrIHByb3Blcmx5LlxuICAgIHN0cm9rZTogJGNoZWNrYm94LW1hcmstY29sb3IgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tYXQtY2hlY2tib3gtbWl4ZWRtYXJrIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2hlY2tib3gtbWFyay1jb2xvcjtcbiAgfVxuXG4gIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSwgLm1hdC1jaGVja2JveC1jaGVja2VkIHtcbiAgICAmLm1hdC1wcmltYXJ5IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4gLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jaGVja2JveC1kaXNhYmxlZCB7XG4gICAgJi5tYXQtY2hlY2tib3gtY2hlY2tlZCxcbiAgICAmLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICAgIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkaXNhYmxlZC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCgubWF0LWNoZWNrYm94LWNoZWNrZWQpIHtcbiAgICAgIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICAgICAgICBib3JkZXItY29sb3I6ICRkaXNhYmxlZC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWNoZWNrYm94LWxhYmVsIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgICB9XG4gIH1cblxuICAvLyBTd2l0Y2ggdGhpcyB0byBhIHNvbGlkIGNvbG9yIHNpbmNlIHdlJ3JlIHVzaW5nIGBvcGFjaXR5YFxuICAvLyB0byBjb250cm9sIGhvdyBvcGFxdWUgdGhlIHJpcHBsZSBzaG91bGQgYmUuXG4gIC5tYXQtY2hlY2tib3ggLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldChtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpLCBiYXNlKTtcbiAgfVxuXG4gIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCksXG4gIC5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKSB7XG4gICAgJi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHdhcm4pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWNoZWNrYm94LXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LWNoZWNrYm94IHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLy8gVE9ETyhrYXJhKTogUmVtb3ZlIHRoaXMgc3R5bGUgd2hlbiBmaXhpbmcgdmVydGljYWwgYmFzZWxpbmVcbiAgLm1hdC1jaGVja2JveC1sYXlvdXQgLm1hdC1jaGVja2JveC1sYWJlbCB7XG4gICAgbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBib2R5LTIpO1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LWNoZWNrYm94LWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1jaGVja2JveC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtY2hlY2tib3gnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtY2hlY2tib3gtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1jaGVja2JveC1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWNoZWNrYm94LXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuJG1hdC1jaGlwLXJlbW92ZS1mb250LXNpemU6IDE4cHg7XG5cbkBtaXhpbiBfbWF0LWNoaXAtZWxlbWVudC1jb2xvcigkZm9yZWdyb3VuZCwgJGJhY2tncm91bmQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIGNvbG9yOiAkZm9yZWdyb3VuZDtcblxuICAubWF0LWNoaXAtcmVtb3ZlIHtcbiAgICBjb2xvcjogJGZvcmVncm91bmQ7XG4gICAgb3BhY2l0eTogMC40O1xuICB9XG59XG5cblxuLy8gQXBwbGllcyB0aGUgYmFja2dyb3VuZCBjb2xvciBmb3IgYSByaXBwbGUgZWxlbWVudC5cbi8vIElmIHRoZSBjb2xvciB2YWx1ZSBwcm92aWRlZCBpcyBub3QgYSBTYXNzIGNvbG9yLFxuLy8gd2UgYXNzdW1lIHRoYXQgd2UndmUgYmVlbiBnaXZlbiBhIENTUyB2YXJpYWJsZS5cbi8vIFNpbmNlIHdlIGNhbid0IHBlcmZvcm0gYWxwaGEtYmxlbmRpbmcgb24gYSBDU1MgdmFyaWFibGUsXG4vLyB3ZSBpbnN0ZWFkIGFkZCB0aGUgb3BhY2l0eSBkaXJlY3RseSB0byB0aGUgcmlwcGxlIGVsZW1lbnQuXG5AbWl4aW4gX21hdC1jaGlwcy1yaXBwbGUtYmFja2dyb3VuZCgkcGFsZXR0ZSwgJGRlZmF1bHQtY29udHJhc3QsICRvcGFjaXR5KSB7XG4gICRiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsICRkZWZhdWx0LWNvbnRyYXN0LCAkb3BhY2l0eSk7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yO1xuICBAaWYgKHR5cGUtb2YoJGJhY2tncm91bmQtY29sb3IpICE9IGNvbG9yKSB7XG4gICAgb3BhY2l0eTogJG9wYWNpdHk7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtY2hpcC10aGVtZS1jb2xvcigkcGFsZXR0ZSkge1xuICBAaW5jbHVkZSBfbWF0LWNoaXAtZWxlbWVudC1jb2xvcihtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QpLCBtYXQtY29sb3IoJHBhbGV0dGUpKTtcblxuICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBAaW5jbHVkZSBfbWF0LWNoaXBzLXJpcHBsZS1iYWNrZ3JvdW5kKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0LCAwLjEpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtY2hpcHMtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJGNvbmZpZywgaXMtZGFyayk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgJHVuc2VsZWN0ZWQtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCB1bnNlbGVjdGVkLWNoaXApO1xuICAkdW5zZWxlY3RlZC1mb3JlZ3JvdW5kOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcCB7XG4gICAgQGluY2x1ZGUgX21hdC1jaGlwLWVsZW1lbnQtY29sb3IoJHVuc2VsZWN0ZWQtZm9yZWdyb3VuZCwgJHVuc2VsZWN0ZWQtYmFja2dyb3VuZCk7XG5cbiAgICAmOm5vdCgubWF0LWNoaXAtZGlzYWJsZWQpIHtcbiAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtdGhlbWUtZWxldmF0aW9uKDMsICRjb25maWcpO1xuICAgICAgfVxuXG4gICAgICAubWF0LWNoaXAtcmVtb3ZlOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMC41NDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1jaGlwLWRpc2FibGVkIHtcbiAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRmb3JlZ3JvdW5kLCBiYXNlKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQge1xuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgX21hdC1jaGlwLXRoZW1lLWNvbG9yKCRwcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtY2hpcC10aGVtZS1jb2xvcigkd2Fybik7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtY2hpcC10aGVtZS1jb2xvcigkYWNjZW50KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1jaGlwcy10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC1jaGlwIHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0yKTtcbiAgICBmb250LXdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMik7XG5cbiAgICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbixcbiAgICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uIHtcbiAgICAgIGZvbnQtc2l6ZTogJG1hdC1jaGlwLXJlbW92ZS1mb250LXNpemU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBfbWF0LWNoaXBzLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1jaGlwcy10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtY2hpcHMnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtY2hpcHMtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1jaGlwcy1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWNoaXBzLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuQG1peGluIG1hdC1kaXZpZGVyLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtZGl2aWRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxuXG4gIC5tYXQtZGl2aWRlci12ZXJ0aWNhbCB7XG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtZGl2aWRlci10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBfbWF0LWRpdmlkZXItZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWRpdmlkZXItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWRpdmlkZXInKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZGl2aWRlci1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWRpdmlkZXItZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1kaXZpZGVyLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtdGFibGUtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtdGFibGUge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2NhcmQnKTtcbiAgfVxuXG4gIC5tYXQtdGFibGUgdGhlYWQsIC5tYXQtdGFibGUgdGJvZHksIC5tYXQtdGFibGUgdGZvb3QsXG4gIG1hdC1oZWFkZXItcm93LCBtYXQtcm93LCBtYXQtZm9vdGVyLXJvdyxcbiAgW21hdC1oZWFkZXItcm93XSwgW21hdC1yb3ddLCBbbWF0LWZvb3Rlci1yb3ddLFxuICAubWF0LXRhYmxlLXN0aWNreSB7XG4gICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgfVxuXG4gIG1hdC1yb3csIG1hdC1oZWFkZXItcm93LCBtYXQtZm9vdGVyLXJvdyxcbiAgdGgubWF0LWhlYWRlci1jZWxsLCB0ZC5tYXQtY2VsbCwgdGQubWF0LWZvb3Rlci1jZWxsIHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1jZWxsLCAubWF0LWZvb3Rlci1jZWxsIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRhYmxlLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LXRhYmxlIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxuXG4gIC5tYXQtY2VsbCwgLm1hdC1mb290ZXItY2VsbCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtdGFibGUtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LXRhYmxlLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC10YWJsZScpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC10YWJsZS1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRhYmxlLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtdGFibGUtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cbiRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC10b2RheS1ib3gtc2hhZG93LXdpZHRoOiAxcHg7XG4kbWF0LWRhdGVwaWNrZXItc2VsZWN0ZWQtZmFkZS1hbW91bnQ6IDAuNjtcbiRtYXQtZGF0ZXBpY2tlci1yYW5nZS1mYWRlLWFtb3VudDogMC4yO1xuJG1hdC1kYXRlcGlja2VyLXRvZGF5LWZhZGUtYW1vdW50OiAwLjI7XG4kbWF0LWNhbGVuZGFyLWJvZHktZm9udC1zaXplOiAxM3B4ICFkZWZhdWx0O1xuJG1hdC1jYWxlbmRhci13ZWVrZGF5LXRhYmxlLWZvbnQtc2l6ZTogMTFweCAhZGVmYXVsdDtcblxuQG1peGluIF9tYXQtZGF0ZXBpY2tlci1jb2xvcigkcGFsZXR0ZSkge1xuICBAaW5jbHVkZSBtYXQtZGF0ZS1yYW5nZS1jb2xvcnMoXG4gICAgbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LCAkbWF0LWRhdGVwaWNrZXItcmFuZ2UtZmFkZS1hbW91bnQpKTtcblxuICAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICAgICRiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuXG4gICAgQGlmICh0eXBlLW9mKCRiYWNrZ3JvdW5kKSA9PSBjb2xvcikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZmFkZS1vdXQoJGJhY2tncm91bmQsICRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC1mYWRlLWFtb3VudCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIElmIHdlIGNvdWxkbid0IHJlc29sdmUgdG8gYmFja2dyb3VuZCB0byBhIGNvbG9yIChlLmcuIGl0J3MgYSBDU1MgdmFyaWFibGUpLFxuICAgICAgLy8gZmFsbCBiYWNrIHRvIGZhZGluZyB0aGUgY29udGVudCBvdXQgdmlhIGBvcGFjaXR5YC5cbiAgICAgIG9wYWNpdHk6ICRtYXQtZGF0ZXBpY2tlci10b2RheS1mYWRlLWFtb3VudDtcbiAgICB9XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwICRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC10b2RheS1ib3gtc2hhZG93LXdpZHRoXG4gICAgICAgICAgICAgICAgbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQpOmhvdmVyLFxuICAuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZSxcbiAgLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZSB7XG4gICAgJiA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICAgICAgQGluY2x1ZGUgX21hdC1kYXRlcGlja2VyLXVuc2VsZWN0ZWQtY2VsbCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgMC4zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gVXRpbGl0eSBtaXhpbiB0byB0YXJnZXQgY2VsbHMgdGhhdCBhcmVuJ3Qgc2VsZWN0ZWQuIFVzZWQgdG8gbWFrZSBzZWxlY3RvciBlYXNpZXIgdG8gZm9sbG93LlxuQG1peGluIF9tYXQtZGF0ZXBpY2tlci11bnNlbGVjdGVkLWNlbGwge1xuICAmOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWRhdGVwaWNrZXItY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZGlzYWJsZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG5cbiAgLm1hdC1jYWxlbmRhci1hcnJvdyB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBpY29uKTtcbiAgfVxuXG4gIC8vIFRoZSBwcmV2L25leHQgYnV0dG9ucyBuZWVkIGEgYml0IG1vcmUgc3BlY2lmaWNpdHkgdG9cbiAgLy8gYXZvaWQgYmVpbmcgb3ZlcndyaXR0ZW4gYnkgdGhlIC5tYXQtaWNvbi1idXR0b24uXG4gIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUsXG4gIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItbmV4dC1idXR0b24sXG4gIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItcHJldmlvdXMtYnV0dG9uIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBpY29uKTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXItZGl2aWRlcjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQsXG4gIC5tYXQtZGF0ZS1yYW5nZS1pbnB1dC1zZXBhcmF0b3Ige1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBfbWF0LWRhdGVwaWNrZXItdW5zZWxlY3RlZC1jZWxsIHtcbiAgICAgIGNvbG9yOiAkZGlzYWJsZWQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZGF0ZS1yYW5nZS1pbnB1dC1zZXBhcmF0b3Ige1xuICAgIGNvbG9yOiAkZGlzYWJsZWQtY29sb3I7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktaW4tcHJldmlldyB7XG4gICAgJGRpdmlkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG5cbiAgICBAaWYgdHlwZS1vZigkZGl2aWRlci1jb2xvcikgPT0gY29sb3Ige1xuICAgICAgLy8gVGhlIGRpdmlkZXIgY29sb3IgaXMgc2V0IHVuZGVyIHRoZSBhc3N1bXB0aW9uIHRoYXQgaXQnbGwgYmUgdXNlZFxuICAgICAgLy8gZm9yIGEgc29saWQgYm9yZGVyLCBidXQgYmVjYXVzZSB3ZSdyZSB1c2luZyBhIGRhc2hlZCBib3JkZXIgZm9yIHRoZVxuICAgICAgLy8gcHJldmlldyByYW5nZSwgd2UgbmVlZCB0byBidW1wIGl0cyBvcGFjaXR5IHRvIGVuc3VyZSB0aGF0IGl0J3MgdmlzaWJsZS5cbiAgICAgIGNvbG9yOiByZ2JhKCRkaXZpZGVyLWNvbG9yLCBtaW4ob3BhY2l0eSgkZGl2aWRlci1jb2xvcikgKiAyLCAxKSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGNvbG9yOiAkZGl2aWRlci1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkge1xuICAgIEBpbmNsdWRlIF9tYXQtZGF0ZXBpY2tlci11bnNlbGVjdGVkLWNlbGwge1xuICAgICAgLy8gTm90ZTogdGhvdWdoIGl0J3Mgbm90IHRleHQsIHRoZSBib3JkZXIgaXMgYSBoaW50IGFib3V0IHRoZSBmYWN0IHRoYXQgdGhpcyBpcyB0b2RheSdzIGRhdGUsXG4gICAgICAvLyBzbyB3ZSB1c2UgdGhlIGhpbnQgY29sb3IuXG4gICAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgaGludC10ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkge1xuICAgIEBpbmNsdWRlIF9tYXQtZGF0ZXBpY2tlci11bnNlbGVjdGVkLWNlbGwge1xuICAgICAgJGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG5cbiAgICAgIEBpZiAodHlwZS1vZigkY29sb3IpID09IGNvbG9yKSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogZmFkZS1vdXQoJGNvbG9yLCAkbWF0LWRhdGVwaWNrZXItdG9kYXktZmFkZS1hbW91bnQpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAvLyBJZiB0aGUgY29sb3IgZGlkbid0IHJlc29sdmUgdG8gYSBjb2xvciB2YWx1ZSwgYnV0IHNvbWV0aGluZyBsaWtlIGEgQ1NTIHZhcmlhYmxlLCB3ZSBjYW4ndFxuICAgICAgICAvLyBmYWRlIGl0IG91dCBzbyB3ZSBmYWxsIGJhY2sgdG8gcmVkdWNpbmcgdGhlIGVsZW1lbnQgb3BhY2l0eS4gTm90ZSB0aGF0IHdlIGRvbid0IHVzZSB0aGVcbiAgICAgICAgLy8gJG1hdC1kYXRlcGlja2VyLXRvZGF5LWZhZGUtYW1vdW50LCBiZWNhdXNlIGhpbnQgdGV4dCB1c3VhbGx5IGhhcyBzb21lIG9wYWNpdHkgYXBwbGllZFxuICAgICAgICAvLyB0byBpdCBhbHJlYWR5IGFuZCB3ZSBkb24ndCB3YW50IHRoZW0gdG8gc3RhY2sgb24gdG9wIG9mIGVhY2ggb3RoZXIuXG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBfbWF0LWRhdGVwaWNrZXItY29sb3IobWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KSk7XG5cbiAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLWVsZXZhdGlvbig0LCAkY29uZmlnKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtZGF0ZXBpY2tlci1jb2xvcihtYXAtZ2V0KCRjb25maWcsIGFjY2VudCkpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgX21hdC1kYXRlcGlja2VyLWNvbG9yKG1hcC1nZXQoJGNvbmZpZywgd2FybikpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50LXRvdWNoIHtcbiAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS10aGVtZS1lbGV2YXRpb24oMCwgJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpLCB0ZXh0KTtcblxuICAgICYubWF0LWFjY2VudCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KSwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKG1hcC1nZXQoJGNvbmZpZywgd2FybiksIHRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZGF0ZS1yYW5nZS1pbnB1dC1pbm5lcltkaXNhYmxlZF0ge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtZGF0ZXBpY2tlci10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC1jYWxlbmRhciB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keSB7XG4gICAgZm9udC1zaXplOiAkbWF0LWNhbGVuZGFyLWJvZHktZm9udC1zaXplO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsLFxuICAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b24ge1xuICAgIGZvbnQ6IHtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYnV0dG9uKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJ1dHRvbik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXIgdGgge1xuICAgIGZvbnQ6IHtcbiAgICAgIHNpemU6ICRtYXQtY2FsZW5kYXItd2Vla2RheS10YWJsZS1mb250LXNpemU7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWRhdGUtcmFuZ2UtY29sb3JzKFxuICAkcmFuZ2UtY29sb3IsXG4gICRjb21wYXJpc29uLWNvbG9yOiByZ2JhKCNmOWFiMDAsICRtYXQtZGF0ZXBpY2tlci1yYW5nZS1mYWRlLWFtb3VudCksXG4gICRvdmVybGFwLWNvbG9yOiAjYThkYWI1LFxuICAkb3ZlcmxhcC1zZWxlY3RlZC1jb2xvcjogZGFya2VuKCRvdmVybGFwLWNvbG9yLCAzMCUpKSB7XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlOjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6ICRyYW5nZS1jb2xvcjtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCxcbiAgLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2U6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogJGNvbXBhcmlzb24tY29sb3I7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2Utc3RhcnQ6OmJlZm9yZSxcbiAgW2Rpcj0ncnRsJ10gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRyYW5nZS1jb2xvciA1MCUsICRjb21wYXJpc29uLWNvbG9yIDUwJSk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2UtZW5kOjpiZWZvcmUsXG4gIFtkaXI9J3J0bCddIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1zdGFydDo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgJHJhbmdlLWNvbG9yIDUwJSwgJGNvbXBhcmlzb24tY29sb3IgNTAlKTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZSA+IC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCxcbiAgLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2UubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkb3ZlcmxhcC1jb2xvcjtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCxcbiAgLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2UgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQ6ICRvdmVybGFwLXNlbGVjdGVkLWNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LWRhdGVwaWNrZXItZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWRhdGVwaWNrZXItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWRhdGVwaWNrZXInKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZGF0ZXBpY2tlci1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWRhdGVwaWNrZXItZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1kYXRlcGlja2VyLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LWRpYWxvZy1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1kaWFsb2ctY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS10aGVtZS1lbGV2YXRpb24oMjQsICRjb25maWcpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlhbG9nKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWRpYWxvZy10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC1kaWFsb2ctdGl0bGUge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCB0aXRsZSk7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtZGlhbG9nLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1kaWFsb2ctdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWRpYWxvZycpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1kaWFsb2ctY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1kaWFsb2ctZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1kaWFsb2ctdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG4vLyBEZWZhdWx0IG1pbmltdW0gYW5kIG1heGltdW0gaGVpZ2h0IGZvciBjb2xsYXBzZWQgcGFuZWwgaGVhZGVycy5cbiRtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1jb2xsYXBzZWQtaGVpZ2h0OiA0OHB4ICFkZWZhdWx0O1xuJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWNvbGxhcHNlZC1taW5pbXVtLWhlaWdodDogMzZweCAhZGVmYXVsdDtcbiRtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1jb2xsYXBzZWQtbWF4aW11bS1oZWlnaHQ6XG4gICAgJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWNvbGxhcHNlZC1oZWlnaHQgIWRlZmF1bHQ7XG5cbi8vIERlZmF1bHQgbWluaW11bSBhbmQgbWF4aW11bSBoZWlnaHQgZm9yIGV4cGFuZGVkIHBhbmVsIGhlYWRlcnMuXG4kbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZXhwYW5kZWQtaGVpZ2h0OiA2NHB4ICFkZWZhdWx0O1xuJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWV4cGFuZGVkLW1pbmltdW0taGVpZ2h0OiA0OHB4ICFkZWZhdWx0O1xuJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWV4cGFuZGVkLW1heGltdW0taGVpZ2h0OlxuICAgICRtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1leHBhbmRlZC1oZWlnaHQgIWRlZmF1bHQ7XG5cbi8vIERlbnNpdHkgY29uZmlndXJhdGlvbiBmb3IgdGhlIGV4cGFuc2lvbiBwYW5lbC4gQ2FwdHVyZXMgdGhlXG4vLyBoZWlnaHQgZm9yIGJvdGggZXhwYW5kZWQgYW5kIGNvbGxhcHNlZCBwYW5lbCBoZWFkZXJzLlxuJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlbnNpdHktY29uZmlnOiAoXG4gIGNvbGxhcHNlZC1oZWlnaHQ6IChcbiAgICBkZWZhdWx0OiAkbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItY29sbGFwc2VkLWhlaWdodCxcbiAgICBtYXhpbXVtOiAkbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItY29sbGFwc2VkLW1heGltdW0taGVpZ2h0LFxuICAgIG1pbmltdW06ICRtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1jb2xsYXBzZWQtbWluaW11bS1oZWlnaHQsXG4gICksXG4gIGV4cGFuZGVkLWhlaWdodDogKFxuICAgIGRlZmF1bHQ6ICRtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1leHBhbmRlZC1oZWlnaHQsXG4gICAgbWF4aW11bTogJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWV4cGFuZGVkLW1heGltdW0taGVpZ2h0LFxuICAgIG1pbmltdW06ICRtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1leHBhbmRlZC1taW5pbXVtLWhlaWdodCxcbiAgKVxuKSAhZGVmYXVsdDtcblxuLy8gTm90ZTogS2VlcCB0aGlzIGluIHN5bmMgd2l0aCB0aGUgYW5pbWF0aW9uIHRpbWluZyBmb3IgdGhlIHRvZ2dsZSBpbmRpY2F0b3Jcbi8vIGFuZCBib2R5IGV4cGFuc2lvbi4gVGhlc2UgYXJlIGFuaW1hdGVkIHVzaW5nIEFuZ3VsYXIgYW5pbWF0aW9ucy5cbiRtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10cmFuc2l0aW9uOiAyMjVtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuXG5AbWl4aW4gbWF0LXByaXZhdGUtZXhwYW5zaW9uLWZvY3VzIHtcbiAgLm1hdC1leHBhbnNpb24tcGFuZWwge1xuICAgICYgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkLFxuICAgICYgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gICAgJjpub3QoLm1hdC1leHBhbmRlZCkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyIHtcbiAgICAgICY6bm90KFthcmlhLWRpc2FibGVkPSd0cnVlJ10pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuQG1peGluIG1hdC1leHBhbnNpb24tcGFuZWwtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsIHtcbiAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMiwgJGNvbmZpZyk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtYWN0aW9uLXJvdyB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWV4cGFuc2lvbi1mb2N1cyB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gIH1cblxuICAvLyBEaXNhYmxlIHRoZSBob3ZlciBvbiB0b3VjaCBkZXZpY2VzIHNpbmNlIGl0IGNhbiBhcHBlYXIgbGlrZSBpdCBpcyBzdHVjay4gV2UgY2FuJ3QgdXNlXG4gIC8vIGBAbWVkaWEgKGhvdmVyKWAgYWJvdmUsIGJlY2F1c2UgdGhlIGRlc2t0b3Agc3VwcG9ydCBicm93c2VyIHN1cHBvcnQgaXNuJ3QgZ3JlYXQuXG4gIEBtZWRpYSAoaG92ZXI6IG5vbmUpIHtcbiAgICAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCk6bm90KFthcmlhLWRpc2FibGVkPSd0cnVlJ10pXG4gICAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uLFxuICAubWF0LWV4cGFuc2lvbi1pbmRpY2F0b3I6OmFmdGVyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD0ndHJ1ZSddIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC1idXR0b24pO1xuXG4gICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlLFxuICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbiB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1leHBhbnNpb24tcGFuZWwtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgc3ViaGVhZGluZy0xKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgc3ViaGVhZGluZy0xKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1leHBhbnNpb24tcGFuZWwtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRkZW5zaXR5LXNjYWxlOiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkZXhwYW5kZWQtaGVpZ2h0OiBtYXQtcHJpdmF0ZS1kZW5zaXR5LXByb3AtdmFsdWUoXG4gICAgICAgICRtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZW5zaXR5LWNvbmZpZywgJGRlbnNpdHktc2NhbGUsIGV4cGFuZGVkLWhlaWdodCk7XG4gICRjb2xsYXBzZWQtaGVpZ2h0OiBtYXQtcHJpdmF0ZS1kZW5zaXR5LXByb3AtdmFsdWUoXG4gICAgICAkbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVuc2l0eS1jb25maWcsICRkZW5zaXR5LXNjYWxlLCBjb2xsYXBzZWQtaGVpZ2h0KTtcblxuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1kZW5zaXR5LWxlZ2FjeS1jb21wYXRpYmlsaXR5KCkge1xuICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciB7XG4gICAgICBoZWlnaHQ6ICRjb2xsYXBzZWQtaGVpZ2h0O1xuXG4gICAgICAmLm1hdC1leHBhbmRlZCB7XG4gICAgICAgIGhlaWdodDogJGV4cGFuZGVkLWhlaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1leHBhbnNpb24tcGFuZWwtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWV4cGFuc2lvbi1wYW5lbCcpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1leHBhbnNpb24tcGFuZWwtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWV4cGFuc2lvbi1wYW5lbC1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWV4cGFuc2lvbi1wYW5lbC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuLy8gVGhpcyBtaXhpbiB3aWxsIGVuc3VyZSB0aGF0IGxpbmVzIHRoYXQgb3ZlcmZsb3cgdGhlIGNvbnRhaW5lciB3aWxsIGhpZGUgdGhlIG92ZXJmbG93IGFuZFxuLy8gdHJ1bmNhdGUgbmVhdGx5IHdpdGggYW4gZWxsaXBzaXMuXG5AbWl4aW4gbWF0LXRydW5jYXRlLWxpbmUoKSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4vLyBNaXhpbiB0byBwcm92aWRlIGFsbCBtYXQtbGluZSBzdHlsZXMsIGNoYW5naW5nIHNlY29uZGFyeSBmb250IHNpemUgYmFzZWQgb24gd2hldGhlciB0aGUgbGlzdFxuLy8gaXMgaW4gZGVuc2UgbW9kZS5cbkBtaXhpbiBtYXQtbGluZS1iYXNlKCRzZWNvbmRhcnktZm9udC1zaXplKSB7XG4gIC5tYXQtbGluZSB7XG4gICAgQGluY2x1ZGUgbWF0LXRydW5jYXRlLWxpbmUoKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgLy8gYWxsIGxpbmVzIGJ1dCB0aGUgdG9wIGxpbmUgc2hvdWxkIGhhdmUgc21hbGxlciB0ZXh0XG4gICAgJjpudGgtY2hpbGQobisyKSB7XG4gICAgICBmb250LXNpemU6ICRzZWNvbmRhcnktZm9udC1zaXplO1xuICAgIH1cbiAgfVxufVxuXG4vLyBUaGlzIG1peGluIG5vcm1hbGl6ZXMgZGVmYXVsdCBlbGVtZW50IHN0eWxlcywgZS5nLiBmb250IHdlaWdodCBmb3IgaGVhZGluZyB0ZXh0LlxuQG1peGluIG1hdC1ub3JtYWxpemUtdGV4dCgpIHtcbiAgJiA+ICoge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICB9XG59XG5cbi8vIFRoaXMgbWl4aW4gcHJvdmlkZXMgYmFzZSBzdHlsZXMgZm9yIHRoZSB3cmFwcGVyIGFyb3VuZCBtYXQtbGluZSBlbGVtZW50cyBpbiBhIGxpc3QuXG5AbWl4aW4gbWF0LWxpbmUtd3JhcHBlci1iYXNlKCkge1xuICBAaW5jbHVkZSBtYXQtbm9ybWFsaXplLXRleHQoKTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4OiBhdXRvO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIC8vIE11c3QgcmVtb3ZlIHdyYXBwZXIgd2hlbiBsaW5lcyBhcmUgZW1wdHkgb3IgaXQgdGFrZXMgdXAgaG9yaXpvbnRhbFxuICAvLyBzcGFjZSBhbmQgcHVzaGVzIG90aGVyIGVsZW1lbnRzIHRvIHRoZSByaWdodC5cbiAgJjplbXB0eSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5cblxuLy8gSW5jbHVkZSB0aGlzIGVtcHR5IG1peGluIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBvdGhlciBjb21wb25lbnRzLlxuQG1peGluIG1hdC1ncmlkLWxpc3QtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1ncmlkLWxpc3QtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtZ3JpZC10aWxlLWhlYWRlcixcbiAgLm1hdC1ncmlkLXRpbGUtZm9vdGVyIHtcbiAgICBAaW5jbHVkZSBtYXQtbGluZS1iYXNlKG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbikpO1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LWdyaWQtbGlzdC1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtZ3JpZC1saXN0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1ncmlkLWxpc3QnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZ3JpZC1saXN0LWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtZ3JpZC1saXN0LWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZ3JpZC1saXN0LXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuQG1peGluIG1hdC1pY29uLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1pY29uIHtcbiAgICAmLm1hdC1wcmltYXJ5IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtaWNvbi10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBfbWF0LWljb24tZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWljb24tdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWljb24nKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtaWNvbi1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWljb24tZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1pY29uLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuLy8gUmVuZGVycyBhIGdyYWRpZW50IGZvciBzaG93aW5nIHRoZSBkYXNoZWQgbGluZSB3aGVuIHRoZSBpbnB1dCBpcyBkaXNhYmxlZC5cbi8vIFVubGlrZSB1c2luZyBhIGJvcmRlciwgYSBncmFkaWVudCBhbGxvd3MgdXMgdG8gYWRqdXN0IHRoZSBzcGFjaW5nIG9mIHRoZSBkb3R0ZWQgbGluZVxuLy8gdG8gbWF0Y2ggdGhlIE1hdGVyaWFsIERlc2lnbiBzcGVjLlxuQG1peGluIG1hdC1wcml2YXRlLWNvbnRyb2wtZGlzYWJsZWQtdW5kZXJsaW5lKCRjb2xvcikge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRjb2xvciAwJSwgJGNvbG9yIDMzJSwgdHJhbnNwYXJlbnQgMCUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDRweCAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG59XG5cbi8vIEZpZ3VyZXMgb3V0IHRoZSBjb2xvciBvZiB0aGUgcGxhY2Vob2xkZXIgZm9yIGEgZm9ybSBjb250cm9sLlxuLy8gVXNlZCBwcmltYXJpbHkgdG8gcHJldmVudCB0aGUgdmFyaW91cyBmb3JtIGNvbnRyb2xzIGZyb21cbi8vIGJlY29taW5nIG91dCBvZiBzeW5jIHNpbmNlIHRoZXNlIGNvbG9ycyBhcmVuJ3QgaW4gYSBwYWxldHRlLlxuQGZ1bmN0aW9uIG1hdC1wcml2YXRlLWNvbnRyb2wtcGxhY2Vob2xkZXItY29sb3IoJGNvbmZpZykge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJGNvbmZpZywgaXMtZGFyayk7XG4gIEByZXR1cm4gbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCwgaWYoJGlzLWRhcmstdGhlbWUsIDAuNSwgMC40MikpO1xufVxuXG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIG1hdGVyaWFsL25vLXByZWZpeGVzICovXG5AbWl4aW4gdXNlci1zZWxlY3QoJHZhbHVlKSB7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbiAgLW1vei11c2VyLXNlbGVjdDogJHZhbHVlO1xuICAtbXMtdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbiAgdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbn1cblxuQG1peGluIGlucHV0LXBsYWNlaG9sZGVyIHtcbiAgJjo6cGxhY2Vob2xkZXIge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgJjo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gY3Vyc29yLWdyYWIge1xuICBjdXJzb3I6IC13ZWJraXQtZ3JhYjtcbiAgY3Vyc29yOiBncmFiO1xufVxuXG5AbWl4aW4gY3Vyc29yLWdyYWJiaW5nIHtcbiAgY3Vyc29yOiAtd2Via2l0LWdyYWJiaW5nO1xuICBjdXJzb3I6IGdyYWJiaW5nO1xufVxuXG5AbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmFsdWUpIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiAkdmFsdWU7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6ICR2YWx1ZTtcbn1cblxuQG1peGluIHBvc2l0aW9uLXN0aWNreSgkaW1wb3J0YW50OiBmYWxzZSkge1xuICBwb3NpdGlvbjogLXdlYmtpdC1zdGlja3kgI3tpZigkaW1wb3J0YW50LCAnIWltcG9ydGFudCcsICcnKX07XG4gIHBvc2l0aW9uOiBzdGlja3kgI3tpZigkaW1wb3J0YW50LCAnIWltcG9ydGFudCcsICcnKX07XG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG5cblxuXG5AbWl4aW4gbWF0LWlucHV0LWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LWlucHV0LWVsZW1lbnQ6ZGlzYWJsZWQsXG4gIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICB9XG5cbiAgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBjYXJldC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCB0ZXh0KTtcblxuICAgIEBpbmNsdWRlIGlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiBtYXQtcHJpdmF0ZS1jb250cm9sLXBsYWNlaG9sZGVyLWNvbG9yKCRjb25maWcpO1xuICAgIH1cblxuICAgIC8vIE9uIGRhcmsgdGhlbWVzIHdlIHNldCB0aGUgbmF0aXZlIGBzZWxlY3RgIGNvbG9yIHRvIHNvbWUgc2hhZGUgb2Ygd2hpdGUsXG4gICAgLy8gaG93ZXZlciB0aGUgY29sb3IgcHJvcGFnYXRlcyB0byBhbGwgb2YgdGhlIGBvcHRpb25gIGVsZW1lbnRzLCB3aGljaCBhcmVcbiAgICAvLyBhbHdheXMgb24gYSB3aGl0ZSBiYWNrZ3JvdW5kIGluc2lkZSB0aGUgZHJvcGRvd24sIGNhdXNpbmcgdGhlbSB0byBibGVuZCBpbi5cbiAgICAvLyBTaW5jZSB3ZSBjYW4ndCBjaGFuZ2UgYmFja2dyb3VuZCBvZiB0aGUgZHJvcGRvd24sIHdlIG5lZWQgdG8gZXhwbGljaXRseVxuICAgIC8vIHJlc2V0IHRoZSBjb2xvciBvZiB0aGUgb3B0aW9ucyB0byBzb21ldGhpbmcgZGFyay5cbiAgICBAaWYgKG1hcC1nZXQoJGNvbmZpZywgaXMtZGFyaykpIHtcbiAgICAgIG9wdGlvbiB7XG4gICAgICAgIGNvbG9yOiAkZGFyay1wcmltYXJ5LXRleHQ7XG4gICAgICB9XG5cbiAgICAgIG9wdGlvbjpkaXNhYmxlZCB7XG4gICAgICAgIGNvbG9yOiAkZGFyay1kaXNhYmxlZC10ZXh0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC5tYXQtYWNjZW50IC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gICAgY2FyZXQtY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC5tYXQtd2FybiAubWF0LWlucHV0LWVsZW1lbnQsXG4gIC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gICAgY2FyZXQtY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtaW5wdXQtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC8vIFRoZSB1bml0LWxlc3MgbGluZS1oZWlnaHQgZnJvbSB0aGUgZm9udCBjb25maWcuXG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGlucHV0KTtcblxuICAvLyBUaGUgYW1vdW50IG9mIHNwYWNlIGJldHdlZW4gdGhlIHRvcCBvZiB0aGUgbGluZSBhbmQgdGhlIHRvcCBvZiB0aGUgYWN0dWFsIHRleHRcbiAgLy8gKGFzIGEgZnJhY3Rpb24gb2YgdGhlIGZvbnQtc2l6ZSkuXG4gICRsaW5lLXNwYWNpbmc6ICgkbGluZS1oZWlnaHQgLSAxKSAvIDI7XG5cbiAgLy8gPGlucHV0PiBlbGVtZW50cyBzZWVtIHRvIGhhdmUgdGhlaXIgaGVpZ2h0IHNldCBzbGlnaHRseSB0b28gbGFyZ2Ugb24gU2FmYXJpIGNhdXNpbmcgdGhlIHRleHQgdG9cbiAgLy8gYmUgbWlzYWxpZ25lZCB3LnIudC4gdGhlIHBsYWNlaG9sZGVyLiBBZGRpbmcgdGhpcyBtYXJnaW4gY29ycmVjdHMgaXQuXG4gIGlucHV0Lm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBtYXJnaW4tdG9wOiAtJGxpbmUtc3BhY2luZyAqIDFlbTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC1pbnB1dC1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtaW5wdXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWlucHV0Jykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWlucHV0LWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtaW5wdXQtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1pbnB1dC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1saXN0LWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWxpc3QtYmFzZSB7XG4gICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LXN1YmhlYWRlciB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1saXN0LWl0ZW0tZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlzYWJsZWQtbGlzdC1vcHRpb24pO1xuICB9XG5cbiAgLm1hdC1saXN0LW9wdGlvbixcbiAgLm1hdC1uYXYtbGlzdCAubWF0LWxpc3QtaXRlbSxcbiAgLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbSB7XG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdob3ZlcicpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtbGlzdC1zaW5nbGUtc2VsZWN0ZWQtb3B0aW9uIHtcbiAgICAmLCAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIsIDAuMTIpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWxpc3QtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuXG4gIC5tYXQtbGlzdC1pdGVtIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICB9XG5cbiAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgfVxuXG4gIC8vIERlZmF1bHQgbGlzdFxuICAubWF0LWxpc3QtYmFzZSB7XG4gICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIHN1YmhlYWRpbmctMik7XG4gICAgICBAaW5jbHVkZSBtYXQtbGluZS1iYXNlKG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKSk7XG4gICAgfVxuXG4gICAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgc3ViaGVhZGluZy0yKTtcbiAgICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpKTtcbiAgICB9XG5cbiAgICAubWF0LXN1YmhlYWRlciB7XG4gICAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJvZHktMik7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0yKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9XG4gIH1cblxuICAvLyBEZW5zZSBsaXN0XG4gIC5tYXQtbGlzdC1iYXNlW2RlbnNlXSB7XG4gICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgQGluY2x1ZGUgbWF0LWxpbmUtYmFzZShtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pKTtcbiAgICB9XG5cbiAgICAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKSk7XG4gICAgfVxuXG4gICAgLm1hdC1zdWJoZWFkZXIge1xuICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9tYXQtbGlzdC1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtbGlzdC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtbGlzdCcpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1saXN0LWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtbGlzdC1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWxpc3QtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtbWVudS1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1tZW51LXBhbmVsIHtcbiAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNCwgJGNvbmZpZyk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnY2FyZCcpO1xuICB9XG5cbiAgLm1hdC1tZW51LWl0ZW0ge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsICd0ZXh0Jyk7XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAmLFxuICAgICAgJjo6YWZ0ZXIsXG4gICAgICAubWF0LWljb24tbm8tY29sb3Ige1xuICAgICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCAnZGlzYWJsZWQnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LW1lbnUtaXRlbSAubWF0LWljb24tbm8tY29sb3IsXG4gIC5tYXQtbWVudS1pdGVtLXN1Ym1lbnUtdHJpZ2dlcjo6YWZ0ZXIge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsICdpY29uJyk7XG4gIH1cblxuICAubWF0LW1lbnUtaXRlbTpob3ZlcixcbiAgLm1hdC1tZW51LWl0ZW0uY2RrLXByb2dyYW0tZm9jdXNlZCxcbiAgLm1hdC1tZW51LWl0ZW0uY2RrLWtleWJvYXJkLWZvY3VzZWQsXG4gIC5tYXQtbWVudS1pdGVtLWhpZ2hsaWdodGVkIHtcbiAgICAmOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdob3ZlcicpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LW1lbnUtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtbWVudS1pdGVtIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBib2R5LTEpO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9tYXQtbWVudS1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtbWVudS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtbWVudScpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1tZW51LWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtbWVudS1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LW1lbnUtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG4kbWF0LXBhZ2luYXRvci1oZWlnaHQ6IDU2cHggIWRlZmF1bHQ7XG4vLyBNaW5pbXVtIGhlaWdodCBmb3IgcGFnaW5hdG9yJ3MgaW4gdGhlIGhpZ2hlc3QgZGVuc2l0eSBpcyBkZXRlcm1pbmVkIGJhc2VkIG9uIGhvd1xuLy8gbXVjaCB0aGUgcGFnaW5hdG9yIGNhbiBzaHJpbmsgdW50aWwgdGhlIGNvbnRlbnQgZXhjZWVkcyAoaS5lLiBuYXZpZ2F0aW9uIGJ1dHRvbnMpLlxuJG1hdC1wYWdpbmF0b3ItbWluaW11bS1oZWlnaHQ6IDQwcHggIWRlZmF1bHQ7XG4kbWF0LXBhZ2luYXRvci1tYXhpbXVtLWhlaWdodDogJG1hdC1wYWdpbmF0b3ItaGVpZ2h0ICFkZWZhdWx0O1xuXG4kbWF0LXBhZ2luYXRvci1kZW5zaXR5LWNvbmZpZzogKFxuICBoZWlnaHQ6IChcbiAgICBkZWZhdWx0OiAkbWF0LXBhZ2luYXRvci1oZWlnaHQsXG4gICAgbWF4aW11bTogJG1hdC1wYWdpbmF0b3ItbWF4aW11bS1oZWlnaHQsXG4gICAgbWluaW11bTogJG1hdC1wYWdpbmF0b3ItbWluaW11bS1oZWlnaHQsXG4gIClcbikgIWRlZmF1bHQ7XG5cblxuQG1peGluIG1hdC1wYWdpbmF0b3ItY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuXG4gIC5tYXQtcGFnaW5hdG9yIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdjYXJkJyk7XG4gIH1cblxuICAubWF0LXBhZ2luYXRvcixcbiAgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxcbiAgLm1hdC1wYWdpbmF0b3ItaW5jcmVtZW50IHtcbiAgICBib3JkZXItdG9wOiAycHggc29saWQgbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCAnaWNvbicpO1xuICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2ljb24nKTtcbiAgfVxuXG4gIC5tYXQtcGFnaW5hdG9yLWZpcnN0LFxuICAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgICBib3JkZXItdG9wOiAycHggc29saWQgbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCAnaWNvbicpO1xuICB9XG5cbiAgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0ge1xuICAgIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxcbiAgICAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQsXG4gICAgLm1hdC1wYWdpbmF0b3ItZmlyc3QsXG4gICAgLm1hdC1wYWdpbmF0b3ItbGFzdCB7XG4gICAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2Rpc2FibGVkJyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcGFnaW5hdG9yLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LXBhZ2luYXRvcixcbiAgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1wYWdpbmF0b3ItZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRkZW5zaXR5LXNjYWxlOiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkaGVpZ2h0OiBtYXQtcHJpdmF0ZS1kZW5zaXR5LXByb3AtdmFsdWUoJG1hdC1wYWdpbmF0b3ItZGVuc2l0eS1jb25maWcsICRkZW5zaXR5LXNjYWxlLCBoZWlnaHQpO1xuXG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWRlbnNpdHktbGVnYWN5LWNvbXBhdGliaWxpdHkoKSB7XG4gICAgLm1hdC1wYWdpbmF0b3ItY29udGFpbmVyIHtcbiAgICAgIG1pbi1oZWlnaHQ6ICRoZWlnaHQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcGFnaW5hdG9yLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1wYWdpbmF0b3InKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcGFnaW5hdG9yLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1wYWdpbmF0b3ItZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1wYWdpbmF0b3ItdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3MtYmFyLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICAgIGZpbGw6IG1hdC1jb2xvcigkcHJpbWFyeSwgbGlnaHRlcik7XG4gIH1cblxuICAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgbGlnaHRlcik7XG4gIH1cblxuICAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgfVxuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQge1xuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICAgICAgZmlsbDogbWF0LWNvbG9yKCRhY2NlbnQsIGxpZ2h0ZXIpO1xuICAgIH1cblxuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIHtcbiAgICAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kIHtcbiAgICAgIGZpbGw6IG1hdC1jb2xvcigkd2FybiwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkd2FybiwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1wcm9ncmVzcy1iYXItdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gX21hdC1wcm9ncmVzcy1iYXItZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LXByb2dyZXNzLWJhci10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtcHJvZ3Jlc3MtYmFyJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXByb2dyZXNzLWJhci1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXByb2dyZXNzLWJhci1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXByb2dyZXNzLWJhci10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5AbWl4aW4gbWF0LXByb2dyZXNzLXNwaW5uZXItY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG5cbiAgLm1hdC1wcm9ncmVzcy1zcGlubmVyLCAubWF0LXNwaW5uZXIge1xuICAgIGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBfbWF0LXByb2dyZXNzLXNwaW5uZXItZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LXByb2dyZXNzLXNwaW5uZXItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LXByb2dyZXNzLXNwaW5uZXInKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXByb2dyZXNzLXNwaW5uZXItZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1wcm9ncmVzcy1zcGlubmVyLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBfbWF0LXJhZGlvLWNvbG9yKCRwYWxldHRlKSB7XG4gICYubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlKTtcbiAgfVxuXG4gIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuICAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSxcbiAgJi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlLFxuICAmOmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtcmFkaW8tY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgICAmLm1hdC1wcmltYXJ5IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtcmFkaW8tY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXJhZGlvLWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgX21hdC1yYWRpby1jb2xvcigkd2Fybik7XG4gICAgfVxuXG4gICAgLy8gVGhpcyBuZWVkcyBleHRyYSBzcGVjaWZpY2l0eSwgYmVjYXVzZSB0aGUgY2xhc3NlcyBhYm92ZSBhcmUgY29tYmluZWRcbiAgICAvLyAoZS5nLiBgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudGApIHdoaWNoIGluY3JlYXNlcyB0aGVpciBzcGVjaWZpY2l0eSBhIGxvdC5cbiAgICAvLyBUT0RPOiBjb25zaWRlciBtYWtpbmcgdGhlIHNlbGVjdG9ycyBpbnRvIGRlc2NlbmRhbnRzIChgLm1hdC1wcmltYXJ5IC5tYXQtcmFkaW8tYnV0dG9uYCkuXG4gICAgJi5tYXQtcmFkaW8tZGlzYWJsZWQge1xuICAgICAgJi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSxcbiAgICAgIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkKTtcbiAgICAgIH1cblxuICAgICAgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudCxcbiAgICAgIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZCk7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtcmFkaW8tbGFiZWwtY29udGVudCB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTd2l0Y2ggdGhpcyB0byBhIHNvbGlkIGNvbG9yIHNpbmNlIHdlJ3JlIHVzaW5nIGBvcGFjaXR5YFxuICAgIC8vIHRvIGNvbnRyb2wgaG93IG9wYXF1ZSB0aGUgcmlwcGxlIHNob3VsZCBiZS5cbiAgICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJGZvcmVncm91bmQsIGJhc2UpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXJhZGlvLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LXJhZGlvLWJ1dHRvbiB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC1yYWRpby1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtcmFkaW8tdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LXJhZGlvJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXJhZGlvLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtcmFkaW8tZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1yYWRpby10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LXNlbGVjdC1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuXG4gIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtc2VsZWN0LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogbWF0LXByaXZhdGUtY29udHJvbC1wbGFjZWhvbGRlci1jb2xvcigkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LXNlbGVjdC1wYW5lbCB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNCwgJGNvbmZpZyk7XG5cbiAgICAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKSB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGhvdmVyLCAwLjEyKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQge1xuICAgICYubWF0LWZvY3VzZWQge1xuICAgICAgJi5tYXQtcHJpbWFyeSAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuICAgICAgfVxuXG4gICAgICAmLm1hdC1hY2NlbnQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgICBjb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuICAgICAgfVxuXG4gICAgICAmLm1hdC13YXJuIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1pbnZhbGlkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICAgIH1cblxuICAgIC5tYXQtc2VsZWN0Lm1hdC1zZWxlY3QtZGlzYWJsZWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtc2VsZWN0LXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG5cbiAgLm1hdC1zZWxlY3Qge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBoZWlnaHQ6ICRsaW5lLWhlaWdodCAqIDFlbTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC1zZWxlY3QtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LXNlbGVjdC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtc2VsZWN0Jykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXNlbGVjdC1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXNlbGVjdC1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXNlbGVjdC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5AbWl4aW4gbWF0LXNpZGVuYXYtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAkZHJhd2VyLWJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlhbG9nKTtcbiAgJGRyYXdlci1jb250YWluZXItYmFja2dyb3VuZC1jb2xvcjogIG1hdC1jb2xvcigkYmFja2dyb3VuZCwgYmFja2dyb3VuZCk7XG4gICRkcmF3ZXItcHVzaC1iYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGRpYWxvZyk7XG4gICRkcmF3ZXItc2lkZS1ib3JkZXI6IHNvbGlkIDFweCBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuXG4gIC5tYXQtZHJhd2VyLWNvbnRhaW5lciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGRyYXdlci1jb250YWluZXItYmFja2dyb3VuZC1jb2xvcjtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtZHJhd2VyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJhd2VyLWJhY2tncm91bmQtY29sb3I7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgICAmLm1hdC1kcmF3ZXItcHVzaCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJhd2VyLXB1c2gtYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG5cbiAgICAmOm5vdCgubWF0LWRyYXdlci1zaWRlKSB7XG4gICAgICAvLyBUaGUgZWxldmF0aW9uIG9mIHotMTYgaXMgbm90ZWQgaW4gdGhlIGRlc2lnbiBzcGVjaWZpY2F0aW9ucy5cbiAgICAgIC8vIFNlZSBodHRwczovL21hdGVyaWFsLmlvL2Rlc2lnbi9jb21wb25lbnRzL25hdmlnYXRpb24tZHJhd2VyLmh0bWxcbiAgICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLWVsZXZhdGlvbigxNiwgJGNvbmZpZyk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1kcmF3ZXItc2lkZSB7XG4gICAgYm9yZGVyLXJpZ2h0OiAkZHJhd2VyLXNpZGUtYm9yZGVyO1xuXG4gICAgJi5tYXQtZHJhd2VyLWVuZCB7XG4gICAgICBib3JkZXItbGVmdDogJGRyYXdlci1zaWRlLWJvcmRlcjtcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICB9XG4gIH1cblxuICBbZGlyPSdydGwnXSAubWF0LWRyYXdlci1zaWRlIHtcbiAgICBib3JkZXItbGVmdDogJGRyYXdlci1zaWRlLWJvcmRlcjtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG5cbiAgICAmLm1hdC1kcmF3ZXItZW5kIHtcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkZHJhd2VyLXNpZGUtYm9yZGVyO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZHJhd2VyLWJhY2tkcm9wLm1hdC1kcmF3ZXItc2hvd24ge1xuICAgICRvcGFjaXR5OiAwLjY7XG4gICAgJGJhY2tkcm9wLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQsICRvcGFjaXR5KTtcblxuICAgIEBpZiAodHlwZS1vZigkYmFja2Ryb3AtY29sb3IpID09IGNvbG9yKSB7XG4gICAgICAvLyBXZSB1c2UgaW52ZXJ0KCkgaGVyZSB0byBoYXZlIHRoZSBkYXJrZW4gdGhlIGJhY2tncm91bmQgY29sb3IgZXhwZWN0ZWQgdG8gYmUgdXNlZC4gSWYgdGhlXG4gICAgICAvLyBiYWNrZ3JvdW5kIGlzIGxpZ2h0LCB3ZSB1c2UgYSBkYXJrIGJhY2tkcm9wLiBJZiB0aGUgYmFja2dyb3VuZCBpcyBkYXJrLFxuICAgICAgLy8gd2UgdXNlIGEgbGlnaHQgYmFja2Ryb3AuXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbnZlcnQoJGJhY2tkcm9wLWNvbG9yKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gSWYgd2UgY291bGRuJ3QgcmVzb2x2ZSB0aGUgYmFja2Ryb3AgY29sb3IgdG8gYSBjb2xvciB2YWx1ZSwgZmFsbCBiYWNrIHRvIHVzaW5nXG4gICAgICAvLyBgb3BhY2l0eWAgdG8gbWFrZSBpdCBvcGFxdWUgc2luY2UgaXRzIGVuZCB2YWx1ZSBjb3VsZCBiZSBhIHNvbGlkIGNvbG9yLlxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tkcm9wLWNvbG9yO1xuICAgICAgb3BhY2l0eTogJG9wYWNpdHk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtc2lkZW5hdi10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBfbWF0LXNpZGVuYXYtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LXNpZGVuYXYtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LXNpZGVuYXYnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtc2lkZW5hdi1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXNpZGVuYXYtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1zaWRlbmF2LXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuQG1peGluIF9tYXQtc2xpZGUtdG9nZ2xlLWNoZWNrZWQoJHBhbGV0dGUsICR0aHVtYi1jaGVja2VkLWh1ZSkge1xuICAmLm1hdC1jaGVja2VkIHtcbiAgICAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsICR0aHVtYi1jaGVja2VkLWh1ZSk7XG4gICAgfVxuXG4gICAgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgICAgIC8vIE9wYWNpdHkgaXMgZGV0ZXJtaW5lZCBmcm9tIHRoZSBzcGVjcyBmb3IgdGhlIHNlbGVjdGlvbiBjb250cm9scy5cbiAgICAgIC8vIFNlZTogaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vY29tcG9uZW50cy9zZWxlY3Rpb24tY29udHJvbHMuaHRtbCNzcGVjc1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCAkdGh1bWItY2hlY2tlZC1odWUsIDAuNTQpO1xuICAgIH1cblxuICAgIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgLy8gU2V0IG5vIG9wYWNpdHkgZm9yIHRoZSByaXBwbGVzIGJlY2F1c2UgdGhlIHJpcHBsZSBvcGFjaXR5IHdpbGwgYmUgYWRqdXN0ZWQgZHluYW1pY2FsbHlcbiAgICAgIC8vIGJhc2VkIG9uIHRoZSB0eXBlIG9mIGludGVyYWN0aW9uIHdpdGggdGhlIHNsaWRlLXRvZ2dsZSAoZS5nLiBmb3IgaG92ZXIsIGZvY3VzKVxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCAkdGh1bWItY2hlY2tlZC1odWUpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNsaWRlLXRvZ2dsZS1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkaXMtZGFyazogbWFwLWdldCgkY29uZmlnLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAvLyBDb2xvciBodWVzIGFyZSBiYXNlZCBvbiB0aGUgc3BlY3Mgd2hpY2ggYnJpZWZseSBzaG93IHRoZSBodWVzIHRoYXQgYXJlIGFwcGxpZWQgdG8gYSBzd2l0Y2guXG4gIC8vIFRoZSAyMDE4IHNwZWNzIG5vIGxvbmdlciBkZXNjcmliZSBob3cgZGFyayBzd2l0Y2hlcyBzaG91bGQgbG9vayBsaWtlLiBEdWUgdG8gdGhlIGxhY2sgb2ZcbiAgLy8gaW5mb3JtYXRpb24gZm9yIGRhcmsgdGhlbWVkIHN3aXRjaGVzLCB3ZSBwYXJ0aWFsbHkga2VlcCB0aGUgb2xkIGJlaGF2aW9yIHRoYXQgaXMgYmFzZWQgb25cbiAgLy8gdGhlIHByZXZpb3VzIHNwZWNpZmljYXRpb25zLiBGb3IgdGhlIGNoZWNrZWQgY29sb3Igd2UgYWx3YXlzIHVzZSB0aGUgYGRlZmF1bHRgIGh1ZSBiZWNhdXNlXG4gIC8vIHRoYXQgZm9sbG93cyBNREMgYW5kIGFsc28gbWFrZXMgaXQgZWFzaWVyIGZvciBwZW9wbGUgdG8gY3JlYXRlIGEgY3VzdG9tIHRoZW1lIHdpdGhvdXQgbmVlZGluZ1xuICAvLyB0byBzcGVjaWZ5IGVhY2ggaHVlIGluZGl2aWR1YWxseS5cbiAgJHRodW1iLXVuY2hlY2tlZC1odWU6IGlmKCRpcy1kYXJrLCA0MDAsIDUwKTtcbiAgJHRodW1iLWNoZWNrZWQtaHVlOiBkZWZhdWx0O1xuXG4gICRiYXItdW5jaGVja2VkLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkKTtcbiAgJHJpcHBsZS11bmNoZWNrZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSk7XG5cbiAgLm1hdC1zbGlkZS10b2dnbGUge1xuICAgIEBpbmNsdWRlIF9tYXQtc2xpZGUtdG9nZ2xlLWNoZWNrZWQoJGFjY2VudCwgJHRodW1iLWNoZWNrZWQtaHVlKTtcblxuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgX21hdC1zbGlkZS10b2dnbGUtY2hlY2tlZCgkcHJpbWFyeSwgJHRodW1iLWNoZWNrZWQtaHVlKTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtc2xpZGUtdG9nZ2xlLWNoZWNrZWQoJHdhcm4sICR0aHVtYi1jaGVja2VkLWh1ZSk7XG4gICAgfVxuXG4gICAgJjpub3QoLm1hdC1jaGVja2VkKSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICAgIC8vIFNldCBubyBvcGFjaXR5IGZvciB0aGUgcmlwcGxlcyBiZWNhdXNlIHRoZSByaXBwbGUgb3BhY2l0eSB3aWxsIGJlIGFkanVzdGVkIGR5bmFtaWNhbGx5XG4gICAgICAvLyBiYXNlZCBvbiB0aGUgdHlwZSBvZiBpbnRlcmFjdGlvbiB3aXRoIHRoZSBzbGlkZS10b2dnbGUgKGUuZy4gZm9yIGhvdmVyLCBmb2N1cylcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRyaXBwbGUtdW5jaGVja2VkLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS10aGVtZS1lbGV2YXRpb24oMSwgJGNvbmZpZyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRtYXQtZ3JleSwgJHRodW1iLXVuY2hlY2tlZC1odWUpO1xuICB9XG5cbiAgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFyLXVuY2hlY2tlZC1jb2xvcjtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNsaWRlLXRvZ2dsZS10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC1zbGlkZS10b2dnbGUtY29udGVudCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC1zbGlkZS10b2dnbGUtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LXNsaWRlLXRvZ2dsZS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtc2xpZGUtdG9nZ2xlJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXNsaWRlLXRvZ2dsZS1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXNsaWRlLXRvZ2dsZS1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXNsaWRlLXRvZ2dsZS10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cbkBtaXhpbiBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCRwYWxldHRlKSB7XG4gIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4gIC5tYXQtc2xpZGVyLXRodW1iLFxuICAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlKTtcbiAgfVxuXG4gIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QpO1xuICB9XG5cbiAgLm1hdC1zbGlkZXItZm9jdXMtcmluZyB7XG4gICAgJG9wYWNpdHk6IDAuMjtcbiAgICAkY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdCwgJG9wYWNpdHkpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcblxuICAgIC8vIGBtYXQtY29sb3JgIHVzZXMgYHJnYmFgIGZvciB0aGUgb3BhY2l0eSB3aGljaCB3b24ndCB3b3JrIHdpdGhcbiAgICAvLyBDU1MgdmFyaWFibGVzIHNvIHdlIG5lZWQgdG8gdXNlIGBvcGFjaXR5YCBhcyBhIGZhbGxiYWNrLlxuICAgIEBpZiAodHlwZS1vZigkY29sb3IpICE9IGNvbG9yKSB7XG4gICAgICBvcGFjaXR5OiAkb3BhY2l0eTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1zbGlkZXItY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAkbWF0LXNsaWRlci1vZmYtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2xpZGVyLW9mZik7XG4gICRtYXQtc2xpZGVyLW9mZi1mb2N1c2VkLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNsaWRlci1vZmYtYWN0aXZlKTtcbiAgJG1hdC1zbGlkZXItZGlzYWJsZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2xpZGVyLW9mZik7XG4gICRtYXQtc2xpZGVyLWxhYmVsZWQtbWluLXZhbHVlLXRodW1iLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNsaWRlci1taW4pO1xuICAkbWF0LXNsaWRlci1sYWJlbGVkLW1pbi12YWx1ZS10aHVtYi1sYWJlbC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzbGlkZXItb2ZmKTtcbiAgJG1hdC1zbGlkZXItdGljay1vcGFjaXR5OiAwLjc7XG4gICRtYXQtc2xpZGVyLXRpY2stY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgJG1hdC1zbGlkZXItdGljay1vcGFjaXR5KTtcbiAgJG1hdC1zbGlkZXItdGljay1zaXplOiAycHg7XG5cbiAgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItb2ZmLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1wcmltYXJ5IHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCRwcmltYXJ5KTtcbiAgfVxuXG4gIC5tYXQtYWNjZW50IHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCRhY2NlbnQpO1xuICB9XG5cbiAgLm1hdC13YXJuIHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCR3YXJuKTtcbiAgfVxuXG4gIC5tYXQtc2xpZGVyOmhvdmVyLFxuICAuY2RrLWZvY3VzZWQge1xuICAgIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItb2ZmLWZvY3VzZWQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zbGlkZXItZGlzYWJsZWQge1xuICAgIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsXG4gICAgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbiAgICAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWF0LXNsaWRlci1kaXNhYmxlZC1jb2xvcjtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWF0LXNsaWRlci1kaXNhYmxlZC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LXNsaWRlci1taW4tdmFsdWUge1xuICAgIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICAgICAgJG9wYWNpdHk6IDAuMTI7XG4gICAgICAkY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgJG9wYWNpdHkpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuXG4gICAgICAvLyBgbWF0LWNvbG9yYCB1c2VzIGByZ2JhYCBmb3IgdGhlIG9wYWNpdHkgd2hpY2ggd29uJ3Qgd29yayB3aXRoXG4gICAgICAvLyBDU1MgdmFyaWFibGVzIHNvIHdlIG5lZWQgdG8gdXNlIGBvcGFjaXR5YCBhcyBhIGZhbGxiYWNrLlxuICAgICAgQGlmICh0eXBlLW9mKCRjb2xvcikgIT0gY29sb3IpIHtcbiAgICAgICAgb3BhY2l0eTogJG9wYWNpdHk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcge1xuICAgICAgLm1hdC1zbGlkZXItdGh1bWIsXG4gICAgICAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWxhYmVsZWQtbWluLXZhbHVlLXRodW1iLWNvbG9yO1xuICAgICAgfVxuXG4gICAgICAmLmNkay1mb2N1c2VkIHtcbiAgICAgICAgLm1hdC1zbGlkZXItdGh1bWIsXG4gICAgICAgIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWF0LXNsaWRlci1sYWJlbGVkLW1pbi12YWx1ZS10aHVtYi1sYWJlbC1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpIHtcbiAgICAgIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci1vZmYtY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJi5jZGstZm9jdXNlZCB7XG4gICAgICAgIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRtYXQtc2xpZGVyLW9mZi1mb2N1c2VkLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRtYXQtc2xpZGVyLWRpc2FibGVkLWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zbGlkZXItaGFzLXRpY2tzIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVyIHtcbiAgICBib3JkZXItY29sb3I6ICRtYXQtc2xpZGVyLXRpY2stY29sb3I7XG5cbiAgICAvLyBgbWF0LWNvbG9yYCB1c2VzIGByZ2JhYCBmb3IgdGhlIG9wYWNpdHkgd2hpY2ggd29uJ3Qgd29yayB3aXRoXG4gICAgLy8gQ1NTIHZhcmlhYmxlcyBzbyB3ZSBuZWVkIHRvIHVzZSBgb3BhY2l0eWAgYXMgYSBmYWxsYmFjay5cbiAgICBAaWYgKHR5cGUtb2YoJG1hdC1zbGlkZXItdGljay1jb2xvcikgIT0gY29sb3IpIHtcbiAgICAgIG9wYWNpdHk6ICRtYXQtc2xpZGVyLXRpY2stb3BhY2l0eTtcbiAgICB9XG4gIH1cblxuICAubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXRpY2tzIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkbWF0LXNsaWRlci10aWNrLWNvbG9yLFxuICAgICAgICAkbWF0LXNsaWRlci10aWNrLWNvbG9yICRtYXQtc2xpZGVyLXRpY2stc2l6ZSwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO1xuICAgIC8vIEZpcmVmb3ggZG9lc24ndCBkcmF3IHRoZSBncmFkaWVudCBjb3JyZWN0bHkgd2l0aCAndG8gcmlnaHQnXG4gICAgLy8gKHNlZSBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzE0MzE5KS5cbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LXJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMC4wMDAxZGVnLCAkbWF0LXNsaWRlci10aWNrLWNvbG9yLFxuICAgICAgICAkbWF0LXNsaWRlci10aWNrLWNvbG9yICRtYXQtc2xpZGVyLXRpY2stc2l6ZSwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO1xuXG4gICAgLy8gYG1hdC1jb2xvcmAgdXNlcyBgcmdiYWAgZm9yIHRoZSBvcGFjaXR5IHdoaWNoIHdvbid0IHdvcmsgd2l0aFxuICAgIC8vIENTUyB2YXJpYWJsZXMgc28gd2UgbmVlZCB0byB1c2UgYG9wYWNpdHlgIGFzIGEgZmFsbGJhY2suXG4gICAgQGlmICh0eXBlLW9mKCRtYXQtc2xpZGVyLXRpY2stY29sb3IpICE9IGNvbG9yKSB7XG4gICAgICBvcGFjaXR5OiAkbWF0LXNsaWRlci10aWNrLW9wYWNpdHk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItdGlja3Mge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAkbWF0LXNsaWRlci10aWNrLWNvbG9yLFxuICAgICAgICAkbWF0LXNsaWRlci10aWNrLWNvbG9yICRtYXQtc2xpZGVyLXRpY2stc2l6ZSwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO1xuXG4gICAgLy8gYG1hdC1jb2xvcmAgdXNlcyBgcmdiYWAgZm9yIHRoZSBvcGFjaXR5IHdoaWNoIHdvbid0IHdvcmsgd2l0aFxuICAgIC8vIENTUyB2YXJpYWJsZXMgc28gd2UgbmVlZCB0byB1c2UgYG9wYWNpdHlgIGFzIGEgZmFsbGJhY2suXG4gICAgQGlmICh0eXBlLW9mKCRtYXQtc2xpZGVyLXRpY2stY29sb3IpICE9IGNvbG9yKSB7XG4gICAgICBvcGFjaXR5OiAkbWF0LXNsaWRlci10aWNrLW9wYWNpdHk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtc2xpZGVyLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbik7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTIpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gX21hdC1zbGlkZXItZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LXNsaWRlci10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtc2xpZGVyJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXNsaWRlci1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXNsaWRlci10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG4kbWF0LXN0ZXBwZXItaGVhZGVyLWhlaWdodDogNzJweCAhZGVmYXVsdDtcbi8vIE1pbmltdW0gaGVpZ2h0IGZvciBoaWdoZXN0IGRlbnNpdHkgc3RlcHBlcidzIGlzIGRldGVybWluZWQgYmFzZWQgb24gaG93IG11Y2hcbi8vIHN0ZXBwZXIgaGVhZGVycyBjYW4gc2hyaW5rIHVudGlsIHRoZSBzdGVwIGljb24gb3Igc3RlcCBsYWJlbCBleGNlZWQuIFdlIGNhbid0IHVzZVxuLy8gYSB2YWx1ZSBiZWxvdyBgNDJweGAgYmVjYXVzZSB0aGUgb3B0aW9uYWwgbGFiZWwgZm9yIHN0ZXBzIHdvdWxkIG90aGVyd2lzZSBleGNlZWQuXG4kbWF0LXN0ZXBwZXItaGVhZGVyLW1pbmltdW0taGVpZ2h0OiA0MnB4ICFkZWZhdWx0O1xuJG1hdC1zdGVwcGVyLWhlYWRlci1tYXhpbXVtLWhlaWdodDogJG1hdC1zdGVwcGVyLWhlYWRlci1oZWlnaHQgIWRlZmF1bHQ7XG5cbiRtYXQtc3RlcHBlci1kZW5zaXR5LWNvbmZpZzogKFxuICBoZWlnaHQ6IChcbiAgICBkZWZhdWx0OiAkbWF0LXN0ZXBwZXItaGVhZGVyLWhlaWdodCxcbiAgICBtYXhpbXVtOiAkbWF0LXN0ZXBwZXItaGVhZGVyLW1heGltdW0taGVpZ2h0LFxuICAgIG1pbmltdW06ICRtYXQtc3RlcHBlci1oZWFkZXItbWluaW11bS1oZWlnaHQsXG4gIClcbikgIWRlZmF1bHQ7XG5cbi8vIE5vdGU6IFRoZXNlIHZhcmlhYmxlcyBhcmUgbm90IGRlbm90ZWQgd2l0aCBgIWRlZmF1bHRgIGJlY2F1c2UgdGhleSBhcmUgdXNlZCBpbiB0aGUgbm9uLXRoZW1lXG4vLyBjb21wb25lbnQgc3R5bGVzLiBNb2RpZnlpbmcgdGhlc2UgdmFyaWFibGVzIGRvZXMgbm90IGhhdmUgdGhlIGRlc2lyZWQgZWZmZWN0IGZvciBjb25zdW1lcnMuXG4kbWF0LXN0ZXBwZXItbGFiZWwtaGVhZGVyLWhlaWdodDogMjRweDtcbiRtYXQtc3RlcHBlci1sYWJlbC1wb3NpdGlvbi1ib3R0b20tdG9wLWdhcDogMTZweDtcbiRtYXQtc3RlcHBlci1sYWJlbC1taW4td2lkdGg6IDUwcHg7XG5cbiRtYXQtdmVydGljYWwtc3RlcHBlci1jb250ZW50LW1hcmdpbjogMzZweDtcblxuJG1hdC1zdGVwcGVyLXNpZGUtZ2FwOiAyNHB4O1xuJG1hdC1zdGVwcGVyLWxpbmUtd2lkdGg6IDFweDtcbiRtYXQtc3RlcHBlci1saW5lLWdhcDogOHB4O1xuXG4kbWF0LXN0ZXAtc3ViLWxhYmVsLWZvbnQtc2l6ZTogMTJweDtcbiRtYXQtc3RlcC1oZWFkZXItaWNvbi1zaXplOiAxNnB4O1xuXG5cbkBtaXhpbiBtYXQtc3RlcHBlci1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuXG4gIC5tYXQtc3RlcC1oZWFkZXIge1xuICAgICYuY2RrLWtleWJvYXJkLWZvY3VzZWQsXG4gICAgJi5jZGstcHJvZ3JhbS1mb2N1c2VkLFxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgfVxuXG4gICAgLy8gT24gdG91Y2ggZGV2aWNlcyB0aGUgOmhvdmVyIHN0YXRlIHdpbGwgbGluZ2VyIG9uIHRoZSBlbGVtZW50IGFmdGVyIGEgdGFwLlxuICAgIC8vIFJlc2V0IGl0IHZpYSBgQG1lZGlhYCBhZnRlciB0aGUgZGVjbGFyYXRpb24sIGJlY2F1c2UgdGhlIG1lZGlhIHF1ZXJ5IGlzbid0XG4gICAgLy8gc3VwcG9ydGVkIGJ5IGFsbCBicm93c2VycyB5ZXQuXG4gICAgQG1lZGlhIChob3Zlcjogbm9uZSkge1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1zdGVwLWxhYmVsLFxuICAgIC5tYXQtc3RlcC1vcHRpb25hbCB7XG4gICAgICAvLyBUT0RPKGpvc2VwaHBlcnJvdHQpOiBVcGRhdGUgdG8gdXNpbmcgYSBjb3JyZWN0ZWQgZGlzYWJsZWQtdGV4dCBjb250cmFzdFxuICAgICAgLy8gaW5zdGVhZCBvZiBzZWNvbmRhcnktdGV4dC5cbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtaWNvbiB7XG4gICAgICAvLyBUT0RPKGpvc2VwaHBlcnJvdHQpOiBVcGRhdGUgdG8gdXNpbmcgYSBjb3JyZWN0ZWQgZGlzYWJsZWQtdGV4dCBjb250cmFzdFxuICAgICAgLy8gaW5zdGVhZCBvZiBzZWNvbmRhcnktdGV4dC5cbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgfVxuXG4gICAgLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsXG4gICAgLm1hdC1zdGVwLWljb24tc3RhdGUtZG9uZSxcbiAgICAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lZGl0IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgLm1hdC1zdGVwLWljb24ge1xuICAgICAgICBjb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIGRlZmF1bHQtY29udHJhc3QpO1xuICAgICAgfVxuXG4gICAgICAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCxcbiAgICAgIC5tYXQtc3RlcC1pY29uLXN0YXRlLWRvbmUsXG4gICAgICAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lZGl0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAgICAgICBjb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIGRlZmF1bHQtY29udHJhc3QpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgLm1hdC1zdGVwLWljb24ge1xuICAgICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICAgIH1cblxuICAgICAgLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsXG4gICAgICAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLFxuICAgICAgLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHdhcm4sIGRlZmF1bHQtY29udHJhc3QpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVycm9yIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWFjdGl2ZSB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtZXJyb3Ige1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zdGVwcGVyLWhvcml6b250YWwsIC5tYXQtc3RlcHBlci12ZXJ0aWNhbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgfVxuXG4gIC5tYXQtc3RlcHBlci12ZXJ0aWNhbC1saW5lOjpiZWZvcmUge1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjpiZWZvcmUsXG4gIC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YWZ0ZXIsXG4gIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLWxpbmUge1xuICAgIGJvcmRlci10b3AtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cbn1cblxuQG1peGluIG1hdC1zdGVwcGVyLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LXN0ZXBwZXItdmVydGljYWwsIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1zdGVwLWxhYmVsIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpO1xuICAgIH07XG4gIH1cblxuICAubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICB9XG5cbiAgLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxuXG4gIC5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZCB7XG4gICAgZm9udDoge1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTIpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9O1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc3RlcHBlci1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGRlbnNpdHktc2NhbGU6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRoZWlnaHQ6IG1hdC1wcml2YXRlLWRlbnNpdHktcHJvcC12YWx1ZSgkbWF0LXN0ZXBwZXItZGVuc2l0eS1jb25maWcsICRkZW5zaXR5LXNjYWxlLCBoZWlnaHQpO1xuICAkdmVydGljYWwtcGFkZGluZzogKCRoZWlnaHQgLSAkbWF0LXN0ZXBwZXItbGFiZWwtaGVhZGVyLWhlaWdodCkgLyAyO1xuXG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWRlbnNpdHktbGVnYWN5LWNvbXBhdGliaWxpdHkoKSB7XG4gICAgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyIHtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXBwZXItbGFiZWwtcG9zaXRpb24tYm90dG9tIC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcixcbiAgICAubWF0LXZlcnRpY2FsLXN0ZXBwZXItaGVhZGVyIHtcbiAgICAgIHBhZGRpbmc6ICR2ZXJ0aWNhbC1wYWRkaW5nICRtYXQtc3RlcHBlci1zaWRlLWdhcDtcbiAgICB9XG5cbiAgICAvLyBFbnN1cmVzIHRoYXQgdGhlIHZlcnRpY2FsIGxpbmVzIGZvciB0aGUgc3RlcCBjb250ZW50IGV4Y2VlZCBpbnRvIHRoZSBzdGVwXG4gICAgLy8gaGVhZGVycyB3aXRoIGEgZ2l2ZW4gZGlzdGFuY2UgKGAkbWF0LXN0ZXBwZXItbGluZS1nYXBgKSB0byB0aGUgc3RlcCBpY29uLlxuICAgIC5tYXQtc3RlcHBlci12ZXJ0aWNhbC1saW5lOjpiZWZvcmUge1xuICAgICAgdG9wOiAkbWF0LXN0ZXBwZXItbGluZS1nYXAgLSAkdmVydGljYWwtcGFkZGluZztcbiAgICAgIGJvdHRvbTogJG1hdC1zdGVwcGVyLWxpbmUtZ2FwIC0gJHZlcnRpY2FsLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLy8gRW5zdXJlcyB0aGF0IHRoZSBob3Jpem9udGFsIGxpbmVzIGZvciB0aGUgc3RlcCBoZWFkZXIgYXJlIGNlbnRlcmVkIHZlcnRpY2FsbHkuXG4gICAgLm1hdC1zdGVwcGVyLWxhYmVsLXBvc2l0aW9uLWJvdHRvbSAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXIge1xuICAgICAgJjo6YWZ0ZXIsICY6OmJlZm9yZSB7XG4gICAgICAgIHRvcDogJHZlcnRpY2FsLXBhZGRpbmcgKyAkbWF0LXN0ZXBwZXItbGFiZWwtaGVhZGVyLWhlaWdodCAvIDI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRW5zdXJlcyB0aGF0IHRoZSBob3Jpem9udGFsIGxpbmUgZm9yIHRoZSBzdGVwIGNvbnRlbnQgaXMgYWxpZ25lZCBjZW50ZXJlZCB2ZXJ0aWNhbGx5LlxuICAgIC5tYXQtc3RlcHBlci1sYWJlbC1wb3NpdGlvbi1ib3R0b20gLm1hdC1zdGVwcGVyLWhvcml6b250YWwtbGluZSB7XG4gICAgICB0b3A6ICR2ZXJ0aWNhbC1wYWRkaW5nICsgJG1hdC1zdGVwcGVyLWxhYmVsLWhlYWRlci1oZWlnaHQgLyAyO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXN0ZXBwZXItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LXN0ZXBwZXInKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtc3RlcHBlci1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtc3RlcHBlci1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXN0ZXBwZXItdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5AbWl4aW4gbWF0LXNvcnQtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtc29ydC1oZWFkZXItYXJyb3cge1xuICAgICR0YWJsZS1iYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdjYXJkJyk7XG4gICAgJHRleHQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuXG4gICAgLy8gQmVjYXVzZSB0aGUgYXJyb3cgaXMgbWFkZSB1cCBvZiBtdWx0aXBsZSBlbGVtZW50cyB0aGF0IGFyZSBzdGFja2VkIG9uIHRvcCBvZiBlYWNoIG90aGVyLFxuICAgIC8vIHdlIGNhbid0IHVzZSB0aGUgc2VtaS10cmFuc3BhcmVudCBjb2xvciBmcm9tIHRoZSB0aGVtZSBkaXJlY3RseS4gSWYgdGhlIHZhbHVlIGlzIGEgY29sb3JcbiAgICAvLyAqdHlwZSosIHdlIGNvbnZlcnQgaXQgaW50byBhIHNvbGlkIGNvbG9yIGJ5IHRha2luZyB0aGUgb3BhY2l0eSBmcm9tIHRoZSByZ2JhIHZhbHVlIGFuZFxuICAgIC8vIHVzaW5nIHRoZSB2YWx1ZSB0byBkZXRlcm1pbmUgdGhlIHBlcmNlbnRhZ2Ugb2YgdGhlIGJhY2tncm91bmQgdG8gcHV0IGludG8gZm9yZWdyb3VuZFxuICAgIC8vIHdoZW4gbWl4aW5nIHRoZSBjb2xvcnMgdG9nZXRoZXIuIE90aGVyd2lzZSwgaWYgaXQgcmVzb2x2ZXMgdG8gc29tZXRoaW5nIGRpZmZlcmVudFxuICAgIC8vIChlLmcuIGl0IHJlc29sdmVzIHRvIGEgQ1NTIHZhcmlhYmxlKSwgd2UgdXNlIHRoZSBjb2xvciBkaXJlY3RseS5cbiAgICBAaWYgKHR5cGUtb2YoJHRhYmxlLWJhY2tncm91bmQpID09IGNvbG9yIGFuZCB0eXBlLW9mKCR0ZXh0LWNvbG9yKSA9PSBjb2xvcikge1xuICAgICAgJHRleHQtb3BhY2l0eTogb3BhY2l0eSgkdGV4dC1jb2xvcik7XG4gICAgICBjb2xvcjogbWl4KCR0YWJsZS1iYWNrZ3JvdW5kLCByZ2JhKCR0ZXh0LWNvbG9yLCAxKSwgKDEgLSAkdGV4dC1vcGFjaXR5KSAqIDEwMCUpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBjb2xvcjogJHRleHQtY29sb3I7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtc29ydC10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBfbWF0LXNvcnQtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LXNvcnQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LXNvcnQnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtc29ydC1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXNvcnQtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1zb3J0LXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtdGFicy1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuICAkaGVhZGVyLWJvcmRlcjogMXB4IHNvbGlkIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG5cbiAgLm1hdC10YWItbmF2LWJhcixcbiAgLm1hdC10YWItaGVhZGVyIHtcbiAgICBib3JkZXItYm90dG9tOiAkaGVhZGVyLWJvcmRlcjtcbiAgfVxuXG4gIC5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlciB7XG4gICAgLm1hdC10YWItbmF2LWJhcixcbiAgICAubWF0LXRhYi1oZWFkZXIge1xuICAgICAgYm9yZGVyLXRvcDogJGhlYWRlci1ib3JkZXI7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtdGFiLWxhYmVsLCAubWF0LXRhYi1saW5rIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LXRhYi1kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cblxuICAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gIH1cblxuICAvLyBSZW1vdmUgaGVhZGVyIGJvcmRlciB3aGVuIHRoZXJlIGlzIGEgYmFja2dyb3VuZCBjb2xvclxuICAubWF0LXRhYi1ncm91cFtjbGFzcyo9J21hdC1iYWNrZ3JvdW5kLSddIC5tYXQtdGFiLWhlYWRlcixcbiAgLm1hdC10YWItbmF2LWJhcltjbGFzcyo9J21hdC1iYWNrZ3JvdW5kLSddIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG4gIH1cblxuICAubWF0LXRhYi1ncm91cCwgLm1hdC10YWItbmF2LWJhciB7XG4gICAgJHRoZW1lLWNvbG9yczogKFxuICAgICAgcHJpbWFyeTogJHByaW1hcnksXG4gICAgICBhY2NlbnQ6ICRhY2NlbnQsXG4gICAgICB3YXJuOiAkd2FyblxuICAgICk7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICR0aGVtZS1jb2xvcnMge1xuICAgICAgLy8gU2V0IHRoZSBmb3JlZ3JvdW5kIGNvbG9yIG9mIHRoZSB0YWJzXG4gICAgICAmLm1hdC0jeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtdGFiLWxhYmVsLWZvY3VzKCRjb2xvcik7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtaW5rLWJhcigkY29sb3IpO1xuXG4gICAgICAgIC8vIE92ZXJyaWRlIGluayBiYXIgd2hlbiBiYWNrZ3JvdW5kIGNvbG9yIGlzIHRoZSBzYW1lXG4gICAgICAgICYubWF0LWJhY2tncm91bmQtI3skbmFtZX0ge1xuICAgICAgICAgID4gLm1hdC10YWItaGVhZGVyLCA+IC5tYXQtdGFiLWxpbmstY29udGFpbmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIF9tYXQtaW5rLWJhcigkY29sb3IsIGRlZmF1bHQtY29udHJhc3QpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJHRoZW1lLWNvbG9ycyB7XG4gICAgICAvLyBTZXQgYmFja2dyb3VuZCBjb2xvciBvZiB0aGUgdGFicyBhbmQgb3ZlcnJpZGUgZm9jdXMgY29sb3JcbiAgICAgICYubWF0LWJhY2tncm91bmQtI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LXRhYi1sYWJlbC1mb2N1cygkY29sb3IpO1xuICAgICAgICBAaW5jbHVkZSBfbWF0LXRhYnMtYmFja2dyb3VuZCgkY29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gX21hdC1pbmstYmFyKCRjb2xvciwgJGh1ZTogZGVmYXVsdCkge1xuICAubWF0LWluay1iYXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkY29sb3IsICRodWUpO1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LXRhYi1sYWJlbC1mb2N1cygkdGFiLWZvY3VzLWNvbG9yKSB7XG4gIC5tYXQtdGFiLWxhYmVsLFxuICAubWF0LXRhYi1saW5rIHtcbiAgICAmLmNkay1rZXlib2FyZC1mb2N1c2VkLFxuICAgICYuY2RrLXByb2dyYW0tZm9jdXNlZCB7XG4gICAgICAmOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHRhYi1mb2N1cy1jb2xvciwgbGlnaHRlciwgMC4zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9tYXQtdGFicy1iYWNrZ3JvdW5kKCRiYWNrZ3JvdW5kLWNvbG9yKSB7XG4gIC8vIE5vdGUgdGhhdCB0aGVzZSBzZWxlY3RvcnMgdGFyZ2V0IGRpcmVjdCBkZXNjZW5kYW50cyBzb1xuICAvLyB0aGF0IHRoZSBzdHlsZXMgZG9uJ3QgYXBwbHkgdG8gYW55IG5lc3RlZCB0YWIgZ3JvdXBzLlxuXG4gIC8vIFNldCBiYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgdGFiIGdyb3VwXG4gID4gLm1hdC10YWItaGVhZGVyLCA+IC5tYXQtdGFiLWxpbmstY29udGFpbmVyLCA+IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQtY29sb3IpO1xuICB9XG5cbiAgLy8gU2V0IGxhYmVscyB0byBjb250cmFzdCBhZ2FpbnN0IGJhY2tncm91bmRcbiAgPiAubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwsID4gLm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGluayB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZC1jb2xvciwgZGVmYXVsdC1jb250cmFzdCk7XG5cbiAgICAmLm1hdC10YWItZGlzYWJsZWQge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZC1jb2xvciwgZGVmYXVsdC1jb250cmFzdCwgMC40KTtcbiAgICB9XG4gIH1cblxuICAvLyBTZXQgcGFnaW5hdGlvbiBjaGV2cm9ucyB0byBjb250cmFzdCBiYWNrZ3JvdW5kXG4gID4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbixcbiAgPiAubWF0LXRhYi1saW5rcyAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLFxuICA+IC5tYXQtdGFiLWhlYWRlciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZC1jb2xvciwgZGVmYXVsdC1jb250cmFzdCk7XG4gIH1cblxuICA+IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0LCAwLjQpO1xuICB9XG5cbiAgLy8gU2V0IHJpcHBsZXMgY29sb3IgdG8gYmUgdGhlIGNvbnRyYXN0IGNvbG9yIG9mIHRoZSBuZXcgYmFja2dyb3VuZC4gT3RoZXJ3aXNlIHRoZSByaXBwbGVcbiAgLy8gY29sb3Igd2lsbCBiZSBiYXNlZCBvbiB0aGUgYXBwIGJhY2tncm91bmQgY29sb3IuXG4gID4gLm1hdC10YWItaGVhZGVyIC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4gID4gLm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0LCAwLjEyKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRhYnMtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtdGFiLWdyb3VwIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJ1dHRvbik7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJ1dHRvbik7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gX21hdC10YWJzLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC10YWJzLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC10YWJzJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXRhYnMtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC10YWJzLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtdGFicy10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cbi8vIE1pbmltdW0gaGVpZ2h0IGZvciB0b29sYmFyJ3MgaW4gdGhlIGhpZ2hlc3QgZGVuc2l0eSBpcyBkaWZmaWN1bHQgdG8gZGV0ZXJtaW5lIGJlY2F1c2Vcbi8vIGRldmVsb3BlcnMgY2FuIHByb2plY3QgYXJiaXRyYXJ5IGNvbnRlbnQuIFdlIHVzZSBhIG1pbmltdW0gdmFsdWUgdGhhdCBlbnN1cmVzIHRoYXQgbW9zdFxuLy8gY29tbW9uIGNvbnRlbnQgKGUuZy4gaWNvbiBidXR0b25zKSBkb2VzIG5vdCBleGNlZWQgdGhlIHJvdyBib3VuZGFyaWVzIGluIGhpZ2hlc3QgZGVuc2l0eS5cbiRtYXQtdG9vbGJhci1taW5pbXVtLWhlaWdodDogNDRweCAhZGVmYXVsdDtcblxuJG1hdC10b29sYmFyLWhlaWdodC1kZXNrdG9wOiA2NHB4ICFkZWZhdWx0O1xuJG1hdC10b29sYmFyLW1heGltdW0taGVpZ2h0LWRlc2t0b3A6ICRtYXQtdG9vbGJhci1oZWlnaHQtZGVza3RvcCAhZGVmYXVsdDtcbiRtYXQtdG9vbGJhci1taW5pbXVtLWhlaWdodC1kZXNrdG9wOiAkbWF0LXRvb2xiYXItbWluaW11bS1oZWlnaHQgIWRlZmF1bHQ7XG5cbiRtYXQtdG9vbGJhci1oZWlnaHQtbW9iaWxlOiA1NnB4ICFkZWZhdWx0O1xuJG1hdC10b29sYmFyLW1heGltdW0taGVpZ2h0LW1vYmlsZTogJG1hdC10b29sYmFyLWhlaWdodC1tb2JpbGUgIWRlZmF1bHQ7XG4kbWF0LXRvb2xiYXItbWluaW11bS1oZWlnaHQtbW9iaWxlOiAkbWF0LXRvb2xiYXItbWluaW11bS1oZWlnaHQgIWRlZmF1bHQ7XG5cbiRtYXQtdG9vbGJhci1kZXNrdG9wLWRlbnNpdHktY29uZmlnOiAoXG4gIGhlaWdodDogKFxuICAgIGRlZmF1bHQ6ICRtYXQtdG9vbGJhci1oZWlnaHQtZGVza3RvcCxcbiAgICBtYXhpbXVtOiAkbWF0LXRvb2xiYXItbWF4aW11bS1oZWlnaHQtZGVza3RvcCxcbiAgICBtaW5pbXVtOiAkbWF0LXRvb2xiYXItbWluaW11bS1oZWlnaHQtZGVza3RvcCxcbiAgKVxuKSAhZGVmYXVsdDtcblxuJG1hdC10b29sYmFyLW1vYmlsZS1kZW5zaXR5LWNvbmZpZzogKFxuICBoZWlnaHQ6IChcbiAgICBkZWZhdWx0OiAkbWF0LXRvb2xiYXItaGVpZ2h0LW1vYmlsZSxcbiAgICBtYXhpbXVtOiAkbWF0LXRvb2xiYXItbWF4aW11bS1oZWlnaHQtbW9iaWxlLFxuICAgIG1pbmltdW06ICRtYXQtdG9vbGJhci1taW5pbXVtLWhlaWdodC1tb2JpbGUsXG4gIClcbikgIWRlZmF1bHQ7XG5cblxuQG1peGluIF9tYXQtdG9vbGJhci1oZWlnaHQoJGhlaWdodCkge1xuICAubWF0LXRvb2xiYXItbXVsdGlwbGUtcm93cyB7XG4gICAgbWluLWhlaWdodDogJGhlaWdodDtcbiAgfVxuICAubWF0LXRvb2xiYXItcm93LCAubWF0LXRvb2xiYXItc2luZ2xlLXJvdyB7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LXRvb2xiYXItY29sb3IoJHBhbGV0dGUpIHtcbiAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRwYWxldHRlKTtcbiAgY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCk7XG59XG5cbkBtaXhpbiBfbWF0LXRvb2xiYXItZm9ybS1maWVsZC1vdmVycmlkZXMge1xuICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lLFxuICAubWF0LWZvcm0tZmllbGQtcmlwcGxlLFxuICAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAubWF0LXNlbGVjdC12YWx1ZSxcbiAgLm1hdC1zZWxlY3QtYXJyb3csXG4gIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cblxuICAubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIGNhcmV0LWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gIH1cbn1cblxuQG1peGluIG1hdC10b29sYmFyLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC10b29sYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGFwcC1iYXIpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgJi5tYXQtcHJpbWFyeSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRvb2xiYXItY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRvb2xiYXItY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRvb2xiYXItY29sb3IoJHdhcm4pO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIF9tYXQtdG9vbGJhci1mb3JtLWZpZWxkLW92ZXJyaWRlcztcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRvb2xiYXItdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtdG9vbGJhcixcbiAgLm1hdC10b29sYmFyIGgxLFxuICAubWF0LXRvb2xiYXIgaDIsXG4gIC5tYXQtdG9vbGJhciBoMyxcbiAgLm1hdC10b29sYmFyIGg0LFxuICAubWF0LXRvb2xiYXIgaDUsXG4gIC5tYXQtdG9vbGJhciBoNiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIHRpdGxlKTtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cblxuQG1peGluIG1hdC10b29sYmFyLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkZGVuc2l0eS1zY2FsZTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGhlaWdodC1kZXNrdG9wOiBtYXQtcHJpdmF0ZS1kZW5zaXR5LXByb3AtdmFsdWUoXG4gICAgICAkbWF0LXRvb2xiYXItZGVza3RvcC1kZW5zaXR5LWNvbmZpZywgJGRlbnNpdHktc2NhbGUsIGhlaWdodCk7XG4gICRoZWlnaHQtbW9iaWxlOiBtYXQtcHJpdmF0ZS1kZW5zaXR5LXByb3AtdmFsdWUoXG4gICAgICAkbWF0LXRvb2xiYXItbW9iaWxlLWRlbnNpdHktY29uZmlnLCAkZGVuc2l0eS1zY2FsZSwgaGVpZ2h0KTtcblxuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1kZW5zaXR5LWxlZ2FjeS1jb21wYXRpYmlsaXR5KCkge1xuICAgIC8vIFNldCB0aGUgZGVmYXVsdCBoZWlnaHQgZm9yIHRoZSB0b29sYmFyLlxuICAgIEBpbmNsdWRlIF9tYXQtdG9vbGJhci1oZWlnaHQoJGhlaWdodC1kZXNrdG9wKTtcblxuICAgIC8vIEFzIHBlciBzcGVjcywgdG9vbGJhcnMgc2hvdWxkIGhhdmUgYSBkaWZmZXJlbnQgaGVpZ2h0IGluIG1vYmlsZSBkZXZpY2VzLiBUaGlzIGhhcyBiZWVuXG4gICAgLy8gc3BlY2lmaWVkIGluIHRoZSBvbGQgZ3VpZGVsaW5lcyBhbmQgaXMgc3RpbGwgb2JzZXJ2YWJsZSBpbiB0aGUgbmV3IHNwZWNpZmljYXRpb25zIGJ5XG4gICAgLy8gbG9va2luZyBhdCB0aGUgc3BlYyBpbWFnZXMuIFNlZTogaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vY29tcG9uZW50cy9hcHAtYmFycy10b3AuaHRtbCNhbmF0b215XG4gICAgQG1lZGlhICgkbWF0LXhzbWFsbCkge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWhlaWdodCgkaGVpZ2h0LW1vYmlsZSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtdG9vbGJhci10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtdG9vbGJhcicpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC10b29sYmFyLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC10b29sYmFyLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtdG9vbGJhci10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG4kbWF0LXRvb2x0aXAtdGFyZ2V0LWhlaWdodDogMjJweDtcbiRtYXQtdG9vbHRpcC1mb250LXNpemU6IDEwcHg7XG4kbWF0LXRvb2x0aXAtdmVydGljYWwtcGFkZGluZzogKCRtYXQtdG9vbHRpcC10YXJnZXQtaGVpZ2h0IC0gJG1hdC10b29sdGlwLWZvbnQtc2l6ZSkgLyAyO1xuXG4kbWF0LXRvb2x0aXAtaGFuZHNldC10YXJnZXQtaGVpZ2h0OiAzMHB4O1xuJG1hdC10b29sdGlwLWhhbmRzZXQtZm9udC1zaXplOiAxNHB4O1xuJG1hdC10b29sdGlwLWhhbmRzZXQtdmVydGljYWwtcGFkZGluZzpcbiAgICAoJG1hdC10b29sdGlwLWhhbmRzZXQtdGFyZ2V0LWhlaWdodCAtICRtYXQtdG9vbHRpcC1oYW5kc2V0LWZvbnQtc2l6ZSkgLyAyO1xuXG5AbWl4aW4gbWF0LXRvb2x0aXAtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG5cbiAgLm1hdC10b29sdGlwIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIHRvb2x0aXAsIDAuOSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC10b29sdGlwLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LXRvb2x0aXAge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gICAgZm9udC1zaXplOiAkbWF0LXRvb2x0aXAtZm9udC1zaXplO1xuICAgIHBhZGRpbmctdG9wOiAkbWF0LXRvb2x0aXAtdmVydGljYWwtcGFkZGluZztcbiAgICBwYWRkaW5nLWJvdHRvbTogJG1hdC10b29sdGlwLXZlcnRpY2FsLXBhZGRpbmc7XG4gIH1cblxuICAubWF0LXRvb2x0aXAtaGFuZHNldCB7XG4gICAgZm9udC1zaXplOiAkbWF0LXRvb2x0aXAtaGFuZHNldC1mb250LXNpemU7XG4gICAgcGFkZGluZy10b3A6ICRtYXQtdG9vbHRpcC1oYW5kc2V0LXZlcnRpY2FsLXBhZGRpbmc7XG4gICAgcGFkZGluZy1ib3R0b206ICRtYXQtdG9vbHRpcC1oYW5kc2V0LXZlcnRpY2FsLXBhZGRpbmc7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtdG9vbHRpcC1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtdG9vbHRpcC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtdG9vbHRpcCcpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC10b29sdGlwLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdG9vbHRpcC1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXRvb2x0aXAtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtc25hY2stYmFyLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCRjb25maWcsIGlzLWRhcmspO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG5cbiAgLm1hdC1zbmFjay1iYXItY29udGFpbmVyIHtcbiAgICAvLyBVc2UgdGhlIHByaW1hcnkgdGV4dCBvbiB0aGUgZGFyayB0aGVtZSwgZXZlbiB0aG91Z2ggdGhlIGxpZ2h0ZXIgb25lIHVzZXNcbiAgICAvLyBhIHNlY29uZGFyeSwgYmVjYXVzZSB0aGUgY29udHJhc3Qgb24gdGhlIGxpZ2h0IHByaW1hcnkgdGV4dCBpcyBwb29yLlxuICAgIGNvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgJGRhcmstcHJpbWFyeS10ZXh0LCAkbGlnaHQtc2Vjb25kYXJ5LXRleHQpO1xuICAgIGJhY2tncm91bmQ6IGlmKCRpcy1kYXJrLXRoZW1lLCBtYXAtZ2V0KCRtYXQtZ3JleSwgNTApLCAjMzIzMjMyKTtcblxuICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLWVsZXZhdGlvbig2LCAkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiB7XG4gICAgY29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCBpbmhlcml0LCBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCkpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc25hY2stYmFyLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LXNpbXBsZS1zbmFja2JhciB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgICB9XG4gIH1cblxuICAubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24ge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogaW5oZXJpdDtcbiAgICAgIHNpemU6IGluaGVyaXQ7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gX21hdC1zbmFjay1iYXItZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LXNuYWNrLWJhci10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtc25hY2stYmFyJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXNuYWNrLWJhci1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXNuYWNrLWJhci1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXNuYWNrLWJhci10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4vLyBUaGVtZSBzdHlsZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHRoZSBmaWxsIGFwcGVhcmFuY2Ugb2YgdGhlIGZvcm0tZmllbGQuXG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1maWxsLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkY29uZmlnLCBpcy1kYXJrKTtcblxuICAkZmlsbC1iYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGJhc2UsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjEsIDAuMDQpKTtcbiAgJGZpbGwtZGlzYWJsZWQtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBiYXNlLCBpZigkaXMtZGFyay10aGVtZSwgMC4wNSwgMC4wMikpO1xuICAkdW5kZXJsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjUsIDAuNDIpKTtcbiAgJGxhYmVsLWRpc2FibGVkLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwge1xuICAgIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmaWxsLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmlsbC1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQge1xuICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgY29sb3I6ICRsYWJlbC1kaXNhYmxlZC1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZTo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFVzZWQgdG8gbWFrZSBpbnN0YW5jZXMgb2YgdGhlIF9tYXQtZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZyBtaXhpbiBuZWdsaWdpYmx5IGRpZmZlcmVudCxcbi8vIGFuZCBwcmV2ZW50IEdvb2dsZSdzIENTUyBPcHRpbWl6ZXIgZnJvbSBjb2xsYXBzaW5nIHRoZSBkZWNsYXJhdGlvbnMuIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2Ugc29tZVxuLy8gb2YgdGhlIHNlbGVjdG9ycyBjb250YWluIHBzZXVkby1jbGFzc2VzIG5vdCByZWNvZ25pemVkIGluIGFsbCBicm93c2Vycy4gSWYgYSBicm93c2VyIGVuY291bnRlcnNcbi8vIGFuIHVua25vd24gcHNldWRvLWNsYXNzIGl0IHdpbGwgZGlzY2FyZCB0aGUgZW50aXJlIHJ1bGUgc2V0LlxuJG1hdC1mb3JtLWZpZWxkLWZpbGwtZGVkdXBlOiAwO1xuXG4vLyBBcHBsaWVzIGEgZmxvYXRpbmcgbGFiZWwgYWJvdmUgdGhlIGZvcm0gZmllbGQgY29udHJvbCBpdHNlbGYuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWZpbGwtbGFiZWwtZmxvYXRpbmcoJGZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCkge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRpbmZpeC1tYXJnaW4tdG9wIC0gJGluZml4LXBhZGRpbmcgKyAkbWF0LWZvcm0tZmllbGQtZmlsbC1kZWR1cGUpXG4gICAgICAgICAgICAgc2NhbGUoJGZvbnQtc2NhbGUpO1xuICB3aWR0aDogMTAwJSAvICRmb250LXNjYWxlICsgJG1hdC1mb3JtLWZpZWxkLWZpbGwtZGVkdXBlO1xuXG4gICRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZTogJG1hdC1mb3JtLWZpZWxkLWZpbGwtZGVkdXBlICsgMC4wMDAwMSAhZ2xvYmFsO1xufVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtZmlsbC10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuICAvLyBUaGUgYW1vdW50IHRvIHNjYWxlIHRoZSBmb250IGZvciB0aGUgZmxvYXRpbmcgbGFiZWwgYW5kIHN1YnNjcmlwdC5cbiAgJHN1YnNjcmlwdC1mb250LXNjYWxlOiAwLjc1O1xuICAvLyBUaGUgcGFkZGluZyBvbiB0b3Agb2YgdGhlIGluZml4LlxuICAkaW5maXgtcGFkZGluZy10b3A6IDAuMjVlbTtcbiAgLy8gVGhlIHBhZGRpbmcgYmVsb3cgdGhlIGluZml4LlxuICAkaW5maXgtcGFkZGluZy1ib3R0b206IDAuNzVlbTtcbiAgLy8gVGhlIG1hcmdpbiBhcHBsaWVkIHRvIHRoZSBmb3JtLWZpZWxkLWluZml4IHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBmbG9hdGluZyBsYWJlbC5cbiAgJGluZml4LW1hcmdpbi10b3A6IDFlbSAqICRsaW5lLWhlaWdodCAqICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcbiAgLy8gVGhlIGFtb3VudCB3ZSBvZmZzZXQgdGhlIGxhYmVsIGZyb20gdGhlIGlucHV0IHRleHQgaW4gdGhlIGZpbGwgYXBwZWFyYW5jZS5cbiAgJGZpbGwtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQ6IC0wLjVlbTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIHtcbiAgICAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgICAgcGFkZGluZzogJGluZml4LXBhZGRpbmctdG9wIDAgJGluZml4LXBhZGRpbmctYm90dG9tIDA7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIHRvcDogJGluZml4LW1hcmdpbi10b3AgKyAkaW5maXgtcGFkZGluZy10b3A7XG4gICAgICBtYXJnaW4tdG9wOiAkZmlsbC1hcHBlYXJhbmNlLWxhYmVsLW9mZnNldDtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCB7XG4gICAgICAmLm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gICAgICAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1maWxsLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmctdG9wICsgJGZpbGwtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQsXG4gICAgICAgICAgICAgICAgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuXG4gICAgICAvLyBTZXJ2ZXItc2lkZSByZW5kZXJlZCBtYXRJbnB1dCB3aXRoIGEgbGFiZWwgYXR0cmlidXRlIGJ1dCBsYWJlbCBub3Qgc2hvd25cbiAgICAgIC8vICh1c2VkIGFzIGEgcHVyZSBDU1Mgc3RhbmQtaW4gZm9yIG1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCkuXG4gICAgICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlclxuICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWZpbGwtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZy10b3AgKyAkZmlsbC1hcHBlYXJhbmNlLWxhYmVsLW9mZnNldCxcbiAgICAgICAgICAgICAgICAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcHJpdmF0ZS1mb3JtLWZpZWxkLWZpbGwtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtZmlsbC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtZm9ybS1maWVsZC1maWxsJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtZmlsbC1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1mb3JtLWZpZWxkLWZpbGwtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWZpbGwtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cbi8vIFRoZW1lIHN0eWxlcyB0aGF0IG9ubHkgYXBwbHkgdG8gdGhlIGxlZ2FjeSBhcHBlYXJhbmNlIG9mIHRoZSBmb3JtLWZpZWxkLlxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtbGVnYWN5LWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkY29uZmlnLCBpcy1kYXJrKTtcblxuICAkbGFiZWwtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAkdW5kZXJsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjcsIDAuNDIpKTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kge1xuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtaGludCB7XG4gICAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY29udHJvbC1kaXNhYmxlZC11bmRlcmxpbmUoJHVuZGVybGluZS1jb2xvcik7XG4gICAgfVxuICB9XG59XG5cbi8vIFVzZWQgdG8gbWFrZSBpbnN0YW5jZXMgb2YgdGhlIF9tYXQtZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZyBtaXhpbiBuZWdsaWdpYmx5IGRpZmZlcmVudCxcbi8vIGFuZCBwcmV2ZW50IEdvb2dsZSdzIENTUyBPcHRpbWl6ZXIgZnJvbSBjb2xsYXBzaW5nIHRoZSBkZWNsYXJhdGlvbnMuIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2Ugc29tZVxuLy8gb2YgdGhlIHNlbGVjdG9ycyBjb250YWluIHBzZXVkby1jbGFzc2VzIG5vdCByZWNvZ25pemVkIGluIGFsbCBicm93c2Vycy4gSWYgYSBicm93c2VyIGVuY291bnRlcnNcbi8vIGFuIHVua25vd24gcHNldWRvLWNsYXNzIGl0IHdpbGwgZGlzY2FyZCB0aGUgZW50aXJlIHJ1bGUgc2V0LlxuJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGU6IDA7XG5cbi8vIEFwcGxpZXMgYSBmbG9hdGluZyBsYWJlbCBhYm92ZSB0aGUgZm9ybSBmaWVsZCBjb250cm9sIGl0c2VsZi5cbkBtaXhpbiBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgLy8gV2UgdXNlIHBlcnNwZWN0aXZlIHRvIGZpeCB0aGUgdGV4dCBibHVycmluZXNzIGFzIGRlc2NyaWJlZCBoZXJlOlxuICAvLyBodHRwOi8vd3d3LnVzZXJhZ2VudG1hbi5jb20vYmxvZy8yMDE0LzA1LzA0L2ZpeGluZy10eXBvZ3JhcGh5LWluc2lkZS1vZi0yLWQtY3NzLXRyYW5zZm9ybXMvXG4gIC8vIFRoaXMgcmVzdWx0cyBpbiBhIHNtYWxsIGppdHRlciBhZnRlciB0aGUgbGFiZWwgZmxvYXRzIG9uIEZpcmVmb3gsIHdoaWNoIHRoZVxuICAvLyB0cmFuc2xhdGVaIGZpeGVzLlxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRpbmZpeC1tYXJnaW4tdG9wIC0gJGluZml4LXBhZGRpbmcpIHNjYWxlKCRmb250LXNjYWxlKSBwZXJzcGVjdGl2ZSgxMDBweClcbiAgdHJhbnNsYXRlWigwLjAwMXB4ICsgJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGUpO1xuICAvLyBUaGUgdHJpY2tzIGFib3ZlIHVzZWQgdG8gc21vb3RoIG91dCB0aGUgYW5pbWF0aW9uIG9uIGNocm9tZSBhbmQgZmlyZWZveCBhY3R1YWxseSBtYWtlIHRoaW5nc1xuICAvLyB3b3JzZSBvbiBJRSwgc28gd2UgZG9uJ3QgaW5jbHVkZSB0aGVtIGluIHRoZSBJRSB2ZXJzaW9uLlxuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGUpXG4gICAgICAgICAgICAgICAgICBzY2FsZSgkZm9udC1zY2FsZSk7XG5cbiAgd2lkdGg6IDEwMCUgLyAkZm9udC1zY2FsZSArICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlO1xuXG4gICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlOiAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZSArIDAuMDAwMDEgIWdsb2JhbDtcbn1cblxuLy8gU2FtZSBhcyBtaXhpbiBhYm92ZSwgYnV0IG9taXRzIHRoZSB0cmFuc2xhdGVaIGZvciBwcmludGluZyBwdXJwb3Nlcy5cbkBtaXhpbiBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nLXByaW50KCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgLy8gVGhpcyByZXN1bHRzIGluIGEgc21hbGwgaml0dGVyIGFmdGVyIHRoZSBsYWJlbCBmbG9hdHMgb24gRmlyZWZveCwgd2hpY2ggdGhlXG4gIC8vIHRyYW5zbGF0ZVogZml4ZXMuXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJGluZml4LW1hcmdpbi10b3AgLSAkaW5maXgtcGFkZGluZyArICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlKVxuICAgICAgICAgICAgICAgICAgc2NhbGUoJGZvbnQtc2NhbGUpO1xuICAvLyBUaGUgdHJpY2tzIGFib3ZlIHVzZWQgdG8gc21vb3RoIG91dCB0aGUgYW5pbWF0aW9uIG9uIGNocm9tZSBhbmQgZmlyZWZveCBhY3R1YWxseSBtYWtlIHRoaW5nc1xuICAvLyB3b3JzZSBvbiBJRSwgc28gd2UgZG9uJ3QgaW5jbHVkZSB0aGVtIGluIHRoZSBJRSB2ZXJzaW9uLlxuICAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZTogJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1sZWdhY3ktdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC8vIFRoZSB1bml0LWxlc3MgbGluZS1oZWlnaHQgZnJvbSB0aGUgZm9udCBjb25maWcuXG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGlucHV0KTtcbiAgLy8gVGhlIGFtb3VudCB0byBzY2FsZSB0aGUgZm9udCBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsIGFuZCBzdWJzY3JpcHQuXG4gICRzdWJzY3JpcHQtZm9udC1zY2FsZTogMC43NTtcbiAgLy8gVGhlIGFtb3VudCBvZiBzcGFjZSBiZXR3ZWVuIHRoZSB0b3Agb2YgdGhlIGxpbmUgYW5kIHRoZSB0b3Agb2YgdGhlIGFjdHVhbCB0ZXh0XG4gIC8vIChhcyBhIGZyYWN0aW9uIG9mIHRoZSBmb250LXNpemUpLlxuICAkbGluZS1zcGFjaW5nOiAoJGxpbmUtaGVpZ2h0IC0gMSkgLyAyO1xuICAvLyBUaGUgcGFkZGluZyBvbiB0aGUgaW5maXguIE1vY2tzIHNob3cgaGFsZiBvZiB0aGUgdGV4dCBzaXplLCBidXQgc2VlbSB0byBtZWFzdXJlIGZyb20gdGhlIGVkZ2VcbiAgLy8gb2YgdGhlIHRleHQgaXRzZWxmLCBub3QgdGhlIGVkZ2Ugb2YgdGhlIGxpbmU7IHRoZXJlZm9yZSB3ZSBzdWJ0cmFjdCBvZmYgdGhlIGxpbmUgc3BhY2luZy5cbiAgJGluZml4LXBhZGRpbmc6IDAuNWVtIC0gJGxpbmUtc3BhY2luZztcbiAgLy8gVGhlIG1hcmdpbiBhcHBsaWVkIHRvIHRoZSBmb3JtLWZpZWxkLWluZml4IHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBmbG9hdGluZyBsYWJlbC5cbiAgJGluZml4LW1hcmdpbi10b3A6IDFlbSAqICRsaW5lLWhlaWdodCAqICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcbiAgLy8gVGhlIHNwYWNlIGJldHdlZW4gdGhlIGJvdHRvbSBvZiB0aGUgLm1hdC1mb3JtLWZpZWxkLWZsZXggYXJlYSBhbmQgdGhlIHN1YnNjcmlwdCB3cmFwcGVyLlxuICAvLyBNb2NrcyBzaG93IGhhbGYgb2YgdGhlIHRleHQgc2l6ZSwgYnV0IHRoaXMgbWFyZ2luIGlzIGFwcGxpZWQgdG8gYW4gZWxlbWVudCB3aXRoIHRoZSBzdWJzY3JpcHRcbiAgLy8gdGV4dCBmb250IHNpemUsIHNvIHdlIG5lZWQgdG8gZGl2aWRlIGJ5IHRoZSBzY2FsZSBmYWN0b3IgdG8gbWFrZSBpdCBoYWxmIG9mIHRoZSBvcmlnaW5hbCB0ZXh0XG4gIC8vIHNpemUuIFdlIGFnYWluIG5lZWQgdG8gc3VidHJhY3Qgb2ZmIHRoZSBsaW5lIHNwYWNpbmcgc2luY2UgdGhlIG1vY2tzIG1lYXN1cmUgdG8gdGhlIGVkZ2Ugb2YgdGhlXG4gIC8vIHRleHQsIG5vdCB0aGUgIGVkZ2Ugb2YgdGhlIGxpbmUuXG4gICRzdWJzY3JpcHQtbWFyZ2luLXRvcDogMC41ZW0gLyAkc3Vic2NyaXB0LWZvbnQtc2NhbGUgLSAoJGxpbmUtc3BhY2luZyAqIDIpO1xuICAvLyBUaGUgcGFkZGluZyBhcHBsaWVkIHRvIHRoZSBmb3JtLWZpZWxkLXdyYXBwZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIHN1YnNjcmlwdCwgc2luY2UgaXQnc1xuICAvLyBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQuIFRoaXMgaXMgYSBjb21iaW5hdGlvbiBvZiB0aGUgc3Vic2NyaXB0J3MgbWFyZ2luIGFuZCBsaW5lLWhlaWdodCwgYnV0IHdlXG4gIC8vIG5lZWQgdG8gbXVsdGlwbHkgYnkgdGhlIHN1YnNjcmlwdCBmb250IHNjYWxlIGZhY3RvciBzaW5jZSB0aGUgd3JhcHBlciBoYXMgYSBsYXJnZXIgZm9udCBzaXplLlxuICAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTogKCRzdWJzY3JpcHQtbWFyZ2luLXRvcCArICRsaW5lLWhlaWdodCkgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IHtcbiAgICAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogJHdyYXBwZXItcGFkZGluZy1ib3R0b207XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICAgIHBhZGRpbmc6ICRpbmZpeC1wYWRkaW5nIDA7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQge1xuICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMCB3aWxsIHJlbHkgb24gQXV0b2ZpbGxNb25pdG9yIGluc3RlYWQuXG4gICAgICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbDotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuXG4gICAgICAvLyBTZXJ2ZXItc2lkZSByZW5kZXJlZCBtYXRJbnB1dCB3aXRoIGEgbGFiZWwgYXR0cmlidXRlIGJ1dCBsYWJlbCBub3Qgc2hvd25cbiAgICAgIC8vICh1c2VkIGFzIGEgcHVyZSBDU1Mgc3RhbmQtaW4gZm9yIG1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCkuXG4gICAgICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlclxuICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIHRvcDogJGluZml4LW1hcmdpbi10b3AgKyAkaW5maXgtcGFkZGluZztcbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICAgIC8vIFdlIHdhbnQgdGhlIHVuZGVybGluZSB0byBzdGFydCBhdCB0aGUgZW5kIG9mIHRoZSBjb250ZW50IGJveCwgbm90IHRoZSBwYWRkaW5nIGJveCxcbiAgICAgIC8vIHNvIHdlIG1vdmUgaXQgdXAgYnkgdGhlIHBhZGRpbmcgYW1vdW50LlxuICAgICAgYm90dG9tOiAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTtcbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXIge1xuICAgICAgbWFyZ2luLXRvcDogJHN1YnNjcmlwdC1tYXJnaW4tdG9wO1xuXG4gICAgICAvLyBXZSB3YW50IHRoZSBzdWJzY3JpcHQgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgICAvLyBzbyB3ZSBtb3ZlIGl0IHVwIGJ5IHRoZSBwYWRkaW5nIGFtb3VudCAoYWRqdXN0ZWQgZm9yIHRoZSBzbWFsbGVyIGZvbnQgc2l6ZSk7XG4gICAgICB0b3A6IGNhbGMoMTAwJSAtICN7JHdyYXBwZXItcGFkZGluZy1ib3R0b20gLyAkc3Vic2NyaXB0LWZvbnQtc2NhbGV9KTtcbiAgICB9XG4gIH1cblxuICAvLyB0cmFuc2xhdGVaIGNhdXNlcyB0aGUgbGFiZWwgdG8gbm90IGFwcGVhciB3aGlsZSBwcmludGluZywgc28gd2Ugb3ZlcnJpZGUgaXQgdG8gbm90XG4gIC8vIGFwcGx5IHRyYW5zbGF0ZVogd2hpbGUgcHJpbnRpbmdcbiAgQG1lZGlhIHByaW50IHtcbiAgICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kge1xuICAgICAgJi5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQge1xuICAgICAgICAmLm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gICAgICAgIC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nLXByaW50KFxuICAgICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMCB3aWxsIHJlbHkgb24gQXV0b2ZpbGxNb25pdG9yIGluc3RlYWQuXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlclxuICAgICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmctcHJpbnQoXG4gICAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXJ2ZXItc2lkZSByZW5kZXJlZCBtYXRJbnB1dCB3aXRoIGEgbGFiZWwgYXR0cmlidXRlIGJ1dCBsYWJlbCBub3Qgc2hvd25cbiAgICAgICAgLy8gKHVzZWQgYXMgYSBwdXJlIENTUyBzdGFuZC1pbiBmb3IgbWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0KS5cbiAgICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nLXByaW50KFxuICAgICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcHJpdmF0ZS1mb3JtLWZpZWxkLWxlZ2FjeS1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1sZWdhY3ktdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWZvcm0tZmllbGQtbGVnYWN5Jykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtbGVnYWN5LWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLWZvcm0tZmllbGQtbGVnYWN5LWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1sZWdhY3ktdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cbi8vIFRoZW1lIHN0eWxlcyB0aGF0IG9ubHkgYXBwbHkgdG8gdGhlIG91dGxpbmUgYXBwZWFyYW5jZSBvZiB0aGUgZm9ybS1maWVsZC5cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkY29uZmlnLCBpcy1kYXJrKTtcblxuICAkbGFiZWwtZGlzYWJsZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gICRvdXRsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjMsIDAuMTIpKTtcbiAgJG91dGxpbmUtY29sb3ItaG92ZXI6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDEsIDAuODcpKTtcbiAgJG91dGxpbmUtY29sb3ItcHJpbWFyeTogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgJG91dGxpbmUtY29sb3ItYWNjZW50OiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICRvdXRsaW5lLWNvbG9yLXdhcm46IG1hdC1jb2xvcigkd2Fybik7XG4gICRvdXRsaW5lLWNvbG9yLWRpc2FibGVkOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjE1LCAwLjA2KSk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUge1xuICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci1ob3ZlcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb2N1c2VkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLXByaW1hcnk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWFjY2VudCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gICAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci1hY2NlbnQ7XG4gICAgICB9XG5cbiAgICAgICYubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICAgICAgICBjb2xvcjogJG91dGxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDbGFzcyByZXBlYXRlZCBzbyB0aGF0IHJ1bGUgaXMgc3BlY2lmaWMgZW5vdWdoIHRvIG92ZXJyaWRlIGZvY3VzZWQgYWNjZW50IGNvbG9yIGNhc2UuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQge1xuICAgICAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICAgICAgICBjb2xvcjogJG91dGxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkbGFiZWwtZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLWRpc2FibGVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWRlZHVwZTogMDtcblxuLy8gQXBwbGllcyBhIGZsb2F0aW5nIGxhYmVsIGFib3ZlIHRoZSBmb3JtIGZpZWxkIGNvbnRyb2wgaXRzZWxmLlxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVkdXBlKVxuICBzY2FsZSgkZm9udC1zY2FsZSk7XG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZWR1cGU7XG5cbiAgJG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVkdXBlOiAkbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBwYWRkaW5nIGFib3ZlIGFuZCBiZWxvdyB0aGUgaW5maXguXG4gICRpbmZpeC1wYWRkaW5nOiAxZW07XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBib3R0b20gb2YgdGhlIC5tYXQtZm9ybS1maWVsZC1mbGV4IGFyZWEgYW5kIHRoZSBzdWJzY3JpcHQgd3JhcHBlci5cbiAgLy8gTW9ja3Mgc2hvdyBoYWxmIG9mIHRoZSB0ZXh0IHNpemUsIGJ1dCB0aGlzIG1hcmdpbiBpcyBhcHBsaWVkIHRvIGFuIGVsZW1lbnQgd2l0aCB0aGUgc3Vic2NyaXB0XG4gIC8vIHRleHQgZm9udCBzaXplLCBzbyB3ZSBuZWVkIHRvIGRpdmlkZSBieSB0aGUgc2NhbGUgZmFjdG9yIHRvIG1ha2UgaXQgaGFsZiBvZiB0aGUgb3JpZ2luYWwgdGV4dFxuICAvLyBzaXplLlxuICAkc3Vic2NyaXB0LW1hcmdpbi10b3A6IDAuNWVtIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBUaGUgcGFkZGluZyBhcHBsaWVkIHRvIHRoZSBmb3JtLWZpZWxkLXdyYXBwZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIHN1YnNjcmlwdCwgc2luY2UgaXQnc1xuICAvLyBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQuIFRoaXMgaXMgYSBjb21iaW5hdGlvbiBvZiB0aGUgc3Vic2NyaXB0J3MgbWFyZ2luIGFuZCBsaW5lLWhlaWdodCwgYnV0IHdlXG4gIC8vIG5lZWQgdG8gbXVsdGlwbHkgYnkgdGhlIHN1YnNjcmlwdCBmb250IHNjYWxlIGZhY3RvciBzaW5jZSB0aGUgd3JhcHBlciBoYXMgYSBsYXJnZXIgZm9udCBzaXplLlxuICAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTogKCRzdWJzY3JpcHQtbWFyZ2luLXRvcCArICRsaW5lLWhlaWdodCkgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBhbW91bnQgd2Ugb2Zmc2V0IHRoZSBsYWJlbCBmcm9tIHRoZSBpbnB1dCB0ZXh0IGluIHRoZSBvdXRsaW5lIGFwcGVhcmFuY2UuXG4gICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0OiAtMC4yNWVtO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUge1xuICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICBwYWRkaW5nOiAkaW5maXgtcGFkZGluZyAwICRpbmZpeC1wYWRkaW5nIDA7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIHRvcDogJGluZml4LW1hcmdpbi10b3AgKyAkaW5maXgtcGFkZGluZztcbiAgICAgIG1hcmdpbi10b3A6ICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0O1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLW91dGxpbmUtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZyArICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcgKyAkb3V0bGluZS1hcHBlYXJhbmNlLWxhYmVsLW9mZnNldCxcbiAgICAgICAgICAgICAgICAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcHJpdmF0ZS1mb3JtLWZpZWxkLW91dGxpbmUtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtZm9ybS1maWVsZC1vdXRsaW5lJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtb3V0bGluZS1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1mb3JtLWZpZWxkLW91dGxpbmUtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cblxuLy8gVGhlbWUgc3R5bGVzIHRoYXQgb25seSBhcHBseSB0byB0aGUgc3RhbmRhcmQgYXBwZWFyYW5jZSBvZiB0aGUgZm9ybS1maWVsZC5cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLXN0YW5kYXJkLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkY29uZmlnLCBpcy1kYXJrKTtcblxuICAkdW5kZXJsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjcsIDAuNDIpKTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jb250cm9sLWRpc2FibGVkLXVuZGVybGluZSgkdW5kZXJsaW5lLWNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLXN0YW5kYXJkLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1wcml2YXRlLWZvcm0tZmllbGQtc3RhbmRhcmQtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtc3RhbmRhcmQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWZvcm0tZmllbGQtc3RhbmRhcmQnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1mb3JtLWZpZWxkLXN0YW5kYXJkLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBDb2xvciBzdHlsZXMgdGhhdCBhcHBseSB0byBhbGwgYXBwZWFyYW5jZXMgb2YgdGhlIGZvcm0tZmllbGQuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJGNvbmZpZywgaXMtZGFyayk7XG5cbiAgLy8gTGFiZWwgY29sb3JzLiBSZXF1aXJlZCBpcyB1c2VkIGZvciB0aGUgYCpgIHN0YXIgc2hvd24gaW4gdGhlIGxhYmVsLlxuICAkbGFiZWwtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjcsIDAuNikpO1xuICAkZm9jdXNlZC1sYWJlbC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCB0ZXh0KTtcbiAgJHJlcXVpcmVkLWxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG5cbiAgLy8gVW5kZXJsaW5lIGNvbG9ycy5cbiAgJHVuZGVybGluZS1jb2xvci1iYXNlOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAxLCAwLjg3KSk7XG4gICR1bmRlcmxpbmUtY29sb3ItYWNjZW50OiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gICR1bmRlcmxpbmUtY29sb3Itd2FybjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgJHVuZGVybGluZS1mb2N1c2VkLWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgY29sb3I6ICRsYWJlbC1jb2xvcjtcbiAgfVxuXG4gIC5tYXQtaGludCB7XG4gICAgY29sb3I6ICRsYWJlbC1jb2xvcjtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIGNvbG9yOiAkZm9jdXNlZC1sYWJlbC1jb2xvcjtcblxuICAgICYubWF0LWFjY2VudCB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci1hY2NlbnQ7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIHtcbiAgICBjb2xvcjogJHJlcXVpcmVkLWxhYmVsLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvci1iYXNlO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIHtcbiAgICAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR1bmRlcmxpbmUtZm9jdXNlZC1jb2xvcjtcblxuICAgICAgJi5tYXQtYWNjZW50IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvci1hY2NlbnQ7XG4gICAgICB9XG5cbiAgICAgICYubWF0LXdhcm4ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKSB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1mb2N1c2VkLWNvbG9yO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWFjY2VudDtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgICB9XG4gIH1cblxuICAvLyBTdHlsaW5nIGZvciB0aGUgZXJyb3Igc3RhdGUgb2YgdGhlIGZvcm0gZmllbGQuIE5vdGUgdGhhdCB3aGlsZSB0aGUgc2FtZSBjYW4gYmVcbiAgLy8gYWNoaWV2ZWQgd2l0aCB0aGUgbmctKiBjbGFzc2VzLCB3ZSB1c2UgdGhpcyBhcHByb2FjaCBpbiBvcmRlciB0byBlbnN1cmUgdGhhdCB0aGUgc2FtZVxuICAvLyBsb2dpYyBpcyB1c2VkIHRvIHN0eWxlIHRoZSBlcnJvciBzdGF0ZSBhbmQgdG8gc2hvdyB0aGUgZXJyb3IgbWVzc2FnZXMuXG4gIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIHtcbiAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcblxuICAgICAgJi5tYXQtYWNjZW50LFxuICAgICAgLm1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlciB7XG4gICAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbiAgICAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC1hY2NlbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZXJyb3Ige1xuICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gIH1cblxuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1sZWdhY3ktY29sb3IoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXN0YW5kYXJkLWNvbG9yKCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1maWxsLWNvbG9yKCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWNvbG9yKCRjb25maWcpO1xufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1kZWR1cGU6IDA7XG5cbi8vIEFwcGxpZXMgYSBmbG9hdGluZyBsYWJlbCBhYm92ZSB0aGUgZm9ybSBmaWVsZCBjb250cm9sIGl0c2VsZi5cbkBtaXhpbiBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcoJGZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCkge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRpbmZpeC1tYXJnaW4tdG9wIC0gJGluZml4LXBhZGRpbmcgKyAkbWF0LWZvcm0tZmllbGQtZGVkdXBlKVxuICAgICAgICAgICAgIHNjYWxlKCRmb250LXNjYWxlKTtcbiAgd2lkdGg6IDEwMCUgLyAkZm9udC1zY2FsZSArICRtYXQtZm9ybS1maWVsZC1kZWR1cGU7XG5cbiAgJG1hdC1mb3JtLWZpZWxkLWRlZHVwZTogJG1hdC1mb3JtLWZpZWxkLWRlZHVwZSArIDAuMDAwMDEgIWdsb2JhbDtcbn1cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG5cbiAgLy8gVGhlIGFtb3VudCB0byBzY2FsZSB0aGUgZm9udCBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsIGFuZCBzdWJzY3JpcHQuXG4gICRzdWJzY3JpcHQtZm9udC1zY2FsZTogMC43NTtcbiAgLy8gVGhlIGFtb3VudCB0byBzY2FsZSB0aGUgZm9udCBmb3IgdGhlIHByZWZpeCBhbmQgc3VmZml4IGljb25zLlxuICAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2NhbGU6IDEuNTtcblxuICAvLyBUaGUgcGFkZGluZyBvbiB0aGUgaW5maXguIE1vY2tzIHNob3cgaGFsZiBvZiB0aGUgdGV4dCBzaXplLlxuICAkaW5maXgtcGFkZGluZzogMC41ZW07XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIEZvbnQgc2l6ZSB0byB1c2UgZm9yIHRoZSBsYWJlbCBhbmQgc3Vic2NyaXB0IHRleHQuXG4gICRzdWJzY3JpcHQtZm9udC1zaXplOiAkc3Vic2NyaXB0LWZvbnQtc2NhbGUgKiAxMDAlO1xuICAvLyBGb250IHNpemUgdG8gdXNlIGZvciB0aGUgZm9yIHRoZSBwcmVmaXggYW5kIHN1ZmZpeCBpY29ucy5cbiAgJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNpemU6ICRwcmVmaXgtc3VmZml4LWljb24tZm9udC1zY2FsZSAqIDEwMCU7XG4gIC8vIFRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBib3R0b20gb2YgdGhlIC5tYXQtZm9ybS1maWVsZC1mbGV4IGFyZWEgYW5kIHRoZSBzdWJzY3JpcHQgd3JhcHBlci5cbiAgLy8gTW9ja3Mgc2hvdyBoYWxmIG9mIHRoZSB0ZXh0IHNpemUsIGJ1dCB0aGlzIG1hcmdpbiBpcyBhcHBsaWVkIHRvIGFuIGVsZW1lbnQgd2l0aCB0aGUgc3Vic2NyaXB0XG4gIC8vIHRleHQgZm9udCBzaXplLCBzbyB3ZSBuZWVkIHRvIGRpdmlkZSBieSB0aGUgc2NhbGUgZmFjdG9yIHRvIG1ha2UgaXQgaGFsZiBvZiB0aGUgb3JpZ2luYWwgdGV4dFxuICAvLyBzaXplLlxuICAkc3Vic2NyaXB0LW1hcmdpbi10b3A6IDAuNWVtIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBUaGUgcGFkZGluZyBhcHBsaWVkIHRvIHRoZSBmb3JtLWZpZWxkLXdyYXBwZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIHN1YnNjcmlwdCwgc2luY2UgaXQnc1xuICAvLyBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQuIFRoaXMgaXMgYSBjb21iaW5hdGlvbiBvZiB0aGUgc3Vic2NyaXB0J3MgbWFyZ2luIGFuZCBsaW5lLWhlaWdodCwgYnV0IHdlXG4gIC8vIG5lZWQgdG8gbXVsdGlwbHkgYnkgdGhlIHN1YnNjcmlwdCBmb250IHNjYWxlIGZhY3RvciBzaW5jZSB0aGUgd3JhcHBlciBoYXMgYSBsYXJnZXIgZm9udCBzaXplLlxuICAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTogKCRzdWJzY3JpcHQtbWFyZ2luLXRvcCArICRsaW5lLWhlaWdodCkgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG5cbiAgLm1hdC1mb3JtLWZpZWxkIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgaW5wdXQpO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1wcmVmaXgsXG4gIC5tYXQtZm9ybS1maWVsZC1zdWZmaXgge1xuICAgIC8vIEFsbG93IGljb25zIGluIGEgcHJlZml4IG9yIHN1ZmZpeCB0byBhZGFwdCB0byB0aGUgY29ycmVjdCBzaXplLlxuICAgIC5tYXQtaWNvbiB7XG4gICAgICBmb250LXNpemU6ICRwcmVmaXgtc3VmZml4LWljb24tZm9udC1zaXplO1xuICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgICB9XG5cbiAgICAvLyBBbGxvdyBpY29uIGJ1dHRvbnMgaW4gYSBwcmVmaXggb3Igc3VmZml4IHRvIGFkYXB0IHRvIHRoZSBjb3JyZWN0IHNpemUuXG4gICAgLm1hdC1pY29uLWJ1dHRvbiB7XG4gICAgICBoZWlnaHQ6ICRwcmVmaXgtc3VmZml4LWljb24tZm9udC1zY2FsZSAqIDFlbTtcbiAgICAgIHdpZHRoOiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2NhbGUgKiAxZW07XG5cbiAgICAgIC5tYXQtaWNvbiB7XG4gICAgICAgIGhlaWdodDogJGxpbmUtaGVpZ2h0ICogMWVtO1xuICAgICAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgcGFkZGluZzogJGluZml4LXBhZGRpbmcgMDtcbiAgICAvLyBUaHJvd3Mgb2ZmIHRoZSBiYXNlbGluZSBpZiB3ZSBkbyBpdCBhcyBhIHJlYWwgbWFyZ2luLCBzbyB3ZSBkbyBpdCBhcyBhIGJvcmRlciBpbnN0ZWFkLlxuICAgIGJvcmRlci10b3A6ICRpbmZpeC1tYXJnaW4tdG9wIHNvbGlkIHRyYW5zcGFyZW50O1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCB7XG4gICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAgIC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgIH1cblxuICAgIC8vIFNlcnZlci1zaWRlIHJlbmRlcmVkIG1hdElucHV0IHdpdGggYSBsYWJlbCBhdHRyaWJ1dGUgYnV0IGxhYmVsIG5vdCBzaG93blxuICAgIC8vICh1c2VkIGFzIGEgcHVyZSBDU1Mgc3RhbmQtaW4gZm9yIG1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCkuXG4gICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgICB0b3A6IC0kaW5maXgtbWFyZ2luLXRvcDtcbiAgICBwYWRkaW5nLXRvcDogJGluZml4LW1hcmdpbi10b3A7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHRvcDogJGluZml4LW1hcmdpbi10b3AgKyAkaW5maXgtcGFkZGluZztcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgIC8vIFdlIHdhbnQgdGhlIHVuZGVybGluZSB0byBzdGFydCBhdCB0aGUgZW5kIG9mIHRoZSBjb250ZW50IGJveCwgbm90IHRoZSBwYWRkaW5nIGJveCxcbiAgICAvLyBzbyB3ZSBtb3ZlIGl0IHVwIGJ5IHRoZSBwYWRkaW5nIGFtb3VudC5cbiAgICBib3R0b206ICR3cmFwcGVyLXBhZGRpbmctYm90dG9tO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgICBmb250LXNpemU6ICRzdWJzY3JpcHQtZm9udC1zaXplO1xuICAgIG1hcmdpbi10b3A6ICRzdWJzY3JpcHQtbWFyZ2luLXRvcDtcblxuICAgIC8vIFdlIHdhbnQgdGhlIHN1YnNjcmlwdCB0byBzdGFydCBhdCB0aGUgZW5kIG9mIHRoZSBjb250ZW50IGJveCwgbm90IHRoZSBwYWRkaW5nIGJveCxcbiAgICAvLyBzbyB3ZSBtb3ZlIGl0IHVwIGJ5IHRoZSBwYWRkaW5nIGFtb3VudCAoYWRqdXN0ZWQgZm9yIHRoZSBzbWFsbGVyIGZvbnQgc2l6ZSk7XG4gICAgdG9wOiBjYWxjKDEwMCUgLSAjeyR3cmFwcGVyLXBhZGRpbmctYm90dG9tIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlfSk7XG4gIH1cblxuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1sZWdhY3ktdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtc3RhbmRhcmQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtZmlsbC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGRlbnNpdHktc2NhbGU6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWZvcm0tZmllbGQtbGVnYWN5LWRlbnNpdHkoJGRlbnNpdHktc2NhbGUpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1mb3JtLWZpZWxkLXN0YW5kYXJkLWRlbnNpdHkoJGRlbnNpdHktc2NhbGUpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1mb3JtLWZpZWxkLWZpbGwtZGVuc2l0eSgkZGVuc2l0eS1zY2FsZSk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWZvcm0tZmllbGQtb3V0bGluZS1kZW5zaXR5KCRkZW5zaXR5LXNjYWxlKTtcbn1cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1mb3JtLWZpZWxkJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbiRtYXQtdHJlZS1ub2RlLWhlaWdodDogNDhweCAhZGVmYXVsdDtcbi8vIE1pbmltdW0gaGVpZ2h0IGZvciB0cmVlIG5vZGVzIGluIGhpZ2hlc3QgZGVuc2l0eSBpcyBkaWZmaWN1bHQgdG8gZGV0ZXJtaW5lIGFzXG4vLyBkZXZlbG9wZXJzIGNhbiBkaXNwbGF5IGFyYml0cmFyeSBjb250ZW50LiBXZSB1c2UgYSBtaW5pbXVtIGhlaWdodCB3aGljaCBlbnN1cmVzXG4vLyB0aGF0IGNvbW1vbiBjb250ZW50IHBsYWNlZCBpbiB0cmVlIG5vZGVzIGRvZXMgbm90IGV4Y2VlZCAoZS5nLiBpY29ucywgY2hlY2tib3hlcykuXG4kbWF0LXRyZWUtbm9kZS1taW5pbXVtLWhlaWdodDogMjRweCAhZGVmYXVsdDtcbiRtYXQtdHJlZS1ub2RlLW1heGltdW0taGVpZ2h0OiAkbWF0LXRyZWUtbm9kZS1oZWlnaHQgIWRlZmF1bHQ7XG5cbiRtYXQtdHJlZS1kZW5zaXR5LWNvbmZpZzogKFxuICBoZWlnaHQ6IChcbiAgICBkZWZhdWx0OiAkbWF0LXRyZWUtbm9kZS1oZWlnaHQsXG4gICAgbWF4aW11bTogJG1hdC10cmVlLW5vZGUtbWF4aW11bS1oZWlnaHQsXG4gICAgbWluaW11bTogJG1hdC10cmVlLW5vZGUtbWluaW11bS1oZWlnaHQsXG4gIClcbikgIWRlZmF1bHQ7XG5cblxuQG1peGluIG1hdC10cmVlLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LXRyZWUge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2NhcmQnKTtcbiAgfVxuXG4gIC5tYXQtdHJlZS1ub2RlLFxuICAubWF0LW5lc3RlZC10cmVlLW5vZGUge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtdHJlZS10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC10cmVlIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC10cmVlLW5vZGUsXG4gIC5tYXQtbmVzdGVkLXRyZWUtbm9kZSB7XG4gICAgZm9udC13ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpO1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtdHJlZS1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGRlbnNpdHktc2NhbGU6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRoZWlnaHQ6IG1hdC1wcml2YXRlLWRlbnNpdHktcHJvcC12YWx1ZSgkbWF0LXRyZWUtZGVuc2l0eS1jb25maWcsICRkZW5zaXR5LXNjYWxlLCBoZWlnaHQpO1xuXG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWRlbnNpdHktbGVnYWN5LWNvbXBhdGliaWxpdHkoKSB7XG4gICAgLm1hdC10cmVlLW5vZGUge1xuICAgICAgbWluLWhlaWdodDogJGhlaWdodDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC10cmVlLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC10cmVlJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXRyZWUtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXRyZWUtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC10cmVlLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG4vLyBJbmNsdWRlcyBhbGwgb2YgdGhlIHR5cG9ncmFwaGljIHN0eWxlcy5cbkBtaXhpbiBhbmd1bGFyLW1hdGVyaWFsLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZTogbnVsbCkge1xuICAkY29uZmlnOiBpZihtYXQtcHJpdmF0ZS1pcy10aGVtZS1vYmplY3QoJGNvbmZpZy1vci10aGVtZSksXG4gICAgICBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpLCAkY29uZmlnLW9yLXRoZW1lKTtcblxuICAvLyBJZiBubyBhY3R1YWwgY29sb3IgY29uZmlndXJhdGlvbiBoYXMgYmVlbiBzcGVjaWZpZWQsIGNyZWF0ZSBhIGRlZmF1bHQgb25lLlxuICBAaWYgbm90ICRjb25maWcge1xuICAgICRjb25maWc6IG1hdC10eXBvZ3JhcGh5LWNvbmZpZygpO1xuICB9XG5cbiAgLy8gVE9ETzogQ09NUC0zMDk6IERvIG5vdCB1c2UgaW5kaXZpZHVhbCBtaXhpbnMuIEluc3RlYWQsIHVzZSB0aGUgYWxsLXRoZW1lIG1peGluIGFuZCBvbmx5XG4gIC8vIHNwZWNpZnkgYSBgdHlwb2dyYXBoeWAgY29uZmlnIHdoaWxlIHNldHRpbmcgYGNvbG9yYCBhbmQgYGRlbnNpdHlgIHRvIGBudWxsYC4gVGhpcyBpcyBjdXJyZW50bHlcbiAgLy8gbm90IHBvc3NpYmxlIGFzIGl0IHdvdWxkIGludHJvZHVjZSBhIGNpcmN1bGFyIGRlcGVuZGVuY3kgZm9yIHR5cG9ncmFwaHkgYmVjYXVzZSB0aGUgYG1hdC1jb3JlYFxuICAvLyBtaXhpbiB0aGF0IGlzIHRyYW5zaXRpdmVseSBsb2FkZWQgYnkgdGhlIGBhbGwtdGhlbWVgIGZpbGUsIGltcG9ydHMgYGFsbC10eXBvZ3JhcGh5YCB3aGljaFxuICAvLyB3b3VsZCB0aGVuIGxvYWQgYGFsbC10aGVtZWAgYWdhaW4uIFRoaXMgdWx0aW1hdGVseSByZXN1bHRzIGEgY2lyY3VsYXIgZGVwZW5kZW5jeS5cblxuICBAaW5jbHVkZSBtYXQtYmFkZ2UtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWJhc2UtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWF1dG9jb21wbGV0ZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYm90dG9tLXNoZWV0LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1idXR0b24tdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10b2dnbGUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWNhcmQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWNoZWNrYm94LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1jaGlwcy10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZGl2aWRlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdGFibGUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWRhdGVwaWNrZXItdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWRpYWxvZy10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZXhwYW5zaW9uLXBhbmVsLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1ncmlkLWxpc3QtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWljb24tdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWlucHV0LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1tZW51LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wYWdpbmF0b3ItdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByb2dyZXNzLWJhci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcmFkaW8tdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXNlbGVjdC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc2lkZW5hdi10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc2xpZGUtdG9nZ2xlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zbGlkZXItdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXN0ZXBwZXItdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXNvcnQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXRhYnMtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXRvb2xiYXItdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXRvb2x0aXAtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWxpc3QtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LW9wdGlvbi10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtb3B0Z3JvdXAtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXNuYWNrLWJhci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdHJlZS10eXBvZ3JhcGh5KCRjb25maWcpO1xufVxuXG5cbi8vIE1peGluIHRoYXQgcmVuZGVycyBhbGwgb2YgdGhlIGNvcmUgc3R5bGVzIHRoYXQgYXJlIG5vdCB0aGVtZS1kZXBlbmRlbnQuXG5AbWl4aW4gbWF0LWNvcmUoJHR5cG9ncmFwaHktY29uZmlnOiBudWxsKSB7XG4gIEBpbmNsdWRlIGFuZ3VsYXItbWF0ZXJpYWwtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeS1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcmlwcGxlKCk7XG4gIEBpbmNsdWRlIGNkay1hMTF5KCk7XG4gIEBpbmNsdWRlIGNkay1vdmVybGF5KCk7XG4gIEBpbmNsdWRlIGNkay10ZXh0LWZpZWxkKCk7XG5cbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtcG9zaXRpb25pbmcoKTtcbiAgQGluY2x1ZGUgX21hdC1tZGMtY29yZSgpO1xufVxuXG5AbWl4aW4gbWF0LWNvcmUtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLy8gV3JhcHBlciBlbGVtZW50IHRoYXQgcHJvdmlkZXMgdGhlIHRoZW1lIGJhY2tncm91bmQgd2hlbiB0aGUgdXNlcidzIGNvbnRlbnQgaXNuJ3RcbiAgLy8gaW5zaWRlIG9mIGEgYG1hdC1zaWRlbmF2LWNvbnRhaW5lcmAuIE5vdGUgdGhhdCB3ZSBuZWVkIHRvIGV4Y2x1ZGUgdGhlIGFtcGVyc2FuZFxuICAvLyBzZWxlY3RvciBpbiBjYXNlIHRoZSBtaXhpbiBpcyBpbmNsdWRlZCBhdCB0aGUgdG9wIGxldmVsLlxuICAubWF0LWFwcC1iYWNrZ3JvdW5kI3tpZigmLCAnLCAmLm1hdC1hcHAtYmFja2dyb3VuZCcsICcnKX0ge1xuICAgICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAgICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBiYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC8vIFByb3ZpZGVzIGV4dGVybmFsIENTUyBjbGFzc2VzIGZvciBlYWNoIGVsZXZhdGlvbiB2YWx1ZS4gRWFjaCBDU1MgY2xhc3MgaXMgZm9ybWF0dGVkIGFzXG4gIC8vIGBtYXQtZWxldmF0aW9uLXokelZhbHVlYCB3aGVyZSBgJHpWYWx1ZWAgY29ycmVzcG9uZHMgdG8gdGhlIHotc3BhY2UgdG8gd2hpY2ggdGhlIGVsZW1lbnQgaXNcbiAgLy8gZWxldmF0ZWQuXG4gIEBmb3IgJHpWYWx1ZSBmcm9tIDAgdGhyb3VnaCAyNCB7XG4gICAgLiN7JG1hdC1lbGV2YXRpb24tcHJlZml4fSN7JHpWYWx1ZX0ge1xuICAgICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtdGhlbWUtZWxldmF0aW9uKCR6VmFsdWUsICRjb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIC8vIE1hcmtlciB0aGF0IGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHVzZXIgaGFzIGFkZGVkIGEgdGhlbWUgdG8gdGhlaXIgcGFnZS5cbiAgQGF0LXJvb3Qge1xuICAgIC5tYXQtdGhlbWUtbG9hZGVkLW1hcmtlciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4vLyBNaXhpbiB0aGF0IHJlbmRlcnMgYWxsIG9mIHRoZSBjb3JlIHN0eWxlcyB0aGF0IGRlcGVuZCBvbiB0aGUgdGhlbWUuXG5AbWl4aW4gbWF0LWNvcmUtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIC8vIFdyYXAgdGhlIHN1Yi10aGVtZSBpbmNsdWRlcyBpbiB0aGUgZHVwbGljYXRlIHRoZW1lIHN0eWxlcyBtaXhpbi4gVGhpcyBlbnN1cmVzIHRoYXRcbiAgLy8gdGhlcmUgd29uJ3QgYmUgbXVsdGlwbGUgd2FybmluZ3MuIGUuZy4gaWYgYG1hdC1jb3JlLXRoZW1lYCByZXBvcnRzIGEgd2FybmluZywgdGhlblxuICAvLyB0aGUgaW1wb3J0ZWQgdGhlbWVzIChzdWNoIGFzIGBtYXQtcmlwcGxlLXRoZW1lYCkgc2hvdWxkIG5vdCByZXBvcnQgYWdhaW4uXG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWNvcmUnKSB7XG4gICAgQGluY2x1ZGUgbWF0LXJpcHBsZS10aGVtZSgkdGhlbWUpO1xuICAgIEBpbmNsdWRlIG1hdC1vcHRpb24tdGhlbWUoJHRoZW1lKTtcbiAgICBAaW5jbHVkZSBtYXQtb3B0Z3JvdXAtdGhlbWUoJHRoZW1lKTtcbiAgICBAaW5jbHVkZSBtYXQtcHNldWRvLWNoZWNrYm94LXRoZW1lKCR0aGVtZSk7XG5cbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1jb3JlLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cbi8vIE1peGluIHRoYXQgcmVuZGVycyBhbGwgb2YgdGhlIGNvcmUgTURDIHN0eWxlcy4gUHJpdmF0ZSBtaXhpbiBpbmNsdWRlZCB3aXRoIGBtYXQtY29yZWAuXG5AbWl4aW4gX21hdC1tZGMtY29yZSgpIHtcbiAgQGluY2x1ZGUgX21hdC1tZGMtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtcG9zaXRpb25pbmcoKTtcbn1cblxuLy8gTWl4aW4gdGhhdCBlbnN1cmVzIGZvY3VzIGluZGljYXRvciBob3N0IGVsZW1lbnRzIGFyZSBwb3NpdGlvbmVkIHNvIHRoYXQgdGhlIGZvY3VzIGluZGljYXRvclxuLy8gcHNldWRvIGVsZW1lbnQgd2l0aGluIGlzIHBvc2l0aW9uZWQgcmVsYXRpdmUgdG8gdGhlIGhvc3QuIFByaXZhdGUgbWl4aW4gaW5jbHVkZWQgd2l0aGluXG4vLyBgX21hdC1tZGMtY29yZWAuXG5AbWl4aW4gX21hdC1tZGMtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtcG9zaXRpb25pbmcoKSB7XG4gIC5tYXQtbWRjLWZvY3VzLWluZGljYXRvciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG59XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbi8vIENyZWF0ZSBhIHRoZW1lLlxuQG1peGluIGFuZ3VsYXItbWF0ZXJpYWwtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkZGVkdXBlLWtleTogJ2FuZ3VsYXItbWF0ZXJpYWwtdGhlbWUnO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZS1vci1jb2xvci1jb25maWcsICRkZWR1cGUta2V5KSB7XG4gICAgQGluY2x1ZGUgbWF0LWNvcmUtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LWF1dG9jb21wbGV0ZS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtYmFkZ2UtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LWJvdHRvbS1zaGVldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtYnV0dG9uLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1idXR0b24tdG9nZ2xlLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1jYXJkLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1jaGVja2JveC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtY2hpcHMtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LXRhYmxlLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1kYXRlcGlja2VyLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1kaWFsb2ctdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LWRpdmlkZXItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LWV4cGFuc2lvbi1wYW5lbC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtZ3JpZC1saXN0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1pY29uLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1pbnB1dC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtbGlzdC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtbWVudS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtcGFnaW5hdG9yLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1wcm9ncmVzcy1iYXItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LXByb2dyZXNzLXNwaW5uZXItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LXJhZGlvLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1zZWxlY3QtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LXNpZGVuYXYtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LXNsaWRlLXRvZ2dsZS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtc2xpZGVyLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1zdGVwcGVyLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1zb3J0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC10YWJzLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC10b29sYmFyLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC10b29sdGlwLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC10cmVlLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1zbmFjay1iYXItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIH1cbn1cblxuXG5cbi8vIEluY2x1ZGVzIGFsbCBvZiB0aGUgY29sb3Igc3R5bGVzLlxuQG1peGluIGFuZ3VsYXItbWF0ZXJpYWwtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAvLyBJbiBjYXNlIGEgdGhlbWUgb2JqZWN0IGhhcyBiZWVuIHBhc3NlZCBpbnN0ZWFkIG9mIGEgY29uZmlndXJhdGlvbiBmb3JcbiAgLy8gdGhlIGNvbG9yIHN5c3RlbSwgZXh0cmFjdCB0aGUgY29sb3IgY29uZmlnIGZyb20gdGhlIHRoZW1lIG9iamVjdC5cbiAgJGNvbmZpZzogaWYobWF0LXByaXZhdGUtaXMtdGhlbWUtb2JqZWN0KCRjb25maWctb3ItdGhlbWUpLFxuICAgICAgbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSksICRjb25maWctb3ItdGhlbWUpO1xuXG4gIEBpZiAkY29uZmlnID09IG51bGwge1xuICAgIEBlcnJvciAnTm8gY29sb3IgY29uZmlndXJhdGlvbiBzcGVjaWZpZWQuJztcbiAgfVxuXG4gIEBpbmNsdWRlIGFuZ3VsYXItbWF0ZXJpYWwtdGhlbWUoKFxuICAgIGNvbG9yOiAkY29uZmlnLFxuICAgIHR5cG9ncmFwaHk6IG51bGwsXG4gICAgZGVuc2l0eTogbnVsbCxcbiAgKSk7XG59XG5cblxuXG5cblxuXG5cblxuXG5cbi8vIEluY2x1ZGVzIGFsbCBvZiB0aGUgZGVuc2l0eSBzdHlsZXMuXG5AbWl4aW4gYW5ndWxhci1tYXRlcmlhbC1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgLy8gSW4gY2FzZSBhIHRoZW1lIG9iamVjdCBoYXMgYmVlbiBwYXNzZWQgaW5zdGVhZCBvZiBhIGNvbmZpZ3VyYXRpb24gZm9yXG4gIC8vIHRoZSBkZW5zaXR5IHN5c3RlbSwgZXh0cmFjdCB0aGUgZGVuc2l0eSBjb25maWcgZnJvbSB0aGUgdGhlbWUgb2JqZWN0LlxuICAkY29uZmlnOiBpZihtYXQtcHJpdmF0ZS1pcy10aGVtZS1vYmplY3QoJGNvbmZpZy1vci10aGVtZSksXG4gICAgICBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpLCAkY29uZmlnLW9yLXRoZW1lKTtcblxuICBAaWYgJGNvbmZpZyA9PSBudWxsIHtcbiAgICBAZXJyb3IgJ05vIGRlbnNpdHkgY29uZmlndXJhdGlvbiBzcGVjaWZpZWQuJztcbiAgfVxuXG4gIC8vIFRPRE86IENPTVAtMzA5OiBEbyBub3QgdXNlIGluZGl2aWR1YWwgbWl4aW5zLiBJbnN0ZWFkLCB1c2UgdGhlIGFsbC10aGVtZSBtaXhpbiBhbmQgb25seVxuICAvLyBzcGVjaWZ5IGEgYGRlbnNpdHlgIGNvbmZpZyB3aGlsZSBzZXR0aW5nIGBjb2xvcmAgYW5kIGB0eXBvZ3JhcGh5YCB0byBgbnVsbGAuIFRoaXMgaXMgY3VycmVudGx5XG4gIC8vIG5vdCBwb3NzaWJsZSBhcyBpdCB3b3VsZCBpbnRyb2R1Y2UgYSBjaXJjdWxhciBkZXBlbmRlbmN5IGZvciBkZW5zaXR5IGJlY2F1c2UgdGhlIGBtYXQtY29yZWBcbiAgLy8gbWl4aW4gdGhhdCBpcyB0cmFuc2l0aXZlbHkgbG9hZGVkIGJ5IHRoZSBgYWxsLXRoZW1lYCBmaWxlLCBpbXBvcnRzIGBhbGwtZGVuc2l0eWAgd2hpY2hcbiAgLy8gd291bGQgdGhlbiBsb2FkIGBhbGwtdGhlbWVgIGFnYWluLiBUaGlzIHVsdGltYXRlbHkgcmVzdWx0cyBhIGNpcmN1bGFyIGRlcGVuZGVuY3kuXG5cbiAgQGluY2x1ZGUgbWF0LWV4cGFuc2lvbi1wYW5lbC1kZW5zaXR5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc3RlcHBlci1kZW5zaXR5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdG9vbGJhci1kZW5zaXR5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdHJlZS1kZW5zaXR5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcGFnaW5hdG9yLWRlbnNpdHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWRlbnNpdHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1idXR0b24tdG9nZ2xlLWRlbnNpdHkoJGNvbmZpZyk7XG59XG5cblxuXG4iLCIvLyBXZSB3YW50IG92ZXJsYXlzIHRvIGFsd2F5cyBhcHBlYXIgb3ZlciB1c2VyIGNvbnRlbnQsIHNvIHNldCBhIGJhc2VsaW5lXG4vLyB2ZXJ5IGhpZ2ggei1pbmRleCBmb3IgdGhlIG92ZXJsYXkgY29udGFpbmVyLCB3aGljaCBpcyB3aGVyZSB3ZSBjcmVhdGUgdGhlIG5ld1xuLy8gc3RhY2tpbmcgY29udGV4dCBmb3IgYWxsIG92ZXJsYXlzLlxuJGNkay16LWluZGV4LW92ZXJsYXktY29udGFpbmVyOiAxMDAwICFkZWZhdWx0O1xuJGNkay16LWluZGV4LW92ZXJsYXk6IDEwMDAgIWRlZmF1bHQ7XG4kY2RrLXotaW5kZXgtb3ZlcmxheS1iYWNrZHJvcDogMTAwMCAhZGVmYXVsdDtcblxuLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgYWxsIG9mIHRoZSBiYWNrZHJvcHNcbiRjZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wLWJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zMikgIWRlZmF1bHQ7XG5cbi8vIERlZmF1bHQgYmFja2Ryb3AgYW5pbWF0aW9uIGlzIGJhc2VkIG9uIHRoZSBNYXRlcmlhbCBEZXNpZ24gc3dpZnQtZWFzZS1vdXQuXG4kYmFja2Ryb3AtYW5pbWF0aW9uLWR1cmF0aW9uOiA0MDBtcyAhZGVmYXVsdDtcbiRiYWNrZHJvcC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSAhZGVmYXVsdDtcblxuXG5AbWl4aW4gY2RrLW92ZXJsYXkoKSB7XG4gIC5jZGstb3ZlcmxheS1jb250YWluZXIsIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlciB7XG4gICAgLy8gRGlzYWJsZSBldmVudHMgZnJvbSBiZWluZyBjYXB0dXJlZCBvbiB0aGUgb3ZlcmxheSBjb250YWluZXIuXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAvLyBUaGUgY29udGFpbmVyIHNob3VsZCBiZSB0aGUgc2l6ZSBvZiB0aGUgdmlld3BvcnQuXG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLy8gVGhlIG92ZXJsYXktY29udGFpbmVyIGlzIGFuIGludmlzaWJsZSBlbGVtZW50IHdoaWNoIGNvbnRhaW5zIGFsbCBpbmRpdmlkdWFsIG92ZXJsYXlzLlxuICAuY2RrLW92ZXJsYXktY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXktY29udGFpbmVyO1xuXG4gICAgJjplbXB0eSB7XG4gICAgICAvLyBIaWRlIHRoZSBlbGVtZW50IHdoZW4gaXQgZG9lc24ndCBoYXZlIGFueSBjaGlsZCBub2Rlcy4gVGhpcyBkb2Vzbid0XG4gICAgICAvLyBpbmNsdWRlIG92ZXJsYXlzIHRoYXQgaGF2ZSBiZWVuIGRldGFjaGVkLCByYXRoZXIgdGhhbiBkaXNwb3NlZC5cbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLy8gV2UgdXNlIGFuIGV4dHJhIHdyYXBwZXIgZWxlbWVudCBpbiBvcmRlciB0byB1c2UgbWFrZSB0aGUgb3ZlcmxheSBpdHNlbGYgYSBmbGV4IGl0ZW0uXG4gIC8vIFRoaXMgbWFrZXMgY2VudGVyaW5nIHRoZSBvdmVybGF5IGVhc3kgd2l0aG91dCBydW5uaW5nIGludG8gdGhlIHN1YnBpeGVsIHJlbmRlcmluZ1xuICAvLyBwcm9ibGVtcyB0aWVkIHRvIHVzaW5nIGB0cmFuc2Zvcm1gIGFuZCB3aXRob3V0IGludGVyZmVyaW5nIHdpdGggdGhlIG90aGVyIHBvc2l0aW9uXG4gIC8vIHN0cmF0ZWdpZXMuXG4gIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXk7XG4gIH1cblxuICAvLyBBIHNpbmdsZSBvdmVybGF5IHBhbmUuXG4gIC5jZGstb3ZlcmxheS1wYW5lIHtcbiAgICAvLyBOb3RlOiBpdCdzIGltcG9ydGFudCBmb3IgdGhpcyBvbmUgdG8gc3RhcnQgb2ZmIGBhYnNvbHV0ZWAsXG4gICAgLy8gaW4gb3JkZXIgZm9yIHVzIHRvIGJlIGFibGUgdG8gbWVhc3VyZSBpdCBjb3JyZWN0bHkuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXk7XG5cbiAgICAvLyBGb3IgY29ubmVjdGVkLXBvc2l0aW9uIG92ZXJsYXlzLCB3ZSBzZXQgYGRpc3BsYXk6IGZsZXhgIGluXG4gICAgLy8gb3JkZXIgdG8gZm9yY2UgYG1heC13aWR0aGAgYW5kIGBtYXgtaGVpZ2h0YCB0byB0YWtlIGVmZmVjdC5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgLmNkay1vdmVybGF5LWJhY2tkcm9wIHtcbiAgICAvLyBUT0RPKGplbGJvdXJuKTogcmV1c2Ugc2lkZW5hdiBmdWxsc2NyZWVuIG1peGluLlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG5cbiAgICB6LWluZGV4OiAkY2RrLXotaW5kZXgtb3ZlcmxheS1iYWNrZHJvcDtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJGJhY2tkcm9wLWFuaW1hdGlvbi1kdXJhdGlvbiAkYmFja2Ryb3AtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjtcbiAgICBvcGFjaXR5OiAwO1xuXG4gICAgJi5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nIHtcbiAgICAgIG9wYWNpdHk6IDE7XG5cbiAgICAgIC8vIE5vdGUgdGhhdCB3ZSBjYW4ndCBpbXBvcnQgYW5kIHVzZSB0aGUgYGhpZ2gtY29udHJhc3RgIG1peGluIGZyb20gYF9hMTF5LnNjc3NgLCBiZWNhdXNlXG4gICAgICAvLyB0aGlzIGZpbGUgd2lsbCBiZSBjb3BpZWQgdG8gdGhlIHRvcC1sZXZlbCBgY2RrYCBwYWNrYWdlIHdoZW4gcHV0dGluZyB0b2dldGhlciB0aGUgZmlsZXNcbiAgICAgIC8vIGZvciBucG0uIEFueSByZWxhdGl2ZSBpbXBvcnQgcGF0aHMgd2UgdXNlIGhlcmUgd2lsbCBiZWNvbWUgaW52YWxpZCBvbmNlIHRoZSBmaWxlIGlzIGNvcGllZC5cbiAgICAgIC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgJiB7XG4gICAgICAgIC8vIEluIGhpZ2ggY29udHJhc3QgbW9kZSB0aGUgcmdiYSBiYWNrZ3JvdW5kIHdpbGwgYmVjb21lIHNvbGlkXG4gICAgICAgIC8vIHNvIHdlIG5lZWQgdG8gZmFsbCBiYWNrIHRvIG1ha2luZyBpdCBvcGFxdWUgdXNpbmcgYG9wYWNpdHlgLlxuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3Age1xuICAgIGJhY2tncm91bmQ6ICRjZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wLWJhY2tncm91bmQ7XG4gIH1cblxuICAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3Age1xuICAgIC8vIE5vdGU6IGFzIG9mIEZpcmVmb3ggNTcsIGhhdmluZyB0aGUgYmFja2Ryb3AgYmUgYGJhY2tncm91bmQ6IG5vbmVgIHdpbGwgcHJldmVudCBpdCBmcm9tXG4gICAgLy8gY2FwdHVyaW5nIHRoZSB1c2VyJ3MgbW91c2Ugc2Nyb2xsIGV2ZW50cy4gU2luY2Ugd2UgYWxzbyBjYW4ndCB1c2Ugc29tZXRoaW5nIGxpa2VcbiAgICAvLyBgcmdiYSgwLCAwLCAwLCAwKWAsIHdlIHdvcmsgYXJvdW5kIHRoZSBpbmNvbnNpc3RlbmN5IGJ5IG5vdCBzZXR0aW5nIHRoZSBiYWNrZ3JvdW5kIGF0XG4gICAgLy8gYWxsIGFuZCB1c2luZyBgb3BhY2l0eWAgdG8gbWFrZSB0aGUgZWxlbWVudCB0cmFuc3BhcmVudC5cbiAgICAmLCAmLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cblxuICAvLyBPdmVybGF5IHBhcmVudCBlbGVtZW50IHVzZWQgd2l0aCB0aGUgY29ubmVjdGVkIHBvc2l0aW9uIHN0cmF0ZWd5LiBVc2VkIHRvIGNvbnN0cmFpbiB0aGVcbiAgLy8gb3ZlcmxheSBlbGVtZW50J3Mgc2l6ZSB0byBmaXQgd2l0aGluIHRoZSB2aWV3cG9ydC5cbiAgLmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3gge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAkY2RrLXotaW5kZXgtb3ZlcmxheTtcblxuICAgIC8vIFdlIHVzZSBgZGlzcGxheTogZmxleGAgb24gdGhpcyBlbGVtZW50IGV4Y2x1c2l2ZWx5IGZvciBjZW50ZXJpbmcgY29ubmVjdGVkIG92ZXJsYXlzLlxuICAgIC8vIFdoZW4gKm5vdCogY2VudGVyaW5nLCBhIHRvcC9sZWZ0L2JvdHRvbS9yaWdodCB3aWxsIGJlIHNldCB3aGljaCBvdmVycmlkZXMgdGhlIG5vcm1hbFxuICAgIC8vIGZsZXggbGF5b3V0LlxuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAvLyBXZSB1c2UgdGhlIGBjb2x1bW5gIGRpcmVjdGlvbiBoZXJlIHRvIGF2b2lkIHNvbWUgZmxleGJveCBpc3N1ZXMgaW4gRWRnZVxuICAgIC8vIHdoZW4gdXNpbmcgdGhlIFwiZ3JvdyBhZnRlciBvcGVuXCIgb3B0aW9ucy5cbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgLy8gQWRkIHNvbWUgZGltZW5zaW9ucyBzbyB0aGUgZWxlbWVudCBoYXMgYW4gYGlubmVyVGV4dGAgd2hpY2ggc29tZSBwZW9wbGUgZGVwZW5kIG9uIGluIHRlc3RzLlxuICAgIG1pbi13aWR0aDogMXB4O1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgfVxuXG4gIC8vIFVzZWQgd2hlbiBkaXNhYmxpbmcgZ2xvYmFsIHNjcm9sbGluZy5cbiAgLmNkay1nbG9iYWwtc2Nyb2xsYmxvY2sge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcblxuICAgIC8vIE5lY2Vzc2FyeSBmb3IgdGhlIGNvbnRlbnQgbm90IHRvIGxvc2UgaXRzIHdpZHRoLiBOb3RlIHRoYXQgd2UncmUgdXNpbmcgMTAwJSwgaW5zdGVhZCBvZlxuICAgIC8vIDEwMHZ3LCBiZWNhdXNlIDEwMHZ3IGluY2x1ZGVzIHRoZSB3aWR0aCBwbHVzIHRoZSBzY3JvbGxiYXIsIHdoZXJlYXMgMTAwJSBpcyB0aGUgd2lkdGhcbiAgICAvLyB0aGF0IHRoZSBlbGVtZW50IGhhZCBiZWZvcmUgd2UgbWFkZSBpdCBgZml4ZWRgLlxuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLy8gTm90ZTogdGhpcyB3aWxsIGFsd2F5cyBhZGQgYSBzY3JvbGxiYXIgdG8gd2hhdGV2ZXIgZWxlbWVudCBpdCBpcyBvbiwgd2hpY2ggY2FuXG4gICAgLy8gcG90ZW50aWFsbHkgcmVzdWx0IGluIGRvdWJsZSBzY3JvbGxiYXJzLiBJdCBzaG91bGRuJ3QgYmUgYW4gaXNzdWUsIGJlY2F1c2Ugd2Ugd29uJ3RcbiAgICAvLyBibG9jayBzY3JvbGxpbmcgb24gYSBwYWdlIHRoYXQgZG9lc24ndCBoYXZlIGEgc2Nyb2xsYmFyIGluIHRoZSBmaXJzdCBwbGFjZS5cbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIH1cbn1cbiJdfQ== */
/* You can add global styles to this file, and also import other style files */
.flex--stretch {
  flex: 1;
}
html,
body {
  font-family: "Roboto", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  height: 100%;
  margin: 0;
  width: 100%;
}
a {
  color: #0091EA;
  text-decoration: none;
}
form .read-only-field__container {
  margin-top: -4px;
  padding: 0 4px;
}
form .read-only-field__label {
  color: #757575;
  font-size: 12px;
  margin-bottom: 8px;
}
.u-truncateText {
  display: inline-block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2NvcmUuc2NzcyIsIi4uLy4uL2FwcC12YXJpYWJsZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4RUFBQTtBQzhQQTtFQUNFLE9BQU87QUQ1UFQ7QUFDQTs7RUFFRSx5RUNONkU7RURPN0UsZUNOdUI7RURPdkIsWUFBWTtFQUNaLFNBQVM7RUFDVCxXQUFXO0FBRWI7QUFDQTtFQUNFLGNDWXNCO0VEWHRCLHFCQUFxQjtBQUV2QjtBQUNBO0VBR00sZ0JBQWdCO0VBQ2hCLGNBQWM7QUFBcEI7QUFKQTtFQVFNLGNDTndCO0VET3hCLGVBQWU7RUFDZixrQkFBa0I7QUFBeEI7QUFVQTtFQUNFLHFCQUFxQjtFQUNyQixlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLHVCQUF1QjtBQVB6QiIsImZpbGUiOiJjb3JlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBZb3UgY2FuIGFkZCBnbG9iYWwgc3R5bGVzIHRvIHRoaXMgZmlsZSwgYW5kIGFsc28gaW1wb3J0IG90aGVyIHN0eWxlIGZpbGVzICovXG5cbkBpbXBvcnQgJ2FwcC12YXJpYWJsZXMnO1xuXG5odG1sLFxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUtd2ViO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbmEge1xuICBjb2xvcjogJGFjdGlvbi1jb2xvci0xO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbmZvcm0ge1xuICAucmVhZC1vbmx5LWZpZWxkIHtcbiAgICAmX19jb250YWluZXIge1xuICAgICAgbWFyZ2luLXRvcDogLTRweDtcbiAgICAgIHBhZGRpbmc6IDAgNHB4O1xuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgIGNvbG9yOiAkZm91bmRhdGlvbmFsLWNvbG9yLTc7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgfVxuXG4gICAgJl9fdmFsdWUge1xuICAgICAgLy8gdXNlIGlmIG5lZWRlZFxuICAgIH1cblxuICB9XG59XG5cbi51LXRydW5jYXRlVGV4dCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbiIsIiRiYXNlLWZvbnQtZmFtaWx5OiAnUm9ib3RvJywgJ0hlbHZldGljYSBOZXVlJywgJ0hlbHZldGljYScsICdBcmlhbCcsIHNhbnMtc2VyaWY7XG4kYmFzZS1mb250LXNpemUtd2ViOiAxNHB4O1xuXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqQVBQTElDQVRJT04gQ09MT1JTKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbi8vIEJSQU5EIENPTE9SU1xuJGJyYW5kLWNvbG9yLTE6ICNDQzAwMDA7XG4kYnJhbmQtY29sb3ItMjogIzFDMUUxQztcbiRicmFuZC1jb2xvci0zOiAjRkZGRkZGO1xuJGJyYW5kLWNvbG9yLTQ6ICMzMzMzMzM7XG4kYnJhbmQtY29sb3ItNTogIzg1ODU4NTtcbiRicmFuZC1jb2xvci02OiAjREZERkRGO1xuXG4vLyBGT1VOREFUSU9OQUwgUEFMRVRURVxuJGZvdW5kYXRpb25hbC1jb2xvci0xOiAjRkFGQUZBO1xuJGZvdW5kYXRpb25hbC1jb2xvci0yOiAjRjVGNUY1O1xuJGZvdW5kYXRpb25hbC1jb2xvci0zOiAjRUVFRUVFO1xuJGZvdW5kYXRpb25hbC1jb2xvci00OiAjRTBFMEUwO1xuJGZvdW5kYXRpb25hbC1jb2xvci01OiAjQkRCREJEO1xuJGZvdW5kYXRpb25hbC1jb2xvci02OiAjOUU5RTlFO1xuJGZvdW5kYXRpb25hbC1jb2xvci03OiAjNzU3NTc1O1xuJGZvdW5kYXRpb25hbC1jb2xvci04OiAjNjE2MTYxO1xuJGZvdW5kYXRpb25hbC1jb2xvci05OiAjNDI0MjQyO1xuJGZvdW5kYXRpb25hbC1jb2xvci0xMDogIzIxMjEyMTtcblxuLy8gQUNUSU9OIENPTE9SU1xuJGFjdGlvbi1jb2xvci0xOiAjMDA5MUVBO1xuJGFjdGlvbi1jb2xvci0yOiAjODBEOEZGO1xuXG4vLyBBQ0NFTlQgQ09MT1JTXG4kYWNjZW50LWNvbG9yLTE6ICMwMEM4NTM7XG4kYWNjZW50LWNvbG9yLTI6ICM2NEREMTc7XG4kYWNjZW50LWNvbG9yLTM6ICNBRUVBMDA7XG4kYWNjZW50LWNvbG9yLTQ6ICMwMDkxRUE7XG4kYWNjZW50LWNvbG9yLTU6ICMwMEI4RDQ7XG4kYWNjZW50LWNvbG9yLTY6ICMwMEJGQTY7XG4kYWNjZW50LWNvbG9yLTc6ICM2MjAwRUE7XG4kYWNjZW50LWNvbG9yLTg6ICMzMDRGRkU7XG4kYWNjZW50LWNvbG9yLTk6ICMyOTYyRkY7XG4kYWNjZW50LWNvbG9yLTEwOiAjRDUwMDAwO1xuJGFjY2VudC1jb2xvci0xMTogI0M1MTE2MjtcbiRhY2NlbnQtY29sb3ItMTI6ICNBQTAwRkY7XG4kYWNjZW50LWNvbG9yLTEzOiAjREQyQzAwO1xuJGFjY2VudC1jb2xvci0xNDogI0ZGNkQwMDtcbiRhY2NlbnQtY29sb3ItMTU6ICNGRkQ2MDA7XG5cbiRjb2xvci0xNzogcmdiYSgwLCAwLCAwLCAwLjU0KTtcblxuJGhpZ2hsaWdodC1jb2xvcjogI0ZGRkJFQztcblxuLy8gSU5URU5USU9OQUwgQ09MT1JcbiRjb2xvci1lcnJvcjogJGFjY2VudC1jb2xvci0xMDtcbiRhcHAtYmFja2dyb3VuZDogJGZvdW5kYXRpb25hbC1jb2xvci00O1xuJG5hdi1iYWNrZ3JvdW5kOiAkZm91bmRhdGlvbmFsLWNvbG9yLTM7XG5cbi8vIExBWU9VVFxuJGNvbnRlbnQtcGFuZWwtdmVydGljYWwtcGFkZGluZzogMjBweDtcbiRjb250ZW50LXBhbmVsLWhvcml6b250YWwtcGFkZGluZzogMjBweDtcbiRjb250ZW50LXBhbmVsLXNwYWNpbmc6IDdweDtcbiRmb3JtLWl0ZW0tc3BhY2luZzogMTZweDtcblxuLy8gU0NSRUVOIFNJWkVTIGZvciBtZWRpYSBxdWVyaWVzXG4kbGFwdG9wLXdpZHRoOiAxMjAwcHg7XG4kdGFibGV0LWxhbmRzY2FwZS13aWR0aDogMTEwMHB4O1xuJHRhYmxldC1wb3J0cmFpdC13aWR0aDogODAwcHg7XG4kcGhvbmUtcG9ydHJhaXQtd2lkdGg6IDYwMHB4O1xuXG4vLyBDT05URU5UXG4kY29udGVudC13aWR0aDogMTIzNHB4O1xuXG4vLyBMQVlPVVRcbiRoZWFkZXItaGVpZ2h0OiAyMHB4O1xuJHRvb2xiYXItaGVpZ2h0OiA1NnB4O1xuJGZvb3Rlci1oZWlnaHQ6IDQwcHg7XG4kZ3V0dGVyLXNpemU6IDI4cHg7XG4kZGlhbG9nLXdpZHRoOiA0NTBweDtcbiRkaWFsb2ctaGVpZ2h0OiAxMDBweDtcblxuXG4vLyA9PT09IExheW91dCA9PT09XG4keHBvLWNvbnRlbnRTcGFjaW5nOiAxNnB4O1xuXG4vLyAqKiAgIFhQTyBDb3JlIFVJIGltcG9ydHMgICAqKlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4vLyA9PT09IENvbG9ycyA9PT09XG4keHBvLWJsdWUtLTEwMDogI0U4RjVGRTtcbiR4cG8tYmx1ZS0tMTUwOiAjRTNGMkZEO1xuJHhwby1ibHVlLS0zMDA6ICMwRDk0RjQ7XG4keHBvLWJsdWUtLTM1MDogIzIxOTZGMztcbiR4cG8tYmx1ZS0tNDAwOiAjMDg2OEFDO1xuJHhwby1ibHVlLS02NTA6ICMwMDg3RUE7XG4keHBvLWJsdWUtLTcwMDogIzAwOTFFQTtcbiR4cG8tYmx1ZS0tODAwOiAjMTk3NkQyO1xuJHhwby1ibHVlLS04NTA6ICMwRDQ3QTE7XG4keHBvLWJsdWUtLTkwMDogIzA1M0M2MztcblxuJHhwby15ZWxsb3ctLTEwMDogI0ZGRjhFNTtcbiR4cG8teWVsbG93LS0zMDA6ICNGRkNGNEQ7XG4keHBvLXllbGxvdy0tNDAwOiAjRkZCQTAwO1xuJHhwby15ZWxsb3ctLTcwMDogI0ZGRDYwMDtcbiR4cG8teWVsbG93LS05MDA6ICM0RDM4MDA7XG5cbiR4cG8tcmVkLS0xMDA6ICNGRkVFRUU7XG4keHBvLXJlZC0tMzAwOiAjRkYyMjIyO1xuJHhwby1yZWQtLTQwMDogI0Q1MDAwMDtcbiR4cG8tcmVkLS03MDA6ICNEMzJGMkY7XG4keHBvLXJlZC0tOTAwOiAjNTUwMDAwO1xuXG4keHBvLWdyZWVuLS0xMDA6ICNDOEZGREY7XG4keHBvLWdyZWVuLS0zMDA6ICMxQ0U4NTU7XG4keHBvLWdyZWVuLS00MDA6ICMxMUE2M0I7XG4keHBvLWdyZWVuLS03MDA6ICMwMEM4NTM7XG4keHBvLWdyZWVuLS05MDA6ICMwQTYxMjI7XG5cbiR4cG8tZ3JleS0tNTA6ICNGQkZCRkI7XG4keHBvLWdyZXktLTEwMDogI0YzRjNGMztcbiR4cG8tZ3JleS0tMjAwOiAjRTZFNkU2O1xuJHhwby1ncmV5LS04MDogI0Y2RjZGNjtcbiR4cG8tZ3JleS0tMzAwOiAjRDhEOEQ4O1xuJHhwby1ncmV5LS0zNTA6ICNCREJEQkQ7XG4keHBvLWdyZXktLTQwMDogIzlCOUI5QjtcbiR4cG8tZ3JleS0tNjAwOiAjNzU3NTc1O1xuJHhwby1ncmV5LS03MDA6ICM2RjZGNkY7XG4keHBvLWdyZXktLTc1MDogIzU3NTc1NztcbiR4cG8tZ3JleS0tOTAwOiAjNEE0QTRBO1xuJHhwby1ncmV5LS05MzA6ICM0MjQyNDI7XG4keHBvLWdyZXktLTk1MDogIzMzMzMzMztcbiR4cG8tZ3JleS0tMTAwMDogIzE3MTcxNztcbiR4cG8tZ3JleS0tMTEwMDogIzIxMjEyMTtcblxuJHhwby1vcmFuZ2UtLTEwMDogI0ZGREZDQTtcbiR4cG8tb3JhbmdlLS0zMDA6ICNGRjk5NTc7XG4keHBvLW9yYW5nZS0tNDAwOiAjRkY2NDAwO1xuJHhwby1vcmFuZ2UtLTkwMDogIzhCMzcwMDtcblxuJHhwby1wdXJwbGUtLTcwMDogIzYyMDBFQTtcblxuJHhwby1waW5rLS03MDA6ICNDNTExNjI7XG5cbiR4cG8tYmxhY2s6ICMwMDA7XG4keHBvLXdoaXRlOiAjRkZGO1xuXG4vLyA9PT09IENvbG9ycyBBcHBsaWVkID09PT1cbiR4cG8tZm9udENvbG9yLS1wcmltYXJ5OiAkeHBvLWdyZXktLTkwMDtcbiR4cG8tZm9udENvbG9yLS1saW5rOiAkeHBvLWJsdWUtLTQwMDtcbi8vIHRoaXMgb25lIHNob3VsZCBiZSBtb3ZlZCB0byBhcHBcbiR4cG8tYmFja2dyb3VuZENvbG9yLS1ib2R5OiAkeHBvLWdyZXktLTEwMDtcblxuLy8gPT09PSBTdGF0dXMgQ29sb3JzID09PT1cbiR4cG8tY29sb3ItLWVycm9yOiAkeHBvLXJlZC0tNDAwO1xuJHhwby1jb2xvci0tc3VjY2VzczogJHhwby1ncmVlbi0tNDAwO1xuJHhwby1jb2xvci0td2FybjogJHhwby15ZWxsb3ctLTQwMDtcbiR4cG8tY29sb3ItLWluZm86ICR4cG8tZ3JleS0tOTAwO1xuXG4vLyA9PT09IFR5cG9ncmFwaHkgPT09PVxuLy8gUHV0dGluZyBzaXplcyBpbiBtYXBzIHRvIGFsbG93IGR5bmFtaWMgc2l6aW5nIGZvciBleHRlcm5hbFxuLy8gUm9vdCBmb250LXNpemUocykgYWx3YXlzIGluIHB4XG4keHBvLWZvbnRTaXplLS1yb290OiAxNHB4O1xuJHhwby1mb250U2l6ZS0tc21hbGw6IDAuODc1cmVtOyAvLzEycHhcbiR4cG8tZm9udFNpemUtLW1lZGl1bTogMXJlbTsgLy8xNHB4XG4keHBvLWZvbnRTaXplLS1sYXJnZTogMS4xNDNyZW07IC8vMTZweFxuJHhwby1mb250U2l6ZS0tZXh0cmFMYXJnZTogMS4yNXJlbTsgLy8yMHB4XG5cbiR4cG8taGVhZGVyLWZvbnRTaXplLS1zbWFsbDogMS4xNDNyZW07IC8vMTZweFxuJHhwby1oZWFkZXItZm9udFNpemUtLW1lZGl1bTogMS4yODVyZW07IC8vMThweFxuJHhwby1oZWFkZXItZm9udFNpemUtLWxhcmdlOiAxLjQyOHJlbTsgLy8yMHB4XG5cbiR4cG8tZm9udEZhbWlseS0tcHJpbWFyeTogJ1JvYm90bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBzYW5zLXNlcmlmO1xuJHhwby1mb250RmFtaWx5LS1yb2JvdG9XaWRlQmxhY2s6ICdSb2JvdG8gV2lkZSBCbGFjaycsICdSb2JvdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiR4cG8tZm9udEZhbWlseS0tcm9ib3RvQmxhY2s6ICdSb2JvdG8tQmxhY2snLCAnUm9ib3RvIEJsYWNrJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7XG5cbiR4cG8tZm9udFdlaWdodC0tbGlnaHQ6IDMwMDtcbiR4cG8tZm9udFdlaWdodC0tbm9ybWFsOiA0MDA7XG4keHBvLWZvbnRXZWlnaHQtLW1lZGl1bTogNTAwOyAvLyBERVBSRUNBVEVEIHwgZG8gbm90IGRlbGV0ZSBzaW5jZSBpdCBpcyBzdGlsbCBiZWluZyB1c2VkIGluIHNvbWUgcHJvamVjdHNcbiR4cG8tZm9udFdlaWdodC0tYm9sZDogNTAwO1xuJHhwby1mb250V2VpZ2h0LS1leHRyYUJvbGQ6IDYwMDtcblxuJHhwby1saW5lSGVpZ2h0LS1iYXNlOiAyNHB4OyAgLy8gZm9yIG1lZGl1bSBhbmQgbGFyZ2UgZm9udCBzaXplXG4keHBvLWxpbmVIZWlnaHQtLXNtYWxsOiAxNnB4OyAvLyBmb3Igc21hbGwgZm9udCBzaXplXG4keHBvLWxpbmVIZWlnaHQtLW1lZGl1bTogMThweDsgLy8gZm9yIG1lZGl1bSBmb250IHNpemVzXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1zbWFsbDogMS4xNDM7XG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1tZWRpdW06IDEuMTQzO1xuJHhwby1oZWFkZXItbGluZUhlaWdodC0tbGFyZ2U6IDEuMjg2O1xuXG4keHBvLWxldHRlclNwYWNpbmctLWJhc2U6IDAuMjVweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLXNtYWxsOiAwLjI5cHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1tZWRpdW06IDAuMzNweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLWxhcmdlOiAwLjM4cHg7XG5cbi8vID09PT0gTGF5b3V0ID09PT1cbiR4cG8tY29udGVudFNwYWNpbmc6IDE2cHg7XG5cbi8vIEJyZWFrcG9pbnRzXG4keHBvLWJyZWFrcG9pbnQtLXNtYWxsLXhzOiA0ODBweDtcbiR4cG8tYnJlYWtwb2ludC0tc21hbGw6IDYwMHB4O1xuJHhwby1icmVha3BvaW50LS1tZWRpdW06IDc2OHB4O1xuJHhwby1icmVha3BvaW50LS1sYXJnZTogMTAyNXB4O1xuJHhwby1icmVha3BvaW50LS14TGFyZ2U6IDE0NDBweDtcblxuJHhwby1zZWxlY3QtYmFja2dyb3VuZENvbG9yLW9wdGlvbk9uSG92ZXI6ICNFNEVGRkE7XG5cbi8vIC0tIE5HWC1VSSBTcGVjaWZpYyAtLVxuJG5neC1mb290ZXItaGVpZ2h0OiA0MHB4O1xuJG5neC10YWItaGVhZGVyLWhlaWdodDogNDBweDtcbiRuZ3gtdGFibGUtcm93LWhlaWdodDogMzJweDtcblxuJG5neC1pY29uLXNpemU6IDI0cHg7XG5cbiRuZ3gtdGhlQmxhY2tSb2JvdG86IDkwMDtcblxuJG5neC1pbnB1dC1yb3ctaGVpZ2h0OiAzMnB4O1xuXG4kbmd4LWlucHV0LWJvcmRlci13aWR0aDogMXB4O1xuXG4kbmd4LWlucHV0LWNvbG9yLW9uSG92ZXI6ICR4cG8tZ3JleS0tMTAwO1xuJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tZGFyazogJHhwby1ibGFjaztcbiRuZ3gtaW5wdXQtY29sb3Itb25BY3RpdmUtLWxpZ2h0OiAkeHBvLXdoaXRlO1xuJG5neC1pbnB1dC1jb2xvci1ib3JkZXI6ICR4cG8tZ3JleS0tMzAwO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlZC0tZGFyazogJHhwby1ncmV5LS0zNTA7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGUtLWxpZ2h0ZXI6ICR4cG8td2hpdGU7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1saWdodDogJHhwby1ncmV5LS04MDtcblxuJG5neC1idXR0b24tbGluZUhlaWdodDogMzZweDtcbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQtLXNtYWxsOiAyOHB4O1xuJG5neC1idXR0b24tbGluZUhlaWdodC0tbGFyZ2U6IDQ2cHg7XG4kbmd4LWJ1dHRvbi1hbmltYXRpb25EdXJhdGlvbjogMjAwbXM7XG5cbiRuZ3gtaGVhZGVyLWhlaWdodDogNDBweDtcbi8vIEZvciB1c2Ugd2hlbiBhIGhvdmVyIGlzIG5lZWRlZCBvbiBhIHdoaXRlIGJhY2tncm91bmQuXG4kbmd4LXdoaXRlQWZmb3JkYW5jZS1vbkhvdmVyLWNvbG9yOiAkeHBvLWdyZXktLTEwMDtcblxuJG5neC1tZW51LWJhY2tncm91bmRDb2xvcjogI0ZGRjtcblxuJG5neC1TbmFja2Jhci1zdGF0dXMtLXN1Y2Nlc3M6ICM0Q0FGNTA7XG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0tZXJyb3I6ICNEMzJGMkY7XG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0taW5mbzogIzAyODhEMTtcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS13YXJuOiAjRkJDMDJEO1xuXG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLXN1Y2Nlc3M6ICMzODhFM0M7XG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLXdhcm46ICNGNTdGMTc7XG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLWVycm9yOiAjQjcxQzFDO1xuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1pbmZvOiAjMDE1NzlCO1xuJG5neC1TbmFja0Jhci1tYXJnaW5Ub3A6IDMycHg7XG5cbi8vQmFkZ2VcbiR4cG8tQmFkZ2UtLWltcG9ydGFudDogI0NDMDAwMDtcbiRfbWF0QmFkZ2VDb250ZW50LWJhY2tncm91bmRDb2xvci0tbmVnYXRpdmUgOiAjRkNFRUVCO1xuJF9tYXRCYWRnZUNvbnRlbnQtY29sb3ItLW5lZ2F0aXZlIDogI0REMkMwMDtcbiRfbWF0QmFkZ2VDb250ZW50LWJhY2tncm91bmRDb2xvci0tcG9zaXRpdmUgOiAjRjFGOUYxO1xuXG4kbmd4LW1lbnUtYmFja2dyb3VuZENvbG9yLW9uSG92ZXI6ICNGQ0ZDRkM7XG4vLyBVc2VkIGFzIGEgc3BhY2VyIGZvciBmbGV4ZWQgY2hpbGRyZW5cbi8vIFRPRE86IE1vdmUgYWxsIGluc3RhbmNlcyB0byB0aGUgdXRpbGl0aWVzIGRlZmluaXRpb25cbi5mbGV4LS1zdHJldGNoIHtcbiAgZmxleDogMTtcbn1cblxuLy8gLS0tIERpYWxvZyAtLS1cbiRuZ3gtZGlhbG9nLWhlYWRlci1oZWlnaHQ6IDQ4cHg7XG4kbmd4LWRpYWxvZy1mb290ZXItaGVpZ2h0OiA2NHB4O1xuXG4vLyBUcmFuc2l0aW9uc1xuJHhwby10cmFuc2l0aW9uLTIwMDogYWxsIDIwMG1zIGVhc2Utb3V0O1xuXG4vLyAtLS0gQ29udGV4dHVhbCBIZWFkZXIgLS0tXG4kbmd4LUNvbnRleHR1YWxIZWFkZXItc2VwYXJhdG9yLS1jb2xvcjogJHhwby1ncmV5LS0zNTA7XG4iXX0= */
.flex--stretch {
  flex: 1;
}

/**
 ****************************
 * Generic Styles
 ****************************
*/

ag-grid, ag-grid-angular, ag-grid-ng2, ag-grid-polymer, ag-grid-aurelia {
  display: block;
}

.ag-hidden {
  display: none !important;
}

.ag-invisible {
  visibility: hidden !important;
}

.ag-drag-handle {
  cursor: move;
  cursor: grab;
}

.ag-column-drop-wrapper {
  display: flex;
}

.ag-column-drop-horizontal-half-width {
  display: inline-block;
  width: 50% !important;
}

.ag-unselectable {
  -moz-user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.ag-selectable {
  -moz-user-select: text;
  -webkit-user-select: text;
  -ms-user-select: text;
  user-select: text;
}

.ag-tab {
  position: relative;
}

.ag-tab-guard {
  position: absolute;
  width: 0;
  height: 0;
  display: block;
}

.ag-select-agg-func-popup {
  position: absolute;
}

.ag-input-wrapper, .ag-picker-field-wrapper {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  line-height: normal;
  position: relative;
}

.ag-shake-left-to-right {
  animation-direction: alternate;
  animation-duration: 0.2s;
  animation-iteration-count: infinite;
  animation-name: ag-shake-left-to-right;
}

@keyframes ag-shake-left-to-right {
  from {
    padding-left: 6px;
    padding-right: 2px;
  }
  to {
    padding-left: 2px;
    padding-right: 6px;
  }
}

.ag-root-wrapper {
  cursor: default;
  position: relative;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.ag-root-wrapper.ag-layout-normal {
  height: 100%;
}

.ag-watermark {
  position: absolute;
  bottom: 20px;
  right: 25px;
  opacity: 0.5;
  transition: opacity 1s ease-out 3s;
}

.ag-watermark::before {
  content: '';
  background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDIzNSA0MCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3BhY2U9InByZXNlcnZlIiB4bWxuczpzZXJpZj0iaHR0cDovL3d3dy5zZXJpZi5jb20vIiBzdHlsZT0iZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjI7Ij4KICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuNjM1NzIzLDAsMCwwLjYzNTcyMywtNDkyLjkyMSwtMzIzLjYwOCkiPgogICAgICAgIDxwYXRoIGQ9Ik0xMDk5LjQsNTQ5LjRMMTA5OS40LDUzNi45TDEwNzguMSw1MzYuOUwxMDY1LjYsNTQ5LjRMMTA5OS40LDU0OS40WiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cGF0aCBkPSJNMTEyMy40LDUxOC40TDEwOTYuNyw1MTguNEwxMDg0LjEsNTMwLjlMMTEyMy40LDUzMC45TDExMjMuNCw1MTguNFoiIHN0eWxlPSJmaWxsOnJnYigyNCwyOSwzMSk7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgPHBhdGggZD0iTTEwNTMuMiw1NjEuOUwxMDU5LjYsNTU1LjVMMTA4MS4yLDU1NS41TDEwODEuMiw1NjhMMTA1My4yLDU2OEwxMDUzLjIsNTYxLjlaIiBzdHlsZT0iZmlsbDpyZ2IoMjQsMjksMzEpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDU3LjksNTQzLjNMMTA3MS43LDU0My4zTDEwODQuMyw1MzAuOEwxMDU3LjksNTMwLjhMMTA1Ny45LDU0My4zWiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cGF0aCBkPSJNMTA0Mi44LDU2MS45TDEwNTMuMiw1NjEuOUwxMDY1LjYsNTQ5LjRMMTA0Mi44LDU0OS40TDEwNDIuOCw1NjEuOVoiIHN0eWxlPSJmaWxsOnJnYigyNCwyOSwzMSk7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgPHBhdGggZD0iTTEwOTYuNyw1MTguNEwxMDkwLjMsNTI0LjhMMTA0OS41LDUyNC44TDEwNDkuNSw1MTIuM0wxMDk2LjcsNTEyLjNMMTA5Ni43LDUxOC40WiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cGF0aCBkPSJNODI4LjYsNTU5LjdMODA5LDU1OS43TDgwNS42LDU2OC4xTDc5Nyw1NjguMUw4MTUuMSw1MjUuN0w4MjIuNiw1MjUuN0w4NDAuNyw1NjguMUw4MzIsNTY4LjFMODI4LjYsNTU5LjdaTTgyNS45LDU1M0w4MTguOCw1MzUuN0w4MTEuNyw1NTNMODI1LjksNTUzWiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cGF0aCBkPSJNOTYwLjEsNTQxLjNDOTYyLjYsNTM3LjYgOTY4LjksNTM3LjIgOTcxLjUsNTM3LjJMOTcxLjUsNTQ0LjRDOTY4LjMsNTQ0LjQgOTY1LjEsNTQ0LjUgOTYzLjIsNTQ1LjlDOTYxLjMsNTQ3LjMgOTYwLjMsNTQ5LjIgOTYwLjMsNTUxLjVMOTYwLjMsNTY4LjFMOTUyLjUsNTY4LjFMOTUyLjUsNTM3LjJMOTYwLDUzNy4yTDk2MC4xLDU0MS4zWiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cmVjdCB4PSI5NzUuOCIgeT0iNTM3LjIiIHdpZHRoPSI3LjgiIGhlaWdodD0iMzAuOSIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTsiLz4KICAgICAgICA8cmVjdCB4PSI5NzUuOCIgeT0iNTIzLjQiIHdpZHRoPSI3LjgiIGhlaWdodD0iOS4yIiBzdHlsZT0iZmlsbDpyZ2IoMjQsMjksMzEpOyIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDIyLjMsNTIzLjRMMTAyMi4zLDU2OC4xTDEwMTQuOCw1NjguMUwxMDE0LjYsNTYzLjRDMTAxMy41LDU2NSAxMDEyLjEsNTY2LjMgMTAxMC40LDU2Ny4zQzEwMDguNyw1NjguMiAxMDA2LjYsNTY4LjcgMTAwNC4yLDU2OC43QzEwMDIuMSw1NjguNyAxMDAwLjEsNTY4LjMgOTk4LjQsNTY3LjZDOTk2LjYsNTY2LjggOTk1LDU2NS44IDk5My43LDU2NC40Qzk5Mi40LDU2MyA5OTEuMyw1NjEuMyA5OTAuNiw1NTkuNEM5ODkuOCw1NTcuNSA5ODkuNSw1NTUuMyA5ODkuNSw1NTIuOUM5ODkuNSw1NTAuNSA5ODkuOSw1NDguMyA5OTAuNiw1NDYuM0M5OTEuNCw1NDQuMyA5OTIuNCw1NDIuNiA5OTMuNyw1NDEuMkM5OTUsNTM5LjggOTk2LjYsNTM4LjcgOTk4LjQsNTM3LjlDMTAwMC4yLDUzNy4xIDEwMDIuMSw1MzYuNyAxMDA0LjIsNTM2LjdDMTAwNi42LDUzNi43IDEwMDguNiw1MzcuMSAxMDEwLjMsNTM4QzEwMTIsNTM4LjkgMTAxMy40LDU0MC4xIDEwMTQuNSw1NDEuOEwxMDE0LjUsNTIzLjVMMTAyMi4zLDUyMy41TDEwMjIuMyw1MjMuNFpNMTAwNS45LDU2MkMxMDA4LjUsNTYyIDEwMTAuNSw1NjEuMSAxMDEyLjEsNTU5LjRDMTAxMy43LDU1Ny43IDEwMTQuNSw1NTUuNCAxMDE0LjUsNTUyLjZDMTAxNC41LDU0OS44IDEwMTMuNyw1NDcuNiAxMDEyLjEsNTQ1LjhDMTAxMC41LDU0NC4xIDEwMDguNSw1NDMuMiAxMDA1LjksNTQzLjJDMTAwMy40LDU0My4yIDEwMDEuMyw1NDQuMSA5OTkuOCw1NDUuOEM5OTguMiw1NDcuNSA5OTcuNCw1NDkuOCA5OTcuNCw1NTIuNkM5OTcuNCw1NTUuNCA5OTguMiw1NTcuNiA5OTkuOCw1NTkuM0MxMDAxLjQsNTYxLjEgMTAwMy40LDU2MiAxMDA1LjksNTYyIiBzdHlsZT0iZmlsbDpyZ2IoMjQsMjksMzEpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgIDxwYXRoIGQ9Ik04ODUuOCw1NDQuMkw4NjYuNSw1NDQuMkw4NjYuNSw1NTAuOUw4NzcuNSw1NTAuOUM4NzcuMiw1NTQuMyA4NzUuOSw1NTYuOSA4NzMuNyw1NTlDODcxLjUsNTYxIDg2OC43LDU2MiA4NjUuMSw1NjJDODYzLjEsNTYyIDg2MS4yLDU2MS42IDg1OS42LDU2MC45Qzg1Ny45LDU2MC4yIDg1Ni41LDU1OS4yIDg1NS4zLDU1Ny44Qzg1NC4xLDU1Ni41IDg1My4yLDU1NC45IDg1Mi41LDU1M0M4NTEuOCw1NTEuMSA4NTEuNSw1NDkuMSA4NTEuNSw1NDYuOEM4NTEuNSw1NDQuNSA4NTEuOCw1NDIuNSA4NTIuNSw1NDAuNkM4NTMuMSw1MzguNyA4NTQuMSw1MzcuMiA4NTUuMyw1MzUuOEM4NTYuNSw1MzQuNSA4NTcuOSw1MzMuNSA4NTkuNiw1MzIuN0M4NjEuMyw1MzIgODYzLjEsNTMxLjYgODY1LjIsNTMxLjZDODY5LjQsNTMxLjYgODcyLjYsNTMyLjYgODc0LjgsNTM0LjZMODgwLDUyOS40Qzg3Ni4xLDUyNi40IDg3MS4xLDUyNC44IDg2NS4yLDUyNC44Qzg2MS45LDUyNC44IDg1OC45LDUyNS4zIDg1Ni4yLDUyNi40Qzg1My41LDUyNy41IDg1MS4yLDUyOC45IDg0OS4zLDUzMC44Qzg0Ny40LDUzMi43IDg0NS45LDUzNSA4NDQuOSw1MzcuN0M4NDMuOSw1NDAuNCA4NDMuNCw1NDMuNCA4NDMuNCw1NDYuNkM4NDMuNCw1NDkuOCA4NDMuOSw1NTIuOCA4NDUsNTU1LjVDODQ2LjEsNTU4LjIgODQ3LjUsNTYwLjUgODQ5LjQsNTYyLjRDODUxLjMsNTY0LjMgODUzLjYsNTY1LjggODU2LjMsNTY2LjhDODU5LDU2Ny45IDg2Miw1NjguNCA4NjUuMiw1NjguNEM4NjguNCw1NjguNCA4NzEuMyw1NjcuOSA4NzMuOSw1NjYuOEM4NzYuNSw1NjUuNyA4NzguNyw1NjQuMyA4ODAuNSw1NjIuNEM4ODIuMyw1NjAuNSA4ODMuNyw1NTguMiA4ODQuNyw1NTUuNUM4ODUuNyw1NTIuOCA4ODYuMiw1NDkuOCA4ODYuMiw1NDYuNkw4ODYuMiw1NDUuM0M4ODUuOSw1NDUuMSA4ODUuOCw1NDQuNiA4ODUuOCw1NDQuMiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cGF0aCBkPSJNOTQ2LjgsNTQ0LjJMOTI3LjUsNTQ0LjJMOTI3LjUsNTUwLjlMOTM4LjUsNTUwLjlDOTM4LjIsNTU0LjMgOTM2LjksNTU2LjkgOTM0LjcsNTU5QzkzMi41LDU2MSA5MjkuNyw1NjIgOTI2LjEsNTYyQzkyNC4xLDU2MiA5MjIuMiw1NjEuNiA5MjAuNiw1NjAuOUM5MTguOSw1NjAuMiA5MTcuNSw1NTkuMiA5MTYuMyw1NTcuOEM5MTUuMSw1NTYuNSA5MTQuMiw1NTQuOSA5MTMuNSw1NTNDOTEyLjgsNTUxLjEgOTEyLjUsNTQ5LjEgOTEyLjUsNTQ2LjhDOTEyLjUsNTQ0LjUgOTEyLjgsNTQyLjUgOTEzLjUsNTQwLjZDOTE0LjEsNTM4LjcgOTE1LjEsNTM3LjIgOTE2LjMsNTM1LjhDOTE3LjUsNTM0LjUgOTE4LjksNTMzLjUgOTIwLjYsNTMyLjdDOTIyLjMsNTMyIDkyNC4xLDUzMS42IDkyNi4yLDUzMS42QzkzMC40LDUzMS42IDkzMy42LDUzMi42IDkzNS44LDUzNC42TDk0MSw1MjkuNEM5MzcuMSw1MjYuNCA5MzIuMSw1MjQuOCA5MjYuMiw1MjQuOEM5MjIuOSw1MjQuOCA5MTkuOSw1MjUuMyA5MTcuMiw1MjYuNEM5MTQuNSw1MjcuNSA5MTIuMiw1MjguOSA5MTAuMyw1MzAuOEM5MDguNCw1MzIuNyA5MDYuOSw1MzUgOTA1LjksNTM3LjdDOTA0LjksNTQwLjQgOTA0LjQsNTQzLjQgOTA0LjQsNTQ2LjZDOTA0LjQsNTQ5LjggOTA0LjksNTUyLjggOTA2LDU1NS41QzkwNy4xLDU1OC4yIDkwOC41LDU2MC41IDkxMC40LDU2Mi40QzkxMi4zLDU2NC4zIDkxNC42LDU2NS44IDkxNy4zLDU2Ni44QzkyMCw1NjcuOSA5MjMsNTY4LjQgOTI2LjIsNTY4LjRDOTI5LjQsNTY4LjQgOTMyLjMsNTY3LjkgOTM0LjksNTY2LjhDOTM3LjUsNTY1LjcgOTM5LjcsNTY0LjMgOTQxLjUsNTYyLjRDOTQzLjMsNTYwLjUgOTQ0LjcsNTU4LjIgOTQ1LjcsNTU1LjVDOTQ2LjcsNTUyLjggOTQ3LjIsNTQ5LjggOTQ3LjIsNTQ2LjZMOTQ3LjIsNTQ1LjNDOTQ2LjksNTQ1LjEgOTQ2LjgsNTQ0LjYgOTQ2LjgsNTQ0LjIiIHN0eWxlPSJmaWxsOnJnYigyNCwyOSwzMSk7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=);
  background-repeat: no-repeat;
  background-size: 170px 40px;
  display: block;
  height: 40px;
  width: 170px;
  opacity: 0.5;
}

.ag-watermark-text {
  opacity: 0.5;
  font-weight: bold;
  font-family: Impact, sans-serif;
  font-size: 19px;
  padding-left: 0.7rem;
}

.ag-root-wrapper-body {
  display: flex;
  flex-direction: row;
}

.ag-root-wrapper-body.ag-layout-normal {
  flex: 1 1 auto;
  height: 0;
  min-height: 0;
}

.ag-root {
  position: relative;
  display: flex;
  flex-direction: column;
}

.ag-root.ag-layout-normal, .ag-root.ag-layout-auto-height {
  overflow: hidden;
  flex: 1 1 auto;
  width: 0;
}

.ag-root.ag-layout-normal {
  height: 100%;
}

/**
 ****************************
 * Viewports
 ****************************
*/

.ag-header-viewport,
.ag-floating-top-viewport,
.ag-body-viewport,
.ag-center-cols-viewport,
.ag-floating-bottom-viewport,
.ag-body-horizontal-scroll-viewport,
.ag-virtual-list-viewport {
  position: relative;
  height: 100%;
  min-width: 0px;
  overflow: hidden;
  flex: 1 1 auto;
}

.ag-body-viewport.ag-layout-print {
  flex: none;
}

@media print {
  .ag-root-wrapper.ag-layout-print,
  .ag-root-wrapper.ag-layout-print .ag-root-wrapper-body,
  .ag-root-wrapper.ag-layout-print .ag-root,
  .ag-root-wrapper.ag-layout-print .ag-body-viewport,
  .ag-root-wrapper.ag-layout-print .ag-center-cols-container,
  .ag-root-wrapper.ag-layout-print .ag-center-cols-viewport,
  .ag-root-wrapper.ag-layout-print .ag-center-cols-clipper,
  .ag-root-wrapper.ag-layout-print .ag-body-horizontal-scroll-viewport,
  .ag-root-wrapper.ag-layout-print .ag-virtual-list-viewport {
    height: auto !important;
    overflow: hidden !important;
    display: block !important;
  }
  .ag-root-wrapper.ag-layout-print .ag-row {
    page-break-inside: avoid;
  }
}

.ag-body-viewport {
  display: flex;
}

.ag-body-viewport.ag-layout-normal {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.ag-center-cols-viewport {
  width: 100%;
  overflow-x: auto;
}

.ag-body-horizontal-scroll-viewport {
  overflow-x: scroll;
}

.ag-virtual-list-viewport {
  overflow: auto;
  width: 100%;
}

/**
 ****************************
 * Containers
 ****************************
*/

.ag-header-container,
.ag-floating-top-container,
.ag-body-container,
.ag-pinned-right-cols-container,
.ag-center-cols-container,
.ag-pinned-left-cols-container,
.ag-floating-bottom-container,
.ag-body-horizontal-scroll-container,
.ag-full-width-container,
.ag-floating-bottom-full-width-container,
.ag-virtual-list-container {
  position: relative;
}

.ag-header-container, .ag-floating-top-container, .ag-floating-bottom-container {
  height: 100%;
  white-space: nowrap;
}

.ag-center-cols-container {
  display: block;
}

.ag-layout-print .ag-center-cols-clipper {
  min-width: 100%;
}

.ag-pinned-right-cols-container {
  display: block;
}

.ag-body-horizontal-scroll-container {
  height: 100%;
}

.ag-full-width-container,
.ag-floating-top-full-width-container,
.ag-floating-bottom-full-width-container {
  position: absolute;
  top: 0px;
  left: 0px;
  pointer-events: none;
}

.ag-full-width-container {
  width: 100%;
}

.ag-floating-bottom-full-width-container, .ag-floating-top-full-width-container {
  display: inline-block;
  overflow: hidden;
  height: 100%;
  width: 100%;
}

.ag-virtual-list-container {
  overflow: hidden;
}

/**
 ****************************
 * Scrollers
 ****************************
*/

.ag-center-cols-clipper {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  min-height: 100%;
  transform: translate3d(0, 0, 0);
}

.ag-body-horizontal-scroll {
  min-height: 0;
  min-width: 0;
  width: 100%;
  display: flex;
  position: relative;
}

.ag-body-horizontal-scroll.ag-invisible-scrollbar {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
}

.ag-layout-print .ag-body-horizontal-scroll {
  display: none;
}

.ag-force-vertical-scroll {
  overflow-y: scroll !important;
}

.ag-force-vertical-scroll.ag-layout-print {
  overflow-y: visible !important;
}

.ag-horizontal-left-spacer, .ag-horizontal-right-spacer {
  height: 100%;
  min-width: 0;
  overflow-x: scroll;
}

.ag-horizontal-left-spacer.ag-scroller-corner, .ag-horizontal-right-spacer.ag-scroller-corner {
  overflow-x: hidden;
}

/**
 ****************************
 * Headers
 ****************************
*/

.ag-header, .ag-pinned-left-header, .ag-pinned-right-header {
  display: inline-block;
  overflow: hidden;
  position: relative;
}

.ag-header-cell-sortable {
  cursor: pointer;
}

.ag-header {
  display: flex;
  width: 100%;
  white-space: nowrap;
}

.ag-pinned-left-header {
  height: 100%;
}

.ag-pinned-right-header {
  height: 100%;
}

.ag-header-row {
  position: absolute;
  overflow: hidden;
}

.ag-header-cell {
  display: inline-flex;
  align-items: center;
  position: absolute;
  height: 100%;
  overflow: hidden;
}

.ag-header-cell.ag-header-active .ag-header-cell-menu-button {
  opacity: 1;
}

.ag-header-cell-menu-button:not(.ag-header-menu-always-show) {
  transition: opacity 0.2s;
  opacity: 0;
}

.ag-header-group-cell-label, .ag-header-cell-label {
  display: flex;
  flex: 1 1 auto;
  overflow: hidden;
  align-items: center;
  text-overflow: ellipsis;
  align-self: stretch;
}

.ag-header-cell-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ag-right-aligned-header .ag-header-cell-label {
  flex-direction: row-reverse;
}

.ag-header-group-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ag-header-cell-resize {
  position: absolute;
  z-index: 2;
  height: 100%;
  width: 8px;
  top: 0;
  cursor: ew-resize;
}

.ag-ltr .ag-header-cell-resize {
  right: -4px;
}

.ag-rtl .ag-header-cell-resize {
  left: -4px;
}

.ag-pinned-left-header .ag-header-cell-resize {
  right: -4px;
}

.ag-pinned-right-header .ag-header-cell-resize {
  left: -4px;
}

.ag-header-select-all {
  display: flex;
}

/**
 ****************************
 * Columns
 ****************************
*/

.ag-column-moving .ag-cell {
  transition: left 0.2s;
}

.ag-column-moving .ag-header-cell {
  transition: left 0.2s;
}

.ag-column-moving .ag-header-group-cell {
  transition: left 0.2s, width 0.2s;
}

/**
 ****************************
 * Column Panel
 ****************************
*/

.ag-column-panel {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  flex: 1 1 auto;
}

.ag-column-select {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  flex-grow: 3;
  flex-shrink: 1;
  flex-basis: 0;
}

.ag-column-select-header {
  position: relative;
  display: flex;
  flex: none;
}

.ag-column-select-header-icon {
  position: relative;
}

.ag-column-select-header-filter-wrapper {
  flex: 1 1 auto;
}

.ag-column-select-header-filter {
  width: 100%;
}

.ag-column-select-list {
  flex: 1 1 0px;
  overflow: hidden;
}

.ag-column-drop {
  display: inline-flex;
  align-items: center;
  overflow: auto;
  width: 100%;
}

.ag-column-drop-list {
  display: flex;
  align-items: center;
}

.ag-column-drop-cell {
  display: flex;
  align-items: center;
}

.ag-column-drop-cell-text {
  overflow: hidden;
  flex: 1 1 auto;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ag-column-drop-vertical {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  flex: 1 1 0px;
  align-items: stretch;
}

.ag-column-drop-vertical-title-bar {
  display: flex;
  align-items: center;
  flex: none;
}

.ag-column-drop-vertical-list {
  position: relative;
  align-items: stretch;
  flex-grow: 1;
  flex-direction: column;
  overflow-x: auto;
}

.ag-column-drop-vertical-list > * {
  flex: none;
}

.ag-column-drop-empty .ag-column-drop-vertical-list {
  overflow: hidden;
}

.ag-column-drop-vertical-empty-message {
  display: block;
}

.ag-column-drop.ag-column-drop-horizontal {
  white-space: nowrap;
  overflow: hidden;
}

.ag-column-drop-cell-button {
  cursor: pointer;
}

.ag-filter-toolpanel {
  flex: 1 1 0px;
  min-width: 0;
}

.ag-filter-toolpanel-header {
  position: relative;
}

.ag-filter-toolpanel-header, .ag-filter-toolpanel-search {
  display: flex;
  align-items: center;
}

.ag-filter-toolpanel-header > *, .ag-filter-toolpanel-search > * {
  display: flex;
  align-items: center;
}

.ag-filter-apply-panel {
  display: flex;
  justify-content: flex-end;
  overflow: hidden;
}

/**
 ****************************
 * Rows
 ****************************
*/

.ag-row-animation .ag-row {
  transition: transform 0.4s, top 0.4s, height 0.4s, background-color 0.1s, opacity 0.2s;
}

.ag-row-no-animation .ag-row {
  transition: background-color 0.1s;
}

.ag-row {
  white-space: nowrap;
  width: 100%;
}

.ag-row-loading {
  display: flex;
  align-items: center;
}

.ag-row-position-absolute {
  position: absolute;
}

.ag-row-position-relative {
  position: relative;
}

.ag-full-width-row {
  overflow: hidden;
  pointer-events: all;
}

.ag-row-inline-editing {
  z-index: 1;
}

.ag-row-dragging {
  z-index: 2;
}

.ag-stub-cell {
  display: flex;
  align-items: center;
}

/**
 ****************************
 * Cells
 ****************************
*/

.ag-cell {
  display: inline-block;
  position: absolute;
  white-space: nowrap;
}

.ag-cell-value, .ag-group-value {
  overflow: hidden;
  text-overflow: ellipsis;
}

.ag-cell-wrap-text {
  white-space: normal;
  word-break: break-all;
}

.ag-cell-wrapper {
  display: flex;
  align-items: center;
  height: 100%;
}

.ag-cell-wrapper.ag-row-group {
  align-items: flex-start;
}

.ag-full-width-row .ag-cell-wrapper.ag-row-group {
  align-items: center;
}

.ag-cell-auto-height {
  height: 100%;
}

.ag-cell-inline-editing {
  z-index: 1;
}

.ag-cell-inline-editing .ag-cell-edit-wrapper,
.ag-cell-inline-editing .ag-cell-editor,
.ag-cell-inline-editing .ag-cell-editor .ag-wrapper,
.ag-cell-inline-editing .ag-cell-editor input {
  height: 100%;
  width: 100%;
  line-height: normal;
}

.ag-cell .ag-icon {
  display: inline-block;
  vertical-align: middle;
}

/**
 ****************************
 * Filters
 ****************************
*/

.ag-set-filter-item {
  display: flex;
  align-items: center;
  height: 100%;
}

.ag-set-filter-item-value {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ag-set-filter-item-checkbox {
  display: flex;
}

.ag-filter-body-wrapper {
  display: flex;
  flex-direction: column;
}

.ag-filter-filter {
  flex: 1 1 0px;
}

.ag-filter-condition {
  display: flex;
  justify-content: center;
}

/**
 ****************************
 * Floating Filter
 ****************************
*/

.ag-floating-filter-body {
  position: relative;
  display: flex;
  flex: 1 1 auto;
  height: 100%;
}

.ag-floating-filter-full-body {
  display: flex;
  flex: 1 1 auto;
  height: 100%;
  width: 100%;
  align-items: center;
  overflow: hidden;
}

.ag-floating-filter-full-body > div {
  flex: 1 1 auto;
}

.ag-floating-filter {
  display: inline-block;
  position: absolute;
}

.ag-floating-filter-input {
  align-items: center;
  display: flex;
  width: 100%;
}

.ag-floating-filter-input > * {
  flex: 1 1 auto;
}

.ag-floating-filter-button {
  display: flex;
  flex: none;
}

/**
 ****************************
 * Drag & Drop
 ****************************
*/

.ag-dnd-ghost {
  position: absolute;
  display: inline-flex;
  align-items: center;
  cursor: move;
  white-space: nowrap;
  z-index: 9999;
}

/**
 ****************************
 * Overlay
 ****************************
*/

.ag-overlay {
  height: 100%;
  left: 0;
  pointer-events: none;
  position: absolute;
  top: 0;
  width: 100%;
}

.ag-overlay-panel {
  display: flex;
  height: 100%;
  width: 100%;
}

.ag-overlay-wrapper {
  display: flex;
  flex: none;
  width: 100%;
  height: 100%;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.ag-overlay-loading-wrapper {
  pointer-events: all;
}

/**
 ****************************
 * Popup
 ****************************
*/

.ag-popup-child {
  z-index: 5;
  top: 0;
}

.ag-popup-editor {
  position: absolute;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  z-index: 1;
}

.ag-large-text-input {
  display: block;
}

/**
 ****************************
 * Virtual Lists
 ****************************
*/

.ag-virtual-list-item {
  position: absolute;
  width: 100%;
}

/**
 ****************************
 * Floating Top and Bottom
 ****************************
*/

.ag-floating-top {
  overflow: hidden;
  white-space: nowrap;
  width: 100%;
  position: relative;
  display: flex;
}

.ag-pinned-left-floating-top {
  display: inline-block;
  overflow: hidden;
  position: relative;
  min-width: 0px;
}

.ag-pinned-right-floating-top {
  display: inline-block;
  overflow: hidden;
  position: relative;
  min-width: 0px;
}

.ag-floating-bottom {
  overflow: hidden;
  white-space: nowrap;
  width: 100%;
  position: relative;
  display: flex;
}

.ag-pinned-left-floating-bottom {
  display: inline-block;
  overflow: hidden;
  position: relative;
  min-width: 0px;
}

.ag-pinned-right-floating-bottom {
  display: inline-block;
  overflow: hidden;
  position: relative;
  min-width: 0px;
}

/**
 ****************************
 * Dialog
 ****************************
*/

.ag-dialog, .ag-panel {
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
}

.ag-panel-title-bar {
  display: flex;
  flex: none;
  align-items: center;
  cursor: default;
}

.ag-panel-title-bar-title {
  flex: 1 1 auto;
}

.ag-panel-title-bar-buttons {
  display: flex;
}

.ag-panel-title-bar-button {
  cursor: pointer;
}

.ag-panel-content-wrapper {
  display: flex;
  flex: 1 1 auto;
  position: relative;
  overflow: hidden;
}

.ag-dialog {
  position: absolute;
}

.ag-resizer {
  position: absolute;
  pointer-events: none;
  z-index: 1;
}

.ag-resizer.ag-resizer-topLeft {
  top: 0;
  left: 0;
  height: 5px;
  width: 5px;
  cursor: nwse-resize;
}

.ag-resizer.ag-resizer-top {
  top: 0;
  left: 5px;
  right: 5px;
  height: 5px;
  cursor: ns-resize;
}

.ag-resizer.ag-resizer-topRight {
  top: 0;
  right: 0;
  height: 5px;
  width: 5px;
  cursor: nesw-resize;
}

.ag-resizer.ag-resizer-right {
  top: 5px;
  right: 0;
  bottom: 5px;
  width: 5px;
  cursor: ew-resize;
}

.ag-resizer.ag-resizer-bottomRight {
  bottom: 0;
  right: 0;
  height: 5px;
  width: 5px;
  cursor: nwse-resize;
}

.ag-resizer.ag-resizer-bottom {
  bottom: 0;
  left: 5px;
  right: 5px;
  height: 5px;
  cursor: ns-resize;
}

.ag-resizer.ag-resizer-bottomLeft {
  bottom: 0;
  left: 0;
  height: 5px;
  width: 5px;
  cursor: nesw-resize;
}

.ag-resizer.ag-resizer-left {
  left: 0;
  top: 5px;
  bottom: 5px;
  width: 5px;
  cursor: ew-resize;
}

/**
 ****************************
 * Tooltip
 ****************************
*/

.ag-tooltip {
  position: absolute;
  pointer-events: none;
  z-index: 99999;
}

/**
 ****************************
 * Animations
 ****************************
*/

.ag-value-slide-out {
  margin-right: 5px;
  opacity: 1;
  transition: opacity 3s, margin-right 3s;
  transition-timing-function: linear;
}

.ag-value-slide-out-end {
  margin-right: 10px;
  opacity: 0;
}

.ag-opacity-zero {
  opacity: 0 !important;
}

/**
 ****************************
 * Menu
 ****************************
*/

.ag-menu {
  max-height: 100%;
  overflow-y: auto;
  position: absolute;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.ag-menu-column-select-wrapper {
  height: 265px;
  overflow: auto;
}

.ag-menu-column-select-wrapper .ag-column-select {
  height: 100%;
}

.ag-menu-list {
  display: table;
  width: 100%;
}

.ag-menu-option, .ag-menu-separator {
  display: table-row;
}

.ag-menu-option-part, .ag-menu-separator-part {
  display: table-cell;
  vertical-align: middle;
}

.ag-menu-option-text {
  white-space: nowrap;
}

.ag-compact-menu-option {
  width: 100%;
  display: flex;
  flex-wrap: nowrap;
}

.ag-compact-menu-option-text {
  white-space: nowrap;
  flex: 1 1 auto;
}

/**
 ****************************
 * Rich Select
 ****************************
*/

.ag-rich-select {
  cursor: default;
  outline: none;
}

.ag-rich-select-value {
  display: flex;
  align-items: center;
}

.ag-rich-select-value-icon {
  flex: 1 1 auto;
  order: 1;
}

.ag-ltr .ag-rich-select-value-icon {
  text-align: right;
}

.ag-rtl .ag-rich-select-value-icon {
  text-align: left;
}

.ag-rich-select-list {
  position: relative;
}

.ag-rich-select-virtual-list-item {
  display: flex;
}

.ag-rich-select-row {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  white-space: nowrap;
}

/**
 ****************************
 * Pagination
 ****************************
*/

.ag-paging-panel {
  align-items: center;
  display: flex;
  justify-content: flex-end;
}

.ag-paging-page-summary-panel {
  display: flex;
  align-items: center;
}

.ag-paging-button {
  position: relative;
}

.ag-disabled .ag-paging-page-summary-panel {
  pointer-events: none;
}

/**
 ****************************
 * Tool Panel
 ****************************
*/

.ag-tool-panel-wrapper {
  display: flex;
  overflow-y: auto;
  overflow-x: hidden;
  cursor: default;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  width: 200px;
}

.ag-column-select-column,
.ag-column-select-column-group {
  position: relative;
  align-items: center;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  text-overflow: ellipsis;
  white-space: nowrap;
  height: 100%;
}

.ag-column-select-column > *,
.ag-column-select-column-group > * {
  flex: none;
}

.ag-column-select-checkbox {
  display: flex;
}

.ag-tool-panel-horizontal-resize {
  cursor: ew-resize;
  height: 100%;
  position: absolute;
  top: 0;
  width: 5px;
  z-index: 1;
}

.ag-ltr .ag-side-bar-left .ag-tool-panel-horizontal-resize {
  right: -3px;
}

.ag-rtl .ag-side-bar-left .ag-tool-panel-horizontal-resize {
  left: -3px;
}

.ag-ltr .ag-side-bar-right .ag-tool-panel-horizontal-resize {
  left: -3px;
}

.ag-rtl .ag-side-bar-right .ag-tool-panel-horizontal-resize {
  right: -3px;
}

.ag-details-row {
  width: 100%;
}

.ag-details-row-fixed-height {
  height: 100%;
}

.ag-details-grid {
  width: 100%;
}

.ag-details-grid-fixed-height {
  height: 100%;
}

.ag-header-group-cell {
  display: flex;
  align-items: center;
  height: 100%;
  position: absolute;
}

.ag-cell-label-container {
  display: flex;
  justify-content: space-between;
  flex-direction: row-reverse;
  align-items: center;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.ag-right-aligned-header .ag-cell-label-container {
  flex-direction: row;
}

/**
 ****************************
 * Side Bar
 ****************************
*/

.ag-side-bar {
  display: flex;
  flex-direction: row-reverse;
}

.ag-side-bar-left {
  order: -1;
  flex-direction: row;
}

.ag-side-button-button {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex-wrap: nowrap;
  white-space: nowrap;
  outline: none;
  cursor: pointer;
}

.ag-side-button-label {
  -ms-writing-mode: tb-lr;
      writing-mode: vertical-lr;
}

/**
 ****************************
 * Status Bar
 ****************************
*/

.ag-status-bar {
  display: flex;
  justify-content: space-between;
  overflow: hidden;
}

.ag-status-panel {
  display: inline-flex;
}

.ag-status-name-value {
  white-space: nowrap;
}

.ag-status-bar-left {
  display: inline-flex;
}

.ag-status-bar-center {
  display: inline-flex;
}

.ag-status-bar-right {
  display: inline-flex;
}

/**
 ****************************
 * Widgets
 ****************************
*/

.ag-icon {
  display: block;
  speak: none;
}

.ag-group {
  position: relative;
  width: 100%;
}

.ag-group-title-bar {
  display: flex;
  align-items: center;
}

.ag-group-title {
  display: block;
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.ag-group-title-bar .ag-group-title {
  cursor: default;
}

.ag-group-toolbar {
  display: flex;
  align-items: center;
}

.ag-group-container {
  display: flex;
}

.ag-disabled .ag-group-container {
  pointer-events: none;
}

.ag-group-container-horizontal {
  flex-direction: row;
  flex-wrap: wrap;
}

.ag-group-container-vertical {
  flex-direction: column;
}

.ag-charts-font-size-color {
  display: flex;
  align-self: stretch;
  justify-content: space-between;
}

.ag-column-group-icons {
  display: block;
}

.ag-column-group-icons > * {
  cursor: pointer;
}

.ag-group-item-alignment-stretch .ag-group-item {
  align-items: stretch;
}

.ag-group-item-alignment-start .ag-group-item {
  align-items: flex-start;
}

.ag-group-item-alignment-end .ag-group-item {
  align-items: flex-end;
}

.ag-toggle-button-icon {
  transition: right 0.3s;
  position: absolute;
  top: -1px;
}

.ag-input-field, .ag-select {
  display: flex;
  flex-direction: row;
  align-items: center;
}

.ag-input-field-input {
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
}

.ag-floating-filter-input .ag-input-field-input[type='date'] {
  width: 1px;
}

.ag-range-field {
  display: flex;
  align-items: center;
}

.ag-angle-select {
  display: flex;
  align-items: center;
}

.ag-angle-select-wrapper {
  display: flex;
}

.ag-angle-select-parent-circle {
  display: block;
  position: relative;
}

.ag-angle-select-child-circle {
  position: absolute;
}

.ag-slider-wrapper {
  display: flex;
}

.ag-slider-wrapper .ag-input-field {
  flex: 1 1 auto;
}

.ag-picker-field-display {
  flex: 1 1 auto;
}

.ag-picker-field {
  display: flex;
  align-items: center;
}

.ag-picker-field-icon {
  display: flex;
  border: 0;
  padding: 0;
  margin: 0;
  cursor: pointer;
}

.ag-picker-field-wrapper {
  overflow: hidden;
}

.ag-label-align-right .ag-label {
  order: 1;
}

.ag-label-align-right > * {
  flex: none;
}

.ag-label-align-top {
  flex-direction: column;
  align-items: flex-start;
}

.ag-label-align-top > * {
  align-self: stretch;
}

.ag-color-panel {
  width: 100%;
  display: flex;
  flex-direction: column;
  text-align: center;
}

.ag-spectrum-color {
  flex: 1 1 auto;
  position: relative;
  overflow: hidden;
  cursor: default;
}

.ag-spectrum-fill {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

.ag-spectrum-val {
  cursor: pointer;
}

.ag-spectrum-dragger {
  position: absolute;
  pointer-events: none;
  cursor: pointer;
}

.ag-spectrum-hue {
  cursor: default;
  background: linear-gradient(to left, #ff0000 3%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
}

.ag-spectrum-alpha {
  cursor: default;
}

.ag-spectrum-hue-background {
  width: 100%;
  height: 100%;
}

.ag-spectrum-alpha-background {
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0), black);
  width: 100%;
  height: 100%;
}

.ag-spectrum-tool {
  cursor: pointer;
}

.ag-spectrum-slider {
  position: absolute;
  pointer-events: none;
}

.ag-recent-colors {
  display: flex;
}

.ag-recent-color {
  cursor: pointer;
}

.ag-ltr .ag-column-select-indent-1 {
  padding-left: 20px;
}

.ag-rtl .ag-column-select-indent-1 {
  padding-right: 20px;
}

.ag-ltr .ag-row-group-indent-1 {
  padding-left: 20px;
}

.ag-rtl .ag-row-group-indent-1 {
  padding-right: 20px;
}

.ag-ltr .ag-column-select-indent-2 {
  padding-left: 40px;
}

.ag-rtl .ag-column-select-indent-2 {
  padding-right: 40px;
}

.ag-ltr .ag-row-group-indent-2 {
  padding-left: 40px;
}

.ag-rtl .ag-row-group-indent-2 {
  padding-right: 40px;
}

.ag-ltr .ag-column-select-indent-3 {
  padding-left: 60px;
}

.ag-rtl .ag-column-select-indent-3 {
  padding-right: 60px;
}

.ag-ltr .ag-row-group-indent-3 {
  padding-left: 60px;
}

.ag-rtl .ag-row-group-indent-3 {
  padding-right: 60px;
}

.ag-ltr .ag-column-select-indent-4 {
  padding-left: 80px;
}

.ag-rtl .ag-column-select-indent-4 {
  padding-right: 80px;
}

.ag-ltr .ag-row-group-indent-4 {
  padding-left: 80px;
}

.ag-rtl .ag-row-group-indent-4 {
  padding-right: 80px;
}

.ag-ltr .ag-column-select-indent-5 {
  padding-left: 100px;
}

.ag-rtl .ag-column-select-indent-5 {
  padding-right: 100px;
}

.ag-ltr .ag-row-group-indent-5 {
  padding-left: 100px;
}

.ag-rtl .ag-row-group-indent-5 {
  padding-right: 100px;
}

.ag-ltr .ag-column-select-indent-6 {
  padding-left: 120px;
}

.ag-rtl .ag-column-select-indent-6 {
  padding-right: 120px;
}

.ag-ltr .ag-row-group-indent-6 {
  padding-left: 120px;
}

.ag-rtl .ag-row-group-indent-6 {
  padding-right: 120px;
}

.ag-ltr .ag-column-select-indent-7 {
  padding-left: 140px;
}

.ag-rtl .ag-column-select-indent-7 {
  padding-right: 140px;
}

.ag-ltr .ag-row-group-indent-7 {
  padding-left: 140px;
}

.ag-rtl .ag-row-group-indent-7 {
  padding-right: 140px;
}

.ag-ltr .ag-column-select-indent-8 {
  padding-left: 160px;
}

.ag-rtl .ag-column-select-indent-8 {
  padding-right: 160px;
}

.ag-ltr .ag-row-group-indent-8 {
  padding-left: 160px;
}

.ag-rtl .ag-row-group-indent-8 {
  padding-right: 160px;
}

.ag-ltr .ag-column-select-indent-9 {
  padding-left: 180px;
}

.ag-rtl .ag-column-select-indent-9 {
  padding-right: 180px;
}

.ag-ltr .ag-row-group-indent-9 {
  padding-left: 180px;
}

.ag-rtl .ag-row-group-indent-9 {
  padding-right: 180px;
}

.ag-ltr .ag-column-select-indent-10 {
  padding-left: 200px;
}

.ag-rtl .ag-column-select-indent-10 {
  padding-right: 200px;
}

.ag-ltr .ag-row-group-indent-10 {
  padding-left: 200px;
}

.ag-rtl .ag-row-group-indent-10 {
  padding-right: 200px;
}

.ag-ltr .ag-column-select-indent-11 {
  padding-left: 220px;
}

.ag-rtl .ag-column-select-indent-11 {
  padding-right: 220px;
}

.ag-ltr .ag-row-group-indent-11 {
  padding-left: 220px;
}

.ag-rtl .ag-row-group-indent-11 {
  padding-right: 220px;
}

.ag-ltr .ag-column-select-indent-12 {
  padding-left: 240px;
}

.ag-rtl .ag-column-select-indent-12 {
  padding-right: 240px;
}

.ag-ltr .ag-row-group-indent-12 {
  padding-left: 240px;
}

.ag-rtl .ag-row-group-indent-12 {
  padding-right: 240px;
}

.ag-ltr .ag-column-select-indent-13 {
  padding-left: 260px;
}

.ag-rtl .ag-column-select-indent-13 {
  padding-right: 260px;
}

.ag-ltr .ag-row-group-indent-13 {
  padding-left: 260px;
}

.ag-rtl .ag-row-group-indent-13 {
  padding-right: 260px;
}

.ag-ltr .ag-column-select-indent-14 {
  padding-left: 280px;
}

.ag-rtl .ag-column-select-indent-14 {
  padding-right: 280px;
}

.ag-ltr .ag-row-group-indent-14 {
  padding-left: 280px;
}

.ag-rtl .ag-row-group-indent-14 {
  padding-right: 280px;
}

.ag-ltr .ag-column-select-indent-15 {
  padding-left: 300px;
}

.ag-rtl .ag-column-select-indent-15 {
  padding-right: 300px;
}

.ag-ltr .ag-row-group-indent-15 {
  padding-left: 300px;
}

.ag-rtl .ag-row-group-indent-15 {
  padding-right: 300px;
}

.ag-ltr .ag-column-select-indent-16 {
  padding-left: 320px;
}

.ag-rtl .ag-column-select-indent-16 {
  padding-right: 320px;
}

.ag-ltr .ag-row-group-indent-16 {
  padding-left: 320px;
}

.ag-rtl .ag-row-group-indent-16 {
  padding-right: 320px;
}

.ag-ltr .ag-column-select-indent-17 {
  padding-left: 340px;
}

.ag-rtl .ag-column-select-indent-17 {
  padding-right: 340px;
}

.ag-ltr .ag-row-group-indent-17 {
  padding-left: 340px;
}

.ag-rtl .ag-row-group-indent-17 {
  padding-right: 340px;
}

.ag-ltr .ag-column-select-indent-18 {
  padding-left: 360px;
}

.ag-rtl .ag-column-select-indent-18 {
  padding-right: 360px;
}

.ag-ltr .ag-row-group-indent-18 {
  padding-left: 360px;
}

.ag-rtl .ag-row-group-indent-18 {
  padding-right: 360px;
}

.ag-ltr .ag-column-select-indent-19 {
  padding-left: 380px;
}

.ag-rtl .ag-column-select-indent-19 {
  padding-right: 380px;
}

.ag-ltr .ag-row-group-indent-19 {
  padding-left: 380px;
}

.ag-rtl .ag-row-group-indent-19 {
  padding-right: 380px;
}

.ag-ltr .ag-column-select-indent-20 {
  padding-left: 400px;
}

.ag-rtl .ag-column-select-indent-20 {
  padding-right: 400px;
}

.ag-ltr .ag-row-group-indent-20 {
  padding-left: 400px;
}

.ag-rtl .ag-row-group-indent-20 {
  padding-right: 400px;
}

.ag-ltr .ag-column-select-indent-21 {
  padding-left: 420px;
}

.ag-rtl .ag-column-select-indent-21 {
  padding-right: 420px;
}

.ag-ltr .ag-row-group-indent-21 {
  padding-left: 420px;
}

.ag-rtl .ag-row-group-indent-21 {
  padding-right: 420px;
}

.ag-ltr .ag-column-select-indent-22 {
  padding-left: 440px;
}

.ag-rtl .ag-column-select-indent-22 {
  padding-right: 440px;
}

.ag-ltr .ag-row-group-indent-22 {
  padding-left: 440px;
}

.ag-rtl .ag-row-group-indent-22 {
  padding-right: 440px;
}

.ag-ltr .ag-column-select-indent-23 {
  padding-left: 460px;
}

.ag-rtl .ag-column-select-indent-23 {
  padding-right: 460px;
}

.ag-ltr .ag-row-group-indent-23 {
  padding-left: 460px;
}

.ag-rtl .ag-row-group-indent-23 {
  padding-right: 460px;
}

.ag-ltr .ag-column-select-indent-24 {
  padding-left: 480px;
}

.ag-rtl .ag-column-select-indent-24 {
  padding-right: 480px;
}

.ag-ltr .ag-row-group-indent-24 {
  padding-left: 480px;
}

.ag-rtl .ag-row-group-indent-24 {
  padding-right: 480px;
}

.ag-ltr .ag-column-select-indent-25 {
  padding-left: 500px;
}

.ag-rtl .ag-column-select-indent-25 {
  padding-right: 500px;
}

.ag-ltr .ag-row-group-indent-25 {
  padding-left: 500px;
}

.ag-rtl .ag-row-group-indent-25 {
  padding-right: 500px;
}

.ag-ltr .ag-column-select-indent-26 {
  padding-left: 520px;
}

.ag-rtl .ag-column-select-indent-26 {
  padding-right: 520px;
}

.ag-ltr .ag-row-group-indent-26 {
  padding-left: 520px;
}

.ag-rtl .ag-row-group-indent-26 {
  padding-right: 520px;
}

.ag-ltr .ag-column-select-indent-27 {
  padding-left: 540px;
}

.ag-rtl .ag-column-select-indent-27 {
  padding-right: 540px;
}

.ag-ltr .ag-row-group-indent-27 {
  padding-left: 540px;
}

.ag-rtl .ag-row-group-indent-27 {
  padding-right: 540px;
}

.ag-ltr .ag-column-select-indent-28 {
  padding-left: 560px;
}

.ag-rtl .ag-column-select-indent-28 {
  padding-right: 560px;
}

.ag-ltr .ag-row-group-indent-28 {
  padding-left: 560px;
}

.ag-rtl .ag-row-group-indent-28 {
  padding-right: 560px;
}

.ag-ltr .ag-column-select-indent-29 {
  padding-left: 580px;
}

.ag-rtl .ag-column-select-indent-29 {
  padding-right: 580px;
}

.ag-ltr .ag-row-group-indent-29 {
  padding-left: 580px;
}

.ag-rtl .ag-row-group-indent-29 {
  padding-right: 580px;
}

.ag-ltr .ag-column-select-indent-30 {
  padding-left: 600px;
}

.ag-rtl .ag-column-select-indent-30 {
  padding-right: 600px;
}

.ag-ltr .ag-row-group-indent-30 {
  padding-left: 600px;
}

.ag-rtl .ag-row-group-indent-30 {
  padding-right: 600px;
}

.ag-ltr .ag-column-select-indent-31 {
  padding-left: 620px;
}

.ag-rtl .ag-column-select-indent-31 {
  padding-right: 620px;
}

.ag-ltr .ag-row-group-indent-31 {
  padding-left: 620px;
}

.ag-rtl .ag-row-group-indent-31 {
  padding-right: 620px;
}

.ag-ltr .ag-column-select-indent-32 {
  padding-left: 640px;
}

.ag-rtl .ag-column-select-indent-32 {
  padding-right: 640px;
}

.ag-ltr .ag-row-group-indent-32 {
  padding-left: 640px;
}

.ag-rtl .ag-row-group-indent-32 {
  padding-right: 640px;
}

.ag-ltr .ag-column-select-indent-33 {
  padding-left: 660px;
}

.ag-rtl .ag-column-select-indent-33 {
  padding-right: 660px;
}

.ag-ltr .ag-row-group-indent-33 {
  padding-left: 660px;
}

.ag-rtl .ag-row-group-indent-33 {
  padding-right: 660px;
}

.ag-ltr .ag-column-select-indent-34 {
  padding-left: 680px;
}

.ag-rtl .ag-column-select-indent-34 {
  padding-right: 680px;
}

.ag-ltr .ag-row-group-indent-34 {
  padding-left: 680px;
}

.ag-rtl .ag-row-group-indent-34 {
  padding-right: 680px;
}

.ag-ltr .ag-column-select-indent-35 {
  padding-left: 700px;
}

.ag-rtl .ag-column-select-indent-35 {
  padding-right: 700px;
}

.ag-ltr .ag-row-group-indent-35 {
  padding-left: 700px;
}

.ag-rtl .ag-row-group-indent-35 {
  padding-right: 700px;
}

.ag-ltr .ag-column-select-indent-36 {
  padding-left: 720px;
}

.ag-rtl .ag-column-select-indent-36 {
  padding-right: 720px;
}

.ag-ltr .ag-row-group-indent-36 {
  padding-left: 720px;
}

.ag-rtl .ag-row-group-indent-36 {
  padding-right: 720px;
}

.ag-ltr .ag-column-select-indent-37 {
  padding-left: 740px;
}

.ag-rtl .ag-column-select-indent-37 {
  padding-right: 740px;
}

.ag-ltr .ag-row-group-indent-37 {
  padding-left: 740px;
}

.ag-rtl .ag-row-group-indent-37 {
  padding-right: 740px;
}

.ag-ltr .ag-column-select-indent-38 {
  padding-left: 760px;
}

.ag-rtl .ag-column-select-indent-38 {
  padding-right: 760px;
}

.ag-ltr .ag-row-group-indent-38 {
  padding-left: 760px;
}

.ag-rtl .ag-row-group-indent-38 {
  padding-right: 760px;
}

.ag-ltr .ag-column-select-indent-39 {
  padding-left: 780px;
}

.ag-rtl .ag-column-select-indent-39 {
  padding-right: 780px;
}

.ag-ltr .ag-row-group-indent-39 {
  padding-left: 780px;
}

.ag-rtl .ag-row-group-indent-39 {
  padding-right: 780px;
}

.ag-ltr .ag-column-select-indent-40 {
  padding-left: 800px;
}

.ag-rtl .ag-column-select-indent-40 {
  padding-right: 800px;
}

.ag-ltr .ag-row-group-indent-40 {
  padding-left: 800px;
}

.ag-rtl .ag-row-group-indent-40 {
  padding-right: 800px;
}

.ag-ltr .ag-column-select-indent-41 {
  padding-left: 820px;
}

.ag-rtl .ag-column-select-indent-41 {
  padding-right: 820px;
}

.ag-ltr .ag-row-group-indent-41 {
  padding-left: 820px;
}

.ag-rtl .ag-row-group-indent-41 {
  padding-right: 820px;
}

.ag-ltr .ag-column-select-indent-42 {
  padding-left: 840px;
}

.ag-rtl .ag-column-select-indent-42 {
  padding-right: 840px;
}

.ag-ltr .ag-row-group-indent-42 {
  padding-left: 840px;
}

.ag-rtl .ag-row-group-indent-42 {
  padding-right: 840px;
}

.ag-ltr .ag-column-select-indent-43 {
  padding-left: 860px;
}

.ag-rtl .ag-column-select-indent-43 {
  padding-right: 860px;
}

.ag-ltr .ag-row-group-indent-43 {
  padding-left: 860px;
}

.ag-rtl .ag-row-group-indent-43 {
  padding-right: 860px;
}

.ag-ltr .ag-column-select-indent-44 {
  padding-left: 880px;
}

.ag-rtl .ag-column-select-indent-44 {
  padding-right: 880px;
}

.ag-ltr .ag-row-group-indent-44 {
  padding-left: 880px;
}

.ag-rtl .ag-row-group-indent-44 {
  padding-right: 880px;
}

.ag-ltr .ag-column-select-indent-45 {
  padding-left: 900px;
}

.ag-rtl .ag-column-select-indent-45 {
  padding-right: 900px;
}

.ag-ltr .ag-row-group-indent-45 {
  padding-left: 900px;
}

.ag-rtl .ag-row-group-indent-45 {
  padding-right: 900px;
}

.ag-ltr .ag-column-select-indent-46 {
  padding-left: 920px;
}

.ag-rtl .ag-column-select-indent-46 {
  padding-right: 920px;
}

.ag-ltr .ag-row-group-indent-46 {
  padding-left: 920px;
}

.ag-rtl .ag-row-group-indent-46 {
  padding-right: 920px;
}

.ag-ltr .ag-column-select-indent-47 {
  padding-left: 940px;
}

.ag-rtl .ag-column-select-indent-47 {
  padding-right: 940px;
}

.ag-ltr .ag-row-group-indent-47 {
  padding-left: 940px;
}

.ag-rtl .ag-row-group-indent-47 {
  padding-right: 940px;
}

.ag-ltr .ag-column-select-indent-48 {
  padding-left: 960px;
}

.ag-rtl .ag-column-select-indent-48 {
  padding-right: 960px;
}

.ag-ltr .ag-row-group-indent-48 {
  padding-left: 960px;
}

.ag-rtl .ag-row-group-indent-48 {
  padding-right: 960px;
}

.ag-ltr .ag-column-select-indent-49 {
  padding-left: 980px;
}

.ag-rtl .ag-column-select-indent-49 {
  padding-right: 980px;
}

.ag-ltr .ag-row-group-indent-49 {
  padding-left: 980px;
}

.ag-rtl .ag-row-group-indent-49 {
  padding-right: 980px;
}

.ag-ltr .ag-column-select-indent-50 {
  padding-left: 1000px;
}

.ag-rtl .ag-column-select-indent-50 {
  padding-right: 1000px;
}

.ag-ltr .ag-row-group-indent-50 {
  padding-left: 1000px;
}

.ag-rtl .ag-row-group-indent-50 {
  padding-right: 1000px;
}

.ag-ltr .ag-column-select-indent-51 {
  padding-left: 1020px;
}

.ag-rtl .ag-column-select-indent-51 {
  padding-right: 1020px;
}

.ag-ltr .ag-row-group-indent-51 {
  padding-left: 1020px;
}

.ag-rtl .ag-row-group-indent-51 {
  padding-right: 1020px;
}

.ag-ltr .ag-column-select-indent-52 {
  padding-left: 1040px;
}

.ag-rtl .ag-column-select-indent-52 {
  padding-right: 1040px;
}

.ag-ltr .ag-row-group-indent-52 {
  padding-left: 1040px;
}

.ag-rtl .ag-row-group-indent-52 {
  padding-right: 1040px;
}

.ag-ltr .ag-column-select-indent-53 {
  padding-left: 1060px;
}

.ag-rtl .ag-column-select-indent-53 {
  padding-right: 1060px;
}

.ag-ltr .ag-row-group-indent-53 {
  padding-left: 1060px;
}

.ag-rtl .ag-row-group-indent-53 {
  padding-right: 1060px;
}

.ag-ltr .ag-column-select-indent-54 {
  padding-left: 1080px;
}

.ag-rtl .ag-column-select-indent-54 {
  padding-right: 1080px;
}

.ag-ltr .ag-row-group-indent-54 {
  padding-left: 1080px;
}

.ag-rtl .ag-row-group-indent-54 {
  padding-right: 1080px;
}

.ag-ltr .ag-column-select-indent-55 {
  padding-left: 1100px;
}

.ag-rtl .ag-column-select-indent-55 {
  padding-right: 1100px;
}

.ag-ltr .ag-row-group-indent-55 {
  padding-left: 1100px;
}

.ag-rtl .ag-row-group-indent-55 {
  padding-right: 1100px;
}

.ag-ltr .ag-column-select-indent-56 {
  padding-left: 1120px;
}

.ag-rtl .ag-column-select-indent-56 {
  padding-right: 1120px;
}

.ag-ltr .ag-row-group-indent-56 {
  padding-left: 1120px;
}

.ag-rtl .ag-row-group-indent-56 {
  padding-right: 1120px;
}

.ag-ltr .ag-column-select-indent-57 {
  padding-left: 1140px;
}

.ag-rtl .ag-column-select-indent-57 {
  padding-right: 1140px;
}

.ag-ltr .ag-row-group-indent-57 {
  padding-left: 1140px;
}

.ag-rtl .ag-row-group-indent-57 {
  padding-right: 1140px;
}

.ag-ltr .ag-column-select-indent-58 {
  padding-left: 1160px;
}

.ag-rtl .ag-column-select-indent-58 {
  padding-right: 1160px;
}

.ag-ltr .ag-row-group-indent-58 {
  padding-left: 1160px;
}

.ag-rtl .ag-row-group-indent-58 {
  padding-right: 1160px;
}

.ag-ltr .ag-column-select-indent-59 {
  padding-left: 1180px;
}

.ag-rtl .ag-column-select-indent-59 {
  padding-right: 1180px;
}

.ag-ltr .ag-row-group-indent-59 {
  padding-left: 1180px;
}

.ag-rtl .ag-row-group-indent-59 {
  padding-right: 1180px;
}

.ag-ltr .ag-column-select-indent-60 {
  padding-left: 1200px;
}

.ag-rtl .ag-column-select-indent-60 {
  padding-right: 1200px;
}

.ag-ltr .ag-row-group-indent-60 {
  padding-left: 1200px;
}

.ag-rtl .ag-row-group-indent-60 {
  padding-right: 1200px;
}

.ag-ltr .ag-column-select-indent-61 {
  padding-left: 1220px;
}

.ag-rtl .ag-column-select-indent-61 {
  padding-right: 1220px;
}

.ag-ltr .ag-row-group-indent-61 {
  padding-left: 1220px;
}

.ag-rtl .ag-row-group-indent-61 {
  padding-right: 1220px;
}

.ag-ltr .ag-column-select-indent-62 {
  padding-left: 1240px;
}

.ag-rtl .ag-column-select-indent-62 {
  padding-right: 1240px;
}

.ag-ltr .ag-row-group-indent-62 {
  padding-left: 1240px;
}

.ag-rtl .ag-row-group-indent-62 {
  padding-right: 1240px;
}

.ag-ltr .ag-column-select-indent-63 {
  padding-left: 1260px;
}

.ag-rtl .ag-column-select-indent-63 {
  padding-right: 1260px;
}

.ag-ltr .ag-row-group-indent-63 {
  padding-left: 1260px;
}

.ag-rtl .ag-row-group-indent-63 {
  padding-right: 1260px;
}

.ag-ltr .ag-column-select-indent-64 {
  padding-left: 1280px;
}

.ag-rtl .ag-column-select-indent-64 {
  padding-right: 1280px;
}

.ag-ltr .ag-row-group-indent-64 {
  padding-left: 1280px;
}

.ag-rtl .ag-row-group-indent-64 {
  padding-right: 1280px;
}

.ag-ltr .ag-column-select-indent-65 {
  padding-left: 1300px;
}

.ag-rtl .ag-column-select-indent-65 {
  padding-right: 1300px;
}

.ag-ltr .ag-row-group-indent-65 {
  padding-left: 1300px;
}

.ag-rtl .ag-row-group-indent-65 {
  padding-right: 1300px;
}

.ag-ltr .ag-column-select-indent-66 {
  padding-left: 1320px;
}

.ag-rtl .ag-column-select-indent-66 {
  padding-right: 1320px;
}

.ag-ltr .ag-row-group-indent-66 {
  padding-left: 1320px;
}

.ag-rtl .ag-row-group-indent-66 {
  padding-right: 1320px;
}

.ag-ltr .ag-column-select-indent-67 {
  padding-left: 1340px;
}

.ag-rtl .ag-column-select-indent-67 {
  padding-right: 1340px;
}

.ag-ltr .ag-row-group-indent-67 {
  padding-left: 1340px;
}

.ag-rtl .ag-row-group-indent-67 {
  padding-right: 1340px;
}

.ag-ltr .ag-column-select-indent-68 {
  padding-left: 1360px;
}

.ag-rtl .ag-column-select-indent-68 {
  padding-right: 1360px;
}

.ag-ltr .ag-row-group-indent-68 {
  padding-left: 1360px;
}

.ag-rtl .ag-row-group-indent-68 {
  padding-right: 1360px;
}

.ag-ltr .ag-column-select-indent-69 {
  padding-left: 1380px;
}

.ag-rtl .ag-column-select-indent-69 {
  padding-right: 1380px;
}

.ag-ltr .ag-row-group-indent-69 {
  padding-left: 1380px;
}

.ag-rtl .ag-row-group-indent-69 {
  padding-right: 1380px;
}

.ag-ltr .ag-column-select-indent-70 {
  padding-left: 1400px;
}

.ag-rtl .ag-column-select-indent-70 {
  padding-right: 1400px;
}

.ag-ltr .ag-row-group-indent-70 {
  padding-left: 1400px;
}

.ag-rtl .ag-row-group-indent-70 {
  padding-right: 1400px;
}

.ag-ltr .ag-column-select-indent-71 {
  padding-left: 1420px;
}

.ag-rtl .ag-column-select-indent-71 {
  padding-right: 1420px;
}

.ag-ltr .ag-row-group-indent-71 {
  padding-left: 1420px;
}

.ag-rtl .ag-row-group-indent-71 {
  padding-right: 1420px;
}

.ag-ltr .ag-column-select-indent-72 {
  padding-left: 1440px;
}

.ag-rtl .ag-column-select-indent-72 {
  padding-right: 1440px;
}

.ag-ltr .ag-row-group-indent-72 {
  padding-left: 1440px;
}

.ag-rtl .ag-row-group-indent-72 {
  padding-right: 1440px;
}

.ag-ltr .ag-column-select-indent-73 {
  padding-left: 1460px;
}

.ag-rtl .ag-column-select-indent-73 {
  padding-right: 1460px;
}

.ag-ltr .ag-row-group-indent-73 {
  padding-left: 1460px;
}

.ag-rtl .ag-row-group-indent-73 {
  padding-right: 1460px;
}

.ag-ltr .ag-column-select-indent-74 {
  padding-left: 1480px;
}

.ag-rtl .ag-column-select-indent-74 {
  padding-right: 1480px;
}

.ag-ltr .ag-row-group-indent-74 {
  padding-left: 1480px;
}

.ag-rtl .ag-row-group-indent-74 {
  padding-right: 1480px;
}

.ag-ltr .ag-column-select-indent-75 {
  padding-left: 1500px;
}

.ag-rtl .ag-column-select-indent-75 {
  padding-right: 1500px;
}

.ag-ltr .ag-row-group-indent-75 {
  padding-left: 1500px;
}

.ag-rtl .ag-row-group-indent-75 {
  padding-right: 1500px;
}

.ag-ltr .ag-column-select-indent-76 {
  padding-left: 1520px;
}

.ag-rtl .ag-column-select-indent-76 {
  padding-right: 1520px;
}

.ag-ltr .ag-row-group-indent-76 {
  padding-left: 1520px;
}

.ag-rtl .ag-row-group-indent-76 {
  padding-right: 1520px;
}

.ag-ltr .ag-column-select-indent-77 {
  padding-left: 1540px;
}

.ag-rtl .ag-column-select-indent-77 {
  padding-right: 1540px;
}

.ag-ltr .ag-row-group-indent-77 {
  padding-left: 1540px;
}

.ag-rtl .ag-row-group-indent-77 {
  padding-right: 1540px;
}

.ag-ltr .ag-column-select-indent-78 {
  padding-left: 1560px;
}

.ag-rtl .ag-column-select-indent-78 {
  padding-right: 1560px;
}

.ag-ltr .ag-row-group-indent-78 {
  padding-left: 1560px;
}

.ag-rtl .ag-row-group-indent-78 {
  padding-right: 1560px;
}

.ag-ltr .ag-column-select-indent-79 {
  padding-left: 1580px;
}

.ag-rtl .ag-column-select-indent-79 {
  padding-right: 1580px;
}

.ag-ltr .ag-row-group-indent-79 {
  padding-left: 1580px;
}

.ag-rtl .ag-row-group-indent-79 {
  padding-right: 1580px;
}

.ag-ltr .ag-column-select-indent-80 {
  padding-left: 1600px;
}

.ag-rtl .ag-column-select-indent-80 {
  padding-right: 1600px;
}

.ag-ltr .ag-row-group-indent-80 {
  padding-left: 1600px;
}

.ag-rtl .ag-row-group-indent-80 {
  padding-right: 1600px;
}

.ag-ltr .ag-column-select-indent-81 {
  padding-left: 1620px;
}

.ag-rtl .ag-column-select-indent-81 {
  padding-right: 1620px;
}

.ag-ltr .ag-row-group-indent-81 {
  padding-left: 1620px;
}

.ag-rtl .ag-row-group-indent-81 {
  padding-right: 1620px;
}

.ag-ltr .ag-column-select-indent-82 {
  padding-left: 1640px;
}

.ag-rtl .ag-column-select-indent-82 {
  padding-right: 1640px;
}

.ag-ltr .ag-row-group-indent-82 {
  padding-left: 1640px;
}

.ag-rtl .ag-row-group-indent-82 {
  padding-right: 1640px;
}

.ag-ltr .ag-column-select-indent-83 {
  padding-left: 1660px;
}

.ag-rtl .ag-column-select-indent-83 {
  padding-right: 1660px;
}

.ag-ltr .ag-row-group-indent-83 {
  padding-left: 1660px;
}

.ag-rtl .ag-row-group-indent-83 {
  padding-right: 1660px;
}

.ag-ltr .ag-column-select-indent-84 {
  padding-left: 1680px;
}

.ag-rtl .ag-column-select-indent-84 {
  padding-right: 1680px;
}

.ag-ltr .ag-row-group-indent-84 {
  padding-left: 1680px;
}

.ag-rtl .ag-row-group-indent-84 {
  padding-right: 1680px;
}

.ag-ltr .ag-column-select-indent-85 {
  padding-left: 1700px;
}

.ag-rtl .ag-column-select-indent-85 {
  padding-right: 1700px;
}

.ag-ltr .ag-row-group-indent-85 {
  padding-left: 1700px;
}

.ag-rtl .ag-row-group-indent-85 {
  padding-right: 1700px;
}

.ag-ltr .ag-column-select-indent-86 {
  padding-left: 1720px;
}

.ag-rtl .ag-column-select-indent-86 {
  padding-right: 1720px;
}

.ag-ltr .ag-row-group-indent-86 {
  padding-left: 1720px;
}

.ag-rtl .ag-row-group-indent-86 {
  padding-right: 1720px;
}

.ag-ltr .ag-column-select-indent-87 {
  padding-left: 1740px;
}

.ag-rtl .ag-column-select-indent-87 {
  padding-right: 1740px;
}

.ag-ltr .ag-row-group-indent-87 {
  padding-left: 1740px;
}

.ag-rtl .ag-row-group-indent-87 {
  padding-right: 1740px;
}

.ag-ltr .ag-column-select-indent-88 {
  padding-left: 1760px;
}

.ag-rtl .ag-column-select-indent-88 {
  padding-right: 1760px;
}

.ag-ltr .ag-row-group-indent-88 {
  padding-left: 1760px;
}

.ag-rtl .ag-row-group-indent-88 {
  padding-right: 1760px;
}

.ag-ltr .ag-column-select-indent-89 {
  padding-left: 1780px;
}

.ag-rtl .ag-column-select-indent-89 {
  padding-right: 1780px;
}

.ag-ltr .ag-row-group-indent-89 {
  padding-left: 1780px;
}

.ag-rtl .ag-row-group-indent-89 {
  padding-right: 1780px;
}

.ag-ltr .ag-column-select-indent-90 {
  padding-left: 1800px;
}

.ag-rtl .ag-column-select-indent-90 {
  padding-right: 1800px;
}

.ag-ltr .ag-row-group-indent-90 {
  padding-left: 1800px;
}

.ag-rtl .ag-row-group-indent-90 {
  padding-right: 1800px;
}

.ag-ltr .ag-column-select-indent-91 {
  padding-left: 1820px;
}

.ag-rtl .ag-column-select-indent-91 {
  padding-right: 1820px;
}

.ag-ltr .ag-row-group-indent-91 {
  padding-left: 1820px;
}

.ag-rtl .ag-row-group-indent-91 {
  padding-right: 1820px;
}

.ag-ltr .ag-column-select-indent-92 {
  padding-left: 1840px;
}

.ag-rtl .ag-column-select-indent-92 {
  padding-right: 1840px;
}

.ag-ltr .ag-row-group-indent-92 {
  padding-left: 1840px;
}

.ag-rtl .ag-row-group-indent-92 {
  padding-right: 1840px;
}

.ag-ltr .ag-column-select-indent-93 {
  padding-left: 1860px;
}

.ag-rtl .ag-column-select-indent-93 {
  padding-right: 1860px;
}

.ag-ltr .ag-row-group-indent-93 {
  padding-left: 1860px;
}

.ag-rtl .ag-row-group-indent-93 {
  padding-right: 1860px;
}

.ag-ltr .ag-column-select-indent-94 {
  padding-left: 1880px;
}

.ag-rtl .ag-column-select-indent-94 {
  padding-right: 1880px;
}

.ag-ltr .ag-row-group-indent-94 {
  padding-left: 1880px;
}

.ag-rtl .ag-row-group-indent-94 {
  padding-right: 1880px;
}

.ag-ltr .ag-column-select-indent-95 {
  padding-left: 1900px;
}

.ag-rtl .ag-column-select-indent-95 {
  padding-right: 1900px;
}

.ag-ltr .ag-row-group-indent-95 {
  padding-left: 1900px;
}

.ag-rtl .ag-row-group-indent-95 {
  padding-right: 1900px;
}

.ag-ltr .ag-column-select-indent-96 {
  padding-left: 1920px;
}

.ag-rtl .ag-column-select-indent-96 {
  padding-right: 1920px;
}

.ag-ltr .ag-row-group-indent-96 {
  padding-left: 1920px;
}

.ag-rtl .ag-row-group-indent-96 {
  padding-right: 1920px;
}

.ag-ltr .ag-column-select-indent-97 {
  padding-left: 1940px;
}

.ag-rtl .ag-column-select-indent-97 {
  padding-right: 1940px;
}

.ag-ltr .ag-row-group-indent-97 {
  padding-left: 1940px;
}

.ag-rtl .ag-row-group-indent-97 {
  padding-right: 1940px;
}

.ag-ltr .ag-column-select-indent-98 {
  padding-left: 1960px;
}

.ag-rtl .ag-column-select-indent-98 {
  padding-right: 1960px;
}

.ag-ltr .ag-row-group-indent-98 {
  padding-left: 1960px;
}

.ag-rtl .ag-row-group-indent-98 {
  padding-right: 1960px;
}

.ag-ltr .ag-column-select-indent-99 {
  padding-left: 1980px;
}

.ag-rtl .ag-column-select-indent-99 {
  padding-right: 1980px;
}

.ag-ltr .ag-row-group-indent-99 {
  padding-left: 1980px;
}

.ag-rtl .ag-row-group-indent-99 {
  padding-right: 1980px;
}

.ag-ltr {
  direction: ltr;
}

.ag-ltr .ag-body, .ag-ltr .ag-floating-top, .ag-ltr .ag-floating-bottom, .ag-ltr .ag-header, .ag-ltr .ag-body-viewport, .ag-ltr .ag-body-horizontal-scroll {
  flex-direction: row;
}

.ag-rtl {
  direction: rtl;
}

.ag-rtl .ag-body, .ag-rtl .ag-floating-top, .ag-rtl .ag-floating-bottom, .ag-rtl .ag-header, .ag-rtl .ag-body-viewport, .ag-rtl .ag-body-horizontal-scroll {
  flex-direction: row-reverse;
}

.ag-rtl .ag-icon-contracted,
.ag-rtl .ag-icon-tree-closed {
  display: block;
  transform: rotate(180deg);
}

.ag-body .ag-body-viewport {
  -webkit-overflow-scrolling: touch;
}

.ag-chart {
  position: relative;
  display: flex;
  overflow: hidden;
  width: 100%;
  height: 100%;
}

.ag-chart-components-wrapper {
  position: relative;
  display: flex;
  flex: 1 1 auto;
  overflow: hidden;
}

.ag-chart-title-edit {
  position: absolute;
  display: none;
  top: 0;
  left: 0;
  text-align: center;
}

.ag-chart-title-edit.currently-editing {
  display: inline-block;
}

.ag-chart-canvas-wrapper {
  position: relative;
  flex: 1 1 auto;
  overflow: hidden;
}

.ag-charts-canvas {
  display: block;
}

.ag-chart-menu {
  position: absolute;
  top: 10px;
  width: 24px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.ag-ltr .ag-chart-menu {
  right: 20px;
}

.ag-rtl .ag-chart-menu {
  left: 20px;
}

.ag-chart-docked-container {
  position: relative;
  width: 0;
  min-width: 0;
  transition: min-width 0.4s;
}

.ag-chart-menu-hidden ~ .ag-chart-docked-container {
  max-width: 0;
  overflow: hidden;
}

.ag-chart-tabbed-menu {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.ag-chart-tabbed-menu-header {
  flex: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  cursor: default;
}

.ag-chart-tabbed-menu-body {
  display: flex;
  flex: 1 1 auto;
  align-items: stretch;
  overflow: hidden;
}

.ag-chart-tab {
  width: 100%;
  overflow: hidden;
  overflow-y: auto;
}

.ag-chart-settings {
  overflow-x: hidden;
}

.ag-chart-settings-wrapper {
  position: relative;
  flex-direction: column;
  width: 100%;
  height: 100%;
  display: flex;
  overflow: hidden;
}

.ag-chart-settings-nav-bar {
  display: flex;
  align-items: center;
  width: 100%;
  height: 30px;
  padding: 0 10px;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.ag-chart-settings-card-selector {
  display: flex;
  align-items: center;
  justify-content: space-around;
  flex: 1 1 auto;
  height: 100%;
  padding: 0 10px;
}

.ag-chart-settings-card-item {
  cursor: pointer;
  width: 10px;
  height: 10px;
  background-color: #000;
  position: relative;
}

.ag-chart-settings-card-item.ag-not-selected {
  opacity: 0.2;
}

.ag-chart-settings-card-item::before {
  content: " ";
  display: block;
  position: absolute;
  background-color: transparent;
  left: 50%;
  top: 50%;
  margin-left: -10px;
  margin-top: -10px;
  width: 20px;
  height: 20px;
}

.ag-chart-settings-prev,
.ag-chart-settings-next {
  position: relative;
  flex: none;
}

.ag-chart-settings-prev-button,
.ag-chart-settings-next-button {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  cursor: pointer;
  opacity: 0;
}

.ag-chart-settings-mini-charts-container {
  position: relative;
  flex: 1 1 auto;
  overflow-x: hidden;
  overflow-y: auto;
}

.ag-chart-settings-mini-wrapper {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  min-height: 100%;
  overflow: hidden;
}

.ag-chart-settings-mini-wrapper.ag-animating {
  transition: left 0.3s;
  transition-timing-function: ease-in-out;
}

.ag-chart-mini-thumbnail {
  cursor: pointer;
}

.ag-chart-mini-thumbnail-canvas {
  display: block;
}

.ag-chart-data-wrapper,
.ag-chart-format-wrapper {
  display: flex;
  flex-direction: column;
  position: relative;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.ag-chart-data-section,
.ag-chart-format-section {
  display: flex;
  margin: 0;
}

.ag-charts-font-panel-controls {
  justify-content: space-between;
}

.ag-chart-empty-text {
  display: flex;
  top: 0;
  width: 100%;
  height: 100%;
  align-items: center;
  justify-content: center;
}

.ag-chart .ag-chart-menu {
  opacity: 0;
  pointer-events: none;
}

.ag-chart-menu-hidden:hover .ag-chart-menu {
  opacity: 1;
  pointer-events: all;
}

.ag-date-time-list-page-title-bar {
  display: flex;
}

.ag-date-time-list-page-column-labels-row,
.ag-date-time-list-page-entries-row {
  display: flex;
}

.ag-date-time-list-page-column-label,
.ag-date-time-list-page-entry {
  flex-basis: 0;
  flex-grow: 1;
}

.ag-date-time-list-page-entry {
  cursor: pointer;
}

.ag-theme-material {
  -webkit-font-smoothing: antialiased;
  color: rgba(0, 0, 0, 0.87);
  color: var(--ag-foreground-color, rgba(0, 0, 0, 0.87));
  font-family: "Roboto", sans-serif;
  font-size: 13px;
  line-height: normal;
}

@font-face {
  font-family: "agGridMaterial";
  src: url("data:application/font-woff;charset=utf-8;base64,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") format("woff");
  font-weight: normal;
  font-style: normal;
}

.ag-theme-material .ag-icon {
  font-family: "agGridMaterial";
  font-size: 18px;
  line-height: 18px;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.ag-theme-material .ag-icon-aggregation::before {
  content: "\f101";
}

.ag-theme-material .ag-icon-arrows::before {
  content: "\f102";
}

.ag-theme-material .ag-icon-asc::before {
  content: "\f103";
}

.ag-theme-material .ag-icon-cancel::before {
  content: "\f104";
}

.ag-theme-material .ag-icon-chart::before {
  content: "\f105";
}

.ag-theme-material .ag-icon-color-picker::before {
  content: "\f109";
}

.ag-theme-material .ag-icon-columns::before {
  content: "\f10a";
}

.ag-theme-material .ag-icon-contracted::before {
  content: "\f10b";
}

.ag-theme-material .ag-icon-copy::before {
  content: "\f10c";
}

.ag-theme-material .ag-icon-cross::before {
  content: "\f10d";
}

.ag-theme-material .ag-icon-csv::before {
  content: "\f10e";
}

.ag-theme-material .ag-icon-desc::before {
  content: "\f10f";
}

.ag-theme-material .ag-icon-excel::before {
  content: "\f110";
}

.ag-theme-material .ag-icon-expanded::before {
  content: "\f111";
}

.ag-theme-material .ag-icon-eye-slash::before {
  content: "\f112";
}

.ag-theme-material .ag-icon-eye::before {
  content: "\f113";
}

.ag-theme-material .ag-icon-filter::before {
  content: "\f114";
}

.ag-theme-material .ag-icon-first::before {
  content: "\f115";
}

.ag-theme-material .ag-icon-grip::before {
  content: "\f116";
}

.ag-theme-material .ag-icon-group::before {
  content: "\f117";
}

.ag-theme-material .ag-icon-last::before {
  content: "\f118";
}

.ag-theme-material .ag-icon-left::before {
  content: "\f119";
}

.ag-theme-material .ag-icon-linked::before {
  content: "\f11a";
}

.ag-theme-material .ag-icon-loading::before {
  content: "\f11b";
}

.ag-theme-material .ag-icon-maximize::before {
  content: "\f11c";
}

.ag-theme-material .ag-icon-menu::before {
  content: "\f11d";
}

.ag-theme-material .ag-icon-minimize::before {
  content: "\f11e";
}

.ag-theme-material .ag-icon-next::before {
  content: "\f11f";
}

.ag-theme-material .ag-icon-none::before {
  content: "\f120";
}

.ag-theme-material .ag-icon-not-allowed::before {
  content: "\f121";
}

.ag-theme-material .ag-icon-paste::before {
  content: "\f122";
}

.ag-theme-material .ag-icon-pin::before {
  content: "\f123";
}

.ag-theme-material .ag-icon-pivot::before {
  content: "\f124";
}

.ag-theme-material .ag-icon-previous::before {
  content: "\f125";
}

.ag-theme-material .ag-icon-right::before {
  content: "\f128";
}

.ag-theme-material .ag-icon-save::before {
  content: "\f129";
}

.ag-theme-material .ag-icon-small-down::before {
  content: "\f12a";
}

.ag-theme-material .ag-icon-small-left::before {
  content: "\f12b";
}

.ag-theme-material .ag-icon-small-right::before {
  content: "\f12c";
}

.ag-theme-material .ag-icon-small-up::before {
  content: "\f12d";
}

.ag-theme-material .ag-icon-tick::before {
  content: "\f12e";
}

.ag-theme-material .ag-icon-tree-closed::before {
  content: "\f12f";
}

.ag-theme-material .ag-icon-tree-indeterminate::before {
  content: "\f130";
}

.ag-theme-material .ag-icon-tree-open::before {
  content: "\f131";
}

.ag-theme-material .ag-icon-unlinked::before {
  content: "\f132";
}

.ag-theme-material .ag-icon-row-drag::before {
  content: "\f116";
}

.ag-theme-material .ag-left-arrow::before {
  content: "\f119";
}

.ag-theme-material .ag-right-arrow::before {
  content: "\f128";
}

.ag-theme-material .ag-root-wrapper {
  background-color: #fff;
  background-color: var(--ag-background-color, #fff);
}

.ag-theme-material [class^='ag-'], .ag-theme-material [class^='ag-']:focus, .ag-theme-material [class^='ag-']:after, .ag-theme-material [class^='ag-']:before {
  box-sizing: border-box;
  outline: none;
}

.ag-theme-material [class^='ag-']::-ms-clear {
  display: none;
}

.ag-theme-material .ag-checkbox .ag-input-wrapper,
.ag-theme-material .ag-radio-button .ag-input-wrapper {
  overflow: visible;
}

.ag-theme-material .ag-range-field .ag-input-wrapper {
  height: 100%;
}

.ag-theme-material .ag-toggle-button {
  flex: none;
  width: unset;
  min-width: unset;
}

.ag-theme-material .ag-ltr .ag-label-align-right .ag-label {
  margin-left: 8px;
}

.ag-theme-material .ag-rtl .ag-label-align-right .ag-label {
  margin-right: 8px;
}

.ag-theme-material input[class^='ag-'] {
  margin: 0;
  background-color: #fff;
  background-color: var(--ag-background-color, #fff);
}

.ag-theme-material textarea[class^='ag-'],
.ag-theme-material select[class^='ag-'] {
  background-color: #fff;
  background-color: var(--ag-background-color, #fff);
}

.ag-theme-material input[class^='ag-']:not([type]),
.ag-theme-material input[class^='ag-'][type='text'],
.ag-theme-material input[class^='ag-'][type='number'],
.ag-theme-material input[class^='ag-'][type='tel'],
.ag-theme-material input[class^='ag-'][type='date'],
.ag-theme-material input[class^='ag-'][type='datetime-local'],
.ag-theme-material textarea[class^='ag-'] {
  font-size: inherit;
  line-height: inherit;
  color: inherit;
  border-width: 1px;
  border-style: solid;
  border-color: #000000;
  border-color: var(--ag-input-border-color, #000000);
}

.ag-theme-material input[class^='ag-']:not([type]):disabled,
.ag-theme-material input[class^='ag-'][type='text']:disabled,
.ag-theme-material input[class^='ag-'][type='number']:disabled,
.ag-theme-material input[class^='ag-'][type='tel']:disabled,
.ag-theme-material input[class^='ag-'][type='date']:disabled,
.ag-theme-material input[class^='ag-'][type='datetime-local']:disabled,
.ag-theme-material textarea[class^='ag-']:disabled {
  color: rgba(0, 0, 0, 0.38);
  color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38));
  background-color: transparent;
  background-color: var(--ag-input-disabled-background-color, transparent);
  border-color: rgba(0, 0, 0, 0.3);
  border-color: var(--ag-input-disabled-border-color, rgba(0, 0, 0, 0.3));
}

.ag-theme-material input[class^='ag-']:not([type]):focus,
.ag-theme-material input[class^='ag-'][type='text']:focus,
.ag-theme-material input[class^='ag-'][type='number']:focus,
.ag-theme-material input[class^='ag-'][type='tel']:focus,
.ag-theme-material input[class^='ag-'][type='date']:focus,
.ag-theme-material input[class^='ag-'][type='datetime-local']:focus,
.ag-theme-material textarea[class^='ag-']:focus {
  outline: none;
  box-shadow: 0 0 0 5px rgba(32, 33, 36, 0.122);
  border-color: #3f51b5;
  border-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5));
}

.ag-theme-material input[class^='ag-'][type='number'] {
  -moz-appearance: textfield;
}

.ag-theme-material input[class^='ag-'][type='number']::-webkit-outer-spin-button, .ag-theme-material input[class^='ag-'][type='number']::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.ag-theme-material input[class^='ag-'][type='range'] {
  padding: 0;
}

.ag-theme-material input[class^='ag-'][type='button']:focus, .ag-theme-material button[class^='ag-']:focus {
  box-shadow: 0 0 0 5px rgba(32, 33, 36, 0.122);
}

.ag-theme-material .ag-drag-handle {
  color: rgba(0, 0, 0, 0.54);
  color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54));
}

.ag-theme-material .ag-list-item, .ag-theme-material .ag-virtual-list-item {
  height: 40px;
}

.ag-theme-material .ag-keyboard-focus .ag-virtual-list-item:focus {
  outline: none;
}

.ag-theme-material .ag-keyboard-focus .ag-virtual-list-item:focus::after {
  content: '';
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: 4px;
  left: 4px;
  display: block;
  width: calc(100% - 8px);
  height: calc(100% - 8px);
  border: 1px solid;
  border-color: #3f51b5;
  border-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5));
}

.ag-theme-material .ag-select-list {
  background-color: #fff;
  background-color: var(--ag-background-color, #fff);
  overflow-y: auto;
  overflow-x: hidden;
}

.ag-theme-material .ag-list-item {
  display: flex;
  align-items: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ag-theme-material .ag-list-item.ag-active-item {
  background-color: #fafafa;
  background-color: var(--ag-row-hover-color, #fafafa);
}

.ag-theme-material .ag-select-list-item {
  padding-left: 4px;
  padding-right: 4px;
  cursor: default;
  -moz-user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.ag-theme-material .ag-select-list-item span {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}

.ag-theme-material .ag-select .ag-picker-field-wrapper {
  background-color: #fff;
  background-color: var(--ag-background-color, #fff);
  min-height: 40px;
  cursor: default;
}

.ag-theme-material .ag-select.ag-disabled .ag-picker-field-wrapper:focus {
  box-shadow: none;
}

.ag-theme-material .ag-select:not(.ag-cell-editor) {
  height: 40px;
}

.ag-theme-material .ag-select .ag-picker-field-display {
  margin: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ag-theme-material .ag-select .ag-picker-field-icon {
  display: flex;
  align-items: center;
}

.ag-theme-material .ag-select.ag-disabled {
  opacity: 0.5;
}

.ag-theme-material .ag-rich-select {
  background-color: #fafafa;
  background-color: var(--ag-control-panel-background-color, #fafafa);
}

.ag-theme-material .ag-rich-select-list {
  width: 100%;
  min-width: 200px;
  height: 312px;
}

.ag-theme-material .ag-rich-select-value {
  padding: 0 8px 0 24px;
  height: 48px;
}

.ag-theme-material .ag-rich-select-virtual-list-item {
  cursor: default;
  height: 40px;
}

.ag-theme-material .ag-rich-select-virtual-list-item:hover {
  background-color: #fafafa;
  background-color: var(--ag-row-hover-color, #fafafa);
}

.ag-theme-material .ag-rich-select-row {
  padding-left: 24px;
}

.ag-theme-material .ag-rich-select-row-selected {
  background-color: #eee;
  background-color: var(--ag-selected-row-background-color, #eee);
}

.ag-theme-material .ag-row-drag,
.ag-theme-material .ag-selection-checkbox,
.ag-theme-material .ag-group-expanded,
.ag-theme-material .ag-group-contracted {
  color: rgba(0, 0, 0, 0.54);
  color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54));
}

.ag-theme-material .ag-ltr .ag-row-drag, .ag-theme-material .ag-ltr .ag-selection-checkbox, .ag-theme-material .ag-ltr .ag-group-expanded, .ag-theme-material .ag-ltr .ag-group-contracted {
  margin-right: 24px;
}

.ag-theme-material .ag-rtl .ag-row-drag, .ag-theme-material .ag-rtl .ag-selection-checkbox, .ag-theme-material .ag-rtl .ag-group-expanded, .ag-theme-material .ag-rtl .ag-group-contracted {
  margin-left: 24px;
}

.ag-theme-material .ag-cell-wrapper > *:not(.ag-cell-value):not(.ag-group-value) {
  height: 46px;
  display: flex;
  align-items: center;
  flex: none;
}

.ag-theme-material .ag-group-expanded,
.ag-theme-material .ag-group-contracted {
  cursor: pointer;
}

.ag-theme-material .ag-group-title-bar-icon {
  cursor: pointer;
  flex: none;
  color: rgba(0, 0, 0, 0.54);
  color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54));
}

.ag-theme-material .ag-ltr .ag-group-child-count {
  margin-left: 2px;
}

.ag-theme-material .ag-rtl .ag-group-child-count {
  margin-right: 2px;
}

.ag-theme-material .ag-group-title-bar {
  background-color: #eee;
  background-color: var(--ag-subheader-background-color, #eee);
  padding: 8px;
}

.ag-theme-material .ag-group-toolbar {
  padding: 8px;
}

.ag-theme-material .ag-disabled-group-title-bar, .ag-theme-material .ag-disabled-group-container {
  opacity: 0.5;
}

.ag-theme-material .group-item {
  margin: 4px 0;
}

.ag-theme-material .ag-label {
  white-space: nowrap;
}

.ag-theme-material .ag-ltr .ag-label {
  margin-right: 8px;
}

.ag-theme-material .ag-rtl .ag-label {
  margin-left: 8px;
}

.ag-theme-material .ag-label-align-top .ag-label {
  margin-bottom: 4px;
}

.ag-theme-material .ag-ltr .ag-slider-field, .ag-theme-material .ag-ltr .ag-angle-select-field {
  margin-right: 16px;
}

.ag-theme-material .ag-rtl .ag-slider-field, .ag-theme-material .ag-rtl .ag-angle-select-field {
  margin-left: 16px;
}

.ag-theme-material .ag-angle-select-parent-circle {
  width: 24px;
  height: 24px;
  border-radius: 12px;
  border: solid 1px;
  border-color: #e2e2e2;
  border-color: var(--ag-border-color, #e2e2e2);
  background-color: #fff;
  background-color: var(--ag-background-color, #fff);
}

.ag-theme-material .ag-angle-select-child-circle {
  top: 4px;
  left: 12px;
  width: 6px;
  height: 6px;
  margin-left: -3px;
  margin-top: -4px;
  border-radius: 3px;
  background-color: rgba(0, 0, 0, 0.54);
  background-color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54));
}

.ag-theme-material .ag-picker-field-wrapper {
  border: 1px solid;
  border-color: #e2e2e2;
  border-color: var(--ag-border-color, #e2e2e2);
  border-radius: 5px;
}

.ag-theme-material .ag-picker-field-wrapper:focus {
  box-shadow: 0 0 0 5px rgba(32, 33, 36, 0.122);
}

.ag-theme-material .ag-picker-field-button {
  background-color: #fff;
  background-color: var(--ag-background-color, #fff);
  color: rgba(0, 0, 0, 0.54);
  color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54));
}

.ag-theme-material .ag-dialog.ag-color-dialog {
  border-radius: 5px;
}

.ag-theme-material .ag-color-picker .ag-picker-field-display {
  height: 18px;
}

.ag-theme-material .ag-color-panel {
  padding: 8px;
}

.ag-theme-material .ag-spectrum-color {
  background-color: red;
  border-radius: 2px;
}

.ag-theme-material .ag-spectrum-tools {
  padding: 10px;
}

.ag-theme-material .ag-spectrum-sat {
  background-image: linear-gradient(to right, white, rgba(204, 154, 129, 0));
}

.ag-theme-material .ag-spectrum-val {
  background-image: linear-gradient(to top, black, rgba(204, 154, 129, 0));
}

.ag-theme-material .ag-spectrum-dragger {
  border-radius: 12px;
  height: 12px;
  width: 12px;
  border: 1px solid white;
  background: black;
  box-shadow: 0 0 2px 0px rgba(0, 0, 0, 0.24);
}

.ag-theme-material .ag-spectrum-hue-background {
  border-radius: 2px;
}

.ag-theme-material .ag-spectrum-alpha-background {
  border-radius: 2px;
}

.ag-theme-material .ag-spectrum-tool {
  margin-bottom: 10px;
  height: 11px;
  border-radius: 2px;
}

.ag-theme-material .ag-spectrum-slider {
  margin-top: -12px;
  width: 13px;
  height: 13px;
  border-radius: 13px;
  background-color: #f8f8f8;
  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37);
}

.ag-theme-material .ag-recent-color {
  margin: 0 3px;
}

.ag-theme-material .ag-recent-color:first-child {
  margin-left: 0;
}

.ag-theme-material .ag-recent-color:last-child {
  margin-right: 0;
}

.ag-theme-material.ag-dnd-ghost {
  background: #fff;
  background: var(--ag-background-color, #fff);
  border-radius: 2px;
  box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
  padding: 8px;
  overflow: hidden;
  text-overflow: ellipsis;
  color: rgba(0, 0, 0, 0.54);
  color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54));
  height: 20px !important;
  line-height: 20px;
  margin: 0;
  padding: 0 16px;
  transform: translateY(16px);
}

.ag-theme-material .ag-dnd-ghost-icon {
  margin-right: 8px;
  color: rgba(0, 0, 0, 0.87);
  color: var(--ag-foreground-color, rgba(0, 0, 0, 0.87));
}

.ag-theme-material .ag-popup-child:not(.ag-tooltip-custom) {
  box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.3);
}

.ag-dragging-range-handle .ag-theme-material .ag-dialog,
.ag-dragging-fill-handle .ag-theme-material .ag-dialog {
  opacity: 0.7;
  pointer-events: none;
}

.ag-theme-material .ag-dialog {
  border-radius: 2px;
}

.ag-theme-material .ag-panel {
  background-color: #fff;
  background-color: var(--ag-background-color, #fff);
}

.ag-theme-material .ag-panel-title-bar {
  background-color: #fff;
  background-color: var(--ag-header-background-color, #fff);
  color: rgba(0, 0, 0, 0.54);
  color: var(--ag-header-foreground-color, rgba(0, 0, 0, 0.54));
  height: 20px;
  padding: 8px 24px;
}

.ag-theme-material .ag-ltr .ag-panel-title-bar-button {
  margin-left: 8px;
}

.ag-theme-material .ag-rtl .ag-panel-title-bar-button {
  margin-right: 8px;
}

.ag-theme-material .ag-tooltip {
  background-color: #fff;
  background-color: var(--ag-header-background-color, #fff);
  color: rgba(0, 0, 0, 0.87);
  color: var(--ag-foreground-color, rgba(0, 0, 0, 0.87));
  padding: 8px;
  border-radius: 2px;
  transition: opacity 1s;
}

.ag-theme-material .ag-tooltip.ag-tooltip-hiding {
  opacity: 0;
}

.ag-theme-material .ag-ltr .ag-column-select-indent-1 {
  padding-left: 26px;
}

.ag-theme-material .ag-rtl .ag-column-select-indent-1 {
  padding-right: 26px;
}

.ag-theme-material .ag-ltr .ag-column-select-indent-2 {
  padding-left: 52px;
}

.ag-theme-material .ag-rtl .ag-column-select-indent-2 {
  padding-right: 52px;
}

.ag-theme-material .ag-ltr .ag-column-select-indent-3 {
  padding-left: 78px;
}

.ag-theme-material .ag-rtl .ag-column-select-indent-3 {
  padding-right: 78px;
}

.ag-theme-material .ag-ltr .ag-column-select-indent-4 {
  padding-left: 104px;
}

.ag-theme-material .ag-rtl .ag-column-select-indent-4 {
  padding-right: 104px;
}

.ag-theme-material .ag-ltr .ag-column-select-indent-5 {
  padding-left: 130px;
}

.ag-theme-material .ag-rtl .ag-column-select-indent-5 {
  padding-right: 130px;
}

.ag-theme-material .ag-ltr .ag-column-select-indent-6 {
  padding-left: 156px;
}

.ag-theme-material .ag-rtl .ag-column-select-indent-6 {
  padding-right: 156px;
}

.ag-theme-material .ag-ltr .ag-column-select-indent-7 {
  padding-left: 182px;
}

.ag-theme-material .ag-rtl .ag-column-select-indent-7 {
  padding-right: 182px;
}

.ag-theme-material .ag-ltr .ag-column-select-indent-8 {
  padding-left: 208px;
}

.ag-theme-material .ag-rtl .ag-column-select-indent-8 {
  padding-right: 208px;
}

.ag-theme-material .ag-ltr .ag-column-select-indent-9 {
  padding-left: 234px;
}

.ag-theme-material .ag-rtl .ag-column-select-indent-9 {
  padding-right: 234px;
}

.ag-theme-material .ag-column-select-header-icon {
  cursor: pointer;
}

.ag-theme-material .ag-keyboard-focus .ag-column-select-header-icon:focus {
  outline: none;
}

.ag-theme-material .ag-keyboard-focus .ag-column-select-header-icon:focus::after {
  content: '';
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: 0px;
  left: 0px;
  display: block;
  width: calc(100% - 0px);
  height: calc(100% - 0px);
  border: 1px solid;
  border-color: #3f51b5;
  border-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5));
}

.ag-theme-material .ag-ltr .ag-column-group-icons:not(:last-child), .ag-theme-material .ag-ltr .ag-column-select-header-icon:not(:last-child), .ag-theme-material .ag-ltr .ag-column-select-header-checkbox:not(:last-child), .ag-theme-material .ag-ltr .ag-column-select-header-filter-wrapper:not(:last-child), .ag-theme-material .ag-ltr .ag-column-select-checkbox:not(:last-child), .ag-theme-material .ag-ltr .ag-column-select-column-drag-handle:not(:last-child), .ag-theme-material .ag-ltr .ag-column-select-column-group-drag-handle:not(:last-child), .ag-theme-material .ag-ltr .ag-column-select-column-label:not(:last-child) {
  margin-right: 12px;
}

.ag-theme-material .ag-rtl .ag-column-group-icons:not(:last-child), .ag-theme-material .ag-rtl .ag-column-select-header-icon:not(:last-child), .ag-theme-material .ag-rtl .ag-column-select-header-checkbox:not(:last-child), .ag-theme-material .ag-rtl .ag-column-select-header-filter-wrapper:not(:last-child), .ag-theme-material .ag-rtl .ag-column-select-checkbox:not(:last-child), .ag-theme-material .ag-rtl .ag-column-select-column-drag-handle:not(:last-child), .ag-theme-material .ag-rtl .ag-column-select-column-group-drag-handle:not(:last-child), .ag-theme-material .ag-rtl .ag-column-select-column-label:not(:last-child) {
  margin-left: 12px;
}

.ag-theme-material .ag-keyboard-focus .ag-column-select-virtual-list-item:focus {
  outline: none;
}

.ag-theme-material .ag-keyboard-focus .ag-column-select-virtual-list-item:focus::after {
  content: '';
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: 1px;
  left: 1px;
  display: block;
  width: calc(100% - 2px);
  height: calc(100% - 2px);
  border: 1px solid;
  border-color: #3f51b5;
  border-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5));
}

.ag-theme-material .ag-column-select-column-group:not(:last-child),
.ag-theme-material .ag-column-select-column:not(:last-child) {
  margin-bottom: 14px;
}

.ag-theme-material .ag-column-select-column-readonly,
.ag-theme-material .ag-column-select-column-group-readonly {
  color: rgba(0, 0, 0, 0.38);
  color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38));
  pointer-events: none;
}

.ag-theme-material .ag-ltr .ag-column-select-add-group-indent {
  margin-left: 34px;
}

.ag-theme-material .ag-rtl .ag-column-select-add-group-indent {
  margin-right: 34px;
}

.ag-theme-material .ag-column-select-virtual-list-viewport {
  padding: 8px 0px;
}

.ag-theme-material .ag-column-select-virtual-list-item {
  margin: 0 12px;
}

.ag-theme-material .ag-rtl {
  text-align: right;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-1 {
  padding-left: 66px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-1 {
  padding-right: 66px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-1 {
  padding-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-1 {
  padding-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row-level-1 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-1 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-2 {
  padding-left: 108px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-2 {
  padding-right: 108px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-2 {
  padding-left: 84px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-2 {
  padding-right: 84px;
}

.ag-theme-material .ag-ltr .ag-row-level-2 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-2 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-3 {
  padding-left: 150px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-3 {
  padding-right: 150px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-3 {
  padding-left: 126px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-3 {
  padding-right: 126px;
}

.ag-theme-material .ag-ltr .ag-row-level-3 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-3 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-4 {
  padding-left: 192px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-4 {
  padding-right: 192px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-4 {
  padding-left: 168px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-4 {
  padding-right: 168px;
}

.ag-theme-material .ag-ltr .ag-row-level-4 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-4 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-5 {
  padding-left: 234px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-5 {
  padding-right: 234px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-5 {
  padding-left: 210px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-5 {
  padding-right: 210px;
}

.ag-theme-material .ag-ltr .ag-row-level-5 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-5 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-6 {
  padding-left: 276px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-6 {
  padding-right: 276px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-6 {
  padding-left: 252px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-6 {
  padding-right: 252px;
}

.ag-theme-material .ag-ltr .ag-row-level-6 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-6 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-7 {
  padding-left: 318px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-7 {
  padding-right: 318px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-7 {
  padding-left: 294px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-7 {
  padding-right: 294px;
}

.ag-theme-material .ag-ltr .ag-row-level-7 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-7 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-8 {
  padding-left: 360px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-8 {
  padding-right: 360px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-8 {
  padding-left: 336px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-8 {
  padding-right: 336px;
}

.ag-theme-material .ag-ltr .ag-row-level-8 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-8 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-9 {
  padding-left: 402px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-9 {
  padding-right: 402px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-9 {
  padding-left: 378px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-9 {
  padding-right: 378px;
}

.ag-theme-material .ag-ltr .ag-row-level-9 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-9 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-10 {
  padding-left: 444px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-10 {
  padding-right: 444px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-10 {
  padding-left: 420px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-10 {
  padding-right: 420px;
}

.ag-theme-material .ag-ltr .ag-row-level-10 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-10 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-11 {
  padding-left: 486px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-11 {
  padding-right: 486px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-11 {
  padding-left: 462px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-11 {
  padding-right: 462px;
}

.ag-theme-material .ag-ltr .ag-row-level-11 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-11 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-12 {
  padding-left: 528px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-12 {
  padding-right: 528px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-12 {
  padding-left: 504px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-12 {
  padding-right: 504px;
}

.ag-theme-material .ag-ltr .ag-row-level-12 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-12 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-13 {
  padding-left: 570px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-13 {
  padding-right: 570px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-13 {
  padding-left: 546px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-13 {
  padding-right: 546px;
}

.ag-theme-material .ag-ltr .ag-row-level-13 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-13 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-14 {
  padding-left: 612px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-14 {
  padding-right: 612px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-14 {
  padding-left: 588px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-14 {
  padding-right: 588px;
}

.ag-theme-material .ag-ltr .ag-row-level-14 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-14 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-15 {
  padding-left: 654px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-15 {
  padding-right: 654px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-15 {
  padding-left: 630px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-15 {
  padding-right: 630px;
}

.ag-theme-material .ag-ltr .ag-row-level-15 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-15 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-16 {
  padding-left: 696px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-16 {
  padding-right: 696px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-16 {
  padding-left: 672px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-16 {
  padding-right: 672px;
}

.ag-theme-material .ag-ltr .ag-row-level-16 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-16 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-17 {
  padding-left: 738px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-17 {
  padding-right: 738px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-17 {
  padding-left: 714px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-17 {
  padding-right: 714px;
}

.ag-theme-material .ag-ltr .ag-row-level-17 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-17 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-18 {
  padding-left: 780px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-18 {
  padding-right: 780px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-18 {
  padding-left: 756px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-18 {
  padding-right: 756px;
}

.ag-theme-material .ag-ltr .ag-row-level-18 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-18 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-19 {
  padding-left: 822px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-19 {
  padding-right: 822px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-19 {
  padding-left: 798px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-19 {
  padding-right: 798px;
}

.ag-theme-material .ag-ltr .ag-row-level-19 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-19 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-20 {
  padding-left: 864px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-20 {
  padding-right: 864px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-20 {
  padding-left: 840px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-20 {
  padding-right: 840px;
}

.ag-theme-material .ag-ltr .ag-row-level-20 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-20 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-21 {
  padding-left: 906px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-21 {
  padding-right: 906px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-21 {
  padding-left: 882px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-21 {
  padding-right: 882px;
}

.ag-theme-material .ag-ltr .ag-row-level-21 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-21 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-22 {
  padding-left: 948px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-22 {
  padding-right: 948px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-22 {
  padding-left: 924px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-22 {
  padding-right: 924px;
}

.ag-theme-material .ag-ltr .ag-row-level-22 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-22 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-23 {
  padding-left: 990px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-23 {
  padding-right: 990px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-23 {
  padding-left: 966px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-23 {
  padding-right: 966px;
}

.ag-theme-material .ag-ltr .ag-row-level-23 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-23 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-24 {
  padding-left: 1032px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-24 {
  padding-right: 1032px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-24 {
  padding-left: 1008px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-24 {
  padding-right: 1008px;
}

.ag-theme-material .ag-ltr .ag-row-level-24 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-24 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-25 {
  padding-left: 1074px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-25 {
  padding-right: 1074px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-25 {
  padding-left: 1050px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-25 {
  padding-right: 1050px;
}

.ag-theme-material .ag-ltr .ag-row-level-25 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-25 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-26 {
  padding-left: 1116px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-26 {
  padding-right: 1116px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-26 {
  padding-left: 1092px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-26 {
  padding-right: 1092px;
}

.ag-theme-material .ag-ltr .ag-row-level-26 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-26 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-27 {
  padding-left: 1158px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-27 {
  padding-right: 1158px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-27 {
  padding-left: 1134px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-27 {
  padding-right: 1134px;
}

.ag-theme-material .ag-ltr .ag-row-level-27 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-27 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-28 {
  padding-left: 1200px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-28 {
  padding-right: 1200px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-28 {
  padding-left: 1176px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-28 {
  padding-right: 1176px;
}

.ag-theme-material .ag-ltr .ag-row-level-28 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-28 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-29 {
  padding-left: 1242px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-29 {
  padding-right: 1242px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-29 {
  padding-left: 1218px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-29 {
  padding-right: 1218px;
}

.ag-theme-material .ag-ltr .ag-row-level-29 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-29 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-30 {
  padding-left: 1284px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-30 {
  padding-right: 1284px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-30 {
  padding-left: 1260px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-30 {
  padding-right: 1260px;
}

.ag-theme-material .ag-ltr .ag-row-level-30 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-30 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-31 {
  padding-left: 1326px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-31 {
  padding-right: 1326px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-31 {
  padding-left: 1302px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-31 {
  padding-right: 1302px;
}

.ag-theme-material .ag-ltr .ag-row-level-31 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-31 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-32 {
  padding-left: 1368px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-32 {
  padding-right: 1368px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-32 {
  padding-left: 1344px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-32 {
  padding-right: 1344px;
}

.ag-theme-material .ag-ltr .ag-row-level-32 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-32 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-33 {
  padding-left: 1410px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-33 {
  padding-right: 1410px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-33 {
  padding-left: 1386px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-33 {
  padding-right: 1386px;
}

.ag-theme-material .ag-ltr .ag-row-level-33 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-33 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-34 {
  padding-left: 1452px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-34 {
  padding-right: 1452px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-34 {
  padding-left: 1428px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-34 {
  padding-right: 1428px;
}

.ag-theme-material .ag-ltr .ag-row-level-34 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-34 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-35 {
  padding-left: 1494px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-35 {
  padding-right: 1494px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-35 {
  padding-left: 1470px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-35 {
  padding-right: 1470px;
}

.ag-theme-material .ag-ltr .ag-row-level-35 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-35 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-36 {
  padding-left: 1536px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-36 {
  padding-right: 1536px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-36 {
  padding-left: 1512px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-36 {
  padding-right: 1512px;
}

.ag-theme-material .ag-ltr .ag-row-level-36 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-36 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-37 {
  padding-left: 1578px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-37 {
  padding-right: 1578px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-37 {
  padding-left: 1554px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-37 {
  padding-right: 1554px;
}

.ag-theme-material .ag-ltr .ag-row-level-37 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-37 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-38 {
  padding-left: 1620px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-38 {
  padding-right: 1620px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-38 {
  padding-left: 1596px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-38 {
  padding-right: 1596px;
}

.ag-theme-material .ag-ltr .ag-row-level-38 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-38 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-39 {
  padding-left: 1662px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-39 {
  padding-right: 1662px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-39 {
  padding-left: 1638px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-39 {
  padding-right: 1638px;
}

.ag-theme-material .ag-ltr .ag-row-level-39 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-39 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-40 {
  padding-left: 1704px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-40 {
  padding-right: 1704px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-40 {
  padding-left: 1680px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-40 {
  padding-right: 1680px;
}

.ag-theme-material .ag-ltr .ag-row-level-40 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-40 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-41 {
  padding-left: 1746px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-41 {
  padding-right: 1746px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-41 {
  padding-left: 1722px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-41 {
  padding-right: 1722px;
}

.ag-theme-material .ag-ltr .ag-row-level-41 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-41 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-42 {
  padding-left: 1788px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-42 {
  padding-right: 1788px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-42 {
  padding-left: 1764px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-42 {
  padding-right: 1764px;
}

.ag-theme-material .ag-ltr .ag-row-level-42 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-42 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-43 {
  padding-left: 1830px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-43 {
  padding-right: 1830px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-43 {
  padding-left: 1806px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-43 {
  padding-right: 1806px;
}

.ag-theme-material .ag-ltr .ag-row-level-43 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-43 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-44 {
  padding-left: 1872px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-44 {
  padding-right: 1872px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-44 {
  padding-left: 1848px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-44 {
  padding-right: 1848px;
}

.ag-theme-material .ag-ltr .ag-row-level-44 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-44 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-45 {
  padding-left: 1914px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-45 {
  padding-right: 1914px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-45 {
  padding-left: 1890px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-45 {
  padding-right: 1890px;
}

.ag-theme-material .ag-ltr .ag-row-level-45 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-45 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-46 {
  padding-left: 1956px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-46 {
  padding-right: 1956px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-46 {
  padding-left: 1932px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-46 {
  padding-right: 1932px;
}

.ag-theme-material .ag-ltr .ag-row-level-46 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-46 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-47 {
  padding-left: 1998px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-47 {
  padding-right: 1998px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-47 {
  padding-left: 1974px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-47 {
  padding-right: 1974px;
}

.ag-theme-material .ag-ltr .ag-row-level-47 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-47 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-48 {
  padding-left: 2040px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-48 {
  padding-right: 2040px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-48 {
  padding-left: 2016px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-48 {
  padding-right: 2016px;
}

.ag-theme-material .ag-ltr .ag-row-level-48 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-48 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-49 {
  padding-left: 2082px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-49 {
  padding-right: 2082px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-49 {
  padding-left: 2058px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-49 {
  padding-right: 2058px;
}

.ag-theme-material .ag-ltr .ag-row-level-49 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-49 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-50 {
  padding-left: 2124px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-50 {
  padding-right: 2124px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-50 {
  padding-left: 2100px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-50 {
  padding-right: 2100px;
}

.ag-theme-material .ag-ltr .ag-row-level-50 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-50 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-51 {
  padding-left: 2166px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-51 {
  padding-right: 2166px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-51 {
  padding-left: 2142px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-51 {
  padding-right: 2142px;
}

.ag-theme-material .ag-ltr .ag-row-level-51 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-51 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-52 {
  padding-left: 2208px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-52 {
  padding-right: 2208px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-52 {
  padding-left: 2184px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-52 {
  padding-right: 2184px;
}

.ag-theme-material .ag-ltr .ag-row-level-52 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-52 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-53 {
  padding-left: 2250px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-53 {
  padding-right: 2250px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-53 {
  padding-left: 2226px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-53 {
  padding-right: 2226px;
}

.ag-theme-material .ag-ltr .ag-row-level-53 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-53 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-54 {
  padding-left: 2292px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-54 {
  padding-right: 2292px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-54 {
  padding-left: 2268px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-54 {
  padding-right: 2268px;
}

.ag-theme-material .ag-ltr .ag-row-level-54 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-54 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-55 {
  padding-left: 2334px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-55 {
  padding-right: 2334px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-55 {
  padding-left: 2310px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-55 {
  padding-right: 2310px;
}

.ag-theme-material .ag-ltr .ag-row-level-55 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-55 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-56 {
  padding-left: 2376px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-56 {
  padding-right: 2376px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-56 {
  padding-left: 2352px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-56 {
  padding-right: 2352px;
}

.ag-theme-material .ag-ltr .ag-row-level-56 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-56 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-57 {
  padding-left: 2418px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-57 {
  padding-right: 2418px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-57 {
  padding-left: 2394px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-57 {
  padding-right: 2394px;
}

.ag-theme-material .ag-ltr .ag-row-level-57 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-57 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-58 {
  padding-left: 2460px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-58 {
  padding-right: 2460px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-58 {
  padding-left: 2436px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-58 {
  padding-right: 2436px;
}

.ag-theme-material .ag-ltr .ag-row-level-58 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-58 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-59 {
  padding-left: 2502px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-59 {
  padding-right: 2502px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-59 {
  padding-left: 2478px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-59 {
  padding-right: 2478px;
}

.ag-theme-material .ag-ltr .ag-row-level-59 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-59 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-60 {
  padding-left: 2544px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-60 {
  padding-right: 2544px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-60 {
  padding-left: 2520px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-60 {
  padding-right: 2520px;
}

.ag-theme-material .ag-ltr .ag-row-level-60 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-60 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-61 {
  padding-left: 2586px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-61 {
  padding-right: 2586px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-61 {
  padding-left: 2562px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-61 {
  padding-right: 2562px;
}

.ag-theme-material .ag-ltr .ag-row-level-61 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-61 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-62 {
  padding-left: 2628px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-62 {
  padding-right: 2628px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-62 {
  padding-left: 2604px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-62 {
  padding-right: 2604px;
}

.ag-theme-material .ag-ltr .ag-row-level-62 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-62 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-63 {
  padding-left: 2670px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-63 {
  padding-right: 2670px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-63 {
  padding-left: 2646px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-63 {
  padding-right: 2646px;
}

.ag-theme-material .ag-ltr .ag-row-level-63 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-63 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-64 {
  padding-left: 2712px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-64 {
  padding-right: 2712px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-64 {
  padding-left: 2688px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-64 {
  padding-right: 2688px;
}

.ag-theme-material .ag-ltr .ag-row-level-64 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-64 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-65 {
  padding-left: 2754px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-65 {
  padding-right: 2754px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-65 {
  padding-left: 2730px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-65 {
  padding-right: 2730px;
}

.ag-theme-material .ag-ltr .ag-row-level-65 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-65 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-66 {
  padding-left: 2796px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-66 {
  padding-right: 2796px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-66 {
  padding-left: 2772px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-66 {
  padding-right: 2772px;
}

.ag-theme-material .ag-ltr .ag-row-level-66 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-66 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-67 {
  padding-left: 2838px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-67 {
  padding-right: 2838px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-67 {
  padding-left: 2814px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-67 {
  padding-right: 2814px;
}

.ag-theme-material .ag-ltr .ag-row-level-67 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-67 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-68 {
  padding-left: 2880px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-68 {
  padding-right: 2880px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-68 {
  padding-left: 2856px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-68 {
  padding-right: 2856px;
}

.ag-theme-material .ag-ltr .ag-row-level-68 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-68 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-69 {
  padding-left: 2922px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-69 {
  padding-right: 2922px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-69 {
  padding-left: 2898px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-69 {
  padding-right: 2898px;
}

.ag-theme-material .ag-ltr .ag-row-level-69 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-69 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-70 {
  padding-left: 2964px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-70 {
  padding-right: 2964px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-70 {
  padding-left: 2940px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-70 {
  padding-right: 2940px;
}

.ag-theme-material .ag-ltr .ag-row-level-70 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-70 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-71 {
  padding-left: 3006px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-71 {
  padding-right: 3006px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-71 {
  padding-left: 2982px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-71 {
  padding-right: 2982px;
}

.ag-theme-material .ag-ltr .ag-row-level-71 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-71 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-72 {
  padding-left: 3048px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-72 {
  padding-right: 3048px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-72 {
  padding-left: 3024px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-72 {
  padding-right: 3024px;
}

.ag-theme-material .ag-ltr .ag-row-level-72 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-72 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-73 {
  padding-left: 3090px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-73 {
  padding-right: 3090px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-73 {
  padding-left: 3066px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-73 {
  padding-right: 3066px;
}

.ag-theme-material .ag-ltr .ag-row-level-73 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-73 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-74 {
  padding-left: 3132px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-74 {
  padding-right: 3132px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-74 {
  padding-left: 3108px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-74 {
  padding-right: 3108px;
}

.ag-theme-material .ag-ltr .ag-row-level-74 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-74 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-75 {
  padding-left: 3174px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-75 {
  padding-right: 3174px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-75 {
  padding-left: 3150px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-75 {
  padding-right: 3150px;
}

.ag-theme-material .ag-ltr .ag-row-level-75 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-75 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-76 {
  padding-left: 3216px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-76 {
  padding-right: 3216px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-76 {
  padding-left: 3192px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-76 {
  padding-right: 3192px;
}

.ag-theme-material .ag-ltr .ag-row-level-76 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-76 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-77 {
  padding-left: 3258px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-77 {
  padding-right: 3258px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-77 {
  padding-left: 3234px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-77 {
  padding-right: 3234px;
}

.ag-theme-material .ag-ltr .ag-row-level-77 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-77 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-78 {
  padding-left: 3300px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-78 {
  padding-right: 3300px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-78 {
  padding-left: 3276px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-78 {
  padding-right: 3276px;
}

.ag-theme-material .ag-ltr .ag-row-level-78 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-78 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-79 {
  padding-left: 3342px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-79 {
  padding-right: 3342px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-79 {
  padding-left: 3318px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-79 {
  padding-right: 3318px;
}

.ag-theme-material .ag-ltr .ag-row-level-79 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-79 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-80 {
  padding-left: 3384px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-80 {
  padding-right: 3384px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-80 {
  padding-left: 3360px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-80 {
  padding-right: 3360px;
}

.ag-theme-material .ag-ltr .ag-row-level-80 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-80 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-81 {
  padding-left: 3426px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-81 {
  padding-right: 3426px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-81 {
  padding-left: 3402px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-81 {
  padding-right: 3402px;
}

.ag-theme-material .ag-ltr .ag-row-level-81 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-81 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-82 {
  padding-left: 3468px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-82 {
  padding-right: 3468px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-82 {
  padding-left: 3444px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-82 {
  padding-right: 3444px;
}

.ag-theme-material .ag-ltr .ag-row-level-82 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-82 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-83 {
  padding-left: 3510px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-83 {
  padding-right: 3510px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-83 {
  padding-left: 3486px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-83 {
  padding-right: 3486px;
}

.ag-theme-material .ag-ltr .ag-row-level-83 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-83 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-84 {
  padding-left: 3552px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-84 {
  padding-right: 3552px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-84 {
  padding-left: 3528px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-84 {
  padding-right: 3528px;
}

.ag-theme-material .ag-ltr .ag-row-level-84 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-84 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-85 {
  padding-left: 3594px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-85 {
  padding-right: 3594px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-85 {
  padding-left: 3570px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-85 {
  padding-right: 3570px;
}

.ag-theme-material .ag-ltr .ag-row-level-85 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-85 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-86 {
  padding-left: 3636px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-86 {
  padding-right: 3636px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-86 {
  padding-left: 3612px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-86 {
  padding-right: 3612px;
}

.ag-theme-material .ag-ltr .ag-row-level-86 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-86 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-87 {
  padding-left: 3678px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-87 {
  padding-right: 3678px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-87 {
  padding-left: 3654px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-87 {
  padding-right: 3654px;
}

.ag-theme-material .ag-ltr .ag-row-level-87 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-87 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-88 {
  padding-left: 3720px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-88 {
  padding-right: 3720px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-88 {
  padding-left: 3696px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-88 {
  padding-right: 3696px;
}

.ag-theme-material .ag-ltr .ag-row-level-88 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-88 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-89 {
  padding-left: 3762px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-89 {
  padding-right: 3762px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-89 {
  padding-left: 3738px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-89 {
  padding-right: 3738px;
}

.ag-theme-material .ag-ltr .ag-row-level-89 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-89 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-90 {
  padding-left: 3804px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-90 {
  padding-right: 3804px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-90 {
  padding-left: 3780px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-90 {
  padding-right: 3780px;
}

.ag-theme-material .ag-ltr .ag-row-level-90 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-90 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-91 {
  padding-left: 3846px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-91 {
  padding-right: 3846px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-91 {
  padding-left: 3822px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-91 {
  padding-right: 3822px;
}

.ag-theme-material .ag-ltr .ag-row-level-91 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-91 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-92 {
  padding-left: 3888px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-92 {
  padding-right: 3888px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-92 {
  padding-left: 3864px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-92 {
  padding-right: 3864px;
}

.ag-theme-material .ag-ltr .ag-row-level-92 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-92 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-93 {
  padding-left: 3930px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-93 {
  padding-right: 3930px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-93 {
  padding-left: 3906px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-93 {
  padding-right: 3906px;
}

.ag-theme-material .ag-ltr .ag-row-level-93 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-93 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-94 {
  padding-left: 3972px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-94 {
  padding-right: 3972px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-94 {
  padding-left: 3948px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-94 {
  padding-right: 3948px;
}

.ag-theme-material .ag-ltr .ag-row-level-94 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-94 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-95 {
  padding-left: 4014px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-95 {
  padding-right: 4014px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-95 {
  padding-left: 3990px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-95 {
  padding-right: 3990px;
}

.ag-theme-material .ag-ltr .ag-row-level-95 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-95 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-96 {
  padding-left: 4056px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-96 {
  padding-right: 4056px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-96 {
  padding-left: 4032px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-96 {
  padding-right: 4032px;
}

.ag-theme-material .ag-ltr .ag-row-level-96 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-96 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-97 {
  padding-left: 4098px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-97 {
  padding-right: 4098px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-97 {
  padding-left: 4074px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-97 {
  padding-right: 4074px;
}

.ag-theme-material .ag-ltr .ag-row-level-97 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-97 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-98 {
  padding-left: 4140px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-98 {
  padding-right: 4140px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-98 {
  padding-left: 4116px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-98 {
  padding-right: 4116px;
}

.ag-theme-material .ag-ltr .ag-row-level-98 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-98 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-99 {
  padding-left: 4182px;
}

.ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-99 {
  padding-right: 4182px;
}

.ag-theme-material .ag-ltr .ag-row-group-indent-99 {
  padding-left: 4158px;
}

.ag-theme-material .ag-rtl .ag-row-group-indent-99 {
  padding-right: 4158px;
}

.ag-theme-material .ag-ltr .ag-row-level-99 .ag-pivot-leaf-group {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-level-99 .ag-pivot-leaf-group {
  margin-right: 42px;
}

.ag-theme-material .ag-ltr .ag-row-group-leaf-indent {
  margin-left: 42px;
}

.ag-theme-material .ag-rtl .ag-row-group-leaf-indent {
  margin-right: 42px;
}

.ag-theme-material .ag-value-change-delta {
  padding-right: 2px;
}

.ag-theme-material .ag-value-change-delta-up {
  color: #43a047;
  color: var(--ag-value-change-delta-up-color, #43a047);
}

.ag-theme-material .ag-value-change-delta-down {
  color: #e53935;
  color: var(--ag-value-change-delta-down-color, #e53935);
}

.ag-theme-material .ag-value-change-value {
  background-color: transparent;
  border-radius: 1px;
  padding-left: 1px;
  padding-right: 1px;
  transition: background-color 1s;
}

.ag-theme-material .ag-value-change-value-highlight {
  background-color: #00acc1;
  background-color: var(--ag-value-change-value-highlight-background-color, #00acc1);
  transition: background-color 0.1s;
}

.ag-theme-material .ag-cell-data-changed {
  background-color: #00acc1 !important;
  background-color: var(--ag-value-change-value-highlight-background-color, #00acc1) !important;
}

.ag-theme-material .ag-cell-data-changed-animation {
  background-color: transparent;
}

.ag-theme-material .ag-cell-highlight {
  background-color: #fce4ec !important;
  background-color: var(--ag-range-selection-highlight-color, #fce4ec) !important;
}

.ag-theme-material .ag-row {
  height: 48px;
  background-color: #fff;
  background-color: var(--ag-background-color, #fff);
  color: rgba(0, 0, 0, 0.87);
  color: var(--ag-data-color, var(--ag-foreground-color, rgba(0, 0, 0, 0.87)));
  border-width: 1px;
  border-color: #e2e2e2;
  border-color: var(--ag-row-border-color, var(--ag-secondary-border-color, var(--ag-border-color, #e2e2e2)));
  border-bottom-style: solid;
}

.ag-theme-material .ag-row-highlight-above::after, .ag-theme-material .ag-row-highlight-below::after {
  content: '';
  position: absolute;
  width: calc(100% - 1px);
  height: 1px;
  background-color: #3f51b5;
  background-color: var(--ag-range-selection-border-color, #3f51b5);
  left: 1px;
}

.ag-theme-material .ag-row-highlight-above::after {
  top: -1px;
}

.ag-theme-material .ag-row-highlight-above.ag-row-first::after {
  top: 0;
}

.ag-theme-material .ag-row-highlight-below::after {
  bottom: 0px;
}

.ag-theme-material .ag-row-odd {
  background-color: var(--ag-odd-row-background-color);
}

.ag-theme-material .ag-horizontal-left-spacer:not(.ag-scroller-corner) {
  border-right: solid 1px;
  border-right-color: #e2e2e2;
  border-right-color: var(--ag-border-color, #e2e2e2);
}

.ag-theme-material .ag-horizontal-right-spacer:not(.ag-scroller-corner) {
  border-left: solid 1px;
  border-left-color: #e2e2e2;
  border-left-color: var(--ag-border-color, #e2e2e2);
}

.ag-theme-material .ag-row-hover {
  background-color: #fafafa;
  background-color: var(--ag-row-hover-color, #fafafa);
}

.ag-theme-material .ag-ltr .ag-right-aligned-cell {
  text-align: right;
}

.ag-theme-material .ag-rtl .ag-right-aligned-cell {
  text-align: left;
}

.ag-theme-material .ag-ltr .ag-right-aligned-cell .ag-cell-value, .ag-theme-material .ag-ltr .ag-right-aligned-cell .ag-group-value {
  margin-left: auto;
}

.ag-theme-material .ag-rtl .ag-right-aligned-cell .ag-cell-value, .ag-theme-material .ag-rtl .ag-right-aligned-cell .ag-group-value {
  margin-right: auto;
}

.ag-theme-material .ag-cell, .ag-theme-material .ag-full-width-row .ag-cell-wrapper.ag-row-group {
  border: 1px solid transparent;
  line-height: 46px;
  padding-left: 23px;
  padding-right: 23px;
  -webkit-font-smoothing: subpixel-antialiased;
}

.ag-theme-material .ag-row > .ag-cell-wrapper {
  padding-left: 23px;
  padding-right: 23px;
}

.ag-theme-material .ag-row-dragging {
  cursor: move;
  opacity: 0.5;
}

.ag-theme-material .ag-cell-inline-editing {
  background: #fff;
  background: var(--ag-background-color, #fff);
  border-radius: 2px;
  box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
  padding: 8px;
  padding: 0;
  height: 48px;
  background-color: #fafafa;
  background-color: var(--ag-control-panel-background-color, #fafafa);
}

.ag-theme-material .ag-popup-editor {
  background: #fff;
  background: var(--ag-background-color, #fff);
  border-radius: 2px;
  box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
  padding: 8px;
  background-color: #fafafa;
  background-color: var(--ag-control-panel-background-color, #fafafa);
  padding: 0;
}

.ag-theme-material .ag-large-text-input {
  height: auto;
  padding: 24px;
}

.ag-theme-material .ag-details-row {
  padding: 40px;
  background-color: #fff;
  background-color: var(--ag-background-color, #fff);
}

.ag-theme-material .ag-layout-auto-height .ag-center-cols-clipper, .ag-theme-material .ag-layout-auto-height .ag-center-cols-container, .ag-theme-material .ag-layout-print .ag-center-cols-clipper, .ag-theme-material .ag-layout-print .ag-center-cols-container {
  min-height: 50px;
}

.ag-theme-material .ag-overlay-loading-wrapper {
  background-color: rgba(255, 255, 255, 0.66);
  background-color: var(--ag-modal-overlay-background-color, rgba(255, 255, 255, 0.66));
}

.ag-theme-material .ag-overlay-loading-center {
  background: #fff;
  background: var(--ag-background-color, #fff);
  border-radius: 2px;
  box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
  padding: 8px;
}

.ag-theme-material .ag-overlay-no-rows-wrapper.ag-layout-auto-height {
  padding-top: 30px;
}

.ag-theme-material .ag-loading {
  padding-left: 24px;
  display: flex;
  height: 100%;
  align-items: center;
}

.ag-theme-material .ag-loading-icon {
  padding-right: 24px;
}

.ag-theme-material .ag-icon-loading {
  animation-name: spin;
  animation-duration: 1000ms;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
}

@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

.ag-theme-material .ag-floating-top {
  border-bottom: solid 1px;
  border-bottom-color: #e2e2e2;
  border-bottom-color: var(--ag-border-color, #e2e2e2);
}

.ag-theme-material .ag-floating-bottom {
  border-top: solid 1px;
  border-top-color: #e2e2e2;
  border-top-color: var(--ag-border-color, #e2e2e2);
}

.ag-theme-material .ag-ltr .ag-cell {
  border-right: 1px solid transparent;
}

.ag-theme-material .ag-rtl .ag-cell {
  border-left: 1px solid transparent;
}

.ag-theme-material .ag-ltr .ag-cell {
  border-right-width: 1px;
}

.ag-theme-material .ag-rtl .ag-cell {
  border-left-width: 1px;
}

.ag-theme-material .ag-cell.ag-cell-first-right-pinned:not(.ag-cell-range-left):not(.ag-cell-range-single-cell) {
  border-left: solid 1px;
  border-left-color: #e2e2e2;
  border-left-color: var(--ag-border-color, #e2e2e2);
}

.ag-theme-material .ag-cell.ag-cell-last-left-pinned:not(.ag-cell-range-right):not(.ag-cell-range-single-cell) {
  border-right: solid 1px;
  border-right-color: #e2e2e2;
  border-right-color: var(--ag-border-color, #e2e2e2);
}

.ag-theme-material .ag-row-selected {
  background-color: #eee;
  background-color: var(--ag-selected-row-background-color, #eee);
}

.ag-theme-material .ag-cell-range-selected:not(.ag-cell-focus),
.ag-theme-material .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing) {
  background-color: rgba(122, 134, 203, 0.1);
  background-color: var(--ag-range-selection-background-color, rgba(122, 134, 203, 0.1));
}

.ag-theme-material .ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart,
.ag-theme-material .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing).ag-cell-range-chart {
  background-color: rgba(0, 88, 255, 0.1) !important;
  background-color: var(--ag-range-selection-chart-background-color, rgba(0, 88, 255, 0.1)) !important;
}

.ag-theme-material .ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart.ag-cell-range-chart-category,
.ag-theme-material .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing).ag-cell-range-chart.ag-cell-range-chart-category {
  background-color: rgba(0, 255, 132, 0.1) !important;
  background-color: var(--ag-range-selection-chart-category-background-color, rgba(0, 255, 132, 0.1)) !important;
}

.ag-theme-material .ag-cell-range-selected-1:not(.ag-cell-focus),
.ag-theme-material .ag-root:not(.ag-context-menu-open) .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-1:not(.ag-cell-inline-editing) {
  background-color: rgba(122, 134, 203, 0.1);
  background-color: var(--ag-range-selection-background-color-1, var(--ag-range-selection-background-color, rgba(122, 134, 203, 0.1)));
}

.ag-theme-material .ag-cell-range-selected-2:not(.ag-cell-focus),
.ag-theme-material .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-2 {
  background-color: rgba(122, 134, 203, 0.19);
  background-color: var(--ag-range-selection-background-color-2, rgba(122, 134, 203, 0.19));
}

.ag-theme-material .ag-cell-range-selected-3:not(.ag-cell-focus),
.ag-theme-material .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-3 {
  background-color: rgba(122, 134, 203, 0.271);
  background-color: var(--ag-range-selection-background-color-3, rgba(122, 134, 203, 0.271));
}

.ag-theme-material .ag-cell-range-selected-4:not(.ag-cell-focus),
.ag-theme-material .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-4 {
  background-color: rgba(122, 134, 203, 0.3439);
  background-color: var(--ag-range-selection-background-color-4, rgba(122, 134, 203, 0.3439));
}

.ag-theme-material .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-top {
  border-top-color: #3f51b5;
  border-top-color: var(--ag-range-selection-border-color, #3f51b5);
}

.ag-theme-material .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-right {
  border-right-color: #3f51b5;
  border-right-color: var(--ag-range-selection-border-color, #3f51b5);
}

.ag-theme-material .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-bottom {
  border-bottom-color: #3f51b5;
  border-bottom-color: var(--ag-range-selection-border-color, #3f51b5);
}

.ag-theme-material .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-left {
  border-left-color: #3f51b5;
  border-left-color: var(--ag-range-selection-border-color, #3f51b5);
}

.ag-theme-material .ag-ltr .ag-has-focus .ag-cell-focus:not(.ag-cell-range-selected),
.ag-theme-material .ag-ltr .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),
.ag-theme-material .ag-ltr .ag-has-focus .ag-full-width-row.ag-row-focus .ag-cell-wrapper.ag-row-group,
.ag-theme-material .ag-ltr .ag-cell-range-single-cell,
.ag-theme-material .ag-ltr .ag-cell-range-single-cell.ag-cell-range-handle, .ag-theme-material .ag-rtl .ag-has-focus .ag-cell-focus:not(.ag-cell-range-selected),
.ag-theme-material .ag-rtl .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),
.ag-theme-material .ag-rtl .ag-has-focus .ag-full-width-row.ag-row-focus .ag-cell-wrapper.ag-row-group,
.ag-theme-material .ag-rtl .ag-cell-range-single-cell,
.ag-theme-material .ag-rtl .ag-cell-range-single-cell.ag-cell-range-handle {
  border: 1px solid;
  border-color: #3f51b5;
  border-color: var(--ag-range-selection-border-color, #3f51b5);
  outline: initial;
}

.ag-theme-material .ag-cell.ag-selection-fill-top,
.ag-theme-material .ag-cell.ag-selection-fill-top.ag-cell-range-selected {
  border-top: 1px dashed;
  border-top-color: #3f51b5;
  border-top-color: var(--ag-range-selection-border-color, #3f51b5);
}

.ag-theme-material .ag-ltr .ag-cell.ag-selection-fill-right, .ag-theme-material .ag-ltr .ag-cell.ag-selection-fill-right.ag-cell-range-selected {
  border-right: 1px dashed;
  border-right-color: #3f51b5;
  border-right-color: var(--ag-range-selection-border-color, #3f51b5);
}

.ag-theme-material .ag-rtl .ag-cell.ag-selection-fill-right, .ag-theme-material .ag-rtl .ag-cell.ag-selection-fill-right.ag-cell-range-selected {
  border-left: 1px dashed;
  border-left-color: #3f51b5;
  border-left-color: var(--ag-range-selection-border-color, #3f51b5);
}

.ag-theme-material .ag-cell.ag-selection-fill-bottom,
.ag-theme-material .ag-cell.ag-selection-fill-bottom.ag-cell-range-selected {
  border-bottom: 1px dashed;
  border-bottom-color: #3f51b5;
  border-bottom-color: var(--ag-range-selection-border-color, #3f51b5);
}

.ag-theme-material .ag-ltr .ag-cell.ag-selection-fill-left, .ag-theme-material .ag-ltr .ag-cell.ag-selection-fill-left.ag-cell-range-selected {
  border-left: 1px dashed;
  border-left-color: #3f51b5;
  border-left-color: var(--ag-range-selection-border-color, #3f51b5);
}

.ag-theme-material .ag-rtl .ag-cell.ag-selection-fill-left, .ag-theme-material .ag-rtl .ag-cell.ag-selection-fill-left.ag-cell-range-selected {
  border-right: 1px dashed;
  border-right-color: #3f51b5;
  border-right-color: var(--ag-range-selection-border-color, #3f51b5);
}

.ag-theme-material .ag-fill-handle, .ag-theme-material .ag-range-handle {
  position: absolute;
  width: 6px;
  height: 6px;
  bottom: -1px;
  background-color: #3f51b5;
  background-color: var(--ag-range-selection-border-color, #3f51b5);
}

.ag-theme-material .ag-ltr .ag-fill-handle, .ag-theme-material .ag-ltr .ag-range-handle {
  right: -1px;
}

.ag-theme-material .ag-rtl .ag-fill-handle, .ag-theme-material .ag-rtl .ag-range-handle {
  left: -1px;
}

.ag-theme-material .ag-fill-handle {
  cursor: cell;
}

.ag-theme-material .ag-range-handle {
  cursor: nwse-resize;
}

.ag-theme-material .ag-cell-inline-editing {
  border-color: #3f51b5 !important;
  border-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5)) !important;
}

.ag-theme-material .ag-menu {
  background: #fff;
  background: var(--ag-background-color, #fff);
  border-radius: 2px;
  box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
  padding: 8px;
  padding: 0;
}

.ag-theme-material .ag-menu-list {
  cursor: default;
  padding: 8px 0;
}

.ag-theme-material .ag-menu-separator {
  height: 17px;
}

.ag-theme-material .ag-menu-separator-part::after {
  content: "";
  display: block;
  border-top: solid 1px;
  border-top-color: #e2e2e2;
  border-top-color: var(--ag-border-color, #e2e2e2);
}

.ag-theme-material .ag-menu-option-active, .ag-theme-material .ag-compact-menu-option-active {
  background-color: #fafafa;
  background-color: var(--ag-row-hover-color, #fafafa);
}

.ag-theme-material .ag-menu-option-part, .ag-theme-material .ag-compact-menu-option-part {
  line-height: 18px;
  padding: 10px 0;
}

.ag-theme-material .ag-menu-option-disabled, .ag-theme-material .ag-compact-menu-option-disabled {
  opacity: 0.5;
}

.ag-theme-material .ag-menu-option-icon, .ag-theme-material .ag-compact-menu-option-icon {
  width: 18px;
}

.ag-theme-material .ag-ltr .ag-menu-option-icon, .ag-theme-material .ag-ltr .ag-compact-menu-option-icon {
  padding-left: 16px;
}

.ag-theme-material .ag-rtl .ag-menu-option-icon, .ag-theme-material .ag-rtl .ag-compact-menu-option-icon {
  padding-right: 16px;
}

.ag-theme-material .ag-menu-option-text, .ag-theme-material .ag-compact-menu-option-text {
  padding-left: 16px;
  padding-right: 16px;
}

.ag-theme-material .ag-ltr .ag-menu-option-shortcut, .ag-theme-material .ag-ltr .ag-compact-menu-option-shortcut {
  padding-right: 8px;
}

.ag-theme-material .ag-rtl .ag-menu-option-shortcut, .ag-theme-material .ag-rtl .ag-compact-menu-option-shortcut {
  padding-left: 8px;
}

.ag-theme-material .ag-menu-option-popup-pointer, .ag-theme-material .ag-compact-menu-option-popup-pointer {
  padding-right: 8px;
}

.ag-theme-material .ag-tabs-header {
  min-width: 220px;
  width: 100%;
  display: flex;
}

.ag-theme-material .ag-tab {
  border-bottom: 2px solid transparent;
  display: flex;
  flex: none;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex: 1 1 auto;
}

.ag-theme-material .ag-keyboard-focus .ag-tab:focus {
  outline: none;
}

.ag-theme-material .ag-keyboard-focus .ag-tab:focus::after {
  content: '';
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: 4px;
  left: 4px;
  display: block;
  width: calc(100% - 8px);
  height: calc(100% - 8px);
  border: 1px solid;
  border-color: #3f51b5;
  border-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5));
}

.ag-theme-material .ag-tab-selected {
  border-bottom-color: #3f51b5;
  border-bottom-color: var(--ag-selected-tab-underline-color, #3f51b5);
}

.ag-theme-material .ag-menu-header {
  color: rgba(0, 0, 0, 0.54);
  color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54));
}

.ag-theme-material .ag-filter-separator {
  border-top: solid 1px;
  border-top-color: #e2e2e2;
  border-top-color: var(--ag-border-color, #e2e2e2);
}

.ag-theme-material .ag-filter-condition-operator {
  height: 17px;
}

.ag-theme-material .ag-ltr .ag-filter-condition-operator-or {
  margin-left: 16px;
}

.ag-theme-material .ag-rtl .ag-filter-condition-operator-or {
  margin-right: 16px;
}

.ag-theme-material .ag-set-filter-select-all {
  padding-top: 16px;
}

.ag-theme-material .ag-set-filter-list, .ag-theme-material .ag-filter-no-matches {
  height: 240px;
}

.ag-theme-material .ag-set-filter-filter {
  margin-top: 16px;
  margin-left: 12px;
  margin-right: 12px;
}

.ag-theme-material .ag-filter-to {
  margin-top: 14px;
}

.ag-theme-material .ag-mini-filter {
  margin: 16px 12px;
}

.ag-theme-material .ag-set-filter-item {
  margin: 0px 12px;
}

.ag-theme-material .ag-ltr .ag-set-filter-item-value {
  margin-left: 12px;
}

.ag-theme-material .ag-rtl .ag-set-filter-item-value {
  margin-right: 12px;
}

.ag-theme-material .ag-filter-apply-panel {
  padding: 16px 12px;
}

.ag-theme-material .ag-filter-apply-panel-button {
  line-height: 1.5;
}

.ag-theme-material .ag-ltr .ag-filter-apply-panel-button {
  margin-left: 16px;
}

.ag-theme-material .ag-rtl .ag-filter-apply-panel-button {
  margin-right: 16px;
}

.ag-theme-material .ag-simple-filter-body-wrapper {
  padding: 16px 12px;
  padding-bottom: 2px;
}

.ag-theme-material .ag-simple-filter-body-wrapper > * {
  margin-bottom: 14px;
}

.ag-theme-material .ag-filter-no-matches {
  padding: 16px 12px;
}

.ag-theme-material .ag-multi-filter-menu-item {
  margin: 8px 0;
}

.ag-theme-material .ag-multi-filter-group-title-bar {
  padding: 16px 8px;
  background-color: transparent;
}

.ag-theme-material .ag-keyboard-focus .ag-multi-filter-group-title-bar:focus {
  outline: none;
}

.ag-theme-material .ag-keyboard-focus .ag-multi-filter-group-title-bar:focus::after {
  content: '';
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: 4px;
  left: 4px;
  display: block;
  width: calc(100% - 8px);
  height: calc(100% - 8px);
  border: 1px solid;
  border-color: #3f51b5;
  border-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5));
}

.ag-theme-material .ag-side-bar {
  position: relative;
}

.ag-theme-material .ag-tool-panel-wrapper {
  background-color: #fafafa;
  background-color: var(--ag-control-panel-background-color, #fafafa);
}

.ag-theme-material .ag-side-buttons {
  padding-top: 32px;
  width: 22px;
  position: relative;
  color: rgba(0, 0, 0, 0.87);
  color: var(--ag-foreground-color, rgba(0, 0, 0, 0.87));
  overflow: hidden;
}

.ag-theme-material button.ag-side-button-button {
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  background: transparent;
  padding: 16px 0 16px 0;
  width: 100%;
  margin: 0;
  min-height: 144px;
  background-position-y: center;
  background-position-x: center;
  background-repeat: no-repeat;
  border: none;
}

.ag-theme-material button.ag-side-button-button:focus {
  box-shadow: none;
}

.ag-theme-material .ag-keyboard-focus .ag-side-button-button:focus {
  outline: none;
}

.ag-theme-material .ag-keyboard-focus .ag-side-button-button:focus::after {
  content: '';
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: 4px;
  left: 4px;
  display: block;
  width: calc(100% - 8px);
  height: calc(100% - 8px);
  border: 1px solid;
  border-color: #3f51b5;
  border-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5));
}

.ag-theme-material .ag-side-button-icon-wrapper {
  margin-bottom: 3px;
}

.ag-theme-material .ag-ltr .ag-side-bar-left .ag-side-button-button,
.ag-theme-material .ag-rtl .ag-side-bar-right .ag-side-button-button {
  border-right: 2px solid transparent;
}

.ag-theme-material .ag-ltr .ag-side-bar-left .ag-selected .ag-side-button-button,
.ag-theme-material .ag-rtl .ag-side-bar-right .ag-selected .ag-side-button-button {
  border-right-color: #3f51b5;
  border-right-color: var(--ag-selected-tab-underline-color, #3f51b5);
}

.ag-theme-material .ag-rtl .ag-side-bar-left .ag-side-button-button,
.ag-theme-material .ag-ltr .ag-side-bar-right .ag-side-button-button {
  border-left: 2px solid transparent;
}

.ag-theme-material .ag-rtl .ag-side-bar-left .ag-selected .ag-side-button-button,
.ag-theme-material .ag-ltr .ag-side-bar-right .ag-selected .ag-side-button-button {
  border-left-color: #3f51b5;
  border-left-color: var(--ag-selected-tab-underline-color, #3f51b5);
}

.ag-theme-material .ag-filter-toolpanel-header {
  height: 48px;
}

.ag-theme-material .ag-ltr .ag-filter-toolpanel-header, .ag-theme-material .ag-ltr .ag-filter-toolpanel-search {
  padding-left: 8px;
}

.ag-theme-material .ag-rtl .ag-filter-toolpanel-header, .ag-theme-material .ag-rtl .ag-filter-toolpanel-search {
  padding-right: 8px;
}

.ag-theme-material .ag-keyboard-focus .ag-filter-toolpanel-header:focus {
  outline: none;
}

.ag-theme-material .ag-keyboard-focus .ag-filter-toolpanel-header:focus::after {
  content: '';
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: 4px;
  left: 4px;
  display: block;
  width: calc(100% - 8px);
  height: calc(100% - 8px);
  border: 1px solid;
  border-color: #3f51b5;
  border-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5));
}

.ag-theme-material .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {
  font-family: "agGridMaterial";
  font-size: 18px;
  line-height: 18px;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f114";
  position: absolute;
}

.ag-theme-material .ag-ltr .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {
  padding-left: 8px;
}

.ag-theme-material .ag-rtl .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {
  padding-right: 8px;
}

.ag-theme-material .ag-filter-toolpanel-group-level-0-header {
  height: 64px;
}

.ag-theme-material .ag-filter-toolpanel-group-item {
  margin-top: 4px;
  margin-bottom: 4px;
}

.ag-theme-material .ag-filter-toolpanel-search {
  height: 20px;
}

.ag-theme-material .ag-filter-toolpanel-search-input {
  flex-grow: 1;
  height: 32px;
}

.ag-theme-material .ag-ltr .ag-filter-toolpanel-search-input {
  margin-right: 8px;
}

.ag-theme-material .ag-rtl .ag-filter-toolpanel-search-input {
  margin-left: 8px;
}

.ag-theme-material .ag-ltr .ag-filter-toolpanel-expand, .ag-theme-material .ag-ltr .ag-filter-toolpanel-group-title-bar-icon {
  margin-right: 8px;
}

.ag-theme-material .ag-rtl .ag-filter-toolpanel-expand, .ag-theme-material .ag-rtl .ag-filter-toolpanel-group-title-bar-icon {
  margin-left: 8px;
}

.ag-theme-material .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-1-header.ag-filter-toolpanel-group-title-bar {
  background-color: transparent;
}

.ag-theme-material .ag-ltr .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-2-header {
  padding-left: 24px;
}

.ag-theme-material .ag-rtl .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-2-header {
  padding-right: 24px;
}

.ag-theme-material .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-2-header.ag-filter-toolpanel-group-title-bar {
  background-color: transparent;
}

.ag-theme-material .ag-ltr .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-3-header {
  padding-left: 40px;
}

.ag-theme-material .ag-rtl .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-3-header {
  padding-right: 40px;
}

.ag-theme-material .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-3-header.ag-filter-toolpanel-group-title-bar {
  background-color: transparent;
}

.ag-theme-material .ag-ltr .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-4-header {
  padding-left: 56px;
}

.ag-theme-material .ag-rtl .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-4-header {
  padding-right: 56px;
}

.ag-theme-material .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-4-header.ag-filter-toolpanel-group-title-bar {
  background-color: transparent;
}

.ag-theme-material .ag-ltr .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-5-header {
  padding-left: 72px;
}

.ag-theme-material .ag-rtl .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-5-header {
  padding-right: 72px;
}

.ag-theme-material .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-5-header.ag-filter-toolpanel-group-title-bar {
  background-color: transparent;
}

.ag-theme-material .ag-ltr .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-6-header {
  padding-left: 88px;
}

.ag-theme-material .ag-rtl .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-6-header {
  padding-right: 88px;
}

.ag-theme-material .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-6-header.ag-filter-toolpanel-group-title-bar {
  background-color: transparent;
}

.ag-theme-material .ag-ltr .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-7-header {
  padding-left: 104px;
}

.ag-theme-material .ag-rtl .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-7-header {
  padding-right: 104px;
}

.ag-theme-material .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-7-header.ag-filter-toolpanel-group-title-bar {
  background-color: transparent;
}

.ag-theme-material .ag-ltr .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-8-header {
  padding-left: 120px;
}

.ag-theme-material .ag-rtl .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-8-header {
  padding-right: 120px;
}

.ag-theme-material .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-8-header.ag-filter-toolpanel-group-title-bar {
  background-color: transparent;
}

.ag-theme-material .ag-ltr .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-9-header {
  padding-left: 136px;
}

.ag-theme-material .ag-rtl .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-9-header {
  padding-right: 136px;
}

.ag-theme-material .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-9-header.ag-filter-toolpanel-group-title-bar {
  background-color: transparent;
}

.ag-theme-material .ag-ltr .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-10-header {
  padding-left: 152px;
}

.ag-theme-material .ag-rtl .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-10-header {
  padding-right: 152px;
}

.ag-theme-material .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-10-header.ag-filter-toolpanel-group-title-bar {
  background-color: transparent;
}

.ag-theme-material .ag-ltr .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-11-header {
  padding-left: 168px;
}

.ag-theme-material .ag-rtl .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-11-header {
  padding-right: 168px;
}

.ag-theme-material .ag-filter-toolpanel-instance-header.ag-filter-toolpanel-group-level-1-header {
  padding-left: 8px;
}

.ag-theme-material .ag-filter-toolpanel-instance-filter {
  margin-top: 8px;
}

.ag-theme-material .ag-ltr .ag-filter-toolpanel-instance-header-icon {
  margin-left: 8px;
}

.ag-theme-material .ag-rtl .ag-filter-toolpanel-instance-header-icon {
  margin-right: 8px;
}

.ag-theme-material .ag-pivot-mode-panel {
  height: 20px;
  display: flex;
}

.ag-theme-material .ag-pivot-mode-select {
  display: flex;
  align-items: center;
}

.ag-theme-material .ag-ltr .ag-pivot-mode-select {
  margin-left: 12px;
}

.ag-theme-material .ag-rtl .ag-pivot-mode-select {
  margin-right: 12px;
}

.ag-theme-material .ag-keyboard-focus .ag-column-select-header:focus {
  outline: none;
}

.ag-theme-material .ag-keyboard-focus .ag-column-select-header:focus::after {
  content: '';
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: 4px;
  left: 4px;
  display: block;
  width: calc(100% - 8px);
  height: calc(100% - 8px);
  border: 1px solid;
  border-color: #3f51b5;
  border-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5));
}

.ag-theme-material .ag-column-select-header {
  height: 20px;
  align-items: center;
  padding: 0 12px;
}

.ag-theme-material .ag-column-group-icons,
.ag-theme-material .ag-column-select-header-icon {
  color: rgba(0, 0, 0, 0.54);
  color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54));
}

.ag-theme-material .ag-header {
  background-color: #fff;
  background-color: var(--ag-header-background-color, #fff);
  border-bottom: solid 1px;
  border-bottom-color: #e2e2e2;
  border-bottom-color: var(--ag-border-color, #e2e2e2);
}

.ag-theme-material .ag-header-row {
  color: rgba(0, 0, 0, 0.54);
  color: var(--ag-header-foreground-color, rgba(0, 0, 0, 0.54));
  height: 20px;
}

.ag-theme-material .ag-pinned-right-header {
  border-left: solid 1px;
  border-left-color: #e2e2e2;
  border-left-color: var(--ag-border-color, #e2e2e2);
}

.ag-theme-material .ag-pinned-left-header {
  border-right: solid 1px;
  border-right-color: #e2e2e2;
  border-right-color: var(--ag-border-color, #e2e2e2);
}

.ag-theme-material .ag-ltr .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon {
  margin-left: 8px;
}

.ag-theme-material .ag-rtl .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon {
  margin-right: 8px;
}

.ag-theme-material .ag-ltr .ag-header-cell.ag-right-aligned-header .ag-header-label-icon {
  margin-right: 8px;
}

.ag-theme-material .ag-rtl .ag-header-cell.ag-right-aligned-header .ag-header-label-icon {
  margin-left: 8px;
}

.ag-theme-material .ag-header-cell,
.ag-theme-material .ag-header-group-cell {
  padding-left: 24px;
  padding-right: 24px;
}

.ag-theme-material .ag-header-cell.ag-header-cell-moving,
.ag-theme-material .ag-header-group-cell.ag-header-cell-moving {
  background-color: #f2f2f2;
  background-color: var(--ag-header-cell-moving-background-color, #f2f2f2);
}

.ag-theme-material .ag-keyboard-focus .ag-header-cell:focus {
  outline: none;
}

.ag-theme-material .ag-keyboard-focus .ag-header-cell:focus::after {
  content: '';
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: 4px;
  left: 4px;
  display: block;
  width: calc(100% - 8px);
  height: calc(100% - 8px);
  border: 1px solid;
  border-color: #3f51b5;
  border-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5));
}

.ag-theme-material .ag-keyboard-focus .ag-header-group-cell:focus {
  outline: none;
}

.ag-theme-material .ag-keyboard-focus .ag-header-group-cell:focus::after {
  content: '';
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: 4px;
  left: 4px;
  display: block;
  width: calc(100% - 8px);
  height: calc(100% - 8px);
  border: 1px solid;
  border-color: #3f51b5;
  border-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5));
}

.ag-theme-material .ag-header-icon {
  color: rgba(0, 0, 0, 0.54);
  color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54));
}

.ag-theme-material .ag-header-expand-icon {
  cursor: pointer;
}

.ag-theme-material .ag-ltr .ag-header-expand-icon {
  padding-left: 4px;
}

.ag-theme-material .ag-rtl .ag-header-expand-icon {
  padding-right: 4px;
}

.ag-theme-material .ag-header-row:not(:first-child) .ag-header-cell,
.ag-theme-material .ag-header-row:not(:first-child) .ag-header-group-cell.ag-header-group-cell-with-group {
  border-top: solid 1px;
  border-top-color: #e2e2e2;
  border-top-color: var(--ag-border-color, #e2e2e2);
}

.ag-theme-material .ag-header-group-cell:not(.ag-column-resizing) + .ag-header-group-cell:not(.ag-header-cell-moving):hover, .ag-theme-material .ag-header-group-cell:not(.ag-column-resizing) + .ag-header-group-cell.ag-column-resizing,
.ag-theme-material .ag-header-cell:not(.ag-column-resizing) + .ag-header-cell:not(.ag-header-cell-moving):hover,
.ag-theme-material .ag-header-cell:not(.ag-column-resizing) + .ag-header-cell.ag-column-resizing,
.ag-theme-material .ag-header-group-cell:first-of-type:not(.ag-header-cell-moving):hover,
.ag-theme-material .ag-header-group-cell:first-of-type.ag-column-resizing,
.ag-theme-material .ag-header-cell:first-of-type:not(.ag-header-cell-moving):hover,
.ag-theme-material .ag-header-cell:first-of-type.ag-column-resizing {
  background-color: #f2f2f2;
  background-color: var(--ag-header-cell-hover-background-color, #f2f2f2);
}

.ag-theme-material .ag-ltr .ag-header-select-all {
  margin-right: 24px;
}

.ag-theme-material .ag-rtl .ag-header-select-all {
  margin-left: 24px;
}

.ag-theme-material .ag-ltr .ag-floating-filter-button {
  margin-left: 24px;
}

.ag-theme-material .ag-rtl .ag-floating-filter-button {
  margin-right: 24px;
}

.ag-theme-material .ag-floating-filter-button-button {
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background: transparent;
  border: none;
  height: 18px;
  padding: 0;
  width: 18px;
}

.ag-theme-material .ag-filter-loading {
  background-color: #fafafa;
  background-color: var(--ag-control-panel-background-color, #fafafa);
  height: 100%;
  padding: 16px 12px;
  position: absolute;
  width: 100%;
  z-index: 1;
}

.ag-theme-material .ag-paging-panel {
  border-top: 1px solid;
  border-top-color: #e2e2e2;
  border-top-color: var(--ag-border-color, #e2e2e2);
  color: rgba(0, 0, 0, 0.54);
  color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54));
  height: 20px;
}

.ag-theme-material .ag-paging-panel > * {
  margin: 0 24px;
}

.ag-theme-material .ag-paging-button {
  cursor: pointer;
}

.ag-theme-material .ag-paging-button.ag-disabled {
  cursor: default;
  color: rgba(0, 0, 0, 0.38);
  color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38));
}

.ag-theme-material .ag-keyboard-focus .ag-paging-button:focus {
  outline: none;
}

.ag-theme-material .ag-keyboard-focus .ag-paging-button:focus::after {
  content: '';
  position: absolute;
  background-color: transparent;
  pointer-events: none;
  top: 0px;
  left: 0px;
  display: block;
  width: calc(100% - 0px);
  height: calc(100% - 0px);
  border: 1px solid;
  border-color: #3f51b5;
  border-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5));
}

.ag-theme-material .ag-paging-button, .ag-theme-material .ag-paging-description {
  margin: 0 8px;
}

.ag-theme-material .ag-status-bar {
  color: rgba(0, 0, 0, 0.38);
  color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38));
  padding-right: 32px;
  padding-left: 32px;
  line-height: 1.5;
}

.ag-theme-material .ag-status-name-value-value {
  color: rgba(0, 0, 0, 0.87);
  color: var(--ag-foreground-color, rgba(0, 0, 0, 0.87));
}

.ag-theme-material .ag-status-bar-center {
  text-align: center;
}

.ag-theme-material .ag-status-name-value {
  margin-left: 8px;
  margin-right: 8px;
  padding-top: 16px;
  padding-bottom: 16px;
}

.ag-theme-material .ag-column-drop-cell {
  background: #e2e2e2;
  background: var(--ag-chip-background-color, #e2e2e2);
  border-radius: 32px;
  height: 32px;
  padding: 0 4px;
}

.ag-theme-material .ag-column-drop-cell-text {
  margin: 0 8px;
}

.ag-theme-material .ag-column-drop-cell-button {
  min-width: 32px;
  margin: 0 4px;
  color: rgba(0, 0, 0, 0.54);
  color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54));
}

.ag-theme-material .ag-column-drop-cell-drag-handle {
  margin-left: 16px;
}

.ag-theme-material .ag-column-drop-cell-ghost {
  opacity: 0.5;
}

.ag-theme-material .ag-column-drop-horizontal {
  background-color: #fafafa;
  background-color: var(--ag-control-panel-background-color, #fafafa);
  color: rgba(0, 0, 0, 0.54);
  color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54));
  height: 48px;
}

.ag-theme-material .ag-ltr .ag-column-drop-horizontal {
  padding-left: 24px;
}

.ag-theme-material .ag-rtl .ag-column-drop-horizontal {
  padding-right: 24px;
}

.ag-theme-material .ag-column-drop-horizontal-cell-separator {
  margin: 0 8px;
  color: rgba(0, 0, 0, 0.54);
  color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54));
}

.ag-theme-material .ag-column-drop-horizontal-empty-message {
  color: rgba(0, 0, 0, 0.38);
  color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38));
}

.ag-theme-material .ag-ltr .ag-column-drop-horizontal-icon {
  margin-right: 24px;
}

.ag-theme-material .ag-rtl .ag-column-drop-horizontal-icon {
  margin-left: 24px;
}

.ag-theme-material .ag-column-drop-vertical-list {
  padding-bottom: 8px;
  padding-right: 8px;
  padding-left: 8px;
}

.ag-theme-material .ag-column-drop-vertical-cell {
  margin-top: 8px;
}

.ag-theme-material .ag-column-drop-vertical {
  min-height: 50px;
  max-height: 150px;
}

.ag-theme-material .ag-column-drop-vertical-icon {
  margin-left: 8px;
  margin-right: 8px;
}

.ag-theme-material .ag-column-drop-vertical-empty-message {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  overflow: hidden;
  color: rgba(0, 0, 0, 0.38);
  color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38));
  margin-top: 8px;
}

.ag-theme-material .ag-select-agg-func-popup {
  background: #fff;
  background: var(--ag-background-color, #fff);
  border-radius: 2px;
  box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
  padding: 8px;
  background: #fff;
  background: var(--ag-background-color, #fff);
  height: 140px;
  padding: 0;
}

.ag-theme-material .ag-select-agg-func-virtual-list-item {
  cursor: default;
  line-height: 40px;
  padding-left: 16px;
}

.ag-theme-material .ag-select-agg-func-virtual-list-item:hover {
  background-color: #eee;
  background-color: var(--ag-selected-row-background-color, #eee);
}

.ag-theme-material .ag-chart-menu {
  border-radius: 2px;
  background: #fff;
  background: var(--ag-background-color, #fff);
}

.ag-theme-material .ag-chart-menu-icon {
  opacity: 0.5;
  line-height: 24px;
  font-size: 24px;
  width: 24px;
  height: 24px;
  margin: 2px 0;
  cursor: pointer;
  border-radius: 2px;
  color: rgba(0, 0, 0, 0.54);
  color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54));
}

.ag-theme-material .ag-chart-menu-icon:hover {
  opacity: 1;
}

.ag-theme-material .ag-chart-mini-thumbnail {
  border: 1px solid;
  border-color: #e2e2e2;
  border-color: var(--ag-secondary-border-color, var(--ag-border-color, #e2e2e2));
  border-radius: 5px;
  margin: 5px;
}

.ag-theme-material .ag-chart-mini-thumbnail:nth-last-child(3),
.ag-theme-material .ag-chart-mini-thumbnail:nth-last-child(3) ~ .ag-chart-mini-thumbnail {
  margin-left: auto;
  margin-right: auto;
}

.ag-theme-material .ag-ltr .ag-chart-mini-thumbnail:first-child {
  margin-left: 0;
}

.ag-theme-material .ag-rtl .ag-chart-mini-thumbnail:first-child {
  margin-right: 0;
}

.ag-theme-material .ag-ltr .ag-chart-mini-thumbnail:last-child {
  margin-right: 0;
}

.ag-theme-material .ag-rtl .ag-chart-mini-thumbnail:last-child {
  margin-left: 0;
}

.ag-theme-material .ag-chart-mini-thumbnail.ag-selected {
  border-color: #FFA000;
  border-color: var(--ag-minichart-selected-chart-color, var(--ag-checkbox-checked-color, #FFA000));
}

.ag-theme-material .ag-chart-settings-card-item {
  background: rgba(0, 0, 0, 0.87);
  background: var(--ag-foreground-color, rgba(0, 0, 0, 0.87));
  width: 8px;
  height: 8px;
  border-radius: 4px;
}

.ag-theme-material .ag-chart-settings-card-item.ag-selected {
  background-color: #FFA000;
  background-color: var(--ag-minichart-selected-page-color, var(--ag-checkbox-checked-color, #FFA000));
}

.ag-theme-material .ag-chart-data-column-drag-handle {
  margin-left: 8px;
}

.ag-theme-material .ag-charts-settings-group-container {
  padding: 8px;
}

.ag-theme-material .ag-charts-data-group-container {
  padding: 16px 12px;
  padding-bottom: 2px;
}

.ag-theme-material .ag-charts-data-group-container > * {
  margin-bottom: 14px;
}

.ag-theme-material .ag-charts-format-top-level-group-container {
  margin-left: 16px;
  padding: 8px;
}

.ag-theme-material .ag-charts-format-top-level-group-item {
  margin: 8px 0;
}

.ag-theme-material .ag-charts-format-sub-level-group-container {
  padding: 16px 12px;
  padding-bottom: 2px;
}

.ag-theme-material .ag-charts-format-sub-level-group-container > * {
  margin-bottom: 14px;
}

.ag-theme-material .ag-charts-group-container.ag-group-container-horizontal {
  padding: 8px;
}

.ag-theme-material .ag-chart-data-section,
.ag-theme-material .ag-chart-format-section {
  display: flex;
  margin: 0;
}

.ag-theme-material .ag-chart-menu-panel {
  background-color: #fafafa;
  background-color: var(--ag-control-panel-background-color, #fafafa);
}

.ag-theme-material .ag-ltr .ag-chart-menu-panel {
  border-left: solid 1px;
  border-left-color: #e2e2e2;
  border-left-color: var(--ag-border-color, #e2e2e2);
}

.ag-theme-material .ag-rtl .ag-chart-menu-panel {
  border-right: solid 1px;
  border-right-color: #e2e2e2;
  border-right-color: var(--ag-border-color, #e2e2e2);
}

.ag-theme-material .ag-date-time-list-page-title {
  flex-grow: 1;
  text-align: center;
}

.ag-theme-material .ag-date-time-list-page-column-label {
  text-align: center;
}

.ag-theme-material .ag-date-time-list-page-entry {
  text-align: center;
}

.ag-theme-material .ag-checkbox-input-wrapper {
  font-family: "agGridMaterial";
  font-size: 18px;
  line-height: 18px;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 18px;
  height: 18px;
  background-color: transparent;
  background-color: var(--ag-checkbox-background-color, transparent);
  border-radius: 2px;
  display: inline-block;
  vertical-align: middle;
  flex: none;
}

.ag-theme-material .ag-checkbox-input-wrapper input, .ag-theme-material .ag-checkbox-input-wrapper input {
  -webkit-appearance: none;
  opacity: 0;
  width: 100%;
  height: 100%;
}

.ag-theme-material .ag-checkbox-input-wrapper:focus-within, .ag-theme-material .ag-checkbox-input-wrapper:active {
  outline: none;
  box-shadow: 0 0 0 5px rgba(32, 33, 36, 0.122);
}

.ag-theme-material .ag-checkbox-input-wrapper.ag-disabled {
  opacity: 0.5;
}

.ag-theme-material .ag-checkbox-input-wrapper::after {
  content: "\f108";
  color: #303F9F;
  color: var(--ag-checkbox-unchecked-color, #303F9F);
  position: absolute;
  top: 0;
  left: 0;
  pointer-events: none;
}

.ag-theme-material .ag-checkbox-input-wrapper.ag-checked::after {
  content: "\f106";
  color: #FFA000;
  color: var(--ag-checkbox-checked-color, #FFA000);
  position: absolute;
  top: 0;
  left: 0;
  pointer-events: none;
}

.ag-theme-material .ag-checkbox-input-wrapper.ag-indeterminate::after {
  content: "\f107";
  color: #303F9F;
  color: var(--ag-checkbox-indeterminate-color, #303F9F);
  position: absolute;
  top: 0;
  left: 0;
  pointer-events: none;
}

.ag-theme-material .ag-toggle-button-input-wrapper {
  box-sizing: border-box;
  width: 36px;
  height: 18px;
  background-color: #303F9F;
  background-color: var(--ag-toggle-button-off-background-color, var(--ag-checkbox-unchecked-color, #303F9F));
  border-radius: 9px;
  position: relative;
  flex: none;
  border: 1px solid;
  border-color: #303F9F;
  border-color: var(--ag-toggle-button-off-border-color, var(--ag-checkbox-unchecked-color, #303F9F));
}

.ag-theme-material .ag-toggle-button-input-wrapper input {
  opacity: 0;
  height: 100%;
  width: 100%;
}

.ag-theme-material .ag-toggle-button-input-wrapper:focus-within {
  outline: none;
  box-shadow: 0 0 0 5px rgba(32, 33, 36, 0.122);
}

.ag-theme-material .ag-toggle-button-input-wrapper.ag-disabled {
  opacity: 0.5;
}

.ag-theme-material .ag-toggle-button-input-wrapper.ag-checked {
  background-color: #FFA000;
  background-color: var(--ag-toggle-button-on-background-color, var(--ag-checkbox-checked-color, #FFA000));
  border-color: #FFA000;
  border-color: var(--ag-toggle-button-on-border-color, var(--ag-checkbox-checked-color, #FFA000));
}

.ag-theme-material .ag-toggle-button-input-wrapper::before {
  content: ' ';
  position: absolute;
  top: -1px;
  left: -1px;
  display: block;
  box-sizing: border-box;
  height: 18px;
  width: 18px;
  background-color: #fff;
  background-color: var(--ag-toggle-button-switch-background-color, var(--ag-background-color, #fff));
  border-radius: 9px;
  transition: left 100ms;
  border: 1px solid;
  border-color: #303F9F;
  border-color: var(--ag-toggle-button-switch-border-color, var(--ag-toggle-button-off-border-color, var(--ag-checkbox-unchecked-color, #303F9F)));
}

.ag-theme-material .ag-toggle-button-input-wrapper.ag-checked::before {
  left: calc(100% - 18px);
  border-color: #FFA000;
  border-color: var(--ag-toggle-button-on-border-color, var(--ag-checkbox-checked-color, #FFA000));
}

.ag-theme-material .ag-radio-button-input-wrapper {
  font-family: "agGridMaterial";
  font-size: 18px;
  line-height: 18px;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 18px;
  height: 18px;
  background-color: transparent;
  background-color: var(--ag-checkbox-background-color, transparent);
  border-radius: 2px;
  display: inline-block;
  vertical-align: middle;
  flex: none;
  border-radius: 18px;
}

.ag-theme-material .ag-radio-button-input-wrapper input, .ag-theme-material .ag-radio-button-input-wrapper input {
  -webkit-appearance: none;
  opacity: 0;
  width: 100%;
  height: 100%;
}

.ag-theme-material .ag-radio-button-input-wrapper:focus-within, .ag-theme-material .ag-radio-button-input-wrapper:active {
  outline: none;
  box-shadow: 0 0 0 5px rgba(32, 33, 36, 0.122);
}

.ag-theme-material .ag-radio-button-input-wrapper.ag-disabled {
  opacity: 0.5;
}

.ag-theme-material .ag-radio-button-input-wrapper::after {
  content: "\f126";
  color: #303F9F;
  color: var(--ag-checkbox-unchecked-color, #303F9F);
  position: absolute;
  top: 0;
  left: 0;
  pointer-events: none;
}

.ag-theme-material .ag-radio-button-input-wrapper.ag-checked::after {
  content: "\f127";
  color: #FFA000;
  color: var(--ag-checkbox-checked-color, #FFA000);
  position: absolute;
  top: 0;
  left: 0;
  pointer-events: none;
}

.ag-theme-material input[class^='ag-'][type='range'] {
  -webkit-appearance: none;
  width: 100%;
  height: 100%;
  background: none;
  overflow: visible;
}

.ag-theme-material input[class^='ag-'][type='range']::-webkit-slider-runnable-track {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 3px;
  background-color: #e2e2e2;
  background-color: var(--ag-border-color, #e2e2e2);
  border-radius: 2px;
  border-radius: 2px;
}

.ag-theme-material input[class^='ag-'][type='range']::-moz-range-track {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 3px;
  background-color: #e2e2e2;
  background-color: var(--ag-border-color, #e2e2e2);
  border-radius: 2px;
  border-radius: 2px;
}

.ag-theme-material input[class^='ag-'][type='range']::-ms-track {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 3px;
  background-color: #e2e2e2;
  background-color: var(--ag-border-color, #e2e2e2);
  border-radius: 2px;
  border-radius: 2px;
  color: transparent;
  width: calc(100% - 2px);
}

.ag-theme-material input[class^='ag-'][type='range']::-webkit-slider-thumb {
  margin: 0;
  padding: 0;
  -webkit-appearance: none;
  width: 18px;
  height: 18px;
  background-color: #fff;
  background-color: var(--ag-background-color, #fff);
  border: 1px solid;
  border-color: #303F9F;
  border-color: var(--ag-checkbox-unchecked-color, #303F9F);
  border-radius: 18px;
  transform: translateY(-7.5px);
}

.ag-theme-material input[class^='ag-'][type='range']::-ms-thumb {
  margin: 0;
  padding: 0;
  -webkit-appearance: none;
  width: 18px;
  height: 18px;
  background-color: #fff;
  background-color: var(--ag-background-color, #fff);
  border: 1px solid;
  border-color: #303F9F;
  border-color: var(--ag-checkbox-unchecked-color, #303F9F);
  border-radius: 18px;
}

.ag-theme-material input[class^='ag-'][type='range']::-moz-ag-range-thumb {
  margin: 0;
  padding: 0;
  -webkit-appearance: none;
  width: 18px;
  height: 18px;
  background-color: #fff;
  background-color: var(--ag-background-color, #fff);
  border: 1px solid;
  border-color: #303F9F;
  border-color: var(--ag-checkbox-unchecked-color, #303F9F);
  border-radius: 18px;
}

.ag-theme-material input[class^='ag-'][type='range']:focus {
  outline: none;
}

.ag-theme-material input[class^='ag-'][type='range']:focus::-webkit-slider-thumb {
  box-shadow: 0 0 0 5px rgba(32, 33, 36, 0.122);
  border-color: #FFA000;
  border-color: var(--ag-checkbox-checked-color, #FFA000);
}

.ag-theme-material input[class^='ag-'][type='range']:focus::-ms-thumb {
  box-shadow: 0 0 0 5px rgba(32, 33, 36, 0.122);
  border-color: #FFA000;
  border-color: var(--ag-checkbox-checked-color, #FFA000);
}

.ag-theme-material input[class^='ag-'][type='range']:focus::-moz-ag-range-thumb {
  box-shadow: 0 0 0 5px rgba(32, 33, 36, 0.122);
  border-color: #FFA000;
  border-color: var(--ag-checkbox-checked-color, #FFA000);
}

.ag-theme-material input[class^='ag-'][type='range']:active::-webkit-slider-runnable-track {
  background-color: #3f51b5;
  background-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5));
}

.ag-theme-material input[class^='ag-'][type='range']:active::-moz-ag-range-track {
  background-color: #3f51b5;
  background-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5));
}

.ag-theme-material input[class^='ag-'][type='range']:active::-ms-track {
  background-color: #3f51b5;
  background-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5));
}

.ag-theme-material input[class^='ag-'][type='range']:disabled {
  opacity: 0.5;
}

.ag-theme-material .ag-filter-toolpanel-header,
.ag-theme-material .ag-filter-toolpanel-search,
.ag-theme-material .ag-status-bar,
.ag-theme-material .ag-header-row,
.ag-theme-material .ag-panel-title-bar-title,
.ag-theme-material .ag-side-button-button,
.ag-theme-material .ag-multi-filter-group-title-bar {
  font-size: 12px;
  font-weight: 600;
  color: rgba(0, 0, 0, 0.54);
  color: var(--ag-header-foreground-color, rgba(0, 0, 0, 0.54));
}

.ag-theme-material .ag-tab {
  height: 36px;
}

.ag-theme-material .ag-tabs-header,
.ag-theme-material .ag-column-drop-horizontal {
  background-color: #eee;
  background-color: var(--ag-subheader-background-color, #eee);
}

.ag-theme-material .ag-tabs-body {
  padding: 4px 0;
}

.ag-theme-material .ag-tabs-body .ag-menu-list {
  padding-top: 0;
  padding-bottom: 0;
}

.ag-theme-material .ag-header-cell,
.ag-theme-material .ag-header-group-cell {
  transition: background-color 0.5s;
}

.ag-theme-material .ag-row-last:not(.ag-row-first) .ag-cell-inline-editing {
  bottom: 0;
}

.ag-theme-material .ag-cell-inline-editing {
  padding: 8px;
  height: 72px;
  border-color: #e2e2e2 !important;
  border-color: var(--ag-border-color, #e2e2e2) !important;
}

.ag-theme-material .ag-has-focus .ag-cell-inline-editing {
  border-color: #3f51b5 !important;
  border-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5)) !important;
}

.ag-theme-material .ag-side-button-button {
  color: rgba(0, 0, 0, 0.54);
  color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54));
}

.ag-theme-material .ag-column-drop-vertical {
  border-bottom: solid 1px;
  border-bottom-color: #e2e2e2;
  border-bottom-color: var(--ag-border-color, #e2e2e2);
  padding-top: 8px;
}

.ag-theme-material .ag-column-drop-vertical.ag-last-column-drop {
  border-bottom: none;
}

.ag-theme-material .ag-column-drop-vertical-cell {
  margin-left: 0;
}

.ag-theme-material .ag-column-drop-vertical-empty-message {
  font-size: 12px;
  font-weight: 600;
  color: rgba(0, 0, 0, 0.38);
  color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38));
}

.ag-theme-material .ag-ltr .ag-column-drop-vertical-empty-message {
  padding-left: 34px;
  padding-right: 8px;
}

.ag-theme-material .ag-rtl .ag-column-drop-vertical-empty-message {
  padding-right: 34px;
  padding-left: 8px;
}

.ag-theme-material .ag-status-bar {
  border: solid 1px;
  border-color: #e2e2e2;
  border-color: var(--ag-border-color, #e2e2e2);
}

.ag-theme-material .ag-column-panel-column-select {
  border-top: solid 1px;
  border-top-color: #e2e2e2;
  border-top-color: var(--ag-border-color, #e2e2e2);
}

.ag-theme-material .ag-column-select, .ag-theme-material .ag-column-select-header {
  border-bottom: solid 1px;
  border-bottom-color: #e2e2e2;
  border-bottom-color: var(--ag-border-color, #e2e2e2);
}

.ag-theme-material .ag-column-select-header {
  height: 20px;
}

.ag-theme-material .ag-group-title-bar {
  padding: 6px 8px;
}

.ag-theme-material .ag-charts-format-sub-level-group-title-bar {
  padding: 4px 8px;
}

.ag-theme-material .ag-chart-data-section,
.ag-theme-material .ag-chart-format-section {
  padding-bottom: 4px;
}

.ag-theme-material .ag-group-toolbar {
  background-color: rgba(238, 238, 238, 0.5);
}

.ag-theme-material input[class^='ag-']:not([type]),
.ag-theme-material input[class^='ag-'][type='text'],
.ag-theme-material input[class^='ag-'][type='number'],
.ag-theme-material input[class^='ag-'][type='tel'],
.ag-theme-material input[class^='ag-'][type='date'],
.ag-theme-material input[class^='ag-'][type='datetime-local'],
.ag-theme-material textarea[class^='ag-'] {
  background: transparent;
  color: rgba(0, 0, 0, 0.87);
  color: var(--ag-foreground-color, rgba(0, 0, 0, 0.87));
  font-family: inherit;
  font-size: inherit;
  height: 40px;
  padding-bottom: 8px;
  border-width: 0;
  border-bottom: 2px solid;
  border-bottom-color: #e2e2e2;
  border-bottom-color: var(--ag-border-color, #e2e2e2);
}

.ag-theme-material input:focus[class^='ag-']:not([type]),
.ag-theme-material input:focus[class^='ag-'][type='text'],
.ag-theme-material input:focus[class^='ag-'][type='number'],
.ag-theme-material input:focus[class^='ag-'][type='tel'],
.ag-theme-material input:focus[class^='ag-'][type='date'],
.ag-theme-material input:focus[class^='ag-'][type='datetime-local'],
.ag-theme-material textarea:focus[class^='ag-'] {
  border-bottom: 2px solid;
  border-bottom-color: #3f51b5;
  border-bottom-color: var(--ag-material-primary-color, #3f51b5);
  outline: none;
  box-shadow: none;
}

.ag-theme-material input:not([type])[class^='ag-']::-moz-placeholder, .ag-theme-material input[type='text'][class^='ag-']::-moz-placeholder, .ag-theme-material input[type='number'][class^='ag-']::-moz-placeholder, .ag-theme-material input[type='tel'][class^='ag-']::-moz-placeholder, .ag-theme-material input[type='date'][class^='ag-']::-moz-placeholder, .ag-theme-material input[type='datetime-local'][class^='ag-']::-moz-placeholder, .ag-theme-material textarea[class^='ag-']::-moz-placeholder {
  color: rgba(0, 0, 0, 0.38);
  color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38));
}

.ag-theme-material input:not([type])[class^='ag-']:-ms-input-placeholder, .ag-theme-material input[type='text'][class^='ag-']:-ms-input-placeholder, .ag-theme-material input[type='number'][class^='ag-']:-ms-input-placeholder, .ag-theme-material input[type='tel'][class^='ag-']:-ms-input-placeholder, .ag-theme-material input[type='date'][class^='ag-']:-ms-input-placeholder, .ag-theme-material input[type='datetime-local'][class^='ag-']:-ms-input-placeholder, .ag-theme-material textarea[class^='ag-']:-ms-input-placeholder {
  color: rgba(0, 0, 0, 0.38);
  color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38));
}

.ag-theme-material input:not([type])[class^='ag-']::placeholder,
.ag-theme-material input[type='text'][class^='ag-']::placeholder,
.ag-theme-material input[type='number'][class^='ag-']::placeholder,
.ag-theme-material input[type='tel'][class^='ag-']::placeholder,
.ag-theme-material input[type='date'][class^='ag-']::placeholder,
.ag-theme-material input[type='datetime-local'][class^='ag-']::placeholder,
.ag-theme-material textarea[class^='ag-']::placeholder {
  color: rgba(0, 0, 0, 0.38);
  color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38));
}

.ag-theme-material input:disabled[class^='ag-']:not([type]),
.ag-theme-material input:disabled[class^='ag-'][type='text'],
.ag-theme-material input:disabled[class^='ag-'][type='number'],
.ag-theme-material input:disabled[class^='ag-'][type='tel'],
.ag-theme-material input:disabled[class^='ag-'][type='date'],
.ag-theme-material input:disabled[class^='ag-'][type='datetime-local'],
.ag-theme-material textarea:disabled[class^='ag-'] {
  border-bottom: 1px solid;
  border-bottom-color: #e2e2e2;
  border-bottom-color: var(--ag-border-color, #e2e2e2);
}

.ag-theme-material .ag-standard-button {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: transparent;
  border: 0;
  color: #3f51b5;
  color: var(--ag-material-primary-color, #3f51b5);
  font-family: inherit;
  font-size: inherit;
  margin: 0;
  padding: 0;
  text-transform: uppercase;
}

.ag-theme-material .ag-standard-button:disabled {
  color: rgba(0, 0, 0, 0.38);
  color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38));
  background-color: transparent;
  background-color: var(--ag-input-disabled-background-color, transparent);
  border-color: rgba(0, 0, 0, 0.3);
  border-color: var(--ag-input-disabled-border-color, rgba(0, 0, 0, 0.3));
}

.ag-theme-material .ag-dnd-ghost {
  font-size: 12px;
  font-weight: 600;
}

.ag-theme-material .ag-filter-toolpanel-header {
  height: 32px;
}

.ag-theme-material .ag-filter-toolpanel-group-level-0-header {
  height: 56px;
}

.ag-theme-material .ag-layout-auto-height .ag-center-cols-clipper, .ag-theme-material .ag-layout-auto-height .ag-center-cols-container, .ag-theme-material .ag-layout-print .ag-center-cols-clipper, .ag-theme-material .ag-layout-print .ag-center-cols-container {
  min-height: 150px;
}

.ag-theme-material .ag-overlay-no-rows-wrapper.ag-layout-auto-height {
  padding-top: 60px;
}

.ag-theme-material .ag-picker-field-wrapper:focus {
  box-shadow: 0 0 0 1px #3f51b5;
}

.ag-row:hover {
  background-color: #F2F2F2;
}

.ag-cell {
  align-items: center;
  border-style: none !important;
  display: flex;
  padding-left: 8px !important;
  padding-top: 0 !important;
  padding-right: 8px !important;
}

.ag-cell-wrapper {
  display: flex;
}

.ag-header-cell {
  padding-left: 8px !important;
  padding-right: 0 !important;
}

.ag-header-cell-label .ag-header-cell-text {
  align-items: center;
  display: flex;
}

.ag-header-cell-text {
  color: #666666;
  font-size: 12px;
  font-weight: 500;
}

.ag-header-select-all {
  margin-top: 2px !important;
  padding-left: 8px;
  padding-top: 2px;
}

.ag-cell-value {
  color: rgba(0, 0, 0, 0.87);
  font-size: 14px;
  font-weight: 400;
}

.ag-cell-focus {
  border: none !important;
}

.checkbox {
  margin-left: 15px;
  padding-top: 23px;
  width: 35px;
}

.ag-cell.checkbox_edit {
  display: flex;
  justify-content: center;
}

.ag-cell.checkbox_edit i {
  font-size: 21px;
}

.ag-cell.index {
  display: block;
  text-align: center;
}

.ag-selection-checkbox {
  align-items: center;
  display: flex;
}

.ag-header-row {
  padding-top: 4px;
  width: 100% !important;
}

.ag-header-row .ag-header-cell:first-child {
  margin-left: -4px;
}

.ag-body-container {
  overflow: hidden;
  width: 100%;
}

#myGrid .ag-body-container {
  width: 100% !important;
}

.ag-header-cell {
  line-height: 56px;
}

.ag-header-cell-label {
  margin-top: -3px;
}

.ag-header-cell-label .ag-header-icon {
  align-items: center;
  display: flex;
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2FwcC12YXJpYWJsZXMuc2NzcyIsIi4uLy4uL2FnLWdyaWQtb3ZlcnJpZGVzLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYWctZ3JpZC1jb21tdW5pdHkvc3JjL3N0eWxlcy9zdHJ1Y3R1cmFsL19jb21tb24tc3RydWN0dXJhbC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2FnLWdyaWQtY29tbXVuaXR5L3NyYy9zdHlsZXMvbWl4aW5zL19hZy1ncmlkLW1peGlucy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2FnLWdyaWQtY29tbXVuaXR5L3NyYy9zdHlsZXMvc3RydWN0dXJhbC9fbW9iaWxlLXN0cnVjdHVyYWwuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9hZy1ncmlkLWNvbW11bml0eS9zcmMvc3R5bGVzL3N0cnVjdHVyYWwvX2NoYXJ0cy1zdHJ1Y3R1cmFsLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYWctZ3JpZC1jb21tdW5pdHkvc3JjL3N0eWxlcy9zdHJ1Y3R1cmFsL19kYXRlLXRpbWUtc3RydWN0dXJhbC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2FnLWdyaWQtY29tbXVuaXR5L3NyYy9zdHlsZXMvYWctdGhlbWUtbWF0ZXJpYWwvc2Fzcy9sZWdhY3kvX2FnLXRoZW1lLW1hdGVyaWFsLXYyMi1jb21wYXQuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9hZy1ncmlkLWNvbW11bml0eS9zcmMvc3R5bGVzL2FnLXRoZW1lLWJhc2Uvc2Fzcy9fYWctdGhlbWUtYmFzZS1taXhpbi5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2FnLWdyaWQtY29tbXVuaXR5L3NyYy9zdHlsZXMvbWl4aW5zL19hZy10aGVtZS1wYXJhbXMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9hZy1ncmlkLWNvbW11bml0eS9zcmMvc3R5bGVzL2FnLXRoZW1lLW1hdGVyaWFsL3Nhc3MvbGVnYWN5L19hZy10aGVtZS1tYXRlcmlhbC1kZWZpbmUtbGVnYWN5LXZhcnMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9hZy1ncmlkLWNvbW11bml0eS9zcmMvc3R5bGVzL21peGlucy9fYWctdGhlbWUtbWl4aW5zLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYWctZ3JpZC1jb21tdW5pdHkvc3JjL3N0eWxlcy9hZy10aGVtZS1tYXRlcmlhbC9zYXNzL19hZy10aGVtZS1tYXRlcmlhbC1mb250LXZhcnMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9hZy1ncmlkLWNvbW11bml0eS9zcmMvc3R5bGVzL2FnLXRoZW1lLWJhc2Uvc2Fzcy9wYXJ0cy9fcmVzZXQuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9hZy1ncmlkLWNvbW11bml0eS9zcmMvc3R5bGVzL2FnLXRoZW1lLWJhc2Uvc2Fzcy9wYXJ0cy9fd2lkZ2V0cy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2FnLWdyaWQtY29tbXVuaXR5L3NyYy9zdHlsZXMvYWctdGhlbWUtYmFzZS9zYXNzL2xlZ2FjeS9fYWctdGhlbWUtYmFzZS1kZWZpbmUtbGVnYWN5LXZhcnMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9hZy1ncmlkLWNvbW11bml0eS9zcmMvc3R5bGVzL2FnLXRoZW1lLW1hdGVyaWFsL3Nhc3MvX2FnLXRoZW1lLW1hdGVyaWFsLWRlZmF1bHQtcGFyYW1zLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYWctZ3JpZC1jb21tdW5pdHkvc3JjL3N0eWxlcy9hZy10aGVtZS1iYXNlL3Nhc3MvX2FnLXRoZW1lLWJhc2UtZGVmYXVsdC1wYXJhbXMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9hZy1ncmlkLWNvbW11bml0eS9zcmMvc3R5bGVzL2FnLXRoZW1lLWJhc2Uvc2Fzcy9wYXJ0cy9fZ3JpZC1sYXlvdXQuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9hZy1ncmlkLWNvbW11bml0eS9zcmMvc3R5bGVzL2FnLXRoZW1lLWJhc2Uvc2Fzcy9wYXJ0cy9fZ3JpZC1ib3JkZXJzLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYWctZ3JpZC1jb21tdW5pdHkvc3JjL3N0eWxlcy9hZy10aGVtZS1iYXNlL3Nhc3MvcGFydHMvX21lbnUuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9hZy1ncmlkLWNvbW11bml0eS9zcmMvc3R5bGVzL2FnLXRoZW1lLWJhc2Uvc2Fzcy9wYXJ0cy9fc2lkZWJhci5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2FnLWdyaWQtY29tbXVuaXR5L3NyYy9zdHlsZXMvYWctdGhlbWUtYmFzZS9zYXNzL3BhcnRzL19maWx0ZXItdG9vbC1wYW5lbC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2FnLWdyaWQtY29tbXVuaXR5L3NyYy9zdHlsZXMvYWctdGhlbWUtYmFzZS9zYXNzL3BhcnRzL19jb2x1bW5zLXRvb2wtcGFuZWwuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9hZy1ncmlkLWNvbW11bml0eS9zcmMvc3R5bGVzL2FnLXRoZW1lLWJhc2Uvc2Fzcy9wYXJ0cy9faGVhZGVyLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYWctZ3JpZC1jb21tdW5pdHkvc3JjL3N0eWxlcy9hZy10aGVtZS1iYXNlL3Nhc3MvcGFydHMvX2Zvb3Rlci5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2FnLWdyaWQtY29tbXVuaXR5L3NyYy9zdHlsZXMvYWctdGhlbWUtYmFzZS9zYXNzL3BhcnRzL19jb2x1bW4tZHJvcC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2FnLWdyaWQtY29tbXVuaXR5L3NyYy9zdHlsZXMvYWctdGhlbWUtYmFzZS9zYXNzL3BhcnRzL19jaGFydHMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9hZy1ncmlkLWNvbW11bml0eS9zcmMvc3R5bGVzL2FnLXRoZW1lLWJhc2Uvc2Fzcy9wYXJ0cy9fZGF0ZS10aW1lLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYWctZ3JpZC1jb21tdW5pdHkvc3JjL3N0eWxlcy9hZy10aGVtZS1tYXRlcmlhbC9zYXNzL19hZy10aGVtZS1tYXRlcmlhbC1taXhpbi5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThQQTtFQUNFLE9BQU87QUM3UFQ7O0FDREE7Ozs7Q0RPQzs7QUNBRDtFQUNJLGNBQWM7QURFbEI7O0FDQ0E7RUFDSSx3QkFBd0I7QURFNUI7O0FDQ0E7RUFDSSw2QkFBNkI7QURFakM7O0FDQ0E7RUFDSSxZQUFZO0VBQ1osWUFBWTtBREVoQjs7QUNDQTtFQUNJLGFBQWE7QURFakI7O0FDQ0E7RUFDSSxxQkFBcUI7RUFDckIscUJBQXFCO0FERXpCOztBQ0NBO0VDa0VJLHNCRGpFMkI7RUNrRTNCLHlCRGxFMkI7RUNtRTNCLHFCRG5FMkI7RUNvRTNCLGlCRHBFMkI7QURLL0I7O0FDRkE7RUM4REksc0JEN0QyQjtFQzhEM0IseUJEOUQyQjtFQytEM0IscUJEL0QyQjtFQ2dFM0IsaUJEaEUyQjtBRFEvQjs7QUNMQTtFQUNJLGtCQUFrQjtBRFF0Qjs7QUNMQTtFQUNJLGtCQUFrQjtFQUNsQixRQUFRO0VBQ1IsU0FBUztFQUNULGNBQWM7QURRbEI7O0FDTEE7RUFDSSxrQkFBa0I7QURRdEI7O0FDTEE7RUFDSSxhQUFhO0VBQ2IsY0FBYztFQUNkLG1CQUFtQjtFQUNuQixtQkFBbUI7RUFDbkIsa0JBQWtCO0FEUXRCOztBQ0hBO0VBQ0ksOEJBQThCO0VBQzlCLHdCQUF3QjtFQUN4QixtQ0FBbUM7RUFDbkMsc0NBQXNDO0FETTFDOztBQ0hBO0VBQ0k7SUFDSSxpQkFBaUI7SUFDakIsa0JBQWtCO0VETXhCO0VDSEU7SUFDSSxpQkFBaUI7SUFDakIsa0JBQWtCO0VES3hCO0FBQ0Y7O0FDRkE7RUFDSSxlQUFlO0VBQ2Ysa0JBQWtCO0VB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QURSTDs7QUNXQTtFQUNJLGVBQWU7QURSbkI7O0FDV0E7RUFDSSxXQUFXO0VBQ1gsWUFBWTtBRFJoQjs7QUNXQTtFQUNJLG9FQUEyRTtFQUMzRSxXQUFXO0VBQ1gsWUFBWTtBRFJoQjs7QUNXQTtFQUNJLGVBQWU7QURSbkI7O0FDV0E7RUFDSSxrQkFBa0I7RUFDbEIsb0JBQW9CO0FEUnhCOztBQ1dBO0VBQ0ksYUFBYTtBRFJqQjs7QUNXQTtFQUNJLGVBQWU7QURSbkI7O0FFcmdESTtFQUVRLGtCRGloRDhDO0FEVjFEOztBRXBnREk7RUFFUSxtQkQ0Z0Q4QztBRE4xRDs7QUU3Z0RJO0VBRVEsa0JEcWhEOEM7QUROMUQ7O0FFNWdESTtFQUVRLG1CRGdoRDhDO0FERjFEOztBRXJoREk7RUFFUSxrQkRpaEQ4QztBRE0xRDs7QUVwaERJO0VBRVEsbUJENGdEOEM7QURVMUQ7O0FFN2hESTtFQUVRLGtCRHFoRDhDO0FEVTFEOztBRTVoREk7RUFFUSxtQkRnaEQ4QztBRGMxRDs7QUVyaURJO0VBRVEsa0JEaWhEOEM7QURzQjFEOztBRXBpREk7RUFFUSxtQkQ0Z0Q4QztBRDBCMUQ7O0FFN2lESTtFQUVRLGtCRHFoRDhDO0FEMEIxRDs7QUU1aURJO0VBRVEsbUJEZ2hEOEM7QUQ4QjFEOztBRXJqREk7RUFFUSxrQkRpaEQ4QztBRHNDMUQ7O0FFcGpESTtFQUVRLG1CRDRnRDhDO0FEMEMxRDs7QUU3akRJO0VBRVEsa0JEcWhEOEM7QUQwQzFEOztBRTVqREk7RUFFUSxtQkRnaEQ4QztBRDhDMUQ7O0FFcmtESTtFQUVRLG1CRGloRDhDO0FEc0QxRDs7QUVwa0RJO0VBRVEsb0JENGdEOEM7QUQwRDFEOztBRTdrREk7RUFFUSxtQkRxaEQ4QztBRDBEMUQ7O0FFNWtESTtFQUVRLG9CRGdoRDhDO0FEOEQxRDs7QUVybERJO0VBRVEsbUJEaWhEOEM7QURzRTFEOztBRXBsREk7RUFFUSxvQkQ0Z0Q4QztBRDBFMUQ7O0FFN2xESTtFQUVRLG1CRHFoRDhDO0FEMEUxRDs7QUU1bERJO0VBRVEsb0JEZ2hEOEM7QUQ4RTFEOztBRXJtREk7RUFFUSxtQkRpaEQ4QztBRHNGMUQ7O0FFcG1ESTtFQUVRLG9CRDRnRDhDO0FEMEYxRDs7QUU3bURJO0VBRVEsbUJEcWhEOEM7QUQwRjFEOztBRTVtREk7RUFFUSxvQkRnaEQ4QztBRDhGMUQ7O0FFcm5ESTtFQUVRLG1CRGloRDhDO0FEc0cxRDs7QUVwbkRJO0VBRVEsb0JENGdEOEM7QUQwRzFEOztBRTduREk7RUFFUSxtQkRxaEQ4QztBRDBHMUQ7O0FFNW5ESTtFQUVRLG9CRGdoRDhDO0FEOEcxRDs7QUVyb0RJO0VBRVEsbUJEaWhEOEM7QURzSDFEOztBRXBvREk7RUFFUSxvQkQ0Z0Q4QztBRDBIMUQ7O0FFN29ESTtFQUVRLG1CRHFoRDhDO0FEMEgxRDs7QUU1b0RJO0VBRVEsb0JEZ2hEOEM7QUQ4SDFEOztBRXJwREk7RUFFUSxtQkRpaEQ4QztBRHNJMUQ7O0FFcHBESTtFQUVRLG9CRDRnRDhDO0FEMEkxRDs7QUU3cERJO0VBRVEsbUJEcWhEOEM7QUQwSTFEOztBRTVwREk7RUFFUSxvQkRnaEQ4QztBRDhJMUQ7O0FFcnFESTtFQUVRLG1CRGloRDhDO0FEc0oxRDs7QUVwcURJO0VBRVEsb0JENGdEOEM7QUQwSjFEOztBRTdxREk7RUFFUSxtQkRxaEQ4QztBRDBKMUQ7O0FFNXFESTtFQUVRLG9CRGdoRDhDO0FEOEoxRDs7QUVyckRJO0VBRVEsbUJEaWhEOEM7QURzSzFEOztBRXByREk7RUFFUSxvQkQ0Z0Q4QztBRDBLMUQ7O0FFN3JESTtFQUVRLG1CRHFoRDhDO0FEMEsxRDs7QUU1ckRJO0VBRVEsb0JEZ2hEOEM7QUQ4SzFEOztBRXJzREk7RUFFUSxtQkRpaEQ4QztBRHNMMUQ7O0FFcHNESTtFQUVRLG9CRDRnRDhDO0FEMEwxRDs7QUU3c0RJO0VBRVEsbUJEcWhEOEM7QUQwTDFEOztBRTVzREk7RUFFUSxvQkRnaEQ4QztBRDhMMUQ7O0FFcnRESTtFQUVRLG1CRGloRDhDO0FEc00xRDs7QUVwdERJO0VBRVEsb0JENGdEOEM7QUQwTTFEOztBRTd0REk7RUFFUSxtQkRxaEQ4QztBRDBNMUQ7O0FFNXRESTtFQUVRLG9CRGdoRDhDO0FEOE0xRDs7QUVydURJO0VBRVEsbUJEaWhEOEM7QURzTjFEOztBRXB1REk7RUFFUSxvQkQ0Z0Q4QztBRDBOMUQ7O0FFN3VESTtFQUVRLG1CRHFoRDhDO0FEME4xRDs7QUU1dURJO0VBRVEsb0JEZ2hEOEM7QUQ4TjFEOztBRXJ2REk7RUFFUSxtQkRpaEQ4QztBRHNPMUQ7O0FFcHZESTtFQUVRLG9CRDRnRDhDO0FEME8xRDs7QUU3dkRJO0VBRVEsbUJEcWhEOEM7QUQwTzFEOztBRTV2REk7RUFFUSxvQkRnaEQ4QztBRDhPMUQ7O0FFcndESTtFQUVRLG1CRGloRDhDO0FEc1AxRDs7QUVwd0RJO0VBRVEsb0JENGdEOEM7QUQwUDFEOztBRTd3REk7RUFFUSxtQkRxaEQ4QztBRDBQMUQ7O0FFNXdESTtFQUVRLG9CRGdoRDhDO0FEOFAxRDs7QUVyeERJO0VBRVEsbUJEaWhEOEM7QURzUTFEOztBRXB4REk7RUFFUSxvQkQ0Z0Q4QztBRDBRMUQ7O0FFN3hESTtFQUVRLG1CRHFoRDhDO0FEMFExRDs7QUU1eERJO0VBRVEsb0JEZ2hEOEM7QUQ4UTFEOztBRXJ5REk7RUFFUSxtQkRpaEQ4QztBRHNSMUQ7O0FFcHlESTtFQUVRLG9CRDRnRDhDO0FEMFIxRDs7QUU3eURJO0VBRVEsbUJEcWhEOEM7QUQwUjFEOztBRTV5REk7RUFFUSxvQkRnaEQ4QztBRDhSMUQ7O0FFcnpESTtFQUVRLG1CRGloRDhDO0FEc1MxRDs7QUVwekRJO0VBRVEsb0JENGdEOEM7QUQwUzFEOztBRTd6REk7RUFFUSxtQkRxaEQ4QztBRDBTMUQ7O0FFNXpESTtFQUVRLG9CRGdoRDhDO0FEOFMxRDs7QUVyMERJO0VBRVEsbUJEaWhEOEM7QURzVDFEOztBRXAwREk7RUFFUSxvQkQ0Z0Q4QztBRDBUMUQ7O0FFNzBESTtFQUVRLG1CRHFoRDhDO0FEMFQxRDs7QUU1MERJO0VBRVEsb0JEZ2hEOEM7QUQ4VDFEOztBRXIxREk7RUFFUSxtQkRpaEQ4QztBRHNVMUQ7O0FFcDFESTtFQUVRLG9CRDRnRDhDO0FEMFUxRDs7QUU3MURJO0VBRVEsbUJEcWhEOEM7QUQwVTFEOztBRTUxREk7RUFFUSxvQkRnaEQ4QztBRDhVMUQ7O0FFcjJESTtFQUVRLG1CRGloRDhDO0FEc1YxRDs7QUVwMkRJO0VBRVEsb0JENGdEOEM7QUQwVjFEOztBRTcyREk7RUFFUSxtQkRxaEQ4QztBRDBWMUQ7O0FFNTJESTtFQUVRLG9CRGdoRDhDO0FEOFYxRDs7QUVyM0RJO0VBRVEsbUJEaWhEOEM7QURzVzFEOztBRXAzREk7RUFFUSxvQkQ0Z0Q4QztBRDBXMUQ7O0FFNzNESTtFQUVRLG1CRHFoRDhDO0FEMFcxRDs7QUU1M0RJO0VBRVEsb0JEZ2hEOEM7QUQ4VzFEOztBRXI0REk7RUFFUSxtQkRpaEQ4QztBRHNYMUQ7O0FFcDRESTtFQUVRLG9CRDRnRDhDO0FEMFgxRDs7QUU3NERJO0VBRVEsbUJEcWhEOEM7QUQwWDFEOztBRTU0REk7RUFFUSxvQkRnaEQ4QztBRDhYMUQ7O0FFcjVESTtFQUVRLG1CRGloRDhDO0FEc1kxRDs7QUVwNURJO0VBRVEsb0JENGdEOEM7QUQwWTFEOztBRTc1REk7RUFFUSxtQkRxaEQ4QztBRDBZMUQ7O0FFNTVESTtFQUVRLG9CRGdoRDhDO0FEOFkxRDs7QUVyNkRJO0VBRVEsbUJEaWhEOEM7QURzWjFEOztBRXA2REk7RUFFUSxvQkQ0Z0Q4QztBRDBaMUQ7O0FFNzZESTtFQUVRLG1CRHFoRDhDO0FEMFoxRDs7QUU1NkRJO0VBRVEsb0JEZ2hEOEM7QUQ4WjFEOztBRXI3REk7RUFFUSxtQkRpaEQ4QztBRHNhMUQ7O0FFcDdESTtFQUVRLG9CRDRnRDhDO0FEMGExRDs7QUU3N0RJO0VBRVEsbUJEcWhEOEM7QUQwYTFEOztBRTU3REk7RUFFUSxvQkRnaEQ4QztBRDhhMUQ7O0FFcjhESTtFQUVRLG1CRGloRDhDO0FEc2IxRDs7QUVwOERJO0VBRVEsb0JENGdEOEM7QUQwYjFEOztBRTc4REk7RUFFUSxtQkRxaEQ4QztBRDBiMUQ7O0FFNThESTtFQUVRLG9CRGdoRDhDO0FEOGIxRDs7QUVyOURJO0VBRVEsbUJEaWhEOEM7QURzYzFEOztBRXA5REk7RUFFUSxvQkQ0Z0Q4QztBRDBjMUQ7O0FFNzlESTtFQUVRLG1CRHFoRDhDO0FEMGMxRDs7QUU1OURJO0VBRVEsb0JEZ2hEOEM7QUQ4YzFEOztBRXIrREk7RUFFUSxtQkRpaEQ4QztBRHNkMUQ7O0FFcCtESTtFQUVRLG9CRDRnRDhDO0FEMGQxRDs7QUU3K0RJO0VBRVEsbUJEcWhEOEM7QUQwZDFEOztBRTUrREk7RUFFUSxvQkRnaEQ4QztBRDhkMUQ7O0FFci9ESTtFQUVRLG1CRGloRDhDO0FEc2UxRDs7QUVwL0RJO0VBRVEsb0JENGdEOEM7QUQwZTFEOztBRTcvREk7RUFFUSxtQkRxaEQ4QztBRDBlMUQ7O0FFNS9ESTtFQUVRLG9CRGdoRDhDO0FEOGUxRDs7QUVyZ0VJO0VBRVEsbUJEaWhEOEM7QURzZjFEOztBRXBnRUk7RUFFUSxvQkQ0Z0Q4QztBRDBmMUQ7O0FFN2dFSTtFQUVRLG1CRHFoRDhDO0FEMGYxRDs7QUU1Z0VJO0VBRVEsb0JEZ2hEOEM7QUQ4ZjFEOztBRXJoRUk7RUFFUSxtQkRpaEQ4QztBRHNnQjFEOztBRXBoRUk7RUFFUSxvQkQ0Z0Q4QztBRDBnQjFEOztBRTdoRUk7RUFFUSxtQkRxaEQ4QztBRDBnQjFEOztBRTVoRUk7RUFFUSxvQkRnaEQ4QztBRDhnQjFEOztBRXJpRUk7RUFFUSxtQkRpaEQ4QztBRHNoQjFEOztBRXBpRUk7RUFFUSxvQkQ0Z0Q4QztBRDBoQjFEOztBRTdpRUk7RUFFUSxtQkRxaEQ4QztBRDBoQjFEOztBRTVpRUk7RUFFUSxvQkRnaEQ4QztBRDhoQjFEOztBRXJqRUk7RUFFUSxtQkRpaEQ4QztBRHNpQjFEOztBRXBqRUk7RUFFUSxvQkQ0Z0Q4QztBRDBpQjFEOztBRTdqRUk7RUFFUSxtQkRxaEQ4QztBRDBpQjFEOztBRTVqRUk7RUFFUSxvQkRnaEQ4QztBRDhpQjFEOztBRXJrRUk7RUFFUSxtQkRpaEQ4QztBRHNqQjFEOztBRXBrRUk7RUFFUSxvQkQ0Z0Q4QztBRDBqQjFEOztBRTdrRUk7RUFFUSxtQkRxaEQ4QztBRDBqQjFEOztBRTVrRUk7RUFFUSxvQkRnaEQ4QztBRDhqQjFEOztBRXJsRUk7RUFFUSxtQkRpaEQ4QztBRHNrQjFEOztBRXBsRUk7RUFFUSxvQkQ0Z0Q4QztBRDBrQjFEOztBRTdsRUk7RUFFUSxtQkRxaEQ4QztBRDBrQjFEOztBRTVsRUk7RUFFUSxvQkRnaEQ4QztBRDhrQjFEOztBRXJtRUk7RUFFUSxtQkRpaEQ4QztBRHNsQjFEOztBRXBtRUk7RUFFUSxvQkQ0Z0Q4QztBRDBsQjFEOztBRTdtRUk7RUFFUSxtQkRxaEQ4QztBRDBsQjFEOztBRTVtRUk7RUFFUSxvQkRnaEQ4QztBRDhsQjFEOztBRXJuRUk7RUFFUSxtQkRpaEQ4QztBRHNtQjFEOztBRXBuRUk7RUFFUSxvQkQ0Z0Q4QztBRDBtQjFEOztBRTduRUk7RUFFUSxtQkRxaEQ4QztBRDBtQjFEOztBRTVuRUk7RUFFUSxvQkRnaEQ4QztBRDhtQjFEOztBRXJvRUk7RUFFUSxtQkRpaEQ4QztBRHNuQjFEOztBRXBvRUk7RUFFUSxvQkQ0Z0Q4QztBRDBuQjFEOztBRTdvRUk7RUFFUSxtQkRxaEQ4QztBRDBuQjFEOztBRTVvRUk7RUFFUSxvQkRnaEQ4QztBRDhuQjFEOztBRXJwRUk7RUFFUSxtQkRpaEQ4QztBRHNvQjFEOztBRXBwRUk7RUFFUSxvQkQ0Z0Q4QztBRDBvQjFEOztBRTdwRUk7RUFFUSxtQkRxaEQ4QztBRDBvQjFEOztBRTVwRUk7RUFFUSxvQkRnaEQ4QztBRDhvQjFEOztBRXJxRUk7RUFFUSxtQkRpaEQ4QztBRHNwQjFEOztBRXBxRUk7RUFFUSxvQkQ0Z0Q4QztBRDBwQjFEOztBRTdxRUk7RUFFUSxtQkRxaEQ4QztBRDBwQjFEOztBRTVxRUk7RUFFUSxvQkRnaEQ4QztBRDhwQjFEOztBRXJyRUk7RUFFUSxtQkRpaEQ4QztBRHNxQjFEOztBRXByRUk7RUFFUSxvQkQ0Z0Q4QztBRDBxQjFEOztBRTdyRUk7RUFFUSxtQkRxaEQ4QztBRDBxQjFEOztBRTVyRUk7RUFFUSxvQkRnaEQ4QztBRDhxQjFEOztBRXJzRUk7RUFFUSxtQkRpaEQ4QztBRHNyQjFEOztBRXBzRUk7RUFFUSxvQkQ0Z0Q4QztBRDByQjFEOztBRTdzRUk7RUFFUSxtQkRxaEQ4QztBRDByQjFEOztBRTVzRUk7RUFFUSxvQkRnaEQ4QztBRDhyQjFEOztBRXJ0RUk7RUFFUSxtQkRpaEQ4QztBRHNzQjFEOztBRXB0RUk7RUFFUSxvQkQ0Z0Q4QztBRDBzQjFEOztBRTd0RUk7RUFFUSxtQkRxaEQ4QztBRDBzQjFEOztBRTV0RUk7RUFFUSxvQkRnaEQ4QztBRDhzQjFEOztBRXJ1RUk7RUFFUSxtQkRpaEQ4QztBRHN0QjFEOztBRXB1RUk7RUFFUSxvQkQ0Z0Q4QztBRDB0QjFEOztBRTd1RUk7RUFFUSxtQkRxaEQ4QztBRDB0QjFEOztBRTV1RUk7RUFFUSxvQkRnaEQ4QztBRDh0QjFEOztBRXJ2RUk7RUFFUSxtQkRpaEQ4QztBRHN1QjFEOztBRXB2RUk7RUFFUSxvQkQ0Z0Q4QztBRDB1QjFEOztBRTd2RUk7RUFFUSxtQkRxaEQ4QztBRDB1QjFEOztBRTV2RUk7RUFFUSxvQkRnaEQ4QztBRDh1QjFEOztBRXJ3RUk7RUFFUSxtQkRpaEQ4QztBRHN2QjFEOztBRXB3RUk7RUFFUSxvQkQ0Z0Q4QztBRDB2QjFEOztBRTd3RUk7RUFFUSxtQkRxaEQ4QztBRDB2QjFEOztBRTV3RUk7RUFFUSxvQkRnaEQ4QztBRDh2QjFEOztBRXJ4RUk7RUFFUSxvQkRpaEQ4QztBRHN3QjFEOztBRXB4RUk7RUFFUSxxQkQ0Z0Q4QztBRDB3QjFEOztBRTd4RUk7RUFFUSxvQkRxaEQ4QztBRDB3QjFEOztBRTV4RUk7RUFFUSxxQkRnaEQ4QztBRDh3QjFEOztBRXJ5RUk7RUFFUSxvQkRpaEQ4QztBRHN4QjFEOztBRXB5RUk7RUFFUSxxQkQ0Z0Q4QztBRDB4QjFEOztBRTd5RUk7RUFFUSxvQkRxaEQ4QztBRDB4QjFEOztBRTV5RUk7RUFFUSxxQkRnaEQ4QztBRDh4QjFEOztBRXJ6RUk7RUFFUSxvQkRpaEQ4QztBRHN5QjFEOztBRXB6RUk7RUFFUSxxQkQ0Z0Q4QztBRDB5QjFEOztBRTd6RUk7RUFFUSxvQkRxaEQ4QztBRDB5QjFEOztBRTV6RUk7RUFFUSxxQkRnaEQ4QztBRDh5QjFEOztBRXIwRUk7RUFFUSxvQkRpaEQ4QztBRHN6QjFEOztBRXAwRUk7RUFFUSxxQkQ0Z0Q4QztBRDB6QjFEOztBRTcwRUk7RUFFUSxvQkRxaEQ4QztBRDB6QjFEOztBRTUwRUk7RUFFUSxxQkRnaEQ4QztBRDh6QjFEOztBRXIxRUk7RUFFUSxvQkRpaEQ4QztBRHMwQjFEOztBRXAxRUk7RUFFUSxxQkQ0Z0Q4QztBRDAwQjFEOztBRTcxRUk7RUFFUSxvQkRxaEQ4QztBRDAwQjFEOztBRTUxRUk7RUFFUSxxQkRnaEQ4QztBRDgwQjFEOztBRXIyRUk7RUFFUSxvQkRpaEQ4QztBRHMxQjFEOztBRXAyRUk7RUFFUSxxQkQ0Z0Q4QztBRDAxQjFEOztBRTcyRUk7RUFFUSxvQkRxaEQ4QztBRDAxQjFEOztBRTUyRUk7RUFFUSxxQkRnaEQ4QztBRDgxQjFEOztBRXIzRUk7RUFFUSxvQkRpaEQ4QztBRHMyQjFEOztBRXAzRUk7RUFFUSxxQkQ0Z0Q4QztBRDAyQjFEOztBRTczRUk7RUFFUSxvQkRxaEQ4QztBRDAyQjFEOztBRTUzRUk7RUFFUSxxQkRnaEQ4QztBRDgyQjFEOztBRXI0RUk7RUFFUSxvQkRpaEQ4QztBRHMzQjFEOztBRXA0RUk7RUFFUSxxQkQ0Z0Q4QztBRDAzQjFEOztBRTc0RUk7RUFFUSxvQkRxaEQ4QztBRDAzQjFEOztBRTU0RUk7RUFFUSxxQkRnaEQ4QztBRDgzQjFEOztBRXI1RUk7RUFFUSxvQkRpaEQ4QztBRHM0QjFEOztBRXA1RUk7RUFFUSxxQkQ0Z0Q4QztBRDA0QjFEOztBRTc1RUk7RUFFUSxvQkRxaEQ4QztBRDA0QjFEOztBRTU1RUk7RUFFUSxxQkRnaEQ4QztBRDg0QjFEOztBRXI2RUk7RUFFUSxvQkRpaEQ4QztBRHM1QjFEOztBRXA2RUk7RUFFUSxxQkQ0Z0Q4QztBRDA1QjFEOztBRTc2RUk7RUFFUSxvQkRxaEQ4QztBRDA1QjFEOztBRTU2RUk7RUFFUSxxQkRnaEQ4QztBRDg1QjFEOztBRXI3RUk7RUFFUSxvQkRpaEQ4QztBRHM2QjFEOztBRXA3RUk7RUFFUSxxQkQ0Z0Q4QztBRDA2QjFEOztBRTc3RUk7RUFFUSxvQkRxaEQ4QztBRDA2QjFEOztBRTU3RUk7RUFFUSxxQkRnaEQ4QztBRDg2QjFEOztBRXI4RUk7RUFFUSxvQkRpaEQ4QztBRHM3QjFEOztBRXA4RUk7RUFFUSxxQkQ0Z0Q4QztBRDA3QjFEOztBRTc4RUk7RUFFUSxvQkRxaEQ4QztBRDA3QjFEOztBRTU4RUk7RUFFUSxxQkRnaEQ4QztBRDg3QjFEOztBRXI5RUk7RUFFUSxvQkRpaEQ4QztBRHM4QjFEOztBRXA5RUk7RUFFUSxxQkQ0Z0Q4QztBRDA4QjFEOztBRTc5RUk7RUFFUSxvQkRxaEQ4QztBRDA4QjFEOztBRTU5RUk7RUFFUSxxQkRnaEQ4QztBRDg4QjFEOztBRXIrRUk7RUFFUSxvQkRpaEQ4QztBRHM5QjFEOztBRXArRUk7RUFFUSxxQkQ0Z0Q4QztBRDA5QjFEOztBRTcrRUk7RUFFUSxvQkRxaEQ4QztBRDA5QjFEOztBRTUrRUk7RUFFUSxxQkRnaEQ4QztBRDg5QjFEOztBRXIvRUk7RUFFUSxvQkRpaEQ4QztBRHMrQjFEOztBRXAvRUk7RUFFUSxxQkQ0Z0Q4QztBRDArQjFEOztBRTcvRUk7RUFFUSxvQkRxaEQ4QztBRDArQjFEOztBRTUvRUk7RUFFUSxxQkRnaEQ4QztBRDgrQjFEOztBRXJnRkk7RUFFUSxvQkRpaEQ4QztBRHMvQjFEOztBRXBnRkk7RUFFUSxxQkQ0Z0Q4QztBRDAvQjFEOztBRTdnRkk7RUFFUSxvQkRxaEQ4QztBRDAvQjFEOztBRTVnRkk7RUFFUSxxQkRnaEQ4QztBRDgvQjFEOztBRXJoRkk7RUFFUSxvQkRpaEQ4QztBRHNnQzFEOztBRXBoRkk7RUFFUSxxQkQ0Z0Q4QztBRDBnQzFEOztBRTdoRkk7RUFFUSxvQkRxaEQ4QztBRDBnQzFEOztBRTVoRkk7RUFFUSxxQkRnaEQ4QztBRDhnQzFEOztBRXJpRkk7RUFFUSxvQkRpaEQ4QztBRHNoQzFEOztBRXBpRkk7RUFFUSxxQkQ0Z0Q4QztBRDBoQzFEOztBRTdpRkk7RUFFUSxvQkRxaEQ4QztBRDBoQzFEOztBRTVpRkk7RUFFUSxxQkRnaEQ4QztBRDhoQzFEOztBRXJqRkk7RUFFUSxvQkRpaEQ4QztBRHNpQzFEOztBRXBqRkk7RUFFUSxxQkQ0Z0Q4QztBRDBpQzFEOztBRTdqRkk7RUFFUSxvQkRxaEQ4QztBRDBpQzFEOztBRTVqRkk7RUFFUSxxQkRnaEQ4QztBRDhpQzFEOztBRXJrRkk7RUFFUSxvQkRpaEQ4QztBRHNqQzFEOztBRXBrRkk7RUFFUSxxQkQ0Z0Q4QztBRDBqQzFEOztBRTdrRkk7RUFFUSxvQkRxaEQ4QztBRDBqQzFEOztBRTVrRkk7RUFFUSxxQkRnaEQ4QztBRDhqQzFEOztBRXJsRkk7RUFFUSxvQkRpaEQ4QztBRHNrQzFEOztBRXBsRkk7RUFFUSxxQkQ0Z0Q4QztBRDBrQzFEOztBRTdsRkk7RUFFUSxvQkRxaEQ4QztBRDBrQzFEOztBRTVsRkk7RUFFUSxxQkRnaEQ4QztBRDhrQzFEOztBRXJtRkk7RUFFUSxvQkRpaEQ4QztBRHNsQzFEOztBRXBtRkk7RUFFUSxxQkQ0Z0Q4QztBRDBsQzFEOztBRTdtRkk7RUFFUSxvQkRxaEQ4QztBRDBsQzFEOztBRTVtRkk7RUFFUSxxQkRnaEQ4QztBRDhsQzFEOztBRXJuRkk7RUFFUSxvQkRpaEQ4QztBRHNtQzFEOztBRXBuRkk7RUFFUSxxQkQ0Z0Q4QztBRDBtQzFEOztBRTduRkk7RUFFUSxvQkRxaEQ4QztBRDBtQzFEOztBRTVuRkk7RUFFUSxxQkRnaEQ4QztBRDhtQzFEOztBRXJvRkk7RUFFUSxvQkRpaEQ4QztBRHNuQzFEOztBRXBvRkk7RUFFUSxxQkQ0Z0Q4QztBRDBuQzFEOztBRTdvRkk7RUFFUSxvQkRxaEQ4QztBRDBuQzFEOztBRTVvRkk7RUFFUSxxQkRnaEQ4QztBRDhuQzFEOztBRXJwRkk7RUFFUSxvQkRpaEQ4QztBRHNvQzFEOztBRXBwRkk7RUFFUSxxQkQ0Z0Q4QztBRDBvQzFEOztBRTdwRkk7RUFFUSxvQkRxaEQ4QztBRDBvQzFEOztBRTVwRkk7RUFFUSxxQkRnaEQ4QztBRDhvQzFEOztBRXJxRkk7RUFFUSxvQkRpaEQ4QztBRHNwQzFEOztBRXBxRkk7RUFFUSxxQkQ0Z0Q4QztBRDBwQzFEOztBRTdxRkk7RUFFUSxvQkRxaEQ4QztBRDBwQzFEOztBRTVxRkk7RUFFUSxxQkRnaEQ4QztBRDhwQzFEOztBRXJyRkk7RUFFUSxvQkRpaEQ4QztBRHNxQzFEOztBRXByRkk7RUFFUSxxQkQ0Z0Q4QztBRDBxQzFEOztBRTdyRkk7RUFFUSxvQkRxaEQ4QztBRDBxQzFEOztBRTVyRkk7RUFFUSxxQkRnaEQ4QztBRDhxQzFEOztBRXJzRkk7RUFFUSxvQkRpaEQ4QztBRHNyQzFEOztBRXBzRkk7RUFFUSxxQkQ0Z0Q4QztBRDByQzFEOztBRTdzRkk7RUFFUSxvQkRxaEQ4QztBRDByQzFEOztBRTVzRkk7RUFFUSxxQkRnaEQ4QztBRDhyQzFEOztBRXJ0Rkk7RUFFUSxvQkRpaEQ4QztBRHNzQzFEOztBRXB0Rkk7RUFFUSxxQkQ0Z0Q4QztBRDBzQzFEOztBRTd0Rkk7RUFFUSxvQkRxaEQ4QztBRDBzQzFEOztBRTV0Rkk7RUFFUSxxQkRnaEQ4QztBRDhzQzFEOztBRXJ1Rkk7RUFFUSxvQkRpaEQ4QztBRHN0QzFEOztBRXB1Rkk7RUFFUSxxQkQ0Z0Q4QztBRDB0QzFEOztBRTd1Rkk7RUFFUSxvQkRxaEQ4QztBRDB0QzFEOztBRTV1Rkk7RUFFUSxxQkRnaEQ4QztBRDh0QzFEOztBRXJ2Rkk7RUFFUSxvQkRpaEQ4QztBRHN1QzFEOztBRXB2Rkk7RUFFUSxxQkQ0Z0Q4QztBRDB1QzFEOztBRTd2Rkk7RUFFUSxvQkRxaEQ4QztBRDB1QzFEOztBRTV2Rkk7RUFFUSxxQkRnaEQ4QztBRDh1QzFEOztBRXJ3Rkk7RUFFUSxvQkRpaEQ4QztBRHN2QzFEOztBRXB3Rkk7RUFFUSxxQkQ0Z0Q4QztBRDB2QzFEOztBRTd3Rkk7RUFFUSxvQkRxaEQ4QztBRDB2QzFEOztBRTV3Rkk7RUFFUSxxQkRnaEQ4QztBRDh2QzFEOztBRXJ4Rkk7RUFFUSxvQkRpaEQ4QztBRHN3QzFEOztBRXB4Rkk7RUFFUSxxQkQ0Z0Q4QztBRDB3QzFEOztBRTd4Rkk7RUFFUSxvQkRxaEQ4QztBRDB3QzFEOztBRTV4Rkk7RUFFUSxxQkRnaEQ4QztBRDh3QzFEOztBRXJ5Rkk7RUFFUSxvQkRpaEQ4QztBRHN4QzFEOztBRXB5Rkk7RUFFUSxxQkQ0Z0Q4QztBRDB4QzFEOztBRTd5Rkk7RUFFUSxvQkRxaEQ4QztBRDB4QzFEOztBRTV5Rkk7RUFFUSxxQkRnaEQ4QztBRDh4QzFEOztBRXJ6Rkk7RUFFUSxvQkRpaEQ4QztBRHN5QzFEOztBRXB6Rkk7RUFFUSxxQkQ0Z0Q4QztBRDB5QzFEOztBRTd6Rkk7RUFFUSxvQkRxaEQ4QztBRDB5QzFEOztBRTV6Rkk7RUFFUSxxQkRnaEQ4QztBRDh5QzFEOztBRXIwRkk7RUFFUSxvQkRpaEQ4QztBRHN6QzFEOztBRXAwRkk7RUFFUSxxQkQ0Z0Q4QztBRDB6QzFEOztBRTcwRkk7RUFFUSxvQkRxaEQ4QztBRDB6QzFEOztBRTUwRkk7RUFFUSxxQkRnaEQ4QztBRDh6QzFEOztBRXIxRkk7RUFFUSxvQkRpaEQ4QztBRHMwQzFEOztBRXAxRkk7RUFFUSxxQkQ0Z0Q4QztBRDAwQzFEOztBRTcxRkk7RUFFUSxvQkRxaEQ4QztBRDAwQzFEOztBRTUxRkk7RUFFUSxxQkRnaEQ4QztBRDgwQzFEOztBRXIyRkk7RUFFUSxvQkRpaEQ4QztBRHMxQzFEOztBRXAyRkk7RUFFUSxxQkQ0Z0Q4QztBRDAxQzFEOztBRTcyRkk7RUFFUSxvQkRxaEQ4QztBRDAxQzFEOztBRTUyRkk7RUFFUSxxQkRnaEQ4QztBRDgxQzFEOztBRXIzRkk7RUFFUSxvQkRpaEQ4QztBRHMyQzFEOztBRXAzRkk7RUFFUSxxQkQ0Z0Q4QztBRDAyQzFEOztBRTczRkk7RUFFUSxvQkRxaEQ4QztBRDAyQzFEOztBRTUzRkk7RUFFUSxxQkRnaEQ4QztBRDgyQzFEOztBRXI0Rkk7RUFFUSxvQkRpaEQ4QztBRHMzQzFEOztBRXA0Rkk7RUFFUSxxQkQ0Z0Q4QztBRDAzQzFEOztBRTc0Rkk7RUFFUSxvQkRxaEQ4QztBRDAzQzFEOztBRTU0Rkk7RUFFUSxxQkRnaEQ4QztBRDgzQzFEOztBRXI1Rkk7RUFFUSxvQkRpaEQ4QztBRHM0QzFEOztBRXA1Rkk7RUFFUSxxQkQ0Z0Q4QztBRDA0QzFEOztBRTc1Rkk7RUFFUSxvQkRxaEQ4QztBRDA0QzFEOztBRTU1Rkk7RUFFUSxxQkRnaEQ4QztBRDg0QzFEOztBRXI2Rkk7RUFFUSxvQkRpaEQ4QztBRHM1QzFEOztBRXA2Rkk7RUFFUSxxQkQ0Z0Q4QztBRDA1QzFEOztBRTc2Rkk7RUFFUSxvQkRxaEQ4QztBRDA1QzFEOztBRTU2Rkk7RUFFUSxxQkRnaEQ4QztBRDg1QzFEOztBRXI3Rkk7RUFFUSxvQkRpaEQ4QztBRHM2QzFEOztBRXA3Rkk7RUFFUSxxQkQ0Z0Q4QztBRDA2QzFEOztBRTc3Rkk7RUFFUSxvQkRxaEQ4QztBRDA2QzFEOztBRTU3Rkk7RUFFUSxxQkRnaEQ4QztBRDg2QzFEOztBRXI4Rkk7RUFFUSxvQkRpaEQ4QztBRHM3QzFEOztBRXA4Rkk7RUFFUSxxQkQ0Z0Q4QztBRDA3QzFEOztBRTc4Rkk7RUFFUSxvQkRxaEQ4QztBRDA3QzFEOztBRTU4Rkk7RUFFUSxxQkRnaEQ4QztBRDg3QzFEOztBRXI5Rkk7RUFFUSxvQkRpaEQ4QztBRHM4QzFEOztBRXA5Rkk7RUFFUSxxQkQ0Z0Q4QztBRDA4QzFEOztBRTc5Rkk7RUFFUSxvQkRxaEQ4QztBRDA4QzFEOztBRTU5Rkk7RUFFUSxxQkRnaEQ4QztBRDg4QzFEOztBRXIrRkk7RUFFUSxvQkRpaEQ4QztBRHM5QzFEOztBRXArRkk7RUFFUSxxQkQ0Z0Q4QztBRDA5QzFEOztBRTcrRkk7RUFFUSxvQkRxaEQ4QztBRDA5QzFEOztBRTUrRkk7RUFFUSxxQkRnaEQ4QztBRDg5QzFEOztBRXIvRkk7RUFFUSxvQkRpaEQ4QztBRHMrQzFEOztBRXAvRkk7RUFFUSxxQkQ0Z0Q4QztBRDArQzFEOztBRTcvRkk7RUFFUSxvQkRxaEQ4QztBRDArQzFEOztBRTUvRkk7RUFFUSxxQkRnaEQ4QztBRDgrQzFEOztBRXJnR0k7RUFFUSxvQkRpaEQ4QztBRHMvQzFEOztBRXBnR0k7RUFFUSxxQkQ0Z0Q4QztBRDAvQzFEOztBRTdnR0k7RUFFUSxvQkRxaEQ4QztBRDAvQzFEOztBRTVnR0k7RUFFUSxxQkRnaEQ4QztB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QW1CO0FQNjBHdkI7O0FVdHZHWTtFQUNJLDZCQUE0QztFQUM1QyxtdU5DeEg2dU47RUR5SDd1TixtQkFBbUI7RUFDbkIsa0JBQWtCO0FWeXZHbEM7O0FNMzJHQTtFSXlISSw2QkFBNEM7RUFDNUMsZURsR2U7RUNtR2YsaUJEbkdlO0VDb0dmLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsb0JBQW9CO0VBQ3BCLG9CQUFvQjtFQUVwQixzQ0FBQTtFQUNBLG1DQUFtQztFQUNuQyxrQ0FBa0M7QVZxdkd0Qzs7QU14M0dBO0VJc0dVLGdCQzVHMEM7QVhrNEdwRDs7QU01M0dBO0VJc0dVLGdCQzNHcUM7QVhxNEcvQzs7QU1oNEdBO0VJc0dVLGdCQzFHa0M7QVh3NEc1Qzs7QU1wNEdBO0VJc0dVLGdCQ3pHcUM7QVgyNEcvQzs7QU14NEdBO0VJc0dVLGdCQ3hHb0M7QVg4NEc5Qzs7QU01NEdBO0VJc0dVLGdCQ3BHMkM7QVg4NEdyRDs7QU1oNUdBO0VJc0dVLGdCQ25Hc0M7QVhpNUdoRDs7QU1wNUdBO0VJc0dVLGdCQ2xHeUM7QVhvNUduRDs7QU14NUdBO0VJc0dVLGdCQ2pHbUM7QVh1NUc3Qzs7QU01NUdBO0VJc0dVLGdCQ2hHb0M7QVgwNUc5Qzs7QU1oNkdBO0VJc0dVLGdCQy9Ga0M7QVg2NUc1Qzs7QU1wNkdBO0VJc0dVLGdCQzlGbUM7QVhnNkc3Qzs7QU14NkdBO0VJc0dVLGdCQzdGb0M7QVhtNkc5Qzs7QU01NkdBO0VJc0dVLGdCQzVGdUM7QVhzNkdqRDs7QU1oN0dBO0VJc0dVLGdCQzNGd0M7QVh5NkdsRDs7QU1wN0dBO0VJc0dVLGdCQzFGa0M7QVg0Nkc1Qzs7QU14N0dBO0VJc0dVLGdCQ3pGcUM7QVgrNkcvQzs7QU01N0dBO0VJc0dVLGdCQ3hGb0M7QVhrN0c5Qzs7QU1oOEdBO0VJc0dVLGdCQ3ZGbUM7QVhxN0c3Qzs7QU1wOEdBO0VJc0dVLGdCQ3RGb0M7QVh3N0c5Qzs7QU14OEdBO0VJc0dVLGdCQ3JGbUM7QVgyN0c3Qzs7QU01OEdBO0VJc0dVLGdCQ3BGbUM7QVg4N0c3Qzs7QU1oOUdBO0VJc0dVLGdCQ25GcUM7QVhpOEcvQzs7QU1wOUdBO0VJc0dVLGdCQ2xGc0M7QVhvOEdoRDs7QU14OUdBO0VJc0dVLGdCQ2pGdUM7QVh1OEdqRDs7QU01OUdBO0VJc0dVLGdCQ2hGbUM7QVgwOEc3Qzs7QU1oK0dBO0VJc0dVLGdCQy9FdUM7QVg2OEdqRDs7QU1wK0dBO0VJc0dVLGdCQzlFbUM7QVhnOUc3Qzs7QU14K0dBO0VJc0dVLGdCQzdFbUM7QVhtOUc3Qzs7QU01K0dBO0VJc0dVLGdCQzVFMEM7QVhzOUdwRDs7QU1oL0dBO0VJc0dVLGdCQzNFb0M7QVh5OUc5Qzs7QU1wL0dBO0VJc0dVLGdCQzFFa0M7QVg0OUc1Qzs7QU14L0dBO0VJc0dVLGdCQ3pFb0M7QVgrOUc5Qzs7QU01L0dBO0VJc0dVLGdCQ3hFdUM7QVhrK0dqRDs7QU1oZ0hBO0VJc0dVLGdCQ3JFb0M7QVhtK0c5Qzs7QU1wZ0hBO0VJc0dVLGdCQ3BFbUM7QVhzK0c3Qzs7QU14Z0hBO0VJc0dVLGdCQ25FeUM7QVh5K0duRDs7QU01Z0hBO0VJc0dVLGdCQ2xFeUM7QVg0K0duRDs7QU1oaEhBO0VJc0dVLGdCQ2pFMEM7QVgrK0dwRDs7QU1waEhBO0VJc0dVLGdCQ2hFdUM7QVhrL0dqRDs7QU14aEhBO0VJc0dVLGdCQy9EbUM7QVhxL0c3Qzs7QU01aEhBO0VJc0dVLGdCQzlEMEM7QVh3L0dwRDs7QU1oaUhBO0VJc0dVLGdCQzdEaUQ7QVgyL0czRDs7QU1waUhBO0VJc0dVLGdCQzVEd0M7QVg4L0dsRDs7QU14aUhBO0VJc0dVLGdCQzNEdUM7QVhpZ0hqRDs7QU01aUhBO0VJMExNLGdCQzNLdUM7QVhpaUg3Qzs7QU1oakhBO0VJOExNLGdCQzVLdUM7QVhraUg3Qzs7QU1wakhBO0VJa01NLGdCQ2pLd0M7QVh1aEg5Qzs7QU14akhBO0VFcUdRLHNCQ3ZHWTtFRDRHUixrREFxRWtDO0FSODRHOUM7O0FNN2pIQTtFTUZRLHNCQUFzQjtFQUN0QixhQUFhO0FabWtIckI7O0FNbGtIQTtFTUdRLGFBQWE7QVpta0hyQjs7QU10a0hBOztFT0pZLGlCQUFpQjtBYitrSDdCOztBTTNrSEE7RU9FWSxZQUFZO0FiNmtIeEI7O0FNL2tIQTtFT09RLFVBQVU7RUFDVixZQUFZO0VBQ1osZ0JBQWdCO0FiNGtIeEI7O0FVdDJHUTtFQUVRLGdCRDNORTtBVG1rSGxCOztBVWwyR1E7RUFFUSxpQkRuT0U7QVR1a0hsQjs7QU03bEhBO0VPaUJRLFNBQVM7RUxvRlQsc0JDdkdZO0VENEdSLGtEQXFFa0M7QVJvN0c5Qzs7QU1ubUhBOztFRXFHUSxzQkN2R1k7RUQ0R1Isa0RBcUVrQztBUjA3RzlDOztBTXptSEE7Ozs7Ozs7RU9tQ1Esa0JBQWtCO0VBQ2xCLG9CQUFvQjtFQUNwQixjQUFjO0VBR1YsaUJBQWlCO0VBQ2pCLG1CQUFtQjtFTDREdkIscUJNR3VCO0VORW5CLG1EQXFFa0M7QVIwOEc5Qzs7QU16bkhBOzs7Ozs7O0VFcUdRLDBCQ3ZDdUI7RUQ0Q25CLCtEQXFFa0M7RUExRXRDLDZCQ3pCd0M7RUQ4QnBDLHdFQXFFa0M7RUExRXRDLGdDTUd1QjtFTkVuQix1RUFxRWtDO0FSeTlHOUM7O0FNeG9IQTs7Ozs7OztFT29EWSxhQUFhO0VBQ2IsNkNFQzhDO0VQK0NsRCxxQkM3Rm1CO0VEa0dmLDJGQXFFa0M7QVJzK0c5Qzs7QU1ycEhBO0VPMkRRLDBCQUEwQjtBYjhsSGxDOztBTXpwSEE7RU84RFksd0JBQXdCO0VBQ3hCLFNBQVM7QWIrbEhyQjs7QU05cEhBO0VPb0VRLFVBQVU7QWI4bEhsQjs7QU1scUhBO0VPeUVZLDZDRW5COEM7QWZnbkgxRDs7QU10cUhBO0VFcUdRLDBCQ3JDaUM7RUQwQzdCLGdFQXFFa0M7QVI0L0c5Qzs7QU0zcUhBO0VPcUZRLFlKL0NrQztBVHlvSDFDOztBTS9xSEE7RUlvQ2dCLGFBQWE7QVYrb0g3Qjs7QU1uckhBO0VJc0NvQixXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLDZCQUE2QjtFQUM3QixvQkFBb0I7RUFDcEIsUUc4Q3NDO0VIN0N0QyxTRzZDc0M7RUg1Q3RDLGNBQWM7RUFDZCx1QkFBa0M7RUFDbEMsd0JBQW1DO0VBQ25DLGlCQUFpQjtFRnNEN0IscUJDN0ZtQjtFRGtHZiwyRkFxRWtDO0FSbWhIOUM7O0FNbHNIQTtFRXFHUSxzQkN2R1k7RUQ0R1Isa0RBcUVrQztFS25GdEMsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtBYjRtSDFCOztBTXpzSEE7RU9pR1EsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixtQkFBbUI7RUFDbkIsZ0JBQWdCO0VBQ2hCLHVCQUF1QjtBYjRtSC9COztBTWp0SEE7RUVxR1EseUJDckdnQjtFRDBHWixvREFxRWtDO0FSdWlIOUM7O0FNdHRIQTtFTzZHUSxpQkFBaUI7RUFDakIsa0JBQWtCO0VBQ2xCLGVBQWU7RVhwQm5CLHNCV3FCK0I7RVhwQi9CLHlCV29CK0I7RVhuQi9CLHFCV21CK0I7RVhsQi9CLGlCV2tCK0I7QWJnbkhuQzs7QU1odUhBO0VPa0hZLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsZ0JBQWdCO0Fia25INUI7O0FNdHVIQTtFRXFHUSxzQkN2R1k7RUQ0R1Isa0RBcUVrQztFS3BEbEMsZ0JKckY4QjtFSXNGOUIsZUFBZTtBYmluSDNCOztBTTd1SEE7RU9nSVksZ0JBQWdCO0FiaW5INUI7O0FNanZIQTtFT29JWSxZSjlGOEI7QVQrc0gxQzs7QU1ydkhBO0VPdUlZLFdBQVc7RUFDWCxtQkFBbUI7RUFDbkIsZ0JBQWdCO0VBQ2hCLHVCQUF1QjtBYmtuSG5DOztBTTV2SEE7RU82SVksYUFBYTtFQUNiLG1CQUFtQjtBYm1uSC9COztBTWp3SEE7RU9pSlksWUFBWTtBYm9uSHhCOztBTXJ3SEE7RUVxR1EseUJDckdnQjtFRDBHWixtRUFxRWtDO0FSMmxIOUM7O0FNMXdIQTtFTzZKUSxXQUFXO0VBQ1gsZ0JBQWdCO0VBQ2hCLGFBQWtDO0FiaW5IMUM7O0FNaHhIQTtFT21LUSxxQkovSHNDO0VJZ0l0QyxZSnhJeUI7QVR5dkhqQzs7QU1yeEhBO0VPMEtRLGVBQWU7RUFDZixZSnJJa0M7QVRvdkgxQzs7QU0xeEhBO0VFcUdRLHlCQ3JHZ0I7RUQwR1osb0RBcUVrQztBUmduSDlDOztBTS94SEE7RU9tTFEsa0JKL0lzQztBVCt2SDlDOztBTW55SEE7RUVxR1Esc0JDakdjO0VEc0dWLCtEQXFFa0M7QVJ5bkg5Qzs7QU14eUhBOzs7O0VFcUdRLDBCQ3JDaUM7RUQwQzdCLGdFQXFFa0M7QVJpb0g5Qzs7QVVqa0hRO0VBRVEsa0JEN004QjtBVGd4SDlDOztBVTdqSFE7RUFFUSxpQkRyTjhCO0FUb3hIOUM7O0FNeHpIQTtFT3lNUSxZQUFrQztFQUNsQyxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLFVBQVU7QWJtbkhsQjs7QU0vekhBOztFT2lOUSxlQUFlO0FibW5IdkI7O0FNcDBIQTtFT3FOUSxlQUFlO0VBQ2YsVUFBVTtFTGpIViwwQkNyQ2lDO0VEMEM3QixnRUFxRWtDO0FSNHBIOUM7O0FVNWxIUTtFQUVRLGdCR3RCZ0M7QWJvbkhoRDs7QVV4bEhRO0VBRVEsaUJHOUJnQztBYnduSGhEOztBTW4xSEE7RUVxR1Esc0JPaEc0QjtFUHFHeEIsNERBcUVrQztFS2lEdEMsWUoxTVU7QVRtMEhsQjs7QU16MUhBO0VPb09RLFlKOU1VO0FUdTBIbEI7O0FNNzFIQTtFT3dPUSxZQUNKO0Fid25ISjs7QU1qMkhBO0VPNE9RLGFBQWlDO0FieW5IekM7O0FNcjJIQTtFT2dQUSxtQkFBbUI7QWJ5bkgzQjs7QVUxbkhRO0VBRVEsaUJEM05FO0FUdTFIbEI7O0FVdG5IUTtFQUVRLGdCRG5PRTtBVDIxSGxCOztBTWozSEE7RU9xUFEsa0JBQXNDO0FiZ29IOUM7O0FVdG9IUTtFQUVRLGtCR1NvRDtBYituSHBFOztBVWxvSFE7RUFFUSxpQkdDb0Q7QWJtb0hwRTs7QU03M0hBO0VPOFBRLFdBQVc7RUFDWCxZQUFZO0VBQ1osbUJBQW1CO0VBQ25CLGlCQUFpQjtFTDVKakIscUJDL0ZpQjtFRG9HYiw2Q0FxRWtDO0VBMUV0QyxzQkN2R1k7RUQ0R1Isa0RBcUVrQztBUnl0SDlDOztBTXg0SEE7RU9zUVEsUUFBUTtFQUNSLFVBQVU7RUFDVixVQUFVO0VBQ1YsV0FBVztFQUNYLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsa0JBQWtCO0VMdktsQixxQ0NyQ2lDO0VEMEM3QiwyRUFxRWtDO0FScXVIOUM7O0FNcDVIQTtFT2lSUSxpQkFBaUI7RUw1S2pCLHFCQy9GaUI7RURvR2IsNkNBcUVrQztFS29HdEMsa0JBQWtCO0Fid29IMUI7O0FNMzVIQTtFT3FSWSw2Q0UvTjhDO0FmeTJIMUQ7O0FNLzVIQTtFRXFHUSxzQkN2R1k7RUQ0R1Isa0RBcUVrQztFQTFFdEMsMEJDckNpQztFRDBDN0IsZ0VBcUVrQztBUnV2SDlDOztBTXQ2SEE7RU8rUlEsa0JBQWtCO0FiMm9IMUI7O0FNMTZIQTtFT21TUSxZSjNRVztBVHM1SG5COztBTTk2SEE7RU91U1EsWUpqUlU7QVQ0NUhsQjs7QU1sN0hBO0VPMlNRLHFCQUFnQztFQUNoQyxrQkFBa0I7QWIyb0gxQjs7QU12N0hBO0VPZ1RRLGFBQWE7QWIyb0hyQjs7QU0zN0hBO0VPb1RRLDBFQUEwRTtBYjJvSGxGOztBTS83SEE7RU93VFEsd0VBQXdFO0FiMm9IaEY7O0FNbjhIQTtFTzRUUSxtQkFBbUI7RUFDbkIsWUFBWTtFQUNaLFdBQVc7RUFDWCx1QkFBdUI7RUFDdkIsaUJBQWlCO0VBQ2pCLDJDQUEyQztBYjJvSG5EOztBTTU4SEE7RU9xVVEsa0JBQWtCO0FiMm9IMUI7O0FNaDlIQTtFT3lVUSxrQkFBa0I7QWIyb0gxQjs7QU1wOUhBO0VPNlVRLG1CQUFtQjtFQUNuQixZQUFZO0VBQ1osa0JBQWtCO0FiMm9IMUI7O0FNMTlIQTtFT21WUSxpQkFBaUI7RUFDakIsV0FBVztFQUNYLFlBQVk7RUFDWixtQkFBbUI7RUFDbkIseUJBQW9DO0VBQ3BDLDJDQUEyQztBYjJvSG5EOztBTW4rSEE7RU80VlEsYUFBYTtBYjJvSHJCOztBTXYrSEE7RU84VlksY0FBYztBYjZvSDFCOztBTTMrSEE7RU9pV1ksZUFBZTtBYjhvSDNCOztBTS8rSEE7RUVxR1EsZ0JDdkdZO0VENEdSLDRDQXFFa0M7RUVsRjFDLGtCS3BDZ0I7RUxxQ2hCLCtHRHhDZ0g7RUN5Q2hILFlEekVjO0VJb1ZWLGdCQUFnQjtFQUNoQix1QkFBdUI7RUx0UXZCLDBCQ3JDaUM7RUQwQzdCLGdFQXFFa0M7RUsrTHRDLHVCQUEwQztFQUMxQyxpQmRqVFk7RWNrVFosU0FBUztFQUNULGVBQWtDO0VBQ2xDLDJCQUE4QztBYjhvSHREOztBTWhnSUE7RU9zWFEsaUJKaFdVO0VEK0VWLDBCQ3ZDdUI7RUQ0Q25CLHNEQXFFa0M7QVJ1MUg5Qzs7QU10Z0lBO0VPOFhRLDJDR3RKeUM7QWhCa3lIakQ7O0Fhcm9ISTs7RUFFSSxZQUFZO0VBQ1osb0JBQW9CO0Fid29INUI7O0FNaGhJQTtFTzRZUSxrQkpwVlk7QVQ0OUhwQjs7QU1waElBO0VFcUdRLHNCQ3ZHWTtFRDRHUixrREFxRWtDO0FSMDJIOUM7O0FNemhJQTtFRXFHUSxzQkN2R1k7RUQ0R1IseURBcUVrQztFQTFFdEMsMEJDckNpQztFRDBDN0IsNkRBcUVrQztFS3dPdEMsWWR6Vlk7RWMwVlosaUJKcFhzQztBVDgvSDlDOztBVW56SFE7RUFFUSxnQkQzTkU7QVRnaElsQjs7QVUveUhRO0VBRVEsaUJEbk9FO0FUb2hJbEI7O0FNMWlJQTtFRXFHUSxzQkN2R1k7RUQ0R1IseURBcUVrQztFQTFFdEMsMEJDdkN1QjtFRDRDbkIsc0RBcUVrQztFS3VQdEMsWUpoWlU7RUlrWlYsa0JFL1dZO0VGZ1haLHNCQUFzQjtBYjJvSDlCOztBTXBqSUE7RU80YVksVUFBVTtBYjRvSHRCOztBVXowSFE7RUFFUSxrQkdtTXlFO0Fid29IekY7O0FVcjBIUTtFQUVRLG1CRzJMeUU7QWI0b0h6Rjs7QVVqMUhRO0VBRVEsa0JHbU15RTtBYmdwSHpGOztBVTcwSFE7RUFFUSxtQkcyTHlFO0Fib3BIekY7O0FVejFIUTtFQUVRLGtCR21NeUU7QWJ3cEh6Rjs7QVVyMUhRO0VBRVEsbUJHMkx5RTtBYjRwSHpGOztBVWoySFE7RUFFUSxtQkdtTXlFO0FiZ3FIekY7O0FVNzFIUTtFQUVRLG9CRzJMeUU7QWJvcUh6Rjs7QVV6MkhRO0VBRVEsbUJHbU15RTtBYndxSHpGOztBVXIySFE7RUFFUSxvQkcyTHlFO0FiNHFIekY7O0FVajNIUTtFQUVRLG1CR21NeUU7QWJnckh6Rjs7QVU3MkhRO0VBRVEsb0JHMkx5RTtBYm9ySHpGOztBVXozSFE7RUFFUSxtQkdtTXlFO0Fid3JIekY7O0FVcjNIUTtFQUVRLG9CRzJMeUU7QWI0ckh6Rjs7QVVqNEhRO0VBRVEsbUJHbU15RTtBYmdzSHpGOztBVTczSFE7RUFFUSxvQkcyTHlFO0Fib3NIekY7O0FVejRIUTtFQUVRLG1CR21NeUU7QWJ3c0h6Rjs7QVVyNEhRO0VBRVEsb0JHMkx5RTtBYjRzSHpGOztBTWhvSUE7RU95YlEsZUFBZTtBYjJzSHZCOztBTXBvSUE7RUlvQ2dCLGFBQWE7QVZvbUk3Qjs7QU14b0lBO0VJc0NvQixXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLDZCQUE2QjtFQUM3QixvQkFBb0I7RUFDcEIsUUdrWjhDO0VIalo5QyxTR2laOEM7RUhoWjlDLGNBQWM7RUFDZCx1QkFBa0M7RUFDbEMsd0JBQW1DO0VBQ25DLGlCQUFpQjtFRnNEN0IscUJDN0ZtQjtFRGtHZiwyRkFxRWtDO0FSdytIOUM7O0FVeDZIUTtFQUVRLGtCRndETztBUmszSHZCOztBVXA2SFE7RUFFUSxpQkZnRE87QVJzM0h2Qjs7QU0vcElBO0VJb0NnQixhQUFhO0FWK25JN0I7O0FNbnFJQTtFSXNDb0IsV0FBVztFQUNYLGtCQUFrQjtFQUNsQiw2QkFBNkI7RUFDN0Isb0JBQW9CO0VBQ3BCLFFHbWFWO0VIbGFVLFNHa2FWO0VIamFVLGNBQWM7RUFDZCx1QkFBa0M7RUFDbEMsd0JBQW1DO0VBQ25DLGlCQUFpQjtFRnNEN0IscUJDN0ZtQjtFRGtHZiwyRkFxRWtDO0FSbWdJOUM7O0FNbHJJQTs7RU9rZFksbUJMektXO0FSODRIdkI7O0FNdnJJQTs7RUVxR1EsMEJDdkN1QjtFRDRDbkIsK0RBcUVrQztFSzBTdEMsb0JBQW9CO0FicXVINUI7O0FVLzhIUTtFQUVRLGlCRzhPMEU7QWJtdUgxRjs7QVUzOEhRO0VBRVEsa0JHc08wRTtBYnV1SDFGOztBTXRzSUE7RU9tZVEsZ0JBQThEO0FidXVIdEU7O0FNMXNJQTtFT3VlUSxjTDlMZTtBUnE2SHZCOztBTTlzSUE7RVdMUSxpQkFBaUI7QWpCdXRJekI7O0FVbitIUTtFQUVRLGtCTzVPMEc7QWpCaXRJMUg7O0FVLzlIUTtFQUVRLG1CT3BQMEc7QWpCcXRJMUg7O0FVMytIUTtFQUVRLGtCT3hPc0U7QWpCcXRJdEY7O0FVditIUTtFQUVRLG1CT2hQc0U7QWpCeXRJdEY7O0FVbi9IUTtFQUVRLGlCRC9NNEM7QVRvc0k1RDs7QVUvK0hRO0VBRVEsa0JEdk40QztBVHdzSTVEOztBVTMvSFE7RUFFUSxtQk81TzBHO0FqQnl1STFIOztBVXYvSFE7RUFFUSxvQk9wUDBHO0FqQjZ1STFIOztBVW5nSVE7RUFFUSxrQk94T3NFO0FqQjZ1SXRGOztBVS8vSFE7RUFFUSxtQk9oUHNFO0FqQml2SXRGOztBVTNnSVE7RUFFUSxpQkQvTTRDO0FUNHRJNUQ7O0FVdmdJUTtFQUVRLGtCRHZONEM7QVRndUk1RDs7QVVuaElRO0VBRVEsbUJPNU8wRztBakJpd0kxSDs7QVUvZ0lRO0VBRVEsb0JPcFAwRztBakJxd0kxSDs7QVUzaElRO0VBRVEsbUJPeE9zRTtBakJxd0l0Rjs7QVV2aElRO0VBRVEsb0JPaFBzRTtBakJ5d0l0Rjs7QVVuaUlRO0VBRVEsaUJEL000QztBVG92STVEOztBVS9oSVE7RUFFUSxrQkR2TjRDO0FUd3ZJNUQ7O0FVM2lJUTtFQUVRLG1CTzVPMEc7QWpCeXhJMUg7O0FVdmlJUTtFQUVRLG9CT3BQMEc7QWpCNnhJMUg7O0FVbmpJUTtFQUVRLG1CT3hPc0U7QWpCNnhJdEY7O0FVL2lJUTtFQUVRLG9CT2hQc0U7QWpCaXlJdEY7O0FVM2pJUTtFQUVRLGlCRC9NNEM7QVQ0d0k1RDs7QVV2aklRO0VBRVEsa0JEdk40QztBVGd4STVEOztBVW5rSVE7RUFFUSxtQk81TzBHO0FqQml6STFIOztBVS9qSVE7RUFFUSxvQk9wUDBHO0FqQnF6STFIOztBVTNrSVE7RUFFUSxtQk94T3NFO0FqQnF6SXRGOztBVXZrSVE7RUFFUSxvQk9oUHNFO0FqQnl6SXRGOztBVW5sSVE7RUFFUSxpQkQvTTRDO0FUb3lJNUQ7O0FVL2tJUTtFQUVRLGtCRHZONEM7QVR3eUk1RDs7QVUzbElRO0VBRVEsbUJPNU8wRztBakJ5MEkxSDs7QVV2bElRO0VBRVEsb0JPcFAwRztBakI2MEkxSDs7QVVubUlRO0VBRVEsbUJPeE9zRTtBakI2MEl0Rjs7QVUvbElRO0VBRVEsb0JPaFBzRTtBakJpMUl0Rjs7QVUzbUlRO0VBRVEsaUJEL000QztBVDR6STVEOztBVXZtSVE7RUFFUSxrQkR2TjRDO0FUZzBJNUQ7O0FVbm5JUTtFQUVRLG1CTzVPMEc7QWpCaTJJMUg7O0FVL21JUTtFQUVRLG9CT3BQMEc7QWpCcTJJMUg7O0FVM25JUTtFQUVRLG1CT3hPc0U7QWpCcTJJdEY7O0FVdm5JUTtFQUVRLG9CT2hQc0U7QWpCeTJJdEY7O0FVbm9JUTtFQUVRLGlCRC9NNEM7QVRvMUk1RDs7QVUvbklRO0VBRVEsa0JEdk40QztBVHcxSTVEOztBVTNvSVE7RUFFUSxtQk81TzBHO0FqQnkzSTFIOztBVXZvSVE7RUFFUSxvQk9wUDBHO0FqQjYzSTFIOztBVW5wSVE7RUFFUSxtQk94T3NFO0FqQjYzSXRGOztBVS9vSVE7RUFFUSxvQk9oUHNFO0FqQmk0SXRGOztBVTNwSVE7RUFFUSxpQkQvTTRDO0FUNDJJNUQ7O0FVdnBJUTtFQUVRLGtCRHZONEM7QVRnM0k1RDs7QVVucUlRO0VBRVEsbUJPNU8wRztBakJpNUkxSDs7QVUvcElRO0VBRVEsb0JPcFAwRztBakJxNUkxSDs7QVUzcUlRO0VBRVEsbUJPeE9zRTtBakJxNUl0Rjs7QVV2cUlRO0VBRVEsb0JPaFBzRTtBakJ5NUl0Rjs7QVVucklRO0VBRVEsaUJEL000QztBVG80STVEOztBVS9xSVE7RUFFUSxrQkR2TjRDO0FUdzRJNUQ7O0FVM3JJUTtFQUVRLG1CTzVPMEc7QWpCeTZJMUg7O0FVdnJJUTtFQUVRLG9CT3BQMEc7QWpCNjZJMUg7O0FVbnNJUTtFQUVRLG1CT3hPc0U7QWpCNjZJdEY7O0FVL3JJUTtFQUVRLG9CT2hQc0U7QWpCaTdJdEY7O0FVM3NJUTtFQUVRLGlCRC9NNEM7QVQ0NUk1RDs7QVV2c0lRO0VBRVEsa0JEdk40QztBVGc2STVEOztBVW50SVE7RUFFUSxtQk81TzBHO0FqQmk4STFIOztBVS9zSVE7RUFFUSxvQk9wUDBHO0FqQnE4STFIOztBVTN0SVE7RUFFUSxtQk94T3NFO0FqQnE4SXRGOztBVXZ0SVE7RUFFUSxvQk9oUHNFO0FqQnk4SXRGOztBVW51SVE7RUFFUSxpQkQvTTRDO0FUbzdJNUQ7O0FVL3RJUTtFQUVRLGtCRHZONEM7QVR3N0k1RDs7QVUzdUlRO0VBRVEsbUJPNU8wRztBakJ5OUkxSDs7QVV2dUlRO0VBRVEsb0JPcFAwRztBakI2OUkxSDs7QVVudklRO0VBRVEsbUJPeE9zRTtBakI2OUl0Rjs7QVUvdUlRO0VBRVEsb0JPaFBzRTtBakJpK0l0Rjs7QVUzdklRO0VBRVEsaUJEL000QztBVDQ4STVEOztBVXZ2SVE7RUFFUSxrQkR2TjRDO0FUZzlJNUQ7O0FVbndJUTtFQUVRLG1CTzVPMEc7QWpCaS9JMUg7O0FVL3ZJUTtFQUVRLG9CT3BQMEc7QWpCcS9JMUg7O0FVM3dJUTtFQUVRLG1CT3hPc0U7QWpCcS9JdEY7O0FVdndJUTtFQUVRLG9CT2hQc0U7QWpCeS9JdEY7O0FVbnhJUTtFQUVRLGlCRC9NNEM7QVRvK0k1RDs7QVUvd0lRO0VBRVEsa0JEdk40QztBVHcrSTVEOztBVTN4SVE7RUFFUSxtQk81TzBHO0FqQnlnSjFIOztBVXZ4SVE7RUFFUSxvQk9wUDBHO0FqQjZnSjFIOztBVW55SVE7RUFFUSxtQk94T3NFO0FqQjZnSnRGOztBVS94SVE7RUFFUSxvQk9oUHNFO0FqQmloSnRGOztBVTN5SVE7RUFFUSxpQkQvTTRDO0FUNC9JNUQ7O0FVdnlJUTtFQUVRLGtCRHZONEM7QVRnZ0o1RDs7QVVueklRO0VBRVEsbUJPNU8wRztBakJpaUoxSDs7QVUveUlRO0VBRVEsb0JPcFAwRztBakJxaUoxSDs7QVUzeklRO0VBRVEsbUJPeE9zRTtBakJxaUp0Rjs7QVV2eklRO0VBRVEsb0JPaFBzRTtBakJ5aUp0Rjs7QVVuMElRO0VBRVEsaUJEL000QztBVG9oSjVEOztBVS96SVE7RUFFUSxrQkR2TjRDO0FUd2hKNUQ7O0FVMzBJUTtFQUVRLG1CTzVPMEc7QWpCeWpKMUg7O0FVdjBJUTtFQUVRLG9CT3BQMEc7QWpCNmpKMUg7O0FVbjFJUTtFQUVRLG1CT3hPc0U7QWpCNmpKdEY7O0FVLzBJUTtFQUVRLG9CT2hQc0U7QWpCaWtKdEY7O0FVMzFJUTtFQUVRLGlCRC9NNEM7QVQ0aUo1RDs7QVV2MUlRO0VBRVEsa0JEdk40QztBVGdqSjVEOztBVW4ySVE7RUFFUSxtQk81TzBHO0FqQmlsSjFIOztBVS8xSVE7RUFFUSxvQk9wUDBHO0FqQnFsSjFIOztBVTMySVE7RUFFUSxtQk94T3NFO0FqQnFsSnRGOztBVXYySVE7RUFFUSxvQk9oUHNFO0FqQnlsSnRGOztBVW4zSVE7RUFFUSxpQkQvTTRDO0FUb2tKNUQ7O0FVLzJJUTtFQUVRLGtCRHZONEM7QVR3a0o1RDs7QVUzM0lRO0VBRVEsbUJPNU8wRztBakJ5bUoxSDs7QVV2M0lRO0VBRVEsb0JPcFAwRztBakI2bUoxSDs7QVVuNElRO0VBRVEsbUJPeE9zRTtBakI2bUp0Rjs7QVUvM0lRO0VBRVEsb0JPaFBzRTtBakJpbkp0Rjs7QVUzNElRO0VBRVEsaUJEL000QztBVDRsSjVEOztBVXY0SVE7RUFFUSxrQkR2TjRDO0FUZ21KNUQ7O0FVbjVJUTtFQUVRLG1CTzVPMEc7QWpCaW9KMUg7O0FVLzRJUTtFQUVRLG9CT3BQMEc7QWpCcW9KMUg7O0FVMzVJUTtFQUVRLG1CT3hPc0U7QWpCcW9KdEY7O0FVdjVJUTtFQUVRLG9CT2hQc0U7QWpCeW9KdEY7O0FVbjZJUTtFQUVRLGlCRC9NNEM7QVRvbko1RDs7QVUvNUlRO0VBRVEsa0JEdk40QztBVHduSjVEOztBVTM2SVE7RUFFUSxtQk81TzBHO0FqQnlwSjFIOztBVXY2SVE7RUFFUSxvQk9wUDBHO0FqQjZwSjFIOztBVW43SVE7RUFFUSxtQk94T3NFO0FqQjZwSnRGOztBVS82SVE7RUFFUSxvQk9oUHNFO0FqQmlxSnRGOztBVTM3SVE7RUFFUSxpQkQvTTRDO0FUNG9KNUQ7O0FVdjdJUTtFQUVRLGtCRHZONEM7QVRncEo1RDs7QVVuOElRO0VBRVEsbUJPNU8wRztBakJpckoxSDs7QVUvN0lRO0VBRVEsb0JPcFAwRztBakJxckoxSDs7QVUzOElRO0VBRVEsbUJPeE9zRTtBakJxckp0Rjs7QVV2OElRO0VBRVEsb0JPaFBzRTtBakJ5ckp0Rjs7QVVuOUlRO0VBRVEsaUJEL000QztBVG9xSjVEOztBVS84SVE7RUFFUSxrQkR2TjRDO0FUd3FKNUQ7O0FVMzlJUTtFQUVRLG1CTzVPMEc7QWpCeXNKMUg7O0FVdjlJUTtFQUVRLG9CT3BQMEc7QWpCNnNKMUg7O0FVbitJUTtFQUVRLG1CT3hPc0U7QWpCNnNKdEY7O0FVLzlJUTtFQUVRLG9CT2hQc0U7QWpCaXRKdEY7O0FVMytJUTtFQUVRLGlCRC9NNEM7QVQ0cko1RDs7QVV2K0lRO0VBRVEsa0JEdk40QztBVGdzSjVEOztBVW4vSVE7RUFFUSxtQk81TzBHO0FqQml1SjFIOztBVS8rSVE7RUFFUSxvQk9wUDBHO0FqQnF1SjFIOztBVTMvSVE7RUFFUSxtQk94T3NFO0FqQnF1SnRGOztBVXYvSVE7RUFFUSxvQk9oUHNFO0FqQnl1SnRGOztBVW5nSlE7RUFFUSxpQkQvTTRDO0FUb3RKNUQ7O0FVLy9JUTtFQUVRLGtCRHZONEM7QVR3dEo1RDs7QVUzZ0pRO0VBRVEsb0JPNU8wRztBakJ5dkoxSDs7QVV2Z0pRO0VBRVEscUJPcFAwRztBakI2dkoxSDs7QVVuaEpRO0VBRVEsb0JPeE9zRTtBakI2dkp0Rjs7QVUvZ0pRO0VBRVEscUJPaFBzRTtBakJpd0p0Rjs7QVUzaEpRO0VBRVEsaUJEL000QztBVDR1SjVEOztBVXZoSlE7RUFFUSxrQkR2TjRDO0FUZ3ZKNUQ7O0FVbmlKUTtFQUVRLG9CTzVPMEc7QWpCaXhKMUg7O0FVL2hKUTtFQUVRLHFCT3BQMEc7QWpCcXhKMUg7O0FVM2lKUTtFQUVRLG9CT3hPc0U7QWpCcXhKdEY7O0FVdmlKUTtFQUVRLHFCT2hQc0U7QWpCeXhKdEY7O0FVbmpKUTtFQUVRLGlCRC9NNEM7QVRvd0o1RDs7QVUvaUpRO0VBRVEsa0JEdk40QztBVHd3SjVEOztBVTNqSlE7RUFFUSxvQk81TzBHO0FqQnl5SjFIOztBVXZqSlE7RUFFUSxxQk9wUDBHO0FqQjZ5SjFIOztBVW5rSlE7RUFFUSxvQk94T3NFO0FqQjZ5SnRGOztBVS9qSlE7RUFFUSxxQk9oUHNFO0FqQml6SnRGOztBVTNrSlE7RUFFUSxpQkQvTTRDO0FUNHhKNUQ7O0FVdmtKUTtFQUVRLGtCRHZONEM7QVRneUo1RDs7QVVubEpRO0VBRVEsb0JPNU8wRztBakJpMEoxSDs7QVUva0pRO0VBRVEscUJPcFAwRztBakJxMEoxSDs7QVUzbEpRO0VBRVEsb0JPeE9zRTtBakJxMEp0Rjs7QVV2bEpRO0VBRVEscUJPaFBzRTtBakJ5MEp0Rjs7QVVubUpRO0VBRVEsaUJEL000QztBVG96SjVEOztBVS9sSlE7RUFFUSxrQkR2TjRDO0FUd3pKNUQ7O0FVM21KUTtFQUVRLG9CTzVPMEc7QWpCeTFKMUg7O0FVdm1KUTtFQUVRLHFCT3BQMEc7QWpCNjFKMUg7O0FVbm5KUTtFQUVRLG9CT3hPc0U7QWpCNjFKdEY7O0FVL21KUTtFQUVRLHFCT2hQc0U7QWpCaTJKdEY7O0FVM25KUTtFQUVRLGlCRC9NNEM7QVQ0MEo1RDs7QVV2bkpRO0VBRVEsa0JEdk40QztBVGcxSjVEOztBVW5vSlE7RUFFUSxvQk81TzBHO0FqQmkzSjFIOztBVS9uSlE7RUFFUSxxQk9wUDBHO0FqQnEzSjFIOztBVTNvSlE7RUFFUSxvQk94T3NFO0FqQnEzSnRGOztBVXZvSlE7RUFFUSxxQk9oUHNFO0FqQnkzSnRGOztBVW5wSlE7RUFFUSxpQkQvTTRDO0FUbzJKNUQ7O0FVL29KUTtFQUVRLGtCRHZONEM7QVR3Mko1RDs7QVUzcEpRO0VBRVEsb0JPNU8wRztBakJ5NEoxSDs7QVV2cEpRO0VBRVEscUJPcFAwRztBakI2NEoxSDs7QVVucUpRO0VBRVEsb0JPeE9zRTtBakI2NEp0Rjs7QVUvcEpRO0VBRVEscUJPaFBzRTtBakJpNUp0Rjs7QVUzcUpRO0VBRVEsaUJEL000QztBVDQzSjVEOztBVXZxSlE7RUFFUSxrQkR2TjRDO0FUZzRKNUQ7O0FVbnJKUTtFQUVRLG9CTzVPMEc7QWpCaTZKMUg7O0FVL3FKUTtFQUVRLHFCT3BQMEc7QWpCcTZKMUg7O0FVM3JKUTtFQUVRLG9CT3hPc0U7QWpCcTZKdEY7O0FVdnJKUTtFQUVRLHFCT2hQc0U7QWpCeTZKdEY7O0FVbnNKUTtFQUVRLGlCRC9NNEM7QVRvNUo1RDs7QVUvckpRO0VBRVEsa0JEdk40QztBVHc1SjVEOztBVTNzSlE7RUFFUSxvQk81TzBHO0FqQnk3SjFIOztBVXZzSlE7RUFFUSxxQk9wUDBHO0FqQjY3SjFIOztBVW50SlE7RUFFUSxvQk94T3NFO0FqQjY3SnRGOztBVS9zSlE7RUFFUSxxQk9oUHNFO0FqQmk4SnRGOztBVTN0SlE7RUFFUSxpQkQvTTRDO0FUNDZKNUQ7O0FVdnRKUTtFQUVRLGtCRHZONEM7QVRnN0o1RDs7QVVudUpRO0VBRVEsb0JPNU8wRztBakJpOUoxSDs7QVUvdEpRO0VBRVEscUJPcFAwRztBakJxOUoxSDs7QVUzdUpRO0VBRVEsb0JPeE9zRTtBakJxOUp0Rjs7QVV2dUpRO0VBRVEscUJPaFBzRTtBakJ5OUp0Rjs7QVVudkpRO0VBRVEsaUJEL000QztBVG84SjVEOztBVS91SlE7RUFFUSxrQkR2TjRDO0FUdzhKNUQ7O0FVM3ZKUTtFQUVRLG9CTzVPMEc7QWpCeStKMUg7O0FVdnZKUTtFQUVRLHFCT3BQMEc7QWpCNitKMUg7O0FVbndKUTtFQUVRLG9CT3hPc0U7QWpCNitKdEY7O0FVL3ZKUTtFQUVRLHFCT2hQc0U7QWpCaS9KdEY7O0FVM3dKUTtFQUVRLGlCRC9NNEM7QVQ0OUo1RDs7QVV2d0pRO0VBRVEsa0JEdk40QztBVGcrSjVEOztBVW54SlE7RUFFUSxvQk81TzBHO0FqQmlnSzFIOztBVS93SlE7RUFFUSxxQk9wUDBHO0FqQnFnSzFIOztBVTN4SlE7RUFFUSxvQk94T3NFO0FqQnFnS3RGOztBVXZ4SlE7RUFFUSxxQk9oUHNFO0FqQnlnS3RGOztBVW55SlE7RUFFUSxpQkQvTTRDO0FUby9KNUQ7O0FVL3hKUTtFQUVRLGtCRHZONEM7QVR3L0o1RDs7QVUzeUpRO0VBRVEsb0JPNU8wRztBakJ5aEsxSDs7QVV2eUpRO0VBRVEscUJPcFAwRztBakI2aEsxSDs7QVVuekpRO0VBRVEsb0JPeE9zRTtBakI2aEt0Rjs7QVUveUpRO0VBRVEscUJPaFBzRTtBakJpaUt0Rjs7QVUzekpRO0VBRVEsaUJEL000QztBVDRnSzVEOztBVXZ6SlE7RUFFUSxrQkR2TjRDO0FUZ2hLNUQ7O0FVbjBKUTtFQUVRLG9CTzVPMEc7QWpCaWpLMUg7O0FVL3pKUTtFQUVRLHFCT3BQMEc7QWpCcWpLMUg7O0FVMzBKUTtFQUVRLG9CT3hPc0U7QWpCcWpLdEY7O0FVdjBKUTtFQUVRLHFCT2hQc0U7QWpCeWpLdEY7O0FVbjFKUTtFQUVRLGlCRC9NNEM7QVRvaUs1RDs7QVUvMEpRO0VBRVEsa0JEdk40QztBVHdpSzVEOztBVTMxSlE7RUFFUSxvQk81TzBHO0FqQnlrSzFIOztBVXYxSlE7RUFFUSxxQk9wUDBHO0FqQjZrSzFIOztBVW4ySlE7RUFFUSxvQk94T3NFO0FqQjZrS3RGOztBVS8xSlE7RUFFUSxxQk9oUHNFO0FqQmlsS3RGOztBVTMySlE7RUFFUSxpQkQvTTRDO0FUNGpLNUQ7O0FVdjJKUTtFQUVRLGtCRHZONEM7QVRna0s1RDs7QVVuM0pRO0VBRVEsb0JPNU8wRztBakJpbUsxSDs7QVUvMkpRO0VBRVEscUJPcFAwRztBakJxbUsxSDs7QVUzM0pRO0VBRVEsb0JPeE9zRTtBakJxbUt0Rjs7QVV2M0pRO0VBRVEscUJPaFBzRTtBakJ5bUt0Rjs7QVVuNEpRO0VBRVEsaUJEL000QztBVG9sSzVEOztBVS8zSlE7RUFFUSxrQkR2TjRDO0FUd2xLNUQ7O0FVMzRKUTtFQUVRLG9CTzVPMEc7QWpCeW5LMUg7O0FVdjRKUTtFQUVRLHFCT3BQMEc7QWpCNm5LMUg7O0FVbjVKUTtFQUVRLG9CT3hPc0U7QWpCNm5LdEY7O0FVLzRKUTtFQUVRLHFCT2hQc0U7QWpCaW9LdEY7O0FVMzVKUTtFQUVRLGlCRC9NNEM7QVQ0bUs1RDs7QVV2NUpRO0VBRVEsa0JEdk40QztBVGduSzVEOztBVW42SlE7RUFFUSxvQk81TzBHO0FqQmlwSzFIOztBVS81SlE7RUFFUSxxQk9wUDBHO0FqQnFwSzFIOztBVTM2SlE7RUFFUSxvQk94T3NFO0FqQnFwS3RGOztBVXY2SlE7RUFFUSxxQk9oUHNFO0FqQnlwS3RGOztBVW43SlE7RUFFUSxpQkQvTTRDO0FUb29LNUQ7O0FVLzZKUTtFQUVRLGtCRHZONEM7QVR3b0s1RDs7QVUzN0pRO0VBRVEsb0JPNU8wRztBakJ5cUsxSDs7QVV2N0pRO0VBRVEscUJPcFAwRztBakI2cUsxSDs7QVVuOEpRO0VBRVEsb0JPeE9zRTtBakI2cUt0Rjs7QVUvN0pRO0VBRVEscUJPaFBzRTtBakJpckt0Rjs7QVUzOEpRO0VBRVEsaUJEL000QztBVDRwSzVEOztBVXY4SlE7RUFFUSxrQkR2TjRDO0FUZ3FLNUQ7O0FVbjlKUTtFQUVRLG9CTzVPMEc7QWpCaXNLMUg7O0FVLzhKUTtFQUVRLHFCT3BQMEc7QWpCcXNLMUg7O0FVMzlKUTtFQUVRLG9CT3hPc0U7QWpCcXNLdEY7O0FVdjlKUTtFQUVRLHFCT2hQc0U7QWpCeXNLdEY7O0FVbitKUTtFQUVRLGlCRC9NNEM7QVRvcks1RDs7QVUvOUpRO0VBRVEsa0JEdk40QztBVHdySzVEOztBVTMrSlE7RUFFUSxvQk81TzBHO0FqQnl0SzFIOztBVXYrSlE7RUFFUSxxQk9wUDBHO0FqQjZ0SzFIOztBVW4vSlE7RUFFUSxvQk94T3NFO0FqQjZ0S3RGOztBVS8rSlE7RUFFUSxxQk9oUHNFO0FqQml1S3RGOztBVTMvSlE7RUFFUSxpQkQvTTRDO0FUNHNLNUQ7O0FVdi9KUTtFQUVRLGtCRHZONEM7QVRndEs1RDs7QVVuZ0tRO0VBRVEsb0JPNU8wRztBakJpdksxSDs7QVUvL0pRO0VBRVEscUJPcFAwRztBakJxdksxSDs7QVUzZ0tRO0VBRVEsb0JPeE9zRTtBakJxdkt0Rjs7QVV2Z0tRO0VBRVEscUJPaFBzRTtBakJ5dkt0Rjs7QVVuaEtRO0VBRVEsaUJEL000QztBVG91SzVEOztBVS9nS1E7RUFFUSxrQkR2TjRDO0FUd3VLNUQ7O0FVM2hLUTtFQUVRLG9CTzVPMEc7QWpCeXdLMUg7O0FVdmhLUTtFQUVRLHFCT3BQMEc7QWpCNndLMUg7O0FVbmlLUTtFQUVRLG9CT3hPc0U7QWpCNndLdEY7O0FVL2hLUTtFQUVRLHFCT2hQc0U7QWpCaXhLdEY7O0FVM2lLUTtFQUVRLGlCRC9NNEM7QVQ0dks1RDs7QVV2aUtRO0VBRVEsa0JEdk40QztBVGd3SzVEOztBVW5qS1E7RUFFUSxvQk81TzBHO0FqQml5SzFIOztBVS9pS1E7RUFFUSxxQk9wUDBHO0FqQnF5SzFIOztBVTNqS1E7RUFFUSxvQk94T3NFO0FqQnF5S3RGOztBVXZqS1E7RUFFUSxxQk9oUHNFO0FqQnl5S3RGOztBVW5rS1E7RUFFUSxpQkQvTTRDO0FUb3hLNUQ7O0FVL2pLUTtFQUVRLGtCRHZONEM7QVR3eEs1RDs7QVUza0tRO0VBRVEsb0JPNU8wRztBakJ5eksxSDs7QVV2a0tRO0VBRVEscUJPcFAwRztBakI2eksxSDs7QVVubEtRO0VBRVEsb0JPeE9zRTtBakI2ekt0Rjs7QVUva0tRO0VBRVEscUJPaFBzRTtBakJpMEt0Rjs7QVUzbEtRO0VBRVEsaUJEL000QztBVDR5SzVEOztBVXZsS1E7RUFFUSxrQkR2TjRDO0FUZ3pLNUQ7O0FVbm1LUTtFQUVRLG9CTzVPMEc7QWpCaTFLMUg7O0FVL2xLUTtFQUVRLHFCT3BQMEc7QWpCcTFLMUg7O0FVM21LUTtFQUVRLG9CT3hPc0U7QWpCcTFLdEY7O0FVdm1LUTtFQUVRLHFCT2hQc0U7QWpCeTFLdEY7O0FVbm5LUTtFQUVRLGlCRC9NNEM7QVRvMEs1RDs7QVUvbUtRO0VBRVEsa0JEdk40QztBVHcwSzVEOztBVTNuS1E7RUFFUSxvQk81TzBHO0FqQnkySzFIOztBVXZuS1E7RUFFUSxxQk9wUDBHO0FqQjYySzFIOztBVW5vS1E7RUFFUSxvQk94T3NFO0FqQjYyS3RGOztBVS9uS1E7RUFFUSxxQk9oUHNFO0FqQmkzS3RGOztBVTNvS1E7RUFFUSxpQkQvTTRDO0FUNDFLNUQ7O0FVdm9LUTtFQUVRLGtCRHZONEM7QVRnMks1RDs7QVVucEtRO0VBRVEsb0JPNU8wRztBakJpNEsxSDs7QVUvb0tRO0VBRVEscUJPcFAwRztBakJxNEsxSDs7QVUzcEtRO0VBRVEsb0JPeE9zRTtBakJxNEt0Rjs7QVV2cEtRO0VBRVEscUJPaFBzRTtBakJ5NEt0Rjs7QVVucUtRO0VBRVEsaUJEL000QztBVG8zSzVEOztBVS9wS1E7RUFFUSxrQkR2TjRDO0FUdzNLNUQ7O0FVM3FLUTtFQUVRLG9CTzVPMEc7QWpCeTVLMUg7O0FVdnFLUTtFQUVRLHFCT3BQMEc7QWpCNjVLMUg7O0FVbnJLUTtFQUVRLG9CT3hPc0U7QWpCNjVLdEY7O0FVL3FLUTtFQUVRLHFCT2hQc0U7QWpCaTZLdEY7O0FVM3JLUTtFQUVRLGlCRC9NNEM7QVQ0NEs1RDs7QVV2cktRO0VBRVEsa0JEdk40QztBVGc1SzVEOztBVW5zS1E7RUFFUSxvQk81TzBHO0FqQmk3SzFIOztBVS9yS1E7RUFFUSxxQk9wUDBHO0FqQnE3SzFIOztBVTNzS1E7RUFFUSxvQk94T3NFO0FqQnE3S3RGOztBVXZzS1E7RUFFUSxxQk9oUHNFO0FqQnk3S3RGOztBVW50S1E7RUFFUSxpQkQvTTRDO0FUbzZLNUQ7O0FVL3NLUTtFQUVRLGtCRHZONEM7QVR3Nks1RDs7QVUzdEtRO0VBRVEsb0JPNU8wRztBakJ5OEsxSDs7QVV2dEtRO0VBRVEscUJPcFAwRztBakI2OEsxSDs7QVVudUtRO0VBRVEsb0JPeE9zRTtBakI2OEt0Rjs7QVUvdEtRO0VBRVEscUJPaFBzRTtBakJpOUt0Rjs7QVUzdUtRO0VBRVEsaUJEL000QztBVDQ3SzVEOztBVXZ1S1E7RUFFUSxrQkR2TjRDO0FUZzhLNUQ7O0FVbnZLUTtFQUVRLG9CTzVPMEc7QWpCaStLMUg7O0FVL3VLUTtFQUVRLHFCT3BQMEc7QWpCcStLMUg7O0FVM3ZLUTtFQUVRLG9CT3hPc0U7QWpCcStLdEY7O0FVdnZLUTtFQUVRLHFCT2hQc0U7QWpCeStLdEY7O0FVbndLUTtFQUVRLGlCRC9NNEM7QVRvOUs1RDs7QVUvdktRO0VBRVEsa0JEdk40QztBVHc5SzVEOztBVTN3S1E7RUFFUSxvQk81TzBHO0FqQnkvSzFIOztBVXZ3S1E7RUFFUSxxQk9wUDBHO0FqQjYvSzFIOztBVW54S1E7RUFFUSxvQk94T3NFO0FqQjYvS3RGOztBVS93S1E7RUFFUSxxQk9oUHNFO0FqQmlnTHRGOztBVTN4S1E7RUFFUSxpQkQvTTRDO0FUNCtLNUQ7O0FVdnhLUTtFQUVRLGtCRHZONEM7QVRnL0s1RDs7QVVueUtRO0VBRVEsb0JPNU8wRztBakJpaEwxSDs7QVUveEtRO0VBRVEscUJPcFAwRztBakJxaEwxSDs7QVUzeUtRO0VBRVEsb0JPeE9zRTtBakJxaEx0Rjs7QVV2eUtRO0VBRVEscUJPaFBzRTtBakJ5aEx0Rjs7QVVuektRO0VBRVEsaUJEL000QztBVG9nTDVEOztBVS95S1E7RUFFUSxrQkR2TjRDO0FUd2dMNUQ7O0FVM3pLUTtFQUVRLG9CTzVPMEc7QWpCeWlMMUg7O0FVdnpLUTtFQUVRLHFCT3BQMEc7QWpCNmlMMUg7O0FVbjBLUTtFQUVRLG9CT3hPc0U7QWpCNmlMdEY7O0FVL3pLUTtFQUVRLHFCT2hQc0U7QWpCaWpMdEY7O0FVMzBLUTtFQUVRLGlCRC9NNEM7QVQ0aEw1RDs7QVV2MEtRO0VBRVEsa0JEdk40QztBVGdpTDVEOztBVW4xS1E7RUFFUSxvQk81TzBHO0FqQmlrTDFIOztBVS8wS1E7RUFFUSxxQk9wUDBHO0FqQnFrTDFIOztBVTMxS1E7RUFFUSxvQk94T3NFO0FqQnFrTHRGOztBVXYxS1E7RUFFUSxxQk9oUHNFO0FqQnlrTHRGOztBVW4yS1E7RUFFUSxpQkQvTTRDO0FUb2pMNUQ7O0FVLzFLUTtFQUVRLGtCRHZONEM7QVR3akw1RDs7QVUzMktRO0VBRVEsb0JPNU8wRztBakJ5bEwxSDs7QVV2MktRO0VBRVEscUJPcFAwRztBakI2bEwxSDs7QVVuM0tRO0VBRVEsb0JPeE9zRTtBakI2bEx0Rjs7QVUvMktRO0VBRVEscUJPaFBzRTtBakJpbUx0Rjs7QVUzM0tRO0VBRVEsaUJEL000QztBVDRrTDVEOztBVXYzS1E7RUFFUSxrQkR2TjRDO0FUZ2xMNUQ7O0FVbjRLUTtFQUVRLG9CTzVPMEc7QWpCaW5MMUg7O0FVLzNLUTtFQUVRLHFCT3BQMEc7QWpCcW5MMUg7O0FVMzRLUTtFQUVRLG9CT3hPc0U7QWpCcW5MdEY7O0FVdjRLUTtFQUVRLHFCT2hQc0U7QWpCeW5MdEY7O0FVbjVLUTtFQUVRLGlCRC9NNEM7QVRvbUw1RDs7QVUvNEtRO0VBRVEsa0JEdk40QztBVHdtTDVEOztBVTM1S1E7RUFFUSxvQk81TzBHO0FqQnlvTDFIOztBVXY1S1E7RUFFUSxxQk9wUDBHO0FqQjZvTDFIOztBVW42S1E7RUFFUSxvQk94T3NFO0FqQjZvTHRGOztBVS81S1E7RUFFUSxxQk9oUHNFO0FqQmlwTHRGOztBVTM2S1E7RUFFUSxpQkQvTTRDO0FUNG5MNUQ7O0FVdjZLUTtFQUVRLGtCRHZONEM7QVRnb0w1RDs7QVVuN0tRO0VBRVEsb0JPNU8wRztBakJpcUwxSDs7QVUvNktRO0VBRVEscUJPcFAwRztBakJxcUwxSDs7QVUzN0tRO0VBRVEsb0JPeE9zRTtBakJxcUx0Rjs7QVV2N0tRO0VBRVEscUJPaFBzRTtBakJ5cUx0Rjs7QVVuOEtRO0VBRVEsaUJEL000QztBVG9wTDVEOztBVS83S1E7RUFFUSxrQkR2TjRDO0FUd3BMNUQ7O0FVMzhLUTtFQUVRLG9CTzVPMEc7QWpCeXJMMUg7O0FVdjhLUTtFQUVRLHFCT3BQMEc7QWpCNnJMMUg7O0FVbjlLUTtFQUVRLG9CT3hPc0U7QWpCNnJMdEY7O0FVLzhLUTtFQUVRLHFCT2hQc0U7QWpCaXNMdEY7O0FVMzlLUTtFQUVRLGlCRC9NNEM7QVQ0cUw1RDs7QVV2OUtRO0VBRVEsa0JEdk40QztBVGdyTDVEOztBVW4rS1E7RUFFUSxvQk81TzBHO0FqQml0TDFIOztBVS85S1E7RUFFUSxxQk9wUDBHO0FqQnF0TDFIOztBVTMrS1E7RUFFUSxvQk94T3NFO0FqQnF0THRGOztBVXYrS1E7RUFFUSxxQk9oUHNFO0FqQnl0THRGOztBVW4vS1E7RUFFUSxpQkQvTTRDO0FUb3NMNUQ7O0FVLytLUTtFQUVRLGtCRHZONEM7QVR3c0w1RDs7QVUzL0tRO0VBRVEsb0JPNU8wRztBakJ5dUwxSDs7QVV2L0tRO0VBRVEscUJPcFAwRztBakI2dUwxSDs7QVVuZ0xRO0VBRVEsb0JPeE9zRTtBakI2dUx0Rjs7QVUvL0tRO0VBRVEscUJPaFBzRTtBakJpdkx0Rjs7QVUzZ0xRO0VBRVEsaUJEL000QztBVDR0TDVEOztBVXZnTFE7RUFFUSxrQkR2TjRDO0FUZ3VMNUQ7O0FVbmhMUTtFQUVRLG9CTzVPMEc7QWpCaXdMMUg7O0FVL2dMUTtFQUVRLHFCT3BQMEc7QWpCcXdMMUg7O0FVM2hMUTtFQUVRLG9CT3hPc0U7QWpCcXdMdEY7O0FVdmhMUTtFQUVRLHFCT2hQc0U7QWpCeXdMdEY7O0FVbmlMUTtFQUVRLGlCRC9NNEM7QVRvdkw1RDs7QVUvaExRO0VBRVEsa0JEdk40QztBVHd2TDVEOztBVTNpTFE7RUFFUSxvQk81TzBHO0FqQnl4TDFIOztBVXZpTFE7RUFFUSxxQk9wUDBHO0FqQjZ4TDFIOztBVW5qTFE7RUFFUSxvQk94T3NFO0FqQjZ4THRGOztBVS9pTFE7RUFFUSxxQk9oUHNFO0FqQml5THRGOztBVTNqTFE7RUFFUSxpQkQvTTRDO0FUNHdMNUQ7O0FVdmpMUTtFQUVRLGtCRHZONEM7QVRneEw1RDs7QVVua0xRO0VBRVEsb0JPNU8wRztBakJpekwxSDs7QVUvakxRO0VBRVEscUJPcFAwRztBakJxekwxSDs7QVUza0xRO0VBRVEsb0JPeE9zRTtBakJxekx0Rjs7QVV2a0xRO0VBRVEscUJPaFBzRTtBakJ5ekx0Rjs7QVVubExRO0VBRVEsaUJEL000QztBVG95TDVEOztBVS9rTFE7RUFFUSxrQkR2TjRDO0FUd3lMNUQ7O0FVM2xMUTtFQUVRLG9CTzVPMEc7QWpCeTBMMUg7O0FVdmxMUTtFQUVRLHFCT3BQMEc7QWpCNjBMMUg7O0FVbm1MUTtFQUVRLG9CT3hPc0U7QWpCNjBMdEY7O0FVL2xMUTtFQUVRLHFCT2hQc0U7QWpCaTFMdEY7O0FVM21MUTtFQUVRLGlCRC9NNEM7QVQ0ekw1RDs7QVV2bUxRO0VBRVEsa0JEdk40QztBVGcwTDVEOztBVW5uTFE7RUFFUSxvQk81TzBHO0FqQmkyTDFIOztBVS9tTFE7RUFFUSxxQk9wUDBHO0FqQnEyTDFIOztBVTNuTFE7RUFFUSxvQk94T3NFO0FqQnEyTHRGOztBVXZuTFE7RUFFUSxxQk9oUHNFO0FqQnkyTHRGOztBVW5vTFE7RUFFUSxpQkQvTTRDO0FUbzFMNUQ7O0FVL25MUTtFQUVRLGtCRHZONEM7QVR3MUw1RDs7QVUzb0xRO0VBRVEsb0JPNU8wRztBakJ5M0wxSDs7QVV2b0xRO0VBRVEscUJPcFAwRztBakI2M0wxSDs7QVVucExRO0VBRVEsb0JPeE9zRTtBakI2M0x0Rjs7QVUvb0xRO0VBRVEscUJPaFBzRTtBakJpNEx0Rjs7QVUzcExRO0VBRVEsaUJEL000QztBVDQyTDVEOztBVXZwTFE7RUFFUSxrQkR2TjRDO0FUZzNMNUQ7O0FVbnFMUTtFQUVRLG9CTzVPMEc7QWpCaTVMMUg7O0FVL3BMUTtFQUVRLHFCT3BQMEc7QWpCcTVMMUg7O0FVM3FMUTtFQUVRLG9CT3hPc0U7QWpCcTVMdEY7O0FVdnFMUTtFQUVRLHFCT2hQc0U7QWpCeTVMdEY7O0FVbnJMUTtFQUVRLGlCRC9NNEM7QVRvNEw1RDs7QVUvcUxRO0VBRVEsa0JEdk40QztBVHc0TDVEOztBVTNyTFE7RUFFUSxvQk81TzBHO0FqQnk2TDFIOztBVXZyTFE7RUFFUSxxQk9wUDBHO0FqQjY2TDFIOztBVW5zTFE7RUFFUSxvQk94T3NFO0FqQjY2THRGOztBVS9yTFE7RUFFUSxxQk9oUHNFO0FqQmk3THRGOztBVTNzTFE7RUFFUSxpQkQvTTRDO0FUNDVMNUQ7O0FVdnNMUTtFQUVRLGtCRHZONEM7QVRnNkw1RDs7QVVudExRO0VBRVEsb0JPNU8wRztBakJpOEwxSDs7QVUvc0xRO0VBRVEscUJPcFAwRztBakJxOEwxSDs7QVUzdExRO0VBRVEsb0JPeE9zRTtBakJxOEx0Rjs7QVV2dExRO0VBRVEscUJPaFBzRTtBakJ5OEx0Rjs7QVVudUxRO0VBRVEsaUJEL000QztBVG83TDVEOztBVS90TFE7RUFFUSxrQkR2TjRDO0FUdzdMNUQ7O0FVM3VMUTtFQUVRLG9CTzVPMEc7QWpCeTlMMUg7O0FVdnVMUTtFQUVRLHFCT3BQMEc7QWpCNjlMMUg7O0FVbnZMUTtFQUVRLG9CT3hPc0U7QWpCNjlMdEY7O0FVL3VMUTtFQUVRLHFCT2hQc0U7QWpCaStMdEY7O0FVM3ZMUTtFQUVRLGlCRC9NNEM7QVQ0OEw1RDs7QVV2dkxRO0VBRVEsa0JEdk40QztBVGc5TDVEOztBVW53TFE7RUFFUSxvQk81TzBHO0FqQmkvTDFIOztBVS92TFE7RUFFUSxxQk9wUDBHO0FqQnEvTDFIOztBVTN3TFE7RUFFUSxvQk94T3NFO0FqQnEvTHRGOztBVXZ3TFE7RUFFUSxxQk9oUHNFO0FqQnkvTHRGOztBVW54TFE7RUFFUSxpQkQvTTRDO0FUbytMNUQ7O0FVL3dMUTtFQUVRLGtCRHZONEM7QVR3K0w1RDs7QVUzeExRO0VBRVEsb0JPNU8wRztBakJ5Z00xSDs7QVV2eExRO0VBRVEscUJPcFAwRztBakI2Z00xSDs7QVVueUxRO0VBRVEsb0JPeE9zRTtBakI2Z010Rjs7QVUveExRO0VBRVEscUJPaFBzRTtBakJpaE10Rjs7QVUzeUxRO0VBRVEsaUJEL000QztBVDQvTDVEOztBVXZ5TFE7RUFFUSxrQkR2TjRDO0FUZ2dNNUQ7O0FVbnpMUTtFQUVRLG9CTzVPMEc7QWpCaWlNMUg7O0FVL3lMUTtFQUVRLHFCT3BQMEc7QWpCcWlNMUg7O0FVM3pMUTtFQUVRLG9CT3hPc0U7QWpCcWlNdEY7O0FVdnpMUTtFQUVRLHFCT2hQc0U7QWpCeWlNdEY7O0FVbjBMUTtFQUVRLGlCRC9NNEM7QVRvaE01RDs7QVUvekxRO0VBRVEsa0JEdk40QztBVHdoTTVEOztBVTMwTFE7RUFFUSxvQk81TzBHO0FqQnlqTTFIOztBVXYwTFE7RUFFUSxxQk9wUDBHO0FqQjZqTTFIOztBVW4xTFE7RUFFUSxvQk94T3NFO0FqQjZqTXRGOztBVS8wTFE7RUFFUSxxQk9oUHNFO0FqQmlrTXRGOztBVTMxTFE7RUFFUSxpQkQvTTRDO0FUNGlNNUQ7O0FVdjFMUTtFQUVRLGtCRHZONEM7QVRnak01RDs7QVVuMkxRO0VBRVEsb0JPNU8wRztBakJpbE0xSDs7QVUvMUxRO0VBRVEscUJPcFAwRztBakJxbE0xSDs7QVUzMkxRO0VBRVEsb0JPeE9zRTtBakJxbE10Rjs7QVV2MkxRO0VBRVEscUJPaFBzRTtBakJ5bE10Rjs7QVVuM0xRO0VBRVEsaUJEL000QztBVG9rTTVEOztBVS8yTFE7RUFFUSxrQkR2TjRDO0FUd2tNNUQ7O0FVMzNMUTtFQUVRLG9CTzVPMEc7QWpCeW1NMUg7O0FVdjNMUTtFQUVRLHFCT3BQMEc7QWpCNm1NMUg7O0FVbjRMUTtFQUVRLG9CT3hPc0U7QWpCNm1NdEY7O0FVLzNMUTtFQUVRLHFCT2hQc0U7QWpCaW5NdEY7O0FVMzRMUTtFQUVRLGlCRC9NNEM7QVQ0bE01RDs7QVV2NExRO0VBRVEsa0JEdk40QztBVGdtTTVEOztBVW41TFE7RUFFUSxvQk81TzBHO0FqQmlvTTFIOztBVS80TFE7RUFFUSxxQk9wUDBHO0FqQnFvTTFIOztBVTM1TFE7RUFFUSxvQk94T3NFO0FqQnFvTXRGOztBVXY1TFE7RUFFUSxxQk9oUHNFO0FqQnlvTXRGOztBVW42TFE7RUFFUSxpQkQvTTRDO0FUb25NNUQ7O0FVLzVMUTtFQUVRLGtCRHZONEM7QVR3bk01RDs7QVUzNkxRO0VBRVEsb0JPNU8wRztBakJ5cE0xSDs7QVV2NkxRO0VBRVEscUJPcFAwRztBakI2cE0xSDs7QVVuN0xRO0VBRVEsb0JPeE9zRTtBakI2cE10Rjs7QVUvNkxRO0VBRVEscUJPaFBzRTtBakJpcU10Rjs7QVUzN0xRO0VBRVEsaUJEL000QztBVDRvTTVEOztBVXY3TFE7RUFFUSxrQkR2TjRDO0FUZ3BNNUQ7O0FVbjhMUTtFQUVRLG9CTzVPMEc7QWpCaXJNMUg7O0FVLzdMUTtFQUVRLHFCT3BQMEc7QWpCcXJNMUg7O0FVMzhMUTtFQUVRLG9CT3hPc0U7QWpCcXJNdEY7O0FVdjhMUTtFQUVRLHFCT2hQc0U7QWpCeXJNdEY7O0FVbjlMUTtFQUVRLGlCRC9NNEM7QVRvcU01RDs7QVUvOExRO0VBRVEsa0JEdk40QztBVHdxTTVEOztBVTM5TFE7RUFFUSxvQk81TzBHO0FqQnlzTTFIOztBVXY5TFE7RUFFUSxxQk9wUDBHO0FqQjZzTTFIOztBVW4rTFE7RUFFUSxvQk94T3NFO0FqQjZzTXRGOztBVS85TFE7RUFFUSxxQk9oUHNFO0FqQml0TXRGOztBVTMrTFE7RUFFUSxpQkQvTTRDO0FUNHJNNUQ7O0FVditMUTtFQUVRLGtCRHZONEM7QVRnc001RDs7QVVuL0xRO0VBRVEsb0JPNU8wRztBakJpdU0xSDs7QVUvK0xRO0VBRVEscUJPcFAwRztBakJxdU0xSDs7QVUzL0xRO0VBRVEsb0JPeE9zRTtBakJxdU10Rjs7QVV2L0xRO0VBRVEscUJPaFBzRTtBakJ5dU10Rjs7QVVuZ01RO0VBRVEsaUJEL000QztBVG90TTVEOztBVS8vTFE7RUFFUSxrQkR2TjRDO0FUd3RNNUQ7O0FVM2dNUTtFQUVRLG9CTzVPMEc7QWpCeXZNMUg7O0FVdmdNUTtFQUVRLHFCT3BQMEc7QWpCNnZNMUg7O0FVbmhNUTtFQUVRLG9CT3hPc0U7QWpCNnZNdEY7O0FVL2dNUTtFQUVRLHFCT2hQc0U7QWpCaXdNdEY7O0FVM2hNUTtFQUVRLGlCRC9NNEM7QVQ0dU01RDs7QVV2aE1RO0VBRVEsa0JEdk40QztBVGd2TTVEOztBVW5pTVE7RUFFUSxvQk81TzBHO0FqQml4TTFIOztBVS9oTVE7RUFFUSxxQk9wUDBHO0FqQnF4TTFIOztBVTNpTVE7RUFFUSxvQk94T3NFO0FqQnF4TXRGOztBVXZpTVE7RUFFUSxxQk9oUHNFO0FqQnl4TXRGOztBVW5qTVE7RUFFUSxpQkQvTTRDO0FUb3dNNUQ7O0FVL2lNUTtFQUVRLGtCRHZONEM7QVR3d001RDs7QVUzak1RO0VBRVEsb0JPNU8wRztBakJ5eU0xSDs7QVV2ak1RO0VBRVEscUJPcFAwRztBakI2eU0xSDs7QVVua01RO0VBRVEsb0JPeE9zRTtBakI2eU10Rjs7QVUvak1RO0VBRVEscUJPaFBzRTtBakJpek10Rjs7QVUza01RO0VBRVEsaUJEL000QztBVDR4TTVEOztBVXZrTVE7RUFFUSxrQkR2TjRDO0FUZ3lNNUQ7O0FVbmxNUTtFQUVRLG9CTzVPMEc7QWpCaTBNMUg7O0FVL2tNUTtFQUVRLHFCT3BQMEc7QWpCcTBNMUg7O0FVM2xNUTtFQUVRLG9CT3hPc0U7QWpCcTBNdEY7O0FVdmxNUTtFQUVRLHFCT2hQc0U7QWpCeTBNdEY7O0FVbm1NUTtFQUVRLGlCRC9NNEM7QVRvek01RDs7QVUvbE1RO0VBRVEsa0JEdk40QztBVHd6TTVEOztBVTNtTVE7RUFFUSxvQk81TzBHO0FqQnkxTTFIOztBVXZtTVE7RUFFUSxxQk9wUDBHO0FqQjYxTTFIOztBVW5uTVE7RUFFUSxvQk94T3NFO0FqQjYxTXRGOztBVS9tTVE7RUFFUSxxQk9oUHNFO0FqQmkyTXRGOztBVTNuTVE7RUFFUSxpQkQvTTRDO0FUNDBNNUQ7O0FVdm5NUTtFQUVRLGtCRHZONEM7QVRnMU01RDs7QVVub01RO0VBRVEsb0JPNU8wRztBakJpM00xSDs7QVUvbk1RO0VBRVEscUJPcFAwRztBakJxM00xSDs7QVUzb01RO0VBRVEsb0JPeE9zRTtBakJxM010Rjs7QVV2b01RO0VBRVEscUJPaFBzRTtBakJ5M010Rjs7QVVucE1RO0VBRVEsaUJEL000QztBVG8yTTVEOztBVS9vTVE7RUFFUSxrQkR2TjRDO0FUdzJNNUQ7O0FVM3BNUTtFQUVRLG9CTzVPMEc7QWpCeTRNMUg7O0FVdnBNUTtFQUVRLHFCT3BQMEc7QWpCNjRNMUg7O0FVbnFNUTtFQUVRLG9CT3hPc0U7QWpCNjRNdEY7O0FVL3BNUTtFQUVRLHFCT2hQc0U7QWpCaTVNdEY7O0FVM3FNUTtFQUVRLGlCRC9NNEM7QVQ0M001RDs7QVV2cU1RO0VBRVEsa0JEdk40QztBVGc0TTVEOztBVW5yTVE7RUFFUSxvQk81TzBHO0FqQmk2TTFIOztBVS9xTVE7RUFFUSxxQk9wUDBHO0FqQnE2TTFIOztBVTNyTVE7RUFFUSxvQk94T3NFO0FqQnE2TXRGOztBVXZyTVE7RUFFUSxxQk9oUHNFO0FqQnk2TXRGOztBVW5zTVE7RUFFUSxpQkQvTTRDO0FUbzVNNUQ7O0FVL3JNUTtFQUVRLGtCRHZONEM7QVR3NU01RDs7QVUzc01RO0VBRVEsb0JPNU8wRztBakJ5N00xSDs7QVV2c01RO0VBRVEscUJPcFAwRztBakI2N00xSDs7QVVudE1RO0VBRVEsb0JPeE9zRTtBakI2N010Rjs7QVUvc01RO0VBRVEscUJPaFBzRTtBakJpOE10Rjs7QVUzdE1RO0VBRVEsaUJEL000QztBVDQ2TTVEOztBVXZ0TVE7RUFFUSxrQkR2TjRDO0FUZzdNNUQ7O0FVbnVNUTtFQUVRLG9CTzVPMEc7QWpCaTlNMUg7O0FVL3RNUTtFQUVRLHFCT3BQMEc7QWpCcTlNMUg7O0FVM3VNUTtFQUVRLG9CT3hPc0U7QWpCcTlNdEY7O0FVdnVNUTtFQUVRLHFCT2hQc0U7QWpCeTlNdEY7O0FVbnZNUTtFQUVRLGlCRC9NNEM7QVRvOE01RDs7QVUvdU1RO0VBRVEsa0JEdk40QztBVHc4TTVEOztBVTN2TVE7RUFFUSxvQk81TzBHO0FqQnkrTTFIOztBVXZ2TVE7RUFFUSxxQk9wUDBHO0FqQjYrTTFIOztBVW53TVE7RUFFUSxvQk94T3NFO0FqQjYrTXRGOztBVS92TVE7RUFFUSxxQk9oUHNFO0FqQmkvTXRGOztBVTN3TVE7RUFFUSxpQkQvTTRDO0FUNDlNNUQ7O0FVdndNUTtFQUVRLGtCRHZONEM7QVRnK001RDs7QVVueE1RO0VBRVEsb0JPNU8wRztBakJpZ04xSDs7QVUvd01RO0VBRVEscUJPcFAwRztBakJxZ04xSDs7QVUzeE1RO0VBRVEsb0JPeE9zRTtBakJxZ050Rjs7QVV2eE1RO0VBRVEscUJPaFBzRTtBakJ5Z050Rjs7QVVueU1RO0VBRVEsaUJEL000QztBVG8vTTVEOztBVS94TVE7RUFFUSxrQkR2TjRDO0FUdy9NNUQ7O0FVM3lNUTtFQUVRLGlCRC9NNEM7QVQ0L001RDs7QVV2eU1RO0VBRVEsa0JEdk40QztBVGdnTjVEOztBTWxpTkE7RVdzQlEsa0JBQWtCO0FqQmdoTjFCOztBTXRpTkE7RUVxR1EsY0NTZ0M7RURKNUIscURBcUVrQztBUjQzTTlDOztBTTNpTkE7RUVxR1EsY0NXa0M7RUROOUIsdURBcUVrQztBUmk0TTlDOztBTWhqTkE7RVdrQ1EsNkJBQTZCO0VBQzdCLGtCQUFrQjtFQUNsQixpQkFBaUI7RUFDakIsa0JBQWtCO0VBQ2xCLCtCQUErQjtBakJraE52Qzs7QU14ak5BO0VFcUdRLHlCQ2FrRDtFRFI5QyxrRkFxRWtDO0VTcEl0QyxpQ0FBaUM7QWpCbWhOekM7O0FNOWpOQTtFRXFHUSxvQ0FIaUM7RUFRN0IsNkZBUjZCO0FSaStNekM7O0FNbmtOQTtFV21EUSw2QkFBNkI7QWpCb2hOckM7O0FNdmtOQTtFRXFHUSxvQ0FIaUM7RUFRN0IsK0VBUjZCO0FSMCtNekM7O0FNNWtOQTtFVzJEUSxZUi9CeUI7RUR5RXpCLHNCQ3ZHWTtFRDRHUixrREFxRWtDO0VBMUV0QywwQkN2Q3VCO0VENENuQiw0RUFxRWtDO0VTNUdsQyxpQkFBaUI7RVRrQ3JCLHFCQy9GaUI7RURvR2IsMkdBcUVrQztFU3pHbEMsMEJBQTBCO0FqQmtoTnRDOztBTXhsTkE7RVcyRVEsV0FBVztFQUNYLGtCQUFrQjtFQUNsQix1QkFBdUI7RUFDdkIsV0FBVztFVHVCWCx5QkM3Rm1CO0VEa0dmLGlFQXFFa0M7RVMvRnRDLFNBQVM7QWpCa2hOakI7O0FNbG1OQTtFV29GUSxTQUFTO0FqQmtoTmpCOztBTXRtTkE7RVd3RlEsTUFBTTtBakJraE5kOztBTTFtTkE7RVc0RlEsV0FBVztBakJraE5uQjs7QU05bU5BO0VFMEdZLG9EQWtFMkI7QVJzOE12Qzs7QU1sbk5BO0VJWW9CLHVCQVZtRDtFRm1HL0QsMkJDL0ZpQjtFRG9HYixtREFxRWtDO0FSeThNOUM7O0FNeG5OQTtFSVlvQixzQkFWbUQ7RUZtRy9ELDBCQy9GaUI7RURvR2Isa0RBcUVrQztBUis4TTlDOztBTTluTkE7RUVxR1EseUJDckdnQjtFRDBHWixvREFxRWtDO0FSbzlNOUM7O0FVcDVNUTtFQUVRLGlCTy9IaUM7QWpCcWhOakQ7O0FVaDVNUTtFQUVRLGdCUjVNOEM7QUY4bE45RDs7QVU1NU1RO0VBRVEsaUJPekhpQztBakJ1aE5qRDs7QVV4NU1RO0VBRVEsa0JPaklpQztBakIyaE5qRDs7QU1ucE5BO0VXNkhRLDZCQUE2QjtFQUU3QixpQkFBdUM7RUFDdkMsa0JBQXFEO0VBQ3JELG1CQUFzRDtFQUN0RCw0Q0FBNEM7QWpCeWhOcEQ7O0FNM3BOQTtFV3dJUSxrQkFBcUQ7RUFDckQsbUJBQXNEO0FqQnVoTjlEOztBTWhxTkE7RVc2SVEsWUFBWTtFQUNaLFlBQVk7QWpCdWhOcEI7O0FNcnFOQTtFRXFHUSxnQkN2R1k7RUQ0R1IsNENBcUVrQztFRWxGMUMsa0JLcENnQjtFTHFDaEIsK0dEeENnSDtFQ3lDaEgsWUR6RWM7RVE2SFYsVUFBVTtFQUNWLFlSeEh5QjtFRHlFekIseUJDckdnQjtFRDBHWixtRUFxRWtDO0FSa2dOOUM7O0FNanJOQTtFRXFHUSxnQkN2R1k7RUQ0R1IsNENBcUVrQztFRWxGMUMsa0JLcENnQjtFTHFDaEIsK0dEeENnSDtFQ3lDaEgsWUR6RWM7RUQrRVYseUJDckdnQjtFRDBHWixtRUFxRWtDO0VTcEJ0QyxVQUFVO0FqQmlpTmxCOztBTTVyTkE7RVcrSlEsWUFBWTtFQUNaLGFSNUhzQztBVDZwTjlDOztBTWpzTkE7RVdvS1EsYUFBZ0M7RVQvRGhDLHNCQ3ZHWTtFRDRHUixrREFxRWtDO0FSd2hOOUM7O0FNdnNOQTtFVzBLWSxnQkFBZ0I7QWpCaWlONUI7O0FNM3NOQTtFRXFHUSwyQ0N2R1k7RUQ0R1IscUZBcUVrQztBUmlpTjlDOztBTWh0TkE7RUVxR1EsZ0JDdkdZO0VENEdSLDRDQXFFa0M7RUVsRjFDLGtCS3BDZ0I7RUxxQ2hCLCtHRHhDZ0g7RUN5Q2hILFlEekVjO0FUa3NObEI7O0FNeHROQTtFV3dMUSxpQkFBaUI7QWpCb2lOekI7O0FNNXROQTtFVzRMUSxrQlJ4SnNDO0VReUp0QyxhQUFhO0VBQ2IsWUFBWTtFQUNaLG1CQUFtQjtBakJvaU4zQjs7QU1udU5BO0VXbU1RLG1CUi9Kc0M7QVRtc045Qzs7QU12dU5BO0VXdU1RLG9CQUFvQjtFQUNwQiwwQkFBMEI7RUFDMUIsbUNBQW1DO0VBQ25DLGlDQUFpQztBakJvaU56Qzs7QWlCamlOSTtFQUNJO0lBQ0ksdUJBQXVCO0VqQm9pTmpDO0VpQmxpTk07SUFDSSx5QkFBeUI7RWpCb2lObkM7QUFDRjs7QU12dk5BO0VJWW9CLHdCQVZtRDtFRm1HL0QsNEJDL0ZpQjtFRG9HYixvREFxRWtDO0FSOGtOOUM7O0FNN3ZOQTtFSVlvQixxQkFWbUQ7RUZtRy9ELHlCQy9GaUI7RURvR2IsaURBcUVrQztBUm9sTjlDOztBVXBoTlE7RUFFUSxtQ0luSmlDO0FkeXFOakQ7O0FVaGhOUTtFQUVRLGtDSTNKaUM7QWQ2cU5qRDs7QVU1aE5RO0VBRVEsdUJRclB1QztBbEJteE52RDs7QVV4aE5RO0VBRVEsc0JRN1B1QztBbEJ1eE52RDs7QU1ueE5BO0VJWW9CLHNCQVZtRDtFRm1HL0QsMEJDL0ZpQjtFRG9HYixrREFxRWtDO0FSMG1OOUM7O0FNenhOQTtFSVlvQix1QkFWbUQ7RUZtRy9ELDJCQy9GaUI7RURvR2IsbURBcUVrQztBUmduTjlDOztBTS94TkE7RUVxR1Esc0JDakdjO0VEc0dWLCtEQXFFa0M7QVJxbk45Qzs7QU1weU5BOztFRXFHUSwwQ0NMaUY7RURVN0Usc0ZBcUVrQztBUjJuTjlDOztBTTF5TkE7O0VFcUdRLGtEQUhpQztFQVE3QixvR0FSNkI7QVI4c056Qzs7QU1oek5BOztFRXFHUSxtREFIaUM7RUFRN0IsOEdBUjZCO0FSb3ROekM7O0FNdHpOQTs7RUVxR1EsMENDTGlGO0VEVTdFLG9JQXFFa0M7QVI2b045Qzs7QU01ek5BOztFRXFHUSwyQ0NMaUY7RURVN0UseUZBcUVrQztBUm1wTjlDOztBTWwwTkE7O0VFcUdRLDRDQ0xpRjtFRFU3RSwwRkFxRWtDO0FSeXBOOUM7O0FNeDBOQTs7RUVxR1EsNkNDTGlGO0VEVTdFLDJGQXFFa0M7QVIrcE45Qzs7QU05ME5BO0VFcUdRLHlCQzdGbUI7RURrR2YsaUVBcUVrQztBUm9xTjlDOztBTW4xTkE7RUVxR1EsMkJDN0ZtQjtFRGtHZixtRUFxRWtDO0FSeXFOOUM7O0FNeDFOQTtFRXFHUSw0QkM3Rm1CO0VEa0dmLG9FQXFFa0M7QVI4cU45Qzs7QU03MU5BO0VFcUdRLDBCQzdGbUI7RURrR2Ysa0VBcUVrQztBUm1yTjlDOztBTWwyTkE7Ozs7Ozs7OztFWW1FWSxpQkFBaUI7RVZrQ3JCLHFCQzdGbUI7RURrR2YsNkRBcUVrQztFVTFHbEMsZ0JBQWdCO0FsQjR5TjVCOztBTWozTkE7O0VZMkVRLHNCQUFzQjtFVjBCdEIseUJDN0ZtQjtFRGtHZixpRUFxRWtDO0FSeXNOOUM7O0FVem9OUTtFQUVRLHdCUWhLdUM7RVZvQi9DLDJCQzdGbUI7RURrR2YsbUVBcUVrQztBUitzTjlDOztBVXZvTlE7RUFFUSx1QlF4S3VDO0VWb0IvQywwQkM3Rm1CO0VEa0dmLGtFQXFFa0M7QVJxdE45Qzs7QU1wNE5BOztFWXNGUSx5QkFBeUI7RVZlekIsNEJDN0ZtQjtFRGtHZixvRUFxRWtDO0FSNHROOUM7O0FVNXBOUTtFQUVRLHVCUXJKc0M7RVZTOUMsMEJDN0ZtQjtFRGtHZixrRUFxRWtDO0FSa3VOOUM7O0FVMXBOUTtFQUVRLHdCUTdKc0M7RVZTOUMsMkJDN0ZtQjtFRGtHZixtRUFxRWtDO0FSd3VOOUM7O0FNdjVOQTtFWWdHUSxrQkFBa0I7RUFDbEIsVUFBVTtFQUNWLFdBQVc7RUFDWCxZQUFZO0VWRVoseUJDN0ZtQjtFRGtHZixpRUFxRWtDO0FSaXZOOUM7O0FNaDZOQTtFSWlQZ0IsV1E3STBCO0FsQmcwTjFDOztBTXA2TkE7RUl5UGdCLFVRckowQjtBbEJvME4xQzs7QU14Nk5BO0VZMEdRLFlBQVk7QWxCazBOcEI7O0FNNTZOQTtFWStHUSxtQkFBbUI7QWxCaTBOM0I7O0FNaDdOQTtFRXFHUSxnQ0FIaUM7RUFRN0Isc0dBUjZCO0FSbTFOekM7O0FNcjdOQTtFRXFHUSxnQkN2R1k7RUQ0R1IsNENBcUVrQztFRWxGMUMsa0JLcENnQjtFTHFDaEIsK0dEeENnSDtFQ3lDaEgsWUR6RWM7RVUzQlYsVUFBVTtBbkJtOE5sQjs7QU05N05BO0VhRFEsZUFBZTtFQUNmLGNBQThCO0FuQm04TnRDOztBTW44TkE7RWFJUSxZQUFxQztBbkJtOE43Qzs7QU12OE5BO0VhUVEsV0FBVztFQUNYLGNBQWM7RVRHRixxQkFWbUQ7RUZtRy9ELHlCQy9GaUI7RURvR2IsaURBcUVrQztBUmd5TjlDOztBTS84TkE7RUVxR1EseUJDckdnQjtFRDBHWixvREFxRWtDO0FScXlOOUM7O0FNcDlOQTtFYWtCUSxpQlZNVztFVUxYLGVBQW9DO0FuQnM4TjVDOztBTXo5TkE7RWF1QlEsWUFBWTtBbkJzOE5wQjs7QU03OU5BO0VhNEJRLFdWSlc7QVR5OE5uQjs7QVVsdk5RO0VBRVEsa0JTdE5vRDtBbkIwOE5wRTs7QVU5dU5RO0VBRVEsbUJTOU5vRDtBbkI4OE5wRTs7QU16K05BO0VhZ0NRLGtCQUFxQztFQUNyQyxtQkFBc0M7QW5CNjhOOUM7O0FVL3ZOUTtFQUVRLGtCRDNORTtBVDQ5TmxCOztBVTN2TlE7RUFFUSxpQkRuT0U7QVRnK05sQjs7QU10L05BO0VheUNRLGtCVm5CVTtBVG8rTmxCOztBTTEvTkE7RWFnRFEsZ0JBQWdCO0VBQ2hCLFdBQVc7RUFDWCxhQUFhO0FuQjg4TnJCOztBTWhnT0E7RWFzRFEsb0NBQXVFO0VBQ3ZFLGFBQWE7RUFDYixVQUFVO0VBQ1YsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixlQUFlO0VBR1gsY0FBYztBbkI0OE4xQjs7QU0xZ09BO0VJb0NnQixhQUFhO0FWMCtON0I7O0FNOWdPQTtFSXNDb0IsV0FBVztFQUNYLGtCQUFrQjtFQUNsQiw2QkFBNkI7RUFDN0Isb0JBQW9CO0VBQ3BCLFFTNEJ3QjtFVDNCeEIsU1MyQndCO0VUMUJ4QixjQUFjO0VBQ2QsdUJBQWtDO0VBQ2xDLHdCQUFtQztFQUNuQyxpQkFBaUI7RUZzRDdCLHFCQzdGbUI7RURrR2YsMkZBcUVrQztBUjgyTjlDOztBTTdoT0E7RUVxR1EsNEJDN0ZtQjtFRGtHZixvRUFxRWtDO0FSbTNOOUM7O0FNbGlPQTtFRXFHUSwwQkNyQ2lDO0VEMEM3QixnRUFxRWtDO0FSdzNOOUM7O0FNdmlPQTtFSVlvQixxQkFWbUQ7RUZtRy9ELHlCQy9GaUI7RURvR2IsaURBcUVrQztBUjgzTjlDOztBTTdpT0E7RWF5RlEsWUFBWTtBbkJ3OU5wQjs7QVVsME5RO0VBRVEsaUJTcEptRDtBbkJ3OU5uRTs7QVU5ek5RO0VBRVEsa0JTNUptRDtBbkI0OU5uRTs7QU16ak9BO0VhaUdRLGlCWHdNZTtBUm94TnZCOztBTTdqT0E7RWFxR1EsYUFBc0M7QW5CNDlOOUM7O0FNamtPQTtFYXlHUSxnQlhnTWU7RVcvTGYsaUJYK0xlO0VXOUxmLGtCWDhMZTtBUjh4TnZCOztBTXZrT0E7RWErR1EsZ0JYMExlO0FSa3lOdkI7O0FNM2tPQTtFYW1IUSxpQlhzTGU7QVJzeU52Qjs7QU0va09BO0VhdUhRLGdCWGtMZTtBUjB5TnZCOztBVXAyTlE7RUFFUSxpQkZ3RE87QVI4eU52Qjs7QVVoMk5RO0VBRVEsa0JGZ0RPO0FSa3pOdkI7O0FNM2xPQTtFYStIUSxrQlgwS2U7QVJzek52Qjs7QU0vbE9BO0Vhb0lRLGdCQUFnQjtBbkIrOU54Qjs7QVVwM05RO0VBRVEsaUJTNUdtRDtBbkJrK05uRTs7QVVoM05RO0VBRVEsa0JTcEhtRDtBbkJzK05uRTs7QU0zbU9BO0VJd0RJLGtCRmlQbUI7RUVoUG5CLG1CQUErRjtBVnVqT25HOztBTWhuT0E7RUk0RFEsbUJGNk9lO0FSMjBOdkI7O0FNcG5PQTtFYTZJUSxrQlg0SmU7QVIrME52Qjs7QU14bk9BO0VhaUpRLGFBQTZCO0FuQjIrTnJDOztBTTVuT0E7RWFxSlEsaUJWL0hVO0VVZ0lWLDZCQUE2QjtBbkIyK05yQzs7QU1qb09BO0VJb0NnQixhQUFhO0FWaW1PN0I7O0FNcm9PQTtFSXNDb0IsV0FBVztFQUNYLGtCQUFrQjtFQUNsQiw2QkFBNkI7RUFDN0Isb0JBQW9CO0VBQ3BCLFFTK0dpRDtFVDlHakQsU1M4R2lEO0VUN0dqRCxjQUFjO0VBQ2QsdUJBQWtDO0VBQ2xDLHdCQUFtQztFQUNuQyxpQkFBaUI7RUZzRDdCLHFCQzdGbUI7RURrR2YsMkZBcUVrQztBUnErTjlDOztBTXBwT0E7RWNMUSxrQkFBa0I7QXBCNnBPMUI7O0FNeHBPQTtFRXFHUSx5QkNyR2dCO0VEMEdaLG1FQXFFa0M7QVI4K045Qzs7QU03cE9BO0VjR1EsaUJBQW9DO0VBQ3BDLFdBQThCO0VBQzlCLGtCQUFrQjtFWmdHbEIsMEJDdkN1QjtFRDRDbkIsc0RBcUVrQztFWXhLdEMsZ0JBQWdCO0FwQitwT3hCOztBTXRxT0E7RUlMSSxjQUFjO0VBQ2Qsb0JBQW9CO0VBQ3BCLGtCQUFrQjtFQUNsQixvQkFBb0I7RUFDcEIsb0JBQW9CO0VVYWhCLHVCQUF1QjtFQUN2QixzQkFBNEQ7RUFJeEQsV0FBVztFQUVmLFNBQVM7RUFDVCxpQkFBb0M7RUFDcEMsNkJBQTZCO0VBQzdCLDZCQUE2QjtFQUM3Qiw0QkFBNEI7RUFFNUIsWUFBWTtBcEI4cE9wQjs7QU12ck9BO0VjK0JZLGdCQUFnQjtBcEI0cE81Qjs7QU0zck9BO0VJb0NnQixhQUFhO0FWMnBPN0I7O0FNL3JPQTtFSXNDb0IsV0FBVztFQUNYLGtCQUFrQjtFQUNsQiw2QkFBNkI7RUFDN0Isb0JBQW9CO0VBQ3BCLFFVUHVDO0VWUXZDLFNVUnVDO0VWU3ZDLGNBQWM7RUFDZCx1QkFBa0M7RUFDbEMsd0JBQW1DO0VBQ25DLGlCQUFpQjtFRnNEN0IscUJDN0ZtQjtFRGtHZiwyRkFxRWtDO0FSK2hPOUM7O0FNOXNPQTtFYzhDUSxrQkFBa0I7QXBCb3FPMUI7O0FNbHRPQTs7RWMwRFksbUNBQXNFO0FwQjZwT2xGOztBTXZ0T0E7O0VFcUdRLDJCQzdGbUI7RURrR2YsbUVBcUVrQztBUjhpTzlDOztBTTd0T0E7O0VjcUZZLGtDQUFxRTtBcEI2b09qRjs7QU1sdU9BOztFRXFHUSwwQkM3Rm1CO0VEa0dmLGtFQXFFa0M7QVJ5ak85Qzs7QU14dU9BO0VlUFEsWUFBK0I7QXJCbXZPdkM7O0FVNy9OUTtFQUVRLGlCRDNORTtBVDB0T2xCOztBVXovTlE7RUFFUSxrQkRuT0U7QVQ4dE9sQjs7QU1wdk9BO0VJb0NnQixhQUFhO0FWb3RPN0I7O0FNeHZPQTtFSXNDb0IsV0FBVztFQUNYLGtCQUFrQjtFQUNsQiw2QkFBNkI7RUFDN0Isb0JBQW9CO0VBQ3BCLFFXekM0QztFWDBDNUMsU1cxQzRDO0VYMkM1QyxjQUFjO0VBQ2QsdUJBQWtDO0VBQ2xDLHdCQUFtQztFQUNuQyxpQkFBaUI7RUZzRDdCLHFCQzdGbUI7RURrR2YsMkZBcUVrQztBUndsTzlDOztBTXZ3T0E7RUl5SEksNkJBQTRDO0VBQzVDLGVEbEdlO0VDbUdmLGlCRG5HZTtFQ29HZixrQkFBa0I7RUFDbEIsbUJBQW1CO0VBQ25CLG9CQUFvQjtFQUNwQixvQkFBb0I7RUFFcEIsc0NBQUE7RUFDQSxtQ0FBbUM7RUFDbkMsa0NBQWtDO0VXN0g5QixnQlZPdUM7RVVOdkMsa0JBQWtCO0FyQit3TzFCOztBVXZpT1E7RUFFUSxpQkQzTkU7QVRvd09sQjs7QVVuaU9RO0VBRVEsa0JEbk9FO0FUd3dPbEI7O0FNOXhPQTtFZVdRLFlBQStCO0FyQnV4T3ZDOztBTWx5T0E7RWVlUSxlQUFtQztFQUNuQyxrQkFBc0M7QXJCdXhPOUM7O0FNdnlPQTtFZW9CUSxZdEIwQ1k7QUM2dU9wQjs7QU0zeU9BO0Vld0JRLFlBQVk7RUFDWixZQUErQjtBckJ1eE92Qzs7QVVqa09RO0VBRVEsaUJEM05FO0FUOHhPbEI7O0FVN2pPUTtFQUVRLGdCRG5PRTtBVGt5T2xCOztBVXprT1E7RUFFUSxpQkQzTkU7QVRzeU9sQjs7QVVya09RO0VBRVEsZ0JEbk9FO0FUMHlPbEI7O0FNaDBPQTtFZTBDb0IsNkJBQTZCO0FyQjB4T2pEOztBVXJsT1E7RUFFUSxrQldsTXFGO0FyQnl4T3JHOztBVWpsT1E7RUFFUSxtQlcxTXFGO0FyQjZ4T3JHOztBTTUwT0E7RWUwQ29CLDZCQUE2QjtBckJzeU9qRDs7QVVqbU9RO0VBRVEsa0JXbE1xRjtBckJxeU9yRzs7QVU3bE9RO0VBRVEsbUJXMU1xRjtBckJ5eU9yRzs7QU14MU9BO0VlMENvQiw2QkFBNkI7QXJCa3pPakQ7O0FVN21PUTtFQUVRLGtCV2xNcUY7QXJCaXpPckc7O0FVem1PUTtFQUVRLG1CVzFNcUY7QXJCcXpPckc7O0FNcDJPQTtFZTBDb0IsNkJBQTZCO0FyQjh6T2pEOztBVXpuT1E7RUFFUSxrQldsTXFGO0FyQjZ6T3JHOztBVXJuT1E7RUFFUSxtQlcxTXFGO0FyQmkwT3JHOztBTWgzT0E7RWUwQ29CLDZCQUE2QjtBckIwME9qRDs7QVVyb09RO0VBRVEsa0JXbE1xRjtBckJ5ME9yRzs7QVVqb09RO0VBRVEsbUJXMU1xRjtBckI2ME9yRzs7QU01M09BO0VlMENvQiw2QkFBNkI7QXJCczFPakQ7O0FVanBPUTtFQUVRLG1CV2xNcUY7QXJCcTFPckc7O0FVN29PUTtFQUVRLG9CVzFNcUY7QXJCeTFPckc7O0FNeDRPQTtFZTBDb0IsNkJBQTZCO0FyQmsyT2pEOztBVTdwT1E7RUFFUSxtQldsTXFGO0FyQmkyT3JHOztBVXpwT1E7RUFFUSxvQlcxTXFGO0FyQnEyT3JHOztBTXA1T0E7RWUwQ29CLDZCQUE2QjtBckI4Mk9qRDs7QVV6cU9RO0VBRVEsbUJXbE1xRjtBckI2Mk9yRzs7QVVycU9RO0VBRVEsb0JXMU1xRjtBckJpM09yRzs7QU1oNk9BO0VlMENvQiw2QkFBNkI7QXJCMDNPakQ7O0FVcnJPUTtFQUVRLG1CV2xNcUY7QXJCeTNPckc7O0FVanJPUTtFQUVRLG9CVzFNcUY7QXJCNjNPckc7O0FNNTZPQTtFZTBDb0IsNkJBQTZCO0FyQnM0T2pEOztBVWpzT1E7RUFFUSxtQldsTXFGO0FyQnE0T3JHOztBVTdyT1E7RUFFUSxvQlcxTXFGO0FyQnk0T3JHOztBTXg3T0E7RWVzRFEsaUJaaENVO0FUczZPbEI7O0FNNTdPQTtFZTJEUSxlWnJDVTtBVDA2T2xCOztBVWp0T1E7RUFFUSxnQkQzTkU7QVQ4Nk9sQjs7QVU3c09RO0VBRVEsaUJEbk9FO0FUazdPbEI7O0FNeDhPQTtFZ0JMUSxZdkJtRVk7RXVCbEVaLGFBQWE7QXRCaTlPckI7O0FNNzhPQTtFZ0JBUSxhQUFhO0VBQ2IsbUJBQW1CO0F0Qmk5TzNCOztBVW51T1E7RUFFUSxpQkZ3RE87QVI2cU92Qjs7QVUvdE9RO0VBRVEsa0JGZ0RPO0FSaXJPdkI7O0FNMTlPQTtFSW9DZ0IsYUFBYTtBVjA3TzdCOztBTTk5T0E7RUlzQ29CLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsNkJBQTZCO0VBQzdCLG9CQUFvQjtFQUNwQixRWXBDeUM7RVpxQ3pDLFNZckN5QztFWnNDekMsY0FBYztFQUNkLHVCQUFrQztFQUNsQyx3QkFBbUM7RUFDbkMsaUJBQWlCO0VGc0Q3QixxQkM3Rm1CO0VEa0dmLDJGQXFFa0M7QVI4ek85Qzs7QU03K09BO0VnQlNRLFl2QnFEWTtFdUJwRFosbUJBQW1CO0VBQ25CLGVkOFJlO0FSMHNPdkI7O0FNbi9PQTs7RUVxR1EsMEJDckNpQztFRDBDN0IsZ0VBcUVrQztBUjAwTzlDOztBTXovT0E7RUVxR1Esc0JDdkdZO0VENEdSLHlEQXFFa0M7RUVuSzFCLHdCQVZtRDtFRm1HL0QsNEJDL0ZpQjtFRG9HYixvREFxRWtDO0FSazFPOUM7O0FNamdQQTtFRXFHUSwwQkNyQ2lDO0VEMEM3Qiw2REFxRWtDO0VlL0t0QyxZeEI4RFk7QUN5OE9wQjs7QU12Z1BBO0VJWW9CLHNCQVZtRDtFRm1HL0QsMEJDL0ZpQjtFRG9HYixrREFxRWtDO0FSODFPOUM7O0FNN2dQQTtFSVlvQix1QkFWbUQ7RUZtRy9ELDJCQy9GaUI7RURvR2IsbURBcUVrQztBUm8yTzlDOztBVXB5T1E7RUFFUSxnQkQzTkU7QVRpZ1BsQjs7QVVoeU9RO0VBRVEsaUJEbk9FO0FUcWdQbEI7O0FVNXlPUTtFQUVRLGlCRDNORTtBVHlnUGxCOztBVXh5T1E7RUFFUSxnQkRuT0U7QVQ2Z1BsQjs7QU1uaVBBOztFaUJxQlEsa0JkZXNDO0VjZHRDLG1CZGNzQztBVHFnUDlDOztBTXppUEE7O0VFcUdRLHlCQy9CdUU7RURvQ25FLHdFQXFFa0M7QVJnNE85Qzs7QU0vaVBBO0VJb0NnQixhQUFhO0FWK2dQN0I7O0FNbmpQQTtFSXNDb0IsV0FBVztFQUNYLGtCQUFrQjtFQUNsQiw2QkFBNkI7RUFDN0Isb0JBQW9CO0VBQ3BCLFFhYnNEO0ViY3RELFNhZHNEO0ViZXRELGNBQWM7RUFDZCx1QkFBa0M7RUFDbEMsd0JBQW1DO0VBQ25DLGlCQUFpQjtFRnNEN0IscUJDN0ZtQjtFRGtHZiwyRkFxRWtDO0FSbTVPOUM7O0FNbGtQQTtFSW9DZ0IsYUFBYTtBVmtpUDdCOztBTXRrUEE7RUlzQ29CLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsNkJBQTZCO0VBQzdCLG9CQUFvQjtFQUNwQixRYWJzRDtFYmN0RCxTYWRzRDtFYmV0RCxjQUFjO0VBQ2QsdUJBQWtDO0VBQ2xDLHdCQUFtQztFQUNuQyxpQkFBaUI7RUZzRDdCLHFCQzdGbUI7RURrR2YsMkZBcUVrQztBUnM2TzlDOztBTXJsUEE7RUVxR1EsMEJDckNpQztFRDBDN0IsZ0VBcUVrQztBUjI2TzlDOztBTTFsUEE7RWlCb0NRLGVBQWU7QXZCMGpQdkI7O0FVLzJPUTtFQUVRLGlCYTVNaUM7QXZCNmpQakQ7O0FVMzJPUTtFQUVRLGtCYXBOaUM7QXZCaWtQakQ7O0FNdG1QQTs7RUlZb0IscUJBVm1EO0VGbUcvRCx5QkMvRmlCO0VEb0diLGlEQXFFa0M7QVI4N085Qzs7QU03bVBBOzs7Ozs7O0VFcUdRLHlCQy9CdUU7RURvQ25FLHVFQXFFa0M7QVJ5OE85Qzs7QVV6NE9RO0VBRVEsa0JEN004QjtBVHdsUDlDOztBVXI0T1E7RUFFUSxpQkRyTjhCO0FUNGxQOUM7O0FVajVPUTtFQUVRLGlCYXZJb0Q7QXZCMGhQcEU7O0FVNzRPUTtFQUVRLGtCYS9Jb0Q7QXZCOGhQcEU7O0FNeG9QQTtFSUxJLGNBQWM7RUFDZCxvQkFBb0I7RUFDcEIsa0JBQWtCO0VBQ2xCLG9CQUFvQjtFQUNwQixvQkFBb0I7RWFnSGhCLHdCQUFnQjtLQUFoQixxQkFBZ0I7VUFBaEIsZ0JBQWdCO0VBQ2hCLHVCQUF1QjtFQUN2QixZQUFZO0VBQ1osWWQxRlc7RWMyRlgsVUFBVTtFQUNWLFdkNUZXO0FUOG5QbkI7O0FNdHBQQTtFRXFHUSx5QkNyR2dCO0VEMEdaLG1FQXFFa0M7RWV0RHRDLFlBQVk7RUFDWixrQmYrS2U7RWU5S2Ysa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxVQUFVO0F2Qm1pUGxCOztBTWhxUEE7RWtCTFEscUJBQXFCO0VoQjBHckIseUJDL0ZpQjtFRG9HYixpREFxRWtDO0VBMUV0QywwQkNyQ2lDO0VEMEM3QixnRUFxRWtDO0VnQmpMdEMsWXpCZ0VZO0FDMm1QcEI7O0FNenFQQTtFa0JDWSxjZm1Da0M7QVR5b1A5Qzs7QU03cVBBO0VrQk9RLGVBQWU7QXhCMHFQdkI7O0FNanJQQTtFa0JXUSxlQUFlO0VoQjBGZiwwQkN2Q3VCO0VENENuQiwrREFxRWtDO0FSd2dQOUM7O0FNdnJQQTtFSW9DZ0IsYUFBYTtBVnVwUDdCOztBTTNyUEE7RUlzQ29CLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsNkJBQTZCO0VBQzdCLG9CQUFvQjtFQUNwQixRYzNCa0M7RWQ0QmxDLFNjNUJrQztFZDZCbEMsY0FBYztFQUNkLHVCQUFrQztFQUNsQyx3QkFBbUM7RUFDbkMsaUJBQWlCO0VGc0Q3QixxQkM3Rm1CO0VEa0dmLDJGQXFFa0M7QVIyaFA5Qzs7QU0xc1BBO0VrQmtCUSxhZklVO0FUd3JQbEI7O0FNOXNQQTtFRXFHUSwwQkN2Q3VCO0VENENuQiwrREFxRWtDO0VnQnZKdEMsbUJBQXNDO0VBQ3RDLGtCQUFxQztFQUNyQyxnQkFBZ0I7QXhCNHJQeEI7O0FNdHRQQTtFRXFHUSwwQkN2Q3VCO0VENENuQixzREFxRWtDO0FSNGlQOUM7O0FNM3RQQTtFa0JrQ1Esa0JBQWtCO0F4QjZyUDFCOztBTS90UEE7RWtCc0NRLGdCZmhCVTtFZWlCVixpQmZqQlU7RWVrQlYsaUJBQW9DO0VBQ3BDLG9CQUF1QztBeEI2clAvQzs7QU10dVBBO0VFcUdRLG1CQy9GaUI7RURvR2Isb0RBcUVrQztFaUJqTHRDLG1CQUFzQztFQUN0QyxZQUErQjtFQUMvQixjQUFrQztBekI4dVAxQzs7QU05dVBBO0VtQklRLGFoQmtCVTtBVDR0UGxCOztBTWx2UEE7RW1CUVEsZUFBa0M7RUFFbEMsYUFBaUM7RWpCMkZqQywwQkNyQ2lDO0VEMEM3QixnRUFxRWtDO0FSMGtQOUM7O0FNenZQQTtFbUJlUSxpQkFBb0M7QXpCOHVQNUM7O0FNN3ZQQTtFbUJtQlEsWUFBWTtBekI4dVBwQjs7QU1qd1BBO0VFcUdRLHlCQ3JHZ0I7RUQwR1osbUVBcUVrQztFQTFFdEMsMEJDckNpQztFRDBDN0IsZ0VBcUVrQztFaUJwSnRDLFloQkN5QjtBVDZ1UGpDOztBVTFoUFE7RUFFUSxrQkQ3TThCO0FUeXVQOUM7O0FVdGhQUTtFQUVRLG1CRHJOOEI7QVQ2dVA5Qzs7QU1qeFBBO0VtQndDUSxhaEJsQlU7RUQrRVYsMEJDckNpQztFRDBDN0IsZ0VBcUVrQztBUndtUDlDOztBTXZ4UEE7RUVxR1EsMEJDdkN1QjtFRDRDbkIsK0RBcUVrQztBUjZtUDlDOztBVTdpUFE7RUFFUSxrQkQ3TThCO0FUNHZQOUM7O0FVemlQUTtFQUVRLGlCRHJOOEI7QVRnd1A5Qzs7QU1weVBBO0VtQnVEUSxtQmhCakNVO0VnQmtDVixrQmhCbENVO0VnQm1DVixpQmhCbkNVO0FUb3hQbEI7O0FNMXlQQTtFbUI2RFEsZWhCdkNVO0FUd3hQbEI7O0FNOXlQQTtFbUJpRVEsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtBekJpdlB6Qjs7QU1uelBBO0VtQjJFUSxnQmhCckRVO0VnQnNEVixpQmhCdERVO0FUa3lQbEI7O0FNeHpQQTtFbUJnRlEsa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixTQUFTO0VBQ1QsT0FBTztFQUNQLFFBQVE7RUFDUixnQkFBZ0I7RWpCZ0JoQiwwQkN2Q3VCO0VENENuQiwrREFxRWtDO0VpQnhGdEMsZWhCakVVO0FUOHlQbEI7O0FNcDBQQTtFRXFHUSxnQkN2R1k7RUQ0R1IsNENBcUVrQztFRWxGMUMsa0JLcENnQjtFTHFDaEIsK0dEeENnSDtFQ3lDaEgsWUR6RWM7RUQrRVYsZ0JDdkdZO0VENEdSLDRDQXFFa0M7RWlCakZ0QyxhQUFxQztFQUNyQyxVQUFVO0F6Qml2UGxCOztBTWgxUEE7RW1CbUdRLGVBQWU7RUFDZixpQkFBb0M7RUFDcEMsa0JBQXFDO0F6Qml2UDdDOztBTXQxUEE7RUVxR1Esc0JDakdjO0VEc0dWLCtEQXFFa0M7QVI0cVA5Qzs7QU0zMVBBO0VvQlBRLGtCWGdFWTtFUDRDWixnQkN2R1k7RUQ0R1IsNENBcUVrQztBUmtyUDlDOztBTWoyUEE7RW9CRlEsWUFBWTtFQUNaLGlCQUFpQjtFQUNqQixlQUFlO0VBQ2YsV0FBVztFQUNYLFlBQVk7RUFDWixhQUFhO0VBQ2IsZUFBZTtFQUNmLGtCWG9EWTtFUDRDWiwwQkNyQ2lDO0VEMEM3QixnRUFxRWtDO0FSK3JQOUM7O0FNOTJQQTtFb0JTWSxVQUFVO0ExQnkyUHRCOztBTWwzUEE7RW9CY1EsaUJBQWlCO0VsQnVGakIscUJDL0ZpQjtFRG9HYiwrRUFxRWtDO0VrQi9KdEMsa0JBQWtCO0VBQ2xCLFdBQVc7QTFCeTJQbkI7O0FNMTNQQTs7RW9Cc0JZLGlCQUFpQjtFQUNqQixrQkFBa0I7QTFCeTJQOUI7O0FVanBQUTtFQUVRLGNnQnROaUM7QTFCeTJQakQ7O0FVN29QUTtFQUVRLGVnQjlOaUM7QTFCNjJQakQ7O0FVenBQUTtFQUVRLGVnQmxOa0M7QTFCNjJQbEQ7O0FVcnBQUTtFQUVRLGNnQjFOa0M7QTFCaTNQbEQ7O0FNaDVQQTtFRXFHUSxxQlJ6RmM7RVE4RlYsaUdBcUVrQztBUnN1UDlDOztBTXI1UEE7RUVxR1EsK0JDdkN1QjtFRDRDbkIsMkRBcUVrQztFa0J0SXRDLFVBQVU7RUFDVixXQUFXO0VBQ1gsa0JBQWtCO0ExQmszUDFCOztBTTc1UEE7RUVxR1EseUJSekZjO0VROEZWLG9HQXFFa0M7QVJtdlA5Qzs7QU1sNlBBO0VvQm1EUSxnQmpCN0JVO0FUZzVQbEI7O0FNdDZQQTtFb0I2RFEsWWpCdkNVO0FUbzVQbEI7O0FNMTZQQTtFSXdESSxrQkZpUG1CO0VFaFBuQixtQkFBK0Y7QVZzM1BuRzs7QU0vNlBBO0VJNERRLG1CRjZPZTtBUjBvUHZCOztBTW43UEE7RW9CcUVRLGlCQUFvQztFQUNwQyxZakJoRFU7QVRrNlBsQjs7QU14N1BBO0VvQjBFUSxhQUE2QjtBMUJrM1ByQzs7QU01N1BBO0VJd0RJLGtCRmlQbUI7RUVoUG5CLG1CQUErRjtBVnc0UG5HOztBTWo4UEE7RUk0RFEsbUJGNk9lO0FSNHBQdkI7O0FNcjhQQTtFb0JrRlEsWWpCNURVO0FUbTdQbEI7O0FNejhQQTs7RW9CdUZRLGFBQWE7RUFDYixTQUFTO0ExQnUzUGpCOztBTS84UEE7RUVxR1EseUJDckdnQjtFRDBHWixtRUFxRWtDO0FScXlQOUM7O0FVcnVQUTtFQUVRLHNCZ0JySnFDO0VsQlM3QywwQkMvRmlCO0VEb0diLGtEQXFFa0M7QVIyeVA5Qzs7QVVudVBRO0VBRVEsdUJnQjdKcUM7RWxCUzdDLDJCQy9GaUI7RURvR2IsbURBcUVrQztBUml6UDlDOztBTWgrUEE7RXFCRFEsWUFBWTtFQUNaLGtCQUFrQjtBM0JxK1AxQjs7QU1yK1BBO0VxQklRLGtCQUFrQjtBM0JxK1AxQjs7QU16K1BBO0VxQlFRLGtCQUFrQjtBM0JxK1AxQjs7QU03K1BBO0VJeUhJLDZCQUE0QztFQUM1QyxlRGxHZTtFQ21HZixpQkRuR2U7RUNvR2Ysa0JBQWtCO0VBQ2xCLG1CQUFtQjtFQUNuQixvQkFBb0I7RUFDcEIsb0JBQW9CO0VBRXBCLHNDQUFBO0VBQ0EsbUNBQW1DO0VBQ25DLGtDQUFrQztFRzBZbEMsV0pyZmU7RUlzZmYsWUp0ZmU7RUQ2RVgsNkJDZnVCO0VEb0JuQixrRUFxRWtDO0VLeVcxQyxrQkV4ZjJCO0VGeWYzQixxQkFBcUI7RUFDckIsc0JBQXNCO0VBQ3RCLFVBQVU7QWJ1K09kOztBTWxnUUE7RU9paEJRLHdCQUF3QjtFQUN4QixVQUFVO0VBQ1YsV0FBVztFQUNYLFlBQVk7QWJxL09wQjs7QU16Z1FBO0VPOGhCUSxhQUFhO0VBQ2IsNkNFemVrRDtBZnc5UDFEOztBTTlnUUE7RU9taUJRLFlBQVk7QWIrK09wQjs7QU1saFFBO0VPZ2pCUSxnQkYvaUJtRDtFSG9HbkQsY1IzRlk7RVFnR1Isa0RBcUVrQztFS21ZdEMsa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixPQUFPO0VBQ1Asb0JBQW9CO0FidStPNUI7O0FNNWhRQTtFT3lqQlEsZ0JGMWpCaUQ7RUhzR2pELGNSekZjO0VROEZWLGdEQXFFa0M7RUs0WXRDLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sT0FBTztFQUNQLG9CQUFvQjtBYncrTzVCOztBTXRpUUE7RU9ra0JRLGdCRmxrQnVEO0VIcUd2RCxjUjNGWTtFUWdHUixzREFxRWtDO0VLcVp0QyxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLE9BQU87RUFDUCxvQkFBb0I7QWJ5K081Qjs7QU1oalFBO0VPcW1CSSxzQkFBc0I7RUFDdEIsV0w3VG1CO0VLOFRuQixZSi9rQmU7RUQ2RVgseUJSM0ZZO0VRZ0dSLDJHQXFFa0M7RUswYjFDLGtCQUFpRDtFQUNqRCxrQkFBa0I7RUFDbEIsVUFBVTtFQUNWLGlCQUEyQjtFTHZnQnZCLHFCUjNGWTtFUWdHUixtR0FxRWtDO0FSKzRQOUM7O0FNOWpRQTtFT2duQlEsVUFBVTtFQUNWLFlBQVk7RUFDWixXQUFXO0FiazlPbkI7O0FNcGtRQTtFT3NuQlEsYUFBYTtFQUNiLDZDRWprQmtEO0FmbWhRMUQ7O0FNemtRQTtFTzJuQlEsWUFBWTtBYms5T3BCOztBTTdrUUE7RUVxR1EseUJSekZjO0VROEZWLHdHQXFFa0M7RUExRXRDLHFCUnpGYztFUThGVixnR0FxRWtDO0FScTZQOUM7O0FNcGxRQTtFT29vQlEsWUFBWTtFQUNaLGtCQUFrQjtFQUNsQixTRzFlMkI7RUgyZTNCLFVHM2UyQjtFSDRlM0IsY0FBYztFQUNkLHNCQUFzQjtFQUN0QixZSmxuQlc7RUltbkJYLFdKbm5CVztFRDZFWCxzQkN2R1k7RUQ0R1IsbUdBcUVrQztFSzhkdEMsa0JBQWlEO0VBQ2pELHNCQUFzQjtFQUN0QixpQkFBMkI7RUwxaUIzQixxQlIzRlk7RVFnR1IsZ0pBcUVrQztBUnU3UDlDOztBTXRtUUE7RU9vcEJRLHVCQUFxRDtFTC9pQnJELHFCUnpGYztFUThGVixnR0FxRWtDO0FSNjdQOUM7O0FNNW1RQTtFSXlISSw2QkFBNEM7RUFDNUMsZURsR2U7RUNtR2YsaUJEbkdlO0VDb0dmLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsb0JBQW9CO0VBQ3BCLG9CQUFvQjtFQUVwQixzQ0FBQTtFQUNBLG1DQUFtQztFQUNuQyxrQ0FBa0M7RUcwWWxDLFdKcmZlO0VJc2ZmLFlKdGZlO0VENkVYLDZCQ2Z1QjtFRG9CbkIsa0VBcUVrQztFS3lXMUMsa0JFeGYyQjtFRnlmM0IscUJBQXFCO0VBQ3JCLHNCQUFzQjtFQUN0QixVQUFVO0VBbURWLG1CSnRqQmU7QVQwbVFuQjs7QU1sb1FBO0VPaWhCUSx3QkFBd0I7RUFDeEIsVUFBVTtFQUNWLFdBQVc7RUFDWCxZQUFZO0FicW5QcEI7O0FNem9RQTtFTzhoQlEsYUFBYTtFQUNiLDZDRXpla0Q7QWZ3bFExRDs7QU05b1FBO0VPbWlCUSxZQUFZO0FiK21QcEI7O0FNbHBRQTtFT2lsQlEsZ0JGbGpCaUQ7RUhzRWpELGNSM0ZZO0VRZ0dSLGtEQXFFa0M7RUtvYXRDLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sT0FBTztFQUNQLG9CQUFvQjtBYnNrUDVCOztBTTVwUUE7RU8wbEJRLGdCRjFqQmdEO0VIcUVoRCxjUnpGYztFUThGVixnREFxRWtDO0VLNmF0QyxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLE9BQU87RUFDUCxvQkFBb0I7QWJ1a1A1Qjs7QU10cVFBO0VPeXRCSSx3QkFBd0I7RUFDeEIsV0FBVztFQUNYLFlBQVk7RUFDWixnQkFBZ0I7RUFDaEIsaUJBQWlCO0FiaTlPckI7O0FNOXFRQTtFTzhwQlEsU0FBUztFQUNULFVBQVU7RUFDVixXQUFXO0VBQ1gsV0FBVztFTDVqQlgseUJDL0ZpQjtFRG9HYixpREFxRWtDO0VLb2Z0QyxrQkozbUJZO0VJNG1CWixrQkVwb0J1QjtBZnlwUS9COztBTXpyUUE7RU84cEJRLFNBQVM7RUFDVCxVQUFVO0VBQ1YsV0FBVztFQUNYLFdBQVc7RUw1akJYLHlCQy9GaUI7RURvR2IsaURBcUVrQztFS29mdEMsa0JKM21CWTtFSTRtQlosa0JFcG9CdUI7QWZvcVEvQjs7QU1wc1FBO0VPOHBCUSxTQUFTO0VBQ1QsVUFBVTtFQUNWLFdBQVc7RUFDWCxXQUFXO0VMNWpCWCx5QkMvRmlCO0VEb0diLGlEQXFFa0M7RUtvZnRDLGtCSjNtQlk7RUk0bUJaLGtCRXBvQnVCO0VGeXNCdkIsa0JBQWtCO0VBQ2xCLHVCQUF1QjtBYnUrTy9COztBTWp0UUE7RU80ckJRLFNBQVM7RUFDVCxVQUFVO0VBQ1Ysd0JBQXdCO0VBQ3hCLFdKdnFCVztFSXdxQlgsWUp4cUJXO0VENkVYLHNCQ3ZHWTtFRDRHUixrREFxRWtDO0VLbWhCdEMsaUJBQWlCO0VMN2xCakIscUJSM0ZZO0VRZ0dSLHlEQXFFa0M7RUtxaEJ0QyxtQko1cUJXO0VJdXRCWCw2QkFBeUQ7QWJpL09qRTs7QU1odVFBO0VPNHJCUSxTQUFTO0VBQ1QsVUFBVTtFQUNWLHdCQUF3QjtFQUN4QixXSnZxQlc7RUl3cUJYLFlKeHFCVztFRDZFWCxzQkN2R1k7RUQ0R1Isa0RBcUVrQztFS21oQnRDLGlCQUFpQjtFTDdsQmpCLHFCUjNGWTtFUWdHUix5REFxRWtDO0VLcWhCdEMsbUJKNXFCVztBVHN0UW5COztBTTl1UUE7RU80ckJRLFNBQVM7RUFDVCxVQUFVO0VBQ1Ysd0JBQXdCO0VBQ3hCLFdKdnFCVztFSXdxQlgsWUp4cUJXO0VENkVYLHNCQ3ZHWTtFRDRHUixrREFxRWtDO0VLbWhCdEMsaUJBQWlCO0VMN2xCakIscUJSM0ZZO0VRZ0dSLHlEQXFFa0M7RUtxaEJ0QyxtQko1cUJXO0FUb3VRbkI7O0FNNXZRQTtFTzB2QlEsYUFBYTtBYnNnUHJCOztBTWh3UUE7RU95c0JJLDZDRW5wQnNEO0VQK0NsRCxxQlJ6RmM7RVE4RlYsdURBcUVrQztBUnVsUTlDOztBTXR3UUE7RU95c0JJLDZDRW5wQnNEO0VQK0NsRCxxQlJ6RmM7RVE4RlYsdURBcUVrQztBUjZsUTlDOztBTTV3UUE7RU95c0JJLDZDRW5wQnNEO0VQK0NsRCxxQlJ6RmM7RVE4RlYsdURBcUVrQztBUm1tUTlDOztBTWx4UUE7RUVxR1EseUJDN0ZtQjtFRGtHZiwrRkFxRWtDO0FSd21ROUM7O0FNdnhRQTtFRXFHUSx5QkM3Rm1CO0VEa0dmLCtGQXFFa0M7QVI2bVE5Qzs7QU01eFFBO0VFcUdRLHlCQzdGbUI7RURrR2YsK0ZBcUVrQztBUmtuUTlDOztBTWp5UUE7RU93eUJRLFlBQVk7QWI2L09wQjs7QU1yeVFBOzs7Ozs7O0VzQk9RLGVBQWtDO0VBQ2xDLGdCQUFnQjtFcEI2RmhCLDBCQ3JDaUM7RUQwQzdCLDZEQXFFa0M7QVJtb1E5Qzs7QU1selFBO0VzQmFRLFlBQWlDO0E1Qnl5UXpDOztBTXR6UUE7O0VFcUdRLHNCT2hHNEI7RVBxR3hCLDREQXFFa0M7QVI2b1E5Qzs7QU01elFBO0VzQnNCUSxjQUFrQztBNUIweVExQzs7QU1oMFFBO0VzQjBCUSxjQUFjO0VBQ2QsaUJBQWlCO0E1QjB5UXpCOztBTXIwUUE7O0VzQitCUSxpQ0FBaUM7QTVCMnlRekM7O0FNMTBRQTtFc0JtQ1EsU0FBUztBNUIyeVFqQjs7QU05MFFBO0VzQnVDUSxZbkJqQlU7RW1Ca0JWLFlBQXNEO0VwQjZEdEQsZ0NBSGlDO0VBUTdCLHdEQVI2QjtBUm12UXpDOztBTXIxUUE7RUVxR1EsZ0NBSGlDO0VBUTdCLHNHQVI2QjtBUnd2UXpDOztBTTExUUE7RUVxR1EsMEJDckNpQztFRDBDN0IsZ0VBcUVrQztBUmdyUTlDOztBTS8xUUE7RXNCdURRLHdCQUF3QjtFcEI4Q3hCLDRCQy9GaUI7RURvR2Isb0RBcUVrQztFb0J0SHRDLGdCbkJuQ1U7QVRnMVFsQjs7QU10MlFBO0VzQjREWSxtQkFBbUI7QTVCOHlRL0I7O0FNMTJRQTtFc0JpRVEsY0FBYztBNUI2eVF0Qjs7QU05MlFBO0VzQnFFUSxlQUFrQztFQUNsQyxnQkFBZ0I7RXBCK0JoQiwwQkN2Q3VCO0VENENuQiwrREFxRWtDO0FSc3NROUM7O0FVdG9RUTtFQUVRLGtCa0J2S3VEO0VsQnVLdkQsa0JEM05FO0FUbzJRbEI7O0FVbm9RUTtFQUVRLG1Ca0IvS3VEO0VsQitLdkQsaUJEbk9FO0FUeTJRbEI7O0FNLzNRQTtFc0JnRlEsaUJBQWlCO0VwQnFCakIscUJDL0ZpQjtFRG9HYiw2Q0FxRWtDO0FSc3RROUM7O0FNcjRRQTtFc0JxRlEscUJBQXFCO0VwQmdCckIseUJDL0ZpQjtFRG9HYixpREFxRWtDO0FSNHRROUM7O0FNMzRRQTtFc0IwRlEsd0JBQXdCO0VwQld4Qiw0QkMvRmlCO0VEb0diLG9EQXFFa0M7QVJrdVE5Qzs7QU1qNVFBO0VzQitGUSxZN0JqQ1k7QUN1MVFwQjs7QU1yNVFBO0VzQm1HUSxnQm5CN0VVO0FUbTRRbEI7O0FNejVRQTtFc0J1R1EsZ0JuQmpGVTtBVHU0UWxCOztBTTc1UUE7O0VzQjRHUSxtQkFBeUM7QTVCc3pRakQ7O0FNbDZRQTtFc0JpSFksMENiNUd3QjtBZmk2UXBDOztBTXQ2UUE7Ozs7Ozs7RXNCc0hRLHVCQUF1QjtFcEJqQnZCLDBCQ3ZDdUI7RUQ0Q25CLHNEQXFFa0M7RW9CdkR0QyxvQkFBb0I7RUFDcEIsa0JBQWtCO0VBQ2xCLFlBQStCO0VBQy9CLG1CbkJyR1U7RW1CdUdWLGVBQWU7RUFDZix3QkFBd0I7RXBCekJ4Qiw0QkMvRmlCO0VEb0diLG9EQXFFa0M7QVIyd1E5Qzs7QU0xN1FBOzs7Ozs7O0VzQmtJWSx3QkFBd0I7RXBCN0I1Qiw0QkM3Rm1CO0VEa0dmLDhEQXFFa0M7RW9CM0NsQyxhQUFhO0VBQ2IsZ0JBQWdCO0E1Qm0wUTVCOztBTXg4UUE7RUVxR1EsMEJDdkN1QjtFRDRDbkIsK0RBcUVrQztBUm95UTlDOztBTW45UUE7RUVxR1EsMEJDdkN1QjtFRDRDbkIsK0RBcUVrQztBUm95UTlDOztBTW45UUE7Ozs7Ozs7RUVxR1EsMEJDdkN1QjtFRDRDbkIsK0RBcUVrQztBUm95UTlDOztBTW45UUE7Ozs7Ozs7RXNCNklZLHdCQUF3QjtFcEJ4QzVCLDRCQy9GaUI7RURvR2Isb0RBcUVrQztBUmd6UTlDOztBTS85UUE7RXNCbUpRLHdCQUFnQjtLQUFoQixxQkFBZ0I7VUFBaEIsZ0JBQWdCO0VBQ2hCLDZCQUE2QjtFQUM3QixTQUFTO0VwQmhEVCxjQzdGbUI7RURrR2YsZ0RBcUVrQztFb0J4QnRDLG9CQUFvQjtFQUNwQixrQkFBa0I7RUFDbEIsU0FBUztFQUNULFVBQVU7RUFDVix5QkFBeUI7QTVCaTFRakM7O0FNNStRQTtFRXFHUSwwQkN2Q3VCO0VENENuQiwrREFxRWtDO0VBMUV0Qyw2QkN6QndDO0VEOEJwQyx3RUFxRWtDO0VBMUV0QyxnQ01HdUI7RU5FbkIsdUVBcUVrQztBUnMwUTlDOztBTXIvUUE7RXNCcUtRLGVBQWtDO0VBQ2xDLGdCQUFnQjtBNUJvMVF4Qjs7QU0xL1FBO0VzQjBLUSxZQUErQjtBNUJvMVF2Qzs7QU05L1FBO0VzQjhLUSxZQUErQjtBNUJvMVF2Qzs7QU1sZ1JBO0VzQm1MWSxpQkFBaUI7QTVCbTFRN0I7O0FNdGdSQTtFc0J3TFEsaUJBQWlCO0E1QmsxUXpCOztBTTFnUkE7RXNCNExRLDZCbkJwTG1CO0FUc2dSM0I7O0FBMy9RQTtFQUNFLHlCQUF5QjtBQTgvUTNCOztBQ3I0UEE7RURybkJFLG1CQUFtQjtFQUNuQiw2QkFBNkI7RUFDN0IsYUFBYTtFQUNiLDRCQUE0QjtFQUM1Qix5QkFBeUI7RUFDekIsNkJBQTZCO0FBOC9RL0I7O0FDOTNQQTtFRDVuQkUsYUFBYTtBQTgvUWY7O0FDM3FRQTtFRC9VRSw0QkFBNEI7RUFDNUIsMkJBQTJCO0FBOC9RN0I7O0FBMy9RQTtFQUNFLG1CQUFtQjtFQUNuQixhQUFhO0FBOC9RZjs7QUMzcFFBO0VEL1ZFLGNBQWM7RUFDZCxlQUFlO0VBQ2YsZ0JBQWdCO0FBOC9RbEI7O0FDMW5RQTtFRGhZRSwwQkFBMEI7RUFDMUIsaUJBQWlCO0VBQ2pCLGdCQUFnQjtBQTgvUWxCOztBYTcyUXdCO0ViN0l0QiwwQkFBMEI7RUFDMUIsZUFBZTtFQUNmLGdCQUFnQjtBQTgvUWxCOztBa0IvaVIyQjtFbEJxRHpCLHVCQUF1QjtBQTgvUXpCOztBQTMvUUE7RUFDRSxpQkFBaUI7RUFDakIsaUJBQWlCO0VBQ2pCLFdBQVc7QUE4L1FiOztBQTMvUUE7RUFHSSxhQUFhO0VBQ2IsdUJBQXVCO0FBNC9RM0I7O0FBaGdSQTtFQU9NLGVBQWU7QUE2L1FyQjs7QUFwZ1JBO0VBWUksY0FBYztFQUNkLGtCQUFrQjtBQTQvUXRCOztBQXgvUUE7RUFDRSxtQkFBbUI7RUFDbkIsYUFBYTtBQTIvUWY7O0FDenVRQTtFRDlRRSxnQkFBZ0I7RUFDaEIsc0JBQXNCO0FBMi9ReEI7O0FBNy9RQTtFQUtJLGlCQUFpQjtBQTQvUXJCOztBQXgvUUE7RUFDRSxnQkFBZ0I7RUFDaEIsV0FBVztBQTIvUWI7O0FBeC9RQTtFQUNFLHNCQUFzQjtBQTIvUXhCOztBQ3R2UUE7RURqUUUsaUJBQWlCO0FBMi9RbkI7O0FBei9RRTtFQUNFLGdCQUFnQjtBQTQvUXBCOztBQTcvUUc7RUFJRyxtQkFBbUI7RUFDbkIsYUFBYTtBQTYvUW5CIiwiZmlsZSI6ImFnLWdyaWQtb3ZlcnJpZGVzLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIkYmFzZS1mb250LWZhbWlseTogJ1JvYm90bycsICdIZWx2ZXRpY2EgTmV1ZScsICdIZWx2ZXRpY2EnLCAnQXJpYWwnLCBzYW5zLXNlcmlmO1xuJGJhc2UtZm9udC1zaXplLXdlYjogMTRweDtcblxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKkFQUExJQ0FUSU9OIENPTE9SUyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4vLyBCUkFORCBDT0xPUlNcbiRicmFuZC1jb2xvci0xOiAjQ0MwMDAwO1xuJGJyYW5kLWNvbG9yLTI6ICMxQzFFMUM7XG4kYnJhbmQtY29sb3ItMzogI0ZGRkZGRjtcbiRicmFuZC1jb2xvci00OiAjMzMzMzMzO1xuJGJyYW5kLWNvbG9yLTU6ICM4NTg1ODU7XG4kYnJhbmQtY29sb3ItNjogI0RGREZERjtcblxuLy8gRk9VTkRBVElPTkFMIFBBTEVUVEVcbiRmb3VuZGF0aW9uYWwtY29sb3ItMTogI0ZBRkFGQTtcbiRmb3VuZGF0aW9uYWwtY29sb3ItMjogI0Y1RjVGNTtcbiRmb3VuZGF0aW9uYWwtY29sb3ItMzogI0VFRUVFRTtcbiRmb3VuZGF0aW9uYWwtY29sb3ItNDogI0UwRTBFMDtcbiRmb3VuZGF0aW9uYWwtY29sb3ItNTogI0JEQkRCRDtcbiRmb3VuZGF0aW9uYWwtY29sb3ItNjogIzlFOUU5RTtcbiRmb3VuZGF0aW9uYWwtY29sb3ItNzogIzc1NzU3NTtcbiRmb3VuZGF0aW9uYWwtY29sb3ItODogIzYxNjE2MTtcbiRmb3VuZGF0aW9uYWwtY29sb3ItOTogIzQyNDI0MjtcbiRmb3VuZGF0aW9uYWwtY29sb3ItMTA6ICMyMTIxMjE7XG5cbi8vIEFDVElPTiBDT0xPUlNcbiRhY3Rpb24tY29sb3ItMTogIzAwOTFFQTtcbiRhY3Rpb24tY29sb3ItMjogIzgwRDhGRjtcblxuLy8gQUNDRU5UIENPTE9SU1xuJGFjY2VudC1jb2xvci0xOiAjMDBDODUzO1xuJGFjY2VudC1jb2xvci0yOiAjNjRERDE3O1xuJGFjY2VudC1jb2xvci0zOiAjQUVFQTAwO1xuJGFjY2VudC1jb2xvci00OiAjMDA5MUVBO1xuJGFjY2VudC1jb2xvci01OiAjMDBCOEQ0O1xuJGFjY2VudC1jb2xvci02OiAjMDBCRkE2O1xuJGFjY2VudC1jb2xvci03OiAjNjIwMEVBO1xuJGFjY2VudC1jb2xvci04OiAjMzA0RkZFO1xuJGFjY2VudC1jb2xvci05OiAjMjk2MkZGO1xuJGFjY2VudC1jb2xvci0xMDogI0Q1MDAwMDtcbiRhY2NlbnQtY29sb3ItMTE6ICNDNTExNjI7XG4kYWNjZW50LWNvbG9yLTEyOiAjQUEwMEZGO1xuJGFjY2VudC1jb2xvci0xMzogI0REMkMwMDtcbiRhY2NlbnQtY29sb3ItMTQ6ICNGRjZEMDA7XG4kYWNjZW50LWNvbG9yLTE1OiAjRkZENjAwO1xuXG4kY29sb3ItMTc6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG5cbiRoaWdobGlnaHQtY29sb3I6ICNGRkZCRUM7XG5cbi8vIElOVEVOVElPTkFMIENPTE9SXG4kY29sb3ItZXJyb3I6ICRhY2NlbnQtY29sb3ItMTA7XG4kYXBwLWJhY2tncm91bmQ6ICRmb3VuZGF0aW9uYWwtY29sb3ItNDtcbiRuYXYtYmFja2dyb3VuZDogJGZvdW5kYXRpb25hbC1jb2xvci0zO1xuXG4vLyBMQVlPVVRcbiRjb250ZW50LXBhbmVsLXZlcnRpY2FsLXBhZGRpbmc6IDIwcHg7XG4kY29udGVudC1wYW5lbC1ob3Jpem9udGFsLXBhZGRpbmc6IDIwcHg7XG4kY29udGVudC1wYW5lbC1zcGFjaW5nOiA3cHg7XG4kZm9ybS1pdGVtLXNwYWNpbmc6IDE2cHg7XG5cbi8vIFNDUkVFTiBTSVpFUyBmb3IgbWVkaWEgcXVlcmllc1xuJGxhcHRvcC13aWR0aDogMTIwMHB4O1xuJHRhYmxldC1sYW5kc2NhcGUtd2lkdGg6IDExMDBweDtcbiR0YWJsZXQtcG9ydHJhaXQtd2lkdGg6IDgwMHB4O1xuJHBob25lLXBvcnRyYWl0LXdpZHRoOiA2MDBweDtcblxuLy8gQ09OVEVOVFxuJGNvbnRlbnQtd2lkdGg6IDEyMzRweDtcblxuLy8gTEFZT1VUXG4kaGVhZGVyLWhlaWdodDogMjBweDtcbiR0b29sYmFyLWhlaWdodDogNTZweDtcbiRmb290ZXItaGVpZ2h0OiA0MHB4O1xuJGd1dHRlci1zaXplOiAyOHB4O1xuJGRpYWxvZy13aWR0aDogNDUwcHg7XG4kZGlhbG9nLWhlaWdodDogMTAwcHg7XG5cblxuLy8gPT09PSBMYXlvdXQgPT09PVxuJHhwby1jb250ZW50U3BhY2luZzogMTZweDtcblxuLy8gKiogICBYUE8gQ29yZSBVSSBpbXBvcnRzICAgKipcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuLy8gPT09PSBDb2xvcnMgPT09PVxuJHhwby1ibHVlLS0xMDA6ICNFOEY1RkU7XG4keHBvLWJsdWUtLTE1MDogI0UzRjJGRDtcbiR4cG8tYmx1ZS0tMzAwOiAjMEQ5NEY0O1xuJHhwby1ibHVlLS0zNTA6ICMyMTk2RjM7XG4keHBvLWJsdWUtLTQwMDogIzA4NjhBQztcbiR4cG8tYmx1ZS0tNjUwOiAjMDA4N0VBO1xuJHhwby1ibHVlLS03MDA6ICMwMDkxRUE7XG4keHBvLWJsdWUtLTgwMDogIzE5NzZEMjtcbiR4cG8tYmx1ZS0tODUwOiAjMEQ0N0ExO1xuJHhwby1ibHVlLS05MDA6ICMwNTNDNjM7XG5cbiR4cG8teWVsbG93LS0xMDA6ICNGRkY4RTU7XG4keHBvLXllbGxvdy0tMzAwOiAjRkZDRjREO1xuJHhwby15ZWxsb3ctLTQwMDogI0ZGQkEwMDtcbiR4cG8teWVsbG93LS03MDA6ICNGRkQ2MDA7XG4keHBvLXllbGxvdy0tOTAwOiAjNEQzODAwO1xuXG4keHBvLXJlZC0tMTAwOiAjRkZFRUVFO1xuJHhwby1yZWQtLTMwMDogI0ZGMjIyMjtcbiR4cG8tcmVkLS00MDA6ICNENTAwMDA7XG4keHBvLXJlZC0tNzAwOiAjRDMyRjJGO1xuJHhwby1yZWQtLTkwMDogIzU1MDAwMDtcblxuJHhwby1ncmVlbi0tMTAwOiAjQzhGRkRGO1xuJHhwby1ncmVlbi0tMzAwOiAjMUNFODU1O1xuJHhwby1ncmVlbi0tNDAwOiAjMTFBNjNCO1xuJHhwby1ncmVlbi0tNzAwOiAjMDBDODUzO1xuJHhwby1ncmVlbi0tOTAwOiAjMEE2MTIyO1xuXG4keHBvLWdyZXktLTUwOiAjRkJGQkZCO1xuJHhwby1ncmV5LS0xMDA6ICNGM0YzRjM7XG4keHBvLWdyZXktLTIwMDogI0U2RTZFNjtcbiR4cG8tZ3JleS0tODA6ICNGNkY2RjY7XG4keHBvLWdyZXktLTMwMDogI0Q4RDhEODtcbiR4cG8tZ3JleS0tMzUwOiAjQkRCREJEO1xuJHhwby1ncmV5LS00MDA6ICM5QjlCOUI7XG4keHBvLWdyZXktLTYwMDogIzc1NzU3NTtcbiR4cG8tZ3JleS0tNzAwOiAjNkY2RjZGO1xuJHhwby1ncmV5LS03NTA6ICM1NzU3NTc7XG4keHBvLWdyZXktLTkwMDogIzRBNEE0QTtcbiR4cG8tZ3JleS0tOTMwOiAjNDI0MjQyO1xuJHhwby1ncmV5LS05NTA6ICMzMzMzMzM7XG4keHBvLWdyZXktLTEwMDA6ICMxNzE3MTc7XG4keHBvLWdyZXktLTExMDA6ICMyMTIxMjE7XG5cbiR4cG8tb3JhbmdlLS0xMDA6ICNGRkRGQ0E7XG4keHBvLW9yYW5nZS0tMzAwOiAjRkY5OTU3O1xuJHhwby1vcmFuZ2UtLTQwMDogI0ZGNjQwMDtcbiR4cG8tb3JhbmdlLS05MDA6ICM4QjM3MDA7XG5cbiR4cG8tcHVycGxlLS03MDA6ICM2MjAwRUE7XG5cbiR4cG8tcGluay0tNzAwOiAjQzUxMTYyO1xuXG4keHBvLWJsYWNrOiAjMDAwO1xuJHhwby13aGl0ZTogI0ZGRjtcblxuLy8gPT09PSBDb2xvcnMgQXBwbGllZCA9PT09XG4keHBvLWZvbnRDb2xvci0tcHJpbWFyeTogJHhwby1ncmV5LS05MDA7XG4keHBvLWZvbnRDb2xvci0tbGluazogJHhwby1ibHVlLS00MDA7XG4vLyB0aGlzIG9uZSBzaG91bGQgYmUgbW92ZWQgdG8gYXBwXG4keHBvLWJhY2tncm91bmRDb2xvci0tYm9keTogJHhwby1ncmV5LS0xMDA7XG5cbi8vID09PT0gU3RhdHVzIENvbG9ycyA9PT09XG4keHBvLWNvbG9yLS1lcnJvcjogJHhwby1yZWQtLTQwMDtcbiR4cG8tY29sb3ItLXN1Y2Nlc3M6ICR4cG8tZ3JlZW4tLTQwMDtcbiR4cG8tY29sb3ItLXdhcm46ICR4cG8teWVsbG93LS00MDA7XG4keHBvLWNvbG9yLS1pbmZvOiAkeHBvLWdyZXktLTkwMDtcblxuLy8gPT09PSBUeXBvZ3JhcGh5ID09PT1cbi8vIFB1dHRpbmcgc2l6ZXMgaW4gbWFwcyB0byBhbGxvdyBkeW5hbWljIHNpemluZyBmb3IgZXh0ZXJuYWxcbi8vIFJvb3QgZm9udC1zaXplKHMpIGFsd2F5cyBpbiBweFxuJHhwby1mb250U2l6ZS0tcm9vdDogMTRweDtcbiR4cG8tZm9udFNpemUtLXNtYWxsOiAwLjg3NXJlbTsgLy8xMnB4XG4keHBvLWZvbnRTaXplLS1tZWRpdW06IDFyZW07IC8vMTRweFxuJHhwby1mb250U2l6ZS0tbGFyZ2U6IDEuMTQzcmVtOyAvLzE2cHhcbiR4cG8tZm9udFNpemUtLWV4dHJhTGFyZ2U6IDEuMjVyZW07IC8vMjBweFxuXG4keHBvLWhlYWRlci1mb250U2l6ZS0tc21hbGw6IDEuMTQzcmVtOyAvLzE2cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1tZWRpdW06IDEuMjg1cmVtOyAvLzE4cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1sYXJnZTogMS40MjhyZW07IC8vMjBweFxuXG4keHBvLWZvbnRGYW1pbHktLXByaW1hcnk6ICdSb2JvdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiR4cG8tZm9udEZhbWlseS0tcm9ib3RvV2lkZUJsYWNrOiAnUm9ib3RvIFdpZGUgQmxhY2snLCAnUm9ib3RvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XG4keHBvLWZvbnRGYW1pbHktLXJvYm90b0JsYWNrOiAnUm9ib3RvLUJsYWNrJywgJ1JvYm90byBCbGFjaycsICdSb2JvdG8nLCBzYW5zLXNlcmlmO1xuXG4keHBvLWZvbnRXZWlnaHQtLWxpZ2h0OiAzMDA7XG4keHBvLWZvbnRXZWlnaHQtLW5vcm1hbDogNDAwO1xuJHhwby1mb250V2VpZ2h0LS1tZWRpdW06IDUwMDsgLy8gREVQUkVDQVRFRCB8IGRvIG5vdCBkZWxldGUgc2luY2UgaXQgaXMgc3RpbGwgYmVpbmcgdXNlZCBpbiBzb21lIHByb2plY3RzXG4keHBvLWZvbnRXZWlnaHQtLWJvbGQ6IDUwMDtcbiR4cG8tZm9udFdlaWdodC0tZXh0cmFCb2xkOiA2MDA7XG5cbiR4cG8tbGluZUhlaWdodC0tYmFzZTogMjRweDsgIC8vIGZvciBtZWRpdW0gYW5kIGxhcmdlIGZvbnQgc2l6ZVxuJHhwby1saW5lSGVpZ2h0LS1zbWFsbDogMTZweDsgLy8gZm9yIHNtYWxsIGZvbnQgc2l6ZVxuJHhwby1saW5lSGVpZ2h0LS1tZWRpdW06IDE4cHg7IC8vIGZvciBtZWRpdW0gZm9udCBzaXplc1xuJHhwby1oZWFkZXItbGluZUhlaWdodC0tc21hbGw6IDEuMTQzO1xuJHhwby1oZWFkZXItbGluZUhlaWdodC0tbWVkaXVtOiAxLjE0MztcbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLWxhcmdlOiAxLjI4NjtcblxuJHhwby1sZXR0ZXJTcGFjaW5nLS1iYXNlOiAwLjI1cHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1zbWFsbDogMC4yOXB4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbWVkaXVtOiAwLjMzcHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1sYXJnZTogMC4zOHB4O1xuXG4vLyA9PT09IExheW91dCA9PT09XG4keHBvLWNvbnRlbnRTcGFjaW5nOiAxNnB4O1xuXG4vLyBCcmVha3BvaW50c1xuJHhwby1icmVha3BvaW50LS1zbWFsbC14czogNDgwcHg7XG4keHBvLWJyZWFrcG9pbnQtLXNtYWxsOiA2MDBweDtcbiR4cG8tYnJlYWtwb2ludC0tbWVkaXVtOiA3NjhweDtcbiR4cG8tYnJlYWtwb2ludC0tbGFyZ2U6IDEwMjVweDtcbiR4cG8tYnJlYWtwb2ludC0teExhcmdlOiAxNDQwcHg7XG5cbiR4cG8tc2VsZWN0LWJhY2tncm91bmRDb2xvci1vcHRpb25PbkhvdmVyOiAjRTRFRkZBO1xuXG4vLyAtLSBOR1gtVUkgU3BlY2lmaWMgLS1cbiRuZ3gtZm9vdGVyLWhlaWdodDogNDBweDtcbiRuZ3gtdGFiLWhlYWRlci1oZWlnaHQ6IDQwcHg7XG4kbmd4LXRhYmxlLXJvdy1oZWlnaHQ6IDMycHg7XG5cbiRuZ3gtaWNvbi1zaXplOiAyNHB4O1xuXG4kbmd4LXRoZUJsYWNrUm9ib3RvOiA5MDA7XG5cbiRuZ3gtaW5wdXQtcm93LWhlaWdodDogMzJweDtcblxuJG5neC1pbnB1dC1ib3JkZXItd2lkdGg6IDFweDtcblxuJG5neC1pbnB1dC1jb2xvci1vbkhvdmVyOiAkeHBvLWdyZXktLTEwMDtcbiRuZ3gtaW5wdXQtY29sb3Itb25BY3RpdmUtLWRhcms6ICR4cG8tYmxhY2s7XG4kbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1saWdodDogJHhwby13aGl0ZTtcbiRuZ3gtaW5wdXQtY29sb3ItYm9yZGVyOiAkeHBvLWdyZXktLTMwMDtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWRhcms6ICR4cG8tZ3JleS0tMzUwO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlLS1saWdodGVyOiAkeHBvLXdoaXRlO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlZC0tbGlnaHQ6ICR4cG8tZ3JleS0tODA7XG5cbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQ6IDM2cHg7XG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0LS1zbWFsbDogMjhweDtcbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQtLWxhcmdlOiA0NnB4O1xuJG5neC1idXR0b24tYW5pbWF0aW9uRHVyYXRpb246IDIwMG1zO1xuXG4kbmd4LWhlYWRlci1oZWlnaHQ6IDQwcHg7XG4vLyBGb3IgdXNlIHdoZW4gYSBob3ZlciBpcyBuZWVkZWQgb24gYSB3aGl0ZSBiYWNrZ3JvdW5kLlxuJG5neC13aGl0ZUFmZm9yZGFuY2Utb25Ib3Zlci1jb2xvcjogJHhwby1ncmV5LS0xMDA7XG5cbiRuZ3gtbWVudS1iYWNrZ3JvdW5kQ29sb3I6ICNGRkY7XG5cbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1zdWNjZXNzOiAjNENBRjUwO1xuJG5neC1TbmFja2Jhci1zdGF0dXMtLWVycm9yOiAjRDMyRjJGO1xuJG5neC1TbmFja2Jhci1zdGF0dXMtLWluZm86ICMwMjg4RDE7XG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0td2FybjogI0ZCQzAyRDtcblxuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1zdWNjZXNzOiAjMzg4RTNDO1xuJG5neC1TbmFja2Jhci1kaXNtaXNzLS13YXJuOiAjRjU3RjE3O1xuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1lcnJvcjogI0I3MUMxQztcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0taW5mbzogIzAxNTc5QjtcbiRuZ3gtU25hY2tCYXItbWFyZ2luVG9wOiAzMnB4O1xuXG4vL0JhZGdlXG4keHBvLUJhZGdlLS1pbXBvcnRhbnQ6ICNDQzAwMDA7XG4kX21hdEJhZGdlQ29udGVudC1iYWNrZ3JvdW5kQ29sb3ItLW5lZ2F0aXZlIDogI0ZDRUVFQjtcbiRfbWF0QmFkZ2VDb250ZW50LWNvbG9yLS1uZWdhdGl2ZSA6ICNERDJDMDA7XG4kX21hdEJhZGdlQ29udGVudC1iYWNrZ3JvdW5kQ29sb3ItLXBvc2l0aXZlIDogI0YxRjlGMTtcblxuJG5neC1tZW51LWJhY2tncm91bmRDb2xvci1vbkhvdmVyOiAjRkNGQ0ZDO1xuLy8gVXNlZCBhcyBhIHNwYWNlciBmb3IgZmxleGVkIGNoaWxkcmVuXG4vLyBUT0RPOiBNb3ZlIGFsbCBpbnN0YW5jZXMgdG8gdGhlIHV0aWxpdGllcyBkZWZpbml0aW9uXG4uZmxleC0tc3RyZXRjaCB7XG4gIGZsZXg6IDE7XG59XG5cbi8vIC0tLSBEaWFsb2cgLS0tXG4kbmd4LWRpYWxvZy1oZWFkZXItaGVpZ2h0OiA0OHB4O1xuJG5neC1kaWFsb2ctZm9vdGVyLWhlaWdodDogNjRweDtcblxuLy8gVHJhbnNpdGlvbnNcbiR4cG8tdHJhbnNpdGlvbi0yMDA6IGFsbCAyMDBtcyBlYXNlLW91dDtcblxuLy8gLS0tIENvbnRleHR1YWwgSGVhZGVyIC0tLVxuJG5neC1Db250ZXh0dWFsSGVhZGVyLXNlcGFyYXRvci0tY29sb3I6ICR4cG8tZ3JleS0tMzUwO1xuIiwiQGltcG9ydCAnLi9hcHAtdmFyaWFibGVzLnNjc3MnO1xuXG4kaWNvbnMtcGF0aDogJ35hZy1ncmlkLWNvbW11bml0eS9zcmMvc3R5bGVzL2FnLXRoZW1lLWJhc2UvaWNvbnMvJztcbiRhZy1tYXQtaWNvbnMtcGF0aDogJ35hZy1ncmlkLWNvbW11bml0eS9zcmMvc3R5bGVzL21hdGVyaWFsLWljb25zLyc7XG5cbi8vIGNoYW5nZXMgdGhlIGJvcmRlciBjb2xvclxuLy8gJGJvcmRlci1jb2xvcjogI0ZGMDAwMDtcblxuLy8gQ2hhbmdlcyB0aGUgZm9udCBzaXplXG4vLyAkZm9udC1zaXplOiAxMnB4O1xuXG4vLyBDaGFuZ2VzIHRoZSBmb250IGZhbWlseVxuLy8gJGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgUm9ib3RvLCBPeHlnZW4tU2FucywgVWJ1bnR1LCBDYW50YXJlbGwsXG4vLyBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG5cbi8vIFJldmVydHMgdGhlIGNlbGwgaG9yaXpvbnRhbCBwYWRkaW5nIGNoYW5nZSBiZXR3ZWVuIGFnLWZyZXNoIGFuZCBhZy10aGVtZS1mcmVzaFxuLy8gJGNlbGwtaG9yaXpvbnRhbC1wYWRkaW5nOiAycHg7XG5cbi8vIGNoYW5nZXMgdGhlIGRlZmF1bHQgaWNvbiBjb2xvclxuJGljb24tY29sb3I6ICMzMDNGOUY7XG4vLyBjaGFuZ2VzIHRoZSBzZWxlY3RlZCBjaGVja2JveCBjb2xvclxuJGFjY2VudC1jb2xvcjogI0ZGQTAwMDtcblxuXG4vLyBUT0RPOiBSZXZpZXcgTWF0ZXJpYWwgdGhlbWVcbkBpbXBvcnQgXCJ+YWctZ3JpZC1jb21tdW5pdHkvc3JjL3N0eWxlcy9hZy1ncmlkLnNjc3NcIjtcbkBpbXBvcnQgJ35hZy1ncmlkLWNvbW11bml0eS9zcmMvc3R5bGVzL2FnLXRoZW1lLW1hdGVyaWFsL3Nhc3MvbGVnYWN5L2FnLXRoZW1lLW1hdGVyaWFsLXYyMi1jb21wYXQuc2Nzcyc7XG5cbi5hZy1yb3c6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjJGMkYyO1xufVxuXG4uYWctY2VsbCB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlci1zdHlsZTogbm9uZSAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nLWxlZnQ6IDhweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiA4cHggIWltcG9ydGFudDtcbn1cblxuLmFnLWNlbGwtd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5hZy1oZWFkZXItY2VsbCB7XG4gIHBhZGRpbmctbGVmdDogOHB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cblxuLmFnLWhlYWRlci1jZWxsLWxhYmVsIC5hZy1oZWFkZXItY2VsbC10ZXh0IHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLmFnLWhlYWRlci1jZWxsLXRleHQge1xuICBjb2xvcjogIzY2NjY2NjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4uYWctaGVhZGVyLXNlbGVjdC1hbGwge1xuICBtYXJnaW4tdG9wOiAycHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gIHBhZGRpbmctdG9wOiAycHg7XG59XG5cbi5hZy1jZWxsLXZhbHVlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLmFnLWNlbGwtZm9jdXMge1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmNoZWNrYm94IHtcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctdG9wOiAyM3B4O1xuICB3aWR0aDogMzVweDtcbn1cblxuLmFnLWNlbGwge1xuXG4gICYuY2hlY2tib3hfZWRpdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgIGkge1xuICAgICAgZm9udC1zaXplOiAyMXB4O1xuICAgIH1cbiAgfVxuXG4gICYuaW5kZXgge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuXG4uYWctc2VsZWN0aW9uLWNoZWNrYm94IHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLmFnLWhlYWRlci1yb3cge1xuICBwYWRkaW5nLXRvcDogNHB4O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuXG4gIC5hZy1oZWFkZXItY2VsbDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWxlZnQ6IC00cHg7XG4gIH1cbn1cblxuLmFnLWJvZHktY29udGFpbmVyIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbiNteUdyaWQgLmFnLWJvZHktY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLmFnLWhlYWRlci1jZWxsIHtcbiAgbGluZS1oZWlnaHQ6IDU2cHg7XG5cbiAgJi1sYWJlbCB7XG4gICAgbWFyZ2luLXRvcDogLTNweDtcblxuICAgIC5hZy1oZWFkZXItaWNvbiB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG4gIH1cbn1cbiIsIlxuLyoqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogR2VuZXJpYyBTdHlsZXNcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qL1xuLy8gaWYgd2UgZG9uJ3QgZG8gdGhpcywgdGhlbiB0aGUgd2lkdGggYW5kIGhlaWdodCBvZiB0aGUgZ3JpZCB3b3VsZCBiZSBpZ25vcmVkLFxuLy8gYXMgdGhlcmUgaXMgbm8gZGVmYXVsdCBkaXNwbGF5IGZvciB0aGUgZWxlbWVudCBhZy1ncmlkLWEyIChhcyBpdCdzIG5vdCBhIG5hdHVyYWwgZG9tIGVsZW1lbnQpXG5hZy1ncmlkLCBhZy1ncmlkLWFuZ3VsYXIsIGFnLWdyaWQtbmcyLCBhZy1ncmlkLXBvbHltZXIsIGFnLWdyaWQtYXVyZWxpYSAge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uYWctaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5hZy1pbnZpc2libGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG4uYWctZHJhZy1oYW5kbGUge1xuICAgIGN1cnNvcjogbW92ZTsgLy8gSUUgZmFsbGJhY2tcbiAgICBjdXJzb3I6IGdyYWI7XG59XG5cbi5hZy1jb2x1bW4tZHJvcC13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uYWctY29sdW1uLWRyb3AtaG9yaXpvbnRhbC1oYWxmLXdpZHRoIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xufVxuXG4uYWctdW5zZWxlY3RhYmxlIHtcbiAgICBAaW5jbHVkZSBhZy1zZWxlY3RhYmxlKG5vbmUpO1xufVxuXG4uYWctc2VsZWN0YWJsZSB7XG4gICAgQGluY2x1ZGUgYWctc2VsZWN0YWJsZSh0ZXh0KTtcbn1cblxuLmFnLXRhYiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uYWctdGFiLWd1YXJkIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uYWctc2VsZWN0LWFnZy1mdW5jLXBvcHVwIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5hZy1pbnB1dC13cmFwcGVyLCAuYWctcGlja2VyLWZpZWxkLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLy8gc2V0dGluZyBzaGFrZSBjbGFzcyB0byBhbiBpdGVtIHdpbGwgZ2l2ZSBpdCBhIGxlZnQgb3QgcmlnaHQgYW5pbWF0aW9uXG4vLyB1c2VkIGZvciB0aGUgJ2xlZnQnIGFuZCAncmlndGgnIGFycm93cyB3aGVuIGRyYWdnaW5nIGNvbHVtbnMgYW5kIHNjcm9sbGluZ1xuLmFnLXNoYWtlLWxlZnQtdG8tcmlnaHQge1xuICAgIGFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZTtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDAuMnM7XG4gICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgYW5pbWF0aW9uLW5hbWU6IGFnLXNoYWtlLWxlZnQtdG8tcmlnaHQ7XG59XG5cbkBrZXlmcmFtZXMgYWctc2hha2UtbGVmdC10by1yaWdodCB7XG4gICAgZnJvbSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNnB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAycHg7XG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDJweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogNnB4O1xuICAgIH1cbn1cblxuLmFnLXJvb3Qtd3JhcHBlciB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLy8gc2V0IHRvIHJlbGF0aXZlLCBzbyBhYnNvbHV0ZSBwb3B1cHMgYXBwZWFyIHJlbGF0aXZlIHRvIHRoaXNcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICYuYWctbGF5b3V0LW5vcm1hbCB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG59XG5cbi5hZy13YXRlcm1hcmsge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDIwcHg7XG4gICAgcmlnaHQ6IDI1cHg7XG4gICAgb3BhY2l0eTogMC41O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMXMgZWFzZS1vdXQgM3M7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQmxibU52WkdsdVp6MGlWVlJHTFRnaUlITjBZVzVrWVd4dmJtVTlJbTV2SWo4K0Nqd2hSRTlEVkZsUVJTQnpkbWNnVUZWQ1RFbERJQ0l0THk5WE0wTXZMMFJVUkNCVFZrY2dNUzR4THk5RlRpSWdJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MMGR5WVhCb2FXTnpMMU5XUnk4eExqRXZSRlJFTDNOMlp6RXhMbVIwWkNJK0NqeHpkbWNnZDJsa2RHZzlJakV3TUNVaUlHaGxhV2RvZEQwaU1UQXdKU0lnZG1sbGQwSnZlRDBpTUNBd0lESXpOU0EwTUNJZ2RtVnljMmx2YmowaU1TNHhJaUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGh0Ykc1ek9uaHNhVzVyUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMM2hzYVc1cklpQjRiV3c2YzNCaFkyVTlJbkJ5WlhObGNuWmxJaUI0Yld4dWN6cHpaWEpwWmowaWFIUjBjRG92TDNkM2R5NXpaWEpwWmk1amIyMHZJaUJ6ZEhsc1pUMGlabWxzYkMxeWRXeGxPbVYyWlc1dlpHUTdZMnhwY0MxeWRXeGxPbVYyWlc1dlpHUTdjM1J5YjJ0bExXeHBibVZxYjJsdU9uSnZkVzVrTzNOMGNtOXJaUzF0YVhSbGNteHBiV2wwT2pJN0lqNEtJQ0FnSUR4bklIUnlZVzV6Wm05eWJUMGliV0YwY21sNEtEQXVOak0xTnpJekxEQXNNQ3d3TGpZek5UY3lNeXd0TkRreUxqa3lNU3d0TXpJekxqWXdPQ2tpUGdvZ0lDQWdJQ0FnSUR4d1lYUm9JR1E5SWsweE1EazVMalFzTlRRNUxqUk1NVEE1T1M0MExEVXpOaTQ1VERFd056Z3VNU3cxTXpZdU9Vd3hNRFkxTGpZc05UUTVMalJNTVRBNU9TNDBMRFUwT1M0MFdpSWdjM1I1YkdVOUltWnBiR3c2Y21kaUtESTBMREk1TERNeEtUdG1hV3hzTFhKMWJHVTZibTl1ZW1WeWJ6c2lMejRLSUNBZ0lDQWdJQ0E4Y0dGMGFDQmtQU0pOTVRFeU15NDBMRFV4T0M0MFRERXdPVFl1Tnl3MU1UZ3VORXd4TURnMExqRXNOVE13TGpsTU1URXlNeTQwTERVek1DNDVUREV4TWpNdU5DdzFNVGd1TkZvaUlITjBlV3hsUFNKbWFXeHNPbkpuWWlneU5Dd3lPU3d6TVNrN1ptbHNiQzF5ZFd4bE9tNXZibnBsY204N0lpOCtDaUFnSUNBZ0lDQWdQSEJoZEdnZ1pEMGlUVEV3TlRNdU1pdzFOakV1T1V3eE1EVTVMallzTlRVMUxqVk1NVEE0TVM0eUxEVTFOUzQxVERFd09ERXVNaXcxTmpoTU1UQTFNeTR5TERVMk9Fd3hNRFV6TGpJc05UWXhMamxhSWlCemRIbHNaVDBpWm1sc2JEcHlaMklvTWpRc01qa3NNekVwTzJacGJHd3RjblZzWlRwdWIyNTZaWEp2T3lJdlBnb2dJQ0FnSUNBZ0lEeHdZWFJvSUdROUlrMHhNRFUzTGprc05UUXpMak5NTVRBM01TNDNMRFUwTXk0elRERXdPRFF1TXl3MU16QXVPRXd4TURVM0xqa3NOVE13TGpoTU1UQTFOeTQ1TERVME15NHpXaUlnYzNSNWJHVTlJbVpwYkd3NmNtZGlLREkwTERJNUxETXhLVHRtYVd4c0xYSjFiR1U2Ym05dWVtVnlienNpTHo0S0lDQWdJQ0FnSUNBOGNHRjBhQ0JrUFNKTk1UQTBNaTQ0TERVMk1TNDVUREV3TlRNdU1pdzFOakV1T1V3eE1EWTFMallzTlRRNUxqUk1NVEEwTWk0NExEVTBPUzQwVERFd05ESXVPQ3cxTmpFdU9Wb2lJSE4wZVd4bFBTSm1hV3hzT25KbllpZ3lOQ3d5T1N3ek1TazdabWxzYkMxeWRXeGxPbTV2Ym5wbGNtODdJaTgrQ2lBZ0lDQWdJQ0FnUEhCaGRHZ2daRDBpVFRFd09UWXVOeXcxTVRndU5Fd3hNRGt3TGpNc05USTBMamhNTVRBME9TNDFMRFV5TkM0NFRERXdORGt1TlN3MU1USXVNMHd4TURrMkxqY3NOVEV5TGpOTU1UQTVOaTQzTERVeE9DNDBXaUlnYzNSNWJHVTlJbVpwYkd3NmNtZGlLREkwTERJNUxETXhLVHRtYVd4c0xYSjFiR1U2Ym05dWVtVnlienNpTHo0S0lDQWdJQ0FnSUNBOGNHRjBhQ0JrUFNKTk9ESTRMallzTlRVNUxqZE1PREE1TERVMU9TNDNURGd3TlM0MkxEVTJPQzR4VERjNU55dzFOamd1TVV3NE1UVXVNU3cxTWpVdU4wdzRNakl1Tml3MU1qVXVOMHc0TkRBdU55dzFOamd1TVV3NE16SXNOVFk0TGpGTU9ESTRMallzTlRVNUxqZGFUVGd5TlM0NUxEVTFNMHc0TVRndU9DdzFNelV1TjB3NE1URXVOeXcxTlROTU9ESTFMamtzTlRVeldpSWdjM1I1YkdVOUltWnBiR3c2Y21kaUtESTBMREk1TERNeEtUdG1hV3hzTFhKMWJHVTZibTl1ZW1WeWJ6c2lMejRLSUNBZ0lDQWdJQ0E4Y0dGMGFDQmtQU0pOT1RZd0xqRXNOVFF4TGpORE9UWXlMallzTlRNM0xqWWdPVFk0TGprc05UTTNMaklnT1RjeExqVXNOVE0zTGpKTU9UY3hMalVzTlRRMExqUkRPVFk0TGpNc05UUTBMalFnT1RZMUxqRXNOVFEwTGpVZ09UWXpMaklzTlRRMUxqbERPVFl4TGpNc05UUTNMak1nT1RZd0xqTXNOVFE1TGpJZ09UWXdMak1zTlRVeExqVk1PVFl3TGpNc05UWTRMakZNT1RVeUxqVXNOVFk0TGpGTU9UVXlMalVzTlRNM0xqSk1PVFl3TERVek55NHlURGsyTUM0eExEVTBNUzR6V2lJZ2MzUjViR1U5SW1acGJHdzZjbWRpS0RJMExESTVMRE14S1R0bWFXeHNMWEoxYkdVNmJtOXVlbVZ5YnpzaUx6NEtJQ0FnSUNBZ0lDQThjbVZqZENCNFBTSTVOelV1T0NJZ2VUMGlOVE0zTGpJaUlIZHBaSFJvUFNJM0xqZ2lJR2hsYVdkb2REMGlNekF1T1NJZ2MzUjViR1U5SW1acGJHdzZjbWRpS0RJMExESTVMRE14S1RzaUx6NEtJQ0FnSUNBZ0lDQThjbVZqZENCNFBTSTVOelV1T0NJZ2VUMGlOVEl6TGpRaUlIZHBaSFJvUFNJM0xqZ2lJR2hsYVdkb2REMGlPUzR5SWlCemRIbHNaVDBpWm1sc2JEcHlaMklvTWpRc01qa3NNekVwT3lJdlBnb2dJQ0FnSUNBZ0lEeHdZWFJvSUdROUlrMHhNREl5TGpNc05USXpMalJNTVRBeU1pNHpMRFUyT0M0eFRERXdNVFF1T0N3MU5qZ3VNVXd4TURFMExqWXNOVFl6TGpSRE1UQXhNeTQxTERVMk5TQXhNREV5TGpFc05UWTJMak1nTVRBeE1DNDBMRFUyTnk0elF6RXdNRGd1Tnl3MU5qZ3VNaUF4TURBMkxqWXNOVFk0TGpjZ01UQXdOQzR5TERVMk9DNDNRekV3TURJdU1TdzFOamd1TnlBeE1EQXdMakVzTlRZNExqTWdPVGs0TGpRc05UWTNMalpET1RrMkxqWXNOVFkyTGpnZ09UazFMRFUyTlM0NElEazVNeTQzTERVMk5DNDBRems1TWk0MExEVTJNeUE1T1RFdU15dzFOakV1TXlBNU9UQXVOaXcxTlRrdU5FTTVPRGt1T0N3MU5UY3VOU0E1T0RrdU5TdzFOVFV1TXlBNU9Ea3VOU3cxTlRJdU9VTTVPRGt1TlN3MU5UQXVOU0E1T0RrdU9TdzFORGd1TXlBNU9UQXVOaXcxTkRZdU0wTTVPVEV1TkN3MU5EUXVNeUE1T1RJdU5DdzFOREl1TmlBNU9UTXVOeXcxTkRFdU1rTTVPVFVzTlRNNUxqZ2dPVGsyTGpZc05UTTRMamNnT1RrNExqUXNOVE0zTGpsRE1UQXdNQzR5TERVek55NHhJREV3TURJdU1TdzFNell1TnlBeE1EQTBMaklzTlRNMkxqZERNVEF3Tmk0MkxEVXpOaTQzSURFd01EZ3VOaXcxTXpjdU1TQXhNREV3TGpNc05UTTRRekV3TVRJc05UTTRMamtnTVRBeE15NDBMRFUwTUM0eElERXdNVFF1TlN3MU5ERXVPRXd4TURFMExqVXNOVEl6TGpWTU1UQXlNaTR6TERVeU15NDFUREV3TWpJdU15dzFNak11TkZwTk1UQXdOUzQ1TERVMk1rTXhNREE0TGpVc05UWXlJREV3TVRBdU5TdzFOakV1TVNBeE1ERXlMakVzTlRVNUxqUkRNVEF4TXk0M0xEVTFOeTQzSURFd01UUXVOU3cxTlRVdU5DQXhNREUwTGpVc05UVXlMalpETVRBeE5DNDFMRFUwT1M0NElERXdNVE11Tnl3MU5EY3VOaUF4TURFeUxqRXNOVFExTGpoRE1UQXhNQzQxTERVME5DNHhJREV3TURndU5TdzFORE11TWlBeE1EQTFMamtzTlRRekxqSkRNVEF3TXk0MExEVTBNeTR5SURFd01ERXVNeXcxTkRRdU1TQTVPVGt1T0N3MU5EVXVPRU01T1RndU1pdzFORGN1TlNBNU9UY3VOQ3cxTkRrdU9DQTVPVGN1TkN3MU5USXVOa001T1RjdU5DdzFOVFV1TkNBNU9UZ3VNaXcxTlRjdU5pQTVPVGt1T0N3MU5Ua3VNME14TURBeExqUXNOVFl4TGpFZ01UQXdNeTQwTERVMk1pQXhNREExTGprc05UWXlJaUJ6ZEhsc1pUMGlabWxzYkRweVoySW9NalFzTWprc016RXBPMlpwYkd3dGNuVnNaVHB1YjI1NlpYSnZPeUl2UGdvZ0lDQWdJQ0FnSUR4d1lYUm9JR1E5SWswNE9EVXVPQ3cxTkRRdU1rdzROall1TlN3MU5EUXVNa3c0TmpZdU5TdzFOVEF1T1V3NE56Y3VOU3cxTlRBdU9VTTROemN1TWl3MU5UUXVNeUE0TnpVdU9TdzFOVFl1T1NBNE56TXVOeXcxTlRsRE9EY3hMalVzTlRZeElEZzJPQzQzTERVMk1pQTROalV1TVN3MU5qSkRPRFl6TGpFc05UWXlJRGcyTVM0eUxEVTJNUzQySURnMU9TNDJMRFUyTUM0NVF6ZzFOeTQ1TERVMk1DNHlJRGcxTmk0MUxEVTFPUzR5SURnMU5TNHpMRFUxTnk0NFF6ZzFOQzR4TERVMU5pNDFJRGcxTXk0eUxEVTFOQzQ1SURnMU1pNDFMRFUxTTBNNE5URXVPQ3cxTlRFdU1TQTROVEV1TlN3MU5Ea3VNU0E0TlRFdU5TdzFORFl1T0VNNE5URXVOU3cxTkRRdU5TQTROVEV1T0N3MU5ESXVOU0E0TlRJdU5TdzFOREF1TmtNNE5UTXVNU3cxTXpndU55QTROVFF1TVN3MU16Y3VNaUE0TlRVdU15dzFNelV1T0VNNE5UWXVOU3cxTXpRdU5TQTROVGN1T1N3MU16TXVOU0E0TlRrdU5pdzFNekl1TjBNNE5qRXVNeXcxTXpJZ09EWXpMakVzTlRNeExqWWdPRFkxTGpJc05UTXhMalpET0RZNUxqUXNOVE14TGpZZ09EY3lMallzTlRNeUxqWWdPRGMwTGpnc05UTTBMalpNT0Rnd0xEVXlPUzQwUXpnM05pNHhMRFV5Tmk0MElEZzNNUzR4TERVeU5DNDRJRGcyTlM0eUxEVXlOQzQ0UXpnMk1TNDVMRFV5TkM0NElEZzFPQzQ1TERVeU5TNHpJRGcxTmk0eUxEVXlOaTQwUXpnMU15NDFMRFV5Tnk0MUlEZzFNUzR5TERVeU9DNDVJRGcwT1M0ekxEVXpNQzQ0UXpnME55NDBMRFV6TWk0M0lEZzBOUzQ1TERVek5TQTRORFF1T1N3MU16Y3VOME00TkRNdU9TdzFOREF1TkNBNE5ETXVOQ3cxTkRNdU5DQTRORE11TkN3MU5EWXVOa000TkRNdU5DdzFORGt1T0NBNE5ETXVPU3cxTlRJdU9DQTRORFVzTlRVMUxqVkRPRFEyTGpFc05UVTRMaklnT0RRM0xqVXNOVFl3TGpVZ09EUTVMalFzTlRZeUxqUkRPRFV4TGpNc05UWTBMak1nT0RVekxqWXNOVFkxTGpnZ09EVTJMak1zTlRZMkxqaERPRFU1TERVMk55NDVJRGcyTWl3MU5qZ3VOQ0E0TmpVdU1pdzFOamd1TkVNNE5qZ3VOQ3cxTmpndU5DQTROekV1TXl3MU5qY3VPU0E0TnpNdU9TdzFOall1T0VNNE56WXVOU3cxTmpVdU55QTROemd1Tnl3MU5qUXVNeUE0T0RBdU5TdzFOakl1TkVNNE9ESXVNeXcxTmpBdU5TQTRPRE11Tnl3MU5UZ3VNaUE0T0RRdU55dzFOVFV1TlVNNE9EVXVOeXcxTlRJdU9DQTRPRFl1TWl3MU5Ea3VPQ0E0T0RZdU1pdzFORFl1Tmt3NE9EWXVNaXcxTkRVdU0wTTRPRFV1T1N3MU5EVXVNU0E0T0RVdU9DdzFORFF1TmlBNE9EVXVPQ3cxTkRRdU1pSWdjM1I1YkdVOUltWnBiR3c2Y21kaUtESTBMREk1TERNeEtUdG1hV3hzTFhKMWJHVTZibTl1ZW1WeWJ6c2lMejRLSUNBZ0lDQWdJQ0E4Y0dGMGFDQmtQU0pOT1RRMkxqZ3NOVFEwTGpKTU9USTNMalVzTlRRMExqSk1PVEkzTGpVc05UVXdMamxNT1RNNExqVXNOVFV3TGpsRE9UTTRMaklzTlRVMExqTWdPVE0yTGprc05UVTJMamtnT1RNMExqY3NOVFU1UXprek1pNDFMRFUyTVNBNU1qa3VOeXcxTmpJZ09USTJMakVzTlRZeVF6a3lOQzR4TERVMk1pQTVNakl1TWl3MU5qRXVOaUE1TWpBdU5pdzFOakF1T1VNNU1UZ3VPU3cxTmpBdU1pQTVNVGN1TlN3MU5Ua3VNaUE1TVRZdU15dzFOVGN1T0VNNU1UVXVNU3cxTlRZdU5TQTVNVFF1TWl3MU5UUXVPU0E1TVRNdU5TdzFOVE5ET1RFeUxqZ3NOVFV4TGpFZ09URXlMalVzTlRRNUxqRWdPVEV5TGpVc05UUTJMamhET1RFeUxqVXNOVFEwTGpVZ09URXlMamdzTlRReUxqVWdPVEV6TGpVc05UUXdMalpET1RFMExqRXNOVE00TGpjZ09URTFMakVzTlRNM0xqSWdPVEUyTGpNc05UTTFMamhET1RFM0xqVXNOVE0wTGpVZ09URTRMamtzTlRNekxqVWdPVEl3TGpZc05UTXlMamRET1RJeUxqTXNOVE15SURreU5DNHhMRFV6TVM0MklEa3lOaTR5TERVek1TNDJRemt6TUM0MExEVXpNUzQySURrek15NDJMRFV6TWk0MklEa3pOUzQ0TERVek5DNDJURGswTVN3MU1qa3VORU01TXpjdU1TdzFNall1TkNBNU16SXVNU3cxTWpRdU9DQTVNall1TWl3MU1qUXVPRU01TWpJdU9TdzFNalF1T0NBNU1Ua3VPU3cxTWpVdU15QTVNVGN1TWl3MU1qWXVORU01TVRRdU5TdzFNamN1TlNBNU1USXVNaXcxTWpndU9TQTVNVEF1TXl3MU16QXVPRU01TURndU5DdzFNekl1TnlBNU1EWXVPU3cxTXpVZ09UQTFMamtzTlRNM0xqZERPVEEwTGprc05UUXdMalFnT1RBMExqUXNOVFF6TGpRZ09UQTBMalFzTlRRMkxqWkRPVEEwTGpRc05UUTVMamdnT1RBMExqa3NOVFV5TGpnZ09UQTJMRFUxTlM0MVF6a3dOeTR4TERVMU9DNHlJRGt3T0M0MUxEVTJNQzQxSURreE1DNDBMRFUyTWk0MFF6a3hNaTR6TERVMk5DNHpJRGt4TkM0MkxEVTJOUzQ0SURreE55NHpMRFUyTmk0NFF6a3lNQ3cxTmpjdU9TQTVNak1zTlRZNExqUWdPVEkyTGpJc05UWTRMalJET1RJNUxqUXNOVFk0TGpRZ09UTXlMak1zTlRZM0xqa2dPVE0wTGprc05UWTJMamhET1RNM0xqVXNOVFkxTGpjZ09UTTVMamNzTlRZMExqTWdPVFF4TGpVc05UWXlMalJET1RRekxqTXNOVFl3TGpVZ09UUTBMamNzTlRVNExqSWdPVFExTGpjc05UVTFMalZET1RRMkxqY3NOVFV5TGpnZ09UUTNMaklzTlRRNUxqZ2dPVFEzTGpJc05UUTJMalpNT1RRM0xqSXNOVFExTGpORE9UUTJMamtzTlRRMUxqRWdPVFEyTGpnc05UUTBMallnT1RRMkxqZ3NOVFEwTGpJaUlITjBlV3hsUFNKbWFXeHNPbkpuWWlneU5Dd3lPU3d6TVNrN1ptbHNiQzF5ZFd4bE9tNXZibnBsY204N0lpOCtDaUFnSUNBOEwyYytDand2YzNablBnbz0pO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDE3MHB4IDQwcHg7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIHdpZHRoOiAxNzBweDtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgIH1cbn1cblxuLmFnLXdhdGVybWFyay10ZXh0IHtcbiAgICBvcGFjaXR5OiAwLjU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1mYW1pbHk6IEltcGFjdCwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE5cHg7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjdyZW07XG59XG5cbi5hZy1yb290LXdyYXBwZXItYm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgJi5hZy1sYXlvdXQtbm9ybWFsIHtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICB9XG59XG5cbi5hZy1yb290IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8vIHNldCB0byByZWxhdGl2ZSwgc28gYWJzb2x1dGUgcG9wdXBzIGFwcGVhciByZWxhdGl2ZSB0byB0aGlzXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgJi5hZy1sYXlvdXQtbm9ybWFsLFxuICAgICYuYWctbGF5b3V0LWF1dG8taGVpZ2h0IHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsgLy8gd2FzIGdldHRpbmcgc29tZSAnc2hvdWxkbid0IGJlIHRoZXJlJyBzY3JvbGxzLCB0aGlzIHNvcnRzIGl0IG91dFxuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgfVxuXG4gICAgJi5hZy1sYXlvdXQtbm9ybWFsIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbn1cblxuLyoqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogVmlld3BvcnRzXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKi9cbi5hZy1oZWFkZXItdmlld3BvcnQsXG4uYWctZmxvYXRpbmctdG9wLXZpZXdwb3J0LFxuLmFnLWJvZHktdmlld3BvcnQsXG4uYWctY2VudGVyLWNvbHMtdmlld3BvcnQsXG4uYWctZmxvYXRpbmctYm90dG9tLXZpZXdwb3J0LFxuLmFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwtdmlld3BvcnQsXG4uYWctdmlydHVhbC1saXN0LXZpZXdwb3J0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi13aWR0aDogMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZmxleDogMSAxIGF1dG87XG59XG5cbi5hZy1ib2R5LXZpZXdwb3J0LmFnLWxheW91dC1wcmludCB7XG4gICAgZmxleDogbm9uZTtcbn1cblxuQG1lZGlhIHByaW50IHtcbiAgICAuYWctcm9vdC13cmFwcGVyLmFnLWxheW91dC1wcmludCB7XG4gICAgICAgICYsXG4gICAgICAgIC5hZy1yb290LXdyYXBwZXItYm9keSxcbiAgICAgICAgLmFnLXJvb3QsXG4gICAgICAgIC5hZy1ib2R5LXZpZXdwb3J0LFxuICAgICAgICAuYWctY2VudGVyLWNvbHMtY29udGFpbmVyLFxuICAgICAgICAuYWctY2VudGVyLWNvbHMtdmlld3BvcnQsXG4gICAgICAgIC5hZy1jZW50ZXItY29scy1jbGlwcGVyLFxuICAgICAgICAuYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbC12aWV3cG9ydCxcbiAgICAgICAgLmFnLXZpcnR1YWwtbGlzdC12aWV3cG9ydCB7XG4gICAgICAgICAgICAvLyBOZWVkIGF1dG8gaGVpZ2h0IGJlY2F1c2UgMTAwJSBoZWlnaHQgZWxlbWVudHMgd2l0aCBvdmVyZmxvdyBoaWRkZW4gY2F1c2UgcHJpbnRpbmcgaXNzdWVzIGluIElFIGFuZCBFZGdlXG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICAgIC8vIE92ZXJmbG93IGhpZGRlbiwgYmVjYXVzZSBvdGhlcndpc2Ugc2Nyb2xsIGJhcnMgcHJpbnQgaW4gSUVcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICAgICAgICAgIC8vIGZsZXggZWxlbWVudHMgY2F1c2UgcHJpbnRpbmcgaXNzdWVzIGluIEZpcmVmb3hcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTkzOTg5N1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAuYWctcm93IHtcbiAgICAgICAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmFnLWJvZHktdmlld3BvcnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAmLmFnLWxheW91dC1ub3JtYWwge1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgfVxufVxuXG4uYWctY2VudGVyLWNvbHMtdmlld3BvcnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG59XG5cbi5hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsLXZpZXdwb3J0IHtcbiAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG59XG5cbi5hZy12aXJ0dWFsLWxpc3Qtdmlld3BvcnQge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4vKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBDb250YWluZXJzXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKi9cbi5hZy1oZWFkZXItY29udGFpbmVyLFxuLmFnLWZsb2F0aW5nLXRvcC1jb250YWluZXIsXG4uYWctYm9keS1jb250YWluZXIsXG4uYWctcGlubmVkLXJpZ2h0LWNvbHMtY29udGFpbmVyLFxuLmFnLWNlbnRlci1jb2xzLWNvbnRhaW5lcixcbi5hZy1waW5uZWQtbGVmdC1jb2xzLWNvbnRhaW5lcixcbi5hZy1mbG9hdGluZy1ib3R0b20tY29udGFpbmVyLFxuLmFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwtY29udGFpbmVyLFxuLmFnLWZ1bGwtd2lkdGgtY29udGFpbmVyLFxuLmFnLWZsb2F0aW5nLWJvdHRvbS1mdWxsLXdpZHRoLWNvbnRhaW5lcixcbi5hZy12aXJ0dWFsLWxpc3QtY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8vIGZvciB3aGVuIGF1dG8gaGVpZ2h0IGlzIHVzZWQgYnV0IHRoZXJlIGlzIG5vIHJvdyBkYXRhXG4uYWctaGVhZGVyLWNvbnRhaW5lciwgLmFnLWZsb2F0aW5nLXRvcC1jb250YWluZXIsIC5hZy1mbG9hdGluZy1ib3R0b20tY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmFnLWNlbnRlci1jb2xzLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cblxuLmFnLWxheW91dC1wcmludCAuYWctY2VudGVyLWNvbHMtY2xpcHBlciB7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xufVxuXG4uYWctcGlubmVkLXJpZ2h0LWNvbHMtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwtY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5hZy1mdWxsLXdpZHRoLWNvbnRhaW5lcixcbi5hZy1mbG9hdGluZy10b3AtZnVsbC13aWR0aC1jb250YWluZXIsXG4uYWctZmxvYXRpbmctYm90dG9tLWZ1bGwtd2lkdGgtY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwcHg7XG4gICAgbGVmdDogMHB4O1xuICAgIC8vIHR1cm4gb2ZmIHBvaW50ZXIgZXZlbnRzLCBiZWNhdXNlIHRoaXMgY29udGFpbmVyIG92ZXJsYXlzIHRoZSBtYWluIHJvdyBjb250YWluZXJzLlxuICAgIC8vIHNvIHdoZW4gdXNlciBjbGlja3Mgb24gc3BhY2UgYmV0d2VlbiBmdWxsIHdpZHRoIHJvd3MsIHdlIHdhbnQgdGhlIG1vdXNlIGNsaWNrcyB0b1xuICAgIC8vIHBhc3Mgb250byB0aGUgdW5kZXJseWluZyBjb250YWluZXIgd2hlcmUgdGhlIHJlYWwgcm93cyBhcmUuIGVnIGlmIHVzaW5nIGZ1bGwgd2lkdGhcbiAgICAvLyBmb3Igcm93IGdyb3VwaW5nLCB0aGUgZ3JvdXBzIHdpbGwgYmUgaW4gdGhlIGZ1bGwgd2lkdGggY29udGFpbmVyLCBidXQgd2hlbiB1c2VyXG4gICAgLy8gb3BlbnMgYSBncm91cCB0aGUgY2hpbGRyZW4gYXJlIHNob3duIGluIHRoZSBvdGhlciBjb250YWluZXJzIC0gd2Ugd2FudCB0byBtYWtlIHN1cmUgd2VcbiAgICAvLyBkb24ndCBibG9jayBtb3VzZSBjbGlja3MgdG8gdGhvc2Ugb3RoZXIgY29udGFpbmVycyB3aXRoIHRoZSBjaGlsZHJlbi5cbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5hZy1mdWxsLXdpZHRoLWNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5hZy1mbG9hdGluZy1ib3R0b20tZnVsbC13aWR0aC1jb250YWluZXIsIC5hZy1mbG9hdGluZy10b3AtZnVsbC13aWR0aC1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmFnLXZpcnR1YWwtbGlzdC1jb250YWluZXIge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIFNjcm9sbGVyc1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiovXG4uYWctY2VudGVyLWNvbHMtY2xpcHBlciB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICAvLyB0cmFuc2xhdGUzZCBpcyBuZWNlc3NhcnkgaGVyZSBkdWUgdG8gYSBCVUcgaW4gU2FmYXJpXG4gICAgLy8gd2hlcmUgaXQgYmVjb21lcyBpbXBvc3NpYmxlIHRvIGNsaWNrIG9uIHNjcm9sbGJhcnNcbiAgICAvLyB0aGF0IGFyZSBvbmx5IHZpc2libGUgZHVyaW5nIHNjcm9sbC5cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcbn1cblxuLmFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwge1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICYuYWctaW52aXNpYmxlLXNjcm9sbGJhciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICB9XG59XG5cbi5hZy1sYXlvdXQtcHJpbnQge1xuICAgIC5hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5hZy1mb3JjZS12ZXJ0aWNhbC1zY3JvbGwge1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbCAhaW1wb3J0YW50O1xuXG4gICAgJi5hZy1sYXlvdXQtcHJpbnQge1xuICAgICAgICBvdmVyZmxvdy15OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4uYWctaG9yaXpvbnRhbC1sZWZ0LXNwYWNlciwgLmFnLWhvcml6b250YWwtcmlnaHQtc3BhY2VyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAmLmFnLXNjcm9sbGVyLWNvcm5lciB7XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICB9XG59XG5cbi8qKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIEhlYWRlcnNcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qL1xuLmFnLWhlYWRlciwgLmFnLXBpbm5lZC1sZWZ0LWhlYWRlciwgLmFnLXBpbm5lZC1yaWdodC1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmFnLWhlYWRlci1jZWxsLXNvcnRhYmxlIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5hZy1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmFnLXBpbm5lZC1sZWZ0LWhlYWRlciB7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uYWctcGlubmVkLXJpZ2h0LWhlYWRlciB7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uYWctaGVhZGVyLXJvdyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47IC8vIHNvIHdoZW4gZmxvYXRpbmcgZmlsdGVycyBhcmUgaGVpZ2h0IDBweCwgdGhlIGNvbnRlbnRzIGRvbid0IHNwaWxsIG91dFxufVxuXG4uYWctaGVhZGVyLWNlbGwge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uYWctaGVhZGVyLWNlbGwuYWctaGVhZGVyLWFjdGl2ZSAuYWctaGVhZGVyLWNlbGwtbWVudS1idXR0b24ge1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5hZy1oZWFkZXItY2VsbC1tZW51LWJ1dHRvbjpub3QoLmFnLWhlYWRlci1tZW51LWFsd2F5cy1zaG93KSB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xuICAgIG9wYWNpdHk6IDA7XG59XG5cbi5hZy1oZWFkZXItZ3JvdXAtY2VsbC1sYWJlbCwgLmFnLWhlYWRlci1jZWxsLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xufVxuXG4uYWctaGVhZGVyLWNlbGwtdGV4dCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uYWctcmlnaHQtYWxpZ25lZC1oZWFkZXIgLmFnLWhlYWRlci1jZWxsLWxhYmVsIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG59XG5cbi5hZy1oZWFkZXItZ3JvdXAtdGV4dCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uYWctaGVhZGVyLWNlbGwtcmVzaXplIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDhweDtcbiAgICB0b3A6IDA7XG5cbiAgICBjdXJzb3I6IGV3LXJlc2l6ZTtcblxuICAgIC8vIHVucGlubmVkIGhlYWRlcnMgZ2V0IHRoZWlyIHJlemlzZSBoYW5kbGUgb24gdGhlIHJpZ2h0IGluIG5vcm1hbCBtb2RlIGFuZCBsZWZ0IGluIFJUTCBtb2RlXG4gICAgQGluY2x1ZGUgYWctdW50aGVtZWQtcnRsKChcbiAgICAgICAgcmlnaHQ6IC00cHhcbiAgICApKTtcbn1cblxuLmFnLXBpbm5lZC1sZWZ0LWhlYWRlciAuYWctaGVhZGVyLWNlbGwtcmVzaXplIHtcbiAgICByaWdodDogLTRweDsgLy8gcGlubmVkIGxlZnQgaGVhZGVycyBhbHdheXMgaGF2ZSB0aGVpciByZXNpemUgb24gdGhlIHJpZ2h0LCBldmVuIGluIFJUTCBtb2RlXG59XG5cbi5hZy1waW5uZWQtcmlnaHQtaGVhZGVyIC5hZy1oZWFkZXItY2VsbC1yZXNpemUge1xuICAgIGxlZnQ6IC00cHg7IC8vIHBpbm5lZCByaWdodCBoZWFkZXJzIGFsd2F5cyBoYXZlIHRoZWlyIHJlc2l6ZSBvbiB0aGUgbGVmdCwgZXZlbiBpbiBSVEwgbW9kZVxufVxuXG4uYWctaGVhZGVyLXNlbGVjdC1hbGwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG59XG5cbi8qKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENvbHVtbnNcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qL1xuLmFnLWNvbHVtbi1tb3Zpbmcge1xuICAgIC5hZy1jZWxsIHtcbiAgICAgICAgdHJhbnNpdGlvbjogbGVmdCAwLjJzO1xuICAgIH1cblxuICAgIC5hZy1oZWFkZXItY2VsbCB7XG4gICAgICAgIHRyYW5zaXRpb246IGxlZnQgMC4ycztcbiAgICB9XG5cbiAgICAuYWctaGVhZGVyLWdyb3VwLWNlbGwge1xuICAgICAgICB0cmFuc2l0aW9uOiBsZWZ0IDAuMnMsIHdpZHRoIDAuMnM7XG4gICAgfVxufVxuXG4vKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBDb2x1bW4gUGFuZWxcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qL1xuXG4uYWctY29sdW1uLXBhbmVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBmbGV4OiAxIDEgYXV0bztcbn1cblxuLmFnLWNvbHVtbi1zZWxlY3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGZsZXgtZ3JvdzogMztcbiAgICBmbGV4LXNocmluazogMTtcbiAgICBmbGV4LWJhc2lzOiAwO1xufVxuXG4uYWctY29sdW1uLXNlbGVjdC1oZWFkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IG5vbmU7XG59XG5cbi5hZy1jb2x1bW4tc2VsZWN0LWhlYWRlci1pY29uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5hZy1jb2x1bW4tc2VsZWN0LWhlYWRlci1maWx0ZXItd3JhcHBlciB7XG4gICAgZmxleDogMSAxIGF1dG87XG59XG5cbi5hZy1jb2x1bW4tc2VsZWN0LWhlYWRlci1maWx0ZXIge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uYWctY29sdW1uLXNlbGVjdC1saXN0IHtcbiAgICBmbGV4OiAxIDEgMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5hZy1jb2x1bW4tZHJvcCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmFnLWNvbHVtbi1kcm9wLWxpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmFnLWNvbHVtbi1kcm9wLWNlbGwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmFnLWNvbHVtbi1kcm9wLWNlbGwtdGV4dCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uYWctY29sdW1uLWRyb3AtdmVydGljYWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGZsZXg6IDEgMSAwcHg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG59XG5cbi5hZy1jb2x1bW4tZHJvcC12ZXJ0aWNhbC10aXRsZS1iYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4OiBub25lO1xufVxuXG4uYWctY29sdW1uLWRyb3AtdmVydGljYWwtbGlzdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICA+ICoge1xuICAgICAgICBmbGV4OiBub25lO1xuICAgIH1cbn1cblxuLmFnLWNvbHVtbi1kcm9wLWVtcHR5IC5hZy1jb2x1bW4tZHJvcC12ZXJ0aWNhbC1saXN0IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uYWctY29sdW1uLWRyb3AtdmVydGljYWwtZW1wdHktbWVzc2FnZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5hZy1jb2x1bW4tZHJvcC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5hZy1jb2x1bW4tZHJvcC1jZWxsLWJ1dHRvbiB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uYWctZmlsdGVyLXRvb2xwYW5lbCB7XG4gICAgZmxleDogMSAxIDBweDtcbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbi5hZy1maWx0ZXItdG9vbHBhbmVsLWhlYWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uYWctZmlsdGVyLXRvb2xwYW5lbC1oZWFkZXIsIC5hZy1maWx0ZXItdG9vbHBhbmVsLXNlYXJjaCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgPiAqIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG59XG5cbi5hZy1maWx0ZXItYXBwbHktcGFuZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBSb3dzXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKi9cbi8vIGZvciBhbmltYXRpb25zLCBhbGxvd3Mgcm93cyB0byBzbGlkZSB1cCBhbmQgZG93bixcbi5hZy1yb3ctYW5pbWF0aW9uIC5hZy1yb3cge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzLCB0b3AgMC40cywgaGVpZ2h0IDAuNHMsIGJhY2tncm91bmQtY29sb3IgMC4xcywgb3BhY2l0eSAwLjJzO1xufVxuXG4uYWctcm93LW5vLWFuaW1hdGlvbiAuYWctcm93IHtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMXM7XG59XG5cbi5hZy1yb3cge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5hZy1yb3ctbG9hZGluZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uYWctcm93LXBvc2l0aW9uLWFic29sdXRlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5hZy1yb3ctcG9zaXRpb24tcmVsYXRpdmUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmFnLWZ1bGwtd2lkdGgtcm93IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIC8vIHR1cm4gZXZlbnRzIGJhY2sgb24sIGFzIHdlIHJlbW92ZWQgdGhlbSBpbiB0aGUgcGFyZW50XG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbn1cblxuLmFnLXJvdy1pbmxpbmUtZWRpdGluZyB7XG4gICAgei1pbmRleDogMTtcbn1cblxuLmFnLXJvdy1kcmFnZ2luZyB7XG4gICAgei1pbmRleDogMjtcbn1cblxuLmFnLXN0dWItY2VsbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4vKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBDZWxsc1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiovXG4uYWctY2VsbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uYWctY2VsbC12YWx1ZSwgLmFnLWdyb3VwLXZhbHVlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4uYWctY2VsbC13cmFwLXRleHQge1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgd29yZC1icmVhazogYnJlYWstYWxsO1xufVxuXG4uYWctY2VsbC13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIC8vIGFkZGluZyB3aWR0aDogMTAwJSBoZXJlIGJyZWFrcyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpc1xuICAgIC8vIHdpZHRoOiAxMDAlO1xuICAgICYuYWctcm93LWdyb3VwIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgfVxufVxuXG4uYWctZnVsbC13aWR0aC1yb3cgLmFnLWNlbGwtd3JhcHBlci5hZy1yb3ctZ3JvdXAge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5hZy1jZWxsLWF1dG8taGVpZ2h0IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5hZy1jZWxsLWlubGluZS1lZGl0aW5nIHtcbiAgICB6LWluZGV4OiAxO1xuICAgIC5hZy1jZWxsLWVkaXQtd3JhcHBlcixcbiAgICAuYWctY2VsbC1lZGl0b3IsXG4gICAgLmFnLWNlbGwtZWRpdG9yIC5hZy13cmFwcGVyLFxuICAgIC5hZy1jZWxsLWVkaXRvciBpbnB1dCB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgfVxufVxuXG4uYWctY2VsbCAuYWctaWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8qKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIEZpbHRlcnNcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qL1xuLmFnLXNldC1maWx0ZXItaXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLmFnLXNldC1maWx0ZXItaXRlbS12YWx1ZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uYWctc2V0LWZpbHRlci1pdGVtLWNoZWNrYm94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uYWctZmlsdGVyLWJvZHktd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uYWctZmlsdGVyLWZpbHRlciB7XG4gICAgZmxleDogMSAxIDBweDtcbn1cblxuLmFnLWZpbHRlci1jb25kaXRpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8qKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIEZsb2F0aW5nIEZpbHRlclxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiovXG5cbi5hZy1mbG9hdGluZy1maWx0ZXItYm9keSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uYWctZmxvYXRpbmctZmlsdGVyLWZ1bGwtYm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uYWctZmxvYXRpbmctZmlsdGVyLWZ1bGwtYm9keSA+IGRpdiB7XG4gICAgZmxleDogMSAxIGF1dG87XG59XG5cbi5hZy1mbG9hdGluZy1maWx0ZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5hZy1mbG9hdGluZy1maWx0ZXItaW5wdXQge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgID4gKiB7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIH1cbn1cblxuLmFnLWZsb2F0aW5nLWZpbHRlci1idXR0b24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogbm9uZTtcbn1cblxuLyoqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogRHJhZyAmIERyb3BcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qL1xuXG4uYWctZG5kLWdob3N0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBjdXJzb3I6IG1vdmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB6LWluZGV4OiA5OTk5O1xufVxuXG4vKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBPdmVybGF5XG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKi9cbi5hZy1vdmVybGF5IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uYWctb3ZlcmxheS1wYW5lbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5hZy1vdmVybGF5LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5hZy1vdmVybGF5LWxvYWRpbmctd3JhcHBlciB7XG4gICAgLy8gcHJldmVudCBpbnRlcmFjdGlvbiB3aXRoIGdyaWQgd2hpbGUgaXQncyBsb2FkaW5nXG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbn1cblxuLyoqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogUG9wdXBcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qL1xuXG4uYWctcG9wdXAtY2hpbGQge1xuICAgIHotaW5kZXg6IDU7XG4gICAgdG9wOiAwO1xufVxuXG4uYWctcG9wdXAtZWRpdG9yIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgei1pbmRleDogMTtcbn1cblxuLmFnLWxhcmdlLXRleHQtaW5wdXQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBWaXJ0dWFsIExpc3RzXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKi9cbi5hZy12aXJ0dWFsLWxpc3QtaXRlbSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4vKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBGbG9hdGluZyBUb3AgYW5kIEJvdHRvbVxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiovXG4uYWctZmxvYXRpbmctdG9wIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5hZy1waW5uZWQtbGVmdC1mbG9hdGluZy10b3Age1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtaW4td2lkdGg6IDBweDtcbn1cblxuLmFnLXBpbm5lZC1yaWdodC1mbG9hdGluZy10b3Age1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtaW4td2lkdGg6IDBweDtcbn1cblxuLmFnLWZsb2F0aW5nLWJvdHRvbSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uYWctcGlubmVkLWxlZnQtZmxvYXRpbmctYm90dG9tIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWluLXdpZHRoOiAwcHg7XG59XG5cbi5hZy1waW5uZWQtcmlnaHQtZmxvYXRpbmctYm90dG9tIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWluLXdpZHRoOiAwcHg7XG59XG5cblxuLyoqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogRGlhbG9nXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKi9cblxuLmFnLWRpYWxvZywgLmFnLXBhbmVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5hZy1wYW5lbC10aXRsZS1iYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogbm9uZTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLmFnLXBhbmVsLXRpdGxlLWJhci10aXRsZSB7XG4gICAgZmxleDogMSAxIGF1dG87XG59XG5cbi5hZy1wYW5lbC10aXRsZS1iYXItYnV0dG9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLmFnLXBhbmVsLXRpdGxlLWJhci1idXR0b24ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmFnLXBhbmVsLWNvbnRlbnQtd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmFnLWRpYWxvZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xufVxuXG4uYWctcmVzaXplciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IDE7XG4gICAgJi5hZy1yZXNpemVyLXRvcExlZnQge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGhlaWdodDogNXB4O1xuICAgICAgICB3aWR0aDogNXB4O1xuICAgICAgICBjdXJzb3I6IG53c2UtcmVzaXplO1xuICAgIH1cbiAgICAmLmFnLXJlc2l6ZXItdG9wIHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiA1cHg7XG4gICAgICAgIHJpZ2h0OiA1cHg7XG4gICAgICAgIGhlaWdodDogNXB4O1xuICAgICAgICBjdXJzb3I6IG5zLXJlc2l6ZTtcbiAgICB9XG4gICAgJi5hZy1yZXNpemVyLXRvcFJpZ2h0IHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgaGVpZ2h0OiA1cHg7XG4gICAgICAgIHdpZHRoOiA1cHg7XG4gICAgICAgIGN1cnNvcjogbmVzdy1yZXNpemU7XG4gICAgfVxuICAgICYuYWctcmVzaXplci1yaWdodCB7XG4gICAgICAgIHRvcDogNXB4O1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiA1cHg7XG4gICAgICAgIHdpZHRoOiA1cHg7XG4gICAgICAgIGN1cnNvcjogZXctcmVzaXplO1xuICAgIH1cbiAgICAmLmFnLXJlc2l6ZXItYm90dG9tUmlnaHQge1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBoZWlnaHQ6IDVweDtcbiAgICAgICAgd2lkdGg6IDVweDtcbiAgICAgICAgY3Vyc29yOiBud3NlLXJlc2l6ZTtcbiAgICB9XG4gICAgJi5hZy1yZXNpemVyLWJvdHRvbSB7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogNXB4O1xuICAgICAgICByaWdodDogNXB4O1xuICAgICAgICBoZWlnaHQ6IDVweDtcbiAgICAgICAgY3Vyc29yOiBucy1yZXNpemU7XG4gICAgfVxuICAgICYuYWctcmVzaXplci1ib3R0b21MZWZ0IHtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBoZWlnaHQ6IDVweDtcbiAgICAgICAgd2lkdGg6IDVweDtcbiAgICAgICAgY3Vyc29yOiBuZXN3LXJlc2l6ZTtcbiAgICB9XG4gICAgJi5hZy1yZXNpemVyLWxlZnQge1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDVweDtcbiAgICAgICAgYm90dG9tOiA1cHg7XG4gICAgICAgIHdpZHRoOiA1cHg7XG4gICAgICAgIGN1cnNvcjogZXctcmVzaXplO1xuICAgIH1cbn1cblxuLyoqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogVG9vbHRpcFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiovXG5cbi5hZy10b29sdGlwIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgei1pbmRleDogOTk5OTk7XG59XG5cbi8qKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIEFuaW1hdGlvbnNcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qL1xuXG4vLyB0aGlzIGlzIHVzZWQgYnkgdGhlIGFuaW1hdGVTaG93Q2hhbmdlQ2VsbFJlbmRlcmVyLiBpdCBpcyBhcmd1YWJsZSB0aGF0IHRoaXMgYmVsb25ncyBpbiB0aGUgdGhlbWVzLFxuLy8gaG93ZXZlciBpdCBpcyBub3QgdGllZCB0byBjb2xvciwgb25seSBwbGFjZW1lbnQgYW5kIHZpc2libGl0eSwgd2hpY2ggaXMgYmVoYXZpb3VyIGFuZCBub3Qgc3R5bGUsXG4vLyB0aHVzIGJlbG9uZ3MgaGVyZSwgYmVzaWRlcyBpdCBkb2Vzbid0IGNoYW5nZSB3aWggdGhlIHRoZW1lc1xuLmFnLXZhbHVlLXNsaWRlLW91dCB7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDNzLCBtYXJnaW4tcmlnaHQgM3M7IC8vIGFzIHZhbHVlIGZhZGVzLCBpdCBhbHNvIG1vdmVzIHRvIHRoZSBsZWZ0IHZpYSB0aGUgbWFyZ2luIHNldHRpbmdcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xufVxuXG4uYWctdmFsdWUtc2xpZGUtb3V0LWVuZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIG9wYWNpdHk6IDA7XG59XG5cbi5hZy1vcGFjaXR5LXplcm8ge1xuICAgIG9wYWNpdHk6IDAgIWltcG9ydGFudDtcbn1cblxuLyoqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogTWVudVxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiovXG4uYWctbWVudSB7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLmFnLW1lbnUtY29sdW1uLXNlbGVjdC13cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDI2NXB4O1xuICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgLmFnLWNvbHVtbi1zZWxlY3Qge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxufVxuXG4uYWctbWVudS1saXN0IHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmFnLW1lbnUtb3B0aW9uLCAuYWctbWVudS1zZXBhcmF0b3Ige1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcbn1cblxuLmFnLW1lbnUtb3B0aW9uLXBhcnQsIC5hZy1tZW51LXNlcGFyYXRvci1wYXJ0IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5hZy1tZW51LW9wdGlvbi10ZXh0IHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uYWctY29tcGFjdC1tZW51LW9wdGlvbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbn1cblxuLmFnLWNvbXBhY3QtbWVudS1vcHRpb24tdGV4dCB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBmbGV4OiAxIDEgYXV0bztcbn1cblxuLyoqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogUmljaCBTZWxlY3RcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qL1xuLmFnLXJpY2gtc2VsZWN0IHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgb3V0bGluZTogbm9uZTtcbn1cblxuLmFnLXJpY2gtc2VsZWN0LXZhbHVlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5hZy1yaWNoLXNlbGVjdC12YWx1ZS1pY29uIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBvcmRlcjogMTtcbiAgICBAaW5jbHVkZSBhZy11bnRoZW1lZC1ydGwoKCB0ZXh0LWFsaWduOiByaWdodCApKTtcbn1cblxuXG4uYWctcmljaC1zZWxlY3QtbGlzdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uYWctcmljaC1zZWxlY3QtdmlydHVhbC1saXN0LWl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5hZy1yaWNoLXNlbGVjdC1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4vKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBQYWdpbmF0aW9uXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKi9cbi5hZy1wYWdpbmctcGFuZWwge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuXG4uYWctcGFnaW5nLXBhZ2Utc3VtbWFyeS1wYW5lbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uYWctcGFnaW5nLWJ1dHRvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uYWctZGlzYWJsZWQgLmFnLXBhZ2luZy1wYWdlLXN1bW1hcnktcGFuZWwge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBUb29sIFBhbmVsXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKi9cbi5hZy10b29sLXBhbmVsLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIHdpZHRoOiAyMDBweDtcbn1cblxuLmFnLWNvbHVtbi1zZWxlY3QtY29sdW1uLFxuLmFnLWNvbHVtbi1zZWxlY3QtY29sdW1uLWdyb3VwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgPiAqIHtcbiAgICAgICAgZmxleDogbm9uZTtcbiAgICB9XG59XG5cbi5hZy1jb2x1bW4tc2VsZWN0LWNoZWNrYm94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uYWctdG9vbC1wYW5lbC1ob3Jpem9udGFsLXJlc2l6ZSB7XG4gICAgY3Vyc29yOiBldy1yZXNpemU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDVweDtcbiAgICB6LWluZGV4OiAxO1xufVxuXG4uYWctc2lkZS1iYXItbGVmdCAuYWctdG9vbC1wYW5lbC1ob3Jpem9udGFsLXJlc2l6ZSB7XG4gICAgQGluY2x1ZGUgYWctdW50aGVtZWQtcnRsKCggcmlnaHQ6IC0zcHggKSk7XG59XG5cbi5hZy1zaWRlLWJhci1yaWdodCAuYWctdG9vbC1wYW5lbC1ob3Jpem9udGFsLXJlc2l6ZSB7XG4gICAgQGluY2x1ZGUgYWctdW50aGVtZWQtcnRsKCggbGVmdDogLTNweCApKTtcbn1cblxuLmFnLWRldGFpbHMtcm93IHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmFnLWRldGFpbHMtcm93LWZpeGVkLWhlaWdodCB7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uYWctZGV0YWlscy1ncmlkIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmFnLWRldGFpbHMtZ3JpZC1maXhlZC1oZWlnaHQge1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLmFnLWhlYWRlci1ncm91cC1jZWxsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLmFnLWNlbGwtbGFiZWwtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmFnLXJpZ2h0LWFsaWduZWQtaGVhZGVyIC5hZy1jZWxsLWxhYmVsLWNvbnRhaW5lciB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbn1cblxuLyoqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogU2lkZSBCYXJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qL1xuLmFnLXNpZGUtYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbn1cblxuLmFnLXNpZGUtYmFyLWxlZnQge1xuICAgIG9yZGVyOiAtMTtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xufVxuXG4uYWctc2lkZS1idXR0b24tYnV0dG9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmFnLXNpZGUtYnV0dG9uLWxhYmVsIHtcbiAgICB3cml0aW5nLW1vZGU6IHZlcnRpY2FsLWxyO1xufVxuXG4vKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBTdGF0dXMgQmFyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKi9cbi5hZy1zdGF0dXMtYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uYWctc3RhdHVzLXBhbmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbn1cblxuLmFnLXN0YXR1cy1uYW1lLXZhbHVlIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uYWctc3RhdHVzLWJhci1sZWZ0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbn1cblxuLmFnLXN0YXR1cy1iYXItY2VudGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbn1cblxuLmFnLXN0YXR1cy1iYXItcmlnaHQge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xufVxuXG4vKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBXaWRnZXRzXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKi9cblxuXG4uYWctaWNvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgc3BlYWs6IG5vbmU7XG59XG5cbi5hZy1ncm91cCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uYWctZ3JvdXAtdGl0bGUtYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5hZy1ncm91cC10aXRsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLmFnLWdyb3VwLXRpdGxlLWJhclxuLmFnLWdyb3VwLXRpdGxlIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5hZy1ncm91cC10b29sYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5hZy1ncm91cC1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5hZy1kaXNhYmxlZCAuYWctZ3JvdXAtY29udGFpbmVyIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmFnLWdyb3VwLWNvbnRhaW5lci1ob3Jpem9udGFsIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLmFnLWdyb3VwLWNvbnRhaW5lci12ZXJ0aWNhbCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLmFnLWNoYXJ0cy1mb250LXNpemUtY29sb3Ige1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi5hZy1jb2x1bW4tZ3JvdXAtaWNvbnMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgID4gKiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG59XG5cbi5hZy1ncm91cC1pdGVtLWFsaWdubWVudC1zdHJldGNoIC5hZy1ncm91cC1pdGVtIHtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbn1cblxuLmFnLWdyb3VwLWl0ZW0tYWxpZ25tZW50LXN0YXJ0IC5hZy1ncm91cC1pdGVtIHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cblxuLmFnLWdyb3VwLWl0ZW0tYWxpZ25tZW50LWVuZCAuYWctZ3JvdXAtaXRlbSB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xufVxuXG4uYWctdG9nZ2xlLWJ1dHRvbi1pY29uIHtcbiAgICB0cmFuc2l0aW9uOiByaWdodCAwLjNzO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xcHg7XG59XG5cbi5hZy1pbnB1dC1maWVsZCwgLmFnLXNlbGVjdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5hZy1pbnB1dC1maWVsZC1pbnB1dCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4uYWctZmxvYXRpbmctZmlsdGVyLWlucHV0IC5hZy1pbnB1dC1maWVsZC1pbnB1dFt0eXBlPSdkYXRlJ10ge1xuICAgIC8vIEZpeCBhIGJ1ZyBpbiBCbGluayByZW5kZXJpbmcgZW5naW5lIHdoZXJlIGRhdGUgaW5wdXQgd2lsbCBub3Qgc2hyaW5rIGZyb20gaXRzIGRlZmF1bHQgc2l6ZSBpbiBhXG4gICAgLy8gZmxleCBjb250YWluZXIsIGJ1dCBpdCB3aWxsIGdyb3cuIFNvIHdlIGdpdmUgaXQgYSB2ZXJ5IHNtYWxsIHdpZHRoIGFuZCBpdCB3aWxsIGdyb3cgdG8gdGhlIHJpZ2h0IHNpemVcbiAgICB3aWR0aDogMXB4O1xufVxuXG4uYWctcmFuZ2UtZmllbGQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmFnLWFuZ2xlLXNlbGVjdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uYWctYW5nbGUtc2VsZWN0LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5hZy1hbmdsZS1zZWxlY3QtcGFyZW50LWNpcmNsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmFnLWFuZ2xlLXNlbGVjdC1jaGlsZC1jaXJjbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLmFnLXNsaWRlci13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC5hZy1pbnB1dC1maWVsZCB7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIH1cbn1cblxuLmFnLXBpY2tlci1maWVsZC1kaXNwbGF5IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbn1cblxuLmFnLXBpY2tlci1maWVsZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uYWctcGlja2VyLWZpZWxkLWljb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmFnLXBpY2tlci1maWVsZC13cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uYWctbGFiZWwtYWxpZ24tcmlnaHQge1xuICAgIC5hZy1sYWJlbCB7XG4gICAgICAgIG9yZGVyOiAxO1xuICAgIH1cbiAgICA+ICoge1xuICAgICAgICBmbGV4OiBub25lO1xuICAgIH1cbn1cblxuLmFnLWxhYmVsLWFsaWduLXRvcCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICA+ICoge1xuICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgIH1cbn1cblxuLmFnLWNvbG9yLXBhbmVsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uYWctc3BlY3RydW0tY29sb3Ige1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLmFnLXNwZWN0cnVtLWZpbGwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG59XG5cbi5hZy1zcGVjdHJ1bS12YWwge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmFnLXNwZWN0cnVtLWRyYWdnZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5hZy1zcGVjdHJ1bS1odWUge1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCxcbiAgICAgICAgI2ZmMDAwMCAzJSwgI2ZmZmYwMCAxNyUsXG4gICAgICAgICMwMGZmMDAgMzMlLCAjMDBmZmZmIDUwJSxcbiAgICAgICAgIzAwMDBmZiA2NyUsICNmZjAwZmYgODMlLFxuICAgICAgICAjZmYwMDAwIDEwMCVcbiAgICApO1xufVxuXG4uYWctc3BlY3RydW0tYWxwaGEge1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLmFnLXNwZWN0cnVtLWh1ZS1iYWNrZ3JvdW5kIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5hZy1zcGVjdHJ1bS1hbHBoYS1iYWNrZ3JvdW5kIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMCksIHJnYigwLCAwLCAwKSk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uYWctc3BlY3RydW0tdG9vbCB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uYWctc3BlY3RydW0tc2xpZGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5hZy1yZWNlbnQtY29sb3JzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uYWctcmVjZW50LWNvbG9yIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8vIERlZmF1bHQgdmFsdWVzIGZvciB0aGVtZXMgdGhhdCBkbyBub3QgdXNlIHRoZSBtaXhpbnNcbkBmb3IgJGkgZnJvbSAxIHRvIDEwMCB7XG4gICAgLmFnLWNvbHVtbi1zZWxlY3QtaW5kZW50LSN7JGl9IHtcbiAgICAgICAgQGluY2x1ZGUgYWctdW50aGVtZWQtcnRsKCggcGFkZGluZy1sZWZ0OiAkaSAqIDIwcHggKSk7XG4gICAgfVxuXG4gICAgLmFnLXJvdy1ncm91cC1pbmRlbnQtI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBhZy11bnRoZW1lZC1ydGwoKCBwYWRkaW5nLWxlZnQ6ICRpICogMjBweCApKTtcbiAgICB9XG59XG5cbi5hZy1sdHIge1xuICAgIGRpcmVjdGlvbjogbHRyO1xuICAgIC5hZy1ib2R5LCAuYWctZmxvYXRpbmctdG9wLCAuYWctZmxvYXRpbmctYm90dG9tLCAuYWctaGVhZGVyLCAuYWctYm9keS12aWV3cG9ydCwgLmFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIH1cbn1cblxuLmFnLXJ0bCB7XG4gICAgZGlyZWN0aW9uOiBydGw7XG4gICAgLmFnLWJvZHksIC5hZy1mbG9hdGluZy10b3AsIC5hZy1mbG9hdGluZy1ib3R0b20sIC5hZy1oZWFkZXIsIC5hZy1ib2R5LXZpZXdwb3J0LCAuYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICB9XG5cbiAgICAuYWctaWNvbi1jb250cmFjdGVkLFxuICAgIC5hZy1pY29uLXRyZWUtY2xvc2VkIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgfVxufVxuIiwiLy8gQXV0b21hdGljYWxseSBnZW5lcmF0ZSBydGwgc3R5bGVzIGZyb20gcHJvdmlkZWQgbHRyIHN0eWxlcyBieSBmbGlwcGluZyBcImxlZnRcIiBhbmQgXCJyaWdodFwiXG4vLyBpbiBwcm9wZXJ0eSBuYW1lcyBhbmQgdmFsdWVzLlxuLy9cbi8vIEZvciBleGFtcGxlOlxuLy9cbi8vIC5mb28ge1xuLy8gICAgIEBpbmNsdWRlIGFnLXVudGhlbWVkLXJ0bCgobWFyZ2luLWxlZnQ6IDEwcHgpKTtcbi8vIH1cbi8vXG4vLyBXaWxsIGVtaXQ6XG4vL1xuLy8gLmFnLWx0ciAuZm9vIHtcbi8vICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4vLyB9XG4vLyAuYWctcnRsIC5mb28ge1xuLy8gICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4vLyB9XG5AbWl4aW4gYWctdW50aGVtZWQtcnRsKCRydWxlcykge1xuICAgIEBpZiBsZW5ndGgobnRoKCYsIDEpKSA8IDEge1xuICAgICAgICBAZXJyb3IgXCJhZy11bnRoZW1lZC1ydGwoKSBjYW4ndCBiZSB1c2VkIGF0IHRoZSB0b3AgbGV2ZWwgb2YgYSBjc3MgZmlsZSwgb25seSBuZXN0ZWQgaW4gYSBzZWxlY3Rvci5cIjtcbiAgICB9XG4gICAgQGlmIHN0ci1pbmRleChudGgobnRoKCYsIDEpLCAxKSwgXCIuYWctdGhlbWUtXCIpICE9IG51bGwge1xuICAgICAgICBAZXJyb3IgXCJhZy11bnRoZW1lZC1ydGwoKSBzaG91bGQgbm90IGJlIHVzZWQgaW4gYSB0aGVtZSwgdXNlIGFnLXRoZW1lLXJ0bCgpIGluc3RlYWQuXCI7XG4gICAgfVxuICAgIC5hZy1sdHIgJiB7XG4gICAgICAgIEBlYWNoICRwcm9wZXJ0eSwgJHZhbHVlIGluICRydWxlcyB7XG4gICAgICAgICAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuYWctcnRsICYge1xuICAgICAgICBAZWFjaCAkcHJvcGVydHksICR2YWx1ZSBpbiBhZy1nZXQtcnRsLXJ1bGVzKCRydWxlcykge1xuICAgICAgICAgICAgI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBmdW5jdGlvbiBhZy1nZXQtcnRsLXJ1bGVzKCRsdHItcnVsZXMpIHtcbiAgICAkcnRsLXJ1bGVzOiAoKTtcbiAgICBAZWFjaCAkcHJvcGVydHksICR2YWx1ZSBpbiAkbHRyLXJ1bGVzIHtcbiAgICAgICAgQGlmIHN0ci1pbmRleCgkcHJvcGVydHksIFwiLXJpZ2h0XCIpIHtcbiAgICAgICAgICAgICRydGwtcHJvcGVydHk6IGFnLXN0ci1yZXBsYWNlKCRwcm9wZXJ0eSwgXCItcmlnaHRcIiwgXCItbGVmdFwiKTtcbiAgICAgICAgICAgICRydGwtcnVsZXM6IG1hcC1tZXJnZSgkcnRsLXJ1bGVzLCAoJHJ0bC1wcm9wZXJ0eTogJHZhbHVlKSk7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2UgaWYgc3RyLWluZGV4KCRwcm9wZXJ0eSwgXCItbGVmdFwiKSB7XG4gICAgICAgICAgICAkcnRsLXByb3BlcnR5OiBhZy1zdHItcmVwbGFjZSgkcHJvcGVydHksIFwiLWxlZnRcIiwgXCItcmlnaHRcIik7XG4gICAgICAgICAgICAkcnRsLXJ1bGVzOiBtYXAtbWVyZ2UoJHJ0bC1ydWxlcywgKCRydGwtcHJvcGVydHk6ICR2YWx1ZSkpO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIGlmICRwcm9wZXJ0eSA9PSBcInJpZ2h0XCIge1xuICAgICAgICAgICAgJHJ0bC1ydWxlczogbWFwLW1lcmdlKCRydGwtcnVsZXMsIChsZWZ0OiAkdmFsdWUpKTtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSBpZiAkcHJvcGVydHkgPT0gXCJsZWZ0XCIge1xuICAgICAgICAgICAgJHJ0bC1ydWxlczogbWFwLW1lcmdlKCRydGwtcnVsZXMsIChyaWdodDogJHZhbHVlKSk7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2UgaWYgJHZhbHVlID09IFwicmlnaHRcIiB7XG4gICAgICAgICAgICAkcnRsLXJ1bGVzOiBtYXAtbWVyZ2UoJHJ0bC1ydWxlcywgKCRwcm9wZXJ0eTogbGVmdCkpO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIGlmICR2YWx1ZSA9PSBcImxlZnRcIiB7XG4gICAgICAgICAgICAkcnRsLXJ1bGVzOiBtYXAtbWVyZ2UoJHJ0bC1ydWxlcywgKHByb3BlcnR5OiByaWdodCkpO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgIEBlcnJvciBcImFnLWdldC1ydGwtcnVsZXMgZG9lc24ndCBrbm93IGhvdyB0byBwcm9jZXNzIHRoZSBcXFwiI3skcHJvcGVydHl9XFxcIiBwcm9wZXJ0eVwiXG4gICAgICAgIH1cbiAgICB9XG4gICAgQHJldHVybiAkcnRsLXJ1bGVzO1xufVxuXG5AZnVuY3Rpb24gYWctaW5zZXJ0LWNsYXNzLWFmdGVyLXRoZW1lKCRzZWxlY3RvcnMsICRjbGFzcykge1xuICAgIC8vIHRoaXMgbmVlZHMgdG8gZG8gYSAyLWxldmVsIGxvb3AsIGJlY2F1c2UgdGhlIHNlbGVjdG9yIGxpc3QgcmV0dXJuZWQgYnkgJiBpbiBTYXNzIGlzIGEgMkQgbGlzdCxcbiAgICAvLyBlLmcuICAuZm9vIC5iYXIsIC5mb28gLmJheiB7IC4uLiB9IGlzICgoXCIuZm9vXCIsIFwiLmJhclwiKSwgKFwiLmZvb1wiLCBcIi5iYXpcIikpXG4gICAgJHNlbGVjdG9yLWxpc3Q6ICgpO1xuICAgIEBlYWNoICRzZWxlY3RvciBpbiAkc2VsZWN0b3JzIHtcbiAgICAgICAgJHJlc3VsdDogKCk7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRzZWxlY3Rvcikge1xuICAgICAgICAgICAgJGl0ZW06IG50aCgkc2VsZWN0b3IsICRpKTtcbiAgICAgICAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCAkaXRlbSk7XG4gICAgICAgICAgICBAaWYgJGkgPT0gMSB7XG4gICAgICAgICAgICAgICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsICRjbGFzcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJHNlbGVjdG9yLWxpc3Q6IGFwcGVuZCgkc2VsZWN0b3ItbGlzdCwgJHJlc3VsdCwgY29tbWEpO1xuICAgIH1cbiAgICBAcmV0dXJuICRzZWxlY3Rvci1saXN0O1xufVxuXG5AZnVuY3Rpb24gYWctc3RyLXJlcGxhY2UoJHN0cmluZywgJHNlYXJjaCwgJHJlcGxhY2U6ICcnKSB7XG4gICAgJGluZGV4OiBzdHItaW5kZXgoJHN0cmluZywgJHNlYXJjaCk7XG4gICAgQGlmICRpbmRleCB7XG4gICAgICAgIEByZXR1cm4gc3RyLXNsaWNlKCRzdHJpbmcsIDEsICRpbmRleCAtIDEpXG4gICAgICAgICAgICAgICAgKyAkcmVwbGFjZVxuICAgICAgICAgICAgICAgICsgYWctc3RyLXJlcGxhY2Uoc3RyLXNsaWNlKCRzdHJpbmcsICRpbmRleFxuICAgICAgICAgICAgICAgICsgc3RyLWxlbmd0aCgkc2VhcmNoKSksICRzZWFyY2gsICRyZXBsYWNlKTtcbiAgICB9XG4gICAgQHJldHVybiAkc3RyaW5nO1xufVxuXG5AbWl4aW4gYWctc2VsZWN0YWJsZSgkdmFsdWUpIHtcbiAgICBAaWYgJHZhbHVlID09IG51bGwge1xuICAgICAgICAkdmFsdWU6IG5vbmU7XG4gICAgfVxuXG4gICAgLW1vei11c2VyLXNlbGVjdDogJHZhbHVlO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbiAgICAtbXMtdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbiAgICB1c2VyLXNlbGVjdDogJHZhbHVlO1xufSIsIi5hZy1ib2R5IC5hZy1ib2R5LXZpZXdwb3J0IHtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59IiwiLmFnLWNoYXJ0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLmFnLWNoYXJ0LWNvbXBvbmVudHMtd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuXG4uYWctY2hhcnQtdGl0bGUtZWRpdCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFnLWNoYXJ0LXRpdGxlLWVkaXQuY3VycmVudGx5LWVkaXRpbmcge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmFnLWNoYXJ0LWNhbnZhcy13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmFnLWNoYXJ0cy1jYW52YXMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uYWctY2hhcnQtbWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTBweDtcbiAgICB3aWR0aDogMjRweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIEBpbmNsdWRlIGFnLXVudGhlbWVkLXJ0bCgocmlnaHQ6IDIwcHgpKTtcbn1cblxuLmFnLWNoYXJ0LWRvY2tlZC1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgdHJhbnNpdGlvbjogbWluLXdpZHRoIDAuNHM7XG59XG5cbi5hZy1jaGFydC1tZW51LWhpZGRlbiB+IC5hZy1jaGFydC1kb2NrZWQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmFnLWNoYXJ0LXRhYmJlZC1tZW51IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5hZy1jaGFydC10YWJiZWQtbWVudS1oZWFkZXIge1xuICAgIGZsZXg6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLmFnLWNoYXJ0LXRhYmJlZC1tZW51LWJvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmFnLWNoYXJ0LXRhYiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4uYWctY2hhcnQtc2V0dGluZ3Mge1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cblxuLmFnLWNoYXJ0LXNldHRpbmdzLXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5hZy1jaGFydC1zZXR0aW5ncy1uYXYtYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLmFnLWNoYXJ0LXNldHRpbmdzLWNhcmQtc2VsZWN0b3Ige1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcGFkZGluZzogMCAxMHB4OyAvLyBpbmNyZWFzZSBzaXplIG9mIGNsaWNrIGFyZWEgZm9yIGJldHRlciBVWFxufVxuXG4uYWctY2hhcnQtc2V0dGluZ3MtY2FyZC1pdGVtIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgd2lkdGg6IDEwcHg7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7IC8vIGV4Y2VwdGlvbiB0byB0aGUgcnVsZSBvZiBubyB2aXN1YWwgc3R5bGVzIGluIGZ1bmN0aW9uYWwgc3R5bGVzaGVldCAtIHdpdGhvdXQgYSBiYWNrZ3JvdW5kIHRoaXMgZWxlbWVudCB3b3VsZCBiZSBpbnZpc2libGVcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgJi5hZy1ub3Qtc2VsZWN0ZWQge1xuICAgICAgICBvcGFjaXR5OiAwLjI7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgLy8gbWFrZSBleHBhbmRlZCBjbGljayBhcmVhXG4gICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAtMTBweDtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICB9XG59XG5cbi5hZy1jaGFydC1zZXR0aW5ncy1wcmV2LFxuLmFnLWNoYXJ0LXNldHRpbmdzLW5leHQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4OiBub25lO1xufVxuXG4uYWctY2hhcnQtc2V0dGluZ3MtcHJldi1idXR0b24sXG4uYWctY2hhcnQtc2V0dGluZ3MtbmV4dC1idXR0b24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG9wYWNpdHk6IDA7XG59XG5cbi5hZy1jaGFydC1zZXR0aW5ncy1taW5pLWNoYXJ0cy1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLmFnLWNoYXJ0LXNldHRpbmdzLW1pbmktd3JhcHBlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmLmFnLWFuaW1hdGluZyB7XG4gICAgICAgIHRyYW5zaXRpb246IGxlZnQgMC4zcztcbiAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgIH1cbn1cblxuLmFnLWNoYXJ0LW1pbmktdGh1bWJuYWlsIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5hZy1jaGFydC1taW5pLXRodW1ibmFpbC1jYW52YXMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uYWctY2hhcnQtZGF0YS13cmFwcGVyLFxuLmFnLWNoYXJ0LWZvcm1hdC13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4uYWctY2hhcnQtZGF0YS1zZWN0aW9uLFxuLmFnLWNoYXJ0LWZvcm1hdC1zZWN0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbjogMDtcbn1cblxuLmFnLWNoYXJ0cy1mb250LXBhbmVsLWNvbnRyb2xzIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi5hZy1jaGFydC1lbXB0eS10ZXh0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmFnLWNoYXJ0IC5hZy1jaGFydC1tZW51IHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uYWctY2hhcnQtbWVudS1oaWRkZW46aG92ZXIgLmFnLWNoYXJ0LW1lbnUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbn1cbiIsIi5hZy1kYXRlLXRpbWUtbGlzdC1wYWdlLXRpdGxlLWJhciB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLmFnLWRhdGUtdGltZS1saXN0LXBhZ2UtY29sdW1uLWxhYmVscy1yb3csXG4uYWctZGF0ZS10aW1lLWxpc3QtcGFnZS1lbnRyaWVzLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLmFnLWRhdGUtdGltZS1saXN0LXBhZ2UtY29sdW1uLWxhYmVsLFxuLmFnLWRhdGUtdGltZS1saXN0LXBhZ2UtZW50cnkge1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgZmxleC1ncm93OiAxO1xufVxuXG4uYWctZGF0ZS10aW1lLWxpc3QtcGFnZS1lbnRyeSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufSIsIkBpbXBvcnQgXCIuLi9hZy10aGVtZS1tYXRlcmlhbC1taXhpblwiO1xuXG4vLyBMRUdBQ1kgVEhFTUUgRklMRVxuLy8gVGhpcyBtaXhpbiBpcyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aCBvbGRlciBhcHBzIHRoYXQgdXNlIGdsb2JhbCB2YXJpYWJsZXNcbi8vIEluY2x1ZGluZyB0aGlzIGZpbGUgZW1pdHMgQ1NTIGZvciB0aGUgTWF0ZXJpYWwgdGhlbWUuIE5ldyBhcHBzIHNob3VsZCBAaW1wb3J0IGFnLXRoZW1lLW1hdGVyaWFsLW1peGluLnNjc3Ncbi8vIGFuZCBAaW5jbHVkZSBhZy10aGVtZS1tYXRlcmlhbCgkcGFyYW1zKSwgaW5zdGVhZCBvZiB1c2luZyB0aGlzIGZpbGUuXG5cbkBpbXBvcnQgXCIuL2FnLXRoZW1lLW1hdGVyaWFsLWRlZmluZS1sZWdhY3ktdmFyc1wiO1xuXG4uYWctdGhlbWUtbWF0ZXJpYWwge1xuICAgIEBpbmNsdWRlIGFnLXRoZW1lLW1hdGVyaWFsKGFnLXRoZW1lLWJhc2UtY3JlYXRlLXBhcmFtcy1mcm9tLWxlZ2FjeS12YXJzKCRhZy10aGVtZS1tYXRlcmlhbC1kZWZhdWx0LXBhcmFtcykpO1xuICAgIEBpbmNsdWRlIGFnLXYyMi10by12MjMtY29tcGF0aWJpbGl0eS1tb2RlKCk7XG59XG4iLCJAaW1wb3J0IFwiLi9hZy10aGVtZS1iYXNlLWRlZmF1bHQtcGFyYW1zXCI7XG5AaW1wb3J0IFwiLi9sZWdhY3kvYWctdGhlbWUtYmFzZS1jcmVhdGUtcGFyYW1zLWZyb20tbGVnYWN5LXZhcnNcIjtcbkBpbXBvcnQgXCIuL2xlZ2FjeS9hZy12MjItdG8tdjIzLWNvbXBhdGliaWxpdHktbW9kZVwiO1xuQGltcG9ydCBcIi4uLy4uL21peGlucy9hZy10aGVtZS1taXhpbnNcIjtcbkBpbXBvcnQgXCIuL3BhcnRzL3Jlc2V0XCI7XG5AaW1wb3J0IFwiLi9wYXJ0cy9ncmlkLWxheW91dFwiO1xuQGltcG9ydCBcIi4vcGFydHMvZ3JpZC1ib3JkZXJzXCI7XG5AaW1wb3J0IFwiLi9wYXJ0cy9tZW51XCI7XG5AaW1wb3J0IFwiLi9wYXJ0cy9zaWRlYmFyXCI7XG5AaW1wb3J0IFwiLi9wYXJ0cy9maWx0ZXItdG9vbC1wYW5lbFwiO1xuQGltcG9ydCBcIi4vcGFydHMvY29sdW1ucy10b29sLXBhbmVsXCI7XG5AaW1wb3J0IFwiLi9wYXJ0cy93aWRnZXRzXCI7XG5AaW1wb3J0IFwiLi9wYXJ0cy9oZWFkZXJcIjtcbkBpbXBvcnQgXCIuL3BhcnRzL2Zvb3RlclwiO1xuQGltcG9ydCBcIi4vcGFydHMvY29sdW1uLWRyb3BcIjtcbkBpbXBvcnQgXCIuL3BhcnRzL2NoYXJ0c1wiO1xuQGltcG9ydCBcIi4vcGFydHMvZGF0ZS10aW1lXCI7XG5cbiRhZy1jb21wYXRpYmlsaXR5LW1vZGU6IFwidmFyaWFibGVzXCIgIWRlZmF1bHQ7XG5cbkBtaXhpbiBhZy10aGVtZS1iYXNlKCRwYXJhbXM6ICgpKSB7XG4gICAgQGluY2x1ZGUgYWctYWxsb3ctY29sb3ItcGFyYW0tYWNjZXNzLXdpdGgtYWctcGFyYW0oZmFsc2UpO1xuICAgIEBpbmNsdWRlIGFnLWluY2x1ZGUtdGhlbWUtb25jZS1vbmx5KCk7XG4gICAgJHBhcmFtczogYWctcHJvY2Vzcy10aGVtZS12YXJpYWJsZXMoJHBhcmFtcywgJGFnLXRoZW1lLWJhc2UtZGVmYXVsdC1wYXJhbXMpO1xuXG4gICAgQGluY2x1ZGUgYWctaWNvbnMtZm9udC1mYWNlKCk7XG4gICAgQGluY2x1ZGUgYWctaWNvbnMtd2ViZm9udCgpO1xuXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoY29sb3IsIGZvcmVncm91bmQtY29sb3IpO1xuICAgIGZvbnQtZmFtaWx5OiBhZy1wYXJhbShmb250LWZhbWlseSk7XG4gICAgZm9udC1zaXplOiBhZy1wYXJhbShmb250LXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgLmFnLXJvb3Qtd3JhcHBlciB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJhY2tncm91bmQtY29sb3IsIGJhY2tncm91bmQtY29sb3IpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGFnLXRoZW1lLWJhc2UtcGFydC1yZXNldCgpO1xuICAgIEBpbmNsdWRlIGFnLXRoZW1lLWJhc2UtcGFydC13aWRnZXRzKCk7XG4gICAgQGluY2x1ZGUgYWctdGhlbWUtYmFzZS1wYXJ0LWdyaWQtbGF5b3V0KCk7XG4gICAgQGluY2x1ZGUgYWctdGhlbWUtYmFzZS1wYXJ0LWdyaWQtYm9yZGVycygpO1xuICAgIEBpbmNsdWRlIGFnLXRoZW1lLWJhc2UtcGFydC1tZW51KCk7XG4gICAgQGluY2x1ZGUgYWctdGhlbWUtYmFzZS1wYXJ0LXNpZGViYXIoKTtcbiAgICBAaW5jbHVkZSBhZy10aGVtZS1iYXNlLXBhcnQtZmlsdGVyLXRvb2wtcGFuZWwoKTtcbiAgICBAaW5jbHVkZSBhZy10aGVtZS1iYXNlLXBhcnQtY29sdW1ucy10b29sLXBhbmVsKCk7XG4gICAgQGluY2x1ZGUgYWctdGhlbWUtYmFzZS1wYXJ0LWhlYWRlcigpO1xuICAgIEBpbmNsdWRlIGFnLXRoZW1lLWJhc2UtcGFydC1mb290ZXIoKTtcbiAgICBAaW5jbHVkZSBhZy10aGVtZS1iYXNlLXBhcnQtY29sdW1uLWRyb3AoKTtcbiAgICBAaW5jbHVkZSBhZy10aGVtZS1iYXNlLXBhcnQtY2hhcnRzKCk7XG4gICAgQGluY2x1ZGUgYWctdGhlbWUtYmFzZS1wYXJ0LWRhdGUtdGltZSgpO1xuXG4gICAgQGlmIG5vdCBhZy1wYXJhbShzdXBwcmVzcy1uYXRpdmUtd2lkZ2V0LXN0eWxpbmcpIHtcbiAgICAgICAgQGluY2x1ZGUgYWctbmF0aXZlLWlucHV0cygpO1xuICAgIH1cbiAgICBAaW5jbHVkZSBhZy1hbGxvdy1jb2xvci1wYXJhbS1hY2Nlc3Mtd2l0aC1hZy1wYXJhbSh0cnVlKTtcbn0iLCJcbi8vIFV0aWxpdGllcyB0byBwYXJzZSBwYXJhbXMgc3VwcGxpZWQgYXMgYSBtYXAuIFZhbHVlcyBjYW4gYmUgZGVmaW5lZCBpbiB0ZXJtcyBvZlxuLy8gb3RoZXIgdmFsdWVzLCB3aXRoIG1vZGlmaWNhdGlvbnMuIEZvciBleGFtcGxlOlxuLy8gXG4vLyBAaW5jbHVkZSBhZy1yZWdpc3Rlci1wYXJhbXMoKFxuLy8gICAgIGE6IGFnLWRlcml2ZWQoYiwgJHRpbWVzOiBjLCAkcGx1czogMiksXG4vLyAgICAgYjogNCxcbi8vICAgICBjOiAxMFxuLy8gKSk7XG4vLyBAZGVidWcgYWctcGFyYW0oYSk7IC8vIG91dHB1dHMgNDJcblxuLy8gRGVmaW5lIGEgZGVyaXZlZCBwYXJhbWV0ZXIuIERlcml2ZWQgdmFsdWVzIGFyZSBsYXppbHkgZXZhbHVhdGVkLiBUaGlzIGZ1bmN0aW9uIGlzXG4vLyBzdWdhciBmb3IgZGVmaW5pbmcgYSBkYXRhIHN0cnVjdHVyZSB0byByZWNvcmQgdGhlIGRlcml2ZWQgdmFsdWUncyBwYXJhbWV0ZXJzLlxuQGZ1bmN0aW9uIGFnLWRlcml2ZWQoXG4gICAgJHJlZmVyZW5jZS1uYW1lLFxuICAgICR0aW1lczogbnVsbCxcbiAgICAkZGl2aWRlOiBudWxsLFxuICAgICRwbHVzOiBudWxsLFxuICAgICRtaW51czogbnVsbCxcbiAgICAkb3BhY2l0eTogbnVsbCxcbiAgICAkbGlnaHRlbjogbnVsbCxcbiAgICAkZGFya2VuOiBudWxsLCBcbiAgICAkbWl4OiBudWxsLFxuICAgICRzZWxmLW92ZXJsYXk6IG51bGxcbikge1xuICAgICRkZXJpdmVkOiAoXG4gICAgICAgIFwiLS1hZy1pcy1kZXJpdmVkLXZhbHVlXCI6IHRydWUsXG4gICAgICAgIFwicmVmZXJlbmNlLW5hbWVcIjogJHJlZmVyZW5jZS1uYW1lXG4gICAgKTtcbiAgICBAaWYgJHRpbWVzICE9IG51bGwge1xuICAgICAgICAkZGVyaXZlZDogbWFwLW1lcmdlKCRkZXJpdmVkLCAoXCJ0aW1lc1wiOiAkdGltZXMpKTtcbiAgICB9XG4gICAgQGlmICRkaXZpZGUgIT0gbnVsbCB7XG4gICAgICAgICRkZXJpdmVkOiBtYXAtbWVyZ2UoJGRlcml2ZWQsIChcImRpdmlkZVwiOiAkZGl2aWRlKSk7XG4gICAgfVxuICAgIEBpZiAkcGx1cyAhPSBudWxsIHtcbiAgICAgICAgJGRlcml2ZWQ6IG1hcC1tZXJnZSgkZGVyaXZlZCwgKFwicGx1c1wiOiAkcGx1cykpO1xuICAgIH1cbiAgICBAaWYgJG1pbnVzICE9IG51bGwge1xuICAgICAgICAkZGVyaXZlZDogbWFwLW1lcmdlKCRkZXJpdmVkLCAoXCJtaW51c1wiOiAkbWludXMpKTtcbiAgICB9XG4gICAgQGlmICRvcGFjaXR5ICE9IG51bGwge1xuICAgICAgICAkZGVyaXZlZDogbWFwLW1lcmdlKCRkZXJpdmVkLCAoXCJvcGFjaXR5XCI6ICRvcGFjaXR5KSk7XG4gICAgfVxuICAgIEBpZiAkbGlnaHRlbiAhPSBudWxsIHtcbiAgICAgICAgJGRlcml2ZWQ6IG1hcC1tZXJnZSgkZGVyaXZlZCwgKFwibGlnaHRlblwiOiAkbGlnaHRlbikpO1xuICAgIH1cbiAgICBAaWYgJGRhcmtlbiAhPSBudWxsIHtcbiAgICAgICAgJGRlcml2ZWQ6IG1hcC1tZXJnZSgkZGVyaXZlZCwgKFwiZGFya2VuXCI6ICRkYXJrZW4pKTtcbiAgICB9XG4gICAgQGlmICRtaXggIT0gbnVsbCB7XG4gICAgICAgICRkZXJpdmVkOiBtYXAtbWVyZ2UoJGRlcml2ZWQsIChcIm1peFwiOiAkbWl4KSk7XG4gICAgfVxuICAgIEBpZiAkc2VsZi1vdmVybGF5ICE9IG51bGwge1xuICAgICAgICAkZGVyaXZlZDogbWFwLW1lcmdlKCRkZXJpdmVkLCAoXCJzZWxmLW92ZXJsYXlcIjogJHNlbGYtb3ZlcmxheSkpO1xuICAgIH1cbiAgICBAcmV0dXJuICRkZXJpdmVkO1xufVxuXG4vLyBVc2UgYSBwYXJhbWV0ZXIgaW4gU0NTUywgZS5nLiBgY29sb3I6IGFnLXBhcmFtKGZvcmVncm91bmQtY29sb3IpYFxuLy8gTm90ZSwgaXQgaXMgbm90IHBvc3NpYmxlIHRvIHVzZSB0aGlzIGZvciBjb2xvciBwYXJhbXMsIHVzZSB0aGUgYWctY29sb3ItcHJvcGVydHkgbWl4aW4gaW5zdGVhZFxuQGZ1bmN0aW9uIGFnLXBhcmFtKCRuYW1lLCAkY2FsbGVyOiBudWxsKSB7XG4gICAgQGlmICQtYWctYWxsb3ctY29sb3ItcGFyYW0tYWNjZXNzLXdpdGgtYWctcGFyYW0gIT0gdHJ1ZSBhbmQgc3RyLWluZGV4KCRuYW1lLCBcIi1jb2xvclwiKSBhbmQgJGNhbGxlciAhPSBcInBlcm1pdHRlZCBpbnRlcm5hbCBfYWctdGhlbWUtcGFyYW1zLnNjc3MgYWNjZXNzXCIge1xuICAgICAgICBAZXJyb3IgXCJJbGxlZ2FsIGNhbGwgdG8gYWctcGFyYW0oI3skbmFtZX0pIC0gYWxsIGNvbG91ciBwYXJhbXMgbXVzdCBiZSBhY2Nlc3NlZCB0aHJvdWdoIHRoZSBhZy1jb2xvci1wcm9wZXJ0eSBtaXhpbi5cIjtcbiAgICB9XG4gICAgJHJlc29sdmVkOiAtYWctcGFyYW0tdW5jaGVja2VkKCRuYW1lKTtcbiAgICBAaWYgc3RyLWluZGV4KGluc3BlY3QoJHJlc29sdmVkKSwgXCJhZy1kZXJpdmVkKFwiKSAhPSBudWxsIHtcbiAgICAgICAgQGVycm9yIFwiI3skbmFtZX0gcGFyYW0gY29udGFpbnMgYSBhZy1kZXJpdmVkKCkgYXMgYSBDU1MgZnVuY3Rpb24gY2FsbCBleHByZXNzaW9uLiBUaGlzIG1lYW5zIHRoYXQgeW91IGhhdmUgdHJpZWQgdG8gdXNlIGFnLWRlcml2ZWQoKSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGlzIGRlZmluZWQgLSB5b3UgbmVlZCB0byBpbmNsdWRlIHRoZSBmaWxlIHRoYXQgZGVmaW5lcyBpdC5cIjtcbiAgICB9XG4gICAgQGlmIHR5cGUtb2YoJHJlc29sdmVkKSA9PSBtYXAge1xuICAgICAgICBAZXJyb3IgXCJhZy1wYXJhbSgjeyRuYW1lfSkgcmVzb2x2ZWQgdG8gYSBtYXAsIHdoaWNoIGlzIG5vdCB2YWxpZCBDU1M6ICN7aW5zcGVjdCgkcmVzb2x2ZWQpfVwiO1xuICAgIH1cbiAgICBAZWFjaCAkcGFydCBpbiAkcmVzb2x2ZWQge1xuICAgICAgICBAaWYgdHlwZS1vZigkcGFydCkgPT0gbWFwIHtcbiAgICAgICAgICAgIEBlcnJvciBcImFnLXBhcmFtKCN7JG5hbWV9KSByZXNvbHZlZCB0byBhIGxpc3QgY29udGFpbmluZyBhIG1hcCwgd2hpY2ggaXMgbm90IHZhbGlkIENTUzogI3tzdHItc2xpY2UoaW5zcGVjdCgkcmVzb2x2ZWQpLCAwLCAxMDAwKX1cIjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAcmV0dXJuICRyZXNvbHZlZDtcbn1cblxuLy8gUmV0dXJuIHRydWUgaWYgYSBwYXJhbSBoYXMgYSB2YWx1ZSBvdGhlciB0aGFuIG51bGwgb3IgZmFsc2VcbkBmdW5jdGlvbiBhZy1wYXJhbS1pcy1zZXQoJG5hbWUpIHtcbiAgICAkdmFsdWU6IC1hZy1wYXJhbS11bmNoZWNrZWQoJG5hbWUpO1xuICAgIEByZXR1cm4gJHZhbHVlICE9IG51bGwgYW5kICR2YWx1ZSAhPSBmYWxzZTtcbn1cblxuLy8gUmV0dXJuIHRydWUgaWYgdHdvIHBhcmFtcyBoYXZlIGRpZmZlcmVudCB2YWx1ZXNcbkBmdW5jdGlvbiBhZy1wYXJhbXMtYXJlLWRpZmZlcmVudCgkbmFtZS1hLCAkbmFtZS1iKSB7XG4gICAgQHJldHVybiAtYWctcGFyYW0tdW5jaGVja2VkKCRuYW1lLWEpICE9IC1hZy1wYXJhbS11bmNoZWNrZWQoJG5hbWUtYik7XG59XG5cblxuLy8gQSBtaXhpbiB0byBhcHBseSBhIGNvbG9yIHRvIGFuIGVsZW1lbnQuIFRoaXMgc2V0cyB0aGUgdmFsdWUgb2YgYSBDU1MgcHJvcGVydHkgdXNpbmcgYVxuLy8gdGhlbWUgcGFyYW1ldGVyLCBhbmQgYWxzbyBlbWl0cyBDU1MgdGhhdCBhbGxvd3MgdGhlIHZhbHVlIHRvIGJlIG92ZXJyaWRkZW4gYXQgcnVudGltZVxuLy8gdXNpbmcgQ1NTIHZhcmlhYmxlcy4gSWYgdGhlIG1peGluIGlzIGNhbGxlZCBsaWtlIHRoaXM6XG4vL1xuLy8gICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShiYWNrZ3JvdW5kLWNvbG9yLCBoZWFkZXItYmFja2dyb3VuZC1jb2xvcilcbi8vXG4vLyAuLi4gYW5kIHRoZSBoZWFkZXItYmFja2dyb3VuZC1jb2xvciBwYXJhbWV0ZXIgaXMgc2V0IHRvIGByZWRgIHRoZW4gdGhlIGVtaXR0ZWQgQ1NTIHdpbGxcbi8vIGJlIHNvbWV0aGluZyBsaWtlOlxuLy9cbi8vICAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hZy1oZWFkZXItYmFja2dyb3VuZC1jb2xvciwgcmVkKTtcbi8vXG4vLyBUaGUgb3B0aW9uYWwgJGltcG9ydGFudCBhcmd1bWVudCBjYW4gYmUgdXNlZCB0byBhZGQgYSBDU1MgIWltcG9ydGFudCBkaXJlY3RpdmVcbkBtaXhpbiBhZy1jb2xvci1wcm9wZXJ0eSgkcHJvcGVydHksICRwYXJhbSwgJGltcG9ydGFudDogZmFsc2UpIHtcbiAgICAkdmFsdWU6IGFnLXBhcmFtKCRwYXJhbSwgJGNhbGxlcjogXCJwZXJtaXR0ZWQgaW50ZXJuYWwgX2FnLXRoZW1lLXBhcmFtcy5zY3NzIGFjY2Vzc1wiKTtcbiAgICAkaW1wb3J0YW50OiBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcblxuICAgIEBpZiAkdmFsdWUgIT0gbnVsbCB7XG4gICAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlICRpbXBvcnRhbnQ7XG4gICAgfVxuICAgIEBpZiBub3QgYWctcGFyYW0taXMtc2V0KHN1cHByZXNzLWNzcy12YXItb3ZlcnJpZGVzKSB7XG4gICAgICAgICR2YWx1ZS1hcy1jc3MtdmFyOiAtYWctcGFyYW0tYXMtY3NzLXZhcigkcGFyYW0pO1xuICAgICAgICBAaWYgJHZhbHVlICE9ICR2YWx1ZS1hcy1jc3MtdmFyIHtcbiAgICAgICAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlLWFzLWNzcy12YXIgJGltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4kLWFnLWFsbG93LWNvbG9yLXBhcmFtLWFjY2Vzcy13aXRoLWFnLXBhcmFtOiB0cnVlO1xuQG1peGluIGFnLWFsbG93LWNvbG9yLXBhcmFtLWFjY2Vzcy13aXRoLWFnLXBhcmFtKCRhbGxvdykge1xuICAgICQtYWctYWxsb3ctY29sb3ItcGFyYW0tYWNjZXNzLXdpdGgtYWctcGFyYW06ICRhbGxvdyAhZ2xvYmFsO1xufVxuXG4vLyBNZXJnZSBwYXJhbXMgc3VwcGxpZWQgdG8gYSB0aGVtZSB3aXRoIHRoZSBkZWZhdWx0cywgb3B0aW9uYWxseSB2YWxpZGF0ZSwgYW5kIHJlZ2lzdGVyXG4vLyB0aGUgcmVzdWx0aW5nIG1hcCBnbG9iYWxseSBmb3IgdXNlIHdpdGggYWctcGFyYW0oKVxuLy9cbi8vICRwYXJhbXM6IHBhcmFtcyBzdXBwbGllZCBieSB0aGUgZGVyaXZlZCB0aGVtZVxuLy8gJGRlZmF1bHRzOiB2YWx1ZXMgZm9yIHBhcmFtcyBub3QgaW4gJHBhcmFtc1xuQGZ1bmN0aW9uIGFnLXByb2Nlc3MtdGhlbWUtdmFyaWFibGVzKCRwYXJhbXMsICRkZWZhdWx0cykge1xuICAgICRwYXJhbXM6IC1hZy1yZXF1aXJlLXR5cGUoJHBhcmFtcywgbWFwLCBcIiRwYXJhbXMgYXJndW1lbnQgdG8gYWctcHJvY2Vzcy10aGVtZS12YXJpYWJsZXNcIik7XG4gICAgLy8gRGVyaXZlZCB0aGVtZXMgY2FuIGFkZCBwYXJhbXMsIGFuZCB0aG9zZSBuZXcgcGFyYW1zIHdvdWxkIHRyaWdnZXIgdmFsaWRhdGlvbiBlcnJvcnMgd2hlblxuICAgIC8vIHBhc3NlZCB0byB0aGUgYmFzZSB0aGVtZSwgc28gZG9uJ3QgcmUtdmFsaWRhdGUgcGFyYW1zIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gdmFsaWRhdGVkXG4gICAgQGlmIG5vdCBtYXAtaGFzLWtleSgkcGFyYW1zLCBcIi0tYWctYWxyZWFkeS12YWxpZGF0ZWRcIikge1xuICAgICAgICBAZWFjaCAka2V5IGluIG1hcC1rZXlzKCRwYXJhbXMpIHtcbiAgICAgICAgICAgIEBpZiBub3QgbWFwLWhhcy1rZXkoJGRlZmF1bHRzLCAka2V5KSBhbmQgc3RyLWluZGV4KCRrZXksIFwiLS1pbnRlcm5hbC1cIikgIT0gMSB7XG4gICAgICAgICAgICAgICAgQHdhcm4gXCJVbnJlY29nbmlzZWQgcGFyYW0gXFxcIiN7JGtleX1cXFwiXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGlmIG1hcC1nZXQoJHBhcmFtcywgXCJpY29ucy1mb250LWNvZGVzXCIpIGFuZCBtYXAtZ2V0KCRkZWZhdWx0cywgXCJpY29ucy1mb250LWNvZGVzXCIpIHtcbiAgICAgICAgJG1lcmdlZC1jb2RlczogbWFwLW1lcmdlKG1hcC1nZXQoJGRlZmF1bHRzLCBcImljb25zLWZvbnQtY29kZXNcIiksIG1hcC1nZXQoJHBhcmFtcywgXCJpY29ucy1mb250LWNvZGVzXCIpKTtcbiAgICAgICAgJHBhcmFtczogbWFwLW1lcmdlKCRwYXJhbXMsIChcImljb25zLWZvbnQtY29kZXNcIjogJG1lcmdlZC1jb2RlcykpO1xuICAgIH1cbiAgICAkcGFyYW1zOiBtYXAtbWVyZ2UoJGRlZmF1bHRzLCAkcGFyYW1zKTtcbiAgICAkcGFyYW1zOiBtYXAtbWVyZ2UoJHBhcmFtcywgKFwiLS1hZy1hbHJlYWR5LXZhbGlkYXRlZFwiOiB0cnVlKSk7XG4gICAgJC1hZy1wYXJhbXM6ICRwYXJhbXMgIWdsb2JhbDtcbiAgICBAcmV0dXJuICRwYXJhbXM7XG59XG5cbi8vIGdsb2JhbCBtYXAgb2YgcGFyYW1zIHVzZWQgYnkgYWctcGFyYW0oKVxuJC1hZy1wYXJhbXM6IG51bGwgIWRlZmF1bHQ7XG5cbi8vIFJlZ2lzdGVyIGEgcGFyYW1zIG1hcCBnbG9iYWxseSBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIGJ5IGFnLXBhcmFtKCRuYW1lKVxuLy8gTk9URTogQ3VzdG9tIHRoZW1lcyBzaG91bGQgTk9UIHVzZSB0aGlzLCB1c2UgYWctcHJvY2Vzcy10aGVtZS12YXJpYWJsZXMoKSBpbnN0ZWFkXG5AbWl4aW4gYWctcmVnaXN0ZXItcGFyYW1zKCRwYXJhbXMpIHtcbiAgICAkcGFyYW1zOiAtYWctcmVxdWlyZS10eXBlKCRwYXJhbXMsIFwibWFwXCIsIFwiJHBhcmFtcyBhcmd1bWVudFwiKTtcbiAgICAkLWFnLXBhcmFtczogJHBhcmFtcyAhZ2xvYmFsO1xufVxuXG4vL1xuLy8gUFJJVkFURSBJTVBMRU1FTlRBVElPTiBGVU5DVElPTlNcbi8vXG5cbi8vIFJldHVybiBhIHBhcmFtZXRlciB2YWx1ZSBhcyBhIENTUyB2YXJpYWJsZSBkZWNsYXJhdGlvblxuQGZ1bmN0aW9uIC1hZy1wYXJhbS1hcy1jc3MtdmFyKCRuYW1lKSB7XG4gICAgJHZhbHVlOiBtYXAtZ2V0KCQtYWctcGFyYW1zLCAkbmFtZSk7XG4gICAgQGlmIC1pcy1hZy1kZXJpdmVkKCR2YWx1ZSkge1xuICAgICAgICAkaGFzLW1vZGlmaWNhdG9uczogbGVuZ3RoKCR2YWx1ZSkgPiAyO1xuICAgICAgICBAaWYgJGhhcy1tb2RpZmljYXRvbnMge1xuICAgICAgICAgICAgJHZhbHVlOiBhZy1wYXJhbSgkbmFtZSwgJGNhbGxlcjogXCJwZXJtaXR0ZWQgaW50ZXJuYWwgX2FnLXRoZW1lLXBhcmFtcy5zY3NzIGFjY2Vzc1wiKTtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAkcmVmZXJlbmNlLW5hbWU6IG1hcC1nZXQoJHZhbHVlLCBcInJlZmVyZW5jZS1uYW1lXCIpO1xuICAgICAgICAgICAgJHZhbHVlOiAtYWctcGFyYW0tYXMtY3NzLXZhcigkcmVmZXJlbmNlLW5hbWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICR2YWx1ZSA9PSBudWxsIHtcbiAgICAgICAgQHJldHVybiB2YXIoLS1hZy0jeyRuYW1lfSk7XG4gICAgfVxuXG4gICAgQHJldHVybiB2YXIoLS1hZy0jeyRuYW1lfSwgI3skdmFsdWV9KTtcbn1cblxuLy8gR2V0IGEgcGFyYW1ldGVyLCB3aXRoIG5vIGNoZWNrcyBvdGhlciB0aGFuIHRoYXQgdGhlIHBhcmFtZXRlciBleGlzdHNcbkBmdW5jdGlvbiAtYWctcGFyYW0tdW5jaGVja2VkKCRuYW1lKSB7XG4gICAgQGlmICQtYWctcGFyYW1zID09IG51bGwge1xuICAgICAgICBAZXJyb3IgXCJhZy1wYXJhbSgpIGNhbGxlZCBiZWZvcmUgYWctcmVnaXN0ZXItcGFyYW1zXCI7XG4gICAgfVxuICAgIEBpZiBzdHItaW5kZXgoJG5hbWUsIFwiLS1pbnRlcm5hbC1cIikgPT0gMSB7XG4gICAgICAgIC8vIGludGVybmFsIHZhcnMgYXJlIHJldHVybmVkIHdpdGhvdXQgYWctZGVyaXZlZCByZXNvbHV0aW9uIG9yIHZhbGlkYXRpb24gdGhhdCB0aGUgdmFyIGV4aXN0c1xuICAgICAgICBAcmV0dXJuIG1hcC1nZXQoJC1hZy1wYXJhbXMsICRuYW1lKTtcbiAgICB9XG4gICAgQGlmIG5vdCBtYXAtaGFzLWtleSgkLWFnLXBhcmFtcywgJG5hbWUpIHtcbiAgICAgICAgQGVycm9yIFwiYWctcGFyYW0oI3skbmFtZX0pOiBubyBzdWNoIHBhcmFtZXRlclwiO1xuICAgIH1cbiAgICBAcmV0dXJuIC1hZy1yZXNvbHZlLXBhcmFtLW5hbWUoJC1hZy1wYXJhbXMsICRuYW1lKTtcbn1cblxuLy8gUmV0dXJuIHRydWUgaWYgYSB2YWx1ZSBpcyBhIHJlY29yZCByZXR1cm5lZCBieSBhZy1kZXJpdmVkKClcbkBmdW5jdGlvbiAtaXMtYWctZGVyaXZlZCgkdmFsdWUpIHtcbiAgICBAcmV0dXJuIHR5cGUtb2YoJHZhbHVlKSA9PSBtYXAgYW5kIG1hcC1nZXQoJHZhbHVlLCBcIi0tYWctaXMtZGVyaXZlZC12YWx1ZVwiKSA9PSB0cnVlO1xufVxuXG5AZnVuY3Rpb24gLWFnLXJlc29sdmUtcGFyYW0tbmFtZSgkcGFyYW1zLCAkbmFtZSkge1xuICAgICR2YWx1ZTogbWFwLWdldCgkcGFyYW1zLCAkbmFtZSk7XG4gICAgQHJldHVybiAtYWctcmVzb2x2ZS1wYXJhbS12YWx1ZSgkcGFyYW1zLCAkdmFsdWUsICRuYW1lKTtcbn1cblxuQGZ1bmN0aW9uIC1hZy1yZXNvbHZlLXBhcmFtLXZhbHVlKCRwYXJhbXMsICRpbnB1dC12YWx1ZSwgJGNvbnRleHQtbmFtZSkge1xuICAgIEBpZiB0eXBlLW9mKCRpbnB1dC12YWx1ZSkgPT0gbGlzdCB7XG4gICAgICAgICRyZXNvbHZlZDogJGlucHV0LXZhbHVlO1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkaW5wdXQtdmFsdWUpIHtcbiAgICAgICAgICAgICRyZXNvbHZlZDogc2V0LW50aCgkcmVzb2x2ZWQsICRpLCAtYWctcmVzb2x2ZS1wYXJhbS12YWx1ZSgkcGFyYW1zLCBudGgoJHJlc29sdmVkLCAkaSksICRjb250ZXh0LW5hbWUpKTtcbiAgICAgICAgfVxuICAgICAgICBAcmV0dXJuICRyZXNvbHZlZDtcbiAgICB9XG4gICAgQGlmIG5vdCAtaXMtYWctZGVyaXZlZCgkaW5wdXQtdmFsdWUpIHtcbiAgICAgICAgQHJldHVybiAkaW5wdXQtdmFsdWU7XG4gICAgfVxuICAgICRkZXJpdmVkOiAkaW5wdXQtdmFsdWU7XG4gICAgJHJlZmVyZW5jZS1uYW1lOiBtYXAtZ2V0KCRkZXJpdmVkLCBcInJlZmVyZW5jZS1uYW1lXCIpO1xuICAgIEBpZiBub3QgbWFwLWhhcy1rZXkoJHBhcmFtcywgJHJlZmVyZW5jZS1uYW1lKSB7XG4gICAgICAgIEBlcnJvciBcImFnLWRlcml2ZWQ6IG5vIHN1Y2ggcGFyYW1ldGVyIFxcXCIjeyRyZWZlcmVuY2UtbmFtZX1cXFwiXCI7XG4gICAgfVxuICAgICRyZXNvbHZlZDogbWFwLWdldCgkcGFyYW1zLCAkcmVmZXJlbmNlLW5hbWUpO1xuICAgICRyZXNvbHZlZDogLWFnLXJlc29sdmUtcGFyYW0tdmFsdWUoJHBhcmFtcywgJHJlc29sdmVkLCAkcmVmZXJlbmNlLW5hbWUpO1xuXG4gICAgJHJlc29sdmVkOiAtYWctYXBwbHktZGVyaXZlZC1vcGVyYXRvcigkcGFyYW1zLCAkcmVzb2x2ZWQsICRkZXJpdmVkLCBcInRpbWVzXCIsICRjb250ZXh0LW5hbWUpO1xuICAgICRyZXNvbHZlZDogLWFnLWFwcGx5LWRlcml2ZWQtb3BlcmF0b3IoJHBhcmFtcywgJHJlc29sdmVkLCAkZGVyaXZlZCwgXCJkaXZpZGVcIiwgJGNvbnRleHQtbmFtZSk7XG4gICAgJHJlc29sdmVkOiAtYWctYXBwbHktZGVyaXZlZC1vcGVyYXRvcigkcGFyYW1zLCAkcmVzb2x2ZWQsICRkZXJpdmVkLCBcInBsdXNcIiwgJGNvbnRleHQtbmFtZSk7XG4gICAgJHJlc29sdmVkOiAtYWctYXBwbHktZGVyaXZlZC1vcGVyYXRvcigkcGFyYW1zLCAkcmVzb2x2ZWQsICRkZXJpdmVkLCBcIm1pbnVzXCIsICRjb250ZXh0LW5hbWUpO1xuICAgICRyZXNvbHZlZDogLWFnLWFwcGx5LWRlcml2ZWQtb3BlcmF0b3IoJHBhcmFtcywgJHJlc29sdmVkLCAkZGVyaXZlZCwgXCJvcGFjaXR5XCIsICRjb250ZXh0LW5hbWUpO1xuICAgICRyZXNvbHZlZDogLWFnLWFwcGx5LWRlcml2ZWQtb3BlcmF0b3IoJHBhcmFtcywgJHJlc29sdmVkLCAkZGVyaXZlZCwgXCJtaXhcIiwgJGNvbnRleHQtbmFtZSk7XG4gICAgJHJlc29sdmVkOiAtYWctYXBwbHktZGVyaXZlZC1vcGVyYXRvcigkcGFyYW1zLCAkcmVzb2x2ZWQsICRkZXJpdmVkLCBcImxpZ2h0ZW5cIiwgJGNvbnRleHQtbmFtZSk7XG4gICAgJHJlc29sdmVkOiAtYWctYXBwbHktZGVyaXZlZC1vcGVyYXRvcigkcGFyYW1zLCAkcmVzb2x2ZWQsICRkZXJpdmVkLCBcImRhcmtlblwiLCAkY29udGV4dC1uYW1lKTtcbiAgICAkcmVzb2x2ZWQ6IC1hZy1hcHBseS1kZXJpdmVkLW9wZXJhdG9yKCRwYXJhbXMsICRyZXNvbHZlZCwgJGRlcml2ZWQsIFwic2VsZi1vdmVybGF5XCIsICRjb250ZXh0LW5hbWUpO1xuXG4gICAgQHJldHVybiAtYWctcmVzb2x2ZS1wYXJhbS12YWx1ZSgkcGFyYW1zLCAkcmVzb2x2ZWQsICRyZWZlcmVuY2UtbmFtZSk7XG59XG5cbkBmdW5jdGlvbiAtYWctYXBwbHktZGVyaXZlZC1vcGVyYXRvcigkcGFyYW1zLCAkbGhzLCAkZGVyaXZlZCwgJG9wZXJhdG9yLCAkY29udGV4dC1uYW1lKSB7XG4gICAgQGlmICRsaHMgPT0gbnVsbCB7XG4gICAgICAgIEByZXR1cm4gJGxocztcbiAgICB9XG4gICAgJHJoczogbWFwLWdldCgkZGVyaXZlZCwgJG9wZXJhdG9yKTtcbiAgICBAaWYgJHJocyA9PSBudWxsIHtcbiAgICAgICAgQHJldHVybiAkbGhzO1xuICAgIH1cbiAgICBAaWYgLWFnLWlzLWNzcy12YXItdG9rZW4oJGxocykge1xuICAgICAgICAkcmVmZXJlbmNlLW5hbWU6IG1hcC1nZXQoJGRlcml2ZWQsIFwicmVmZXJlbmNlLW5hbWVcIik7XG4gICAgICAgIEB3YXJuIFwiUHJvYmxlbSB3aGlsZSBjYWxjdWxhdGluZyB0aGVtZSBwYXJhbWV0ZXIgYCN7JGNvbnRleHQtbmFtZX06ICN7LWFnLWluc3BlY3QtZGVyaXZlZC12YWx1ZSgkZGVyaXZlZCl9YC4gVGhpcyBydWxlIGF0dGVtcHRzIHRvIG1vZGlmeSB0aGUgY29sb3Igb2YgYCN7JHJlZmVyZW5jZS1uYW1lfWAgdXNpbmcgJCN7JG9wZXJhdG9yfSwgYnV0ICgjeyRyZWZlcmVuY2UtbmFtZX06ICN7JGxoc30pIGlzIGEgQ1NTIHZhcmlhYmxlIGFuZCBjYW4ndCBiZSBtb2RpZmllZCBhdCBjb21waWxlIHRpbWUuIEVpdGhlciBzZXQgYCN7JHJlZmVyZW5jZS1uYW1lfWAgdG8gYSBDU1MgY29sb3IgdmFsdWUgKGUuZy4gI2ZmZmZmZikgb3IgcHJvdmlkZSBhIHZhbHVlIGZvciBgI3skY29udGV4dC1uYW1lfWAgdGhhdCBkb2VzIG5vdCB1c2UgJCN7JG9wZXJhdG9yfVwiO1xuICAgICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIEBpZiAkb3BlcmF0b3IgPT0gXCJtaXhcIiB7XG4gICAgICAgICRjb2xvci1wYXJhbTogbnRoKCRyaHMsIDEpO1xuICAgICAgICAkY29sb3I6IC1hZy1yZXNvbHZlLXBhcmFtLW5hbWUoJHBhcmFtcywgJGNvbG9yLXBhcmFtKTtcbiAgICAgICAgQGlmIC1hZy1pcy1jc3MtdmFyLXRva2VuKCRjb2xvcikge1xuICAgICAgICAgICAgJHJlZmVyZW5jZS1uYW1lOiBtYXAtZ2V0KCRkZXJpdmVkLCBcInJlZmVyZW5jZS1uYW1lXCIpO1xuICAgICAgICAgICAgQHdhcm4gXCJQcm9ibGVtIHdoaWxlIGNhbGN1bGF0aW5nIHRoZW1lIHBhcmFtZXRlciBgI3skY29udGV4dC1uYW1lfTogI3stYWctaW5zcGVjdC1kZXJpdmVkLXZhbHVlKCRkZXJpdmVkKX1gLiBUaGlzIHJ1bGUgYXR0ZW1wdHMgdG8gbW9kaWZ5IHRoZSBjb2xvciBvZiBgI3skcmVmZXJlbmNlLW5hbWV9YCB1c2luZyAkI3skb3BlcmF0b3J9LCBidXQgKCN7JGNvbG9yLXBhcmFtfSkgaXMgYSBDU1MgdmFyaWFibGUgYW5kIGNhbid0IGJlIG1vZGlmaWVkIGF0IGNvbXBpbGUgdGltZS4gRWl0aGVyIHNldCBgI3skY29sb3ItcGFyYW19YCB0byBhIENTUyBjb2xvciB2YWx1ZSAoZS5nLiAjZmZmZmZmKSBvciBwcm92aWRlIGEgdmFsdWUgZm9yIGAjeyRjb250ZXh0LW5hbWV9YCB0aGF0IGRvZXMgbm90IHVzZSAkI3skb3BlcmF0b3J9XCI7XG4gICAgICAgICAgICBAcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGlmIHR5cGUtb2YoJHJocykgPT0gc3RyaW5nIHtcbiAgICAgICAgJHJoczogLWFnLXJlc29sdmUtcGFyYW0tbmFtZSgkcGFyYW1zLCAkcmhzKTtcbiAgICB9XG4gICAgJG9wZXJhdG9yLWZ1bmN0aW9uOiBcIi1hZy1vcGVyYXRvci1mdW5jdGlvbi0jeyRvcGVyYXRvcn1cIjtcbiAgICBAaWYgbm90IGZ1bmN0aW9uLWV4aXN0cygkb3BlcmF0b3ItZnVuY3Rpb24pIHtcbiAgICAgICAgQGVycm9yIFwiTm8gc3VjaCBmdW5jdGlvbiAjeyRvcGVyYXRvci1mdW5jdGlvbn1cIjtcbiAgICB9XG4gICAgQHJldHVybiBjYWxsKGdldC1mdW5jdGlvbigkb3BlcmF0b3ItZnVuY3Rpb24pLCAkcGFyYW1zLCAkbGhzLCAkcmhzKTtcbn1cblxuLy8gcmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIGFnLWRlcml2ZWQgdmFsdWUgZm9yIGRlYnVnZ2luZ1xuQGZ1bmN0aW9uIC1hZy1pbnNwZWN0LWRlcml2ZWQtdmFsdWUoJGRlcml2ZWQpIHtcbiAgICBAcmV0dXJuIFwiYWctZGVyaXZlZChcIlxuICAgICAgICArIG1hcC1nZXQoJGRlcml2ZWQsIFwicmVmZXJlbmNlLW5hbWVcIilcbiAgICAgICAgKyBpZihtYXAtZ2V0KCRkZXJpdmVkLCBcInRpbWVzXCIpLCBcIiwgJHRpbWVzOiAje21hcC1nZXQoJGRlcml2ZWQsIFwidGltZXNcIil9XCIsIFwiXCIpXG4gICAgICAgICsgaWYobWFwLWdldCgkZGVyaXZlZCwgXCJkaXZpZGVcIiksIFwiLCAkZGl2aWRlOiAje21hcC1nZXQoJGRlcml2ZWQsIFwiZGl2aWRlXCIpfVwiLCBcIlwiKVxuICAgICAgICArIGlmKG1hcC1nZXQoJGRlcml2ZWQsIFwicGx1c1wiKSwgXCIsICRwbHVzOiAje21hcC1nZXQoJGRlcml2ZWQsIFwicGx1c1wiKX1cIiwgXCJcIilcbiAgICAgICAgKyBpZihtYXAtZ2V0KCRkZXJpdmVkLCBcIm1pbnVzXCIpLCBcIiwgJG1pbnVzOiAje21hcC1nZXQoJGRlcml2ZWQsIFwibWludXNcIil9XCIsIFwiXCIpXG4gICAgICAgICsgaWYobWFwLWdldCgkZGVyaXZlZCwgXCJvcGFjaXR5XCIpLCBcIiwgJG9wYWNpdHk6ICN7bWFwLWdldCgkZGVyaXZlZCwgXCJvcGFjaXR5XCIpfVwiLCBcIlwiKVxuICAgICAgICArIGlmKG1hcC1nZXQoJGRlcml2ZWQsIFwibWl4XCIpLCBcIiwgJG1peDogI3ttYXAtZ2V0KCRkZXJpdmVkLCBcIm1peFwiKX1cIiwgXCJcIilcbiAgICAgICAgKyBpZihtYXAtZ2V0KCRkZXJpdmVkLCBcImxpZ2h0ZW5cIiksIFwiLCAkbGlnaHRlbjogI3ttYXAtZ2V0KCRkZXJpdmVkLCBcImxpZ2h0ZW5cIil9XCIsIFwiXCIpXG4gICAgICAgICsgaWYobWFwLWdldCgkZGVyaXZlZCwgXCJkYXJrZW5cIiksIFwiLCAkZGFya2VuOiAje21hcC1nZXQoJGRlcml2ZWQsIFwiZGFya2VuXCIpfVwiLCBcIlwiKVxuICAgICAgICArIGlmKG1hcC1nZXQoJGRlcml2ZWQsIFwic2VsZi1vdmVybGF5XCIpLCBcIiwgJHNlbGYtb3ZlcmxheTogI3ttYXAtZ2V0KCRkZXJpdmVkLCBcInNlbGYtb3ZlcmxheVwiKX1cIiwgXCJcIilcbiAgICAgICAgKyBcIilcIjtcbn1cblxuQGZ1bmN0aW9uIC1hZy1pcy1jc3MtdmFyLXRva2VuKCR2YWx1ZSkge1xuICAgIEByZXR1cm4gdHlwZS1vZigkdmFsdWUpID09IHN0cmluZyBhbmQgc3RyLWluZGV4KCR2YWx1ZSwgXCJ2YXIoXCIpICE9IG51bGxcbn1cblxuQGZ1bmN0aW9uIC1hZy1yZXF1aXJlLXR5cGUoJHZhbHVlLCAkZXhwZWN0ZWQsICRjb250ZXh0KSB7XG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAkZXhwZWN0ZWQgb3IgKCRleHBlY3RlZCA9PSBcIm1hcFwiIGFuZCAkdmFsdWUgPT0gKCkpIHtcbiAgICAgICAgQHJldHVybiAkdmFsdWU7XG4gICAgfVxuICAgIEBlcnJvciBcIkV4cGVjdGVkICN7JGNvbnRleHR9IHRvIGJlIGEgI3skZXhwZWN0ZWR9IGJ1dCBnb3QgYSAje3R5cGUtb2YoJHZhbHVlKX0gaW5zdGVhZCAoI3tpbnNwZWN0KCR2YWx1ZSl9KVwiO1xufVxuXG5AZnVuY3Rpb24gLWFnLW9wZXJhdG9yLWZ1bmN0aW9uLXRpbWVzKCRwYXJhbXMsICRsaHMsICRyaHMpIHtcbiAgICAkbGhzOiAtYWctcmVxdWlyZS10eXBlKCRsaHMsIFwibnVtYmVyXCIsIFwidmFsdWUgYmVmb3JlICR0aW1lc1wiKTtcbiAgICAkcmhzOiAtYWctcmVxdWlyZS10eXBlKCRyaHMsIFwibnVtYmVyXCIsIFwiYXJndW1lbnQgdG8gJHRpbWVzXCIpO1xuICAgIEByZXR1cm4gJGxocyAqICRyaHM7XG59XG5cbkBmdW5jdGlvbiAtYWctb3BlcmF0b3ItZnVuY3Rpb24tZGl2aWRlKCRwYXJhbXMsICRsaHMsICRyaHMpIHtcbiAgICAkbGhzOiAtYWctcmVxdWlyZS10eXBlKCRsaHMsIFwibnVtYmVyXCIsIFwidmFsdWUgYmVmb3JlICRkaXZpZGVcIik7XG4gICAgJHJoczogLWFnLXJlcXVpcmUtdHlwZSgkcmhzLCBcIm51bWJlclwiLCBcImFyZ3VtZW50IHRvICRkaXZpZGVcIik7XG4gICAgQHJldHVybiAkbGhzIC8gJHJocztcbn1cblxuQGZ1bmN0aW9uIC1hZy1vcGVyYXRvci1mdW5jdGlvbi1wbHVzKCRwYXJhbXMsICRsaHMsICRyaHMpIHtcbiAgICAkbGhzOiAtYWctcmVxdWlyZS10eXBlKCRsaHMsIFwibnVtYmVyXCIsIFwidmFsdWUgYmVmb3JlICRwbHVzXCIpO1xuICAgICRyaHM6IC1hZy1yZXF1aXJlLXR5cGUoJHJocywgXCJudW1iZXJcIiwgXCJhcmd1bWVudCB0byAkcGx1c1wiKTtcbiAgICBAcmV0dXJuICRsaHMgKyAkcmhzO1xufVxuXG5AZnVuY3Rpb24gLWFnLW9wZXJhdG9yLWZ1bmN0aW9uLW1pbnVzKCRwYXJhbXMsICRsaHMsICRyaHMpIHtcbiAgICAkbGhzOiAtYWctcmVxdWlyZS10eXBlKCRsaHMsIFwibnVtYmVyXCIsIFwidmFsdWUgYmVmb3JlICRtaW51c1wiKTtcbiAgICAkcmhzOiAtYWctcmVxdWlyZS10eXBlKCRyaHMsIFwibnVtYmVyXCIsIFwiYXJndW1lbnQgdG8gJG1pbnVzXCIpO1xuICAgIEByZXR1cm4gJGxocyAtICRyaHM7XG59XG5cbkBmdW5jdGlvbiAtYWctb3BlcmF0b3ItZnVuY3Rpb24tb3BhY2l0eSgkcGFyYW1zLCAkbGhzLCAkcmhzKSB7XG4gICAgJGxoczogLWFnLXJlcXVpcmUtdHlwZSgkbGhzLCBcImNvbG9yXCIsIFwidmFsdWUgYmVmb3JlICRvcGFjaXR5XCIpO1xuICAgICRyaHM6IC1hZy1yZXF1aXJlLXR5cGUoJHJocywgXCJudW1iZXJcIiwgXCJhcmd1bWVudCB0byAkb3BhY2l0eVwiKTtcbiAgICBAaWYgJHJocyA8IDAgb3IgJHJocyA+IDEge1xuICAgICAgICBAZXJyb3IgXCJFeHBlY3RlZCBhcmd1bWVudCB0byAkb3BhY2l0eSB0byBiZSBiZXR3ZWVuIDAgYW5kIDEsIGdvdCAje2luc3BlY3QoJHJocyl9IGluc3RlYWQuXCI7XG4gICAgfVxuICAgIEByZXR1cm4gcmdiYSgkbGhzLCAkcmhzKTtcbn1cblxuQGZ1bmN0aW9uIC1hZy1vcGVyYXRvci1mdW5jdGlvbi1taXgoJHBhcmFtcywgJGxocywgJHJocykge1xuICAgICRsaHM6IC1hZy1yZXF1aXJlLXR5cGUoJGxocywgXCJjb2xvclwiLCBcInZhbHVlIGJlZm9yZSAkbWl4XCIpO1xuICAgIEBpZiBsZW5ndGgoJHJocykgIT0gMiB7XG4gICAgICAgIEBlcnJvciBcIkV4cGVjdGVkIGFyZ3VtZW50IHRvICRtaXggdG8gYmUgYSAyLWl0ZW0gYXJyYXkgW2NvbG9yLCBwZXJjZW50YWdlXSBidXQgZ290ICN7aW5zcGVjdCgkcmhzKX1cIjtcbiAgICB9XG4gICAgJGNvbG9yOiBudGgoJHJocywgMSk7XG4gICAgQGlmIHR5cGUtb2YoJGNvbG9yKSA9PSBzdHJpbmcge1xuICAgICAgICAkY29sb3I6IC1hZy1yZXNvbHZlLXBhcmFtLW5hbWUoJHBhcmFtcywgJGNvbG9yKTtcbiAgICB9XG4gICAgJHBlcmNlbnRhZ2U6IG50aCgkcmhzLCAyKTtcbiAgICBAaWYgdHlwZS1vZigkY29sb3IpICE9IGNvbG9yIG9yIHR5cGUtb2YoJHBlcmNlbnRhZ2UpICE9IG51bWJlciB7XG4gICAgICAgIEBlcnJvciBcIkV4cGVjdGVkIGFyZ3VtZW50IHRvICRtaXggdG8gYmUgYSAyLWl0ZW0gYXJyYXkgW2NvbG9yLCBudW1iZXJdIGJ1dCBnb3QgWyN7dHlwZS1vZigkY29sb3IpfSwgI3t0eXBlLW9mKCRwZXJjZW50YWdlKX1dOiAje2luc3BlY3QoJHJocyl9XCI7XG4gICAgfVxuICAgIEByZXR1cm4gbWl4KCRjb2xvciwgJGxocywgJHBlcmNlbnRhZ2UpO1xufVxuXG5AZnVuY3Rpb24gLWFnLW9wZXJhdG9yLWZ1bmN0aW9uLWxpZ2h0ZW4oJHBhcmFtcywgJGxocywgJHJocykge1xuICAgICRsaHM6IC1hZy1yZXF1aXJlLXR5cGUoJGxocywgXCJjb2xvclwiLCBcInZhbHVlIGJlZm9yZSAkbGlnaHRlblwiKTtcbiAgICAkcmhzOiAtYWctcmVxdWlyZS10eXBlKCRyaHMsIFwibnVtYmVyXCIsIFwiYXJndW1lbnQgdG8gJGxpZ2h0ZW5cIik7XG4gICAgQGlmICRyaHMgPCAwIG9yICRyaHMgPiAxMDAge1xuICAgICAgICBAZXJyb3IgXCJFeHBlY3RlZCBhcmd1bWVudCB0byAkbGlnaHRlbiB0byBiZSBiZXR3ZWVuIDAgYW5kIDEwMCwgZ290ICN7aW5zcGVjdCgkcmhzKX0gaW5zdGVhZC5cIjtcbiAgICB9XG4gICAgQHJldHVybiBsaWdodGVuKCRsaHMsICRyaHMpO1xufVxuXG5AZnVuY3Rpb24gLWFnLW9wZXJhdG9yLWZ1bmN0aW9uLWRhcmtlbigkcGFyYW1zLCAkbGhzLCAkcmhzKSB7XG4gICAgJGxoczogLWFnLXJlcXVpcmUtdHlwZSgkbGhzLCBcImNvbG9yXCIsIFwidmFsdWUgYmVmb3JlICRkYXJrZW5cIik7XG4gICAgJHJoczogLWFnLXJlcXVpcmUtdHlwZSgkcmhzLCBcIm51bWJlclwiLCBcImFyZ3VtZW50IHRvICRkYXJrZW5cIik7XG4gICAgQGlmICRyaHMgPCAwIG9yICRyaHMgPiAxMDAge1xuICAgICAgICBAZXJyb3IgXCJFeHBlY3RlZCBhcmd1bWVudCB0byAkZGFya2VuIHRvIGJlIGJldHdlZW4gMCBhbmQgMTAwLCBnb3QgI3tpbnNwZWN0KCRyaHMpfSBpbnN0ZWFkLlwiO1xuICAgIH1cbiAgICBAcmV0dXJuIGRhcmtlbigkbGhzLCAkcmhzKTtcbn1cblxuXG5AZnVuY3Rpb24gLWFnLW9wZXJhdG9yLWZ1bmN0aW9uLXNlbGYtb3ZlcmxheSgkcGFyYW1zLCAkY29sb3IsICR0aW1lcykge1xuICAgICRjb2xvcjogLWFnLXJlcXVpcmUtdHlwZSgkY29sb3IsIFwiY29sb3JcIiwgXCJ2YWx1ZSBiZWZvcmUgJHNlbGYtb3ZlcmxheVwiKTtcbiAgICAkdGltZXM6IC1hZy1yZXF1aXJlLXR5cGUoJHRpbWVzLCBcIm51bWJlclwiLCBcImFyZ3VtZW50IHRvICRzZWxmLW92ZXJsYXlcIik7XG4gICAgQGlmICR0aW1lcyA8IDAgb3IgJHRpbWVzID4gMTAwIHtcbiAgICAgICAgQGVycm9yIFwiRXhwZWN0ZWQgYXJndW1lbnQgdG8gJHNlbGYtb3ZlcmxheSB0byBiZSBiZXR3ZWVuIDAgYW5kIDEwMCwgZ290ICN7aW5zcGVjdCgkdGltZXMpfSBpbnN0ZWFkLlwiO1xuICAgIH1cblxuICAgICRzb2xpZGl0eTogMSAtIG9wYWNpdHkoJGNvbG9yKTtcbiAgICAkb3V0cHV0LXNvbGlkaXR5OiAxO1xuICAgIEBpZiAkdGltZXMgPiAwIHtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkdGltZXMge1xuICAgICAgICAgICAgJG91dHB1dC1zb2xpZGl0eTogJG91dHB1dC1zb2xpZGl0eSAqICRzb2xpZGl0eTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gcmdiYSgkY29sb3IsIDEgLSAkb3V0cHV0LXNvbGlkaXR5KTtcbn0iLCJAaW1wb3J0IFwiLi4vLi4vLi4vYWctdGhlbWUtYmFzZS9zYXNzL2xlZ2FjeS9hZy10aGVtZS1iYXNlLXJlbmFtZS1sZWdhY3ktdmFyc1wiO1xuXG4vLyBJbiB2MjMgd2UgbW92ZWQgZnJvbSB1c2luZyBnbG9iYWwgdmFyaWFibGVzIHRvIG1hcHMgb2YgcGFyYW1ldGVycyB0byBjb25maWd1cmUgR3JpZCB0aGVtZXMuXG4vLyBUaGlzIGZpbGUgaXMgcGFydCBvZiBhIGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5IGxheWVyIGRlc2lnbmVkIHRvIGVtdWxhdGUgdGhlIHByZS12MjMgYmVoYXZpb3VyXG4vLyBhbmQgc28gc2hvdWxkIG5vdCBiZSBtb2RpZmllZC5cblxuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLW1hdC1ncmV5LTA6ICNmZmY7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctbWF0LWdyZXktNTA6ICNmYWZhZmE7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctbWF0LWdyZXktMTAwOiAjZjVmNWY1O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLW1hdC1ncmV5LTIwMDogI2VlZTtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1tYXQtZ3JleS0zMDA6ICNlMmUyZTI7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctbWF0LWluZGlnby01MDA6ICMzZjUxYjU7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctbWF0LXBpbmstQTIwMDogI2ZmNDA4MTtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1tYXQtcGluay01MDogI2ZjZTRlYztcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1tYXQtaW5kaWdvLTUwOiAjZThlYWY2O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWZvcmVncm91bmQtb3BhY2l0eTogMC44NyAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1zZWNvbmRhcnktZm9yZWdyb3VuZC1jb2xvci1vcGFjaXR5OiAwLjU0ICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWRpc2FibGVkLWZvcmVncm91bmQtY29sb3Itb3BhY2l0eTogMC4zOCAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1ncmlkLXNpemU6IDhweCAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1pY29uLXNpemU6IDE4cHggIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctaGVhZGVyLWhlaWdodDogJGFnLWdyaWQtc2l6ZSAqIDcgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctcm93LWhlaWdodDogJGFnLWdyaWQtc2l6ZSAqIDYgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctcm93LWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLXRvb2xwYW5lbC1pbmRlbnQtc2l6ZTogJGFnLWdyaWQtc2l6ZSArICRhZy1pY29uLXNpemUgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctcm93LWdyb3VwLWluZGVudC1zaXplOiAkYWctZ3JpZC1zaXplICogMyArICRhZy1pY29uLXNpemUgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctY2VsbC1ob3Jpem9udGFsLXBhZGRpbmc6ICRhZy1ncmlkLXNpemUgKiAzICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLXZpcnR1YWwtaXRlbS1oZWlnaHQ6ICRhZy1ncmlkLXNpemUgKiA1O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWhlYWRlci1pY29uLXNpemU6IDE0cHggIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctZm9udC1zaXplOiAxM3B4ICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWZvbnQtd2VpZ2h0OiA0MDAgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctc2Vjb25kYXJ5LWZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLXNlY29uZGFyeS1mb250LXNpemU6IDEycHggIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctc2Vjb25kYXJ5LWZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctY2FyZC1zaGFkb3c6IDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1jYXJkLXJhZGl1czogMnB4O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWZ1bGwtd2lkdGgtdGFiczogdHJ1ZTtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1iYWNrZ3JvdW5kLWNvbG9yOiAkYWctbWF0LWdyZXktMCAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1mb3JlZ3JvdW5kLWNvbG9yOiByZ2JhKCMwMDAsICRhZy1mb3JlZ3JvdW5kLW9wYWNpdHkpICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLXNlY29uZGFyeS1mb3JlZ3JvdW5kLWNvbG9yOiByZ2JhKCMwMDAsICRhZy1zZWNvbmRhcnktZm9yZWdyb3VuZC1jb2xvci1vcGFjaXR5KSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1kaXNhYmxlZC1mb3JlZ3JvdW5kLWNvbG9yOiByZ2JhKCMwMDAsICRhZy1kaXNhYmxlZC1mb3JlZ3JvdW5kLWNvbG9yLW9wYWNpdHkpICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yOiAkYWctYmFja2dyb3VuZC1jb2xvciAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1oZWFkZXItY2VsbC1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGFnLWhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yLCA1JSkgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctaGVhZGVyLWNlbGwtbW92aW5nLWJhY2tncm91bmQtY29sb3I6ICRhZy1oZWFkZXItY2VsbC1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWhlYWRlci1mb3JlZ3JvdW5kLWNvbG9yOiAkYWctc2Vjb25kYXJ5LWZvcmVncm91bmQtY29sb3IgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctaW5wdXQtZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctYm9yZGVyLWNvbG9yOiAkYWctbWF0LWdyZXktMzAwICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLXByaW1hcnktY29sb3I6ICRhZy1tYXQtaW5kaWdvLTUwMCAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1hY2NlbnQtY29sb3I6ICRhZy1tYXQtcGluay1BMjAwICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWljb24tY29sb3I6ICMzMzMgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctYWx0LWljb24tY29sb3I6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWVkaXRvci1iYWNrZ3JvdW5kLWNvbG9yOiAkYWctbWF0LWdyZXktNTAgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctcGFuZWwtYmFja2dyb3VuZC1jb2xvcjogJGFnLW1hdC1ncmV5LTIwMCAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy10b29sLXBhbmVsLWJhY2tncm91bmQtY29sb3I6ICRhZy1tYXQtZ3JleS01MCAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1jaGlwLWJhY2tncm91bmQtY29sb3I6ICRhZy1tYXQtZ3JleS0zMDAgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctcmFuZ2Utc2VsZWN0aW9uLWJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKGRhcmtlbigkYWctbWF0LWluZGlnby01MCwgMzAlKSwgMC45KSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1yYW5nZS1zZWxlY3Rpb24tY2hhcnQtY2F0ZWdvcnktYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAyNTUsIDEzMiwgMC4xKSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1yYW5nZS1zZWxlY3Rpb24tY2hhcnQtYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCA4OCwgMjU1LCAwLjEpICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLXJhbmdlLXNlbGVjdGlvbi1oaWdobGlnaHQtY29sb3I6ICRhZy1tYXQtcGluay01MCAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1ob3Zlci1jb2xvcjogJGFnLW1hdC1ncmV5LTUwICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLXNlbGVjdGVkLWNvbG9yOiAkYWctbWF0LWdyZXktMjAwICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWNlbGwtZGF0YS1jaGFuZ2VkLWNvbG9yOiAkYWctbWF0LXBpbmstNTAgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctdmFsdWUtY2hhbmdlLWRlbHRhLXVwLWNvbG9yOiAjNDNhMDQ3ICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLXZhbHVlLWNoYW5nZS1kZWx0YS1kb3duLWNvbG9yOiAjZTUzOTM1ICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLXZhbHVlLWNoYW5nZS12YWx1ZS1oaWdobGlnaHQtYmFja2dyb3VuZC1jb2xvcjogIzAwYWNjMSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbkBpbXBvcnQgXCIuLi9hZy10aGVtZS1tYXRlcmlhbC1mb250LXZhcnNcIjtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1pY29uLWZvbnQtZmFtaWx5OiAkYWctdGhlbWUtbWF0ZXJpYWwtaWNvbi1mb250LWZhbWlseSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1pY29ucy1kYXRhOiAkYWctdGhlbWUtbWF0ZXJpYWwtaWNvbnMtZGF0YSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1pY29ucy1mb250LWNvZGVzOiAkYWctdGhlbWUtbWF0ZXJpYWwtaWNvbnMtZm9udC1jb2RlcyAhZGVmYXVsdDtcblxuQGltcG9ydCBcIi4uLy4uLy4uL2FnLXRoZW1lLWJhc2Uvc2Fzcy9sZWdhY3kvYWctdGhlbWUtYmFzZS1kZWZpbmUtbGVnYWN5LXZhcnNcIjsiLCJAaW1wb3J0IFwiLi9hZy1ncmlkLW1peGluc1wiO1xuQGltcG9ydCBcIi4vYWctdGhlbWUtcGFyYW1zXCI7XG5cbkBtaXhpbiBhZy1pbmhlcml0LXRleHQtc3R5bGVzKCkge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuQG1peGluIGFnLWJvcmRlcigkYm9yZGVyLXR5cGUsICRzaWRlczogbnVsbCwgJHJhZGl1czogbnVsbCwgJHdpZHRoOiAxcHgsICRzdHlsZTogc29saWQsICRub25lOiBmYWxzZSkge1xuICAgIEBpZiBhZy1zaG91bGQtZHJhdy1ib3JkZXIoJGJvcmRlci10eXBlKSB7XG4gICAgICAgICRjb2xvci1wYXJhbTogaWYoJGJvcmRlci10eXBlID09IHNlY29uZGFyeSwgc2Vjb25kYXJ5LWJvcmRlci1jb2xvciwgYm9yZGVyLWNvbG9yKTtcblxuICAgICAgICBAaWYgJHNpZGVzIHtcbiAgICAgICAgICAgIEBlYWNoICRzaWRlIGluICRzaWRlcyB7XG4gICAgICAgICAgICAgICAgQGlmICRub25lIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLSN7JHNpZGV9OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci0jeyRzaWRlfTogJHN0eWxlICR3aWR0aDtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYm9yZGVyLSN7JHNpZGV9LWNvbG9yLCAkY29sb3ItcGFyYW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICBAaWYgJG5vbmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6ICRzdHlsZSAkd2lkdGg7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYm9yZGVyLWNvbG9yLCAkY29sb3ItcGFyYW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBpZiAkcmFkaXVzIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBhZy1rZXlib2FyZC1mb2N1cygkc2VsZWN0b3JzLCAkb2Zmc2V0KSB7XG4gICAgLmFnLWtleWJvYXJkLWZvY3VzIHtcbiAgICAgICAgQGVhY2ggJHNlbGVjdG9yIGluICRzZWxlY3RvcnMge1xuICAgICAgICAgICAgLiN7JHNlbGVjdG9yfTpmb2N1cyB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAkb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAkb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtICN7JG9mZnNldCAqIDJ9KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAjeyRvZmZzZXQgKiAyfSk7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShib3JkZXItY29sb3IsIGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gYWctdmVydGljYWwtd2lkZ2V0LWNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogYWctcGFyYW0od2lkZ2V0LWNvbnRhaW5lci12ZXJ0aWNhbC1wYWRkaW5nKSBhZy1wYXJhbSh3aWRnZXQtY29udGFpbmVyLWhvcml6b250YWwtcGFkZGluZyk7XG4gICAgcGFkZGluZy1ib3R0b206IGFnLXBhcmFtKHdpZGdldC1jb250YWluZXItdmVydGljYWwtcGFkZGluZykgLSBhZy1wYXJhbSh3aWRnZXQtdmVydGljYWwtc3BhY2luZyk7XG5cbiAgICAmID4gKiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IGFnLXBhcmFtKHdpZGdldC12ZXJ0aWNhbC1zcGFjaW5nKTtcbiAgICB9XG59XG5cbkBmdW5jdGlvbiBhZy1zaG91bGQtZHJhdy1ib3JkZXIoJHR5cGUpIHtcbiAgICAkdmFsaWQtdHlwZXM6IChcbiAgICAgICAgY3JpdGljYWw6IGFnLXBhcmFtKGJvcmRlcnMtY3JpdGljYWwpLFxuICAgICAgICBwcmltYXJ5OiBhZy1wYXJhbShib3JkZXJzKSxcbiAgICAgICAgc2lkZS1idXR0b246IGFnLXBhcmFtKGJvcmRlcnMtc2lkZS1idXR0b24pLFxuICAgICAgICBzZWNvbmRhcnk6IGFnLXBhcmFtKGJvcmRlcnMtc2Vjb25kYXJ5KVxuICAgICk7XG4gICAgJGRyYXctYm9yZGVyOiBmYWxzZTtcbiAgICBAaWYgbm90IG1hcC1oYXMta2V5KCR2YWxpZC10eXBlcywgJHR5cGUpIHtcbiAgICAgICAgQGVycm9yIFwiSW52YWxpZCBib3JkZXIgdHlwZSAnI3tpbnNwZWN0KCR0eXBlKX0nXCI7XG4gICAgfVxuICAgIEByZXR1cm4gbWFwLWdldCgkdmFsaWQtdHlwZXMsICR0eXBlKTtcbn1cblxuQGZ1bmN0aW9uIGFnLWljb24tY2hhcigkbmFtZSkge1xuICAgICRpY29uLW1hcDogLWFnLXBhcmFtLXVuY2hlY2tlZChpY29ucy1mb250LWNvZGVzKTtcbiAgICBAaWYgdHlwZS1vZigkaWNvbi1tYXApICE9IG1hcCB7XG4gICAgICAgIEBlcnJvciBcIkV4cGVjdGVkIGljb25zLWZvbnQtY29kZXMgcGFyYW0gdG8gYmUgYSBtYXAsIGJ1dCBnb3QgI3t0eXBlLW9mKCRpY29uLW1hcCl9ICgje2luc3BlY3QoJGljb24tbWFwKX0pXCI7XG4gICAgfVxuICAgIEBpZiBub3QgbWFwLWhhcy1rZXkoJGljb24tbWFwLCAkbmFtZSkge1xuICAgICAgICBAZXJyb3IgXCJObyBzdWNoIGljb246ICN7JG5hbWV9XCI7XG4gICAgfVxuICAgIEByZXR1cm4gbWFwLWdldCgkaWNvbi1tYXAsICRuYW1lKTtcbn1cblxuQG1peGluIGFnLWNhcmQoKSB7XG4gICAgQGluY2x1ZGUgYWctYm9yZGVyKHByaW1hcnkpO1xuICAgIFxuICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJhY2tncm91bmQsIGJhY2tncm91bmQtY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IGFnLXBhcmFtKGNhcmQtcmFkaXVzKTtcbiAgICBib3gtc2hhZG93OiBhZy1wYXJhbShjYXJkLXNoYWRvdyk7XG4gICAgcGFkZGluZzogYWctcGFyYW0oZ3JpZC1zaXplKTtcbn1cblxuXG5AbWl4aW4gYWctaWNvbi1lbGVtZW50KCRpY29uLCAkY29kZSkge1xuICAuYWctaWNvbi0jeyRpY29ufSB7XG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6ICRjb2RlO1xuICAgICAgfVxuICB9XG59XG5cbkBtaXhpbiBhZy1pY29ucy1mb250LWZhY2UoKSB7XG4gICAgQGlmIGFnLXBhcmFtKGljb25zLWRhdGEpIHtcbiAgICAgICAgQGF0LXJvb3Qge1xuICAgICAgICAgICAgQGZvbnQtZmFjZSB7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICcje2FnLXBhcmFtKGljb24tZm9udC1mYW1pbHkpfSc7XG4gICAgICAgICAgICAgICAgc3JjOiBhZy1wYXJhbShpY29ucy1kYXRhKTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1peGluIGFnLWljb24oKSB7XG4gICAgZm9udC1mYW1pbHk6ICcje2FnLXBhcmFtKGljb24tZm9udC1mYW1pbHkpfSc7XG4gICAgZm9udC1zaXplOiBhZy1wYXJhbShpY29uLXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiBhZy1wYXJhbShpY29uLXNpemUpO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIFxuICAgIC8qIEJldHRlciBGb250IFJlbmRlcmluZyA9PT09PT09PT09PSAqL1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbkBtaXhpbiBhZy1pY29ucy13ZWJmb250KCkge1xuICAuYWctaWNvbiB7XG4gICAgICBAaW5jbHVkZSBhZy1pY29uKCk7XG4gIH1cblxuICBAaW5jbHVkZSBhZy1pY29uLWVsZW1lbnQoJ2FnZ3JlZ2F0aW9uJywgYWctaWNvbi1jaGFyKGFnZ3JlZ2F0aW9uKSk7XG4gIEBpbmNsdWRlIGFnLWljb24tZWxlbWVudCgnYXJyb3dzJywgYWctaWNvbi1jaGFyKGFycm93cykpO1xuICBAaW5jbHVkZSBhZy1pY29uLWVsZW1lbnQoJ2FzYycsIGFnLWljb24tY2hhcihhc2MpKTtcbiAgQGluY2x1ZGUgYWctaWNvbi1lbGVtZW50KCdjYW5jZWwnLCBhZy1pY29uLWNoYXIoY2FuY2VsKSk7XG4gIEBpbmNsdWRlIGFnLWljb24tZWxlbWVudCgnY2hhcnQnLCBhZy1pY29uLWNoYXIoY2hhcnQpKTtcbiAgQGluY2x1ZGUgYWctaWNvbi1lbGVtZW50KCdjb2xvci1waWNrZXInLCBhZy1pY29uLWNoYXIoY29sb3ItcGlja2VyKSk7XG4gIEBpbmNsdWRlIGFnLWljb24tZWxlbWVudCgnY29sdW1ucycsIGFnLWljb24tY2hhcihjb2x1bW5zKSk7XG4gIEBpbmNsdWRlIGFnLWljb24tZWxlbWVudCgnY29udHJhY3RlZCcsIGFnLWljb24tY2hhcihjb250cmFjdGVkKSk7XG4gIEBpbmNsdWRlIGFnLWljb24tZWxlbWVudCgnY29weScsIGFnLWljb24tY2hhcihjb3B5KSk7XG4gIEBpbmNsdWRlIGFnLWljb24tZWxlbWVudCgnY3Jvc3MnLCBhZy1pY29uLWNoYXIoY3Jvc3MpKTtcbiAgQGluY2x1ZGUgYWctaWNvbi1lbGVtZW50KCdjc3YnLCBhZy1pY29uLWNoYXIoY3N2KSk7XG4gIEBpbmNsdWRlIGFnLWljb24tZWxlbWVudCgnZGVzYycsIGFnLWljb24tY2hhcihkZXNjKSk7XG4gIEBpbmNsdWRlIGFnLWljb24tZWxlbWVudCgnZXhjZWwnLCBhZy1pY29uLWNoYXIoZXhjZWwpKTtcbiAgQGluY2x1ZGUgYWctaWNvbi1lbGVtZW50KCdleHBhbmRlZCcsIGFnLWljb24tY2hhcihleHBhbmRlZCkpO1xuICBAaW5jbHVkZSBhZy1pY29uLWVsZW1lbnQoJ2V5ZS1zbGFzaCcsIGFnLWljb24tY2hhcihleWUtc2xhc2gpKTtcbiAgQGluY2x1ZGUgYWctaWNvbi1lbGVtZW50KCdleWUnLCBhZy1pY29uLWNoYXIoZXllKSk7XG4gIEBpbmNsdWRlIGFnLWljb24tZWxlbWVudCgnZmlsdGVyJywgYWctaWNvbi1jaGFyKGZpbHRlcikpO1xuICBAaW5jbHVkZSBhZy1pY29uLWVsZW1lbnQoJ2ZpcnN0JywgYWctaWNvbi1jaGFyKGZpcnN0KSk7XG4gIEBpbmNsdWRlIGFnLWljb24tZWxlbWVudCgnZ3JpcCcsIGFnLWljb24tY2hhcihncmlwKSk7XG4gIEBpbmNsdWRlIGFnLWljb24tZWxlbWVudCgnZ3JvdXAnLCBhZy1pY29uLWNoYXIoZ3JvdXApKTtcbiAgQGluY2x1ZGUgYWctaWNvbi1lbGVtZW50KCdsYXN0JywgYWctaWNvbi1jaGFyKGxhc3QpKTtcbiAgQGluY2x1ZGUgYWctaWNvbi1lbGVtZW50KCdsZWZ0JywgYWctaWNvbi1jaGFyKGxlZnQpKTtcbiAgQGluY2x1ZGUgYWctaWNvbi1lbGVtZW50KCdsaW5rZWQnLCBhZy1pY29uLWNoYXIobGlua2VkKSk7XG4gIEBpbmNsdWRlIGFnLWljb24tZWxlbWVudCgnbG9hZGluZycsIGFnLWljb24tY2hhcihsb2FkaW5nKSk7XG4gIEBpbmNsdWRlIGFnLWljb24tZWxlbWVudCgnbWF4aW1pemUnLCBhZy1pY29uLWNoYXIobWF4aW1pemUpKTtcbiAgQGluY2x1ZGUgYWctaWNvbi1lbGVtZW50KCdtZW51JywgYWctaWNvbi1jaGFyKG1lbnUpKTtcbiAgQGluY2x1ZGUgYWctaWNvbi1lbGVtZW50KCdtaW5pbWl6ZScsIGFnLWljb24tY2hhcihtaW5pbWl6ZSkpO1xuICBAaW5jbHVkZSBhZy1pY29uLWVsZW1lbnQoJ25leHQnLCBhZy1pY29uLWNoYXIobmV4dCkpO1xuICBAaW5jbHVkZSBhZy1pY29uLWVsZW1lbnQoJ25vbmUnLCBhZy1pY29uLWNoYXIobm9uZSkpO1xuICBAaW5jbHVkZSBhZy1pY29uLWVsZW1lbnQoJ25vdC1hbGxvd2VkJywgYWctaWNvbi1jaGFyKG5vdC1hbGxvd2VkKSk7XG4gIEBpbmNsdWRlIGFnLWljb24tZWxlbWVudCgncGFzdGUnLCBhZy1pY29uLWNoYXIocGFzdGUpKTtcbiAgQGluY2x1ZGUgYWctaWNvbi1lbGVtZW50KCdwaW4nLCBhZy1pY29uLWNoYXIocGluKSk7XG4gIEBpbmNsdWRlIGFnLWljb24tZWxlbWVudCgncGl2b3QnLCBhZy1pY29uLWNoYXIocGl2b3QpKTtcbiAgQGluY2x1ZGUgYWctaWNvbi1lbGVtZW50KCdwcmV2aW91cycsIGFnLWljb24tY2hhcihwcmV2aW91cykpO1xuICBAaW5jbHVkZSBhZy1pY29uLWVsZW1lbnQoJ3JpZ2h0JywgYWctaWNvbi1jaGFyKHJpZ2h0KSk7XG4gIEBpbmNsdWRlIGFnLWljb24tZWxlbWVudCgnc2F2ZScsIGFnLWljb24tY2hhcihzYXZlKSk7XG4gIEBpbmNsdWRlIGFnLWljb24tZWxlbWVudCgnc21hbGwtZG93bicsIGFnLWljb24tY2hhcihzbWFsbC1kb3duKSk7XG4gIEBpbmNsdWRlIGFnLWljb24tZWxlbWVudCgnc21hbGwtbGVmdCcsIGFnLWljb24tY2hhcihzbWFsbC1sZWZ0KSk7XG4gIEBpbmNsdWRlIGFnLWljb24tZWxlbWVudCgnc21hbGwtcmlnaHQnLCBhZy1pY29uLWNoYXIoc21hbGwtcmlnaHQpKTtcbiAgQGluY2x1ZGUgYWctaWNvbi1lbGVtZW50KCdzbWFsbC11cCcsIGFnLWljb24tY2hhcihzbWFsbC11cCkpO1xuICBAaW5jbHVkZSBhZy1pY29uLWVsZW1lbnQoJ3RpY2snLCBhZy1pY29uLWNoYXIodGljaykpO1xuICBAaW5jbHVkZSBhZy1pY29uLWVsZW1lbnQoJ3RyZWUtY2xvc2VkJywgYWctaWNvbi1jaGFyKHRyZWUtY2xvc2VkKSk7XG4gIEBpbmNsdWRlIGFnLWljb24tZWxlbWVudCgndHJlZS1pbmRldGVybWluYXRlJywgYWctaWNvbi1jaGFyKHRyZWUtaW5kZXRlcm1pbmF0ZSkpO1xuICBAaW5jbHVkZSBhZy1pY29uLWVsZW1lbnQoJ3RyZWUtb3BlbicsIGFnLWljb24tY2hhcih0cmVlLW9wZW4pKTtcbiAgQGluY2x1ZGUgYWctaWNvbi1lbGVtZW50KCd1bmxpbmtlZCcsIGFnLWljb24tY2hhcih1bmxpbmtlZCkpO1xuXG4gIC5hZy1pY29uLXJvdy1kcmFnOjpiZWZvcmUge1xuICAgICAgY29udGVudDogYWctaWNvbi1jaGFyKGdyaXApO1xuICB9XG5cbiAgLmFnLWxlZnQtYXJyb3c6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBhZy1pY29uLWNoYXIobGVmdCk7XG4gIH1cblxuICAuYWctcmlnaHQtYXJyb3c6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBhZy1pY29uLWNoYXIocmlnaHQpO1xuICB9XG5cbn1cblxuJC1hZy1pbmNsdWRlZC10aGVtZXM6ICgpICFkZWZhdWx0O1xuXG5AbWl4aW4gYWctaW5jbHVkZS10aGVtZS1vbmNlLW9ubHkoKSB7XG4gICAgJG5hbWU6IG50aChudGgoJiwgMSksIDEpOyAvLyByZXR1cm5zIG5hbWUgb2YgdG9wLWxldmVsIHNlbGVjdG9yLCBlLmcuIFwiLmFnLXRoZW1lLWJhbGhhbVwiXG4gICAgQGlmIGluZGV4KCQtYWctaW5jbHVkZWQtdGhlbWVzLCAkbmFtZSkgIT0gbnVsbCB7XG4gICAgICAgIEBlcnJvciBcIlRoZW1lIENTUyBmb3IgI3skbmFtZX0gaGFzIGJlZW4gZ2VuZXJhdGVkIHR3aWNlLiBUaGlzIGNhbiBoYXBwZW4gd2hlbiB5b3UgQGltcG9ydCBhZy10aGVtZS14eXouc2NzcyB0d2ljZSwgb3IgQGltcG9ydCB0aGUgbGVnYWN5IGFnLXRoZW1lLXh5ei5zY3NzIGFuZCB0aGVuIGFsc28gQGluY2x1ZGUgdGhlIGFnLXRoZW1lLXh5eigpIG1peGluLiBJZiB5b3UncmUgdXNpbmcgdGhlIG1peGluLCBqdXN0IEBpbXBvcnQgYWctdGhlbWUteHl6LW1peGluLnNjc3MuXCI7XG4gICAgfVxuICAgICQtYWctaW5jbHVkZWQtdGhlbWVzOiBhcHBlbmQoJC1hZy1pbmNsdWRlZC10aGVtZXMsICRuYW1lKSAhZ2xvYmFsO1xufVxuXG5cblxuLy8gTGlrZSBhZy11bnRoZW1lZC1ydGwsIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgcnRsIHN0eWxlcyBmcm9tIHByb3ZpZGVkIGx0ciBzdHlsZXMgYnkgZmxpcHBpbmdcbi8vIFwibGVmdFwiIGFuZCBcInJpZ2h0XCIgaW4gcHJvcGVydHkgbmFtZXMgYW5kIHZhbHVlcy4gSG93ZXZlciB0aGlzIG1peGluIGlzIGZvciB1c2UgaW4gdGhlbWVzLiBCZWNhdXNlIHRoZVxuLy8gZGl2IHdpdGggdGhlIHRoZW1lIGNsYXNzIGlzIG91dHNpZGUgdGhlIGRpdiB3aXRoIHRoZSAuYWctcnRsIGNsYXNzLCB3ZSBuZWVkIHRvIGtlZXAgdGhlIHRoZW1lIGNsYXNzXG4vLyBoaWdoZXIgdGhhbiB0aGUgLmFnLXJ0bC5cbi8vXG4vLyBGb3IgZXhhbXBsZTpcbi8vXG4vLyAuYWctdGhlbWUteHl6IHtcbi8vICAgICAuZm9vIHtcbi8vICAgICAgICAgQGluY2x1ZGUgYWctdGhlbWUtcnRsKChtYXJnaW4tbGVmdDogMTBweCkpO1xuLy8gICAgIH1cbi8vIH1cbi8vXG4vLyBXaWxsIGVtaXQ6XG4vL1xuLy8gLmFnLXRoZW1lLXh5eiAuYWctbHRyIC5mb28ge1xuLy8gICBtYXJnaW4tbGVmdDogMTBweDtcbi8vIH1cbi8vIC5hZy10aGVtZS14eXogLmFnLXJ0bCAuZm9vIHtcbi8vICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuLy8gfVxuLy9cbi8vIE5vdGUgaG93IHRoZSAuYWctbHRyIGNsYXNzIGlzIGluc2VydGVkIGJldHdlZW4gdGhlIHRoZW1lIGNsYXNzIGFuZCB0aGUgcmVzdCBvZiB0aGUgc2VsZWN0b3JcbkBtaXhpbiBhZy10aGVtZS1ydGwoJHJ1bGVzLCAkY29sb3ItcGFyYW06IG51bGwpIHtcbiAgICBAaWYgbGVuZ3RoKG50aCgmLCAxKSkgPCAyIHtcbiAgICAgICAgQGVycm9yIFwiYWctdGhlbWUtcnRsKCkgY2FuJ3QgYmUgdXNlZCBhdCB0aGUgdG9wIGxldmVsIG9mIGEgU0NTUyBmaWxlLCBvbmx5IG5lc3RlZCBpbiBhIHNlbGVjdG9yLlwiO1xuICAgIH1cbiAgICBAYXQtcm9vdCB7XG4gICAgICAgICN7YWctaW5zZXJ0LWNsYXNzLWFmdGVyLXRoZW1lKCYsIFwiLmFnLWx0clwiKX0ge1xuICAgICAgICAgICAgQGVhY2ggJHByb3BlcnR5LCAkdmFsdWUgaW4gJHJ1bGVzIHtcbiAgICAgICAgICAgICAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgICAgICAgICAgICBAaWYgJGNvbG9yLXBhcmFtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoI3skcHJvcGVydHl9LWNvbG9yLCAkY29sb3ItcGFyYW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAje2FnLWluc2VydC1jbGFzcy1hZnRlci10aGVtZSgmLCBcIi5hZy1ydGxcIil9IHtcbiAgICAgICAgICAgIEBlYWNoICRwcm9wZXJ0eSwgJHZhbHVlIGluIGFnLWdldC1ydGwtcnVsZXMoJHJ1bGVzKSB7XG4gICAgICAgICAgICAgICAgI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICAgICAgICAgICAgQGlmICRjb2xvci1wYXJhbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KCN7JHByb3BlcnR5fS1jb2xvciwgJGNvbG9yLXBhcmFtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiJGFnLXRoZW1lLW1hdGVyaWFsLWljb24tZm9udC1mYW1pbHk6IFwiYWdHcmlkTWF0ZXJpYWxcIjtcbiRhZy10aGVtZS1tYXRlcmlhbC1pY29ucy1kYXRhOiB1cmwoXCJkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxkMDlHUmdBQkFBQUFBQlB3QUFzQUFBQUFKakFBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkhVMVZDQUFBQkNBQUFBbU1BQUFSMlpPVm5NazlUTHpJQUFBTnNBQUFBUVFBQUFGWldVRk1EWTIxaGNBQUFBN0FBQUFJUkFBQUZuSDBWMzRCbmJIbG1BQUFGeEFBQUNqMEFBQk84UTFvVVltaGxZV1FBQUJBRUFBQUFNUUFBQURaMnpzU0JhR2hsWVFBQUVEZ0FBQUFXQUFBQUpBZlJCRFZvYlhSNEFBQVFVQUFBQUJJQUFBRXd3MUFBQUd4dlkyRUFBQkJrQUFBQWN3QUFBSm9IU1FNQ2JXRjRjQUFBRU5nQUFBQWZBQUFBSUFGZkFLcHVZVzFsQUFBUStBQUFBVElBQUFKZWJCUTJpbkJ2YzNRQUFCSXNBQUFCd2dBQUFxVHZVOU9IZUp4OWxFdHlFbEVVaHYrbW0wZ0NrbFNNR2pGcTFQaENqWnBPMDlEaFlVSUhBanB3WUZrT25NU3l5cktLY3NRNlhJQXJ5TkFWdUFBSHJzQUZPSERvMlBLN2gwWk1CdUVXbDN2UDR6Ly9lVnprU1ZyUVk3V1ZTM3ZQWDZvOE9oeC9WRVdCSmgrbi8vL3NqVDY4UDFSaGVrTVgyRzlCWGxCU1dUZjBXbU45ODhyZTJEdktyZmdWLzVYL3p2L3NmL0YveWNkcVhadFlGN1hOaWxSakR4V3Jyb1lTNVRTSExPSzhveWJXUG52THBNc3d5cHVtcDc0dUVUUENwMitJVlExMVIwdmdwSWJUMVM1V01jdGhkdG1Ickx0YVBNVWkwVDN3NjdEcElBMm95RlZxMHRSNXplc0FsbDNPYmZ5YjZNOFJjNC9ZSVY0cHVoUjJlU1F0em0xZGdKUHpDS3lxQjNyRHZteVpPcFI2NWhQempiUnY5OUJ1UmRiVXFnVk9nMWdPK3drTXB2SUdVV3Q0UEFLOWp0WFRyS0pWM2NTN0FVNFh0TFo1NzVoM0Vjc2EzR0w2RWxpZU5iaVd0TUhwaGQ3cUlSYjdtVS9YYWpxcHdIM1l6K1NwNFNWNmNFemFCbXVJN1NZY1psTFhueXF4UWcwc3ExVWtJMzNTa2I3cXUzN29wMzdyajg1UXB3NTZsOE11Nkh1bjFxWkFCVTlhOTlDMi9rbGRyblBNd0VtcjR4YnpaTjZ3NmtUbytsa05YYlFpbWJucXhKeERwTEhaTDhEVDJmZGdrOUNQZ0JpaHhYV2R6ck02M0NPc3oyYlQyV1NWck5KOWVyOW9Fenl3V2Fnd2dWdE1sVU9jekdGQ3JhK0E2RTRUZnBldGJrM3cxcXh2cnJydWhTM1p6YjBGMSs4S2ZiakdiMGlHZGF2VE03VFhrVGlrbVdUZHZCTFlPNHd0OUFtc1o5RWNxelZZYmR0RXV4a2IyT3ZvRVdtRGZDWk1hcnB0TDJOZzgzVUxCdlhzcGE3b29yRnZaeDFiTmJ2SXZEeitDY0xzaGNkV096ZlRLZHpjZkF6L0F1NkRjSFVBZUp4allHU2F4RGlCZ1pXQmdhbUthUThEQTBNUGhHWjh3R0RJeUFRVVpXQmxac0FLQXRKY1V4Z09NT2grTkdKK0FlUkdNYjloWUFIU2pDQTVBT01mQ3ZNQUFBQjRuTFhVQjFJYlFSQ0Y0VitCTE1DMk1Ea25SOWtnQkNJSElVREFLWENtY0tCdzVodyttKy9SSjhCdjFPMEQ0Q3B2MWFmZUdhMTJaN1QxR21nQmN2SlU4cEJ0SjZNek1sbk5acHJ6T1RxYjgzbCthMXlnbmF6T1M1eHp5YldWYjI0MFcrS01DNjRzMHh6OVBUSzZ1c0FvODZ4b3RNOFNlMnhSMStpRUNqdXNzc3MyQjZ5enhoSExiRkxsa0dNMnFOSGdWTDlQcThocmphMjA2YmtkV2ttWDd0aE5EM2U0UzVFKytobGdrQ0dHR2RHVHhoaG5na21tZE4wME04d3lwNmNYZWNCREh2R1lKOXBQaVdjODEvY0xMRkxXSWx1NTNiRi95K3ZUc2JTM1ZWODVxZXhveDlzSDYydmE3R2IxOEhpajFqajloNXY5aDZPUVBuSy9ZcFFXVlFwcHQyZGhTVjZFUFhrWnR1UlZxTXZya043Nm0zQWliME5GM29VZE9RK3JjaEYyNVgzWWxnL2hRRDZHZGZrVTF1UXlITWxWV0piUFlWTytoS3A4RFlmeUxSekw5N0FoUDBKTmZvYUdYQWY5VjVaeEtTK1dkYVNhY3lsZmxuY3BZOWJpVXZhczFaRnFteVBWZGtlcUhZNVVPMTNLcEhVNVVpMjQ5Q2F0MjVGcWp5UFZYcWZzWUVFcHdvSnlndDF6U2haV2RNb1kxdWVVTnV5K1UrNndmcWNFWWdOT1djUUduVktKRFRubEV4dDJTaW8yNHBSWmJOUXB2ZGlZVTQ2eGNhZEVZeE91dWQ5SnA1UmpVMDU1eDZhZGtvL05PUFVBYk5hcEcyQnpycm5mZWFjT2dRWDFDaXlvYTJCQi9RTUw2aVJZU0wzVFFzcU1CZlVaTEtqallLRzUvZ1ZIcW91T1ZNdU84aDhEOEtWUkFBQUFlSnp0V0gxc0crVVp2K2U5Mk9mejk5bStPM3RON05nWCswcVRHc1huODhWMm1pWk4ybVNNcEoxc092cEZDcXd0a05LMFVBYUZSVERFcERKR2l6VENINkJKb0VtT05Ba0d5ejlsUXkzcVFIUkMybHpSTVFsMTNjUS9KSXhGUllwQU12VnR6M3V4MDRabWpQMkp0dVRlOTU1N1A1NTdQbjczUHM5akJoajhJd3ZzSnNiRk1CQVhQU0RHOWJpaHhzbUM2UWFmK1Nrc21oZlBuNGNPZHFCVXE1V21xbFdHYWFGNzJOZlkxeGc3NDJGQ3pCcmNxZW1heW1tY29uT3lyaVZWVVJFMVVWVkVSVFlVZUtreWVmYnNaQS90eVBEWnlja1o2NWs4aXYwTXBVcG5KeXVUQmxMSTFwS0gzWVR5T0JnbUtCdUNKc2dHekJUbXkzTkZjeFlXaS9PbURiNllMOElvaW0ydG5XYW5VWVoyM0pyZzdKdzlKRXV5bERGeVJpNnJwdFJVa0ZNNTFWQU4yWkE1V0R4eSs3aVJ6eHZqdDMvWUpNWUx6ejFYbUo2MmVuWjZ4WlJGMUgvZm5NV2V2czU2WjVnTkk4VlJtd1UxUWFITjBFU2xPalgxOGRHajh3ODhRTzQyRDVDUitxbGF6VEt2dFdlT25XT0NUSVJhT2VFRlVRaEZRWXRuK2tBWHNtbmd3WkJCWm85ZCtTeXFSZkZpbmRhOXZtQitQSFlPS21Qc0hENnZtTHp5R1VoajcwQmw2MHIrOHVyOFdYVHFkZHlmcmw4Z1hkZHpybDg0ZkMxUDF1SXB4SVhrYW55UkordjhFdCtsd2NrdjgyM1k3aUgyKzR3TnZSdG1HQjQ0bVFmV2lJR2R1azRNU1ptY1R0MUcvbTZPRis0MDY5QjM3dHc3cjdwY0VaL1V2YmxiOGtYZ0xMeFV4QW56ZDdEaDNMaytqeWU2SmhWSmRIY25Jc25XS0dYUEwrTm55VDgreXlacm1CaWpVRi9wQ20wY05oMmJqTTBRTmQzV0dCZXd6VlFxTmV0cTNNMjlqU2Z5UXFXK0grL2xTbU1BWi9CcVlwYWNKQXVvRjRNcWNZallad3VuVHhkcVpLRjQ1a3l4dG95Yng5Z3psdWF0bHBmc0lxSTdMbHRFU0VLajV0Q21LVFl1eE1tcnBsdnBMc1BpbEtsVDdlQmQycHM2dk11ZTdrN1VYeWZEcFc2bC9qb2RKTU5LZDMwZkdWNytkaWcyNmJlTXVMZEVrUTJWRFJmbjU1c1grY3MxRC9nRk0vKzh3aDVpUDJIOGFLazJab1I1alBrNTdzWlBSN1ZkSXhpcjZJZ0IyUzVMUlFnbVExNmlKTkl0ZXJhUGFKa29pQ0Y3SXFXbVFjRU5DSTlNenVpRGpDU0h2RGlDdzNvMmw0bXlHdlZ0R3RRMHlmWUI3aUtOVFV0N1lpREpVWUxDNW94dTNCeUZrT2dETDBtazRVWVd0MHZzdmR6K3d6WnpURFVNbGVSVVk4dXN1UW1lSk1EYS9COFFjNXdQUkVOK09lUjMyanpoZUZEdUNEbzlqaFpIeUNlM3V1VjJ5VTRjWHVkcmdZVFVKbmo4dk5mQk9YeHVRWElGL0tFMVFpQW1CY0tDdytuaFdteSthTUR1c2dVQ0xrL0EyZHU1anJERTRYTFlpRTQ0cDg5dEp4b0x6b0NEZk9UNHdlTTIwcU5lK2FNbHpKUFZLejloSC9wVGhCZnF6L3paSFlzR0hZRTE3VWt4b2FkQ3JXcUE5ems5WWlpYmFlK1V3bUdueit1TDNDRDVYTW1BeSt1S0NHNDU0QlVjZGk0WVR5ZURIakVzK3AwdVh5RG80VjA4eTNFMkx0aDI0cmR2OEM2N2svTTRiZndGM3VmZ3Zmd2ZmTHpUSDZDdS9yL3Z2cm0rV3hIbjhGc1ZGRUhsZ0Iyd0FoMk0wa0FIWDVpMmVReDZOTjZ1OFBPMy82T1BEUnI2c2prdEk4VmdJNkV1azhTUUQyUjBqUmNTcVJ1Qm95Qkk2ZG12ZHMzNkhkL2hPVnZJSndUOXZmMU9yOTNqOEFYRnNiTGJ5UWRDZ1paYnY5ZkNDemp5VlVZOWQyekM2M0ZKL21CNDUwNWZ3R2J6dTRXMmU0LzV4SUNYNSsyUFBteDMyQVdmWlkvL0JSMVh4Z2s4blpIUmlVS3RWamhOWm91MVd2SE1NaTUya0RtbWlBOXAxTURPcWFna3FpVjdBVWxEd1FGRnRxTnFxaExGVDlpZ05INkxPQ1hiT1kwdWxtVHlMSmNlVXVORmVYVEhnVzBqVys1cGxXL3BHVXZ5ZzV5d2Jtekl3Y2V6amtGdS9XYTFvMzE0Y0FUbkoxcFQzOTNGdHp4eFE5dmE5aXhQaE9RR0pTS05hckhZb2VFTmQ4UkhrMW80c0c0enFMRlVuK0xiOGkwNnZMZC9kekMwdGpVVi9ZYkt6QzdMSE1EY1lLMlZQYUtzS0RFbWozMWdvR3dwRmsrdzdOS0I1Z1UyWWFmcFNUWUZpNVp3cmZkc0dYa1JpYlkySkxaMTNkVFZkZE90dE90YW04OXZ5K2ZKUi9TTnc0ZGlzZWJkbkdpc3dBNVl1bVpidmluSEJHS2lrVThtTVFlaE9UaGd4b2FaYzhXOFNCYnFKekVMZDlkSzhGS3BaRjRzTCtlVTVITUxTenhGazRGNEFzeER5ZWR2dm9sZ012VnlHWFNhZk5UbzNrWSt0NGtjc2Q1RE0vMjRqZWFFQS9YOTVQbEdPMUthS1RYaUNxNjlqWFVpNVdRRVJzU3NOVWIzb0JrNmdRcG4wTUFSMTROV0ZvV1p2MExEQWhrR0NkTzhHWkRNajJlUU1OMlQ5TzhTVFFSaGxIWmpodzlmd3Z0ay9jTGs1R0U2ZkowZVFacXhxSEhVNDFOTERYaXdYQ2F6bGhxb3hIWG5KaFlxbURtcnFNYlNVUW1qOU5nazBmbUNPV3ZPRnVhYjlwMG1iMk9ORUdhNjhBMG9haEYwQlhOWkRGMFdsUVlaVFpIRWttWEoxWjJBVkI5Z3dQdEZvbGVwVlBKN2UzcjI1aXNWcFRmeFN4Z3pmdzBQVWxwUmx1ZGdVU2txVzN2Rzd4dnYyYW9VdVhJRit5MTBaTytSOFo1bUx1MUVlOHFXSGJFVXdXSkI1ckJLMHJFNG9RWTBzR3BpTlVOWEZVNGtYZnUyN24vbW1mMWI5eDFlSnZidkhoallQVUFlWGpGSUNmT1JBVHJWc01zRU8wRTFEcUozcHhBMkFYYWl4S3lDTVFQVnRmN1JoOWE2cFlibFhibGFLalhPcVFYbVBOMXBJQzhMUWxVTEc2dnlFaHA0bmFMcm12eXV3cFc5cGs2TE0rbC9VNmxCbHBMMElJQTA0QUd1QWsxTzZNTFY2alp6MC9xdW0wZDM1ZS9xTk5jbk9tQVVDWGd2MFVFSFZ5dmp6UEZkb3pkM3JlOUltT3M3N3pJLzZVakFlNTEzNWEyeHBrNEhNVGVYMEQ4cXlxZlExSVpUVmlibVNqd2owYndubTRPNG9LSEtHaHYrbGFkL1c3LzNGU3NSSDdGeTlJdENKSktJUkVDdm55ckRpMlYySXBsT0p6Rm4zMmV0ZVNIUkhWYkNlS0dOWHBpYWFtS2puKzFES1h5MGVsQ05JRmlaTzYxWlZkajFsUHJVWDZFckdyM2N1LzN5TGIzSG9wRERFZmliZVNFYVBkWjd5K1h0dlpldnFYdG9UYjVVN3lpb1I1ckpNRG1tZ0dkS0hER09LdlRSeWkxS2F6Z3ZBTUlkOVlnbmwxNkZ5Qk8xcEZVc3kzU0tmZzBHTm5wQXhMUzJOaTFHbnJmdTlYOVVLdWptSVhqRC9IRGpSdlhBQWZWOUhQaEU3ZCs0OXNBQk00UzBkT25TcFVxbDUrcVdtTVVDeEFyODJIemtsWTM5dUdrdHZEOXpvOXBQU1hpYUZsT1ZGWFZ5aUxtaGlSSS9SVWs3aFlhZm9vUk5XR0dmUG1mb1RBTWd4NDhlR1J3YUdqeHlGUHhONnZpOWUzYnFocUh2M1BOQmsyRG42SVI1ZWVYaUt6OWNzY2dpR3BpZ3NyZ1JzemtxalhWZ0xKMEw2bjhoMnREOWc0UDNINmZkME5lVGtpdzAxbU5YKzlvQ1gzYzJjakordVJnVHJ2M054TW92NXdzdzJyQTFQUzg4aUhxcnZsZVdzVzR6TEV3SUNQRDZxZElTdE0zWmc0VnF0WEN3VEg4UWdnN3pvbFdYZHJRZUxGYXJ4WVB3cytYODVtMnloM0lITElJN3FsV3ltLzVpMUp6YmcrY3dzV1NqNCtTdDFlWVE5RCt0VnVsZTVqcWVpRTBjcC9OWDliMlRkVGZ6S1ZEaDBNdkZPVmdzUU9ubHdqemVtelV4aVRiUHhTcjlYWVpFeTh1OEY4akpwYnFkSm1TTldFTk8wT3I5YXQwK2pYYWljVEJEendheFVUWnhjaC9RcW9oVFpJMG1PdUxWZUlKVmt5SGpRaGt2QThoYlZyd3cxbTNJYnV6WmU4ZnVzcU4rNnZIQ1NET21iT3JlSHJ0dmZHUW1XeDhtYjJIa1VMbzJ1emFzdWFNM1A5NVRLY1BCSDRYdjdzOWJnVVhwdnNtMnZYd2JyaVMvUWFuK0JSK3ZPZzRBQUFCNG5HTmdaR0JnQUdLcEgvck84ZncyWHhtNG1WOEFCYUk0SCs5clFORC8vekMvWUg0RFZNbkJ3QVFrR1FCWDNRMEZBQUFBZUp4allHUmdZSDdCd0lCRU1qS2dBaDhBUllZREVBQUFlSnhqWUdCZ1lINHhQREE5QUFBTmVDM25BQUI0bkdOZ0FBSXBCZytHT0lZWkRKc1lIakh5TUpveFpqQXVZdHpDK0l5Smdla2U4eDdtU3l3dUxOdFlUckFxc2Rhd0htQzl3L3FGall2TmdTMkNyWUJ0RTlzVHRrL3NYT3dTN0Vic1Rld0gySjl3dUhIMGNEemorTU9weG1uQzZjUVp3Qm5IV2NCWnh6bUI4eDdwRUFCK1JERW1BSGljWTJCa1lHRHdZWmpId01rQUFreEF6QVdFREF6L3dYd0dBQ0NMQWdvQWVKeDlrRDFxdzBBUWhaLzhGMkpEQ0lTNFVyRVFTQk9RZjBxVDJvS0FHeGZ1WldzbHk2eTFZclUyK0FZNVNFNlFRNlRNUVhLS1BLMjNzUXZQd3ZDOU4yK21XQUNQK0VHQXBnSTh1TjVVQzNkVVoyNlRuajEzeUMrZXV4aGc0cmxILzkxekgyLzQ4RHpBRXc2OEVIVHU2WVQ0OU54aS9zdHptLzYzNXc3NTEzTVhRL3g1N2lFTTRMbVBWUkI2SHVBMU1Fa2VteUpkSkZhYUlsRkxtUjlVY21WZXFwVTBkYUZMTVluR2w0TllsdEtRVTdFK2lmcVlUNjNOUkdiMFhzeDFhYVZTV2xSRzcrVEdSbHRycTlsb2xIay8ydWc5RXVTSVlWQWd4WUxLUWpxVlFHRkp6dmtYaXNyY1RONmFyUnpYVkJvbEJQOC93dmptUmt3dW5UNzdLYmZXT0xIWE9ISnZTdGNpbzg2WTBkaVQ1dTU2azFaOG1rN2xaanM2Ry9vUnRtNnJ3Z3dqdnV3cUh6SEZTLzgwOG0vZUFBQjRuRzJTQjIvYk1CQ0YvY1dTN2RocGs2WnR1dmNlYXV2dW5lNlovZ2lHb21VaUVpbVFsTzNrMTVlMWd3QUJlZ0NKOXg3dWp1OE9iQzIxRnRGdi9UKzJXS0pOUWtxSExqMlc2VE5naFNNY1paVTFqckhPY1U1d2tnMU9jWm96bk9VYzU3bkFSUzV4bVN0YzVSclh1Y0ZOYm5HYk85emxIdmZKZU1CREhqSGtNVTk0eWpPZTg0S1h2T0kxYjNqTE85Nnp5UWMrOG9uUGZPRXIzL2pPRDM3eWk5OXM4YWMxRUVYaFZDR0N0cVlqbkxOVDN4WmVkcVF3VXBXcEhBc1gxdVJZeVoxdE84dm1RT1ViQjRJMnVRcktWZHFJb05ZUDVNYnNaNjVJVzFxWDFUb1MxNDJrcVl6dlMydUNFektvUEpHMjNrMmxzOTYzcForazhXVERKRmRlcG1vV0RYVG5kemJzcVZrdDRsdjVzdHBWbVMrRkh3OE9VRFpzUjl3WjZUSmFTVWZhK1pBVVR0ZHA0V3hUSnpFbEpLVWFoVTZwVGZUVUxhM0l0U2w2bFpqcFN1K3BwRkttNmNVWkZzeFlvd2JHaGt5VXBaMnFQSzFqQTlXdXRVbHJQYkZoemNWeW0yMDNJVmlUMmRGbzliQmdVcWVMY1VpOG1LaStyMktYTExkVHN3Ly9HUmtzNER5dHQ4RFJaNGhMV2c5T3FjTmJYWjVMdGxhbTE1akZCQWdLSElxQXhtS1k0cEdVak5saG0xbjhGemtWRFRXN1RCaXgxMnI5Qlp4cXRSSUFBQT09XCIpIGZvcm1hdChcIndvZmZcIik7XG4kYWctdGhlbWUtbWF0ZXJpYWwtaWNvbnMtZm9udC1jb2RlczogKFxuICAgIGFnZ3JlZ2F0aW9uOiB1bnF1b3RlKFwiXFxcIlxcXFxcIikgKyB1bnF1b3RlKFwiZjEwMVxcXCJcIiksXG4gICAgYXJyb3dzOiB1bnF1b3RlKFwiXFxcIlxcXFxcIikgKyB1bnF1b3RlKFwiZjEwMlxcXCJcIiksXG4gICAgYXNjOiB1bnF1b3RlKFwiXFxcIlxcXFxcIikgKyB1bnF1b3RlKFwiZjEwM1xcXCJcIiksXG4gICAgY2FuY2VsOiB1bnF1b3RlKFwiXFxcIlxcXFxcIikgKyB1bnF1b3RlKFwiZjEwNFxcXCJcIiksXG4gICAgY2hhcnQ6IHVucXVvdGUoXCJcXFwiXFxcXFwiKSArIHVucXVvdGUoXCJmMTA1XFxcIlwiKSxcbiAgICBjaGVja2JveC1jaGVja2VkOiB1bnF1b3RlKFwiXFxcIlxcXFxcIikgKyB1bnF1b3RlKFwiZjEwNlxcXCJcIiksXG4gICAgY2hlY2tib3gtaW5kZXRlcm1pbmF0ZTogdW5xdW90ZShcIlxcXCJcXFxcXCIpICsgdW5xdW90ZShcImYxMDdcXFwiXCIpLFxuICAgIGNoZWNrYm94LXVuY2hlY2tlZDogdW5xdW90ZShcIlxcXCJcXFxcXCIpICsgdW5xdW90ZShcImYxMDhcXFwiXCIpLFxuICAgIGNvbG9yLXBpY2tlcjogdW5xdW90ZShcIlxcXCJcXFxcXCIpICsgdW5xdW90ZShcImYxMDlcXFwiXCIpLFxuICAgIGNvbHVtbnM6IHVucXVvdGUoXCJcXFwiXFxcXFwiKSArIHVucXVvdGUoXCJmMTBhXFxcIlwiKSxcbiAgICBjb250cmFjdGVkOiB1bnF1b3RlKFwiXFxcIlxcXFxcIikgKyB1bnF1b3RlKFwiZjEwYlxcXCJcIiksXG4gICAgY29weTogdW5xdW90ZShcIlxcXCJcXFxcXCIpICsgdW5xdW90ZShcImYxMGNcXFwiXCIpLFxuICAgIGNyb3NzOiB1bnF1b3RlKFwiXFxcIlxcXFxcIikgKyB1bnF1b3RlKFwiZjEwZFxcXCJcIiksXG4gICAgY3N2OiB1bnF1b3RlKFwiXFxcIlxcXFxcIikgKyB1bnF1b3RlKFwiZjEwZVxcXCJcIiksXG4gICAgZGVzYzogdW5xdW90ZShcIlxcXCJcXFxcXCIpICsgdW5xdW90ZShcImYxMGZcXFwiXCIpLFxuICAgIGV4Y2VsOiB1bnF1b3RlKFwiXFxcIlxcXFxcIikgKyB1bnF1b3RlKFwiZjExMFxcXCJcIiksXG4gICAgZXhwYW5kZWQ6IHVucXVvdGUoXCJcXFwiXFxcXFwiKSArIHVucXVvdGUoXCJmMTExXFxcIlwiKSxcbiAgICBleWUtc2xhc2g6IHVucXVvdGUoXCJcXFwiXFxcXFwiKSArIHVucXVvdGUoXCJmMTEyXFxcIlwiKSxcbiAgICBleWU6IHVucXVvdGUoXCJcXFwiXFxcXFwiKSArIHVucXVvdGUoXCJmMTEzXFxcIlwiKSxcbiAgICBmaWx0ZXI6IHVucXVvdGUoXCJcXFwiXFxcXFwiKSArIHVucXVvdGUoXCJmMTE0XFxcIlwiKSxcbiAgICBmaXJzdDogdW5xdW90ZShcIlxcXCJcXFxcXCIpICsgdW5xdW90ZShcImYxMTVcXFwiXCIpLFxuICAgIGdyaXA6IHVucXVvdGUoXCJcXFwiXFxcXFwiKSArIHVucXVvdGUoXCJmMTE2XFxcIlwiKSxcbiAgICBncm91cDogdW5xdW90ZShcIlxcXCJcXFxcXCIpICsgdW5xdW90ZShcImYxMTdcXFwiXCIpLFxuICAgIGxhc3Q6IHVucXVvdGUoXCJcXFwiXFxcXFwiKSArIHVucXVvdGUoXCJmMTE4XFxcIlwiKSxcbiAgICBsZWZ0OiB1bnF1b3RlKFwiXFxcIlxcXFxcIikgKyB1bnF1b3RlKFwiZjExOVxcXCJcIiksXG4gICAgbGlua2VkOiB1bnF1b3RlKFwiXFxcIlxcXFxcIikgKyB1bnF1b3RlKFwiZjExYVxcXCJcIiksXG4gICAgbG9hZGluZzogdW5xdW90ZShcIlxcXCJcXFxcXCIpICsgdW5xdW90ZShcImYxMWJcXFwiXCIpLFxuICAgIG1heGltaXplOiB1bnF1b3RlKFwiXFxcIlxcXFxcIikgKyB1bnF1b3RlKFwiZjExY1xcXCJcIiksXG4gICAgbWVudTogdW5xdW90ZShcIlxcXCJcXFxcXCIpICsgdW5xdW90ZShcImYxMWRcXFwiXCIpLFxuICAgIG1pbmltaXplOiB1bnF1b3RlKFwiXFxcIlxcXFxcIikgKyB1bnF1b3RlKFwiZjExZVxcXCJcIiksXG4gICAgbmV4dDogdW5xdW90ZShcIlxcXCJcXFxcXCIpICsgdW5xdW90ZShcImYxMWZcXFwiXCIpLFxuICAgIG5vbmU6IHVucXVvdGUoXCJcXFwiXFxcXFwiKSArIHVucXVvdGUoXCJmMTIwXFxcIlwiKSxcbiAgICBub3QtYWxsb3dlZDogdW5xdW90ZShcIlxcXCJcXFxcXCIpICsgdW5xdW90ZShcImYxMjFcXFwiXCIpLFxuICAgIHBhc3RlOiB1bnF1b3RlKFwiXFxcIlxcXFxcIikgKyB1bnF1b3RlKFwiZjEyMlxcXCJcIiksXG4gICAgcGluOiB1bnF1b3RlKFwiXFxcIlxcXFxcIikgKyB1bnF1b3RlKFwiZjEyM1xcXCJcIiksXG4gICAgcGl2b3Q6IHVucXVvdGUoXCJcXFwiXFxcXFwiKSArIHVucXVvdGUoXCJmMTI0XFxcIlwiKSxcbiAgICBwcmV2aW91czogdW5xdW90ZShcIlxcXCJcXFxcXCIpICsgdW5xdW90ZShcImYxMjVcXFwiXCIpLFxuICAgIHJhZGlvLWJ1dHRvbi1vZmY6IHVucXVvdGUoXCJcXFwiXFxcXFwiKSArIHVucXVvdGUoXCJmMTI2XFxcIlwiKSxcbiAgICByYWRpby1idXR0b24tb246IHVucXVvdGUoXCJcXFwiXFxcXFwiKSArIHVucXVvdGUoXCJmMTI3XFxcIlwiKSxcbiAgICByaWdodDogdW5xdW90ZShcIlxcXCJcXFxcXCIpICsgdW5xdW90ZShcImYxMjhcXFwiXCIpLFxuICAgIHNhdmU6IHVucXVvdGUoXCJcXFwiXFxcXFwiKSArIHVucXVvdGUoXCJmMTI5XFxcIlwiKSxcbiAgICBzbWFsbC1kb3duOiB1bnF1b3RlKFwiXFxcIlxcXFxcIikgKyB1bnF1b3RlKFwiZjEyYVxcXCJcIiksXG4gICAgc21hbGwtbGVmdDogdW5xdW90ZShcIlxcXCJcXFxcXCIpICsgdW5xdW90ZShcImYxMmJcXFwiXCIpLFxuICAgIHNtYWxsLXJpZ2h0OiB1bnF1b3RlKFwiXFxcIlxcXFxcIikgKyB1bnF1b3RlKFwiZjEyY1xcXCJcIiksXG4gICAgc21hbGwtdXA6IHVucXVvdGUoXCJcXFwiXFxcXFwiKSArIHVucXVvdGUoXCJmMTJkXFxcIlwiKSxcbiAgICB0aWNrOiB1bnF1b3RlKFwiXFxcIlxcXFxcIikgKyB1bnF1b3RlKFwiZjEyZVxcXCJcIiksXG4gICAgdHJlZS1jbG9zZWQ6IHVucXVvdGUoXCJcXFwiXFxcXFwiKSArIHVucXVvdGUoXCJmMTJmXFxcIlwiKSxcbiAgICB0cmVlLWluZGV0ZXJtaW5hdGU6IHVucXVvdGUoXCJcXFwiXFxcXFwiKSArIHVucXVvdGUoXCJmMTMwXFxcIlwiKSxcbiAgICB0cmVlLW9wZW46IHVucXVvdGUoXCJcXFwiXFxcXFwiKSArIHVucXVvdGUoXCJmMTMxXFxcIlwiKSxcbiAgICB1bmxpbmtlZDogdW5xdW90ZShcIlxcXCJcXFxcXCIpICsgdW5xdW90ZShcImYxMzJcXFwiXCIpLFxuKTsiLCJcbkBtaXhpbiBhZy10aGVtZS1iYXNlLXBhcnQtcmVzZXQge1xuXG4gICAgLy8gSU1QT1JUQU5UISBBbGwgcmVzZXRzIG11c3QgYmUgc2NvcGVkIHRvIGVsZW1lbnRzIHdpdGggYW4gW2NsYXNzXj0nYWctJ10gYXR0cmlidXRlIHRvXG4gICAgLy8gYXZvaWQgbWVzc2luZyB3aXRoIGN1c3RvbSBjb21wb25lbnQgc3R5bGVzXG5cbiAgICBbY2xhc3NePSdhZy0nXSwgW2NsYXNzXj0nYWctJ106Zm9jdXMsIFtjbGFzc149J2FnLSddOmFmdGVyLCBbY2xhc3NePSdhZy0nXTpiZWZvcmUge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgIFtjbGFzc149J2FnLSddOjotbXMtY2xlYXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cbiIsIlxuQG1peGluIGFnLXRoZW1lLWJhc2UtcGFydC13aWRnZXRzIHtcbiAgICAuYWctY2hlY2tib3gsXG4gICAgLmFnLXJhZGlvLWJ1dHRvbiB7XG4gICAgICAgIC5hZy1pbnB1dC13cmFwcGVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFnLXJhbmdlLWZpZWxkIHtcbiAgICAgICAgLmFnLWlucHV0LXdyYXBwZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFnLXRvZ2dsZS1idXR0b24ge1xuICAgICAgICBmbGV4OiBub25lO1xuICAgICAgICB3aWR0aDogdW5zZXQ7XG4gICAgICAgIG1pbi13aWR0aDogdW5zZXQ7XG4gICAgfVxuXG4gICAgLmFnLWxhYmVsLWFsaWduLXJpZ2h0IC5hZy1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIGFnLXRoZW1lLXJ0bCgobWFyZ2luLWxlZnQ6IGFnLXBhcmFtKGdyaWQtc2l6ZSkpKTtcbiAgICB9XG5cbiAgICBpbnB1dFtjbGFzc149J2FnLSddIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShiYWNrZ3JvdW5kLWNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICB9XG5cbiAgICB0ZXh0YXJlYVtjbGFzc149J2FnLSddLFxuICAgIHNlbGVjdFtjbGFzc149J2FnLSddIHtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYmFja2dyb3VuZC1jb2xvciwgYmFja2dyb3VuZC1jb2xvcik7XG4gICAgfVxuXG4gICAgaW5wdXRbY2xhc3NePSdhZy0nXTpub3QoW3R5cGVdKSxcbiAgICBpbnB1dFtjbGFzc149J2FnLSddW3R5cGU9J3RleHQnXSxcbiAgICBpbnB1dFtjbGFzc149J2FnLSddW3R5cGU9J251bWJlciddLFxuICAgIGlucHV0W2NsYXNzXj0nYWctJ11bdHlwZT0ndGVsJ10sXG4gICAgaW5wdXRbY2xhc3NePSdhZy0nXVt0eXBlPSdkYXRlJ10sXG4gICAgaW5wdXRbY2xhc3NePSdhZy0nXVt0eXBlPSdkYXRldGltZS1sb2NhbCddLFxuICAgIHRleHRhcmVhW2NsYXNzXj0nYWctJ10ge1xuICAgICAgICBAZXh0ZW5kICVhZy10ZXh0LWlucHV0ICFvcHRpb25hbDtcblxuICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcblxuICAgICAgICBAaWYgYWctcGFyYW0taXMtc2V0KGlucHV0LWJvcmRlci1jb2xvcikge1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYm9yZGVyLWNvbG9yLCBpbnB1dC1ib3JkZXItY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpkaXNhYmxlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShjb2xvciwgZGlzYWJsZWQtZm9yZWdyb3VuZC1jb2xvcik7XG4gICAgICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShiYWNrZ3JvdW5kLWNvbG9yLCBpbnB1dC1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJvcmRlci1jb2xvciwgaW5wdXQtZGlzYWJsZWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGFnLXBhcmFtKGlucHV0LWZvY3VzLWJveC1zaGFkb3cpO1xuICAgICAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYm9yZGVyLWNvbG9yLCBpbnB1dC1mb2N1cy1ib3JkZXItY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXRbY2xhc3NePSdhZy0nXVt0eXBlPSdudW1iZXInXSB7XG4gICAgICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAgICAgICAmOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxuICAgICAgICAmOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlucHV0W2NsYXNzXj0nYWctJ11bdHlwZT0ncmFuZ2UnXSB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgaW5wdXRbY2xhc3NePSdhZy0nXVt0eXBlPSdidXR0b24nXSwgYnV0dG9uW2NsYXNzXj0nYWctJ10ge1xuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGFnLXBhcmFtKGlucHV0LWZvY3VzLWJveC1zaGFkb3cpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFnLWRyYWctaGFuZGxlIHtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoY29sb3IsIHNlY29uZGFyeS1mb3JlZ3JvdW5kLWNvbG9yKTtcbiAgICB9XG5cbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gTGlzdHNcbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLmFnLWxpc3QtaXRlbSwgLmFnLXZpcnR1YWwtbGlzdC1pdGVtIHtcbiAgICAgICAgaGVpZ2h0OiBhZy1wYXJhbShsaXN0LWl0ZW0taGVpZ2h0KTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBhZy1rZXlib2FyZC1mb2N1cygoYWctdmlydHVhbC1saXN0LWl0ZW0pLCA0cHgpO1xuXG4gICAgLmFnLXNlbGVjdC1saXN0IHtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYmFja2dyb3VuZC1jb2xvciwgYmFja2dyb3VuZC1jb2xvcik7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAuYWctbGlzdC1pdGVtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cbiAgICAgICAgJi5hZy1hY3RpdmUtaXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShiYWNrZ3JvdW5kLWNvbG9yLCByb3ctaG92ZXItY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFnLXNlbGVjdC1saXN0LWl0ZW0ge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDRweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogNHB4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIEBpbmNsdWRlIGFnLXNlbGVjdGFibGUobm9uZSk7XG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hZy1zZWxlY3Qge1xuICAgICAgICAuYWctcGlja2VyLWZpZWxkLXdyYXBwZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYmFja2dyb3VuZC1jb2xvciwgYmFja2dyb3VuZC1jb2xvcik7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiBhZy1wYXJhbShsaXN0LWl0ZW0taGVpZ2h0KTtcbiAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuYWctZGlzYWJsZWQgLmFnLXBpY2tlci1maWVsZC13cmFwcGVyOmZvY3VzIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCguYWctY2VsbC1lZGl0b3IpIHtcbiAgICAgICAgICAgIGhlaWdodDogYWctcGFyYW0obGlzdC1pdGVtLWhlaWdodCk7XG4gICAgICAgIH1cbiAgICAgICAgLmFnLXBpY2tlci1maWVsZC1kaXNwbGF5IHtcbiAgICAgICAgICAgIG1hcmdpbjogNHB4O1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuICAgICAgICAuYWctcGlja2VyLWZpZWxkLWljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgICAgJi5hZy1kaXNhYmxlZCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gUmljaCBTZWxlY3RcbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLmFnLXJpY2gtc2VsZWN0IHtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYmFja2dyb3VuZC1jb2xvciwgY29udHJvbC1wYW5lbC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICB9XG5cbiAgICAuYWctcmljaC1zZWxlY3QtbGlzdCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4td2lkdGg6IDIwMHB4O1xuICAgICAgICBoZWlnaHQ6IGFnLXBhcmFtKHJvdy1oZWlnaHQpICogNi41OyAvLyBpbnRlbnRpb25hbFxuICAgIH1cblxuICAgIC5hZy1yaWNoLXNlbGVjdC12YWx1ZSB7XG4gICAgICAgIHBhZGRpbmc6IDAgYWctcGFyYW0oZ3JpZC1zaXplKSAwIGFnLXBhcmFtKGNlbGwtaG9yaXpvbnRhbC1wYWRkaW5nKTtcbiAgICAgICAgaGVpZ2h0OiBhZy1wYXJhbShyb3ctaGVpZ2h0KTtcblxuICAgICAgICBAaW5jbHVkZSBhZy1ib3JkZXIoc2Vjb25kYXJ5LCBib3R0b20pO1xuICAgIH1cblxuICAgIC5hZy1yaWNoLXNlbGVjdC12aXJ0dWFsLWxpc3QtaXRlbSB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgaGVpZ2h0OiBhZy1wYXJhbShsaXN0LWl0ZW0taGVpZ2h0KTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJhY2tncm91bmQtY29sb3IsIHJvdy1ob3Zlci1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWctcmljaC1zZWxlY3Qtcm93IHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiBhZy1wYXJhbShjZWxsLWhvcml6b250YWwtcGFkZGluZyk7XG4gICAgfVxuXG4gICAgLmFnLXJpY2gtc2VsZWN0LXJvdy1zZWxlY3RlZCB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJhY2tncm91bmQtY29sb3IsIHNlbGVjdGVkLXJvdy1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICB9XG5cbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gU2VsZWN0aW9uIGNoZWNrYm94XG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5cbiAgICAuYWctcm93LWRyYWcsXG4gICAgLmFnLXNlbGVjdGlvbi1jaGVja2JveCxcbiAgICAuYWctZ3JvdXAtZXhwYW5kZWQsXG4gICAgLmFnLWdyb3VwLWNvbnRyYWN0ZWQge1xuICAgICAgICBAaW5jbHVkZSBhZy10aGVtZS1ydGwoKCBtYXJnaW4tcmlnaHQ6IGFnLXBhcmFtKGNlbGwtd2lkZ2V0LXNwYWNpbmcpICkpO1xuXG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGNvbG9yLCBzZWNvbmRhcnktZm9yZWdyb3VuZC1jb2xvcik7XG4gICAgfVxuXG4gICAgLmFnLWNlbGwtd3JhcHBlciA+ICo6bm90KC5hZy1jZWxsLXZhbHVlKTpub3QoLmFnLWdyb3VwLXZhbHVlKSB7XG4gICAgICAgIGhlaWdodDogYWctcGFyYW0ocm93LWhlaWdodCkgLSAycHg7IC8vIC0gMnB4IHRvIHJlbW92ZSBlZmZlY3Qgb2YgY2VsbCBib3JkZXJzXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZsZXg6IG5vbmU7XG4gICAgfVxuXG4gICAgLmFnLWdyb3VwLWV4cGFuZGVkLFxuICAgIC5hZy1ncm91cC1jb250cmFjdGVkIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC5hZy1ncm91cC10aXRsZS1iYXItaWNvbiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZmxleDogbm9uZTtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoY29sb3IsIHNlY29uZGFyeS1mb3JlZ3JvdW5kLWNvbG9yKTtcbiAgICB9XG5cbiAgICAuYWctZ3JvdXAtY2hpbGQtY291bnQge1xuICAgICAgICBAaW5jbHVkZSBhZy10aGVtZS1ydGwoKCBtYXJnaW4tbGVmdDogMnB4ICkpO1xuICAgIH1cblxuICAgIC5hZy1ncm91cC10aXRsZS1iYXIge1xuICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShiYWNrZ3JvdW5kLWNvbG9yLCBzdWJoZWFkZXItYmFja2dyb3VuZC1jb2xvcik7XG4gICAgICAgIHBhZGRpbmc6IGFnLXBhcmFtKGdyaWQtc2l6ZSk7XG4gICAgfVxuXG4gICAgLmFnLWdyb3VwLXRvb2xiYXIge1xuICAgICAgICBwYWRkaW5nOiBhZy1wYXJhbShncmlkLXNpemUpO1xuICAgIH1cblxuICAgIC5hZy1kaXNhYmxlZC1ncm91cC10aXRsZS1iYXIsIC5hZy1kaXNhYmxlZC1ncm91cC1jb250YWluZXIge1xuICAgICAgICBvcGFjaXR5OiAwLjVcbiAgICB9XG5cbiAgICAuZ3JvdXAtaXRlbSB7XG4gICAgICAgIG1hcmdpbjogYWctcGFyYW0oZ3JpZC1zaXplKSAvIDIgMDtcbiAgICB9XG5cbiAgICAuYWctbGFiZWwge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBAaW5jbHVkZSBhZy10aGVtZS1ydGwoKG1hcmdpbi1yaWdodDogYWctcGFyYW0oZ3JpZC1zaXplKSkpO1xuICAgIH1cblxuICAgIC5hZy1sYWJlbC1hbGlnbi10b3AgLmFnLWxhYmVsIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogYWctcGFyYW0oZ3JpZC1zaXplKSAvIDI7XG4gICAgfVxuXG4gICAgLmFnLXNsaWRlci1maWVsZCxcbiAgICAuYWctYW5nbGUtc2VsZWN0LWZpZWxkIHtcbiAgICAgICAgQGluY2x1ZGUgYWctdGhlbWUtcnRsKChtYXJnaW4tcmlnaHQ6IGFnLXBhcmFtKGdyaWQtc2l6ZSkgKiAyKSk7XG4gICAgfVxuXG4gICAgLmFnLWFuZ2xlLXNlbGVjdC1wYXJlbnQtY2lyY2xlIHtcbiAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHg7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJvcmRlci1jb2xvciwgYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYmFja2dyb3VuZC1jb2xvciwgYmFja2dyb3VuZC1jb2xvcik7XG4gICAgfVxuICAgIC5hZy1hbmdsZS1zZWxlY3QtY2hpbGQtY2lyY2xlIHtcbiAgICAgICAgdG9wOiA0cHg7XG4gICAgICAgIGxlZnQ6IDEycHg7XG4gICAgICAgIHdpZHRoOiA2cHg7XG4gICAgICAgIGhlaWdodDogNnB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogLTNweDtcbiAgICAgICAgbWFyZ2luLXRvcDogLTRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShiYWNrZ3JvdW5kLWNvbG9yLCBzZWNvbmRhcnktZm9yZWdyb3VuZC1jb2xvcik7XG4gICAgfVxuXG4gICAgLmFnLXBpY2tlci1maWVsZC13cmFwcGVyIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJvcmRlci1jb2xvciwgYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGFnLXBhcmFtKGlucHV0LWZvY3VzLWJveC1zaGFkb3cpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFnLXBpY2tlci1maWVsZC1idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShiYWNrZ3JvdW5kLWNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoY29sb3IsIHNlY29uZGFyeS1mb3JlZ3JvdW5kLWNvbG9yKTtcbiAgICB9XG5cbiAgICAuYWctZGlhbG9nLmFnLWNvbG9yLWRpYWxvZyB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICB9XG5cbiAgICAuYWctY29sb3ItcGlja2VyIC5hZy1waWNrZXItZmllbGQtZGlzcGxheSB7XG4gICAgICAgIGhlaWdodDogYWctcGFyYW0oaWNvbi1zaXplKTtcbiAgICB9XG5cbiAgICAuYWctY29sb3ItcGFuZWwge1xuICAgICAgICBwYWRkaW5nOiBhZy1wYXJhbShncmlkLXNpemUpO1xuICAgIH1cblxuICAgIC5hZy1zcGVjdHJ1bS1jb2xvciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDAsIDApO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgfVxuXG4gICAgLmFnLXNwZWN0cnVtLXRvb2xzIHtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICB9XG5cbiAgICAuYWctc3BlY3RydW0tc2F0IHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB3aGl0ZSwgcmdiYSgyMDQsIDE1NCwgMTI5LCAwKSk7XG4gICAgfVxuXG4gICAgLmFnLXNwZWN0cnVtLXZhbCB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIGJsYWNrLCByZ2JhKDIwNCwgMTU0LCAxMjksIDApKTtcbiAgICB9XG5cbiAgICAuYWctc3BlY3RydW0tZHJhZ2dlciB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIGhlaWdodDogMTJweDtcbiAgICAgICAgd2lkdGg6IDEycHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xuICAgICAgICBiYWNrZ3JvdW5kOiBibGFjaztcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjI0KTtcbiAgICB9XG5cbiAgICAuYWctc3BlY3RydW0taHVlLWJhY2tncm91bmQge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgfVxuXG4gICAgLmFnLXNwZWN0cnVtLWFscGhhLWJhY2tncm91bmQge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgfVxuXG4gICAgLmFnLXNwZWN0cnVtLXRvb2wge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICBoZWlnaHQ6IDExcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICB9XG5cbiAgICAuYWctc3BlY3RydW0tc2xpZGVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLTEycHg7XG4gICAgICAgIHdpZHRoOiAxM3B4O1xuICAgICAgICBoZWlnaHQ6IDEzcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEzcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDgsIDI0OCwgMjQ4KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNHB4IDAgcmdiYSgwLCAwLCAwLCAwLjM3KTtcbiAgICB9XG5cbiAgICAuYWctcmVjZW50LWNvbG9yIHtcbiAgICAgICAgbWFyZ2luOiAwIDNweDtcbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgfVxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIEdob3N0IEVsZW1lbnQgKERyYWcgYW5kIERyb3ApXG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgICYuYWctZG5kLWdob3N0IHtcbiAgICAgICAgQGluY2x1ZGUgYWctY2FyZCgpO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgQGluY2x1ZGUgYWctYm9yZGVyKHNlY29uZGFyeSk7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGNvbG9yLCBzZWNvbmRhcnktZm9yZWdyb3VuZC1jb2xvcik7XG4gICAgICAgIGhlaWdodDogYWctcGFyYW0oaGVhZGVyLWhlaWdodCkgIWltcG9ydGFudDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGFnLXBhcmFtKGhlYWRlci1oZWlnaHQpO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDAgYWctcGFyYW0oZ3JpZC1zaXplKSAqIDI7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWShhZy1wYXJhbShncmlkLXNpemUpICogMik7XG4gICAgfVxuXG4gICAgLmFnLWRuZC1naG9zdC1pY29uIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhZy1wYXJhbShncmlkLXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShjb2xvciwgZm9yZWdyb3VuZC1jb2xvcik7XG4gICAgfVxuXG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIFBvcHVwXG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC5hZy1wb3B1cC1jaGlsZDpub3QoLmFnLXRvb2x0aXAtY3VzdG9tKSB7XG4gICAgICAgIGJveC1zaGFkb3c6IGFnLXBhcmFtKHBvcHVwLXNoYWRvdyk7XG4gICAgfVxuXG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIERpYWxvZ1xuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIC5hZy1kcmFnZ2luZy1yYW5nZS1oYW5kbGUgJiAuYWctZGlhbG9nLFxuICAgIC5hZy1kcmFnZ2luZy1maWxsLWhhbmRsZSAmIC5hZy1kaWFsb2cge1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgIC5hZy1kaWFsb2cge1xuICAgICAgICBib3JkZXItcmFkaXVzOiBhZy1wYXJhbShib3JkZXItcmFkaXVzKTtcbiAgICAgICAgQGluY2x1ZGUgYWctYm9yZGVyKHByaW1hcnkpO1xuICAgIH1cblxuICAgIC5hZy1wYW5lbCB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJhY2tncm91bmQtY29sb3IsIGJhY2tncm91bmQtY29sb3IpO1xuICAgIH1cblxuICAgIC5hZy1wYW5lbC10aXRsZS1iYXIge1xuICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShiYWNrZ3JvdW5kLWNvbG9yLCBoZWFkZXItYmFja2dyb3VuZC1jb2xvcik7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGNvbG9yLCBoZWFkZXItZm9yZWdyb3VuZC1jb2xvcik7XG4gICAgICAgIGhlaWdodDogYWctcGFyYW0oaGVhZGVyLWhlaWdodCk7XG4gICAgICAgIHBhZGRpbmc6IGFnLXBhcmFtKGdyaWQtc2l6ZSkgYWctcGFyYW0oY2VsbC1ob3Jpem9udGFsLXBhZGRpbmcpO1xuICAgICAgICBAaW5jbHVkZSBhZy1ib3JkZXIocHJpbWFyeSwgYm90dG9tKTtcbiAgICB9XG5cbiAgICAuYWctcGFuZWwtdGl0bGUtYmFyLWJ1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIGFnLXRoZW1lLXJ0bCgobWFyZ2luLWxlZnQ6IGFnLXBhcmFtKGdyaWQtc2l6ZSkpKTtcbiAgICB9XG5cbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gVG9vbHRpcFxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAuYWctdG9vbHRpcCB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJhY2tncm91bmQtY29sb3IsIGhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoY29sb3IsIGZvcmVncm91bmQtY29sb3IpO1xuICAgICAgICBwYWRkaW5nOiBhZy1wYXJhbShncmlkLXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBhZy1ib3JkZXIocHJpbWFyeSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGFnLXBhcmFtKGNhcmQtcmFkaXVzKTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxcztcblxuICAgICAgICAmLmFnLXRvb2x0aXAtaGlkaW5nIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDb2x1bW4gc2VsZWN0XG5cbiAgICBAZm9yICRpIGZyb20gMSB0byAxMCB7XG4gICAgICAgIC5hZy1jb2x1bW4tc2VsZWN0LWluZGVudC0jeyRpfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhZy10aGVtZS1ydGwoKHBhZGRpbmctbGVmdDogJGkgKiBhZy1wYXJhbShjb2x1bW4tc2VsZWN0LWluZGVudC1zaXplKSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFnLWNvbHVtbi1zZWxlY3QtaGVhZGVyLWljb24ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYWcta2V5Ym9hcmQtZm9jdXMoKGFnLWNvbHVtbi1zZWxlY3QtaGVhZGVyLWljb24pLCAwcHgpO1xuXG4gICAgLmFnLWNvbHVtbi1ncm91cC1pY29ucyxcbiAgICAuYWctY29sdW1uLXNlbGVjdC1oZWFkZXItaWNvbixcbiAgICAuYWctY29sdW1uLXNlbGVjdC1oZWFkZXItY2hlY2tib3gsXG4gICAgLmFnLWNvbHVtbi1zZWxlY3QtaGVhZGVyLWZpbHRlci13cmFwcGVyLFxuICAgIC5hZy1jb2x1bW4tc2VsZWN0LWNoZWNrYm94LFxuICAgIC5hZy1jb2x1bW4tc2VsZWN0LWNvbHVtbi1kcmFnLWhhbmRsZSxcbiAgICAuYWctY29sdW1uLXNlbGVjdC1jb2x1bW4tZ3JvdXAtZHJhZy1oYW5kbGUsXG4gICAgLmFnLWNvbHVtbi1zZWxlY3QtY29sdW1uLWxhYmVsIHtcbiAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFnLXRoZW1lLXJ0bCgobWFyZ2luLXJpZ2h0OiBhZy1wYXJhbSh3aWRnZXQtaG9yaXpvbnRhbC1zcGFjaW5nKSkpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBhZy1rZXlib2FyZC1mb2N1cygoXG4gICAgICAgIGFnLWNvbHVtbi1zZWxlY3QtdmlydHVhbC1saXN0LWl0ZW1cbiAgICApLCAxcHgpO1xuXG4gICAgLmFnLWNvbHVtbi1zZWxlY3QtY29sdW1uLWdyb3VwLFxuICAgIC5hZy1jb2x1bW4tc2VsZWN0LWNvbHVtbiB7XG4gICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBhZy1wYXJhbSh3aWRnZXQtdmVydGljYWwtc3BhY2luZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWctY29sdW1uLXNlbGVjdC1jb2x1bW4tcmVhZG9ubHksXG4gICAgLmFnLWNvbHVtbi1zZWxlY3QtY29sdW1uLWdyb3VwLXJlYWRvbmx5IHtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoY29sb3IsIGRpc2FibGVkLWZvcmVncm91bmQtY29sb3IpO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBub3RlIC0gdGhpcyBhcHBsaWVzIGEgbWFyZ2luIG9mIHRoZSBzYW1lIHdpZHRoIGFzIGEgLmFnLWNvbHVtbi1ncm91cC1pY29ucyBlbGVtZW50LCB0byBpbmRlbnQgY29sdW1uc1xuICAgIC8vIHdpaHRvdXQgaWNvbnMgdG8gdGhlIHNhbWUgbGV2ZWwgYXMgc2libGluZ3Mgd2l0aCBpY29ucy4gSWYgY2hhbmdpbmcgLmFnLWNvbHVtbi1ncm91cC1pY29ucywgY2hhbmdlIHRoaXMgdG9vLlxuICAgIC5hZy1jb2x1bW4tc2VsZWN0LWFkZC1ncm91cC1pbmRlbnQge1xuICAgICAgICBAaW5jbHVkZSBhZy10aGVtZS1ydGwoKCBtYXJnaW4tbGVmdDogYWctcGFyYW0oaWNvbi1zaXplKSArIGFnLXBhcmFtKGdyaWQtc2l6ZSkgKiAyICkpO1xuICAgIH1cblxuICAgIC5hZy1jb2x1bW4tc2VsZWN0LXZpcnR1YWwtbGlzdC12aWV3cG9ydCB7XG4gICAgICAgIHBhZGRpbmc6IChhZy1wYXJhbSh3aWRnZXQtY29udGFpbmVyLXZlcnRpY2FsLXBhZGRpbmcpIC8gMikgMHB4O1xuICAgIH1cblxuICAgIC5hZy1jb2x1bW4tc2VsZWN0LXZpcnR1YWwtbGlzdC1pdGVtIHtcbiAgICAgICAgbWFyZ2luOiAwIGFnLXBhcmFtKHdpZGdldC1jb250YWluZXItaG9yaXpvbnRhbC1wYWRkaW5nKTtcbiAgICB9XG59XG5cbi8vIEFwcGx5IHRoZW1lIHN0eWxlcyB0byBpbnB1dCBlbGVtZW50cy4gQnkgZGVmYXVsdCwgYWxsIGVsZW1lbnRzIGFyZSBzdHlsZWQuIFRvIGRpc2FibGUgb25lIG9yXG4vLyBtb3JlIGVsZW1lbnRzIHNvIHRoYXQgeW91IGNhbiBhcHBseSB5b3VyIG93biBzdHlsZXMsIHBhc3MgZS5nLlxuLy8gICAgIGFnLW5hdGl2ZS1pbnB1dHMoKGNoZWNrYm94OiBmYWxzZSkpXG4vLyBOYW1lcyBvZiBlbGVtZW50cyB0byBkaXNhYmxlIGluY2x1ZGU6XG4vLyAgICAgY2hlY2tib3g6ICAgICAgICAgPGlucHV0IHR5cGU9Y2hlY2tib3g+XG4vLyAgICAgdG9nZ2xlLWJ1dHRvbjogICAgPGlucHV0IHR5cGU9Y2hlY2tib3ggY2xhc3M9dG9nZ2xlLWJ1dHRvbj5cbi8vICAgICByYWRpbzogICAgICAgICAgICA8aW5wdXQgdHlwZT1yYWRpbz5cbi8vICAgICByYW5nZTogICAgICAgICAgICA8aW5wdXQgdHlwZT1yYW5nZT5cbkBtaXhpbiBhZy1uYXRpdmUtaW5wdXRzKCR0eXBlLW1hcDogKCkpIHtcbiAgICBAaWYgbm90IG1hcC1oYXMta2V5KCR0eXBlLW1hcCwgY2hlY2tib3gpIG9yIG1hcC1nZXQoJHR5cGUtbWFwLCBjaGVja2JveCkge1xuICAgICAgICAuYWctY2hlY2tib3gtaW5wdXQtd3JhcHBlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhZy1jaGVja2JveDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAaWYgbm90IG1hcC1oYXMta2V5KCR0eXBlLW1hcCwgdG9nZ2xlLWJ1dHRvbikgb3IgbWFwLWdldCgkdHlwZS1tYXAsIHRvZ2dsZS1idXR0b24pIHtcbiAgICAgICAgLmFnLXRvZ2dsZS1idXR0b24taW5wdXQtd3JhcHBlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhZy10b2dnbGUtYnV0dG9uO1xuICAgICAgICB9XG4gICAgfVxuICAgIEBpZiBub3QgbWFwLWhhcy1rZXkoJHR5cGUtbWFwLCByYWRpbykgb3IgbWFwLWdldCgkdHlwZS1tYXAsIHJhZGlvKSB7XG4gICAgICAgIC5hZy1yYWRpby1idXR0b24taW5wdXQtd3JhcHBlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhZy1yYWRpbztcbiAgICAgICAgfVxuICAgIH1cbiAgICBAaWYgbm90IG1hcC1oYXMta2V5KCR0eXBlLW1hcCwgcmFuZ2UpIG9yIG1hcC1nZXQoJHR5cGUtbWFwLCByYW5nZSkge1xuICAgICAgICBpbnB1dFtjbGFzc149J2FnLSddW3R5cGU9J3JhbmdlJ10ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYWctcmFuZ2U7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBhZy1jaGVjay1idXR0b24tYmFzZSB7XG4gICAgQGluY2x1ZGUgYWctaWNvbigpO1xuXG4gICAgd2lkdGg6IGFnLXBhcmFtKGljb24tc2l6ZSk7XG4gICAgaGVpZ2h0OiBhZy1wYXJhbShpY29uLXNpemUpO1xuXG4gICAgJiBpbnB1dCwgaW5wdXQge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYmFja2dyb3VuZC1jb2xvciwgY2hlY2tib3gtYmFja2dyb3VuZC1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogYWctcGFyYW0oY2hlY2tib3gtYm9yZGVyLXJhZGl1cyk7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgZmxleDogbm9uZTtcblxuICAgICY6Zm9jdXMtd2l0aGluLCAmOmFjdGl2ZSB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IGFnLXBhcmFtKGlucHV0LWZvY3VzLWJveC1zaGFkb3cpO1xuICAgIH1cblxuICAgICYuYWctZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgfVxufVxuXG5AbWl4aW4gYWctY2hlY2tib3gge1xuICAgIEBpbmNsdWRlIGFnLWNoZWNrLWJ1dHRvbi1iYXNlKCk7XG5cbiAgICAvLyBJTVBPUlRBTlQhXG4gICAgLy8gV2UgZG9jdW1lbnQgdGhlc2Ugc3R5bGVzIGF0IC9qYXZhc2NyaXB0LWdyaWQtaWNvbnMvIGFuZCBhZHZpc2UgdXNlcnMgd2hvIHdhbnQgdG8gY2hhbmdlXG4gICAgLy8gY2hlY2tib3ggaWNvbnMgdG8gc3R5bGU6IGAuYWctY2hlY2tib3gtaW5wdXQtd3JhcHBlci5hZy1jaGVja2VkOjphZnRlcmAuIERvIG5vdCBjaGFuZ2VcbiAgICAvLyB0aGVzZSBzdHlsZXMgd2l0aG91dCBhbHNvIHVwZGF0aW5nIHRoZSBpY29ucyBleGFtcGxlcy5cblxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogYWctaWNvbi1jaGFyKGNoZWNrYm94LXVuY2hlY2tlZCk7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGNvbG9yLCBjaGVja2JveC11bmNoZWNrZWQtY29sb3IpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5hZy1jaGVja2VkOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IGFnLWljb24tY2hhcihjaGVja2JveC1jaGVja2VkKTtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoY29sb3IsIGNoZWNrYm94LWNoZWNrZWQtY29sb3IpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5hZy1pbmRldGVybWluYXRlOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IGFnLWljb24tY2hhcihjaGVja2JveC1pbmRldGVybWluYXRlKTtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoY29sb3IsIGNoZWNrYm94LWluZGV0ZXJtaW5hdGUtY29sb3IpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gYWctcmFkaW8ge1xuICAgIEBpbmNsdWRlIGFnLWNoZWNrLWJ1dHRvbi1iYXNlKCk7XG5cbiAgICBib3JkZXItcmFkaXVzOiBhZy1wYXJhbShpY29uLXNpemUpO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBhZy1pY29uLWNoYXIocmFkaW8tYnV0dG9uLW9mZik7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGNvbG9yLCBjaGVja2JveC11bmNoZWNrZWQtY29sb3IpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5hZy1jaGVja2VkOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IGFnLWljb24tY2hhcihyYWRpby1idXR0b24tb24pO1xuICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShjb2xvciwgY2hlY2tib3gtY2hlY2tlZC1jb2xvcik7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG59XG5cbkBtaXhpbiBhZy10b2dnbGUtYnV0dG9uIHtcbiAgICAkYm9yZGVyLXdpZHRoOiBhZy1wYXJhbSh0b2dnbGUtYnV0dG9uLWJvcmRlci13aWR0aCk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogYWctcGFyYW0odG9nZ2xlLWJ1dHRvbi13aWR0aCk7XG4gICAgaGVpZ2h0OiBhZy1wYXJhbSh0b2dnbGUtYnV0dG9uLWhlaWdodCk7XG4gICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYmFja2dyb3VuZC1jb2xvciwgdG9nZ2xlLWJ1dHRvbi1vZmYtYmFja2dyb3VuZC1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogYWctcGFyYW0odG9nZ2xlLWJ1dHRvbi1oZWlnaHQpIC8gMjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleDogbm9uZTtcbiAgICBib3JkZXI6ICRib3JkZXItd2lkdGggc29saWQ7XG4gICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYm9yZGVyLWNvbG9yLCB0b2dnbGUtYnV0dG9uLW9mZi1ib3JkZXItY29sb3IpO1xuXG4gICAgaW5wdXQge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICY6Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogYWctcGFyYW0oaW5wdXQtZm9jdXMtYm94LXNoYWRvdyk7XG4gICAgfVxuXG4gICAgJi5hZy1kaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG5cbiAgICAmLmFnLWNoZWNrZWQge1xuICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShiYWNrZ3JvdW5kLWNvbG9yLCB0b2dnbGUtYnV0dG9uLW9uLWJhY2tncm91bmQtY29sb3IpO1xuICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShib3JkZXItY29sb3IsIHRvZ2dsZS1idXR0b24tb24tYm9yZGVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnICc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAtJGJvcmRlci13aWR0aDtcbiAgICAgICAgbGVmdDogLSRib3JkZXItd2lkdGg7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBoZWlnaHQ6IGFnLXBhcmFtKHRvZ2dsZS1idXR0b24taGVpZ2h0KTtcbiAgICAgICAgd2lkdGg6IGFnLXBhcmFtKHRvZ2dsZS1idXR0b24taGVpZ2h0KTtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYmFja2dyb3VuZC1jb2xvciwgdG9nZ2xlLWJ1dHRvbi1zd2l0Y2gtYmFja2dyb3VuZC1jb2xvcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGFnLXBhcmFtKHRvZ2dsZS1idXR0b24taGVpZ2h0KSAvIDI7XG4gICAgICAgIHRyYW5zaXRpb246IGxlZnQgMTAwbXM7XG4gICAgICAgIGJvcmRlcjogJGJvcmRlci13aWR0aCBzb2xpZDtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYm9yZGVyLWNvbG9yLCB0b2dnbGUtYnV0dG9uLXN3aXRjaC1ib3JkZXItY29sb3IpO1xuICAgIH1cblxuICAgICYuYWctY2hlY2tlZDo6YmVmb3JlIHtcbiAgICAgICAgbGVmdDogY2FsYygxMDAlIC0gI3thZy1wYXJhbSh0b2dnbGUtYnV0dG9uLWhlaWdodCl9ICk7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJvcmRlci1jb2xvciwgdG9nZ2xlLWJ1dHRvbi1vbi1ib3JkZXItY29sb3IpO1xuICAgIH1cbn1cblxuQG1peGluIGFnLWludGVybmFsLXJhbmdlLXRyYWNrIHtcbiAgICBAaWYgbWl4aW4tZXhpc3RzKGFnLXJhbmdlLXRyYWNrKSB7XG4gICAgICAgIEBpbmNsdWRlIGFnLXJhbmdlLXRyYWNrXG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAzcHg7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGFnLXBhcmFtKGJvcmRlci1yYWRpdXMpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiBhZy1wYXJhbShjaGVja2JveC1ib3JkZXItcmFkaXVzKTtcbiAgICB9XG59XG5cbkBtaXhpbiBhZy1pbnRlcm5hbC1mb2N1cy1yYW5nZS10cmFjayB7XG4gICAgQGlmIG1peGluLWV4aXN0cyhhZy1mb2N1cy1yYW5nZS10cmFjaykge1xuICAgICAgICBAaW5jbHVkZSBhZy1mb2N1cy1yYW5nZS10cmFja1xuICAgIH1cbn1cblxuQG1peGluIGFnLWludGVybmFsLWFjdGl2ZS1yYW5nZS10cmFjayB7XG4gICAgQGlmIG1peGluLWV4aXN0cyhhZy1mb2N1cy1yYW5nZS10cmFjaykge1xuICAgICAgICBAaW5jbHVkZSBhZy1mb2N1cy1yYW5nZS10cmFja1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJhY2tncm91bmQtY29sb3IsIGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcik7XG4gICAgfVxufVxuXG5AbWl4aW4gYWctaW50ZXJuYWwtcmFuZ2UtdGh1bWIge1xuICAgIEBpZiBtaXhpbi1leGlzdHMoYWctcmFuZ2UtdGh1bWIpIHtcbiAgICAgICAgQGluY2x1ZGUgYWctcmFuZ2UtdGh1bWJcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgd2lkdGg6IGFnLXBhcmFtKGljb24tc2l6ZSk7XG4gICAgICAgIGhlaWdodDogYWctcGFyYW0oaWNvbi1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYmFja2dyb3VuZC1jb2xvciwgYmFja2dyb3VuZC1jb2xvcik7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShib3JkZXItY29sb3IsIGNoZWNrYm94LXVuY2hlY2tlZC1jb2xvcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGFnLXBhcmFtKGljb24tc2l6ZSk7XG4gICAgfVxufVxuXG5AbWl4aW4gYWctaW50ZXJuYWwtZm9jdXMtcmFuZ2UtdGh1bWIge1xuICAgIGJveC1zaGFkb3c6IGFnLXBhcmFtKGlucHV0LWZvY3VzLWJveC1zaGFkb3cpO1xuICAgIEBpZiBtaXhpbi1leGlzdHMoYWctZm9jdXMtcmFuZ2UtdGh1bWIpIHtcbiAgICAgICAgQGluY2x1ZGUgYWctZm9jdXMtcmFuZ2UtdGh1bWJcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShib3JkZXItY29sb3IsIGNoZWNrYm94LWNoZWNrZWQtY29sb3IpO1xuICAgIH1cbn1cblxuQG1peGluIGFnLWludGVybmFsLWFjdGl2ZS1yYW5nZS10aHVtYiB7XG4gICAgQGlmIG1peGluLWV4aXN0cyhhZy1hY3RpdmUtcmFuZ2UtdGh1bWIpIHtcbiAgICAgICAgQGluY2x1ZGUgYWctYWN0aXZlLXJhbmdlLXRodW1iXG4gICAgfVxufVxuXG5AbWl4aW4gYWctcmFuZ2Uge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcblxuICAgICY6Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcbiAgICAgICAgQGluY2x1ZGUgYWctaW50ZXJuYWwtcmFuZ2UtdHJhY2s7XG4gICAgfVxuXG4gICAgJjo6LW1vei1yYW5nZS10cmFjayB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWludGVybmFsLXJhbmdlLXRyYWNrO1xuICAgIH1cblxuICAgICY6Oi1tcy10cmFjayB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWludGVybmFsLXJhbmdlLXRyYWNrO1xuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAycHgpO1xuICAgIH1cblxuICAgICY6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAgICAgQGluY2x1ZGUgYWctaW50ZXJuYWwtcmFuZ2UtdGh1bWI7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWShhZy1wYXJhbShpY29uLXNpemUpICogLTAuNSArIDEuNXB4KTtcbiAgICB9XG5cbiAgICAmOjotbXMtdGh1bWIge1xuICAgICAgICBAaW5jbHVkZSBhZy1pbnRlcm5hbC1yYW5nZS10aHVtYjtcbiAgICB9XG4gICAgJjo6LW1vei1hZy1yYW5nZS10aHVtYiB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWludGVybmFsLXJhbmdlLXRodW1iO1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgICAgICY6Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFnLWludGVybmFsLWZvY3VzLXJhbmdlLXRyYWNrO1xuICAgICAgICB9XG4gICAgICAgICY6Oi1tb3otYWctcmFuZ2UtdHJhY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgYWctaW50ZXJuYWwtZm9jdXMtcmFuZ2UtdHJhY2s7XG4gICAgICAgIH1cbiAgICAgICAgJjo6LW1zLXRyYWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFnLWludGVybmFsLWZvY3VzLXJhbmdlLXRyYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgICAgICAgQGluY2x1ZGUgYWctaW50ZXJuYWwtZm9jdXMtcmFuZ2UtdGh1bWI7XG4gICAgICAgIH1cbiAgICAgICAgJjo6LW1zLXRodW1iIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFnLWludGVybmFsLWZvY3VzLXJhbmdlLXRodW1iO1xuICAgICAgICB9XG4gICAgICAgICY6Oi1tb3otYWctcmFuZ2UtdGh1bWIge1xuICAgICAgICAgICAgQGluY2x1ZGUgYWctaW50ZXJuYWwtZm9jdXMtcmFuZ2UtdGh1bWI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgICY6Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFnLWludGVybmFsLWFjdGl2ZS1yYW5nZS10cmFjaztcbiAgICAgICAgfVxuICAgICAgICAmOjotbW96LWFnLXJhbmdlLXRyYWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFnLWludGVybmFsLWFjdGl2ZS1yYW5nZS10cmFjaztcbiAgICAgICAgfVxuICAgICAgICAmOjotbXMtdHJhY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgYWctaW50ZXJuYWwtYWN0aXZlLXJhbmdlLXRyYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgICAgICAgQGluY2x1ZGUgYWctaW50ZXJuYWwtYWN0aXZlLXJhbmdlLXRodW1iO1xuICAgICAgICB9XG4gICAgICAgICY6Oi1tcy10aHVtYiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhZy1pbnRlcm5hbC1hY3RpdmUtcmFuZ2UtdGh1bWI7XG4gICAgICAgIH1cbiAgICAgICAgJjo6LW1vei1hZy1yYW5nZS10aHVtYiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhZy1pbnRlcm5hbC1hY3RpdmUtcmFuZ2UtdGh1bWI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgXCIuL2FnLXRoZW1lLWJhc2UtcmVuYW1lLWxlZ2FjeS12YXJzXCI7XG5cbi8vIEluIHYyMyB3ZSBtb3ZlZCBmcm9tIHVzaW5nIGdsb2JhbCB2YXJpYWJsZXMgdG8gbWFwcyBvZiBwYXJhbWV0ZXJzIHRvIGNvbmZpZ3VyZSBHcmlkIHRoZW1lcy5cbi8vIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGEgYmFja3dhcmRzLWNvbXBhdGliaWxpdHkgbGF5ZXIgZGVzaWduZWQgdG8gZW11bGF0ZSB0aGUgcHJlLXYyMyBiZWhhdmlvdXJcbi8vIGFuZCBzbyBzaG91bGQgbm90IGJlIG1vZGlmaWVkLlxuXG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctZm9yZWdyb3VuZC1vcGFjaXR5OiAxICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLXNlY29uZGFyeS1mb3JlZ3JvdW5kLWNvbG9yLW9wYWNpdHk6IDEgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctZGlzYWJsZWQtZm9yZWdyb3VuZC1jb2xvci1vcGFjaXR5OiAwLjUgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1iYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWZvcmVncm91bmQtY29sb3I6ICMwMDAgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctaGVhZGVyLWJhY2tncm91bmQtY29sb3I6ICRhZy1iYWNrZ3JvdW5kLWNvbG9yICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWhlYWRlci1mb3JlZ3JvdW5kLWNvbG9yOiAkYWctZm9yZWdyb3VuZC1jb2xvciAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1pY29uLWNvbG9yOiBsaWdodGdyYXkgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctYWx0LWljb24tY29sb3I6ICRhZy1iYWNrZ3JvdW5kLWNvbG9yICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWFjY2VudC1jb2xvcjogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctcHJpbWFyeS1jb2xvcjogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctc2VsZWN0ZWQtY29sb3I6IG51bGwgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctaG92ZXItY29sb3I6IG51bGwgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctaGVhZGVyLWNlbGwtaG92ZXItYmFja2dyb3VuZC1jb2xvcjogbnVsbCAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1yYW5nZS1zZWxlY3Rpb24taGlnaGxpZ2h0LWNvbG9yOiBudWxsICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLW9kZC1yb3ctYmFja2dyb3VuZC1jb2xvcjogbnVsbCAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy12YWx1ZS1jaGFuZ2UtdmFsdWUtaGlnaGxpZ2h0LWJhY2tncm91bmQtY29sb3I6IG51bGwgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctdmFsdWUtY2hhbmdlLWRlbHRhLXVwLWNvbG9yOiBudWxsICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLXZhbHVlLWNoYW5nZS1kZWx0YS1kb3duLWNvbG9yOiBudWxsICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWNoaXAtYmFja2dyb3VuZC1jb2xvcjogbnVsbCAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1yYW5nZS1zZWxlY3Rpb24tYmFja2dyb3VuZC1jb2xvcjogJGFnLWljb24tY29sb3IgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctZ3JpZC1zaXplOiA0cHggIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctaWNvbi1zaXplOiAxMnB4ICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWhlYWRlci1oZWlnaHQ6ICRhZy1ncmlkLXNpemUgKiA2ICsgMSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1yb3ctaGVpZ2h0OiAoJGFnLWdyaWQtc2l6ZSAqIDYgKyAxKSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1jZWxsLWhvcml6b250YWwtcGFkZGluZzogJGFnLWdyaWQtc2l6ZSAqIDMgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctdmlydHVhbC1pdGVtLWhlaWdodDogJGFnLWdyaWQtc2l6ZSAqIDUgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctcmljaC1zZWxlY3QtaXRlbS1oZWlnaHQ6ICRhZy12aXJ0dWFsLWl0ZW0taGVpZ2h0ICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWhlYWRlci1pY29uLXNpemU6IDE0cHggIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctZm9udC1zaXplOiAxNHB4ICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWZvbnQtd2VpZ2h0OiA0MDAgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctc2Vjb25kYXJ5LWZvbnQtZmFtaWx5OiAkYWctZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctc2Vjb25kYXJ5LWZvbnQtc2l6ZTogMTRweCAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1zZWNvbmRhcnktZm9udC13ZWlnaHQ6IDQwMCAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1zZWNvbmRhcnktZm9yZWdyb3VuZC1jb2xvcjogJGFnLWZvcmVncm91bmQtY29sb3IgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yOiAkYWctYmFja2dyb3VuZC1jb2xvciAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy10b29sdGlwLWZvcmVncm91bmQtY29sb3I6ICRhZy1mb3JlZ3JvdW5kLWNvbG9yICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLXRvb2x0aXAtYm9yZGVyLXJhZGl1czogMnB4ICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLXRvb2x0aXAtcGFkZGluZzogNXB4ICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLXRvb2x0aXAtYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctdG9vbHRpcC1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLXRvb2x0aXAtYm9yZGVyLWNvbG9yOiAjZWJlYmViICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWNhcmQtc2hhZG93OiBub25lICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWNhcmQtcmFkaXVzOiAwICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLXJvdy1ib3JkZXItd2lkdGg6IDAgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctdHJhbnNpdGlvbi1zcGVlZDogMTIwbXMgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctY2VsbC1ob3Jpem9udGFsLWJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLXRvb2xwYW5lbC1pbmRlbnQtc2l6ZTogJGFnLWdyaWQtc2l6ZSArICRhZy1pY29uLXNpemUgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctcm93LWdyb3VwLWluZGVudC1zaXplOiAkYWctZ3JpZC1zaXplICogMyArICRhZy1pY29uLXNpemUgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctaGVhZGVyLWNlbGwtbW92aW5nLWJhY2tncm91bmQtY29sb3I6IHJnYigxOTAsIDE5MCwgMTkwKSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1pbnB1dC1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOiAjZWJlYmViICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWlucHV0LWJvcmRlci1jb2xvcjogIzAwMDAwMCAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1kaWFsb2ctYmFja2dyb3VuZC1jb2xvcjogJGFnLWJhY2tncm91bmQtY29sb3IgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctZGlhbG9nLWJvcmRlci1zaXplOiAxcHggIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctZGlhbG9nLWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctZGlhbG9nLWJvcmRlci1jb2xvcjogJGFnLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1kaWFsb2ctdGl0bGUtYmFja2dyb3VuZC1jb2xvcjogJGFnLWhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWRpYWxvZy10aXRsZS1mb3JlZ3JvdW5kLWNvbG9yOiAkYWctaGVhZGVyLWZvcmVncm91bmQtY29sb3IgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctZGlhbG9nLXRpdGxlLWhlaWdodDogJGFnLWhlYWRlci1oZWlnaHQgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG5AaW1wb3J0IFwiLi4vYWctdGhlbWUtYmFzZS1mb250LXZhcnNcIjtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1kaWFsb2ctdGl0bGUtZm9udC1mYW1pbHk6ICRhZy1zZWNvbmRhcnktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctZGlhbG9nLXRpdGxlLWZvbnQtc2l6ZTogJGFnLXNlY29uZGFyeS1mb250LXNpemUgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctZGlhbG9nLXRpdGxlLWZvbnQtd2VpZ2h0OiAkYWctc2Vjb25kYXJ5LWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWRpYWxvZy10aXRsZS1wYWRkaW5nOiA1cHggMTBweCAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1kaWFsb2ctdGl0bGUtaWNvbi1zaXplOiBtYXgoMjBweCwgJGFnLWljb24tc2l6ZSkgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctdG9vbC1wYW5lbC1iYWNrZ3JvdW5kLWNvbG9yOiAkYWctYmFja2dyb3VuZC1jb2xvciAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1ncm91cC1jb21wb25lbnQtYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkYWctdG9vbC1wYW5lbC1iYWNrZ3JvdW5kLWNvbG9yLCAxJSkgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctZ3JvdXAtY29tcG9uZW50LWJvcmRlci1jb2xvcjogbGlnaHRlbigkYWctYm9yZGVyLWNvbG9yLCA1JSkgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctZ3JvdXAtY29tcG9uZW50LXRpdGxlLWJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkYWctZ3JvdXAtY29tcG9uZW50LWJhY2tncm91bmQtY29sb3IsIDUlKSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1yYW5nZS1zZWxlY3Rpb24tY2hhcnQtYmFja2dyb3VuZC1jb2xvcjogYWRqdXN0LWh1ZSgkYWctcmFuZ2Utc2VsZWN0aW9uLWJhY2tncm91bmQtY29sb3IsIDI1JSkgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctcmFuZ2Utc2VsZWN0aW9uLWNoYXJ0LWNhdGVnb3J5LWJhY2tncm91bmQtY29sb3I6IGFkanVzdC1odWUoJGFnLXJhbmdlLXNlbGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yLCAtODAlKSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1mdWxsLXdpZHRoLXRhYnM6IGZhbHNlICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWljb24tZm9udC1mYW1pbHk6ICRhZy10aGVtZS1iYXNlLWljb24tZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctaWNvbnMtZGF0YTogJGFnLXRoZW1lLWJhc2UtaWNvbnMtZGF0YSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1pY29ucy1mb250LWNvZGVzOiAkYWctdGhlbWUtYmFzZS1pY29ucy1mb250LWNvZGVzICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWljb24tYWdncmVnYXRpb246IG1hcC1nZXQoJGFnLWljb25zLWZvbnQtY29kZXMsIFwiYWdncmVnYXRpb25cIikgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctaWNvbi1hcnJvd3M6IG1hcC1nZXQoJGFnLWljb25zLWZvbnQtY29kZXMsIFwiYXJyb3dzXCIpICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWljb24tYXNjOiBtYXAtZ2V0KCRhZy1pY29ucy1mb250LWNvZGVzLCBcImFzY1wiKSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1pY29uLWNhbmNlbDogbWFwLWdldCgkYWctaWNvbnMtZm9udC1jb2RlcywgXCJjYW5jZWxcIikgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctaWNvbi1jaGFydDogbWFwLWdldCgkYWctaWNvbnMtZm9udC1jb2RlcywgXCJjaGFydFwiKSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1pY29uLWNoZWNrYm94LWNoZWNrZWQ6IG1hcC1nZXQoJGFnLWljb25zLWZvbnQtY29kZXMsIFwiY2hlY2tib3gtY2hlY2tlZFwiKSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1pY29uLWNoZWNrYm94LWluZGV0ZXJtaW5hdGU6IG1hcC1nZXQoJGFnLWljb25zLWZvbnQtY29kZXMsIFwiY2hlY2tib3gtaW5kZXRlcm1pbmF0ZVwiKSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1pY29uLWNoZWNrYm94LXVuY2hlY2tlZDogbWFwLWdldCgkYWctaWNvbnMtZm9udC1jb2RlcywgXCJjaGVja2JveC11bmNoZWNrZWRcIikgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctaWNvbi1jb2xvci1waWNrZXI6IG1hcC1nZXQoJGFnLWljb25zLWZvbnQtY29kZXMsIFwiY29sb3ItcGlja2VyXCIpICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWljb24tY29sdW1uOiBtYXAtZ2V0KCRhZy1pY29ucy1mb250LWNvZGVzLCBcImNvbHVtblwiKSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1pY29uLWNvbHVtbnM6IG1hcC1nZXQoJGFnLWljb25zLWZvbnQtY29kZXMsIFwiY29sdW1uc1wiKSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1pY29uLWNvbnRyYWN0ZWQ6IG1hcC1nZXQoJGFnLWljb25zLWZvbnQtY29kZXMsIFwiY29udHJhY3RlZFwiKSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1pY29uLWNvcHk6IG1hcC1nZXQoJGFnLWljb25zLWZvbnQtY29kZXMsIFwiY29weVwiKSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1pY29uLWNyb3NzOiBtYXAtZ2V0KCRhZy1pY29ucy1mb250LWNvZGVzLCBcImNyb3NzXCIpICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWljb24tY3V0OiBtYXAtZ2V0KCRhZy1pY29ucy1mb250LWNvZGVzLCBcImN1dFwiKSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1pY29uLWRhdGE6IG1hcC1nZXQoJGFnLWljb25zLWZvbnQtY29kZXMsIFwiZGF0YVwiKSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1pY29uLWRlc2M6IG1hcC1nZXQoJGFnLWljb25zLWZvbnQtY29kZXMsIFwiZGVzY1wiKSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1pY29uLWV4cGFuZGVkOiBtYXAtZ2V0KCRhZy1pY29ucy1mb250LWNvZGVzLCBcImV4cGFuZGVkXCIpICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWljb24tZXllLXNsYXNoOiBtYXAtZ2V0KCRhZy1pY29ucy1mb250LWNvZGVzLCBcImV5ZS1zbGFzaFwiKSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1pY29uLWV5ZTogbWFwLWdldCgkYWctaWNvbnMtZm9udC1jb2RlcywgXCJleWVcIikgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctaWNvbi1maWx0ZXI6IG1hcC1nZXQoJGFnLWljb25zLWZvbnQtY29kZXMsIFwiZmlsdGVyXCIpICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWljb24tZmlyc3Q6IG1hcC1nZXQoJGFnLWljb25zLWZvbnQtY29kZXMsIFwiZmlyc3RcIikgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctaWNvbi1ncmlwOiBtYXAtZ2V0KCRhZy1pY29ucy1mb250LWNvZGVzLCBcImdyaXBcIikgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctaWNvbi1ncm91cDogbWFwLWdldCgkYWctaWNvbnMtZm9udC1jb2RlcywgXCJncm91cFwiKSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1pY29uLWluZGV0ZXJtaW5hdGU6IG1hcC1nZXQoJGFnLWljb25zLWZvbnQtY29kZXMsIFwiaW5kZXRlcm1pbmF0ZVwiKSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1pY29uLWxhc3Q6IG1hcC1nZXQoJGFnLWljb25zLWZvbnQtY29kZXMsIFwibGFzdFwiKSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1pY29uLWxlZnQ6IG1hcC1nZXQoJGFnLWljb25zLWZvbnQtY29kZXMsIFwibGVmdFwiKSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1pY29uLWxpbmtlZDogbWFwLWdldCgkYWctaWNvbnMtZm9udC1jb2RlcywgXCJsaW5rZWRcIikgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctaWNvbi1sb2FkaW5nOiBtYXAtZ2V0KCRhZy1pY29ucy1mb250LWNvZGVzLCBcImxvYWRpbmdcIikgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctaWNvbi1tYXhpbWl6ZTogbWFwLWdldCgkYWctaWNvbnMtZm9udC1jb2RlcywgXCJtYXhpbWl6ZVwiKSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1pY29uLW1lbnU6IG1hcC1nZXQoJGFnLWljb25zLWZvbnQtY29kZXMsIFwibWVudVwiKSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1pY29uLW1pbmltaXplOiBtYXAtZ2V0KCRhZy1pY29ucy1mb250LWNvZGVzLCBcIm1pbmltaXplXCIpICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWljb24tbWludXM6IG1hcC1nZXQoJGFnLWljb25zLWZvbnQtY29kZXMsIFwibWludXNcIikgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctaWNvbi1uZXh0OiBtYXAtZ2V0KCRhZy1pY29ucy1mb250LWNvZGVzLCBcIm5leHRcIikgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctaWNvbi1ub25lOiBtYXAtZ2V0KCRhZy1pY29ucy1mb250LWNvZGVzLCBcIm5vbmVcIikgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctaWNvbi1ub3QtYWxsb3dlZDogbWFwLWdldCgkYWctaWNvbnMtZm9udC1jb2RlcywgXCJub3QtYWxsb3dlZFwiKSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1pY29uLXBhc3RlOiBtYXAtZ2V0KCRhZy1pY29ucy1mb250LWNvZGVzLCBcInBhc3RlXCIpICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWljb24tcGluOiBtYXAtZ2V0KCRhZy1pY29ucy1mb250LWNvZGVzLCBcInBpblwiKSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1pY29uLXBpdm90OiBtYXAtZ2V0KCRhZy1pY29ucy1mb250LWNvZGVzLCBcInBpdm90XCIpICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWljb24tcGx1czogbWFwLWdldCgkYWctaWNvbnMtZm9udC1jb2RlcywgXCJwbHVzXCIpICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWljb24tcHJldmlvdXM6IG1hcC1nZXQoJGFnLWljb25zLWZvbnQtY29kZXMsIFwicHJldmlvdXNcIikgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctaWNvbi1yYWRpby1idXR0b24tb2ZmOiBtYXAtZ2V0KCRhZy1pY29ucy1mb250LWNvZGVzLCBcInJhZGlvLWJ1dHRvbi1vZmZcIikgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctaWNvbi1yYWRpby1idXR0b24tb246IG1hcC1nZXQoJGFnLWljb25zLWZvbnQtY29kZXMsIFwicmFkaW8tYnV0dG9uLW9uXCIpICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWljb24tcmlnaHQ6IG1hcC1nZXQoJGFnLWljb25zLWZvbnQtY29kZXMsIFwicmlnaHRcIikgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctaWNvbi1zYXZlOiBtYXAtZ2V0KCRhZy1pY29ucy1mb250LWNvZGVzLCBcInNhdmVcIikgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctaWNvbi1zbWFsbC1kb3duOiBtYXAtZ2V0KCRhZy1pY29ucy1mb250LWNvZGVzLCBcInNtYWxsLWRvd25cIikgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctaWNvbi1zbWFsbC1sZWZ0OiBtYXAtZ2V0KCRhZy1pY29ucy1mb250LWNvZGVzLCBcInNtYWxsLWxlZnRcIikgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctaWNvbi1zbWFsbC1yaWdodDogbWFwLWdldCgkYWctaWNvbnMtZm9udC1jb2RlcywgXCJzbWFsbC1yaWdodFwiKSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1pY29uLXNtYWxsLXVwOiBtYXAtZ2V0KCRhZy1pY29ucy1mb250LWNvZGVzLCBcInNtYWxsLXVwXCIpICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWljb24tdGljazogbWFwLWdldCgkYWctaWNvbnMtZm9udC1jb2RlcywgXCJ0aWNrXCIpICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWljb24tdHJlZS1jbG9zZWQ6IG1hcC1nZXQoJGFnLWljb25zLWZvbnQtY29kZXMsIFwidHJlZS1jbG9zZWRcIikgIWRlZmF1bHQ7XG4vLyBETyBOT1QgRURJVCAoc2VlIG5vdGUgYWJvdmUpXG4kYWctaWNvbi10cmVlLWluZGV0ZXJtaW5hdGU6IG1hcC1nZXQoJGFnLWljb25zLWZvbnQtY29kZXMsIFwidHJlZS1pbmRldGVybWluYXRlXCIpICFkZWZhdWx0O1xuLy8gRE8gTk9UIEVESVQgKHNlZSBub3RlIGFib3ZlKVxuJGFnLWljb24tdHJlZS1vcGVuOiBtYXAtZ2V0KCRhZy1pY29ucy1mb250LWNvZGVzLCBcInRyZWUtb3BlblwiKSAhZGVmYXVsdDtcbi8vIERPIE5PVCBFRElUIChzZWUgbm90ZSBhYm92ZSlcbiRhZy1pY29uLXVubGlua2VkOiBtYXAtZ2V0KCRhZy1pY29ucy1mb250LWNvZGVzLCBcInVubGlua2VkXCIpICFkZWZhdWx0OyIsIkBpbXBvcnQgXCIuLi8uLi9hZy10aGVtZS1iYXNlL3Nhc3MvYWctdGhlbWUtYmFzZS1kZWZhdWx0LXBhcmFtc1wiO1xuQGltcG9ydCBcIi4vYWctdGhlbWUtbWF0ZXJpYWwtZm9udC12YXJzXCI7XG5cbiRhZy10aGVtZS1tYXRlcmlhbC1kZWZhdWx0LXBhcmFtczogKFxuICAgIC8vIFRha2luZyBwcmltYXJ5IGFuZCBhY2NlbnQgZnJvbSB0aGUgaW5kaWdvIC8gcGluayB0aGVtZTogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvbWF0ZXJpYWwyL2Jsb2IvbWFzdGVyL3NyYy9saWIvY29yZS90aGVtaW5nL3ByZWJ1aWx0L2luZGlnby1waW5rLnNjc3NcbiAgICBtYXRlcmlhbC1wcmltYXJ5LWNvbG9yOiAjM2Y1MWI1LFxuICAgIG1hdGVyaWFsLWFjY2VudC1jb2xvcjogI2ZmNDA4MSxcblxuICAgIC8vIENvbG9yc1xuICAgIGZvcmVncm91bmQtY29sb3I6IHJnYmEoIzAwMCwgMC44NyksXG4gICAgc2Vjb25kYXJ5LWZvcmVncm91bmQtY29sb3I6IGFnLWRlcml2ZWQoZm9yZWdyb3VuZC1jb2xvciwgJG9wYWNpdHk6IDAuNTQpLFxuICAgIGRpc2FibGVkLWZvcmVncm91bmQtY29sb3I6IGFnLWRlcml2ZWQoZm9yZWdyb3VuZC1jb2xvciwgJG9wYWNpdHk6IDAuMzgpLFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmYsXG4gICAgaGVhZGVyLWJhY2tncm91bmQtY29sb3I6ICNmZmYsXG4gICAgc3ViaGVhZGVyLWJhY2tncm91bmQtY29sb3I6ICNlZWUsXG4gICAgaGVhZGVyLWNlbGwtaG92ZXItYmFja2dyb3VuZC1jb2xvcjogYWctZGVyaXZlZChoZWFkZXItYmFja2dyb3VuZC1jb2xvciwgJGRhcmtlbjogNSUpLFxuICAgIGNoaXAtYmFja2dyb3VuZC1jb2xvcjogI2UyZTJlMixcbiAgICByYW5nZS1zZWxlY3Rpb24tYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMjIsIDEzNCwgMjAzLCAwLjEpLFxuICAgIHJhbmdlLXNlbGVjdGlvbi1oaWdobGlnaHQtY29sb3I6ICNmY2U0ZWMsXG4gICAgcm93LWhvdmVyLWNvbG9yOiAjZmFmYWZhLFxuICAgIGNvbnRyb2wtcGFuZWwtYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYSxcbiAgICBzZWxlY3RlZC1yb3ctYmFja2dyb3VuZC1jb2xvcjogI2VlZSxcbiAgICByYW5nZS1zZWxlY3Rpb24tYm9yZGVyLWNvbG9yOiBhZy1kZXJpdmVkKG1hdGVyaWFsLXByaW1hcnktY29sb3IpLFxuICAgIGNoZWNrYm94LWNoZWNrZWQtY29sb3I6IGFnLWRlcml2ZWQobWF0ZXJpYWwtYWNjZW50LWNvbG9yKSxcbiAgICBjaGVja2JveC11bmNoZWNrZWQtY29sb3I6ICMzMzMsXG4gICAgdmFsdWUtY2hhbmdlLXZhbHVlLWhpZ2hsaWdodC1iYWNrZ3JvdW5kLWNvbG9yOiAjMDBhY2MxLFxuXG4gICAgLy8gQm9yZGVyc1xuICAgIGJvcmRlcnM6IGZhbHNlLFxuICAgIGJvcmRlcnMtY3JpdGljYWw6IHRydWUsXG4gICAgYm9yZGVyLWNvbG9yOiAjZTJlMmUyLFxuXG4gICAgLy8gU2l6aW5nXG4gICAgZ3JpZC1zaXplOiA4cHgsXG4gICAgaWNvbi1zaXplOiAxOHB4LFxuICAgIGhlYWRlci1oZWlnaHQ6IGFnLWRlcml2ZWQoZ3JpZC1zaXplLCAkdGltZXM6IDcpLFxuICAgIHJvdy1oZWlnaHQ6IGFnLWRlcml2ZWQoZ3JpZC1zaXplLCAkdGltZXM6IDYpLFxuICAgIGNlbGwtaG9yaXpvbnRhbC1wYWRkaW5nOiBhZy1kZXJpdmVkKGdyaWQtc2l6ZSwgJHRpbWVzOiAzKSxcbiAgICBsaXN0LWl0ZW0taGVpZ2h0OiBhZy1kZXJpdmVkKGdyaWQtc2l6ZSwgJHRpbWVzOiA0KSxcbiAgICByb3ctZ3JvdXAtaW5kZW50LXNpemU6IGFnLWRlcml2ZWQoZ3JpZC1zaXplLCAkdGltZXM6IDMsICRwbHVzOiBpY29uLXNpemUpLFxuICAgIGZpbHRlci10b29sLXBhbmVsLXN1Yi1sZXZlbC1yb3ctaGVpZ2h0OiBhZy1kZXJpdmVkKGdyaWQtc2l6ZSwgJHRpbWVzOiA0KSxcbiAgICBjaGVja2JveC1ib3JkZXItcmFkaXVzOiAycHgsXG4gICAgdG9nZ2xlLWJ1dHRvbi1zd2l0Y2gtYm9yZGVyLXdpZHRoOiAycHgsXG4gICAgdG9nZ2xlLWJ1dHRvbi1oZWlnaHQ6IGFnLWRlcml2ZWQoaWNvbi1zaXplKSxcbiAgICB3aWRnZXQtY29udGFpbmVyLWhvcml6b250YWwtcGFkZGluZzogYWctZGVyaXZlZChncmlkLXNpemUsICR0aW1lczogMS41KSxcbiAgICB3aWRnZXQtY29udGFpbmVyLXZlcnRpY2FsLXBhZGRpbmc6IGFnLWRlcml2ZWQoZ3JpZC1zaXplLCAkdGltZXM6IDIpLFxuICAgIHdpZGdldC1ob3Jpem9udGFsLXNwYWNpbmc6IGFnLWRlcml2ZWQoZ3JpZC1zaXplLCAkdGltZXM6IDEuNSksXG4gICAgd2lkZ2V0LXZlcnRpY2FsLXNwYWNpbmc6IGFnLWRlcml2ZWQoZ3JpZC1zaXplLCAkdGltZXM6IDEuNzUpLFxuXG4gICAgLy8gRm9udHNcbiAgICBmb250LWZhbWlseTogKFwiUm9ib3RvXCIsIHNhbnMtc2VyaWYpLFxuICAgIGZvbnQtc2l6ZTogMTNweCxcbiAgICBpY29uLWZvbnQtZmFtaWx5OiAkYWctdGhlbWUtbWF0ZXJpYWwtaWNvbi1mb250LWZhbWlseSxcbiAgICBpY29ucy1kYXRhOiAkYWctdGhlbWUtbWF0ZXJpYWwtaWNvbnMtZGF0YSxcbiAgICBpY29ucy1mb250LWNvZGVzOiAkYWctdGhlbWUtbWF0ZXJpYWwtaWNvbnMtZm9udC1jb2RlcyxcblxuICAgIC8vIE1pc2NcbiAgICBzZWxlY3RlZC10YWItdW5kZXJsaW5lLWNvbG9yOiBhZy1kZXJpdmVkKG1hdGVyaWFsLXByaW1hcnktY29sb3IpLFxuICAgIHNlbGVjdGVkLXRhYi11bmRlcmxpbmUtd2lkdGg6IDJweCxcbiAgICBmdWxsLXdpZHRoLXRhYnM6IHRydWUsXG5cbiAgICBpbnB1dC1mb2N1cy1ib3JkZXItY29sb3I6IGFnLWRlcml2ZWQobWF0ZXJpYWwtcHJpbWFyeS1jb2xvciksXG4gICAgXG4gICAgaW5wdXQtZm9jdXMtYm94LXNoYWRvdzogMCAwIDAgNXB4IHJnYmEoMzIsMzMsMzYsMC4xMjIpLFxuXG4gICAgY2FyZC1zaGFkb3c6ICgwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMikpLFxuICAgIGNhcmQtcmFkaXVzOiAycHgsXG4pO1xuXG4kYWctdGhlbWUtbWF0ZXJpYWwtZGVmYXVsdC1wYXJhbXM6IG1hcC1tZXJnZSgkYWctdGhlbWUtYmFzZS1kZWZhdWx0LXBhcmFtcywgJGFnLXRoZW1lLW1hdGVyaWFsLWRlZmF1bHQtcGFyYW1zKTtcbiIsIkBpbXBvcnQgXCIuLi8uLi9taXhpbnMvYWctdGhlbWUtcGFyYW1zXCI7XG5AaW1wb3J0IFwiLi9hZy10aGVtZS1iYXNlLWZvbnQtdmFyc1wiO1xuXG5cbi8vIE5PVEUgdGhpcyBmaWxlIGlzIHVzZWQgaW4gdGhlIDxhZy1ncmlkLWRvY3M+L2phdmFzY3JpcHQtZ3JpZC10aGVtZXMtcHJvdmlkZWQvaW5kZXgucGhwIGZpbGUgZm9yIGN1c3RvbWVyLWZhY2luZyBkb2N1bWVudGF0aW9uLiBJZiB5b3UgdXBkYXRlIGl0LCB0aGVuIGFsc28gdXBkYXRlIHRoZSBwaHAgZmlsZVxuXG4vLyBLZWVwIHRvIDgwIGNoYXJhY3RlcnMgcGVyIGxpbmUgdG8gYXZvaWQgbGluZSB3cmFwcGluZyBpbiB0aGUgZG9jc1xuXG5cbiRhZy10aGVtZS1iYXNlLWRlZmF1bHQtcGFyYW1zOiAoXG4gICAgLy8gQ29sb3VyIG9mIHRleHQgYW5kIGljb25zIGluIHByaW1hcnkgVUkgZWxlbWVudHMgbGlrZSBtZW51c1xuICAgIGZvcmVncm91bmQtY29sb3I6ICMwMDAsXG5cbiAgICAvLyBDb2xvdXIgb2YgdGV4dCBpbiBncmlkIGNlbGxzXG4gICAgZGF0YS1jb2xvcjogYWctZGVyaXZlZChmb3JlZ3JvdW5kLWNvbG9yKSxcblxuICAgIC8vIENvbG91ciBvZiB0ZXh0IGFuZCBpY29ucyBpbiBVSSBlbGVtZW50cyB0aGF0IG5lZWQgdG8gYmUgc2xpZ2h0bHkgbGVzcyBlbXBoYXNpc2VkIHRvIGF2b2lkIGRpc3RyYWN0aW5nIGF0dGVudGlvbiBmcm9tIGRhdGFcbiAgICBzZWNvbmRhcnktZm9yZWdyb3VuZC1jb2xvcjogYWctZGVyaXZlZChmb3JlZ3JvdW5kLWNvbG9yKSxcblxuICAgIC8vIENvbG91ciBvZiB0ZXh0IGFuZCBpY29ucyBpbiB0aGUgaGVhZGVyXG4gICAgaGVhZGVyLWZvcmVncm91bmQtY29sb3I6IGFnLWRlcml2ZWQoc2Vjb25kYXJ5LWZvcmVncm91bmQtY29sb3IpLFxuXG4gICAgLy8gQ29sb3Igb2YgZWxlbWVudHMgdGhhdCBjYW4ndCBiZSBpbnRlcmFjdGVkIHdpdGggYmVjYXVzZSB0aGV5IGFyZSBpbiBhIGRpc2FibGVkIHN0YXRlXG4gICAgZGlzYWJsZWQtZm9yZWdyb3VuZC1jb2xvcjogYWctZGVyaXZlZChmb3JlZ3JvdW5kLWNvbG9yLCAkb3BhY2l0eTogMC41KSxcblxuICAgIC8vIEJhY2tncm91bmQgY29sb3VyIG9mIHRoZSBncmlkXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZixcblxuICAgIC8vIEJhY2tncm91bmQgY29sb3VyIGZvciBhbGwgaGVhZGVycywgaW5jbHVkaW5nIHRoZSBncmlkIGhlYWRlciwgcGFuZWxzIGV0Y1xuICAgIGhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yOiBudWxsLFxuXG4gICAgLy8gQmFja2dyb3VuZCBjb2xvdXIgZm9yIHNlY29uZCBsZXZlbCBoZWFkaW5ncyB3aXRoaW4gVUkgY29tcG9uZW50c1xuICAgIHN1YmhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yOiBudWxsLFxuXG4gICAgLy8gQmFja2dyb3VuZCBjb2xvdXIgZm9yIHRvb2xiYXJzIGRpcmVjdGx5IHVuZGVyIHN1YmhlYWRpbmdzIChhcyB1c2VkIGluIHRoZSBjaGFydCBzZXR0aW5ncyBtZW51KVxuICAgIHN1YmhlYWRlci10b29sYmFyLWJhY2tncm91bmQtY29sb3I6IG51bGwsXG5cbiAgICAvLyBCYWNrZ3JvdW5kIGZvciBhcmVhcyBvZiB0aGUgaW50ZXJmYWNlIHRoYXQgY29udGFpbiBVSSBjb250cm9scywgbGlrZSB0b29sIHBhbmVscyBhbmQgdGhlIGNoYXJ0IHNldHRpbmdzIG1lbnVcbiAgICBjb250cm9sLXBhbmVsLWJhY2tncm91bmQtY29sb3I6IG51bGwsXG5cbiAgICAvLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHNlbGVjdGVkIHJvd3MgaW4gdGhlIGdyaWQgYW5kIGluIGRyb3Bkb3duIG1lbnVzXG4gICAgc2VsZWN0ZWQtcm93LWJhY2tncm91bmQtY29sb3I6IGFnLWRlcml2ZWQoYmFja2dyb3VuZC1jb2xvciwgJG1peDogZm9yZWdyb3VuZC1jb2xvciAyNSUpLFxuXG4gICAgLy8gQmFja2dyb3VuZCBjb2xvdXIgYXBwbGllZCB0byBldmVyeSBvdGhlciByb3cgb3IgbnVsbCB0byB1c2UgYmFja2dyb3VuZC1jb2xvciBmb3IgYWxsIHJvd3NcbiAgICBvZGQtcm93LWJhY2tncm91bmQtY29sb3I6IG51bGwsXG5cbiAgICAvLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBvdmVybGF5IHNob3duIG92ZXIgdGhlIGdyaWQgd2hlbiBpdCBpcyBjb3ZlcmVkIGJ5IGFuIG92ZXJsYXksIGUuZy4gYSBkYXRhIGxvYWRpbmcgaW5kaWNhdG9yLlxuICAgIG1vZGFsLW92ZXJsYXktYmFja2dyb3VuZC1jb2xvcjogYWctZGVyaXZlZChiYWNrZ3JvdW5kLWNvbG9yLCAkb3BhY2l0eTogMC42NiksXG5cbiAgICAvLyBCYWNrZ3JvdW5kIGNvbG9yIHdoZW4gaG92ZXJpbmcgb3ZlciByb3dzIGluIHRoZSBncmlkIGFuZCBpbiBkcm9wZG93biBtZW51cywgb3IgbnVsbCBmb3Igbm8gcm9sbG92ZXIgZWZmZWN0IChub3RlIC0gaWYgeW91IHdhbnQgYSByb2xsb3ZlciBvbiBvbmUgYnV0IG5vdCB0aGUgb3RoZXIsIHNldCB0byBudWxsIGFuZCB1c2UgQ1NTIHRvIGFjaGlldmUgdGhlIHJvbGxvdmVyKVxuICAgIHJvdy1ob3Zlci1jb2xvcjogbnVsbCxcblxuICAgIC8vIENvbG9yIHRvIGRyYXcgYXJvdW5kIHNlbGVjdGVkIGNlbGwgcmFuZ2VzXG4gICAgcmFuZ2Utc2VsZWN0aW9uLWJvcmRlci1jb2xvcjogYWctZGVyaXZlZChmb3JlZ3JvdW5kLWNvbG9yKSxcblxuICAgIC8vIEJhY2tncm91bmQgY29sb3VyIG9mIHNlbGVjdGVkIGNlbGwgcmFuZ2VzLiBCeSBkZWZhdWx0LCBzZXR0aW5nIHRoaXMgdG8gYSBzZW1pLXRyYW5zcGFyZW50IGNvbG9yIChvcGFjaXR5IG9mIDAuMSB0byAwLjUgd29ya3Mgd2VsbCkgd2lsbCBnZW5lcmF0ZSBhcHByb3ByaWF0ZSB2YWx1ZXMgZm9yIHRoZSByYW5nZS1zZWxlY3Rpb24tYmFja2dyb3VuZC1jb2xvci17MS4uNH0gY29sb3VycyB1c2VkIHdoZW4gbXVsdGlwbGUgcmFuZ2VzIG92ZXJsYXAuXG4gICAgLy8gTk9URTogaWYgc2V0dGluZyB0aGlzIHZhbHVlIHRvIGEgQ1NTIHZhcmlhYmxlLCBhbmQgeW91ciBhcHAgc3VwcG9ydHMgb3ZlcmxhcHBpbmcgcmFuZ2Ugc2VsZWN0aW9ucywgYWxzbyBzZXQgcmFuZ2Utc2VsZWN0aW9uLWJhY2tncm91bmQtY29sb3ItezEuLjR9LlxuICAgIHJhbmdlLXNlbGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOiBhZy1kZXJpdmVkKHJhbmdlLXNlbGVjdGlvbi1ib3JkZXItY29sb3IsICRvcGFjaXR5OiAwLjIpLFxuICAgIFxuICAgIC8vIFRoZXNlIDQgcGFyYW1ldGVycyBhcmUgdXNlZCBmb3IgZmluZS1ncmFpbmVkIGNvbnRyb2wgb3ZlciB0aGUgYmFja2dyb3VuZCBjb2xvciB1c2VkIHdoZW4gMSwgMiwgMyBvciA0IHJhbmdlcyBvdmVybGFwLlxuICAgIHJhbmdlLXNlbGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yLTE6IGFnLWRlcml2ZWQocmFuZ2Utc2VsZWN0aW9uLWJhY2tncm91bmQtY29sb3IpLFxuICAgIHJhbmdlLXNlbGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yLTI6IGFnLWRlcml2ZWQocmFuZ2Utc2VsZWN0aW9uLWJhY2tncm91bmQtY29sb3IsICRzZWxmLW92ZXJsYXk6IDIpLFxuICAgIHJhbmdlLXNlbGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yLTM6IGFnLWRlcml2ZWQocmFuZ2Utc2VsZWN0aW9uLWJhY2tncm91bmQtY29sb3IsICRzZWxmLW92ZXJsYXk6IDMpLFxuICAgIHJhbmdlLXNlbGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yLTQ6IGFnLWRlcml2ZWQocmFuZ2Utc2VsZWN0aW9uLWJhY2tncm91bmQtY29sb3IsICRzZWxmLW92ZXJsYXk6IDQpLFxuXG4gICAgLy8gQmFja2dyb3VuZCBjb2xvdXIgdG8gYXBwbHkgdG8gYSBjZWxsIHJhbmdlIHdoZW4gaXQgaXMgY29waWVkIGZyb20gb3IgcGFzdGVkIGludG9cbiAgICByYW5nZS1zZWxlY3Rpb24taGlnaGxpZ2h0LWNvbG9yOiBhZy1kZXJpdmVkKHJhbmdlLXNlbGVjdGlvbi1ib3JkZXItY29sb3IpLFxuXG4gICAgLy8gQ29sb3VyIGFuZCB0aGlja25lc3Mgb2YgdGhlIGJvcmRlciBkcmF3biB1bmRlciBzZWxlY3RlZCB0YWJzLCBpbmNsdWRpbmcgbWVudXMgYW5kIHRvb2wgcGFuZWxzXG4gICAgc2VsZWN0ZWQtdGFiLXVuZGVybGluZS1jb2xvcjogYWctZGVyaXZlZChyYW5nZS1zZWxlY3Rpb24tYm9yZGVyLWNvbG9yKSxcbiAgICBzZWxlY3RlZC10YWItdW5kZXJsaW5lLXdpZHRoOiAwLFxuICAgIHNlbGVjdGVkLXRhYi11bmRlcmxpbmUtdHJhbnNpdGlvbi1zcGVlZDogbnVsbCxcblxuICAgIC8vIEJhY2tncm91bmQgY29sb3VyIGZvciBjZWxscyB0aGF0IHByb3ZpZGUgY2F0ZWdvcmllcyB0byB0aGUgY3VycmVudCByYW5nZSBjaGFydFxuICAgIHJhbmdlLXNlbGVjdGlvbi1jaGFydC1jYXRlZ29yeS1iYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCMwMEZGODQsIDAuMSksXG5cbiAgICAvLyBCYWNrZ3JvdW5kIGNvbG91ciBmb3IgY2VsbHMgdGhhdCBwcm92aWRlIGRhdGEgdG8gdGhlIGN1cnJlbnQgcmFuZ2UgY2hhcnRcbiAgICByYW5nZS1zZWxlY3Rpb24tY2hhcnQtYmFja2dyb3VuZC1jb2xvcjogcmdiYSgjMDA1OEZGLCAwLjEpLFxuXG4gICAgLy8gUm9sbG92ZXIgY29sb3VyIGZvciBoZWFkZXIgY2VsbHNcbiAgICBoZWFkZXItY2VsbC1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiBudWxsLFxuXG4gICAgLy8gQ29sb3VyIGFwcGxpZWQgdG8gaGVhZGVyIGNlbGxzIHdoZW4gdGhlIGNvbHVtbiBpcyBiZWluZyBkcmFnZ2VkIHRvIGEgbmV3IHBvc2l0aW9uXG4gICAgaGVhZGVyLWNlbGwtbW92aW5nLWJhY2tncm91bmQtY29sb3I6IGFnLWRlcml2ZWQoaGVhZGVyLWNlbGwtaG92ZXItYmFja2dyb3VuZC1jb2xvciksXG5cbiAgICAvLyBDb2xvdXIgdG8gYXBwbHkgd2hlbiBhIGNlbGwgdmFsdWUgY2hhbmdlcyBhbmQgZW5hYmxlQ2VsbENoYW5nZUZsYXNoIGlzIGVuYWJsZWRcbiAgICB2YWx1ZS1jaGFuZ2UtdmFsdWUtaGlnaGxpZ2h0LWJhY2tncm91bmQtY29sb3I6IHJnYmEoIzE2QTA4NSwgMC41KSxcblxuICAgIC8vIENvbG91cnMgdG8gYXBwbHkgd2hlbiBhIHZhbHVlIGluY3JlYXNlcyBvciBkZWNyZWFzZXMgaW4gYW4gYWdBbmltYXRlU2hvd0NoYW5nZUNlbGxSZW5kZXJlciBjZWxsXG4gICAgdmFsdWUtY2hhbmdlLWRlbHRhLXVwLWNvbG9yOiAjNDNhMDQ3LFxuICAgIHZhbHVlLWNoYW5nZS1kZWx0YS1kb3duLWNvbG9yOiAjZTUzOTM1LFxuXG4gICAgLy8gQ29sb3VyIGZvciB0aGUgXCJjaGlwXCIgdGhhdCByZXBlcnNlbnRzIGEgY29sdW1uIHRoYXQgaGFzIGJlZW4gZHJhZ2dlZCBvbnRvIGEgZHJvcCB6b25lXG4gICAgY2hpcC1iYWNrZ3JvdW5kLWNvbG9yOiBudWxsLFxuXG4gICAgLy8gQnkgZGVmYXVsdCwgY29sb3IgdmFyaWFibGVzIGNhbiBiZSBvdmVycmlkZGVuIGF0IHJ1bnRpbWUgYnkgQ1NTIHZhcmlhYmxlcywgZS5nLlxuICAgIC8vIGJhY2tncm91bmQtY29sb3IgY2FuIGJlIG92ZXJyaWRkZW4gd2l0aCB0aGUgQ1NTIHZhciAtLWFnLWJhY2tncm91bmQtY29sb3IuIFBhc3MgdHJ1ZVxuICAgIC8vIHRvIGRpc2FibGUgdGhpcyBiZWhhdmlvdXIuXG4gICAgc3VwcHJlc3MtY3NzLXZhci1vdmVycmlkZXM6IGZhbHNlLFxuXG4gICAgLy9cbiAgICAvLyBCT1JERVJTXG4gICAgLy9cblxuICAgIC8vIERyYXcgYm9yZGVycyBhcm91bmQgbW9zdCBVSSBlbGVtZW50c1xuICAgIGJvcmRlcnM6IHRydWUsXG5cbiAgICAvLyBEcmF3IHRoZSBmZXcgYm9yZGVycyB0aGF0IGFyZSBjcml0aWNhbCB0byBVWCwgZS5nLiBiZXR3ZWVuIGhlYWRlcnMgYW5kIHJvd3MuXG4gICAgYm9yZGVycy1jcml0aWNhbDogYWctZGVyaXZlZChib3JkZXJzKSxcblxuICAgIC8vIERyYXcgZGVjb3JhdGl2ZSBib3JkZXJzIHNlcGFyYXRpbmcgVUkgZWxlbWVudHMgd2l0aGluIGNvbXBvbmVudHNcbiAgICBib3JkZXJzLXNlY29uZGFyeTogYWctZGVyaXZlZChib3JkZXJzKSxcblxuICAgIC8vIERyYXcgYm9yZGVycyBhcm91bmQgc2lkZWJhciB0YWJzIHNvIHRoYXQgdGhlIGFjdGl2ZSB0YWIgYXBwZWFycyBjb25uZWN0ZWQgdG8gdGhlIGN1cnJlbnQgdG9vbCBwYW5lbFxuICAgIGJvcmRlcnMtc2lkZS1idXR0b246IGFnLWRlcml2ZWQoYm9yZGVycyksXG5cbiAgICBib3JkZXItcmFkaXVzOiAwcHgsXG5cbiAgICAvLyBDb2xvdXIgZm9yIGJvcmRlciBhcm91bmQgbWFqb3IgVUkgY29tcG9uZW50cyBsaWtlIHRoZSBncmlkIGl0c2VsZiwgaGVhZGVycywgZm9vdGVycyBhbmQgdG9vbCBwYW5lbHNcbiAgICBib3JkZXItY29sb3I6IGFnLWRlcml2ZWQoYmFja2dyb3VuZC1jb2xvciwgJG1peDogZm9yZWdyb3VuZC1jb2xvciAyNSUpLFxuXG4gICAgLy8gQ29sb3VyIGZvciBib3JkZXJzIHVzZWQgdG8gc2VwYXJhdGUgZWxlbWVudHMgd2l0aGluIGEgbWFqb3IgVUkgY29tcG9uZW50XG4gICAgc2Vjb25kYXJ5LWJvcmRlci1jb2xvcjogYWctZGVyaXZlZChib3JkZXItY29sb3IpLFxuXG4gICAgLy8gQ29sb3VyIG9mIHRoZSBib3JkZXIgYmV0d2VlbiBncmlkIHJvd3MsIG9yIG51bGwgdG8gZGlzcGxheSBubyBib3JkZXJcbiAgICByb3ctYm9yZGVyLWNvbG9yOiBhZy1kZXJpdmVkKHNlY29uZGFyeS1ib3JkZXItY29sb3IpLFxuXG4gICAgLy8gRGVmYXVsdCBib3JkZXIgZm9yIGNlbGxzLiBUaGlzIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGJvcmRlci1zdHlsZSBhbmQgYm9yZGVyLWNvbG9yIHByb3BlcnRpZXMgZS5nLiBgZGFzaGVkIHJlZGAgYnV0IHRoZSBib3JkZXItd2lkdGggaXMgZml4ZWQgYXQgMXB4LlxuICAgIGNlbGwtaG9yaXpvbnRhbC1ib3JkZXI6IHNvbGlkIHRyYW5zcGFyZW50LFxuXG4gICAgLy8gU2VwYXJhdG9yIGJldHdlZW4gY29sdW1ucyBpbiB0aGUgaGVhZGVyLiBEaXNwbGF5cyBiZXR3ZWVuIGFsbCBoZWFkZXIgY2VsbHMgRm9yIGJlc3QgVVgsIHVzZSBlaXRoZXIgdGhpcyBvciBoZWFkZXItY29sdW1uLXJlc2l6ZS1oYW5kbGUgYnV0IG5vdCBib3RoXG4gICAgaGVhZGVyLWNvbHVtbi1zZXBhcmF0b3I6IGZhbHNlLFxuICAgICAgICBoZWFkZXItY29sdW1uLXNlcGFyYXRvci1oZWlnaHQ6IDEwMCUsXG4gICAgICAgIGhlYWRlci1jb2x1bW4tc2VwYXJhdG9yLXdpZHRoOiAxcHgsXG4gICAgICAgIGhlYWRlci1jb2x1bW4tc2VwYXJhdG9yLWNvbG9yOiBhZy1kZXJpdmVkKGJvcmRlci1jb2xvciwgJG9wYWNpdHk6IDAuNSksXG5cbiAgICAvLyBWaXNpYmxlIG1hcmtlciBmb3IgcmVzaXplYWJsZSBjb2x1bW5zLiBEaXNwbGF5cyBpbiB0aGUgc2FtZSBwb3NpdGlvbiBhcyB0aGUgY29sdW1uIHNlcGFyYXRvciwgYnV0IG9ubHkgd2hlbiB0aGUgY29sdW1uIGlzIHJlc2l6ZWFibGUuIEZvciBiZXN0IFVYLCB1c2UgZWl0aGVyIHRoaXMgb3IgaGVhZGVyLWNvbHVtbi1zZXBhcmF0b3IgYnV0IG5vdCBib3RoXG4gICAgaGVhZGVyLWNvbHVtbi1yZXNpemUtaGFuZGxlOiBmYWxzZSxcbiAgICAgICAgaGVhZGVyLWNvbHVtbi1yZXNpemUtaGFuZGxlLWhlaWdodDogNTAlLFxuICAgICAgICBoZWFkZXItY29sdW1uLXJlc2l6ZS1oYW5kbGUtd2lkdGg6IDFweCxcbiAgICAgICAgaGVhZGVyLWNvbHVtbi1yZXNpemUtaGFuZGxlLWNvbG9yOiBhZy1kZXJpdmVkKGJvcmRlci1jb2xvciwgJG9wYWNpdHk6IDAuNSksXG5cbiAgICAvL1xuICAgIC8vIElOUFVUU1xuICAgIC8vXG5cbiAgICAvLyBTdXBwcmVzcyBzdHlsaW5nIG9mIGNoZWNrYm94L3JhZGlvL3JhbmdlIGlucHV0IGVsZW1lbnRzLiBJZiB5b3Ugd2FudCB0byBzdHlsZSB0aGVzZSB5b3Vyc2VsZiwgc2V0IHRoaXMgdG8gdHJ1ZS4gSWYgeW91IG9ubHkgd2FudCB0byBkaXNhYmxlIHN0eWxpbmcgZm9yIHNvbWUga2luZHMgb2YgaW5wdXQsIHlvdSBjYW4gc2V0IHRoaXMgdG8gdHJ1ZSBhbmQgZS5nLiBAaW5jbHVkZSBhZy1uYXRpdmUtaW5wdXRzKChjaGVja2JveDogZmFsc2UpKSB3aGljaCB3aWxsIGVtaXQgc3R5bGVzIGZvciBhbGwga2luZHMgb2YgaW5wdXQgZXhjZXB0IGNoZWNrYm94ZXMuXG4gICAgc3VwcHJlc3MtbmF0aXZlLXdpZGdldC1zdHlsaW5nOiBmYWxzZSxcbiAgICBcbiAgICBpbnB1dC1ib3JkZXItY29sb3I6IG51bGwsXG4gICAgaW5wdXQtZGlzYWJsZWQtYm9yZGVyLWNvbG9yOiBhZy1kZXJpdmVkKGlucHV0LWJvcmRlci1jb2xvciwgJG9wYWNpdHk6IDAuMyksXG4gICAgaW5wdXQtZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogbnVsbCxcblxuICAgIGNoZWNrYm94LWJhY2tncm91bmQtY29sb3I6IG51bGwsXG4gICAgY2hlY2tib3gtYm9yZGVyLXJhZGl1czogYWctZGVyaXZlZChib3JkZXItcmFkaXVzKSxcbiAgICBjaGVja2JveC1jaGVja2VkLWNvbG9yOiBhZy1kZXJpdmVkKGZvcmVncm91bmQtY29sb3IpLFxuICAgIGNoZWNrYm94LXVuY2hlY2tlZC1jb2xvcjogYWctZGVyaXZlZChmb3JlZ3JvdW5kLWNvbG9yKSxcbiAgICBjaGVja2JveC1pbmRldGVybWluYXRlLWNvbG9yOiBhZy1kZXJpdmVkKGNoZWNrYm94LXVuY2hlY2tlZC1jb2xvciksXG5cbiAgICB0b2dnbGUtYnV0dG9uLW9mZi1ib3JkZXItY29sb3I6IGFnLWRlcml2ZWQoY2hlY2tib3gtdW5jaGVja2VkLWNvbG9yKSxcbiAgICB0b2dnbGUtYnV0dG9uLW9mZi1iYWNrZ3JvdW5kLWNvbG9yOiBhZy1kZXJpdmVkKGNoZWNrYm94LXVuY2hlY2tlZC1jb2xvciksXG4gICAgdG9nZ2xlLWJ1dHRvbi1vbi1ib3JkZXItY29sb3I6IGFnLWRlcml2ZWQoY2hlY2tib3gtY2hlY2tlZC1jb2xvciksXG4gICAgdG9nZ2xlLWJ1dHRvbi1vbi1iYWNrZ3JvdW5kLWNvbG9yOiBhZy1kZXJpdmVkKGNoZWNrYm94LWNoZWNrZWQtY29sb3IpLFxuICAgIHRvZ2dsZS1idXR0b24tc3dpdGNoLWJhY2tncm91bmQtY29sb3I6IGFnLWRlcml2ZWQoYmFja2dyb3VuZC1jb2xvciksXG4gICAgdG9nZ2xlLWJ1dHRvbi1zd2l0Y2gtYm9yZGVyLWNvbG9yOiBhZy1kZXJpdmVkKHRvZ2dsZS1idXR0b24tb2ZmLWJvcmRlci1jb2xvciksXG4gICAgdG9nZ2xlLWJ1dHRvbi1ib3JkZXItd2lkdGg6IDFweCxcbiAgICB0b2dnbGUtYnV0dG9uLWhlaWdodDogYWctZGVyaXZlZChpY29uLXNpemUpLFxuICAgIHRvZ2dsZS1idXR0b24td2lkdGg6IGFnLWRlcml2ZWQodG9nZ2xlLWJ1dHRvbi1oZWlnaHQsICR0aW1lczogMiksXG5cbiAgICBpbnB1dC1mb2N1cy1ib3gtc2hhZG93OiBudWxsLFxuICAgIGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjogbnVsbCxcblxuICAgIC8vIENIQVJUIFNFVFRJTkdTXG5cbiAgICAvLyBDb2xvciBvZiBib3JkZXIgYXJvdW5kIHNlbGVjdGVkIGNoYXJ0IHN0eWxlXG4gICAgbWluaWNoYXJ0LXNlbGVjdGVkLWNoYXJ0LWNvbG9yOiBhZy1kZXJpdmVkKGNoZWNrYm94LWNoZWNrZWQtY29sb3IpLFxuICAgIC8vIENvbG9yIG9mIGRvdCByZXByZXNlbnRpbmcgc2VsZWN0ZWQgcGFnZSBvZiBjaGFydCBzdHlsZXNcbiAgICBtaW5pY2hhcnQtc2VsZWN0ZWQtcGFnZS1jb2xvcjogYWctZGVyaXZlZChjaGVja2JveC1jaGVja2VkLWNvbG9yKSxcblxuXG4gICAgLy9cbiAgICAvLyBTSVpJTkcgLyBQQURESU5HIC8gU1BBQ0lOR1xuICAgIC8vXG5cbiAgICAvLyBncmlkLXNpemUgaXMgdGhlIG1haW4gY29udHJvbCBmb3IgYWZmZWN0aW5nIGhvdyB0aWdodGx5IGRhdGEgYW5kIFVJIGVsZW1lbnRzIGFyZSBwYWNrZWQgdG9nZXRoZXIuIEFsbCBwYWRkaW5nIGFuZCBzcGFjaW5nIGluIHRoZSBncmlkIGlzIGRlZmluZWQgYXMgYSBtdWx0aXBsZSBvZiBncmlkLXNpemUsIHNvIGluY3JlYXNpbmcgaXQgd2lsbCBtYWtlIG1vc3QgY29tcG9uZW50cyBsYXJnZXIgYnkgaW5jcmVhc2luZyB0aGVpciBpbnRlcm5hbCB3aGl0ZSBzcGFjZSB3aGlsZSBsZWF2aW5nIHRoZSBzaXplIG9mIHRleHQgYW5kIGljb25zIHVuY2hhbmdlZC5cbiAgICBncmlkLXNpemU6IDRweCxcblxuICAgIC8vIFRoZSBzaXplIG9mIHNxdWFyZSBpY29ucyBhbmQgaWNvbi1idXR0b25zXG4gICAgaWNvbi1zaXplOiAxMnB4LFxuXG4gICAgLy8gVGhlc2UgNCB2YXJpYWJsZXMgc2V0IHRoZSBwYWRkaW5nIGFyb3VuZCBhbmQgc3BhY2luZyBiZXR3ZWVuIHdpZGdldHMgaW4gXCJ3aWRnZXQgY29udGFpbmVyc1wiIHdoaWNoIGFyZSBwYXJ0cyBvZiB0aGUgVUkgdGhhdCBjb250YWluIG1hbnkgcmVsYXRlZCB3aWRnZXRzLCBsaWtlIHRoZSBzZXQgZmlsdGVyIG1lbnUsIGNoYXJ0cyBzZXR0aW5ncyB0YWJzIGV0Yy5cbiAgICB3aWRnZXQtY29udGFpbmVyLWhvcml6b250YWwtcGFkZGluZzogYWctZGVyaXZlZChncmlkLXNpemUsICR0aW1lczogMS41KSxcbiAgICB3aWRnZXQtY29udGFpbmVyLXZlcnRpY2FsLXBhZGRpbmc6IGFnLWRlcml2ZWQoZ3JpZC1zaXplLCAkdGltZXM6IDEuNSksXG4gICAgd2lkZ2V0LWhvcml6b250YWwtc3BhY2luZzogYWctZGVyaXZlZChncmlkLXNpemUsICR0aW1lczogMS41KSxcbiAgICB3aWRnZXQtdmVydGljYWwtc3BhY2luZzogYWctZGVyaXZlZChncmlkLXNpemUpLFxuXG4gICAgLy8gSG9yaXpvbnRhbCBwYWRkaW5nIGZvciBncmlkIGFuZCBoZWFkZXIgY2VsbHMgKHZlcnRpY2FsIHBhZGRpbmcgaXMgbm90IHNldCBleHBsaWNpdGx5LCBidXQgaW5mZXJyZWQgZnJvbSByb3ctaGVpZ2h0IC8gaGVhZGVyLWhlaWdodFxuICAgIGNlbGwtaG9yaXpvbnRhbC1wYWRkaW5nOiBhZy1kZXJpdmVkKGdyaWQtc2l6ZSwgJHRpbWVzOiAzKSxcblxuICAgIC8vIEhvcml6b250YWwgc3BhY2luZyBiZXR3ZWVuIHdpZGdldHMgaW5zaWRlIGNlbGxzIChlLmcuIHJvdyBncm91cCBleHBhbmQgYnV0dG9ucyBhbmQgcm93IHNlbGVjdGlvbiBjaGVja2JveGVzKVxuICAgIGNlbGwtd2lkZ2V0LXNwYWNpbmc6IGFnLWRlcml2ZWQoY2VsbC1ob3Jpem9udGFsLXBhZGRpbmcpLFxuXG4gICAgLy8gSGVpZ2h0IG9mIGdyaWQgcm93c1xuICAgIHJvdy1oZWlnaHQ6IGFnLWRlcml2ZWQoZ3JpZC1zaXplLCAkdGltZXM6IDYsICRwbHVzOiAxKSxcblxuICAgIC8vIEhlaWdodCBvZiBoZWFkZXIgcm93c1xuICAgIGhlYWRlci1oZWlnaHQ6IGFnLWRlcml2ZWQocm93LWhlaWdodCksXG5cbiAgICAvLyBIZWlnaHQgb2YgaXRlbXMgaW4gbGlzdHMgKGV4YW1wbGUgb2YgbGlzdHMgYXJlIGRyb3Bkb3duIHNlbGVjdCBpbnB1dHMgYW5kIGNvbHVtbiBtZW51IHNldCBmaWx0ZXJzKVxuICAgIGxpc3QtaXRlbS1oZWlnaHQ6IGFnLWRlcml2ZWQoZ3JpZC1zaXplLCAkdGltZXM6IDUpLFxuXG4gICAgLy8gSG93IG11Y2ggdG8gaW5kZW50IGNoaWxkIGNvbHVtbnMgaW4gdGhlIGNvbHVtbiB0b29sIHBhbmVsIHJlbGF0aXZlIHRvIHRoZWlyIHBhcmVudFxuICAgIGNvbHVtbi1zZWxlY3QtaW5kZW50LXNpemU6IGFnLWRlcml2ZWQoZ3JpZC1zaXplLCAkcGx1czogaWNvbi1zaXplKSxcblxuICAgIC8vIEhvdyBtdWNoIHRvIGluZGVudCBjaGlsZCByb3dzIGluIHRoZSBncmlkIHJlbGF0aXZlIHRvIHRoZWlyIHBhcmVudCByb3dcbiAgICByb3ctZ3JvdXAtaW5kZW50LXNpemU6IGFnLWRlcml2ZWQoY2VsbC13aWRnZXQtc3BhY2luZywgJHBsdXM6IGljb24tc2l6ZSksXG5cbiAgICAvLyBIb3cgbXVjaCB0byBpbmRlbnQgY2hpbGQgY29sdW1ucyBpbiB0aGUgZmlsdGVycyB0b29sIHBhbmVsIHJlbGF0aXZlIHRvIHRoZWlyIHBhcmVudFxuICAgIGZpbHRlci10b29sLXBhbmVsLWdyb3VwLWluZGVudDogMTZweCxcblxuICAgIC8vIENhdXNlIHRhYnMgdG8gc3RyZXRjaCBhY3Jvc3MgdGhlIGZ1bGwgd2lkdGggb2YgdGhlIHRhYiBwYW5lbCBoZWFkZXJcbiAgICBmdWxsLXdpZHRoLXRhYnM6IGZhbHNlLFxuXG4gICAgLy8gRm9udHNcbiAgICBmb250LWZhbWlseTogKFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZiksXG4gICAgZm9udC1zaXplOiAxNHB4LFxuXG4gICAgLy8gVGhlIG5hbWUgb2YgdGhlIGZvbnQgZmFtaWx5IHlvdSdyZSB1c2luZ1xuICAgIGljb24tZm9udC1mYW1pbHk6ICRhZy10aGVtZS1iYXNlLWljb24tZm9udC1mYW1pbHksIC8vIHRoaXMgdmFyIGV4cG9ydGVkIGJ5IGFnLXRoZW1lLWJhc2UtZm9udC12YXJzLnNjc3NcblxuICAgIC8vIEEgVVJJIChkYXRhOiBVUkkgb3Igd2ViIFVSTCkgdG8gbG9hZCB0aGUgaWNvbiBmb250IGZyb20uIE5PVEU6IGlmIHlvdXIgaWNvbiBmb250IGlzIGFscmVhZHkgbG9hZGVkIGluIHRoZSBhcHAncyBIVE1MIHBhZ2UsIHNldCB0aGlzIHRvIG51bGwgdG8gYXZvaWQgZW1iZWRkaW5nIHVubmVjZXNzcnkgZm9udCBkYXRhIGluIHRoZSBjb21waWxlZCB0aGVtZS5cbiAgICBpY29ucy1kYXRhOiAkYWctdGhlbWUtYmFzZS1pY29ucy1kYXRhLCAgICAgICAgICAgICAvLyB0aGlzIHZhciBleHBvcnRlZCBieSBhZy10aGVtZS1iYXNlLWZvbnQtdmFycy5zY3NzXG4gICAgaWNvbnMtZm9udC1jb2RlczogJGFnLXRoZW1lLWJhc2UtaWNvbnMtZm9udC1jb2RlcywgLy8gdGhpcyB2YXIgZXhwb3J0ZWQgYnkgYWctdGhlbWUtYmFzZS1mb250LXZhcnMuc2Nzc1xuXG4gICAgLy8gY2FyZHMgYXJlIGVsZW1lbnRzIHRoYXQgZmxvYXQgYWJvdmUgdGhlIFVJXG4gICAgY2FyZC1yYWRpdXM6IGFnLWRlcml2ZWQoYm9yZGVyLXJhZGl1cyksXG5cbiAgICAvLyB0aGUgZGVmYXVsdCBjYXJkIHNoYWRvdyBhcHBsaWVzIHRvIHNpbXBsZSBjYXJkcyBsaWtlIGNvbHVtbiBkcmFnIGluZGljYXRvcnMgYW5kIHRleHQgZWRpdG9yc1xuICAgIGNhcmQtc2hhZG93OiBub25lLFxuXG4gICAgLy8gb3ZlcnJpZGUgdGhlIHNoYWRvdyBmb3IgcG9wdXBzIC0gY2FyZHMgdGhhdCBjb250YWluIGNvbXBsZXggVUksIGxpa2UgbWVudXMgYW5kIGNoYXJ0c1xuICAgIHBvcHVwLXNoYWRvdzogNXB4IDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4zKVxuKTtcbiIsIlxuQG1peGluIGFnLXRoZW1lLWJhc2UtcGFydC1ncmlkLWxheW91dCB7XG5cbiAgICAuYWctcnRsIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuXG4gICAgLmFnLXJvb3Qtd3JhcHBlciB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWJvcmRlcihwcmltYXJ5KTtcbiAgICB9XG4gICAgXG4gICAgLy8gc3VwcG9ydCAxMDAgbGV2ZWxzIGhlcmUgYmVjYXVzZSByb3cgZ3JvdXAgaW5kZW50YXRpb24gaXMgdXNlZCBmb3IgdHJlZSBkYXRhIHdoaWNoIGNhbiBiZSBxdWl0ZSBkZWVwXG4gICAgQGZvciAkaSBmcm9tIDEgdG8gMTAwIHtcbiAgICAgICAgLmFnLXJvdyA+IC5hZy1jZWxsLXdyYXBwZXIuYWctcm93LWdyb3VwLWluZGVudC0jeyRpfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhZy10aGVtZS1ydGwoKCBwYWRkaW5nLWxlZnQ6IGFnLXBhcmFtKGNlbGwtaG9yaXpvbnRhbC1wYWRkaW5nKSArICRpICogYWctcGFyYW0ocm93LWdyb3VwLWluZGVudC1zaXplKSApKTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLmFnLXJvdy1ncm91cC1pbmRlbnQtI3skaX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYWctdGhlbWUtcnRsKCggcGFkZGluZy1sZWZ0OiAkaSAqIGFnLXBhcmFtKHJvdy1ncm91cC1pbmRlbnQtc2l6ZSkgKSk7XG4gICAgICAgIH1cblxuICAgICAgICAuYWctcm93LWxldmVsLSN7JGl9IC5hZy1waXZvdC1sZWFmLWdyb3VwIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFnLXRoZW1lLXJ0bCgoIG1hcmdpbi1sZWZ0OiBhZy1wYXJhbShyb3ctZ3JvdXAtaW5kZW50LXNpemUpICkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFnLXJvdy1ncm91cC1sZWFmLWluZGVudCB7XG4gICAgICAgIEBpbmNsdWRlIGFnLXRoZW1lLXJ0bCgoIG1hcmdpbi1sZWZ0OiBhZy1wYXJhbShyb3ctZ3JvdXAtaW5kZW50LXNpemUpICkpO1xuICAgIH1cblxuICAgIC5hZy12YWx1ZS1jaGFuZ2UtZGVsdGEge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAycHg7XG4gICAgfVxuXG4gICAgLmFnLXZhbHVlLWNoYW5nZS1kZWx0YS11cCB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGNvbG9yLCB2YWx1ZS1jaGFuZ2UtZGVsdGEtdXAtY29sb3IpO1xuICAgIH1cblxuICAgIC5hZy12YWx1ZS1jaGFuZ2UtZGVsdGEtZG93biB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGNvbG9yLCB2YWx1ZS1jaGFuZ2UtZGVsdGEtZG93bi1jb2xvcik7XG4gICAgfVxuXG4gICAgLmFnLXZhbHVlLWNoYW5nZS12YWx1ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMXB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcHg7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMXM7XG4gICAgfVxuXG4gICAgLmFnLXZhbHVlLWNoYW5nZS12YWx1ZS1oaWdobGlnaHQge1xuICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShiYWNrZ3JvdW5kLWNvbG9yLCB2YWx1ZS1jaGFuZ2UtdmFsdWUtaGlnaGxpZ2h0LWJhY2tncm91bmQtY29sb3IpO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMXM7XG4gICAgfVxuXG4gICAgLmFnLWNlbGwtZGF0YS1jaGFuZ2VkIHtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYmFja2dyb3VuZC1jb2xvciwgdmFsdWUtY2hhbmdlLXZhbHVlLWhpZ2hsaWdodC1iYWNrZ3JvdW5kLWNvbG9yLCAkaW1wb3J0YW50OiB0cnVlKTtcbiAgICB9XG5cbiAgICAuYWctY2VsbC1kYXRhLWNoYW5nZWQtYW5pbWF0aW9uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgLmFnLWNlbGwtaGlnaGxpZ2h0IHtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYmFja2dyb3VuZC1jb2xvciwgcmFuZ2Utc2VsZWN0aW9uLWhpZ2hsaWdodC1jb2xvciwgJGltcG9ydGFudDogdHJ1ZSk7XG4gICAgfVxuXG4gICAgLmFnLXJvdyB7XG4gICAgICAgIGhlaWdodDogYWctcGFyYW0ocm93LWhlaWdodCk7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJhY2tncm91bmQtY29sb3IsIGJhY2tncm91bmQtY29sb3IpO1xuICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShjb2xvciwgZGF0YS1jb2xvcik7XG4gICAgICAgIFxuICAgICAgICBAaWYgYWctcGFyYW0taXMtc2V0KHJvdy1ib3JkZXItY29sb3IpIGFuZCBhZy1wYXJhbShib3JkZXJzLWNyaXRpY2FsKSB7XG4gICAgICAgICAgICAvLyBOT1RFOiB3ZSBkZWZpbmUgYm9yZGVyLXdpZHRoIGFuZCBib3JkZXItY29sb3IgYXQgLmFnLXJvdyBsZXZlbCBhbmQgb25seSBzZXRcbiAgICAgICAgICAgIC8vIGJvcmRlci1zdHlsZSBpbnNpZGUgbmVzdGVkIHBzZXVkb2NsYXNzIHNlbGVjdG9ycywgdG8gYWxsb3cgZGVyaXZlZCB0aGVtZXNcbiAgICAgICAgICAgIC8vIHRvIG92ZXJyaWRlIGJvcmRlci13aWR0aCBvbiAuYWctcm93XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJvcmRlci1jb2xvciwgcm93LWJvcmRlci1jb2xvcik7XG5cbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFnLXJvdy1oaWdobGlnaHQtYWJvdmU6OmFmdGVyLCAuYWctcm93LWhpZ2hsaWdodC1iZWxvdzo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMXB4KTtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJhY2tncm91bmQtY29sb3IsIHJhbmdlLXNlbGVjdGlvbi1ib3JkZXItY29sb3IpO1xuICAgICAgICBsZWZ0OiAxcHg7XG4gICAgfVxuXG4gICAgLmFnLXJvdy1oaWdobGlnaHQtYWJvdmU6OmFmdGVyIHtcbiAgICAgICAgdG9wOiAtMXB4O1xuICAgIH1cblxuICAgIC5hZy1yb3ctaGlnaGxpZ2h0LWFib3ZlLmFnLXJvdy1maXJzdDo6YWZ0ZXIge1xuICAgICAgICB0b3A6IDA7XG4gICAgfVxuXG4gICAgLmFnLXJvdy1oaWdobGlnaHQtYmVsb3c6OmFmdGVyIHtcbiAgICAgICAgYm90dG9tOiAwcHg7XG4gICAgfVxuXG4gICAgLmFnLXJvdy1vZGQge1xuICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShiYWNrZ3JvdW5kLWNvbG9yLCBvZGQtcm93LWJhY2tncm91bmQtY29sb3IpO1xuICAgIH1cblxuICAgIC8vIE5PVEU6IHRoZXNlIGRvbid0IG5lZWQgYW4gUlRMIHZlcnNpb24gYmVjYXVzZSB0aGUgXCJsZWZ0IHNwYWNlclwiIGlzIGFsd2F5cyB0aGUgb25lIHZpc3VhbGx5IG9uIHRoZSBsZWZ0XG4gICAgLmFnLWhvcml6b250YWwtbGVmdC1zcGFjZXI6bm90KC5hZy1zY3JvbGxlci1jb3JuZXIpIHtcbiAgICAgICAgQGluY2x1ZGUgYWctYm9yZGVyKGNyaXRpY2FsLCByaWdodCk7XG4gICAgfVxuICAgIC5hZy1ob3Jpem9udGFsLXJpZ2h0LXNwYWNlcjpub3QoLmFnLXNjcm9sbGVyLWNvcm5lcikge1xuICAgICAgICBAaW5jbHVkZSBhZy1ib3JkZXIoY3JpdGljYWwsIGxlZnQpO1xuICAgIH1cblxuICAgIC5hZy1yb3ctaG92ZXIge1xuICAgICAgICBAaWYgYWctcGFyYW0taXMtc2V0KHJvdy1ob3Zlci1jb2xvcikge1xuICAgICAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYmFja2dyb3VuZC1jb2xvciwgcm93LWhvdmVyLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hZy1yaWdodC1hbGlnbmVkLWNlbGwge1xuICAgICAgICBAaW5jbHVkZSBhZy10aGVtZS1ydGwoKCB0ZXh0LWFsaWduOiByaWdodCApKTtcbiAgICB9XG5cbiAgICAvLyByaWdodC1hbGlnbiBudW1lcmljIHZhbHVlcyBpbiBjZWxscyB3aXRoIHdyYXBwZXJzXG4gICAgLmFnLXJpZ2h0LWFsaWduZWQtY2VsbCAuYWctY2VsbC12YWx1ZSxcbiAgICAuYWctcmlnaHQtYWxpZ25lZC1jZWxsIC5hZy1ncm91cC12YWx1ZSB7XG4gICAgICAgIEBpbmNsdWRlIGFnLXRoZW1lLXJ0bCgoIG1hcmdpbi1sZWZ0OiBhdXRvICkpO1xuICAgIH1cblxuICAgIC5hZy1jZWxsLCAuYWctZnVsbC13aWR0aC1yb3cgLmFnLWNlbGwtd3JhcHBlci5hZy1yb3ctZ3JvdXAge1xuICAgICAgICAvLyBkcmF3IGEgdHJhbnNwYXJlbnQgYm9yZGVyIHNvIHRoYXQgdGhlIGNlbGwgc2l6ZSBkb2Vzbid0IGNoYW5nZSB3aGVuIHdlIGFkZCBhIHJhbmdlIGJvcmRlclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgLy8gYWRqdXN0IGZvciB0cmFuc3BhcmVudCBib3JkZXJcbiAgICAgICAgbGluZS1oZWlnaHQ6IGFnLXBhcmFtKHJvdy1oZWlnaHQpIC0gMnB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IGFnLXBhcmFtKGNlbGwtaG9yaXpvbnRhbC1wYWRkaW5nKSAtIDFweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogYWctcGFyYW0oY2VsbC1ob3Jpem9udGFsLXBhZGRpbmcpIC0gMXB4O1xuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBzdWJwaXhlbC1hbnRpYWxpYXNlZDtcbiAgICB9XG5cbiAgICAvLyBpbiBmdWxsIHdpZHRoIHJvd3MsIGEgY2VsbCByZW5kZXJlciBpcyByZW5kZXJlZCBkaXJlY3RseSBpbnRvIGEgcm93IHdpdGggbm8gY2VsbCBpbiBiZXR3ZWVuLFxuICAgIC8vIGluIHdoaWNoIGNhc2Ugd2UgbmVlZCB0byBhcHBseSB0aGUgcGFkZGluZyB0byB0aGUgY2VsbCByZW5kZXJlcidzIHdyYXBwZXIuXG4gICAgLmFnLXJvdyA+IC5hZy1jZWxsLXdyYXBwZXIge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IGFnLXBhcmFtKGNlbGwtaG9yaXpvbnRhbC1wYWRkaW5nKSAtIDFweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogYWctcGFyYW0oY2VsbC1ob3Jpem9udGFsLXBhZGRpbmcpIC0gMXB4O1xuICAgIH1cblxuICAgIC5hZy1yb3ctZHJhZ2dpbmcge1xuICAgICAgICBjdXJzb3I6IG1vdmU7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG5cbiAgICAuYWctY2VsbC1pbmxpbmUtZWRpdGluZyB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNhcmQoKTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgaGVpZ2h0OiBhZy1wYXJhbShyb3ctaGVpZ2h0KTtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYmFja2dyb3VuZC1jb2xvciwgY29udHJvbC1wYW5lbC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICB9XG5cbiAgICAuYWctcG9wdXAtZWRpdG9yIHtcbiAgICAgICAgQGluY2x1ZGUgYWctY2FyZCgpO1xuICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShiYWNrZ3JvdW5kLWNvbG9yLCBjb250cm9sLXBhbmVsLWJhY2tncm91bmQtY29sb3IpO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC5hZy1sYXJnZS10ZXh0LWlucHV0IHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBwYWRkaW5nOiBhZy1wYXJhbShjZWxsLWhvcml6b250YWwtcGFkZGluZyk7XG4gICAgfVxuXG4gICAgLmFnLWRldGFpbHMtcm93IHtcbiAgICAgICAgcGFkZGluZzogYWctcGFyYW0oZ3JpZC1zaXplKSAqIDU7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJhY2tncm91bmQtY29sb3IsIGJhY2tncm91bmQtY29sb3IpO1xuICAgIH1cblxuICAgIC5hZy1sYXlvdXQtYXV0by1oZWlnaHQsIC5hZy1sYXlvdXQtcHJpbnQge1xuICAgICAgICAuYWctY2VudGVyLWNvbHMtY2xpcHBlciwgLmFnLWNlbnRlci1jb2xzLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFnLW92ZXJsYXktbG9hZGluZy13cmFwcGVyIHtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYmFja2dyb3VuZC1jb2xvciwgbW9kYWwtb3ZlcmxheS1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICB9XG5cbiAgICAuYWctb3ZlcmxheS1sb2FkaW5nLWNlbnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNhcmQoKTtcbiAgICB9XG5cbiAgICAvLyBpbiBhdXRvLWhlaWdodCBtb2RlIHdpdGggbm8gcm93cywgYWRkIHBhZGRpbmcgdG8gcHJldmVudCBncmlkIGJlaW5nIHRvbyBzbWFsbFxuICAgIC5hZy1vdmVybGF5LW5vLXJvd3Mtd3JhcHBlci5hZy1sYXlvdXQtYXV0by1oZWlnaHQge1xuICAgICAgICBwYWRkaW5nLXRvcDogMzBweDtcbiAgICB9XG5cbiAgICAuYWctbG9hZGluZyB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogYWctcGFyYW0oY2VsbC1ob3Jpem9udGFsLXBhZGRpbmcpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLmFnLWxvYWRpbmctaWNvbiB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IGFnLXBhcmFtKGNlbGwtd2lkZ2V0LXNwYWNpbmcpO1xuICAgIH1cblxuICAgIC5hZy1pY29uLWxvYWRpbmcge1xuICAgICAgICBhbmltYXRpb24tbmFtZTogc3BpbjtcbiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxMDAwbXM7XG4gICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgfVxuXG4gICAgQGtleWZyYW1lcyBzcGluIHtcbiAgICAgICAgZnJvbSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgfVxuICAgICAgICB0byB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFnLWZsb2F0aW5nLXRvcCB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWJvcmRlcihjcml0aWNhbCwgYm90dG9tKTtcbiAgICB9XG4gICAgLmFnLWZsb2F0aW5nLWJvdHRvbSB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWJvcmRlcihjcml0aWNhbCwgdG9wKTtcbiAgICB9XG59XG4iLCJcbkBtaXhpbiBhZy10aGVtZS1iYXNlLXBhcnQtZ3JpZC1ib3JkZXJzIHtcblxuICAgIC5hZy1jZWxsIHtcbiAgICAgICAgQGluY2x1ZGUgYWctdGhlbWUtcnRsKCggYm9yZGVyLXJpZ2h0OiBhZy1wYXJhbShjZWxsLWhvcml6b250YWwtYm9yZGVyKSApKTtcbiAgICAgICAgQGluY2x1ZGUgYWctdGhlbWUtcnRsKCggYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHggKSk7XG4gICAgfVxuXG4gICAgLmFnLWNlbGwuYWctY2VsbC1maXJzdC1yaWdodC1waW5uZWQ6bm90KC5hZy1jZWxsLXJhbmdlLWxlZnQpOm5vdCguYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbCkge1xuICAgICAgICBAaW5jbHVkZSBhZy1ib3JkZXIoY3JpdGljYWwsIGxlZnQpO1xuICAgIH1cblxuICAgIC5hZy1jZWxsLmFnLWNlbGwtbGFzdC1sZWZ0LXBpbm5lZDpub3QoLmFnLWNlbGwtcmFuZ2UtcmlnaHQpOm5vdCguYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbCkge1xuICAgICAgICBAaW5jbHVkZSBhZy1ib3JkZXIoY3JpdGljYWwsIHJpZ2h0KTtcbiAgICB9XG5cbiAgICAuYWctcm93LXNlbGVjdGVkIHtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYmFja2dyb3VuZC1jb2xvciwgc2VsZWN0ZWQtcm93LWJhY2tncm91bmQtY29sb3IpO1xuICAgIH1cblxuICAgIC8vIHdlIGRvIG5vdCB3YW50IHRvIGNvbG9yIHRoZSByYW5nZSBjb2xvciB3aGVuIHRoZSBjZWxsIGlzIGFsc28gZm9jdXNlZFxuICAgIC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkOm5vdCguYWctY2VsbC1mb2N1cyksXG4gICAgLmFnLWJvZHktdmlld3BvcnQ6bm90KC5hZy1oYXMtZm9jdXMpIC5hZy1jZWxsLXJhbmdlLXNpbmdsZS1jZWxsOm5vdCguYWctY2VsbC1pbmxpbmUtZWRpdGluZykge1xuICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShiYWNrZ3JvdW5kLWNvbG9yLCByYW5nZS1zZWxlY3Rpb24tYmFja2dyb3VuZC1jb2xvcik7XG5cbiAgICAgICAgJi5hZy1jZWxsLXJhbmdlLWNoYXJ0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJhY2tncm91bmQtY29sb3IsIHJhbmdlLXNlbGVjdGlvbi1jaGFydC1iYWNrZ3JvdW5kLWNvbG9yLCB0cnVlKTtcblxuICAgICAgICAgICAgJi5hZy1jZWxsLXJhbmdlLWNoYXJ0LWNhdGVnb3J5IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShiYWNrZ3JvdW5kLWNvbG9yLCByYW5nZS1zZWxlY3Rpb24tY2hhcnQtY2F0ZWdvcnktYmFja2dyb3VuZC1jb2xvciwgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWctY2VsbC1yYW5nZS1zZWxlY3RlZC0xOm5vdCguYWctY2VsbC1mb2N1cyksXG4gICAgLmFnLXJvb3Q6bm90KC5hZy1jb250ZXh0LW1lbnUtb3BlbikgLmFnLWJvZHktdmlld3BvcnQ6bm90KC5hZy1oYXMtZm9jdXMpIC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkLTE6bm90KC5hZy1jZWxsLWlubGluZS1lZGl0aW5nKSB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJhY2tncm91bmQtY29sb3IsIHJhbmdlLXNlbGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yLTEpO1xuICAgIH1cblxuICAgIC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkLTI6bm90KC5hZy1jZWxsLWZvY3VzKSxcbiAgICAuYWctYm9keS12aWV3cG9ydDpub3QoLmFnLWhhcy1mb2N1cykgLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQtMiB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJhY2tncm91bmQtY29sb3IsIHJhbmdlLXNlbGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yLTIpO1xuICAgIH1cblxuICAgIC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkLTM6bm90KC5hZy1jZWxsLWZvY3VzKSxcbiAgICAuYWctYm9keS12aWV3cG9ydDpub3QoLmFnLWhhcy1mb2N1cykgLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQtMyB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJhY2tncm91bmQtY29sb3IsIHJhbmdlLXNlbGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yLTMpO1xuICAgIH1cblxuICAgIC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkLTQ6bm90KC5hZy1jZWxsLWZvY3VzKSxcbiAgICAuYWctYm9keS12aWV3cG9ydDpub3QoLmFnLWhhcy1mb2N1cykgLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQtNCB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJhY2tncm91bmQtY29sb3IsIHJhbmdlLXNlbGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yLTQpO1xuICAgIH1cblxuICAgIC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQ6bm90KC5hZy1jZWxsLXJhbmdlLXNpbmdsZS1jZWxsKSB7XG4gICAgICAgICYuYWctY2VsbC1yYW5nZS10b3Age1xuICAgICAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYm9yZGVyLXRvcC1jb2xvciwgcmFuZ2Utc2VsZWN0aW9uLWJvcmRlci1jb2xvcik7XG4gICAgICAgIH1cbiAgICAgICAgJi5hZy1jZWxsLXJhbmdlLXJpZ2h0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJvcmRlci1yaWdodC1jb2xvciwgcmFuZ2Utc2VsZWN0aW9uLWJvcmRlci1jb2xvcik7XG4gICAgICAgIH1cbiAgICAgICAgJi5hZy1jZWxsLXJhbmdlLWJvdHRvbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShib3JkZXItYm90dG9tLWNvbG9yLCByYW5nZS1zZWxlY3Rpb24tYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuICAgICAgICAmLmFnLWNlbGwtcmFuZ2UtbGVmdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShib3JkZXItbGVmdC1jb2xvciwgcmFuZ2Utc2VsZWN0aW9uLWJvcmRlci1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBsdHIvcnRsIG5lZWRlZCBzbyB0aGF0IHRoaXMgb3ZlcnJpZGVzIHRoZSBydGwvbHRyIHN0eWxlcyBvZiBwaW5uZWQgY29sdW1uIGJvcmRlcnNcbiAgICAuYWctbHRyLCAuYWctcnRsIHtcbiAgICAgICAgLmFnLWhhcy1mb2N1cyAuYWctY2VsbC1mb2N1czpub3QoLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQpLFxuICAgICAgICAuYWctY29udGV4dC1tZW51LW9wZW4gLmFnLWNlbGwtZm9jdXM6bm90KC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkKSxcbiAgICAgICAgLmFnLWhhcy1mb2N1cyAuYWctZnVsbC13aWR0aC1yb3cuYWctcm93LWZvY3VzIC5hZy1jZWxsLXdyYXBwZXIuYWctcm93LWdyb3VwLFxuICAgICAgICAuYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbCxcbiAgICAgICAgLmFnLWNlbGwtcmFuZ2Utc2luZ2xlLWNlbGwuYWctY2VsbC1yYW5nZS1oYW5kbGUge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG4gICAgICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShib3JkZXItY29sb3IsIHJhbmdlLXNlbGVjdGlvbi1ib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgb3V0bGluZTogaW5pdGlhbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hZy1jZWxsLmFnLXNlbGVjdGlvbi1maWxsLXRvcCxcbiAgICAuYWctY2VsbC5hZy1zZWxlY3Rpb24tZmlsbC10b3AuYWctY2VsbC1yYW5nZS1zZWxlY3RlZCB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBkYXNoZWQ7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJvcmRlci10b3AtY29sb3IsIHJhbmdlLXNlbGVjdGlvbi1ib3JkZXItY29sb3IpO1xuICAgIH1cblxuICAgIC5hZy1jZWxsLmFnLXNlbGVjdGlvbi1maWxsLXJpZ2h0LFxuICAgIC5hZy1jZWxsLmFnLXNlbGVjdGlvbi1maWxsLXJpZ2h0LmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQge1xuICAgICAgICBAaW5jbHVkZSBhZy10aGVtZS1ydGwoKGJvcmRlci1yaWdodDogMXB4IGRhc2hlZCksICRjb2xvci1wYXJhbTogcmFuZ2Utc2VsZWN0aW9uLWJvcmRlci1jb2xvcik7XG4gICAgfVxuXG4gICAgLmFnLWNlbGwuYWctc2VsZWN0aW9uLWZpbGwtYm90dG9tLFxuICAgIC5hZy1jZWxsLmFnLXNlbGVjdGlvbi1maWxsLWJvdHRvbS5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZDtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYm9yZGVyLWJvdHRvbS1jb2xvciwgcmFuZ2Utc2VsZWN0aW9uLWJvcmRlci1jb2xvcik7XG4gICAgfVxuXG4gICAgLmFnLWNlbGwuYWctc2VsZWN0aW9uLWZpbGwtbGVmdCxcbiAgICAuYWctY2VsbC5hZy1zZWxlY3Rpb24tZmlsbC1sZWZ0LmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQge1xuICAgICAgICBAaW5jbHVkZSBhZy10aGVtZS1ydGwoKGJvcmRlci1sZWZ0OiAxcHggZGFzaGVkKSwgJGNvbG9yLXBhcmFtOiByYW5nZS1zZWxlY3Rpb24tYm9yZGVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAlYWctc2VsZWN0aW9uLWhhbmRsZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDZweDtcbiAgICAgICAgaGVpZ2h0OiA2cHg7XG4gICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgQGluY2x1ZGUgYWctdGhlbWUtcnRsKChyaWdodDogLTFweCkpO1xuICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShiYWNrZ3JvdW5kLWNvbG9yLCByYW5nZS1zZWxlY3Rpb24tYm9yZGVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAuYWctZmlsbC1oYW5kbGUge1xuICAgICAgICBAZXh0ZW5kICVhZy1zZWxlY3Rpb24taGFuZGxlO1xuICAgICAgICBjdXJzb3I6IGNlbGw7XG4gICAgfVxuXG4gICAgLmFnLXJhbmdlLWhhbmRsZSB7XG4gICAgICAgIEBleHRlbmQgJWFnLXNlbGVjdGlvbi1oYW5kbGU7XG4gICAgICAgIGN1cnNvcjogbndzZS1yZXNpemU7XG4gICAgfVxuXG4gICAgLmFnLWNlbGwtaW5saW5lLWVkaXRpbmcge1xuICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShib3JkZXItY29sb3IsIGlucHV0LWZvY3VzLWJvcmRlci1jb2xvciwgJGltcG9ydGFudDogdHJ1ZSk7XG4gICAgfVxufVxuIiwiQG1peGluIGFnLXRoZW1lLWJhc2UtcGFydC1tZW51IHtcblxuICAgIC5hZy1tZW51IHtcbiAgICAgICAgQGluY2x1ZGUgYWctY2FyZCgpO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC5hZy1tZW51LWxpc3Qge1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIHBhZGRpbmc6IGFnLXBhcmFtKGdyaWQtc2l6ZSkgMDtcbiAgICB9XG5cbiAgICAuYWctbWVudS1zZXBhcmF0b3Ige1xuICAgICAgICBoZWlnaHQ6IChhZy1wYXJhbShncmlkLXNpemUpICogMikgKyAxO1xuICAgIH1cblxuICAgIC5hZy1tZW51LXNlcGFyYXRvci1wYXJ0OjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBAaW5jbHVkZSBhZy1ib3JkZXIoY3JpdGljYWwsIHRvcCk7XG4gICAgfVxuXG4gICAgLmFnLW1lbnUtb3B0aW9uLWFjdGl2ZSwgLmFnLWNvbXBhY3QtbWVudS1vcHRpb24tYWN0aXZlIHtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYmFja2dyb3VuZC1jb2xvciwgcm93LWhvdmVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAuYWctbWVudS1vcHRpb24tcGFydCwgLmFnLWNvbXBhY3QtbWVudS1vcHRpb24tcGFydCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBhZy1wYXJhbShpY29uLXNpemUpO1xuICAgICAgICBwYWRkaW5nOiAoYWctcGFyYW0oZ3JpZC1zaXplKSArIDIpIDA7XG4gICAgfVxuXG4gICAgLmFnLW1lbnUtb3B0aW9uLWRpc2FibGVkLCAuYWctY29tcGFjdC1tZW51LW9wdGlvbi1kaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG5cbiAgICAuYWctbWVudS1vcHRpb24taWNvbiwgLmFnLWNvbXBhY3QtbWVudS1vcHRpb24taWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGFnLXRoZW1lLXJ0bCgocGFkZGluZy1sZWZ0OiBhZy1wYXJhbShncmlkLXNpemUpICogMikpO1xuICAgICAgICB3aWR0aDogYWctcGFyYW0oaWNvbi1zaXplKTtcbiAgICB9XG5cbiAgICAuYWctbWVudS1vcHRpb24tdGV4dCwgLmFnLWNvbXBhY3QtbWVudS1vcHRpb24tdGV4dCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogYWctcGFyYW0oZ3JpZC1zaXplKSAqIDI7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IGFnLXBhcmFtKGdyaWQtc2l6ZSkgKiAyO1xuICAgIH1cblxuICAgIC5hZy1tZW51LW9wdGlvbi1zaG9ydGN1dCwgLmFnLWNvbXBhY3QtbWVudS1vcHRpb24tc2hvcnRjdXQge1xuICAgICAgICBAaW5jbHVkZSBhZy10aGVtZS1ydGwoKHBhZGRpbmctcmlnaHQ6IGFnLXBhcmFtKGdyaWQtc2l6ZSkpKTtcbiAgICB9XG5cbiAgICAuYWctbWVudS1vcHRpb24tcG9wdXAtcG9pbnRlciwgLmFnLWNvbXBhY3QtbWVudS1vcHRpb24tcG9wdXAtcG9pbnRlciB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IGFnLXBhcmFtKGdyaWQtc2l6ZSk7XG4gICAgfVxuXG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIENvbHVtbiBGaWx0ZXJcbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLmFnLXRhYnMtaGVhZGVyIHtcbiAgICAgICAgbWluLXdpZHRoOiAyMjBweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgLmFnLXRhYiB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IGFnLXBhcmFtKHNlbGVjdGVkLXRhYi11bmRlcmxpbmUtd2lkdGgpIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4OiBub25lO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgIEBpZiBhZy1wYXJhbShmdWxsLXdpZHRoLXRhYnMpIHtcbiAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmIGFnLXBhcmFtKHNlbGVjdGVkLXRhYi11bmRlcmxpbmUtdHJhbnNpdGlvbi1zcGVlZCkge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWJvdHRvbSBhZy1wYXJhbShzZWxlY3RlZC10YWItdW5kZXJsaW5lLXRyYW5zaXRpb24tc3BlZWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYWcta2V5Ym9hcmQtZm9jdXMoKGFnLXRhYiksIDRweCk7XG5cbiAgICAuYWctdGFiLXNlbGVjdGVkIHtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYm9yZGVyLWJvdHRvbS1jb2xvciwgc2VsZWN0ZWQtdGFiLXVuZGVybGluZS1jb2xvcik7XG4gICAgfVxuXG4gICAgLmFnLW1lbnUtaGVhZGVyIHtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoY29sb3IsIHNlY29uZGFyeS1mb3JlZ3JvdW5kLWNvbG9yKTtcbiAgICB9XG5cbiAgICAuYWctZmlsdGVyLXNlcGFyYXRvciB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWJvcmRlcihjcml0aWNhbCwgdG9wKTtcbiAgICB9XG5cbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gVmFsdWUgU2V0IEZpbHRlclxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIC5hZy1maWx0ZXItY29uZGl0aW9uLW9wZXJhdG9yIHtcbiAgICAgICAgaGVpZ2h0OiAxN3B4O1xuICAgIH1cblxuICAgIC5hZy1maWx0ZXItY29uZGl0aW9uLW9wZXJhdG9yLW9yIHtcbiAgICAgICAgQGluY2x1ZGUgYWctdGhlbWUtcnRsKChtYXJnaW4tbGVmdDogYWctcGFyYW0oZ3JpZC1zaXplKSAqIDIpKTtcbiAgICB9XG5cbiAgICAuYWctc2V0LWZpbHRlci1zZWxlY3QtYWxsIHtcbiAgICAgICAgcGFkZGluZy10b3A6IGFnLXBhcmFtKHdpZGdldC1jb250YWluZXItdmVydGljYWwtcGFkZGluZyk7XG4gICAgfVxuXG4gICAgLmFnLXNldC1maWx0ZXItbGlzdCwgLmFnLWZpbHRlci1uby1tYXRjaGVzIHtcbiAgICAgICAgaGVpZ2h0OiBhZy1wYXJhbShsaXN0LWl0ZW0taGVpZ2h0KSAqIDY7XG4gICAgfVxuXG4gICAgLmFnLXNldC1maWx0ZXItZmlsdGVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogYWctcGFyYW0od2lkZ2V0LWNvbnRhaW5lci12ZXJ0aWNhbC1wYWRkaW5nKTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGFnLXBhcmFtKHdpZGdldC1jb250YWluZXItaG9yaXpvbnRhbC1wYWRkaW5nKTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhZy1wYXJhbSh3aWRnZXQtY29udGFpbmVyLWhvcml6b250YWwtcGFkZGluZyk7XG4gICAgfVxuXG4gICAgLmFnLWZpbHRlci10byB7XG4gICAgICAgIG1hcmdpbi10b3A6IGFnLXBhcmFtKHdpZGdldC12ZXJ0aWNhbC1zcGFjaW5nKTtcbiAgICB9XG5cbiAgICAuYWctbWluaS1maWx0ZXIge1xuICAgICAgICBtYXJnaW46IGFnLXBhcmFtKHdpZGdldC1jb250YWluZXItdmVydGljYWwtcGFkZGluZykgYWctcGFyYW0od2lkZ2V0LWNvbnRhaW5lci1ob3Jpem9udGFsLXBhZGRpbmcpO1xuICAgIH1cblxuICAgIC5hZy1zZXQtZmlsdGVyLWl0ZW0ge1xuICAgICAgICBtYXJnaW46IDBweCBhZy1wYXJhbSh3aWRnZXQtY29udGFpbmVyLWhvcml6b250YWwtcGFkZGluZyk7XG4gICAgfVxuXG4gICAgLmFnLXNldC1maWx0ZXItaXRlbS12YWx1ZSB7XG4gICAgICAgIEBpbmNsdWRlIGFnLXRoZW1lLXJ0bCgobWFyZ2luLWxlZnQ6IGFnLXBhcmFtKHdpZGdldC1jb250YWluZXItaG9yaXpvbnRhbC1wYWRkaW5nKSkpO1xuICAgIH1cblxuICAgIC5hZy1maWx0ZXItYXBwbHktcGFuZWwge1xuICAgICAgICBwYWRkaW5nOiBhZy1wYXJhbSh3aWRnZXQtY29udGFpbmVyLXZlcnRpY2FsLXBhZGRpbmcpIGFnLXBhcmFtKHdpZGdldC1jb250YWluZXItaG9yaXpvbnRhbC1wYWRkaW5nKTtcbiAgICAgICAgQGluY2x1ZGUgYWctYm9yZGVyKHNlY29uZGFyeSwgdG9wKTtcbiAgICB9XG5cbiAgICAuYWctZmlsdGVyLWFwcGx5LXBhbmVsLWJ1dHRvbiB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAgIEBpbmNsdWRlIGFnLXRoZW1lLXJ0bCgobWFyZ2luLWxlZnQ6IGFnLXBhcmFtKGdyaWQtc2l6ZSkgKiAyKSk7XG4gICAgfVxuXG4gICAgLmFnLXNpbXBsZS1maWx0ZXItYm9keS13cmFwcGVyIHtcbiAgICAgICAgQGluY2x1ZGUgYWctdmVydGljYWwtd2lkZ2V0LWNvbnRhaW5lcigpO1xuICAgIH1cblxuICAgIC5hZy1maWx0ZXItbm8tbWF0Y2hlcyB7XG4gICAgICAgIHBhZGRpbmc6IGFnLXBhcmFtKHdpZGdldC1jb250YWluZXItdmVydGljYWwtcGFkZGluZykgYWctcGFyYW0od2lkZ2V0LWNvbnRhaW5lci1ob3Jpem9udGFsLXBhZGRpbmcpO1xuICAgIH1cblxuICAgIC5hZy1tdWx0aS1maWx0ZXItbWVudS1pdGVtIHtcbiAgICAgICAgbWFyZ2luOiBhZy1wYXJhbShncmlkLXNpemUpIDA7XG4gICAgfVxuXG4gICAgLmFnLW11bHRpLWZpbHRlci1ncm91cC10aXRsZS1iYXIge1xuICAgICAgICBwYWRkaW5nOiBhZy1wYXJhbShncmlkLXNpemUpICogMiBhZy1wYXJhbShncmlkLXNpemUpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBhZy1rZXlib2FyZC1mb2N1cygoYWctbXVsdGktZmlsdGVyLWdyb3VwLXRpdGxlLWJhciksIDRweCk7XG59XG4iLCJcbkBtaXhpbiBhZy10aGVtZS1iYXNlLXBhcnQtc2lkZWJhciB7XG4gXG4gICAgLmFnLXNpZGUtYmFyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIC5hZy10b29sLXBhbmVsLXdyYXBwZXIge1xuICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShiYWNrZ3JvdW5kLWNvbG9yLCBjb250cm9sLXBhbmVsLWJhY2tncm91bmQtY29sb3IpO1xuICAgIH1cblxuICAgIC5hZy1zaWRlLWJ1dHRvbnMge1xuICAgICAgICBwYWRkaW5nLXRvcDogYWctcGFyYW0oZ3JpZC1zaXplKSAqIDQ7XG4gICAgICAgIHdpZHRoOiBhZy1wYXJhbShpY29uLXNpemUpICsgNDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShjb2xvciwgZm9yZWdyb3VuZC1jb2xvcik7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgYnV0dG9uLmFnLXNpZGUtYnV0dG9uLWJ1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWluaGVyaXQtdGV4dC1zdHlsZXMoKTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHBhZGRpbmc6IGFnLXBhcmFtKGdyaWQtc2l6ZSkgKiAyIDAgYWctcGFyYW0oZ3JpZC1zaXplKSAqIDIgMDtcbiAgICAgICAgQGlmIGFnLXBhcmFtKGJvcmRlcnMtc2lkZS1idXR0b24pIHtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbWluLWhlaWdodDogYWctcGFyYW0oZ3JpZC1zaXplKSAqIDE4O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBAaW5jbHVkZSBhZy1ib3JkZXIoc2lkZS1idXR0b24sICh0b3AsIGJvdHRvbSkpO1xuICAgICAgICAkYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICRib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBhZy1rZXlib2FyZC1mb2N1cygoYWctc2lkZS1idXR0b24tYnV0dG9uKSwgNHB4KTtcblxuICAgIC5hZy1zZWxlY3RlZCAuYWctc2lkZS1idXR0b24tYnV0dG9uIHtcbiAgICAgICAgQGlmIGFnLXBhcmFtKGJvcmRlcnMtc2lkZS1idXR0b24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJhY2tncm91bmQtY29sb3IsIGNvbnRyb2wtcGFuZWwtYmFja2dyb3VuZC1jb2xvcik7XG4gICAgICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShib3JkZXItdG9wLWNvbG9yLCBib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYm9yZGVyLWJvdHRvbS1jb2xvciwgYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hZy1zaWRlLWJ1dHRvbi1pY29uLXdyYXBwZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gICAgfVxuXG4gICAgLy8gc2lkZWJhciB2aXN1YWxseSBvbiBsZWZ0XG4gICAgLmFnLWx0ciAuYWctc2lkZS1iYXItbGVmdCxcbiAgICAuYWctcnRsIC5hZy1zaWRlLWJhci1yaWdodCB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWJvcmRlcihwcmltYXJ5LCByaWdodCk7XG4gICAgICAgIC5hZy10b29sLXBhbmVsLXdyYXBwZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgYWctYm9yZGVyKHByaW1hcnksIGxlZnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmFnLXNpZGUtYnV0dG9uLWJ1dHRvbiB7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IGFnLXBhcmFtKHNlbGVjdGVkLXRhYi11bmRlcmxpbmUtd2lkdGgpIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgQGlmIGFnLXBhcmFtKHNlbGVjdGVkLXRhYi11bmRlcmxpbmUtdHJhbnNpdGlvbi1zcGVlZCkge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1yaWdodCBhZy1wYXJhbShzZWxlY3RlZC10YWItdW5kZXJsaW5lLXRyYW5zaXRpb24tc3BlZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICBAaWYgYWctcGFyYW0oYm9yZGVycy1zaWRlLWJ1dHRvbikge1xuICAgICAgICAgICAgICAgIC8vIHRoaXMgZW5sYXJnZXMgdGhlIHRhYiBidXR0b24gdG8gY292ZXIgdGhlIHRvb2wgcGFuZWwgYm9yZGVyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMXB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDFweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5hZy1zZWxlY3RlZCAuYWctc2lkZS1idXR0b24tYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJvcmRlci1yaWdodC1jb2xvciwgc2VsZWN0ZWQtdGFiLXVuZGVybGluZS1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBzaWRlYmFyIHZpc3VhbGx5IG9uIHJpZ2h0XG4gICAgLmFnLXJ0bCAuYWctc2lkZS1iYXItbGVmdCxcbiAgICAuYWctbHRyIC5hZy1zaWRlLWJhci1yaWdodCB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWJvcmRlcihwcmltYXJ5LCBsZWZ0KTtcbiAgICAgICAgXG4gICAgICAgIC5hZy10b29sLXBhbmVsLXdyYXBwZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgYWctYm9yZGVyKHByaW1hcnksIHJpZ2h0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hZy1zaWRlLWJ1dHRvbi1idXR0b24ge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IGFnLXBhcmFtKHNlbGVjdGVkLXRhYi11bmRlcmxpbmUtd2lkdGgpIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgQGlmIGFnLXBhcmFtKHNlbGVjdGVkLXRhYi11bmRlcmxpbmUtdHJhbnNpdGlvbi1zcGVlZCkge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1sZWZ0IGFnLXBhcmFtKHNlbGVjdGVkLXRhYi11bmRlcmxpbmUtdHJhbnNpdGlvbi1zcGVlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIEBpZiBhZy1wYXJhbShib3JkZXJzLXNpZGUtYnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgLy8gdGhpcyBlbmxhcmdlcyB0aGUgdGFiIGJ1dHRvbiB0byBjb3ZlciB0aGUgdG9vbCBwYW5lbCBib3JkZXJcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTFweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDFweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5hZy1zZWxlY3RlZCAuYWctc2lkZS1idXR0b24tYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJvcmRlci1sZWZ0LWNvbG9yLCBzZWxlY3RlZC10YWItdW5kZXJsaW5lLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbn1cbiIsIkBtaXhpbiBhZy10aGVtZS1iYXNlLXBhcnQtZmlsdGVyLXRvb2wtcGFuZWwge1xuICAgIC5hZy1maWx0ZXItdG9vbHBhbmVsLWhlYWRlciB7XG4gICAgICAgIGhlaWdodDogYWctcGFyYW0oZ3JpZC1zaXplKSAqIDY7XG4gICAgfVxuXG4gICAgLmFnLWZpbHRlci10b29scGFuZWwtaGVhZGVyLFxuICAgIC5hZy1maWx0ZXItdG9vbHBhbmVsLXNlYXJjaCB7XG4gICAgICAgIEBpbmNsdWRlIGFnLXRoZW1lLXJ0bCgoIHBhZGRpbmctbGVmdDogYWctcGFyYW0oZ3JpZC1zaXplKSApKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBhZy1rZXlib2FyZC1mb2N1cygoYWctZmlsdGVyLXRvb2xwYW5lbC1oZWFkZXIpLCA0cHgpO1xuXG4gICAgLmFnLWZpbHRlci10b29scGFuZWwtZ3JvdXAuYWctaGFzLWZpbHRlciA+IC5hZy1ncm91cC10aXRsZS1iYXIgLmFnLWdyb3VwLXRpdGxlOjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWljb24oKTtcbiAgICAgICAgQGluY2x1ZGUgYWctdGhlbWUtcnRsKCggcGFkZGluZy1sZWZ0OiBhZy1wYXJhbShncmlkLXNpemUpICkpO1xuICAgICAgICBjb250ZW50OiBhZy1pY29uLWNoYXIoZmlsdGVyKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cblxuICAgIC5hZy1maWx0ZXItdG9vbHBhbmVsLWdyb3VwLWxldmVsLTAtaGVhZGVyIHtcbiAgICAgICAgaGVpZ2h0OiBhZy1wYXJhbShncmlkLXNpemUpICogODtcbiAgICB9XG5cbiAgICAuYWctZmlsdGVyLXRvb2xwYW5lbC1ncm91cC1pdGVtIHtcbiAgICAgICAgbWFyZ2luLXRvcDogYWctcGFyYW0oZ3JpZC1zaXplKSAvIDI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IGFnLXBhcmFtKGdyaWQtc2l6ZSkgLyAyO1xuICAgIH1cblxuICAgIC5hZy1maWx0ZXItdG9vbHBhbmVsLXNlYXJjaCB7XG4gICAgICAgIGhlaWdodDogYWctcGFyYW0oaGVhZGVyLWhlaWdodCk7XG4gICAgfVxuXG4gICAgLmFnLWZpbHRlci10b29scGFuZWwtc2VhcmNoLWlucHV0IHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBoZWlnaHQ6IGFnLXBhcmFtKGdyaWQtc2l6ZSkgKiA0O1xuICAgICAgICBAaW5jbHVkZSBhZy10aGVtZS1ydGwoKCBtYXJnaW4tcmlnaHQ6IGFnLXBhcmFtKGdyaWQtc2l6ZSkgKSk7XG4gICAgfVxuXG4gICAgLmFnLWZpbHRlci10b29scGFuZWwtZ3JvdXAtbGV2ZWwtMCB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWJvcmRlcihzZWNvbmRhcnksIHRvcCk7XG4gICAgfVxuXG4gICAgLmFnLWZpbHRlci10b29scGFuZWwtZXhwYW5kLFxuICAgIC5hZy1maWx0ZXItdG9vbHBhbmVsLWdyb3VwLXRpdGxlLWJhci1pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgYWctdGhlbWUtcnRsKCggbWFyZ2luLXJpZ2h0OiBhZy1wYXJhbShncmlkLXNpemUpICkpO1xuICAgIH1cblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMTAge1xuICAgICAgICAuYWctZmlsdGVyLXRvb2xwYW5lbC1ncm91cC1sZXZlbC0jeyRpfSB7XG4gICAgICAgICAgICAuYWctZmlsdGVyLXRvb2xwYW5lbC1ncm91cC1sZXZlbC0jeyRpfS1oZWFkZXIge1xuICAgICAgICAgICAgICAgICYuYWctZmlsdGVyLXRvb2xwYW5lbC1ncm91cC10aXRsZS1iYXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuYWctZmlsdGVyLXRvb2xwYW5lbC1ncm91cC1sZXZlbC0jeyRpICsgMX0taGVhZGVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBhZy10aGVtZS1ydGwoKFxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IGFnLXBhcmFtKGZpbHRlci10b29sLXBhbmVsLWdyb3VwLWluZGVudCkgKiAkaSArIGFnLXBhcmFtKGdyaWQtc2l6ZSlcbiAgICAgICAgICAgICAgICApKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hZy1maWx0ZXItdG9vbHBhbmVsLWluc3RhbmNlLWhlYWRlci5hZy1maWx0ZXItdG9vbHBhbmVsLWdyb3VwLWxldmVsLTEtaGVhZGVyIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiBhZy1wYXJhbShncmlkLXNpemUpO1xuICAgIH1cblxuICAgIC5hZy1maWx0ZXItdG9vbHBhbmVsLWluc3RhbmNlLWZpbHRlciB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWJvcmRlcihwcmltYXJ5LCAodG9wLCBib3R0b20pKTtcbiAgICAgICAgbWFyZ2luLXRvcDogYWctcGFyYW0oZ3JpZC1zaXplKTtcbiAgICB9XG5cbiAgICAuYWctZmlsdGVyLXRvb2xwYW5lbC1pbnN0YW5jZS1oZWFkZXItaWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGFnLXRoZW1lLXJ0bCgobWFyZ2luLWxlZnQ6IGFnLXBhcmFtKGdyaWQtc2l6ZSkpKTtcbiAgICB9XG59XG4iLCJcbkBtaXhpbiBhZy10aGVtZS1iYXNlLXBhcnQtY29sdW1ucy10b29sLXBhbmVsIHtcbiAgICBcbiAgICAuYWctcGl2b3QtbW9kZS1wYW5lbCB7XG4gICAgICAgIGhlaWdodDogYWctcGFyYW0oaGVhZGVyLWhlaWdodCk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgLmFnLXBpdm90LW1vZGUtc2VsZWN0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICBAaW5jbHVkZSBhZy10aGVtZS1ydGwoKCBtYXJnaW4tbGVmdDogYWctcGFyYW0od2lkZ2V0LWNvbnRhaW5lci1ob3Jpem9udGFsLXBhZGRpbmcpICkpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGFnLWtleWJvYXJkLWZvY3VzKChhZy1jb2x1bW4tc2VsZWN0LWhlYWRlciksIDRweCk7XG4gICAgXG4gICAgLmFnLWNvbHVtbi1zZWxlY3QtaGVhZGVyIHtcbiAgICAgICAgaGVpZ2h0OiBhZy1wYXJhbShoZWFkZXItaGVpZ2h0KTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMCBhZy1wYXJhbSh3aWRnZXQtY29udGFpbmVyLWhvcml6b250YWwtcGFkZGluZyk7XG5cbiAgICAgICAgQGluY2x1ZGUgYWctYm9yZGVyKHNlY29uZGFyeSwgYm90dG9tKTtcbiAgICB9XG4gICAgXG4gICAgLmFnLWNvbHVtbi1wYW5lbC1jb2x1bW4tc2VsZWN0IHtcbiAgICAgICAgQGluY2x1ZGUgYWctYm9yZGVyKHNlY29uZGFyeSwgKGJvdHRvbSwgdG9wKSk7XG4gICAgfVxuXG4gICAgLmFnLWNvbHVtbi1ncm91cC1pY29ucyxcbiAgICAuYWctY29sdW1uLXNlbGVjdC1oZWFkZXItaWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGNvbG9yLCBzZWNvbmRhcnktZm9yZWdyb3VuZC1jb2xvcik7XG4gICAgfVxufSIsIkBtaXhpbiBhZy10aGVtZS1iYXNlLXBhcnQtaGVhZGVyIHtcblxuICAgIC5hZy1oZWFkZXIge1xuICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShiYWNrZ3JvdW5kLWNvbG9yLCBoZWFkZXItYmFja2dyb3VuZC1jb2xvcik7XG4gICAgICAgIEBpbmNsdWRlIGFnLWJvcmRlcihjcml0aWNhbCwgYm90dG9tKTtcbiAgICB9XG5cbiAgICAuYWctaGVhZGVyLXJvdyB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGNvbG9yLCBoZWFkZXItZm9yZWdyb3VuZC1jb2xvcik7XG4gICAgICAgIGhlaWdodDogYWctcGFyYW0oaGVhZGVyLWhlaWdodCk7XG4gICAgfVxuXG4gICAgLmFnLXBpbm5lZC1yaWdodC1oZWFkZXIge1xuICAgICAgICBAaW5jbHVkZSBhZy1ib3JkZXIoY3JpdGljYWwsIGxlZnQpO1xuICAgIH1cblxuICAgIC5hZy1waW5uZWQtbGVmdC1oZWFkZXIge1xuICAgICAgICBAaW5jbHVkZSBhZy1ib3JkZXIoY3JpdGljYWwsIHJpZ2h0KTtcbiAgICB9XG5cbiAgICAuYWctaGVhZGVyLWNlbGw6bm90KC5hZy1yaWdodC1hbGlnbmVkLWhlYWRlcikgLmFnLWhlYWRlci1sYWJlbC1pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgYWctdGhlbWUtcnRsKCggbWFyZ2luLWxlZnQ6IGFnLXBhcmFtKGdyaWQtc2l6ZSkgKSk7XG4gICAgfVxuXG4gICAgLmFnLWhlYWRlci1jZWxsLmFnLXJpZ2h0LWFsaWduZWQtaGVhZGVyIC5hZy1oZWFkZXItbGFiZWwtaWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGFnLXRoZW1lLXJ0bCgoIG1hcmdpbi1yaWdodDogYWctcGFyYW0oZ3JpZC1zaXplKSApKTtcbiAgICB9XG5cbiAgICAuYWctaGVhZGVyLWNlbGwsXG4gICAgLmFnLWhlYWRlci1ncm91cC1jZWxsIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiBhZy1wYXJhbShjZWxsLWhvcml6b250YWwtcGFkZGluZyk7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IGFnLXBhcmFtKGNlbGwtaG9yaXpvbnRhbC1wYWRkaW5nKTtcblxuICAgICAgICAmLmFnLWhlYWRlci1jZWxsLW1vdmluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShiYWNrZ3JvdW5kLWNvbG9yLCBoZWFkZXItY2VsbC1tb3ZpbmctYmFja2dyb3VuZC1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBhZy1rZXlib2FyZC1mb2N1cygoYWctaGVhZGVyLWNlbGwsIGFnLWhlYWRlci1ncm91cC1jZWxsKSwgNHB4KTtcblxuICAgIC5hZy1oZWFkZXItaWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGNvbG9yLCBzZWNvbmRhcnktZm9yZWdyb3VuZC1jb2xvcik7XG4gICAgfVxuXG4gICAgLmFnLWhlYWRlci1leHBhbmQtaWNvbiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgQGluY2x1ZGUgYWctdGhlbWUtcnRsKCggcGFkZGluZy1sZWZ0OiA0cHggKSk7XG4gICAgfVxuXG4gICAgLmFnLWhlYWRlci1yb3c6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAuYWctaGVhZGVyLWNlbGwsXG4gICAgICAgIC5hZy1oZWFkZXItZ3JvdXAtY2VsbC5hZy1oZWFkZXItZ3JvdXAtY2VsbC13aXRoLWdyb3VwIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFnLWJvcmRlcihjcml0aWNhbCwgdG9wKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoaXMgbG9naWMgd2l0aCA6bm90KC5hZy1jb2x1bW4tcmVzaXppbmcpIGlzIHRvIHByZXZlbnQgYSBtb3VzZW92ZXIgZWZmZWN0XG4gICAgLy8gYmVpbmcgYXBwbGllZCB0byB0aGUgYWRqYWNlbnQgY2VsbCBhcyB0aGUgdXNlciByZXNpemVzIGEgY2VsbCwgYmVjYXVzZVxuICAgIC8vIGR1cmluZyBhIHJlc2l6ZSwgdGhlIG1vdXNlIHdpbGwgbW9tZW50YXJpbHkgbW92ZSBvdmVyIHRoZSBuZWlnaGJvdXJpbmcgY2VsbFxuICAgIC5hZy1oZWFkZXItZ3JvdXAtY2VsbDpub3QoLmFnLWNvbHVtbi1yZXNpemluZykgKyAuYWctaGVhZGVyLWdyb3VwLWNlbGwsXG4gICAgLmFnLWhlYWRlci1jZWxsOm5vdCguYWctY29sdW1uLXJlc2l6aW5nKSArIC5hZy1oZWFkZXItY2VsbCxcbiAgICAuYWctaGVhZGVyLWdyb3VwLWNlbGw6Zmlyc3Qtb2YtdHlwZSxcbiAgICAuYWctaGVhZGVyLWNlbGw6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIEBpZiAoYWctcGFyYW0taXMtc2V0KGhlYWRlci1jZWxsLWhvdmVyLWJhY2tncm91bmQtY29sb3IpIGFuZCBhZy1wYXJhbXMtYXJlLWRpZmZlcmVudChoZWFkZXItY2VsbC1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yLCBoZWFkZXItYmFja2dyb3VuZC1jb2xvcikpIHtcbiAgICAgICAgICAgICY6bm90KC5hZy1oZWFkZXItY2VsbC1tb3ZpbmcpOmhvdmVyLFxuICAgICAgICAgICAgJi5hZy1jb2x1bW4tcmVzaXppbmcge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJhY2tncm91bmQtY29sb3IsIGhlYWRlci1jZWxsLWhvdmVyLWJhY2tncm91bmQtY29sb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmIGFnLXBhcmFtKGhlYWRlci1jb2x1bW4tc2VwYXJhdG9yKSB7XG4gICAgICAgIC5hZy1oZWFkZXItY2VsbDo6YWZ0ZXIsXG4gICAgICAgIC5hZy1oZWFkZXItZ3JvdXAtY2VsbDo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiBhZy1wYXJhbShoZWFkZXItY29sdW1uLXNlcGFyYXRvci13aWR0aCk7XG4gICAgICAgICAgICBoZWlnaHQ6IGFnLXBhcmFtKGhlYWRlci1jb2x1bW4tc2VwYXJhdG9yLWhlaWdodCk7XG4gICAgICAgICAgICB0b3A6IGNhbGMoNTAlIC0gI3thZy1wYXJhbShoZWFkZXItY29sdW1uLXNlcGFyYXRvci1oZWlnaHQpIC8gMn0pO1xuICAgICAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYmFja2dyb3VuZC1jb2xvciwgaGVhZGVyLWNvbHVtbi1zZXBhcmF0b3ItY29sb3IpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBhZy10aGVtZS1ydGwoKCByaWdodDogMCApKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiBhZy1wYXJhbShoZWFkZXItY29sdW1uLXJlc2l6ZS1oYW5kbGUpIHtcbiAgICAgICAgLmFnLWhlYWRlci1jZWxsLXJlc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hZy1oZWFkZXItY2VsbC1yZXNpemU6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7YWctcGFyYW0oaGVhZGVyLWNvbHVtbi1yZXNpemUtaGFuZGxlLXdpZHRoKSAvIDJ9KTtcbiAgICAgICAgICAgIHdpZHRoOiBhZy1wYXJhbShoZWFkZXItY29sdW1uLXJlc2l6ZS1oYW5kbGUtd2lkdGgpO1xuICAgICAgICAgICAgaGVpZ2h0OiBhZy1wYXJhbShoZWFkZXItY29sdW1uLXJlc2l6ZS1oYW5kbGUtaGVpZ2h0KTtcbiAgICAgICAgICAgIHRvcDogY2FsYyg1MCUgLSAje2FnLXBhcmFtKGhlYWRlci1jb2x1bW4tcmVzaXplLWhhbmRsZS1oZWlnaHQpIC8gMn0pO1xuICAgICAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYmFja2dyb3VuZC1jb2xvciwgaGVhZGVyLWNvbHVtbi1yZXNpemUtaGFuZGxlLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hZy1waW5uZWQtcmlnaHQtaGVhZGVyIC5hZy1oZWFkZXItY2VsbC1yZXNpemU6OmFmdGVyIHtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3thZy1wYXJhbShoZWFkZXItY29sdW1uLXJlc2l6ZS1oYW5kbGUtd2lkdGgpfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWctaGVhZGVyLXNlbGVjdC1hbGwge1xuICAgICAgICBAaW5jbHVkZSBhZy10aGVtZS1ydGwoKCBtYXJnaW4tcmlnaHQ6IGFnLXBhcmFtKGNlbGwtaG9yaXpvbnRhbC1wYWRkaW5nKSApKTtcbiAgICB9XG5cbiAgICAuYWctZmxvYXRpbmctZmlsdGVyLWJ1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIGFnLXRoZW1lLXJ0bCgoIG1hcmdpbi1sZWZ0OiBhZy1wYXJhbShncmlkLXNpemUpICogMyApKTtcbiAgICB9XG5cbiAgICAuYWctZmxvYXRpbmctZmlsdGVyLWJ1dHRvbi1idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBhZy1pbmhlcml0LXRleHQtc3R5bGVzKCk7XG4gICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGhlaWdodDogYWctcGFyYW0oaWNvbi1zaXplKTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgd2lkdGg6IGFnLXBhcmFtKGljb24tc2l6ZSk7XG4gICAgfVxuXG4gICAgLmFnLWZpbHRlci1sb2FkaW5nIHtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYmFja2dyb3VuZC1jb2xvciwgY29udHJvbC1wYW5lbC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiBhZy1wYXJhbSh3aWRnZXQtY29udGFpbmVyLXZlcnRpY2FsLXBhZGRpbmcpIGFnLXBhcmFtKHdpZGdldC1jb250YWluZXItaG9yaXpvbnRhbC1wYWRkaW5nKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICB9XG59XG4iLCJcbkBtaXhpbiBhZy10aGVtZS1iYXNlLXBhcnQtZm9vdGVyIHtcbiAgICBcbiAgICAuYWctcGFnaW5nLXBhbmVsIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkO1xuICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShib3JkZXItdG9wLWNvbG9yLCBib3JkZXItY29sb3IpO1xuICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShjb2xvciwgc2Vjb25kYXJ5LWZvcmVncm91bmQtY29sb3IpO1xuICAgICAgICBoZWlnaHQ6IGFnLXBhcmFtKGhlYWRlci1oZWlnaHQpO1xuXG4gICAgICAgID4gKiB7XG4gICAgICAgICAgICBtYXJnaW46IDAgYWctcGFyYW0oY2VsbC1ob3Jpem9udGFsLXBhZGRpbmcpO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAuYWctcGFnaW5nLWJ1dHRvbiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAuYWctcGFnaW5nLWJ1dHRvbi5hZy1kaXNhYmxlZCAge1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGNvbG9yLCBkaXNhYmxlZC1mb3JlZ3JvdW5kLWNvbG9yKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBhZy1rZXlib2FyZC1mb2N1cygoYWctcGFnaW5nLWJ1dHRvbiksIDBweCk7XG5cbiAgICAuYWctcGFnaW5nLWJ1dHRvbiwgLmFnLXBhZ2luZy1kZXNjcmlwdGlvbiB7XG4gICAgICAgIG1hcmdpbjogMCBhZy1wYXJhbShncmlkLXNpemUpO1xuICAgIH1cblxuICAgIC5hZy1zdGF0dXMtYmFyIHtcbiAgICAgICAgQGluY2x1ZGUgYWctYm9yZGVyKHByaW1hcnksIHRvcCk7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGNvbG9yLCBkaXNhYmxlZC1mb3JlZ3JvdW5kLWNvbG9yKTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogYWctcGFyYW0oZ3JpZC1zaXplKSAqIDQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogYWctcGFyYW0oZ3JpZC1zaXplKSAqIDQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgfVxuXG4gICAgLmFnLXN0YXR1cy1uYW1lLXZhbHVlLXZhbHVlIHtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoY29sb3IsIGZvcmVncm91bmQtY29sb3IpO1xuICAgIH1cblxuICAgIC5hZy1zdGF0dXMtYmFyLWNlbnRlciB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuYWctc3RhdHVzLW5hbWUtdmFsdWUge1xuICAgICAgICBtYXJnaW4tbGVmdDogYWctcGFyYW0oZ3JpZC1zaXplKTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhZy1wYXJhbShncmlkLXNpemUpO1xuICAgICAgICBwYWRkaW5nLXRvcDogYWctcGFyYW0oZ3JpZC1zaXplKSAqIDI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBhZy1wYXJhbShncmlkLXNpemUpICogMjtcbiAgICB9XG5cbn1cbiIsIlxuQG1peGluIGFnLXRoZW1lLWJhc2UtcGFydC1jb2x1bW4tZHJvcCB7XG5cbiAgICAvLyBDRUxMIChTSEFSRUQpXG5cbiAgICAuYWctY29sdW1uLWRyb3AtY2VsbCB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJhY2tncm91bmQsIGNoaXAtYmFja2dyb3VuZC1jb2xvcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGFnLXBhcmFtKGdyaWQtc2l6ZSkgKiA0O1xuICAgICAgICBoZWlnaHQ6IGFnLXBhcmFtKGdyaWQtc2l6ZSkgKiA0O1xuICAgICAgICBwYWRkaW5nOiAwIGFnLXBhcmFtKGdyaWQtc2l6ZSkgLyAyO1xuICAgIH1cblxuICAgIC5hZy1jb2x1bW4tZHJvcC1jZWxsLXRleHQge1xuICAgICAgICBtYXJnaW46IDAgYWctcGFyYW0oZ3JpZC1zaXplKTtcbiAgICB9XG5cbiAgICAuYWctY29sdW1uLWRyb3AtY2VsbC1idXR0b24ge1xuICAgICAgICBtaW4td2lkdGg6IGFnLXBhcmFtKGdyaWQtc2l6ZSkgKiA0O1xuXG4gICAgICAgIG1hcmdpbjogMCBhZy1wYXJhbShncmlkLXNpemUpIC8gMjtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoY29sb3IsIHNlY29uZGFyeS1mb3JlZ3JvdW5kLWNvbG9yKTtcbiAgICB9XG4gICAgXG4gICAgLmFnLWNvbHVtbi1kcm9wLWNlbGwtZHJhZy1oYW5kbGUge1xuICAgICAgICBtYXJnaW4tbGVmdDogYWctcGFyYW0oZ3JpZC1zaXplKSAqIDI7XG4gICAgfVxuXG4gICAgLmFnLWNvbHVtbi1kcm9wLWNlbGwtZ2hvc3Qge1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgfVxuXG4gICAgLy8gSE9SSVpPTlRBTCBDT0xVTU4gRFJPUFxuICAgIFxuICAgIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsIHtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYmFja2dyb3VuZC1jb2xvciwgY29udHJvbC1wYW5lbC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoY29sb3IsIHNlY29uZGFyeS1mb3JlZ3JvdW5kLWNvbG9yKTtcbiAgICAgICAgaGVpZ2h0OiBhZy1wYXJhbShyb3ctaGVpZ2h0KTtcbiAgICAgICAgQGluY2x1ZGUgYWctYm9yZGVyKHByaW1hcnksIGJvdHRvbSk7XG5cbiAgICAgICAgQGluY2x1ZGUgYWctdGhlbWUtcnRsKCggcGFkZGluZy1sZWZ0OiBhZy1wYXJhbShjZWxsLWhvcml6b250YWwtcGFkZGluZykgKSk7XG4gICAgfVxuICAgIFxuICAgIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsLWhhbGYtd2lkdGg6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgIEBpZiBhZy1wYXJhbShib3JkZXJzKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhZy10aGVtZS1ydGwoKGJvcmRlci1yaWdodDogc29saWQgMXB4KSwgJGNvbG9yLXBhcmFtOiBib3JkZXItY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFnLWNvbHVtbi1kcm9wLWhvcml6b250YWwtY2VsbC1zZXBhcmF0b3Ige1xuICAgICAgICBtYXJnaW46IDAgYWctcGFyYW0oZ3JpZC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoY29sb3IsIHNlY29uZGFyeS1mb3JlZ3JvdW5kLWNvbG9yKTtcbiAgICB9XG5cbiAgICAuYWctY29sdW1uLWRyb3AtaG9yaXpvbnRhbC1lbXB0eS1tZXNzYWdlIHtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoY29sb3IsIGRpc2FibGVkLWZvcmVncm91bmQtY29sb3IpO1xuICAgIH1cblxuICAgIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsLWljb24ge1xuICAgICAgICBAaW5jbHVkZSBhZy10aGVtZS1ydGwoKCBtYXJnaW4tcmlnaHQ6IGFnLXBhcmFtKGNlbGwtaG9yaXpvbnRhbC1wYWRkaW5nKSApKTtcbiAgICB9XG5cbiAgICAvLyBWRVJUSUNBTCBDT0xVTU4gRFJPUFxuXG4gICAgLmFnLWNvbHVtbi1kcm9wLXZlcnRpY2FsLWxpc3Qge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogYWctcGFyYW0oZ3JpZC1zaXplKTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogYWctcGFyYW0oZ3JpZC1zaXplKTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiBhZy1wYXJhbShncmlkLXNpemUpO1xuICAgIH1cblxuICAgIC5hZy1jb2x1bW4tZHJvcC12ZXJ0aWNhbC1jZWxsIHtcbiAgICAgICAgbWFyZ2luLXRvcDogYWctcGFyYW0oZ3JpZC1zaXplKTtcbiAgICB9XG5cbiAgICAuYWctY29sdW1uLWRyb3AtdmVydGljYWwge1xuICAgICAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNTBweDtcbiAgICAgICAgXG4gICAgICAgIEBpbmNsdWRlIGFnLWJvcmRlcihzZWNvbmRhcnksIGJvdHRvbSk7XG4gICAgICAgICYuYWctbGFzdC1jb2x1bW4tZHJvcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhZy1ib3JkZXIoc2Vjb25kYXJ5LCBib3R0b20sICRub25lOiB0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hZy1jb2x1bW4tZHJvcC12ZXJ0aWNhbC1pY29uIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGFnLXBhcmFtKGdyaWQtc2l6ZSk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogYWctcGFyYW0oZ3JpZC1zaXplKTtcbiAgICB9XG5cbiAgICAuYWctY29sdW1uLWRyb3AtdmVydGljYWwtZW1wdHktbWVzc2FnZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShjb2xvciwgZGlzYWJsZWQtZm9yZWdyb3VuZC1jb2xvcik7XG4gICAgICAgIG1hcmdpbi10b3A6IGFnLXBhcmFtKGdyaWQtc2l6ZSk7XG4gICAgfVxuXG4gICAgLmFnLXNlbGVjdC1hZ2ctZnVuYy1wb3B1cCB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNhcmQoKTtcblxuICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShiYWNrZ3JvdW5kLCBiYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICAgICAgaGVpZ2h0OiBhZy1wYXJhbShncmlkLXNpemUpICogNSAqIDMuNTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAuYWctc2VsZWN0LWFnZy1mdW5jLXZpcnR1YWwtbGlzdC1pdGVtIHtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICBsaW5lLWhlaWdodDogYWctcGFyYW0oZ3JpZC1zaXplKSAqIDU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogYWctcGFyYW0oZ3JpZC1zaXplKSAqIDI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShiYWNrZ3JvdW5kLWNvbG9yLCBzZWxlY3RlZC1yb3ctYmFja2dyb3VuZC1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAbWl4aW4gYWctdGhlbWUtYmFzZS1wYXJ0LWNoYXJ0cyB7XG4gICAgLmFnLWNoYXJ0LW1lbnUge1xuICAgICAgICBib3JkZXItcmFkaXVzOiBhZy1wYXJhbShjYXJkLXJhZGl1cyk7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJhY2tncm91bmQsIGJhY2tncm91bmQtY29sb3IpO1xuICAgIH1cblxuICAgIC5hZy1jaGFydC1tZW51LWljb24ge1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIG1hcmdpbjogMnB4IDA7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogYWctcGFyYW0oY2FyZC1yYWRpdXMpO1xuICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShjb2xvciwgc2Vjb25kYXJ5LWZvcmVncm91bmQtY29sb3IpO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hZy1jaGFydC1taW5pLXRodW1ibmFpbCB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShib3JkZXItY29sb3IsIHNlY29uZGFyeS1ib3JkZXItY29sb3IpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgIG1hcmdpbjogNXB4O1xuXG4gICAgICAgIC8vIHNwZWNpZmljIHN0eWxlIHRvIGFwcGx5IHdoZW4gdGhlcmUgYXJlIDMgaXRlbXMgaW4gdGhlIHJvd1xuICAgICAgICAmOm50aC1sYXN0LWNoaWxkKDMpLFxuICAgICAgICAmOm50aC1sYXN0LWNoaWxkKDMpIH4gLmFnLWNoYXJ0LW1pbmktdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhZy10aGVtZS1ydGwoKG1hcmdpbi1sZWZ0OiAwKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgYWctdGhlbWUtcnRsKChtYXJnaW4tcmlnaHQ6IDApKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuYWctc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYm9yZGVyLWNvbG9yLCBtaW5pY2hhcnQtc2VsZWN0ZWQtY2hhcnQtY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFnLWNoYXJ0LXNldHRpbmdzLWNhcmQtaXRlbSB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJhY2tncm91bmQsIGZvcmVncm91bmQtY29sb3IpO1xuICAgICAgICB3aWR0aDogOHB4O1xuICAgICAgICBoZWlnaHQ6IDhweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuXG4gICAgICAgICYuYWctc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYmFja2dyb3VuZC1jb2xvciwgbWluaWNoYXJ0LXNlbGVjdGVkLXBhZ2UtY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFnLWNoYXJ0LWRhdGEtY29sdW1uLWRyYWctaGFuZGxlIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGFnLXBhcmFtKGdyaWQtc2l6ZSk7XG4gICAgfVxuXG4gICAgLmFnLWNoYXJ0cy1zZXR0aW5ncy1ncm91cC10aXRsZS1iYXIsXG4gICAgLmFnLWNoYXJ0cy1kYXRhLWdyb3VwLXRpdGxlLWJhcixcbiAgICAuYWctY2hhcnRzLWZvcm1hdC10b3AtbGV2ZWwtZ3JvdXAtdGl0bGUtYmFyIHtcbiAgICAgICAgQGluY2x1ZGUgYWctYm9yZGVyKHNlY29uZGFyeSwgdG9wKTtcbiAgICB9XG5cbiAgICAuYWctY2hhcnRzLXNldHRpbmdzLWdyb3VwLWNvbnRhaW5lciB7XG4gICAgICAgIHBhZGRpbmc6IGFnLXBhcmFtKGdyaWQtc2l6ZSk7XG4gICAgfVxuXG4gICAgLmFnLWNoYXJ0cy1kYXRhLWdyb3VwLWNvbnRhaW5lciB7XG4gICAgICAgIEBpbmNsdWRlIGFnLXZlcnRpY2FsLXdpZGdldC1jb250YWluZXIoKTtcbiAgICB9XG5cbiAgICAuYWctY2hhcnRzLWZvcm1hdC10b3AtbGV2ZWwtZ3JvdXAtY29udGFpbmVyIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGFnLXBhcmFtKGdyaWQtc2l6ZSkgKiAyO1xuICAgICAgICBwYWRkaW5nOiBhZy1wYXJhbShncmlkLXNpemUpO1xuICAgIH1cblxuICAgIC5hZy1jaGFydHMtZm9ybWF0LXRvcC1sZXZlbC1ncm91cC1pdGVtIHtcbiAgICAgICAgbWFyZ2luOiBhZy1wYXJhbShncmlkLXNpemUpIDA7XG4gICAgfVxuXG4gICAgLmFnLWNoYXJ0cy1mb3JtYXQtc3ViLWxldmVsLWdyb3VwLWNvbnRhaW5lciB7XG4gICAgICAgIEBpbmNsdWRlIGFnLXZlcnRpY2FsLXdpZGdldC1jb250YWluZXIoKTtcbiAgICB9XG5cbiAgICAuYWctY2hhcnRzLWdyb3VwLWNvbnRhaW5lci5hZy1ncm91cC1jb250YWluZXItaG9yaXpvbnRhbCB7XG4gICAgICAgIHBhZGRpbmc6IGFnLXBhcmFtKGdyaWQtc2l6ZSk7XG4gICAgfVxuXG4gICAgLmFnLWNoYXJ0LWRhdGEtc2VjdGlvbixcbiAgICAuYWctY2hhcnQtZm9ybWF0LXNlY3Rpb24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLmFnLWNoYXJ0LW1lbnUtcGFuZWwge1xuICAgICAgICBAaW5jbHVkZSBhZy10aGVtZS1ydGwoKGJvcmRlci1sZWZ0OiBzb2xpZCAxcHgpLCAkY29sb3ItcGFyYW06IGJvcmRlci1jb2xvcik7XG5cbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYmFja2dyb3VuZC1jb2xvciwgY29udHJvbC1wYW5lbC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICB9XG59XG4iLCJAbWl4aW4gYWctdGhlbWUtYmFzZS1wYXJ0LWRhdGUtdGltZSB7XG5cbiAgICAuYWctZGF0ZS10aW1lLWxpc3QtcGFnZS1lbnRyeS1pcy1wYWRkaW5nIHtcbiAgICAgICAgLy8gVE9ETyBhcHBseSBwYWRkaW5nIHN0eWxlIChncmV5ZWQgb3V0KSBpbiB0aGVtZSBjc3MsIHVzaW5nXG4gICAgICAgIC8vIG1peGluIGxpa2UgZm9yIGFnLW5hdGl2ZS1pbnB1dHMoKVxuICAgIH1cblxuICAgIC5hZy1kYXRlLXRpbWUtbGlzdC1wYWdlLXRpdGxlIHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLmFnLWRhdGUtdGltZS1saXN0LXBhZ2UtY29sdW1uLWxhYmVsIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5hZy1kYXRlLXRpbWUtbGlzdC1wYWdlLWVudHJ5IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbn0iLCJAaW1wb3J0IFwiLi4vLi4vYWctdGhlbWUtYmFzZS9zYXNzL2FnLXRoZW1lLWJhc2VcIjtcbkBpbXBvcnQgXCIuL2FnLXRoZW1lLW1hdGVyaWFsLWRlZmF1bHQtcGFyYW1zXCI7XG5cbkBtaXhpbiBhZy10aGVtZS1tYXRlcmlhbCgkcGFyYW1zOiAoKSkge1xuICAgIEBpbmNsdWRlIGFnLWFsbG93LWNvbG9yLXBhcmFtLWFjY2Vzcy13aXRoLWFnLXBhcmFtKGZhbHNlKTtcblxuICAgICRwYXJhbXM6IGFnLXByb2Nlc3MtdGhlbWUtdmFyaWFibGVzKCRwYXJhbXMsICRhZy10aGVtZS1tYXRlcmlhbC1kZWZhdWx0LXBhcmFtcyk7XG4gICAgQGluY2x1ZGUgYWctdGhlbWUtYmFzZSgkcGFyYW1zKTtcblxuICAgIC5hZy1maWx0ZXItdG9vbHBhbmVsLWhlYWRlcixcbiAgICAuYWctZmlsdGVyLXRvb2xwYW5lbC1zZWFyY2gsXG4gICAgLmFnLXN0YXR1cy1iYXIsXG4gICAgLmFnLWhlYWRlci1yb3csXG4gICAgLmFnLXBhbmVsLXRpdGxlLWJhci10aXRsZSxcbiAgICAuYWctc2lkZS1idXR0b24tYnV0dG9uLFxuICAgIC5hZy1tdWx0aS1maWx0ZXItZ3JvdXAtdGl0bGUtYmFyIHtcbiAgICAgICAgZm9udC1zaXplOiBhZy1wYXJhbShmb250LXNpemUpIC0gMTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoY29sb3IsIGhlYWRlci1mb3JlZ3JvdW5kLWNvbG9yKTtcbiAgICB9XG5cbiAgICAuYWctdGFiIHtcbiAgICAgICAgaGVpZ2h0OiBhZy1wYXJhbShncmlkLXNpemUpICogNC41O1xuICAgIH1cblxuICAgIC5hZy10YWJzLWhlYWRlcixcbiAgICAuYWctY29sdW1uLWRyb3AtaG9yaXpvbnRhbCB7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJhY2tncm91bmQtY29sb3IsIHN1YmhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICB9XG5cbiAgICAuYWctdGFicy1ib2R5IHtcbiAgICAgICAgcGFkZGluZzogYWctcGFyYW0oZ3JpZC1zaXplKSAvIDIgMDtcbiAgICB9XG5cbiAgICAuYWctdGFicy1ib2R5IC5hZy1tZW51LWxpc3Qge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLmFnLWhlYWRlci1jZWxsLCAuYWctaGVhZGVyLWdyb3VwLWNlbGwge1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXM7XG4gICAgfVxuXG4gICAgLmFnLXJvdy1sYXN0Om5vdCguYWctcm93LWZpcnN0KSAuYWctY2VsbC1pbmxpbmUtZWRpdGluZyB7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuYWctY2VsbC1pbmxpbmUtZWRpdGluZyB7XG4gICAgICAgIHBhZGRpbmc6IGFnLXBhcmFtKGdyaWQtc2l6ZSk7XG4gICAgICAgIGhlaWdodDogYWctcGFyYW0ocm93LWhlaWdodCkgKyBhZy1wYXJhbShncmlkLXNpemUpICogMztcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYm9yZGVyLWNvbG9yLCBib3JkZXItY29sb3IsICRpbXBvcnRhbnQ6IHRydWUpO1xuICAgIH1cblxuICAgIC5hZy1oYXMtZm9jdXMge1xuICAgICAgICAuYWctY2VsbC1pbmxpbmUtZWRpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShib3JkZXItY29sb3IsIGlucHV0LWZvY3VzLWJvcmRlci1jb2xvciwgJGltcG9ydGFudDogdHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWctc2lkZS1idXR0b24tYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoY29sb3IsIHNlY29uZGFyeS1mb3JlZ3JvdW5kLWNvbG9yKTtcbiAgICB9XG5cbiAgICAuYWctY29sdW1uLWRyb3AtdmVydGljYWwge1xuICAgICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHg7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJvcmRlci1ib3R0b20tY29sb3IsIGJvcmRlci1jb2xvcik7XG4gICAgICAgIHBhZGRpbmctdG9wOiBhZy1wYXJhbShncmlkLXNpemUpO1xuXG4gICAgICAgICYuYWctbGFzdC1jb2x1bW4tZHJvcCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFnLWNvbHVtbi1kcm9wLXZlcnRpY2FsLWNlbGwge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG5cbiAgICAuYWctY29sdW1uLWRyb3AtdmVydGljYWwtZW1wdHktbWVzc2FnZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogYWctcGFyYW0oZm9udC1zaXplKSAtIDE7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGNvbG9yLCBkaXNhYmxlZC1mb3JlZ3JvdW5kLWNvbG9yKTtcblxuICAgICAgICBAaW5jbHVkZSBhZy10aGVtZS1ydGwoKFxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBhZy1wYXJhbShpY29uLXNpemUpICsgYWctcGFyYW0oZ3JpZC1zaXplKSAqIDIsXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBhZy1wYXJhbShncmlkLXNpemUpXG4gICAgICAgICkpO1xuICAgIH1cblxuICAgIC5hZy1zdGF0dXMtYmFyIHtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHg7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJvcmRlci1jb2xvciwgYm9yZGVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAuYWctY29sdW1uLXBhbmVsLWNvbHVtbi1zZWxlY3Qge1xuICAgICAgICBib3JkZXItdG9wOiBzb2xpZCAxcHg7XG4gICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJvcmRlci10b3AtY29sb3IsIGJvcmRlci1jb2xvcik7XG4gICAgfVxuXG4gICAgLmFnLWNvbHVtbi1zZWxlY3QsIC5hZy1jb2x1bW4tc2VsZWN0LWhlYWRlciB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweDtcbiAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYm9yZGVyLWJvdHRvbS1jb2xvciwgYm9yZGVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAuYWctY29sdW1uLXNlbGVjdC1oZWFkZXIge1xuICAgICAgICBoZWlnaHQ6IGFnLXBhcmFtKGhlYWRlci1oZWlnaHQpO1xuICAgIH1cblxuICAgIC5hZy1ncm91cC10aXRsZS1iYXIge1xuICAgICAgICBwYWRkaW5nOiBhZy1wYXJhbShncmlkLXNpemUpICogMC43NSBhZy1wYXJhbShncmlkLXNpemUpO1xuICAgIH1cblxuICAgIC5hZy1jaGFydHMtZm9ybWF0LXN1Yi1sZXZlbC1ncm91cC10aXRsZS1iYXIge1xuICAgICAgICBwYWRkaW5nOiBhZy1wYXJhbShncmlkLXNpemUpICogMC41IGFnLXBhcmFtKGdyaWQtc2l6ZSk7XG4gICAgfVxuXG4gICAgLmFnLWNoYXJ0LWRhdGEtc2VjdGlvbixcbiAgICAuYWctY2hhcnQtZm9ybWF0LXNlY3Rpb24ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogYWctcGFyYW0oZ3JpZC1zaXplKSAqIDAuNTtcbiAgICB9XG5cbiAgICAuYWctZ3JvdXAtdG9vbGJhciB7XG4gICAgICAgIEBpZiBhZy1wYXJhbShzdWJoZWFkZXItYmFja2dyb3VuZC1jb2xvcikge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShhZy1wYXJhbShzdWJoZWFkZXItYmFja2dyb3VuZC1jb2xvciksIDAuNSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAlYWctdGV4dC1pbnB1dCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShjb2xvciwgZm9yZWdyb3VuZC1jb2xvcik7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgIGhlaWdodDogYWctcGFyYW0oZ3JpZC1zaXplKSAqIDU7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBhZy1wYXJhbShncmlkLXNpemUpO1xuXG4gICAgICAgIGJvcmRlci13aWR0aDogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkO1xuICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShib3JkZXItYm90dG9tLWNvbG9yLCBib3JkZXItY29sb3IpO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkO1xuICAgICAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYm9yZGVyLWJvdHRvbS1jb2xvciwgbWF0ZXJpYWwtcHJpbWFyeS1jb2xvcik7XG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGNvbG9yLCBkaXNhYmxlZC1mb3JlZ3JvdW5kLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6ZGlzYWJsZWQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xuICAgICAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYm9yZGVyLWJvdHRvbS1jb2xvciwgYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hZy1zdGFuZGFyZC1idXR0b24ge1xuICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBAaW5jbHVkZSBhZy1jb2xvci1wcm9wZXJ0eShjb2xvciwgbWF0ZXJpYWwtcHJpbWFyeS1jb2xvcik7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgICAgICAmOmRpc2FibGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGNvbG9yLCBkaXNhYmxlZC1mb3JlZ3JvdW5kLWNvbG9yKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFnLWNvbG9yLXByb3BlcnR5KGJhY2tncm91bmQtY29sb3IsIGlucHV0LWRpc2FibGVkLWJhY2tncm91bmQtY29sb3IpO1xuICAgICAgICAgICAgQGluY2x1ZGUgYWctY29sb3ItcHJvcGVydHkoYm9yZGVyLWNvbG9yLCBpbnB1dC1kaXNhYmxlZC1ib3JkZXItY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFnLWRuZC1naG9zdCB7XG4gICAgICAgIGZvbnQtc2l6ZTogYWctcGFyYW0oZm9udC1zaXplKSAtIDE7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgfVxuXG4gICAgLmFnLWZpbHRlci10b29scGFuZWwtaGVhZGVyIHtcbiAgICAgICAgaGVpZ2h0OiBhZy1wYXJhbShncmlkLXNpemUpICogNDtcbiAgICB9XG5cbiAgICAuYWctZmlsdGVyLXRvb2xwYW5lbC1ncm91cC1sZXZlbC0wLWhlYWRlciB7XG4gICAgICAgIGhlaWdodDogYWctcGFyYW0oZ3JpZC1zaXplKSAqIDc7XG4gICAgfVxuXG4gICAgLmFnLWxheW91dC1hdXRvLWhlaWdodCwgLmFnLWxheW91dC1wcmludCB7XG4gICAgICAgIC5hZy1jZW50ZXItY29scy1jbGlwcGVyLCAuYWctY2VudGVyLWNvbHMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDE1MHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFnLW92ZXJsYXktbm8tcm93cy13cmFwcGVyLmFnLWxheW91dC1hdXRvLWhlaWdodCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA2MHB4O1xuICAgIH1cblxuICAgIC5hZy1waWNrZXItZmllbGQtd3JhcHBlcjpmb2N1cyB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCBhZy1wYXJhbShtYXRlcmlhbC1wcmltYXJ5LWNvbG9yKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBhZy1hbGxvdy1jb2xvci1wYXJhbS1hY2Nlc3Mtd2l0aC1hZy1wYXJhbSh0cnVlKTtcbn1cbiJdfQ== */

/*# sourceMappingURL=styles.9c94a5be2d8a80ca8f85.css.map*/