/* imports and utilities like animations and mixins should be defined here */
/*
** ==== 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;
}
/*! 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;
}
.app[class*='--hasActionBar'] {
  margin-bottom: 41px;
}
.app[class*='--hasActionBar'] .app-ActionBar {
  margin-bottom: -40px;
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3N0eWxlcy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B4cG8tbHRsL25neC1sdGwtY29yZS9zdHlsZXMvX3ZhcmlhYmxlcy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B4cG8tbHRsL25neC1sdGwtY29yZS9zdHlsZXMvX3Jlc2V0LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHhwby1sdGwvbmd4LWx0bC1jb3JlL3N0eWxlcy9fZm9udHMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AeHBvLWx0bC9uZ3gtbHRsLWNvcmUvc3R5bGVzL190ZXh0LXRyZWF0bWVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDRFQUFBO0FDRUE7O0NEQ0M7QUNHRDs7Q0RBQztBQ3FFRDs7Q0RsRUM7QUMrSEQ7O0NENUhDO0FDZ0lEOztDRDdIQztBQzZORDs7Q0QxTkM7QUMrTkQ7O0NENU5DO0FDMlREOztDRHhUQztBQzRURDs7Q0R6VEM7QUMwVkQ7RUFDRSxPQUFPO0FEeFZUO0FFOUJBLGlEQUFBO0FERUE7O0NEaUNDO0FDN0JEOztDRGdDQztBQ3FDRDs7Q0RsQ0M7QUMrRkQ7O0NENUZDO0FDZ0dEOztDRDdGQztBQzZMRDs7Q0QxTEM7QUMrTEQ7O0NENUxDO0FDMlJEOztDRHhSQztBQzRSRDs7Q0R6UkM7QUMwVEQ7RUFDRSxPQUFPO0FEeFRUO0FHOURBO0VBQ0UsZ0NBQWdDO0VBQ2hDLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsdUxBQ3lGO0FIZ0UzRjtBRWpFQTs7O0VBSUUsc0JBQXNCO0FGb0V4QjtBRWpFQTtFQUNFLGFBQWE7QUZvRWY7QUVqRUE7RUFDRSxlRHNPdUI7QURsS3pCO0FFakVBOztFQUVFLFlBQVk7RUFDWixTQUFTO0FGb0VYO0FFakVBO0VBQ0UsaUJEeVB5QjtFQ3hQekIsMEJBQTBCO0VBQzFCLDhCQUE4QjtBRm9FaEM7QUVqRUE7RUFDRSx5QkRrTWlDO0VDak1qQyxjRGlEcUI7RUNoRHJCLDBERGtPcUU7RUNqT3JFLGdCRHFPMEI7RUNwTzFCLHFCRHVQNkI7RUN0UDdCLGlCRDhPeUI7RUM3T3pCLGtCQUFrQjtBRm9FcEI7QUVqRUE7Ozs7OztFQU1FLGNBQWM7QUZvRWhCO0FFakVBOzs7RUFHRSxhQUFtQztBRm9FckM7QUVqRUE7RUV6Q0UsbUJIaVBtQztFR2hQbkMsZ0JIMFB3QjtFR3pQeEIsc0JINlFzQztFRzVRdEMsa0JIdVFrQztBRHpKcEM7QUVwRUE7RUVwREUsbUJIdVBvQztFR3RQcEMsZ0JIaVF3QjtFR2hReEIsc0JIbVJ1QztFR2xSdkMsa0JINlFtQztBRGpKckM7QUV2RUE7RUUvREUsbUJINlBtQztFRzVQbkMsZ0JId1F3QjtFR3ZReEIscUJIeVJxQztFR3hSckMsa0JIbVJrQztBRHpJcEM7QUUxRUE7RUFDRSxTQUFTO0FGNkVYO0FFMUVBOzs7RUFHRSxjQUFjO0FGNkVoQjtBRTFFQTtFQUNFLGdCQUFnQjtBRjZFbEI7QUUxRUE7RUFDRSxTQUFTO0VBQ1QsNkJEQ3FCO0VDQXJCLGNBQWM7RUFDZCxXQUFXO0VBQ1gsY0FBNkI7RUFDN0IsVUFBVTtBRjZFWjtBRTFFQTtFQUNFLGlDQUFpQztFQUNqQyxjQUFjO0FGNkVoQjtBRTFFQTtFQUNFLDZCQUE2QjtFQUM3QixjRG9EcUI7RUNuRHJCLHFCQUFxQjtFQUNyQixxQ0FBcUM7QUY2RXZDO0FFakZBO0VBT0ksY0Q2Q21CO0FEaUN2QjtBRTFFQTtFQUNFLHFCQUFxQjtFQUNyQixTQUFTO0VBQ1QsVUFBVTtBRjZFWjtBRTFFQTtFQUNFLGdCRHdKd0I7QUQzRTFCO0FFMUVBO0VBQ0UsZUFBcUM7QUY2RXZDO0FFMUVBO0VBQ0UsbUJBQW1CO0VBQ25CLDBCQUEwQjtFQUMxQix5Q0FBaUM7VUFBakMsaUNBQWlDO0FGNkVuQztBRTFFQTs7O0VBR0UseUJEN0NxQjtFQzhDckIsaUNBQWlDO0VBQ2pDLGdCQUFnQjtFQUNoQixvQkFBb0I7QUY2RXRCO0FFMUVBO0VBQ0Usa0JBQWtCO0FGNkVwQjtBRTFFQTtFQUNFLHNCQUFzQjtFQUN0QixXQUFXO0FGNkViO0FFMUVBO0VBQ0UsY0FBYztBRjZFaEI7QUUxRUE7O0VBRUUsY0FBYztFQUNkLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsd0JBQXdCO0FGNkUxQjtBRTFFQTtFQUNFLGVBQWU7QUY2RWpCO0FFMUVBO0VBQ0UsV0FBVztBRjZFYjtBRTFFQTs7RUFFRSxxQkFBcUI7QUY2RXZCO0FFMUVBO0VBQ0UsYUFBYTtFQUNiLFNBQVM7QUY2RVg7QUUxRUE7RUFDRSxrQkFBa0I7RUFDbEIsZUFBZTtBRjZFakI7QUUxRUE7RUFDRSxnQkFBZ0I7QUY2RWxCO0FFMUVBOzs7OztFQUtFLFNBQVM7QUY2RVg7QUUxRUE7O0VBRUUsaUJBQWlCO0FGNkVuQjtBRTFFQTs7RUFFRSxvQkFBb0I7QUY2RXRCO0FFMUVBOzs7O0VBSUUsMEJBQTBCO0FGNkU1QjtBRTFFQTs7OztFQUlFLGtCQUFrQjtFQUNsQixVQUFVO0FGNkVaO0FFMUVBOzs7O0VBSUUsOEJBQThCO0FGNkVoQztBRTFFQTtFQUNFLDhCQUE4QjtBRjZFaEM7QUUxRUE7RUFDRSxzQkFBc0I7RUFDdEIsY0FBYztFQUNkLGNBQWM7RUFDZCxlQUFlO0VBQ2YsVUFBVTtFQUNWLG1CQUFtQjtBRjZFckI7QUUxRUE7RUFDRSxxQkFBcUI7RUFDckIsd0JBQXdCO0FGNkUxQjtBRTFFQTtFQUNFLGNBQWM7QUY2RWhCO0FBRUE7O0VFMUVFLHNCQUFzQjtFQUN0QixVQUFVO0FGNkVaO0FBRUE7O0VFMUVFLFlBQVk7QUY2RWQ7QUFFQTtFRTNFRSw2QkFBNkI7RUFDN0Isb0JBQW9CO0FGNkV0QjtBQUVBOztFRTFFRSx3QkFBd0I7QUY2RTFCO0FFMUVBO0VBQ0UsMEJBQTBCO0VBQzFCLGFBQWE7QUY2RWY7QUUxRUE7O0VBRUUsY0FBYztBRjZFaEI7QUUxRUE7RUFDRSxrQkFBa0I7QUY2RXBCO0FFMUVBO0VBQ0UscUJBQXFCO0FGNkV2QjtBRTFFQTtFQUNFLGFBQWE7QUY2RWY7QUFFQTtFRTNFRSxhQUFhO0FGNkVmO0FBeldBO0VBRUksbUJBQXdDO0FBMlc1QztBQTdXQTtFQUtNLG9CQVBxQjtBQW1YM0IiLCJmaWxlIjoic3R5bGVzLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBpbXBvcnRzIGFuZCB1dGlsaXRpZXMgbGlrZSBhbmltYXRpb25zIGFuZCBtaXhpbnMgc2hvdWxkIGJlIGRlZmluZWQgaGVyZSAqL1xuQGltcG9ydCAnfkB4cG8tbHRsL25neC1sdGwtY29yZS9zdHlsZXMvdmFyaWFibGVzJztcbkBpbXBvcnQgJ35AeHBvLWx0bC9uZ3gtbHRsLWNvcmUvc3R5bGVzL3Jlc2V0JztcblxuJGFwcC1hY3Rpb25CYXItaGVpZ2h0OiA0MHB4O1xuXG4uYXBwIHtcbiAgJltjbGFzcyo9Jy0taGFzQWN0aW9uQmFyJ10ge1xuICAgIG1hcmdpbi1ib3R0b206ICRhcHAtYWN0aW9uQmFyLWhlaWdodCArIDE7XG5cbiAgICAuYXBwLUFjdGlvbkJhciB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAtJGFwcC1hY3Rpb25CYXItaGVpZ2h0O1xuICAgIH1cbiAgfVxufVxuIiwiQGltcG9ydCAnLi90ZXh0LXRyZWF0bWVudCc7XG5cbi8qXG4qKiA9PT09IEJhc2ljIGNvbG9ycyA9PT09XG4qL1xuXG4vKlxuKiogPT09PSBYUE8gQnJhbmQgQ29sb3IgUGFsZXR0ZSA9PT09XG4qL1xuXG4vLyBYUE8gUmVkXG4keHBvLWJyYW5kLXJlZDogI2NjMDAwMDtcbiR4cG8tYnJhbmQtcmVkLS05MDA6ICR4cG8tYnJhbmQtcmVkO1xuJHhwby1icmFuZC1yZWQtLTgwMDogI2U0MjEwZTtcbiR4cG8tYnJhbmQtcmVkLS03MDA6ICNmMzJhMTM7XG4keHBvLWJyYW5kLXJlZC0tNjAwOiAjZmYzMzE3O1xuJHhwby1icmFuZC1yZWQtLTUwMDogI2ZmMzkxYztcbiR4cG8tYnJhbmQtcmVkLS00MDA6ICNmZjVlM2Q7XG4keHBvLWJyYW5kLXJlZC0tMzAwOiAjZmY3ZTYwO1xuJHhwby1icmFuZC1yZWQtLTIwMDogI2ZmYTQ4ZTtcbiR4cG8tYnJhbmQtcmVkLS0xMDA6ICNmZmM4YmE7XG4keHBvLWJyYW5kLXJlZC0tNTA6ICNmY2U4ZTY7XG5cbi8vIFhQTyBCbGFja1xuJHhwby1ibGFjazogIzAwMDAwMDtcbiR4cG8tYnJhbmQtYmxhY2stLTkwMDogJHhwby1ibGFjaztcbiR4cG8tYnJhbmQtYmxhY2stLTgwMDogIzI2MjYyNjtcbiR4cG8tYnJhbmQtYmxhY2stLTcwMDogIzU1NTU1NTtcbiR4cG8tYnJhbmQtYmxhY2stLTYwMDogIzdiN2I3YjtcbiR4cG8tYnJhbmQtYmxhY2stLTUwMDogIzlkOWQ5ZDtcbiR4cG8tYnJhbmQtYmxhY2stLTQwMDogIzlkOWQ5ZDtcbiR4cG8tYnJhbmQtYmxhY2stLTMwMDogI2M0YzRjNDtcbiR4cG8tYnJhbmQtYmxhY2stLTIwMDogI2Q5ZDlkOTtcbiR4cG8tYnJhbmQtYmxhY2stLTEwMDogI2U5ZTllOTtcbiR4cG8tYnJhbmQtYmxhY2stLTUwOiAjZjVmNWY1O1xuXG4vLyBYUE8gRGFyayBHcmV5XG4keHBvLWJyYW5kLWRhcmstZ3JleTogIzQxNGE0YztcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS05MDA6ICMyMjI4MmI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tODAwOiAkeHBvLWJyYW5kLWRhcmstZ3JleTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS03MDA6ICM2MjY4NmM7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNjAwOiAjNzU3ZDgxO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTUwMDogI2EwYTZhYTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS00MDA6ICNiZWM1Yzk7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMzAwOiAjZTBlN2ViO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTIwMDogI2ViZjJmNjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0xMDA6ICNmMGY3ZmI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNTA6ICNmNGZjZmY7XG5cbi8vIFhQTyBNZWRpdW0gR3JleVxuJHhwby1icmFuZC1tZWRpdW0tZ3JleTogIzg0ODQ4NDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTkwMDogIzJlMmUyZTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTgwMDogIzUwNTA1MDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTcwMDogIzcwNzA3MDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTYwMDogJHhwby1icmFuZC1tZWRpdW0tZ3JleTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwMDogI2FmYWZhZjtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTQwMDogI2NkY2RjZDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTMwMDogI2VlZWVlZTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDogI2YzZjNmMztcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTEwMDogI2Y4ZjhmODtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwOiAjZmNmY2ZjO1xuXG4vLyBYUE8gTGlnaHQgR3JleVxuJHhwby1icmFuZC1saWdodC1ncmV5OiAjZGVkZWRlO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS05MDA6ICMxZjFmMWY7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTgwMDogIzNmM2YzZjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNzAwOiAjNWU1ZTVlO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS02MDA6ICM3MjcyNzI7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwMDogIzlhOWE5YTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNDAwOiAjYmFiYWJhO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0zMDA6ICR4cG8tYnJhbmQtbGlnaHQtZ3JleTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMjAwOiAjZWNlY2VjO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0xMDA6ICNmNGY0ZjQ7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwOiAjZjlmOWY5O1xuXG4vKlxuKiogPT09PSBNYWluIENvbG9yIFBhbGV0dGUgPT09PVxuKi9cblxuLy8gQmxhY2sgYW5kIEdyZXlcbiR4cG8tZ3JleS0tOTc1OiAjMjEyMTIxO1xuJHhwby1ncmV5LS05NTA6ICMzMzMzMzM7XG4keHBvLWdyZXktLTkwMDogIzRhNGE0YTtcbiR4cG8tZ3JleS0tNzAwOiAjNmY2ZjZmO1xuJHhwby1ncmV5LS0zNTA6ICNiZGJkYmQ7XG4keHBvLWdyZXktLTMwMDogI2Q4ZDhkODtcbiR4cG8tZ3JleS0tODA6ICNmNmY2ZjY7XG4keHBvLWdyZXktLTI1OiAjZmFmYWZhO1xuXG4keHBvLXdoaXRlOiAjZmZmZmZmO1xuXG4vLyBMaW5rcywgQnV0dG9ucywgVGFic2V0IGFuZCBUYWJwaWxsc1xuJHhwby1ibHVlLS04NTA6ICMwZDQ3YTE7XG4keHBvLWJsdWUtLTgwMDogIzE5NzZkMjtcbiR4cG8tYmx1ZS0tMzUwOiAjMjE5NmYzO1xuXG4vLyBFcnJvciBTdGF0ZVxuJHhwby1yZWQtLTIwMDogI2I3MWMxYztcbiR4cG8tcmVkLS0xNTA6ICNkMzJmMmY7XG4keHBvLXJlZC0tNTA6ICNmY2VlZWI7XG5cbi8vIFN1Y2Nlc3MgU3RhdGVcbiR4cG8tZ3JlZW4tLTYwMDogIzM4OGUzYztcbiR4cG8tZ3JlZW4tLTQ1MDogIzRjYWY1MDtcbiR4cG8tZ3JlZW4tLTUwOiAjZjFmOWYxO1xuXG4vLyBXYXJuaW5nIFN0YXRlXG4keHBvLXllbGxvdy0tMzUwOiAjZmZkNjAwO1xuXG4keHBvLW9yYW5nZS0tMzUwOiAjZmY2ZDAwO1xuXG4vLyBJbmZvIFN0YXRlXG4keHBvLWJsdWUtLTcwMDogIzAwOTFlYTtcblxuLy8gVHJhbnNhY3Rpb25hbCBDZWxsc1xuJHhwby1ncmV5LS0xNTA6ICNlY2VmZjE7XG5cbiR4cG8tYmx1ZUdyZXktLTcwMDogI2NmZDhkYztcblxuLy8gQWNjZW50IENvbG9yc1xuJHhwby1waW5rLS03MDA6ICNjNTExNjI7XG5cbiR4cG8tdGVhbC0tNzAwOiAjMDBiZmE1O1xuXG4keHBvLWJsdWUtLTgyNTogIzMwNGZmZTtcbiR4cG8tYmx1ZS0tMjAwOiAjZTRlZmZhO1xuXG4keHBvLWFjY2VudC1yZWQtLTQwMDogJHhwby1icmFuZC1yZWQtLTQwMDtcbiR4cG8tYWNjZW50LXJlZC0tMTAwOiAkeHBvLWJyYW5kLXJlZC0tMTAwO1xuXG4keHBvLXB1cnBsZS0tNzAwOiAjNjIwMGVhO1xuXG4keHBvLWdyZWVuLS0yMDA6ICNhNGU1OWI7XG5cbiR4cG8teWVsbG93LS0yMDA6ICNmZmY5YzQ7XG5cbi8qXG4qKiA9PT09IERFUFJFQ0FURUQgQ09MT1JTID09PT1cbiovXG5cbi8qXG4qKiBXQVJOSU5HOiBUSElTIFZBUklBQkxFUyBXSUxMIEJFIFJFTU9WRUQgU09PTlxuKi9cbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMTAwOiAjZThmNWZlO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0xNTA6ICNlM2YyZmQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTMwMDogIzBkOTRmNDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tNDAwOiAjMDg2OGFjO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS05MDA6ICMwNTNjNjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tMTAwOiAjZmZmOGU1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTMwMDogI2ZmY2Y0ZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS00MDA6ICNmZmJhMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tNzAwOiAjZmZkNjAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTkwMDogIzRkMzgwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTEwMDogI2M4ZmZkZjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTMwMDogIzFjZTg1NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTM1MDogIzAwYzg1Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTQwMDogIzExYTYzYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTcwMDogIzAwYzg1Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTkwMDogIzBhNjEyMjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNTA6ICNmYmZiZmI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTYwOiAjZmFmYWZhO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMDA6ICNmM2YzZjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTIwMDogI2U2ZTZlNjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMjUwOiAjZGRkZGRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS00MDA6ICM5YjliOWI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTYwMDogIzc1NzU3NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjUwOiAjODU4NTg1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS03NTA6ICM1NzU3NTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTkxNTogIzQzNDk0ZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tOTMwOiAjNDI0MjQyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMDAwOiAjMTcxNzE3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMTAwOiAjMjEyMTIxO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTEwMDogI2ZmZWVlZTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0yNTA6ICNkZDJjMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMzAwOiAjZmYyMjIyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTQwMDogI2Q1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS02MDA6ICNjYzAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNzAwOiAjZDMyZjJmO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTkwMDogIzU1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS0xMDA6ICNmZmRmY2E7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tMzAwOiAjZmY5OTU3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTQwMDogI2ZmNjQwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS05MDA6ICM4YjM3MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWZvbnRDb2xvci0tbGluazogIzA4NjhhYztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmFja2dyb3VuZENvbG9yLS1ib2R5OiAjZjNmM2YzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0tZXJyb3I6ICNkNTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1zdWNjZXNzOiAjMTFhNjNiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0td2FybjogI2ZmYmEwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLWluZm86ICM0YTRhNGE7XG5cbi8qXG4qKiA9PT09IENPTE9SUyBBUFBMSUVEID09PT1cbiovXG4keHBvLWZvbnRDb2xvci0tcHJpbWFyeTogJHhwby1ncmV5LS05MDA7XG5cbi8qXG4qKiA9PT09IFR5cG9ncmFwaHkgPT09PVxuKi9cbi8vIFB1dHRpbmcgc2l6ZXMgaW4gbWFwcyB0byBhbGxvdyBkeW5hbWljIHNpemluZyBmb3IgZXh0ZXJuYWxcbi8vIFJvb3QgZm9udC1zaXplKHMpIGFsd2F5cyBpbiBweFxuJHhwby1mb250U2l6ZS0tcm9vdDogMTRweDtcbiR4cG8tZm9udFNpemUtLXNtYWxsOiAwLjg3NXJlbTsgLy8xMnB4XG4keHBvLWZvbnRTaXplLS1tZWRpdW06IDFyZW07IC8vMTRweFxuJHhwby1mb250U2l6ZS0tbGFyZ2U6IDEuMTQzcmVtOyAvLzE2cHhcbiR4cG8tZm9udFNpemUtLWV4dHJhTGFyZ2U6IDEuMjg1cmVtOyAvLzE4cHhcbiR4cG8tZm9udFNpemUtLXh4bGFyZ2U6IDEuNzE0cmVtOyAvLzI0cHhcblxuJHhwby1oZWFkZXItZm9udFNpemUtLXhzbWFsbDogMXJlbTsgLy8xNHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tc21hbGw6IDEuMTQzcmVtOyAvLzE2cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1tZWRpdW06IDEuMjg1cmVtOyAvLzE4cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1sYXJnZTogMS40MjhyZW07IC8vMjBweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXhsYXJnZTogMS41NzFyZW07IC8vMjJweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXh4bGFyZ2U6IDEuODU3cmVtOyAvLzI2cHhcblxuJHhwby1mb250RmFtaWx5LS1wcmltYXJ5OiAnUm9ib3RvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XG4keHBvLWZvbnRGYW1pbHktLXJvYm90b1dpZGVCbGFjazogJ1JvYm90byBXaWRlIEJsYWNrJywgJ1JvYm90bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXG4keHBvLWZvbnRXZWlnaHQtLWxpZ2h0OiAzMDA7XG4keHBvLWZvbnRXZWlnaHQtLW5vcm1hbDogNDAwO1xuJHhwby1mb250V2VpZ2h0LS1tZWRpdW06IDUwMDsgLy8gREVQUkVDQVRFRCB8IGRvIG5vdCBkZWxldGUgc2luY2UgaXQgaXMgc3RpbGwgYmVpbmcgdXNlZCBpbiBzb21lIHByb2plY3RzXG4keHBvLWZvbnRXZWlnaHQtLWJvbGQ6IDUwMDtcbiR4cG8tZm9udFdlaWdodC0tZXh0cmFCb2xkOiA2MDA7XG4keHBvLWZvbnRXZWlnaHQtLWJvbGRlcjogNzAwO1xuXG4keHBvLWxpbmVIZWlnaHQtLXhsOiAyLjI4NnJlbTsgLy8gMzJweFxuJHhwby1saW5lSGVpZ2h0LS1sZzogMS43MTRyZW07IC8vIDI0cHhcbiR4cG8tbGluZUhlaWdodC0tbWQ6IDEuNTcxcmVtOyAvLyAyMnB4XG4keHBvLWxpbmVIZWlnaHQtLXNtOiAxLjQyOXJlbTsgLy8gMjBweFxuXG4keHBvLWxpbmVIZWlnaHQtLWJhc2U6IDI0cHg7IC8vIGZvciBtZWRpdW0gYW5kIGxhcmdlIGZvbnQgc2l6ZVxuJHhwby1saW5lSGVpZ2h0LS1tZWRpdW06IDE4cHg7IC8vIGZvciBtZWRpdW0gZm9udCBzaXplc1xuJHhwby1saW5lSGVpZ2h0LS1zbWFsbDogMTZweDsgLy8gZm9yIHNtYWxsIGZvbnQgc2l6ZVxuXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1zbWFsbDogMS4xNDM7IC8vIERFUFJFQ0FURURcbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLW1lZGl1bTogMS4xNDM7IC8vIERFUFJFQ0FURURcbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLWxhcmdlOiAxLjI4NjsgLy8gREVQUkVDQVRFRFxuXG4keHBvLWxldHRlclNwYWNpbmctLWJhc2U6IDAuMnB4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tc21hbGw6IDAuM3B4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbWVkaXVtOiAwLjMzcHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1sYXJnZTogMC4zOHB4O1xuXG4vLyA9PT09IExheW91dCA9PT09XG4keHBvLWNvbnRlbnRTcGFjaW5nOiAxNnB4O1xuXG4vLyBCcmVha3BvaW50c1xuJHhwby1icmVha3BvaW50LS1zbWFsbC14czogNDgwcHg7XG4keHBvLWJyZWFrcG9pbnQtLXNtYWxsOiA2MDBweDtcbiR4cG8tYnJlYWtwb2ludC0tbWVkaXVtOiA3NjhweDtcbiR4cG8tYnJlYWtwb2ludC0tbGFyZ2U6IDEwMjVweDtcbiR4cG8tYnJlYWtwb2ludC0teExhcmdlOiAxNDQwcHg7XG5cbiR4cG8tc2VsZWN0LWJhY2tncm91bmRDb2xvci1vcHRpb25PbkhvdmVyOiAkeHBvLWJsdWUtLTIwMDtcblxuLy8gLS0gTkdYLVVJIFNwZWNpZmljIC0tXG4kbmd4LWZvb3Rlci1oZWlnaHQ6IDQycHg7XG4kbmd4LXRhYi1oZWFkZXItaGVpZ2h0OiA0MHB4O1xuJG5neC10YWJsZS1yb3ctaGVpZ2h0OiAzMHB4O1xuXG4kbmd4LWljb24tc2l6ZTogMjRweDsgLy8gVE9ETzogRGVwcmVjYXRlIHRoaXMgdmFyaWFibGVcbiR4cG8taWNvbi1zaXplLS1zdGFuZGFyZDogMjBweDtcbiR4cG8taWNvbi1zaXplLS1zbWFsbDogMThweDtcbiR4cG8taWNvbi1zaXplLS1sYXJnZTogMjRweDtcblxuJG5neC10aGVCbGFja1JvYm90bzogOTAwO1xuXG4keHBvLWlucHV0LWhlaWdodC0tZGVmYXVsdDogMzBweDtcbiR4cG8taW5wdXQtaGVpZ2h0LS10d29MaW5lczogNDVweDtcblxuJG5neC1pbnB1dC1ib3JkZXItd2lkdGg6IDFweDtcblxuJG5neC1pbnB1dC1jb2xvci1vbkhvdmVyOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA7XG4kbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1kYXJrOiAkeHBvLWJsYWNrO1xuJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tbGlnaHQ6ICR4cG8td2hpdGU7XG4kbmd4LWlucHV0LWNvbG9yLWJvcmRlcjogJHhwby1ncmV5LS0zMDA7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1kYXJrOiAkeHBvLWdyZXktLTM1MDtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZS0tbGlnaHRlcjogJHhwby13aGl0ZTtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWxpZ2h0OiAkeHBvLWdyZXktLTgwO1xuXG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0OiAzNnB4O1xuJG5neC1idXR0b24tbGluZUhlaWdodC0tc21hbGw6IDI4cHg7XG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0LS1sYXJnZTogNDZweDtcbiRuZ3gtYnV0dG9uLWFuaW1hdGlvbkR1cmF0aW9uOiAyMDBtcztcblxuJG5neC1oZWFkZXItaGVpZ2h0OiA0MHB4O1xuLy8gRm9yIHVzZSB3aGVuIGEgaG92ZXIgaXMgbmVlZGVkIG9uIGEgd2hpdGUgYmFja2dyb3VuZC5cbiRuZ3gtd2hpdGVBZmZvcmRhbmNlLW9uSG92ZXItY29sb3I6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDtcblxuJG5neC1tZW51LWJhY2tncm91bmRDb2xvcjogJHhwby13aGl0ZTtcblxuLypcbioqID09PT0gU05BQ0tCQVIgREVQUkVDQVRFRCBWQVJJQUJMRVMgPT09PVxuKi9cblxuLypcbioqIFdBUk5JTkc6IFRISVMgVkFSSUFCTEVTIFdJTEwgQkUgUkVNT1ZFRCBTT09OXG4qL1xuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLXN1Y2Nlc3M6ICR4cG8tZ3JlZW4tLTQ1MDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLWVycm9yOiAkeHBvLXJlZC0tMTUwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0taW5mbzogIzAyODhkMTtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLXdhcm46ICNmYmMwMmQ7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0tc3VjY2VzczogJHhwby1ncmVlbi0tNjAwO1xuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1lcnJvcjogJHhwby1yZWQtLTIwMDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1pbmZvOiAjMDE1NzliO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrQmFyLW1hcmdpblRvcDogMzJweDtcblxuLy9CYWRnZVxuJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1uZWdhdGl2ZTogJHhwby1yZWQtLTUwO1xuJF9tYXRCYWRnZUNvbnRlbnQtY29sb3ItLW5lZ2F0aXZlOiAjZGQyYzAwO1xuJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1wb3NpdGl2ZTogJHhwby1ncmVlbi0tNTA7XG5cbiRuZ3gtbWVudS1iYWNrZ3JvdW5kQ29sb3Itb25Ib3ZlcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTA7XG4vLyBVc2VkIGFzIGEgc3BhY2VyIGZvciBmbGV4ZWQgY2hpbGRyZW5cbi8vIFRPRE86IE1vdmUgYWxsIGluc3RhbmNlcyB0byB0aGUgdXRpbGl0aWVzIGRlZmluaXRpb25cbi5mbGV4LS1zdHJldGNoIHtcbiAgZmxleDogMTtcbn1cblxuLy8gLS0tIERpYWxvZyAtLS1cbiRuZ3gtZGlhbG9nLWhlYWRlci1oZWlnaHQ6IDQ4cHg7XG4kbmd4LWRpYWxvZy1mb290ZXItaGVpZ2h0OiA2NHB4O1xuXG4vLyAtLS0gVHJhbnNpdGlvbnMgLS0tXG4keHBvLXRyYW5zaXRpb24tMjAwOiBhbGwgMjAwbXMgZWFzZS1vdXQ7XG5cbi8vIC0tLSBDb250ZXh0dWFsIEhlYWRlciAtLS1cbiRuZ3gtQ29udGV4dHVhbEhlYWRlci1zZXBhcmF0b3ItLWNvbG9yOiAkeHBvLWdyZXktLTM1MDtcbiIsIi8qISBCYXNlIHN0eWxlcywgbWFkZSB3aXRoIG5vcm1hbGl6ZS5jc3MgdjcuMC4wICovXG5AaW1wb3J0ICcuL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuL2ZvbnRzJztcblxuKixcbio6OmJlZm9yZSxcbio6OmFmdGVyIHtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4qOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuOnJvb3Qge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLXJvb3Q7XG59XG5cbmh0bWwsXG5ib2R5IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IDA7XG59XG5cbmh0bWwge1xuICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1iYXNlO1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xufVxuXG5ib2R5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1iYWNrZ3JvdW5kQ29sb3ItLWJvZHk7XG4gIGNvbG9yOiAkeHBvLWZvbnRDb2xvci0tcHJpbWFyeTtcbiAgZm9udC1mYW1pbHk6ICR4cG8tZm9udEZhbWlseS0tcHJpbWFyeTtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tbm9ybWFsO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1sZXR0ZXJTcGFjaW5nLS1iYXNlO1xuICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1iYXNlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbmFydGljbGUsXG5hc2lkZSxcbmZvb3RlcixcbmhlYWRlcixcbm5hdixcbnNlY3Rpb24ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuaDEsXG5oMixcbmgzIHtcbiAgbWFyZ2luOiAoJHhwby1jb250ZW50U3BhY2luZyAvIDIpIDA7XG59XG5cbmgxIHtcbiAgQGluY2x1ZGUgVGV4dFRyZWF0bWVudC1oZWFkZXItLWxhcmdlKCk7XG59XG5cbmgyIHtcbiAgQGluY2x1ZGUgVGV4dFRyZWF0bWVudC1oZWFkZXItLW1lZGl1bSgpO1xufVxuXG5oMyB7XG4gIEBpbmNsdWRlIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1zbWFsbCgpO1xufVxuXG5wIHtcbiAgbWFyZ2luOiAwO1xufVxuXG5maWdjYXB0aW9uLFxuZmlndXJlLFxubWFpbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG5ociB7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR4cG8tZ3JleS0tMzAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogJHhwby1jb250ZW50U3BhY2luZyAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAkeHBvLWJsdWUtLTQwMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBvYmplY3RzO1xuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAkeHBvLWJsdWUtLTMwMDtcbiAgfVxufVxuXG51bCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG5kdCB7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG59XG5cbmRkIHtcbiAgbWFyZ2luOiAwIDAgKCR4cG8tY29udGVudFNwYWNpbmcgLyAyKTtcbn1cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xufVxuXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tMzAwO1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG4gIHBhZGRpbmc6IDAuMmVtIDAuM2VtO1xufVxuXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuYXVkaW8sXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBtYXJnaW46IDA7XG59XG5cbmJ1dHRvbixcbmlucHV0IHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG5idXR0b24sXG5odG1sIFt0eXBlPSdidXR0b24nXSxcblt0eXBlPSdyZXNldCddLFxuW3R5cGU9J3N1Ym1pdCddIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPSdidXR0b24nXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPSdyZXNldCddOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9J3N1Ym1pdCddOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT0nYnV0dG9uJ106LW1vei1mb2N1c3JpbmcsXG5bdHlwZT0ncmVzZXQnXTotbW96LWZvY3VzcmluZyxcblt0eXBlPSdzdWJtaXQnXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG5cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuXG5wcm9ncmVzcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG5bdHlwZT0nY2hlY2tib3gnXSxcblt0eXBlPSdyYWRpbyddIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMDtcbn1cblxuW3R5cGU9J251bWJlciddOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9J251bWJlciddOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5bdHlwZT0nc2VhcmNoJ10ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG59XG5cblt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcblt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICBmb250OiBpbmhlcml0O1xufVxuXG5kZXRhaWxzLFxubWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xufVxuXG5jYW52YXMge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuIiwiQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvIFdpZGUgQmxhY2snO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIHNyYzogdXJsKCdodHRwczovL3hwb2RvdGNvbS5henVyZWVkZ2UubmV0L3hwby9maWxlcy9yb2JvdG8td2lkZS0tYmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgdXJsKCdodHRwczovL3hwb2RvdGNvbS5henVyZWVkZ2UubmV0L3hwby9maWxlcy9yb2JvdG8td2lkZS0tYmxhY2sud29mZicpIGZvcm1hdCgnd29mZicpO1xufVxuIiwiQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1zbWFsbCgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tc21hbGw7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1zbWFsbDtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLXNtYWxsO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC1oZWFkZXItLW1lZGl1bSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbWVkaXVtO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbWVkaXVtO1xuICBsaW5lLWhlaWdodDogJHhwby1oZWFkZXItbGluZUhlaWdodC0tbWVkaXVtO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC1oZWFkZXItLWxhcmdlKCkge1xuICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1sYXJnZTtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLWxhcmdlO1xuICBsaW5lLWhlaWdodDogJHhwby1oZWFkZXItbGluZUhlaWdodC0tbGFyZ2U7XG59XG5cbi8vIFJlZ3VsYXIgdGV4dCBtaXhpbnNcbkBtaXhpbiBUZXh0VHJlYXRtZW50LS1zbWFsbCgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1zbWFsbDtcbiAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc21hbGw7XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LS1tZWRpdW0oKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tbGFyZ2UoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbGFyZ2U7XG59XG4iXX0= */
@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;
}
/*
  1. The "mat-raised-button" is deprecated but we're keeping
      the styles around so things don't break so badly.
*/
/*
  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 */
/*
** ==== 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.
*/
/*
** ==== 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. 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;
}
.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);
}
[mat-button].mat-button,
[mat-flat-button].mat-flat-button,
[mat-raised-button].mat-raised-button,
[mat-icon-button].mat-icon-button,
[mat-stroked-button].mat-stroked-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-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-icon-button].mat-icon-button {
  padding: 0;
}
[mat-flat-button].mat-flat-button,
[mat-raised-button].mat-raised-button {
  border-style: solid;
  border-width: 2px;
  box-shadow: none !important;
  color: #ffffff;
}
[mat-flat-button].mat-flat-button, [mat-flat-button].mat-flat-button.mat-primary,
[mat-raised-button].mat-raised-button,
[mat-raised-button].mat-raised-button.mat-primary {
  background-color: #1976d2;
  border-color: #1976d2;
}
[mat-flat-button].mat-flat-button:hover, [mat-flat-button].mat-flat-button.mat-primary:hover,
[mat-raised-button].mat-raised-button:hover,
[mat-raised-button].mat-raised-button.mat-primary:hover {
  background-color: #2196f3;
  border-color: #2196f3;
}
[mat-flat-button].mat-flat-button:focus, [mat-flat-button].mat-flat-button:active, [mat-flat-button].mat-flat-button.mat-primary:focus, [mat-flat-button].mat-flat-button.mat-primary:active,
[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-flat-button].mat-flat-button.mat-warn,
[mat-raised-button].mat-raised-button.mat-warn {
  background-color: #d50000;
  border-color: #d50000;
}
[mat-flat-button].mat-flat-button.mat-warn:hover,
[mat-raised-button].mat-raised-button.mat-warn:hover {
  background-color: #ff2222;
  border-color: #ff2222;
}
[mat-flat-button].mat-flat-button.mat-warn:focus, [mat-flat-button].mat-flat-button.mat-warn:active,
[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-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,
[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-stroked-button {
  background-color: transparent;
  border-color: #0d47a1;
  color: #0d47a1;
}
.mat-stroked-button:hover {
  background-color: #e3f2fd;
  border-color: #1976d2;
  color: #1976d2;
}
.mat-stroked-button:focus, .mat-stroked-button:active {
  background-color: #e3f2fd;
  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: #f6f6f6;
  border-color: #bdbdbd;
  color: #bdbdbd;
  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-flat-button].mat-flat-button,
[mat-raised-button].mat-raised-button,
[mat-stroked-button].mat-stroked-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-button].mat-button.xpo-SmallButton,
[mat-flat-button].mat-flat-button.xpo-SmallButton,
[mat-raised-button].mat-raised-button.xpo-SmallButton,
[mat-stroked-button].mat-stroked-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-flat-button].mat-flat-button.xpo-SmallButton .mat-icon,
[mat-raised-button].mat-raised-button.xpo-SmallButton .mat-icon,
[mat-stroked-button].mat-stroked-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-flat-button].mat-flat-button.xpo-SmallButton .mat-button-wrapper,
[mat-raised-button].mat-raised-button.xpo-SmallButton .mat-button-wrapper,
[mat-stroked-button].mat-stroked-button.xpo-SmallButton .mat-button-wrapper,
[mat-icon-button].mat-icon-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: 30px;
}
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-button].mat-button.xpo-LargeButton,
[mat-flat-button].mat-flat-button.xpo-LargeButton,
[mat-raised-button].mat-raised-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.143rem;
  height: 50px;
  line-height: normal;
}
[mat-button].mat-button.xpo-LargeButton .mat-button-toggle-button,
[mat-flat-button].mat-flat-button.xpo-LargeButton .mat-button-toggle-button,
[mat-raised-button].mat-raised-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;
  padding: 2px;
}
.xpo-ActionButton .mat-icon {
  font-size: 1.143rem;
  padding: 4px;
}
.xpo-ActionButton:focus, .xpo-ActionButton:active {
  border: 1px solid #d8d8d8;
  color: #2196f3;
  outline: none;
}
.xpo-ActionButton:hover {
  color: #212121;
}
.mat-button-focus-overlay,
.mat-button-toggle-focus-overlay {
  opacity: 0 !important;
}
[mat-stroked-button].mat-stroked-button,
[mat-raised-button].mat-raised-button,
[mat-flat-button].mat-flat-button {
  border-radius: 2px;
}
.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: 30px;
  padding: 0 8px;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option:hover {
  background-color: #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: normal;
  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 {
  border-color: #0d47a1;
  border-style: solid;
  color: #0d47a1;
  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: #e3f2fd;
}
.mat-button-toggle.mat-button-toggle-standalone:active,
.mat-button-toggle:active {
  background-color: #f3f3f3;
}
.mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-checked,
.mat-button-toggle.mat-button-toggle-checked {
  background-color: #2196f3;
  border-color: #2196f3;
  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 {
  line-height: inherit;
  padding: 0 20px;
}
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-button-toggle + .mat-button-toggle:not(.mat-button-toggle-checked), mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle:not(.mat-button-toggle-checked),
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-button-toggle + .mat-button-toggle:not(.mat-button-toggle-checked),
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle:not(.mat-button-toggle-checked) {
  border-left-color: #0d47a1;
}
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-button-toggle + .mat-button-toggle.mat-button-toggle-checked, mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle.mat-button-toggle-checked,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-button-toggle + .mat-button-toggle.mat-button-toggle-checked,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle.mat-button-toggle-checked {
  border-left-color: #2196f3;
}
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: #0d47a1;
  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.mat-standard-chip.xpo-tag {
  background-color: #f3f3f3;
  border: 1px solid #d8d8d8;
  border-radius: 2px;
}
mat-chip.mat-chip.mat-standard-chip.xpo-tag:hover {
  background-color: #ffffff;
}
mat-chip.mat-chip.mat-standard-chip.xpo-tag .mat-chip-remove, mat-chip.mat-chip.mat-standard-chip.xpo-tag .mat-chip-remove:hover {
  color: #212121;
  opacity: 1;
}
mat-chip.mat-chip.mat-standard-chip.xpo-tag .mat-icon {
  font-size: 1.285rem;
}
mat-chip.mat-chip.mat-standard-chip.xpo-tag--large {
  color: #000000;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-size: 1rem;
  font-weight: normal;
  height: 30px;
}
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;
}
.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-wrapper {
  left: 0;
  top: -24px;
}
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-size: 1.285rem;
  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;
}
mat-form-field.mat-form-field-type-xpo-date-range-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-xpo-date-range-input .mat-form-field-label mat-label {
  align-items: center;
  display: inline-flex;
}
mat-form-field.mat-form-field-type-xpo-date-range-input .mat-form-field-label mat-label .mat-icon {
  padding-left: 8px;
}
mat-form-field.mat-form-field-type-xpo-date-range-input .mat-form-field-label-wrapper {
  top: -24px;
}
.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 [mat-dialog-title].mat-dialog-title {
  color: #212121;
  display: flex;
  flex: 1;
  flex-direction: row;
  flex-shrink: 0;
  font-size: 26px;
  font-weight: 500;
  justify-content: space-between;
  line-height: 26px;
  line-height: normal;
  margin: 0 24px;
  padding-bottom: 8px;
  padding-top: 38px;
  text-transform: none;
}
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 {
  margin: 0;
  padding: 8px 24px 36px;
}
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: 16px;
}
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;
  justify-content: space-between;
  margin: 0 24px;
  padding: 24px 0;
}
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-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;
}
.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(.mat-expanded) .mat-content::before,
.mat-expansion-panel:not(.mat-expanded) .mat-content::before {
  content: 'add';
  font-family: 'Material Icons';
  font-size: 24px;
}
.mat-accordion > .mat-expansion-panel.mat-expanded .mat-content::before,
.mat-expansion-panel.mat-expanded .mat-content::before {
  content: 'remove';
  font-family: 'Material Icons';
  font-size: 24px;
}
.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-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-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-wrapper {
  left: 0;
  top: -24px;
}
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.mat-form-field-type-mat-input .mat-form-field-label-wrapper {
  top: -24px;
}
.xpo-Label--wrap .mat-checkbox-layout,
.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 {
  color: #1976d2;
  cursor: pointer;
  font-weight: 500;
}
.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--regular {
  font-weight: 400;
}
.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;
}
.xpo-Link .mat-icon {
  font-size: 1.428rem;
  height: 1.143em;
  margin-left: 4px;
  margin-right: 4px;
  vertical-align: middle;
  width: 1.143em;
}
.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;
  box-shadow: 0 1px 1px -1px rgba(0, 0, 0, 0.2), -1px -1px 1px -1px rgba(0, 0, 0, 0.4), 0 1px 1px 0 rgba(0, 0, 0, 0.14);
  margin-top: 2px;
  min-height: unset;
  overflow: visible;
  position: relative;
}
div.mat-menu-panel .mat-menu-content:not(:empty) {
  padding-bottom: 0;
  padding-top: 0;
}
div.mat-menu-panel .mat-menu-item {
  color: #6f6f6f;
  height: 1.75em;
  line-height: 1.75em;
  padding: 0 8px;
}
div.mat-menu-panel .mat-menu-item:disabled {
  color: #9b9b9b;
  cursor: not-allowed;
}
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-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;
  }
}
.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-tab-header-pagination {
  background-color: #f6f6f6;
  border: 1px solid #d8d8d8;
  box-shadow: none;
  max-width: 24px;
  min-width: 0 !important;
  width: 29px;
}
:not(.xpo-Tabs-wideNav) .mat-tab-header-pagination {
  max-width: 24px;
}
.xpo-Tabs-wideNav .mat-tab-header-pagination {
  max-width: 40px;
  width: 55px;
}
.mat-tab-header-pagination .mat-tab-header-pagination-chevron {
  height: 11.34px;
  width: 11.34px;
}
.mat-tab-label-content {
  padding-bottom: 0 !important;
}
.mat-tab-label-content span {
  line-height: normal;
}
.mat-tab-label-content .xpo-icon,
.mat-tab-label-content .mat-icon,
.mat-tab-label-content .mat-chip,
.mat-tab-label-content .mat-chip-list-wrapper {
  margin-left: 8px;
}
.mat-tab-label-content .mat-chip.xpo-Chip--small {
  font-size: 11px;
  line-height: 16px;
  min-height: 16px;
}
.mat-tab-label-content .mat-chip.xpo-Chip--small .mat-icon {
  height: 11px;
  width: 11px;
}
.mat-tab-label-content > .xpo-icon:first-child,
.mat-tab-label-content > .mat-icon:first-child,
.mat-tab-label-content > .mat-chip:first-child {
  margin-left: 12px;
}
.mat-tab-label-content > .mat-icon {
  align-items: center;
  display: flex;
  font-size: 1.143rem;
  width: auto;
}
.mat-tab-group.mat-primary .mat-ink-bar,
.mat-tab-nav-bar.mat-primary .mat-ink-bar {
  background-color: #0d94f4;
}
.mat-tab-list .mat-tab-labels .mat-tab-label.mat-tab-label-active {
  color: #000000;
}
.mat-tab-labels .mat-tab-label,
.mat-tab-nav-bar .mat-tab-link {
  color: #000000;
  height: 40px;
  line-height: 40px;
  margin-left: 0;
  min-width: 0;
  opacity: 1;
  padding: 4px 8px;
}
.mat-tab-labels .mat-tab-label:first-child,
.mat-tab-nav-bar .mat-tab-link:first-child {
  margin-left: 0;
}
.mat-tab-labels .mat-tab-label:hover, .mat-tab-labels .mat-tab-label.mat-tab-label-active,
.mat-tab-nav-bar .mat-tab-link:hover,
.mat-tab-nav-bar .mat-tab-link.mat-tab-label-active {
  color: #4a4a4a;
}
.mat-tab-labels .mat-tab-label.mat-tab-disabled,
.mat-tab-nav-bar .mat-tab-link.mat-tab-disabled {
  color: #d8d8d8;
}
.mat-tab-link:hover, .mat-tab-link:focus {
  text-decoration: none;
}
/*
   * Most of our cases we have the tab contents take up the whole space of the view,
   *  it hard to access this selector with view encapsulation on, so we can default it to
   *  100%. the user can always wrap the tabs in a wrapper and dictate the height there.
   */
.mat-tab-body-wrapper {
  height: 100%;
}
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-ink-bar, .xpo-PrimaryTabs.mat-tab-group .mat-ink-bar,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-ink-bar,
.xpo-AlternateTabs.mat-tab-group .mat-ink-bar {
  display: none;
}
.xpo-PrimaryTabs.mat-tab-nav-bar,
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-header, .xpo-PrimaryTabs.mat-tab-group,
.xpo-PrimaryTabs.mat-tab-group .mat-tab-header,
.xpo-AlternateTabs.mat-tab-nav-bar,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-header,
.xpo-AlternateTabs.mat-tab-group,
.xpo-AlternateTabs.mat-tab-group .mat-tab-header {
  border-bottom: none;
}
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-list, .xpo-PrimaryTabs.mat-tab-group .mat-tab-list,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-list,
.xpo-AlternateTabs.mat-tab-group .mat-tab-list {
  border-bottom: 1px solid #d8d8d8;
}
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label,
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link, .xpo-PrimaryTabs.mat-tab-group .mat-tab-header .mat-tab-label,
.xpo-PrimaryTabs.mat-tab-group .mat-tab-links .mat-tab-link,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link,
.xpo-AlternateTabs.mat-tab-group .mat-tab-header .mat-tab-label,
.xpo-AlternateTabs.mat-tab-group .mat-tab-links .mat-tab-link {
  background-color: #ffffff;
  border-bottom: none;
  border-left: 1px solid #d8d8d8;
  border-top: 1px solid #d8d8d8;
  margin-left: 0;
  padding: 0 12px;
}
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label:last-child,
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link:last-child, .xpo-PrimaryTabs.mat-tab-group .mat-tab-header .mat-tab-label:last-child,
.xpo-PrimaryTabs.mat-tab-group .mat-tab-links .mat-tab-link:last-child,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label:last-child,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link:last-child,
.xpo-AlternateTabs.mat-tab-group .mat-tab-header .mat-tab-label:last-child,
.xpo-AlternateTabs.mat-tab-group .mat-tab-links .mat-tab-link:last-child {
  border-right: 1px solid #d8d8d8;
}
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label:first-child,
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link:first-child, .xpo-PrimaryTabs.mat-tab-group .mat-tab-header .mat-tab-label:first-child,
.xpo-PrimaryTabs.mat-tab-group .mat-tab-links .mat-tab-link:first-child,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label:first-child,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link:first-child,
.xpo-AlternateTabs.mat-tab-group .mat-tab-header .mat-tab-label:first-child,
.xpo-AlternateTabs.mat-tab-group .mat-tab-links .mat-tab-link:first-child {
  margin-left: 0;
}
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label.mat-tab-label-active,
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link.mat-tab-label-active, .xpo-PrimaryTabs.mat-tab-group .mat-tab-header .mat-tab-label.mat-tab-label-active,
.xpo-PrimaryTabs.mat-tab-group .mat-tab-links .mat-tab-link.mat-tab-label-active,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label.mat-tab-label-active,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link.mat-tab-label-active,
.xpo-AlternateTabs.mat-tab-group .mat-tab-header .mat-tab-label.mat-tab-label-active,
.xpo-AlternateTabs.mat-tab-group .mat-tab-links .mat-tab-link.mat-tab-label-active {
  border-top: 4px solid #0d47a1;
  overflow: inherit;
}
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-tab-label-content,
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-tab-label-content, .xpo-PrimaryTabs.mat-tab-group .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-tab-label-content,
.xpo-PrimaryTabs.mat-tab-group .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-tab-label-content,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-tab-label-content,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-tab-label-content,
.xpo-AlternateTabs.mat-tab-group .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-tab-label-content,
.xpo-AlternateTabs.mat-tab-group .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-tab-label-content {
  margin-bottom: 3px;
}
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-chip,
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-chip, .xpo-PrimaryTabs.mat-tab-group .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-chip,
.xpo-PrimaryTabs.mat-tab-group .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-chip,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-chip,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-chip,
.xpo-AlternateTabs.mat-tab-group .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-chip,
.xpo-AlternateTabs.mat-tab-group .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-chip {
  background-color: #757575;
  color: white;
}
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label.mat-tab-label-active::after,
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link.mat-tab-label-active::after, .xpo-PrimaryTabs.mat-tab-group .mat-tab-header .mat-tab-label.mat-tab-label-active::after,
.xpo-PrimaryTabs.mat-tab-group .mat-tab-links .mat-tab-link.mat-tab-label-active::after,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label.mat-tab-label-active::after,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link.mat-tab-label-active::after,
.xpo-AlternateTabs.mat-tab-group .mat-tab-header .mat-tab-label.mat-tab-label-active::after,
.xpo-AlternateTabs.mat-tab-group .mat-tab-links .mat-tab-link.mat-tab-label-active::after {
  background-color: white;
  bottom: -1px;
  content: '';
  display: block;
  height: 1px;
  left: 0;
  position: absolute;
  right: 0;
}
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active), .xpo-PrimaryTabs.mat-tab-group .mat-tab-header .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-PrimaryTabs.mat-tab-group .mat-tab-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-header .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-AlternateTabs.mat-tab-group .mat-tab-header .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-AlternateTabs.mat-tab-group .mat-tab-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) {
  border-top: 4px solid #2196f3;
}
.xpo-PrimaryTabs.mat-tab-nav-bar .mat-tab-header .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-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content, .xpo-PrimaryTabs.mat-tab-group .mat-tab-header .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-PrimaryTabs.mat-tab-group .mat-tab-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-AlternateTabs.mat-tab-nav-bar .mat-tab-header .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-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-AlternateTabs.mat-tab-group .mat-tab-header .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-AlternateTabs.mat-tab-group .mat-tab-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content {
  margin-bottom: 3px;
}
.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;
  top: 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.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-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-label-wrapper, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-label-wrapper {
  overflow: visible;
  right: 8px;
  top: -43px;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-form-field-label, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-label {
  color: #9b9b9b;
  font-size: 1rem;
  font-weight: 400;
  letter-spacing: normal;
  max-width: 100% !important;
  transform: unset !important;
}
.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: 1rem;
  overflow: visible;
  padding: 16px;
  position: relative;
}
.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;
}
button.xpo-DownloadButton {
  align-items: center;
  display: flex;
}
button.xpo-DownloadButton .mat-spinner {
  display: inline-block;
  left: 4px;
}
.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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RTtBRGo1Qm5GO0FDMDVCRTtFQUNFLGlDRG9xRmU7QUEzakhuQjtBQzI1QkU7OztFQUtNLHdDRHd0RmU7QUFsbkh2QjtBQzgvQkU7RUFuckdBLDBIQUVtRTtFQW1yR2pFLHVCRHFzR1M7RUNwc0dULDBCRCt1R2M7QUExdUlsQjtBQ3cvQkU7RUFvRUUsaUNENCtFbUI7QUFwaUh2QjtBQ28vQkU7O0VBeUVFLGtDQVY2QjtBRDlpQ2pDO0FDKytCRTs7RUE4RUUsNEZBQThFO0FEeGpDbEY7QUMwK0JFOztFQW1GRSwyRkFBNkU7QUR4akNqRjtBQ3ErQkU7O0VBd0ZFLG1CQXhCcUI7QURoaUN6QjtBQ2crQkU7O0VBNkZFLG1CQTVCa0Q7QUQ1aEN0RDtBQzIxQkU7RUFDRSx5QkQrcUZtQjtFQzlxRm5CLFlEcXJGZTtBQTdnSG5CO0FDMjFCRTtFQUlJLHVDQUE2RTtBRDMxQm5GO0FDbzJCRTtFQUNFLGlDRG9xRmU7QUFyZ0huQjtBQ2szQkU7OztFQVJNLHVDRG9wRmU7QUF4L0d2QjtBQ3c4QkU7RUFvRUUsZ0NEMG1Ga0I7QUFsbkh0QjtBQ284QkU7O0VBeUVFLGtDQVY2QjtBRDkvQmpDO0FDKzdCRTs7RUE4RUUsMkZBQThFO0FEeGdDbEY7QUMwN0JFOztFQW1GRSwwRkFBNkU7QUR4Z0NqRjtBQ3E3QkU7O0VBd0ZFLG1CQXhCcUI7QURoL0J6QjtBQ2c3QkU7O0VBNkZFLG1CQTVCa0Q7QUQ1K0J0RDtBQzJ5QkU7RUFDRSx5QkQ2eUZrQjtFQzV5RmxCLFlEcXJGZTtBQTc5R25CO0FDMnlCRTtFQUlJLHNDQUE2RTtBRDN5Qm5GO0FDb3pCRTtFQUNFLGlDRG9xRmU7QUFyOUduQjtBQ2swQkU7OztFQVJNLHNDRGt4RmM7QUF0a0h0QjtBQ3M2QkU7RUFqc0dBLHdIQUVtRTtBRDZ4RXJFO0FDczZCRTtFQUNFLGNEaW1GbUI7QUFwZ0h2QjtBQ2s2QkU7RUFJSSxjRDBoRmlCO0FBNTdHdkI7QUM4NUJFO0VBUUksY0RvcEZnQjtBQXRqSHRCO0FDczZCRTtFQUNFLDBCRCttRzJCO0FBbGhJL0I7QUEzQkU7RUFJSSxhQUFhO0FB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RDtBQUVBO0VDbjZGTSxXQUFXO0VBQ1gsV0E1QzRDO0FEaTlGbEQ7QUMvNUZNO0VBQ0UsV0FBZ0I7QURrNkZ4QjtBQUVBO0VDOTVGUSxVQUFVO0VBQ1YsWUFBaUI7QURnNkZ6QjtBQzM1Rk07RUFDRSxZQUFpQjtBRDg1RnpCO0FBRUE7RUMxNUZRLFdBQVc7RUFDWCxXQUFnQjtBRDQ1RnhCO0FBeXJDRTtFQUNFLFVBQVU7QUF0ckNkO0FBcTlDQTtFQUNFLE9BQU87QUFsOUNUO0FBcTlDQTtFQUNFLDhCQUE4QjtBQWw5Q2hDIiwiZmlsZSI6Inhwby1pbnRlcm5hbC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVE9ETzogUmVtb3ZlIHdoZW4gY2hlY2tib3ggaXMgdGhlbWVkXG4vLyBXZSBjYW4gdXNlIHJlbGF0aXZlIGltcG9ydHMgZm9yIGltcG9ydHMgZnJvbSB0aGUgY2RrIGJlY2F1c2Ugd2UgYnVuZGxlIGV2ZXJ5dGhpbmdcbi8vIHVwIGludG8gYSBzaW5nbGUgZmxhdCBzY3NzIGZpbGUgZm9yIG1hdGVyaWFsLlxuQGltcG9ydCAnfkBhbmd1bGFyL2Nkay9vdmVybGF5JztcbkBpbXBvcnQgJ35AYW5ndWxhci9jZGsvYTExeSc7XG4vLyBcbkBpbXBvcnQgJ35AYW5ndWxhci9tYXRlcmlhbC90aGVtaW5nJztcblxuLy8gQ29yZSBzdHlsZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBhcHBseSBtYXRlcmlhbCBkZXNpZ24gdHJlYXRtZW50cyB0byBhbnkgZWxlbWVudC5cblxuLy8gXG4vLyBcbi8vIFxuLy8gXG4vLyBcbi8vIFxuLyohIEJhc2Ugc3R5bGVzLCBtYWRlIHdpdGggbm9ybWFsaXplLmNzcyB2Ny4wLjAgKi9cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tc21hbGwoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLXNtYWxsO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1zbWFsbDtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1tZWRpdW0oKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLW1lZGl1bTtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLW1lZGl1bTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLW1lZGl1bTtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1sYXJnZSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbGFyZ2U7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1sYXJnZTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLWxhcmdlO1xufVxuXG4vLyBSZWd1bGFyIHRleHQgbWl4aW5zXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tc21hbGwoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tbWVkaXVtKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtLWxhcmdlKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLWxhcmdlO1xufVxuXG5cbi8qXG4qKiA9PT09IEJhc2ljIGNvbG9ycyA9PT09XG4qL1xuXG4vKlxuKiogPT09PSBYUE8gQnJhbmQgQ29sb3IgUGFsZXR0ZSA9PT09XG4qL1xuXG4vLyBYUE8gUmVkXG4keHBvLWJyYW5kLXJlZDogI2NjMDAwMDtcbiR4cG8tYnJhbmQtcmVkLS05MDA6ICR4cG8tYnJhbmQtcmVkO1xuJHhwby1icmFuZC1yZWQtLTgwMDogI2U0MjEwZTtcbiR4cG8tYnJhbmQtcmVkLS03MDA6ICNmMzJhMTM7XG4keHBvLWJyYW5kLXJlZC0tNjAwOiAjZmYzMzE3O1xuJHhwby1icmFuZC1yZWQtLTUwMDogI2ZmMzkxYztcbiR4cG8tYnJhbmQtcmVkLS00MDA6ICNmZjVlM2Q7XG4keHBvLWJyYW5kLXJlZC0tMzAwOiAjZmY3ZTYwO1xuJHhwby1icmFuZC1yZWQtLTIwMDogI2ZmYTQ4ZTtcbiR4cG8tYnJhbmQtcmVkLS0xMDA6ICNmZmM4YmE7XG4keHBvLWJyYW5kLXJlZC0tNTA6ICNmY2U4ZTY7XG5cbi8vIFhQTyBCbGFja1xuJHhwby1ibGFjazogIzAwMDAwMDtcbiR4cG8tYnJhbmQtYmxhY2stLTkwMDogJHhwby1ibGFjaztcbiR4cG8tYnJhbmQtYmxhY2stLTgwMDogIzI2MjYyNjtcbiR4cG8tYnJhbmQtYmxhY2stLTcwMDogIzU1NTU1NTtcbiR4cG8tYnJhbmQtYmxhY2stLTYwMDogIzdiN2I3YjtcbiR4cG8tYnJhbmQtYmxhY2stLTUwMDogIzlkOWQ5ZDtcbiR4cG8tYnJhbmQtYmxhY2stLTQwMDogIzlkOWQ5ZDtcbiR4cG8tYnJhbmQtYmxhY2stLTMwMDogI2M0YzRjNDtcbiR4cG8tYnJhbmQtYmxhY2stLTIwMDogI2Q5ZDlkOTtcbiR4cG8tYnJhbmQtYmxhY2stLTEwMDogI2U5ZTllOTtcbiR4cG8tYnJhbmQtYmxhY2stLTUwOiAjZjVmNWY1O1xuXG4vLyBYUE8gRGFyayBHcmV5XG4keHBvLWJyYW5kLWRhcmstZ3JleTogIzQxNGE0YztcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS05MDA6ICMyMjI4MmI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tODAwOiAkeHBvLWJyYW5kLWRhcmstZ3JleTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS03MDA6ICM2MjY4NmM7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNjAwOiAjNzU3ZDgxO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTUwMDogI2EwYTZhYTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS00MDA6ICNiZWM1Yzk7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMzAwOiAjZTBlN2ViO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTIwMDogI2ViZjJmNjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0xMDA6ICNmMGY3ZmI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNTA6ICNmNGZjZmY7XG5cbi8vIFhQTyBNZWRpdW0gR3JleVxuJHhwby1icmFuZC1tZWRpdW0tZ3JleTogIzg0ODQ4NDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTkwMDogIzJlMmUyZTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTgwMDogIzUwNTA1MDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTcwMDogIzcwNzA3MDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTYwMDogJHhwby1icmFuZC1tZWRpdW0tZ3JleTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwMDogI2FmYWZhZjtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTQwMDogI2NkY2RjZDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTMwMDogI2VlZWVlZTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDogI2YzZjNmMztcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTEwMDogI2Y4ZjhmODtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwOiAjZmNmY2ZjO1xuXG4vLyBYUE8gTGlnaHQgR3JleVxuJHhwby1icmFuZC1saWdodC1ncmV5OiAjZGVkZWRlO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS05MDA6ICMxZjFmMWY7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTgwMDogIzNmM2YzZjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNzAwOiAjNWU1ZTVlO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS02MDA6ICM3MjcyNzI7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwMDogIzlhOWE5YTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNDAwOiAjYmFiYWJhO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0zMDA6ICR4cG8tYnJhbmQtbGlnaHQtZ3JleTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMjAwOiAjZWNlY2VjO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0xMDA6ICNmNGY0ZjQ7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwOiAjZjlmOWY5O1xuXG4vKlxuKiogPT09PSBNYWluIENvbG9yIFBhbGV0dGUgPT09PVxuKi9cblxuLy8gQmxhY2sgYW5kIEdyZXlcbiR4cG8tZ3JleS0tOTc1OiAjMjEyMTIxO1xuJHhwby1ncmV5LS05NTA6ICMzMzMzMzM7XG4keHBvLWdyZXktLTkwMDogIzRhNGE0YTtcbiR4cG8tZ3JleS0tNzAwOiAjNmY2ZjZmO1xuJHhwby1ncmV5LS0zNTA6ICNiZGJkYmQ7XG4keHBvLWdyZXktLTMwMDogI2Q4ZDhkODtcbiR4cG8tZ3JleS0tODA6ICNmNmY2ZjY7XG4keHBvLWdyZXktLTI1OiAjZmFmYWZhO1xuXG4keHBvLXdoaXRlOiAjZmZmZmZmO1xuXG4vLyBMaW5rcywgQnV0dG9ucywgVGFic2V0IGFuZCBUYWJwaWxsc1xuJHhwby1ibHVlLS04NTA6ICMwZDQ3YTE7XG4keHBvLWJsdWUtLTgwMDogIzE5NzZkMjtcbiR4cG8tYmx1ZS0tMzUwOiAjMjE5NmYzO1xuXG4vLyBFcnJvciBTdGF0ZVxuJHhwby1yZWQtLTIwMDogI2I3MWMxYztcbiR4cG8tcmVkLS0xNTA6ICNkMzJmMmY7XG4keHBvLXJlZC0tNTA6ICNmY2VlZWI7XG5cbi8vIFN1Y2Nlc3MgU3RhdGVcbiR4cG8tZ3JlZW4tLTYwMDogIzM4OGUzYztcbiR4cG8tZ3JlZW4tLTQ1MDogIzRjYWY1MDtcbiR4cG8tZ3JlZW4tLTUwOiAjZjFmOWYxO1xuXG4vLyBXYXJuaW5nIFN0YXRlXG4keHBvLXllbGxvdy0tMzUwOiAjZmZkNjAwO1xuXG4keHBvLW9yYW5nZS0tMzUwOiAjZmY2ZDAwO1xuXG4vLyBJbmZvIFN0YXRlXG4keHBvLWJsdWUtLTcwMDogIzAwOTFlYTtcblxuLy8gVHJhbnNhY3Rpb25hbCBDZWxsc1xuJHhwby1ncmV5LS0xNTA6ICNlY2VmZjE7XG5cbiR4cG8tYmx1ZUdyZXktLTcwMDogI2NmZDhkYztcblxuLy8gQWNjZW50IENvbG9yc1xuJHhwby1waW5rLS03MDA6ICNjNTExNjI7XG5cbiR4cG8tdGVhbC0tNzAwOiAjMDBiZmE1O1xuXG4keHBvLWJsdWUtLTgyNTogIzMwNGZmZTtcbiR4cG8tYmx1ZS0tMjAwOiAjZTRlZmZhO1xuXG4keHBvLWFjY2VudC1yZWQtLTQwMDogJHhwby1icmFuZC1yZWQtLTQwMDtcbiR4cG8tYWNjZW50LXJlZC0tMTAwOiAkeHBvLWJyYW5kLXJlZC0tMTAwO1xuXG4keHBvLXB1cnBsZS0tNzAwOiAjNjIwMGVhO1xuXG4keHBvLWdyZWVuLS0yMDA6ICNhNGU1OWI7XG5cbiR4cG8teWVsbG93LS0yMDA6ICNmZmY5YzQ7XG5cbi8qXG4qKiA9PT09IERFUFJFQ0FURUQgQ09MT1JTID09PT1cbiovXG5cbi8qXG4qKiBXQVJOSU5HOiBUSElTIFZBUklBQkxFUyBXSUxMIEJFIFJFTU9WRUQgU09PTlxuKi9cbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMTAwOiAjZThmNWZlO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0xNTA6ICNlM2YyZmQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTMwMDogIzBkOTRmNDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tNDAwOiAjMDg2OGFjO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS05MDA6ICMwNTNjNjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tMTAwOiAjZmZmOGU1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTMwMDogI2ZmY2Y0ZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS00MDA6ICNmZmJhMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tNzAwOiAjZmZkNjAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTkwMDogIzRkMzgwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTEwMDogI2M4ZmZkZjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTMwMDogIzFjZTg1NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTM1MDogIzAwYzg1Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTQwMDogIzExYTYzYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTcwMDogIzAwYzg1Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTkwMDogIzBhNjEyMjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNTA6ICNmYmZiZmI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTYwOiAjZmFmYWZhO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMDA6ICNmM2YzZjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTIwMDogI2U2ZTZlNjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMjUwOiAjZGRkZGRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS00MDA6ICM5YjliOWI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTYwMDogIzc1NzU3NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjUwOiAjODU4NTg1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS03NTA6ICM1NzU3NTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTkxNTogIzQzNDk0ZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tOTMwOiAjNDI0MjQyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMDAwOiAjMTcxNzE3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMTAwOiAjMjEyMTIxO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTEwMDogI2ZmZWVlZTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0yNTA6ICNkZDJjMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMzAwOiAjZmYyMjIyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTQwMDogI2Q1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS02MDA6ICNjYzAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNzAwOiAjZDMyZjJmO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTkwMDogIzU1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS0xMDA6ICNmZmRmY2E7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tMzAwOiAjZmY5OTU3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTQwMDogI2ZmNjQwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS05MDA6ICM4YjM3MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWZvbnRDb2xvci0tbGluazogIzA4NjhhYztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmFja2dyb3VuZENvbG9yLS1ib2R5OiAjZjNmM2YzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0tZXJyb3I6ICNkNTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1zdWNjZXNzOiAjMTFhNjNiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0td2FybjogI2ZmYmEwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLWluZm86ICM0YTRhNGE7XG5cbi8qXG4qKiA9PT09IENPTE9SUyBBUFBMSUVEID09PT1cbiovXG4keHBvLWZvbnRDb2xvci0tcHJpbWFyeTogJHhwby1ncmV5LS05MDA7XG5cbi8qXG4qKiA9PT09IFR5cG9ncmFwaHkgPT09PVxuKi9cbi8vIFB1dHRpbmcgc2l6ZXMgaW4gbWFwcyB0byBhbGxvdyBkeW5hbWljIHNpemluZyBmb3IgZXh0ZXJuYWxcbi8vIFJvb3QgZm9udC1zaXplKHMpIGFsd2F5cyBpbiBweFxuJHhwby1mb250U2l6ZS0tcm9vdDogMTRweDtcbiR4cG8tZm9udFNpemUtLXNtYWxsOiAwLjg3NXJlbTsgLy8xMnB4XG4keHBvLWZvbnRTaXplLS1tZWRpdW06IDFyZW07IC8vMTRweFxuJHhwby1mb250U2l6ZS0tbGFyZ2U6IDEuMTQzcmVtOyAvLzE2cHhcbiR4cG8tZm9udFNpemUtLWV4dHJhTGFyZ2U6IDEuMjg1cmVtOyAvLzE4cHhcbiR4cG8tZm9udFNpemUtLXh4bGFyZ2U6IDEuNzE0cmVtOyAvLzI0cHhcblxuJHhwby1oZWFkZXItZm9udFNpemUtLXhzbWFsbDogMXJlbTsgLy8xNHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tc21hbGw6IDEuMTQzcmVtOyAvLzE2cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1tZWRpdW06IDEuMjg1cmVtOyAvLzE4cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1sYXJnZTogMS40MjhyZW07IC8vMjBweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXhsYXJnZTogMS41NzFyZW07IC8vMjJweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXh4bGFyZ2U6IDEuODU3cmVtOyAvLzI2cHhcblxuJHhwby1mb250RmFtaWx5LS1wcmltYXJ5OiAnUm9ib3RvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XG4keHBvLWZvbnRGYW1pbHktLXJvYm90b1dpZGVCbGFjazogJ1JvYm90byBXaWRlIEJsYWNrJywgJ1JvYm90bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXG4keHBvLWZvbnRXZWlnaHQtLWxpZ2h0OiAzMDA7XG4keHBvLWZvbnRXZWlnaHQtLW5vcm1hbDogNDAwO1xuJHhwby1mb250V2VpZ2h0LS1tZWRpdW06IDUwMDsgLy8gREVQUkVDQVRFRCB8IGRvIG5vdCBkZWxldGUgc2luY2UgaXQgaXMgc3RpbGwgYmVpbmcgdXNlZCBpbiBzb21lIHByb2plY3RzXG4keHBvLWZvbnRXZWlnaHQtLWJvbGQ6IDUwMDtcbiR4cG8tZm9udFdlaWdodC0tZXh0cmFCb2xkOiA2MDA7XG4keHBvLWZvbnRXZWlnaHQtLWJvbGRlcjogNzAwO1xuXG4keHBvLWxpbmVIZWlnaHQtLXhsOiAyLjI4NnJlbTsgLy8gMzJweFxuJHhwby1saW5lSGVpZ2h0LS1sZzogMS43MTRyZW07IC8vIDI0cHhcbiR4cG8tbGluZUhlaWdodC0tbWQ6IDEuNTcxcmVtOyAvLyAyMnB4XG4keHBvLWxpbmVIZWlnaHQtLXNtOiAxLjQyOXJlbTsgLy8gMjBweFxuXG4keHBvLWxpbmVIZWlnaHQtLWJhc2U6IDI0cHg7IC8vIGZvciBtZWRpdW0gYW5kIGxhcmdlIGZvbnQgc2l6ZVxuJHhwby1saW5lSGVpZ2h0LS1tZWRpdW06IDE4cHg7IC8vIGZvciBtZWRpdW0gZm9udCBzaXplc1xuJHhwby1saW5lSGVpZ2h0LS1zbWFsbDogMTZweDsgLy8gZm9yIHNtYWxsIGZvbnQgc2l6ZVxuXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1zbWFsbDogMS4xNDM7IC8vIERFUFJFQ0FURURcbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLW1lZGl1bTogMS4xNDM7IC8vIERFUFJFQ0FURURcbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLWxhcmdlOiAxLjI4NjsgLy8gREVQUkVDQVRFRFxuXG4keHBvLWxldHRlclNwYWNpbmctLWJhc2U6IDAuMnB4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tc21hbGw6IDAuM3B4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbWVkaXVtOiAwLjMzcHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1sYXJnZTogMC4zOHB4O1xuXG4vLyA9PT09IExheW91dCA9PT09XG4keHBvLWNvbnRlbnRTcGFjaW5nOiAxNnB4O1xuXG4vLyBCcmVha3BvaW50c1xuJHhwby1icmVha3BvaW50LS1zbWFsbC14czogNDgwcHg7XG4keHBvLWJyZWFrcG9pbnQtLXNtYWxsOiA2MDBweDtcbiR4cG8tYnJlYWtwb2ludC0tbWVkaXVtOiA3NjhweDtcbiR4cG8tYnJlYWtwb2ludC0tbGFyZ2U6IDEwMjVweDtcbiR4cG8tYnJlYWtwb2ludC0teExhcmdlOiAxNDQwcHg7XG5cbiR4cG8tc2VsZWN0LWJhY2tncm91bmRDb2xvci1vcHRpb25PbkhvdmVyOiAkeHBvLWJsdWUtLTIwMDtcblxuLy8gLS0gTkdYLVVJIFNwZWNpZmljIC0tXG4kbmd4LWZvb3Rlci1oZWlnaHQ6IDQycHg7XG4kbmd4LXRhYi1oZWFkZXItaGVpZ2h0OiA0MHB4O1xuJG5neC10YWJsZS1yb3ctaGVpZ2h0OiAzMHB4O1xuXG4kbmd4LWljb24tc2l6ZTogMjRweDsgLy8gVE9ETzogRGVwcmVjYXRlIHRoaXMgdmFyaWFibGVcbiR4cG8taWNvbi1zaXplLS1zdGFuZGFyZDogMjBweDtcbiR4cG8taWNvbi1zaXplLS1zbWFsbDogMThweDtcbiR4cG8taWNvbi1zaXplLS1sYXJnZTogMjRweDtcblxuJG5neC10aGVCbGFja1JvYm90bzogOTAwO1xuXG4keHBvLWlucHV0LWhlaWdodC0tZGVmYXVsdDogMzBweDtcbiR4cG8taW5wdXQtaGVpZ2h0LS10d29MaW5lczogNDVweDtcblxuJG5neC1pbnB1dC1ib3JkZXItd2lkdGg6IDFweDtcblxuJG5neC1pbnB1dC1jb2xvci1vbkhvdmVyOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA7XG4kbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1kYXJrOiAkeHBvLWJsYWNrO1xuJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tbGlnaHQ6ICR4cG8td2hpdGU7XG4kbmd4LWlucHV0LWNvbG9yLWJvcmRlcjogJHhwby1ncmV5LS0zMDA7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1kYXJrOiAkeHBvLWdyZXktLTM1MDtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZS0tbGlnaHRlcjogJHhwby13aGl0ZTtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWxpZ2h0OiAkeHBvLWdyZXktLTgwO1xuXG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0OiAzNnB4O1xuJG5neC1idXR0b24tbGluZUhlaWdodC0tc21hbGw6IDI4cHg7XG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0LS1sYXJnZTogNDZweDtcbiRuZ3gtYnV0dG9uLWFuaW1hdGlvbkR1cmF0aW9uOiAyMDBtcztcblxuJG5neC1oZWFkZXItaGVpZ2h0OiA0MHB4O1xuLy8gRm9yIHVzZSB3aGVuIGEgaG92ZXIgaXMgbmVlZGVkIG9uIGEgd2hpdGUgYmFja2dyb3VuZC5cbiRuZ3gtd2hpdGVBZmZvcmRhbmNlLW9uSG92ZXItY29sb3I6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDtcblxuJG5neC1tZW51LWJhY2tncm91bmRDb2xvcjogJHhwby13aGl0ZTtcblxuLypcbioqID09PT0gU05BQ0tCQVIgREVQUkVDQVRFRCBWQVJJQUJMRVMgPT09PVxuKi9cblxuLypcbioqIFdBUk5JTkc6IFRISVMgVkFSSUFCTEVTIFdJTEwgQkUgUkVNT1ZFRCBTT09OXG4qL1xuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLXN1Y2Nlc3M6ICR4cG8tZ3JlZW4tLTQ1MDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLWVycm9yOiAkeHBvLXJlZC0tMTUwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0taW5mbzogIzAyODhkMTtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLXdhcm46ICNmYmMwMmQ7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0tc3VjY2VzczogJHhwby1ncmVlbi0tNjAwO1xuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1lcnJvcjogJHhwby1yZWQtLTIwMDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1pbmZvOiAjMDE1NzliO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrQmFyLW1hcmdpblRvcDogMzJweDtcblxuLy9CYWRnZVxuJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1uZWdhdGl2ZTogJHhwby1yZWQtLTUwO1xuJF9tYXRCYWRnZUNvbnRlbnQtY29sb3ItLW5lZ2F0aXZlOiAjZGQyYzAwO1xuJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1wb3NpdGl2ZTogJHhwby1ncmVlbi0tNTA7XG5cbiRuZ3gtbWVudS1iYWNrZ3JvdW5kQ29sb3Itb25Ib3ZlcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTA7XG4vLyBVc2VkIGFzIGEgc3BhY2VyIGZvciBmbGV4ZWQgY2hpbGRyZW5cbi8vIFRPRE86IE1vdmUgYWxsIGluc3RhbmNlcyB0byB0aGUgdXRpbGl0aWVzIGRlZmluaXRpb25cbi5mbGV4LS1zdHJldGNoIHtcbiAgZmxleDogMTtcbn1cblxuLy8gLS0tIERpYWxvZyAtLS1cbiRuZ3gtZGlhbG9nLWhlYWRlci1oZWlnaHQ6IDQ4cHg7XG4kbmd4LWRpYWxvZy1mb290ZXItaGVpZ2h0OiA2NHB4O1xuXG4vLyAtLS0gVHJhbnNpdGlvbnMgLS0tXG4keHBvLXRyYW5zaXRpb24tMjAwOiBhbGwgMjAwbXMgZWFzZS1vdXQ7XG5cbi8vIC0tLSBDb250ZXh0dWFsIEhlYWRlciAtLS1cbiRuZ3gtQ29udGV4dHVhbEhlYWRlci1zZXBhcmF0b3ItLWNvbG9yOiAkeHBvLWdyZXktLTM1MDtcblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvIFdpZGUgQmxhY2snO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIHNyYzogdXJsKCdodHRwczovL3hwb2RvdGNvbS5henVyZWVkZ2UubmV0L3hwby9maWxlcy9yb2JvdG8td2lkZS0tYmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgdXJsKCdodHRwczovL3hwb2RvdGNvbS5henVyZWVkZ2UubmV0L3hwby9maWxlcy9yb2JvdG8td2lkZS0tYmxhY2sud29mZicpIGZvcm1hdCgnd29mZicpO1xufVxuXG5cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuKjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbjpyb290IHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1yb290O1xufVxuXG5odG1sLFxuYm9keSB7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xufVxuXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tYmFzZTtcbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbn1cblxuYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICR4cG8tYmFja2dyb3VuZENvbG9yLS1ib2R5O1xuICBjb2xvcjogJHhwby1mb250Q29sb3ItLXByaW1hcnk7XG4gIGZvbnQtZmFtaWx5OiAkeHBvLWZvbnRGYW1pbHktLXByaW1hcnk7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLW5vcm1hbDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8tbGV0dGVyU3BhY2luZy0tYmFzZTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tYmFzZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5hcnRpY2xlLFxuYXNpZGUsXG5mb290ZXIsXG5oZWFkZXIsXG5uYXYsXG5zZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbmgxLFxuaDIsXG5oMyB7XG4gIG1hcmdpbjogKCR4cG8tY29udGVudFNwYWNpbmcgLyAyKSAwO1xufVxuXG5oMSB7XG4gIEBpbmNsdWRlIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1sYXJnZSgpO1xufVxuXG5oMiB7XG4gIEBpbmNsdWRlIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1tZWRpdW0oKTtcbn1cblxuaDMge1xuICBAaW5jbHVkZSBUZXh0VHJlYXRtZW50LWhlYWRlci0tc21hbGwoKTtcbn1cblxucCB7XG4gIG1hcmdpbjogMDtcbn1cblxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbm1haW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuaHIge1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAkeHBvLWdyZXktLTMwMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46ICR4cG8tY29udGVudFNwYWNpbmcgMDtcbiAgcGFkZGluZzogMDtcbn1cblxucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogJHhwby1ibHVlLS00MDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0cztcblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJHhwby1ibHVlLS0zMDA7XG4gIH1cbn1cblxudWwge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuZHQge1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xufVxuXG5kZCB7XG4gIG1hcmdpbjogMCAwICgkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMik7XG59XG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbn1cblxuY29kZSxcbmtiZCxcbnNhbXAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTMwMDtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDAuOWVtO1xuICBwYWRkaW5nOiAwLjJlbSAwLjNlbTtcbn1cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbmF1ZGlvLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cblxuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgbWFyZ2luOiAwO1xufVxuXG5idXR0b24sXG5pbnB1dCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuYnV0dG9uLFxuaHRtbCBbdHlwZT0nYnV0dG9uJ10sXG5bdHlwZT0ncmVzZXQnXSxcblt0eXBlPSdzdWJtaXQnXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT0nYnV0dG9uJ106Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT0ncmVzZXQnXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPSdzdWJtaXQnXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9J2J1dHRvbiddOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9J3Jlc2V0J106LW1vei1mb2N1c3JpbmcsXG5bdHlwZT0nc3VibWl0J106LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZGlzcGxheTogdGFibGU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cblxucHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuW3R5cGU9J2NoZWNrYm94J10sXG5bdHlwZT0ncmFkaW8nXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDA7XG59XG5cblt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuW3R5cGU9J3NlYXJjaCddIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xufVxuXG5bdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5bdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgZm9udDogaW5oZXJpdDtcbn1cblxuZGV0YWlscyxcbm1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuY2FudmFzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuXG4vLyBNaXhpbiB0aGF0IHJlbmRlcnMgYWxsIG9mIHRoZSBjb3JlIHN0eWxlcyB0aGF0IGFyZSBub3QgdGhlbWUtZGVwZW5kZW50LlxuQG1peGluIHhwby1tYXQtY29yZSgkdHlwb2dyYXBoeS1jb25maWc6IG51bGwpIHtcbiAgLy8gUHJvdmlkZXMgZXh0ZXJuYWwgQ1NTIGNsYXNzZXMgZm9yIGVhY2ggZWxldmF0aW9uIHZhbHVlLiBFYWNoIENTUyBjbGFzcyBpcyBmb3JtYXR0ZWQgYXNcbiAgLy8gYG1hdC1lbGV2YXRpb24teiR6VmFsdWVgIHdoZXJlIGAkelZhbHVlYCBjb3JyZXNwb25kcyB0byB0aGUgei1zcGFjZSB0byB3aGljaCB0aGUgZWxlbWVudCBpc1xuICAvLyBlbGV2YXRlZC5cbiAgQGZvciAkelZhbHVlIGZyb20gMCB0aHJvdWdoIDI0IHtcbiAgICAuI3skbWF0LWVsZXZhdGlvbi1wcmVmaXh9I3skelZhbHVlfSB7XG4gICAgICBAaW5jbHVkZSBtYXQtZWxldmF0aW9uKCR6VmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGFuZ3VsYXItbWF0ZXJpYWwtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeS1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcmlwcGxlKCk7XG4gIEBpbmNsdWRlIGNkay1hMTF5KCk7XG4gIEBpbmNsdWRlIGNkay1vdmVybGF5KCk7XG4gIC8vIEBpbmNsdWRlIGNkay10ZXh0LWZpZWxkKCk7XG59XG5cbi8vIE1peGluIHRoYXQgcmVuZGVycyBhbGwgb2YgdGhlIGNvcmUgc3R5bGVzIHRoYXQgZGVwZW5kIG9uIHRoZSB0aGVtZS5cbkBtaXhpbiB4cG8tbWF0LWNvcmUtdGhlbWUoJHRoZW1lKSB7XG4gIEBpbmNsdWRlIG1hdC1yaXBwbGUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LW9wdGlvbi10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtb3B0Z3JvdXAtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXBzZXVkby1jaGVja2JveC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtc2xpZGUtdG9nZ2xlLXRoZW1lKCR0aGVtZSk7XG5cbiAgLy8gV3JhcHBlciBlbGVtZW50IHRoYXQgcHJvdmlkZXMgdGhlIHRoZW1lIGJhY2tncm91bmQgd2hlbiB0aGUgdXNlcidzIGNvbnRlbnQgaXNuJ3RcbiAgLy8gaW5zaWRlIG9mIGEgYG1hdC1zaWRlbmF2LWNvbnRhaW5lcmAuIE5vdGUgdGhhdCB3ZSBuZWVkIHRvIGV4Y2x1ZGUgdGhlIGFtcGVyc2FuZFxuICAvLyBzZWxlY3RvciBpbiBjYXNlIHRoZSBtaXhpbiBpcyBpbmNsdWRlZCBhdCB0aGUgdG9wIGxldmVsLlxuICAvLyAubWF0LWFwcC1iYWNrZ3JvdW5kI3tpZigmLCAnLCAmLm1hdC1hcHAtYmFja2dyb3VuZCcsICcnKX0ge1xuICAvLyAgICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gIC8vICAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAvLyAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgYmFja2dyb3VuZCk7XG4gIC8vICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIC8vIH1cblxuICAvLyBNYXJrZXIgdGhhdCBpcyB1c2VkIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSB1c2VyIGhhcyBhZGRlZCBhIHRoZW1lIHRvIHRoZWlyIHBhZ2UuXG4gIEBhdC1yb290IHtcbiAgICAubWF0LXRoZW1lLWxvYWRlZC1tYXJrZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHhwby1jYXJkLXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC54cG8tQ2FyZCB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tc21hbGwoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLXNtYWxsO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1zbWFsbDtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1tZWRpdW0oKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLW1lZGl1bTtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLW1lZGl1bTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLW1lZGl1bTtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1sYXJnZSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbGFyZ2U7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1sYXJnZTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLWxhcmdlO1xufVxuXG4vLyBSZWd1bGFyIHRleHQgbWl4aW5zXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tc21hbGwoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tbWVkaXVtKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtLWxhcmdlKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLWxhcmdlO1xufVxuXG5cbi8qXG4qKiA9PT09IEJhc2ljIGNvbG9ycyA9PT09XG4qL1xuXG4vKlxuKiogPT09PSBYUE8gQnJhbmQgQ29sb3IgUGFsZXR0ZSA9PT09XG4qL1xuXG4vLyBYUE8gUmVkXG4keHBvLWJyYW5kLXJlZDogI2NjMDAwMDtcbiR4cG8tYnJhbmQtcmVkLS05MDA6ICR4cG8tYnJhbmQtcmVkO1xuJHhwby1icmFuZC1yZWQtLTgwMDogI2U0MjEwZTtcbiR4cG8tYnJhbmQtcmVkLS03MDA6ICNmMzJhMTM7XG4keHBvLWJyYW5kLXJlZC0tNjAwOiAjZmYzMzE3O1xuJHhwby1icmFuZC1yZWQtLTUwMDogI2ZmMzkxYztcbiR4cG8tYnJhbmQtcmVkLS00MDA6ICNmZjVlM2Q7XG4keHBvLWJyYW5kLXJlZC0tMzAwOiAjZmY3ZTYwO1xuJHhwby1icmFuZC1yZWQtLTIwMDogI2ZmYTQ4ZTtcbiR4cG8tYnJhbmQtcmVkLS0xMDA6ICNmZmM4YmE7XG4keHBvLWJyYW5kLXJlZC0tNTA6ICNmY2U4ZTY7XG5cbi8vIFhQTyBCbGFja1xuJHhwby1ibGFjazogIzAwMDAwMDtcbiR4cG8tYnJhbmQtYmxhY2stLTkwMDogJHhwby1ibGFjaztcbiR4cG8tYnJhbmQtYmxhY2stLTgwMDogIzI2MjYyNjtcbiR4cG8tYnJhbmQtYmxhY2stLTcwMDogIzU1NTU1NTtcbiR4cG8tYnJhbmQtYmxhY2stLTYwMDogIzdiN2I3YjtcbiR4cG8tYnJhbmQtYmxhY2stLTUwMDogIzlkOWQ5ZDtcbiR4cG8tYnJhbmQtYmxhY2stLTQwMDogIzlkOWQ5ZDtcbiR4cG8tYnJhbmQtYmxhY2stLTMwMDogI2M0YzRjNDtcbiR4cG8tYnJhbmQtYmxhY2stLTIwMDogI2Q5ZDlkOTtcbiR4cG8tYnJhbmQtYmxhY2stLTEwMDogI2U5ZTllOTtcbiR4cG8tYnJhbmQtYmxhY2stLTUwOiAjZjVmNWY1O1xuXG4vLyBYUE8gRGFyayBHcmV5XG4keHBvLWJyYW5kLWRhcmstZ3JleTogIzQxNGE0YztcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS05MDA6ICMyMjI4MmI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tODAwOiAkeHBvLWJyYW5kLWRhcmstZ3JleTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS03MDA6ICM2MjY4NmM7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNjAwOiAjNzU3ZDgxO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTUwMDogI2EwYTZhYTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS00MDA6ICNiZWM1Yzk7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMzAwOiAjZTBlN2ViO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTIwMDogI2ViZjJmNjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0xMDA6ICNmMGY3ZmI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNTA6ICNmNGZjZmY7XG5cbi8vIFhQTyBNZWRpdW0gR3JleVxuJHhwby1icmFuZC1tZWRpdW0tZ3JleTogIzg0ODQ4NDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTkwMDogIzJlMmUyZTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTgwMDogIzUwNTA1MDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTcwMDogIzcwNzA3MDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTYwMDogJHhwby1icmFuZC1tZWRpdW0tZ3JleTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwMDogI2FmYWZhZjtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTQwMDogI2NkY2RjZDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTMwMDogI2VlZWVlZTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDogI2YzZjNmMztcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTEwMDogI2Y4ZjhmODtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwOiAjZmNmY2ZjO1xuXG4vLyBYUE8gTGlnaHQgR3JleVxuJHhwby1icmFuZC1saWdodC1ncmV5OiAjZGVkZWRlO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS05MDA6ICMxZjFmMWY7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTgwMDogIzNmM2YzZjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNzAwOiAjNWU1ZTVlO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS02MDA6ICM3MjcyNzI7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwMDogIzlhOWE5YTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNDAwOiAjYmFiYWJhO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0zMDA6ICR4cG8tYnJhbmQtbGlnaHQtZ3JleTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMjAwOiAjZWNlY2VjO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0xMDA6ICNmNGY0ZjQ7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwOiAjZjlmOWY5O1xuXG4vKlxuKiogPT09PSBNYWluIENvbG9yIFBhbGV0dGUgPT09PVxuKi9cblxuLy8gQmxhY2sgYW5kIEdyZXlcbiR4cG8tZ3JleS0tOTc1OiAjMjEyMTIxO1xuJHhwby1ncmV5LS05NTA6ICMzMzMzMzM7XG4keHBvLWdyZXktLTkwMDogIzRhNGE0YTtcbiR4cG8tZ3JleS0tNzAwOiAjNmY2ZjZmO1xuJHhwby1ncmV5LS0zNTA6ICNiZGJkYmQ7XG4keHBvLWdyZXktLTMwMDogI2Q4ZDhkODtcbiR4cG8tZ3JleS0tODA6ICNmNmY2ZjY7XG4keHBvLWdyZXktLTI1OiAjZmFmYWZhO1xuXG4keHBvLXdoaXRlOiAjZmZmZmZmO1xuXG4vLyBMaW5rcywgQnV0dG9ucywgVGFic2V0IGFuZCBUYWJwaWxsc1xuJHhwby1ibHVlLS04NTA6ICMwZDQ3YTE7XG4keHBvLWJsdWUtLTgwMDogIzE5NzZkMjtcbiR4cG8tYmx1ZS0tMzUwOiAjMjE5NmYzO1xuXG4vLyBFcnJvciBTdGF0ZVxuJHhwby1yZWQtLTIwMDogI2I3MWMxYztcbiR4cG8tcmVkLS0xNTA6ICNkMzJmMmY7XG4keHBvLXJlZC0tNTA6ICNmY2VlZWI7XG5cbi8vIFN1Y2Nlc3MgU3RhdGVcbiR4cG8tZ3JlZW4tLTYwMDogIzM4OGUzYztcbiR4cG8tZ3JlZW4tLTQ1MDogIzRjYWY1MDtcbiR4cG8tZ3JlZW4tLTUwOiAjZjFmOWYxO1xuXG4vLyBXYXJuaW5nIFN0YXRlXG4keHBvLXllbGxvdy0tMzUwOiAjZmZkNjAwO1xuXG4keHBvLW9yYW5nZS0tMzUwOiAjZmY2ZDAwO1xuXG4vLyBJbmZvIFN0YXRlXG4keHBvLWJsdWUtLTcwMDogIzAwOTFlYTtcblxuLy8gVHJhbnNhY3Rpb25hbCBDZWxsc1xuJHhwby1ncmV5LS0xNTA6ICNlY2VmZjE7XG5cbiR4cG8tYmx1ZUdyZXktLTcwMDogI2NmZDhkYztcblxuLy8gQWNjZW50IENvbG9yc1xuJHhwby1waW5rLS03MDA6ICNjNTExNjI7XG5cbiR4cG8tdGVhbC0tNzAwOiAjMDBiZmE1O1xuXG4keHBvLWJsdWUtLTgyNTogIzMwNGZmZTtcbiR4cG8tYmx1ZS0tMjAwOiAjZTRlZmZhO1xuXG4keHBvLWFjY2VudC1yZWQtLTQwMDogJHhwby1icmFuZC1yZWQtLTQwMDtcbiR4cG8tYWNjZW50LXJlZC0tMTAwOiAkeHBvLWJyYW5kLXJlZC0tMTAwO1xuXG4keHBvLXB1cnBsZS0tNzAwOiAjNjIwMGVhO1xuXG4keHBvLWdyZWVuLS0yMDA6ICNhNGU1OWI7XG5cbiR4cG8teWVsbG93LS0yMDA6ICNmZmY5YzQ7XG5cbi8qXG4qKiA9PT09IERFUFJFQ0FURUQgQ09MT1JTID09PT1cbiovXG5cbi8qXG4qKiBXQVJOSU5HOiBUSElTIFZBUklBQkxFUyBXSUxMIEJFIFJFTU9WRUQgU09PTlxuKi9cbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMTAwOiAjZThmNWZlO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0xNTA6ICNlM2YyZmQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTMwMDogIzBkOTRmNDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tNDAwOiAjMDg2OGFjO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS05MDA6ICMwNTNjNjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tMTAwOiAjZmZmOGU1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTMwMDogI2ZmY2Y0ZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS00MDA6ICNmZmJhMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tNzAwOiAjZmZkNjAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTkwMDogIzRkMzgwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTEwMDogI2M4ZmZkZjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTMwMDogIzFjZTg1NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTM1MDogIzAwYzg1Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTQwMDogIzExYTYzYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTcwMDogIzAwYzg1Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTkwMDogIzBhNjEyMjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNTA6ICNmYmZiZmI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTYwOiAjZmFmYWZhO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMDA6ICNmM2YzZjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTIwMDogI2U2ZTZlNjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMjUwOiAjZGRkZGRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS00MDA6ICM5YjliOWI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTYwMDogIzc1NzU3NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjUwOiAjODU4NTg1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS03NTA6ICM1NzU3NTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTkxNTogIzQzNDk0ZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tOTMwOiAjNDI0MjQyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMDAwOiAjMTcxNzE3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMTAwOiAjMjEyMTIxO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTEwMDogI2ZmZWVlZTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0yNTA6ICNkZDJjMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMzAwOiAjZmYyMjIyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTQwMDogI2Q1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS02MDA6ICNjYzAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNzAwOiAjZDMyZjJmO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTkwMDogIzU1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS0xMDA6ICNmZmRmY2E7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tMzAwOiAjZmY5OTU3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTQwMDogI2ZmNjQwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS05MDA6ICM4YjM3MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWZvbnRDb2xvci0tbGluazogIzA4NjhhYztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmFja2dyb3VuZENvbG9yLS1ib2R5OiAjZjNmM2YzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0tZXJyb3I6ICNkNTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1zdWNjZXNzOiAjMTFhNjNiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0td2FybjogI2ZmYmEwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLWluZm86ICM0YTRhNGE7XG5cbi8qXG4qKiA9PT09IENPTE9SUyBBUFBMSUVEID09PT1cbiovXG4keHBvLWZvbnRDb2xvci0tcHJpbWFyeTogJHhwby1ncmV5LS05MDA7XG5cbi8qXG4qKiA9PT09IFR5cG9ncmFwaHkgPT09PVxuKi9cbi8vIFB1dHRpbmcgc2l6ZXMgaW4gbWFwcyB0byBhbGxvdyBkeW5hbWljIHNpemluZyBmb3IgZXh0ZXJuYWxcbi8vIFJvb3QgZm9udC1zaXplKHMpIGFsd2F5cyBpbiBweFxuJHhwby1mb250U2l6ZS0tcm9vdDogMTRweDtcbiR4cG8tZm9udFNpemUtLXNtYWxsOiAwLjg3NXJlbTsgLy8xMnB4XG4keHBvLWZvbnRTaXplLS1tZWRpdW06IDFyZW07IC8vMTRweFxuJHhwby1mb250U2l6ZS0tbGFyZ2U6IDEuMTQzcmVtOyAvLzE2cHhcbiR4cG8tZm9udFNpemUtLWV4dHJhTGFyZ2U6IDEuMjg1cmVtOyAvLzE4cHhcbiR4cG8tZm9udFNpemUtLXh4bGFyZ2U6IDEuNzE0cmVtOyAvLzI0cHhcblxuJHhwby1oZWFkZXItZm9udFNpemUtLXhzbWFsbDogMXJlbTsgLy8xNHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tc21hbGw6IDEuMTQzcmVtOyAvLzE2cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1tZWRpdW06IDEuMjg1cmVtOyAvLzE4cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1sYXJnZTogMS40MjhyZW07IC8vMjBweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXhsYXJnZTogMS41NzFyZW07IC8vMjJweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXh4bGFyZ2U6IDEuODU3cmVtOyAvLzI2cHhcblxuJHhwby1mb250RmFtaWx5LS1wcmltYXJ5OiAnUm9ib3RvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XG4keHBvLWZvbnRGYW1pbHktLXJvYm90b1dpZGVCbGFjazogJ1JvYm90byBXaWRlIEJsYWNrJywgJ1JvYm90bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXG4keHBvLWZvbnRXZWlnaHQtLWxpZ2h0OiAzMDA7XG4keHBvLWZvbnRXZWlnaHQtLW5vcm1hbDogNDAwO1xuJHhwby1mb250V2VpZ2h0LS1tZWRpdW06IDUwMDsgLy8gREVQUkVDQVRFRCB8IGRvIG5vdCBkZWxldGUgc2luY2UgaXQgaXMgc3RpbGwgYmVpbmcgdXNlZCBpbiBzb21lIHByb2plY3RzXG4keHBvLWZvbnRXZWlnaHQtLWJvbGQ6IDUwMDtcbiR4cG8tZm9udFdlaWdodC0tZXh0cmFCb2xkOiA2MDA7XG4keHBvLWZvbnRXZWlnaHQtLWJvbGRlcjogNzAwO1xuXG4keHBvLWxpbmVIZWlnaHQtLXhsOiAyLjI4NnJlbTsgLy8gMzJweFxuJHhwby1saW5lSGVpZ2h0LS1sZzogMS43MTRyZW07IC8vIDI0cHhcbiR4cG8tbGluZUhlaWdodC0tbWQ6IDEuNTcxcmVtOyAvLyAyMnB4XG4keHBvLWxpbmVIZWlnaHQtLXNtOiAxLjQyOXJlbTsgLy8gMjBweFxuXG4keHBvLWxpbmVIZWlnaHQtLWJhc2U6IDI0cHg7IC8vIGZvciBtZWRpdW0gYW5kIGxhcmdlIGZvbnQgc2l6ZVxuJHhwby1saW5lSGVpZ2h0LS1tZWRpdW06IDE4cHg7IC8vIGZvciBtZWRpdW0gZm9udCBzaXplc1xuJHhwby1saW5lSGVpZ2h0LS1zbWFsbDogMTZweDsgLy8gZm9yIHNtYWxsIGZvbnQgc2l6ZVxuXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1zbWFsbDogMS4xNDM7IC8vIERFUFJFQ0FURURcbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLW1lZGl1bTogMS4xNDM7IC8vIERFUFJFQ0FURURcbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLWxhcmdlOiAxLjI4NjsgLy8gREVQUkVDQVRFRFxuXG4keHBvLWxldHRlclNwYWNpbmctLWJhc2U6IDAuMnB4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tc21hbGw6IDAuM3B4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbWVkaXVtOiAwLjMzcHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1sYXJnZTogMC4zOHB4O1xuXG4vLyA9PT09IExheW91dCA9PT09XG4keHBvLWNvbnRlbnRTcGFjaW5nOiAxNnB4O1xuXG4vLyBCcmVha3BvaW50c1xuJHhwby1icmVha3BvaW50LS1zbWFsbC14czogNDgwcHg7XG4keHBvLWJyZWFrcG9pbnQtLXNtYWxsOiA2MDBweDtcbiR4cG8tYnJlYWtwb2ludC0tbWVkaXVtOiA3NjhweDtcbiR4cG8tYnJlYWtwb2ludC0tbGFyZ2U6IDEwMjVweDtcbiR4cG8tYnJlYWtwb2ludC0teExhcmdlOiAxNDQwcHg7XG5cbiR4cG8tc2VsZWN0LWJhY2tncm91bmRDb2xvci1vcHRpb25PbkhvdmVyOiAkeHBvLWJsdWUtLTIwMDtcblxuLy8gLS0gTkdYLVVJIFNwZWNpZmljIC0tXG4kbmd4LWZvb3Rlci1oZWlnaHQ6IDQycHg7XG4kbmd4LXRhYi1oZWFkZXItaGVpZ2h0OiA0MHB4O1xuJG5neC10YWJsZS1yb3ctaGVpZ2h0OiAzMHB4O1xuXG4kbmd4LWljb24tc2l6ZTogMjRweDsgLy8gVE9ETzogRGVwcmVjYXRlIHRoaXMgdmFyaWFibGVcbiR4cG8taWNvbi1zaXplLS1zdGFuZGFyZDogMjBweDtcbiR4cG8taWNvbi1zaXplLS1zbWFsbDogMThweDtcbiR4cG8taWNvbi1zaXplLS1sYXJnZTogMjRweDtcblxuJG5neC10aGVCbGFja1JvYm90bzogOTAwO1xuXG4keHBvLWlucHV0LWhlaWdodC0tZGVmYXVsdDogMzBweDtcbiR4cG8taW5wdXQtaGVpZ2h0LS10d29MaW5lczogNDVweDtcblxuJG5neC1pbnB1dC1ib3JkZXItd2lkdGg6IDFweDtcblxuJG5neC1pbnB1dC1jb2xvci1vbkhvdmVyOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA7XG4kbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1kYXJrOiAkeHBvLWJsYWNrO1xuJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tbGlnaHQ6ICR4cG8td2hpdGU7XG4kbmd4LWlucHV0LWNvbG9yLWJvcmRlcjogJHhwby1ncmV5LS0zMDA7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1kYXJrOiAkeHBvLWdyZXktLTM1MDtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZS0tbGlnaHRlcjogJHhwby13aGl0ZTtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWxpZ2h0OiAkeHBvLWdyZXktLTgwO1xuXG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0OiAzNnB4O1xuJG5neC1idXR0b24tbGluZUhlaWdodC0tc21hbGw6IDI4cHg7XG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0LS1sYXJnZTogNDZweDtcbiRuZ3gtYnV0dG9uLWFuaW1hdGlvbkR1cmF0aW9uOiAyMDBtcztcblxuJG5neC1oZWFkZXItaGVpZ2h0OiA0MHB4O1xuLy8gRm9yIHVzZSB3aGVuIGEgaG92ZXIgaXMgbmVlZGVkIG9uIGEgd2hpdGUgYmFja2dyb3VuZC5cbiRuZ3gtd2hpdGVBZmZvcmRhbmNlLW9uSG92ZXItY29sb3I6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDtcblxuJG5neC1tZW51LWJhY2tncm91bmRDb2xvcjogJHhwby13aGl0ZTtcblxuLypcbioqID09PT0gU05BQ0tCQVIgREVQUkVDQVRFRCBWQVJJQUJMRVMgPT09PVxuKi9cblxuLypcbioqIFdBUk5JTkc6IFRISVMgVkFSSUFCTEVTIFdJTEwgQkUgUkVNT1ZFRCBTT09OXG4qL1xuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLXN1Y2Nlc3M6ICR4cG8tZ3JlZW4tLTQ1MDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLWVycm9yOiAkeHBvLXJlZC0tMTUwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0taW5mbzogIzAyODhkMTtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLXdhcm46ICNmYmMwMmQ7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0tc3VjY2VzczogJHhwby1ncmVlbi0tNjAwO1xuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1lcnJvcjogJHhwby1yZWQtLTIwMDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1pbmZvOiAjMDE1NzliO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrQmFyLW1hcmdpblRvcDogMzJweDtcblxuLy9CYWRnZVxuJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1uZWdhdGl2ZTogJHhwby1yZWQtLTUwO1xuJF9tYXRCYWRnZUNvbnRlbnQtY29sb3ItLW5lZ2F0aXZlOiAjZGQyYzAwO1xuJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1wb3NpdGl2ZTogJHhwby1ncmVlbi0tNTA7XG5cbiRuZ3gtbWVudS1iYWNrZ3JvdW5kQ29sb3Itb25Ib3ZlcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTA7XG4vLyBVc2VkIGFzIGEgc3BhY2VyIGZvciBmbGV4ZWQgY2hpbGRyZW5cbi8vIFRPRE86IE1vdmUgYWxsIGluc3RhbmNlcyB0byB0aGUgdXRpbGl0aWVzIGRlZmluaXRpb25cbi5mbGV4LS1zdHJldGNoIHtcbiAgZmxleDogMTtcbn1cblxuLy8gLS0tIERpYWxvZyAtLS1cbiRuZ3gtZGlhbG9nLWhlYWRlci1oZWlnaHQ6IDQ4cHg7XG4kbmd4LWRpYWxvZy1mb290ZXItaGVpZ2h0OiA2NHB4O1xuXG4vLyAtLS0gVHJhbnNpdGlvbnMgLS0tXG4keHBvLXRyYW5zaXRpb24tMjAwOiBhbGwgMjAwbXMgZWFzZS1vdXQ7XG5cbi8vIC0tLSBDb250ZXh0dWFsIEhlYWRlciAtLS1cbiRuZ3gtQ29udGV4dHVhbEhlYWRlci1zZXBhcmF0b3ItLWNvbG9yOiAkeHBvLWdyZXktLTM1MDtcblxuXG5AbWl4aW4geHBvLWFwcGxpY2F0aW9uU3dpdGNoZXItdGhlbWUoJHRoZW1lKSB7XG4gIC8vIG92ZXJsYXkgZGlhbG9nIHdyYXBwZXJcbiAgLmNkay1vdmVybGF5LWNvbnRhaW5lciAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIueHBvLUFwcGxpY2F0aW9uU3dpdGNoZXItZGlhbG9nLXdyYXBwZXIge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgLy8gb3ZlcmxheSBwYW5lbCBjb250ZW50IHN0eWxlXG4gICAgLmNkay1vdmVybGF5LXBhbmUueHBvLUFwcGxpY2F0aW9uU3dpdGNoZXItZGlhbG9nIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby13aGl0ZTtcbiAgICAgIC8vIFRPRE86IGRlZmluZSBpZiB3ZSdsbCBkaXNwbGF5IGEgYm9yZGVyLCBhIHNoYWRvdyBvciBib3RoXG4gICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggJHhwby1ncmV5LS0zMDA7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBtaW4taGVpZ2h0OiAxMDBweDtcbiAgICB9XG4gIH1cblxuICAueHBvLUFwcGxpY2F0aW9uU3dpdGNoZXJDb250ZW50IHtcbiAgICAvLyBzZXQgdGhlIGNvbnRlbnQgc2Nyb2xsIHRvIGtlZXAgdGhlIGhlYWRlciBhbHdheXMgdmlzaWJsZVxuICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgLy8gZml4IGRvdWJsZSBib3R0b20gYm9yZGVyXG4gICAgLy8gaXQgY2FudCBiZSBkb25lIGluc2lkZSBhcHBsaWNhdGlvbiBjb21wb25lbnQgZHVlIHRvIHRoZSBgbGFzdC14YCBzZWxlY3RvclxuICAgIC8vIGVpdGhlciBpbnNpZGUgYXBwbGljYXRpb24gY2F0ZWdvcnkgY29tcG9uZW50IGR1ZSB0byB2aWV3IGVuY2Fwc3VsYXRpb25cbiAgICAueHBvLUFwcGxpY2F0aW9uQ2F0ZWdvcnkge1xuICAgICAgLnhwby1BcHBsaWNhdGlvbjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAueHBvLUFwcGxpY2F0aW9uLWNvbnRlbnQ6aG92ZXIge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHhwby1hdXRvY29tcGxldGUtdGhlbWUoJHRoZW1lKSB7XG4gIEBpbmNsdWRlIG1hdC1hdXRvY29tcGxldGUtdGhlbWUoJHRoZW1lKTtcblxuICAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbC1hYm92ZSB7XG4gICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR4cG8tZ3JleS0tMzAwO1xuICAgIH1cblxuICAgICYgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwubWF0LWF1dG9jb21wbGV0ZS12aXNpYmxlIHtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblxuICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFRPRE86IHRoaXMgc3R5bGUgd2lsbCBiZSBhcHBsaWVkIHRvIGFsbCBmb3JtIGZpZWxkIHR5cGVzXG4gIC8vIHdlIG5lZWQgdG8gZmluZCB0aGUgd2F5IHRvIHVzZSBpdCBqdXN0IGZvciBhdXRvY29tcGxldGUgY29udHJvbHNcbiAgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCB7XG4gICAgLm1hdC1pY29uIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbC5tYXQtYXV0b2NvbXBsZXRlLXZpc2libGUge1xuICAgICRfQXV0b2NvbXBsZXRlLWhlaWdodDogMzBweDtcbiAgICAkX0F1dG9jb21wbGV0ZS1saW5lLWhlaWdodDogMzBweDtcbiAgICAkX0F1dG9jb21wbGV0ZS1tYXQtdHdvLWxpbmVzLWhlaWdodDogNDVweDtcbiAgICAkX0F1dG9jb21wbGV0ZS1wYWRkaW5nLS12ZXJ0aWNhbDogNnB4O1xuICAgICRfQXV0b2NvbXBsZXRlLW1heC13aWR0aC1pY29uOiA1MHB4O1xuICAgICRfQXV0b2NvbXBsZXRlLXRocmVlLWNvbHVtbnMtc2l6ZTogMzMlO1xuXG4gICAgYm9yZGVyOiAxcHggc29saWQgJHhwby1ncmV5LS0zMDA7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBib3JkZXItdG9wOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG5cbiAgICAubWF0LW9wdGlvbiB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHhwby1ncmV5LS0zMDA7XG4gICAgICBjb2xvcjogJHhwby1ibGFjaztcbiAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tcm9vdDtcbiAgICAgIGhlaWdodDogJF9BdXRvY29tcGxldGUtaGVpZ2h0O1xuICAgICAgbGluZS1oZWlnaHQ6ICRfQXV0b2NvbXBsZXRlLWxpbmUtaGVpZ2h0O1xuICAgICAgcGFkZGluZzogMCAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tYmx1ZS0tMjAwO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtb3B0aW9uLXRleHQge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIH1cblxuICAgICAgLnhwby1JY29uIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNDtcbiAgICAgIH1cblxuICAgICAgJi54cG8tT3B0aW9uIHtcbiAgICAgICAgJi0tdHdvTGluZXMge1xuICAgICAgICAgIGhlaWdodDogJF9BdXRvY29tcGxldGUtbWF0LXR3by1saW5lcy1oZWlnaHQ7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICBwYWRkaW5nOiAkX0F1dG9jb21wbGV0ZS1wYWRkaW5nLS12ZXJ0aWNhbCAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcblxuICAgICAgICAgIC5tYXQtb3B0aW9uLXRleHQge1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAgIC54cG8tU2VsZWN0LXR3b0xpbmVzQ29udGFpbmVyIHtcbiAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgICAvLyBlYWNoIG9mIHRoZSBwcm9qZWN0ZWQgY29udGVudFxuICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi1oaWRlRGl2aWRlcjpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLm1hdC1pY29uIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgfVxuXG4gICAgICAueHBvLWljb24ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyA0O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC54cG8tU2VsZWN0LXR3b0NvbHVtbnNDb250YWluZXIge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjAlIDgwJTtcblxuICAgICAgLy8gZWFjaCBvZiB0aGUgcHJvamVjdGVkIGNvbnRlbnQgZm9yIGNvbHVtbnNcbiAgICAgIHNwYW4ge1xuICAgICAgICBmbGV4OiBub25lO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIH1cblxuICAgICAgc3BhbjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNDtcbiAgICAgIH1cblxuICAgICAgc3BhbjpsYXN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tbGVmdDogJHhwby1jb250ZW50U3BhY2luZyAvIDQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnhwby1TZWxlY3QtdGhyZWVDb2x1bW5zQ29udGFpbmVyIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDMzJSAzNCUgMzMlO1xuXG4gICAgICAvLyBlYWNoIG9mIHRoZSBwcm9qZWN0ZWQgY29udGVudCBmb3IgY29sdW1uc1xuICAgICAgc3BhbiB7XG4gICAgICAgIG1hcmdpbjogMCAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB9XG5cbiAgICAgIHNwYW46Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuXG4gICAgICBzcGFuOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGRvdEJhZGdlTWl4KCRiYWNrZ3JvdW5kQ29sb3IpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmRDb2xvcjtcbn1cbkBtaXhpbiB4cG8tYmFkZ2UtdGhlbWUoJHRoZW1lKSB7XG4gICRfbWF0QmFkZ2VDb250ZW50LWZvbnRTaXplOiAxMHB4O1xuICAkX21hdEJhZGdlQ29udGVudC1pY29uLWZvbnRTaXplOiAyMHB4O1xuICAkX21hdEJhZGdlQ29udGVudC1oZWlnaHQ6IDE2cHg7XG4gICRfbWF0QmFkZ2VDb250ZW50RGVmYXVsdC1ib3JkZXJSYWRpdXM6IDJweDtcbiAgJF9tYXRCYWRnZUNvbnRlbnQtcGFkZGluZzogMnB4IDNweDtcbiAgJF9tYXRCYWRnZUNvbnRlbnQtYm9yZGVyOiAkbmd4LWlucHV0LWJvcmRlci13aWR0aCBzb2xpZCAkeHBvLXdoaXRlO1xuICAkX21hdEJhZGdlQ29udGVudC1yaWdodDogLTE1cHg7XG4gICRfbWF0QmFkZ2VDb250ZW50LWJvcmRlclJhZGl1czogMTBweDtcbiAgJF9tYXREb3RCYWRnZUNvbnRlbnQtaGVpZ2h0V2lkdGg6IDEwcHg7XG4gICRfbWF0QmFkZ2VPdmVybGFwQ29udGVudC10b3A6IC0xcHg7XG4gICRfbWF0QmFkZ2VPdmVybGFwQ29udGVudC1yaWdodDogLTE0cHg7XG4gICRfbWF0QmFkZ2VDb250ZW50LXRvcC0taW1wb3J0YW50OiAtOHB4O1xuICAkX21hdEJhZGdlQ29udGVudC1oZWlnaHQtLWltcG9ydGFudDogMThweDtcblxuICAubWF0LWljb24ge1xuICAgICYubWF0LWJhZGdlLWFib3ZlOm5vdCgueHBvLUJhZGdlLS1pbXBvcnRhbnQpIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIGZvbnQtc2l6ZTogJF9tYXRCYWRnZUNvbnRlbnQtaWNvbi1mb250U2l6ZTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgICYubWF0LWJhZGdlLW1lZGl1bSB7XG4gICAgICBjb2xvcjogJHhwby1ncmV5LS05MDA7XG5cbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tOTAwO1xuICAgICAgICBib3JkZXI6ICRfbWF0QmFkZ2VDb250ZW50LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJF9tYXRCYWRnZUNvbnRlbnREZWZhdWx0LWJvcmRlclJhZGl1cztcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZm9udC1zaXplOiAkX21hdEJhZGdlQ29udGVudC1mb250U2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tZXh0cmFCb2xkO1xuICAgICAgICBoZWlnaHQ6ICRfbWF0QmFkZ2VDb250ZW50LWhlaWdodDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkX21hdEJhZGdlQ29udGVudC1oZWlnaHQ7XG4gICAgICAgIHBhZGRpbmc6ICRfbWF0QmFkZ2VDb250ZW50LXBhZGRpbmc7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgfVxuXG4gICAgICAmLm1hdC1iYWRnZS1hYm92ZSB7XG4gICAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgICAgdG9wOiAtOXB4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYubWF0LWJhZGdlLW92ZXJsYXAge1xuICAgICAgICAmLm1hdC1iYWRnZS1hZnRlciB7XG4gICAgICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgICAgIHJpZ2h0OiAkX21hdEJhZGdlQ29udGVudC1yaWdodDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy9JbXBvcnRhbnQgbm90aWZpY2F0aW9uIGJhZGdlXG4gICAgICAmLnhwby1CYWRnZS0taW1wb3J0YW50IHtcbiAgICAgICAgJi5tYXQtYmFkZ2UtYWJvdmUge1xuICAgICAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgICAgICB0b3A6ICRfbWF0QmFkZ2VDb250ZW50LXRvcC0taW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubWF0LWJhZGdlLW92ZXJsYXAge1xuICAgICAgICAgICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAgICAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgICAgICAgIHJpZ2h0OiAtMjhweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tcmVkLS02MDA7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJF9tYXRCYWRnZUNvbnRlbnQtYm9yZGVyUmFkaXVzO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWV4dHJhQm9sZDtcbiAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgbGluZS1oZWlnaHQ6ICRfbWF0QmFkZ2VDb250ZW50LWZvbnRTaXplO1xuICAgICAgICAgIHBhZGRpbmc6ICR4cG8tY29udGVudFNwYWNpbmcgLyA0ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvL0RvdCBiYWRnZVxuICAgICAgJi54cG8tQmFkZ2VEb3Qge1xuICAgICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkX21hdEJhZGdlQ29udGVudC1ib3JkZXJSYWRpdXM7XG4gICAgICAgICAgaGVpZ2h0OiAkX21hdERvdEJhZGdlQ29udGVudC1oZWlnaHRXaWR0aDtcbiAgICAgICAgICB3aWR0aDogJF9tYXREb3RCYWRnZUNvbnRlbnQtaGVpZ2h0V2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAmLm1hdC1iYWRnZS1vdmVybGFwIHtcbiAgICAgICAgICAmLm1hdC1iYWRnZS1hZnRlciB7XG4gICAgICAgICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICAgICAgICByaWdodDogJF9tYXRCYWRnZU92ZXJsYXBDb250ZW50LXJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubWF0LWJhZGdlLWFib3ZlIHtcbiAgICAgICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICAgICAgdG9wOiAkX21hdEJhZGdlT3ZlcmxhcENvbnRlbnQtdG9wO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkb3RCYWRnZU1peCgkbmd4LVNuYWNrYmFyLXN0YXR1cy0td2Fybik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3VjY2VzcyB7XG4gICAgICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRvdEJhZGdlTWl4KCRuZ3gtU25hY2tiYXItc3RhdHVzLS1zdWNjZXNzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmZvIHtcbiAgICAgICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgZG90QmFkZ2VNaXgoJHhwby1ibHVlLS03MDApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluZm8ge1xuICAgICAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkb3RCYWRnZU1peCgkeHBvLWJsdWUtLTcwMCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW1wb3J0YW50IHtcbiAgICAgICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgZG90QmFkZ2VNaXgoJG5neC1TbmFja2Jhci1zdGF0dXMtLWVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vXG4vLyBUaGUgb3ZlcnJpZGVzIGZvciBidXR0b25zXG4vLy9cblxuLypcbiAgMS4gVGhlIFwibWF0LXJhaXNlZC1idXR0b25cIiBpcyBkZXByZWNhdGVkIGJ1dCB3ZSdyZSBrZWVwaW5nXG4gICAgICB0aGUgc3R5bGVzIGFyb3VuZCBzbyB0aGluZ3MgZG9uJ3QgYnJlYWsgc28gYmFkbHkuXG4qL1xuXG4vLy9cbi8vIFNtYWxsIEJ1dHRvbiBzdHlsZXNcbi8vL1xuXG5AbWl4aW4gbmd4LUJ1dHRvblNtYWxsKCkge1xuICAkX2J1dHRvbi1ib3JkZXItLXNsaW06IDFweDtcbiAgJF9idXR0b24tZm9udFNpemUtaWNvbi0tc21hbGw6IDIwcHg7XG4gICRfYnV0dG9uLUhlaWdodC0tc21hbGw6IDMwcHg7XG4gICRfYnV0dG9uLUxpbmVIZWlnaHQtLXNtYWxsOiAyOHB4O1xuXG4gIFttYXQtYnV0dG9uXS5tYXQtYnV0dG9uLnhwby1TbWFsbEJ1dHRvbixcbiAgW21hdC1mbGF0LWJ1dHRvbl0ubWF0LWZsYXQtYnV0dG9uLnhwby1TbWFsbEJ1dHRvbixcbiAgW21hdC1yYWlzZWQtYnV0dG9uXS5tYXQtcmFpc2VkLWJ1dHRvbi54cG8tU21hbGxCdXR0b24sXG4gIFttYXQtc3Ryb2tlZC1idXR0b25dLm1hdC1zdHJva2VkLWJ1dHRvbi54cG8tU21hbGxCdXR0b24sXG4gIFttYXQtaWNvbi1idXR0b25dLm1hdC1pY29uLWJ1dHRvbi54cG8tU21hbGxCdXR0b24ge1xuICAgIGJvcmRlci13aWR0aDogJF9idXR0b24tYm9yZGVyLS1zbGltO1xuICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xuICAgIGhlaWdodDogJF9idXR0b24tSGVpZ2h0LS1zbWFsbDtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgIG1pbi13aWR0aDogYXV0bztcblxuICAgIC5tYXQtaWNvbiB7XG4gICAgICBmb250LXNpemU6ICRfYnV0dG9uLWZvbnRTaXplLWljb24tLXNtYWxsO1xuICAgIH1cblxuICAgIC5tYXQtYnV0dG9uLXdyYXBwZXIge1xuICAgICAgbGluZS1oZWlnaHQ6ICRfYnV0dG9uLUxpbmVIZWlnaHQtLXNtYWxsO1xuICAgIH1cbiAgfVxuXG4gIG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQueHBvLVNtYWxsQnV0dG9uLFxuICBtYXQtYnV0dG9uLXRvZ2dsZS5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQueHBvLVNtYWxsQnV0dG9uIHtcbiAgICBoZWlnaHQ6ICRfYnV0dG9uLUhlaWdodC0tc21hbGw7XG5cbiAgICAubWF0LWJ1dHRvbi10b2dnbGUsXG4gICAgJi5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgICBib3JkZXItd2lkdGg6ICRfYnV0dG9uLWJvcmRlci0tc2xpbTtcblxuICAgICAgLm1hdC1idXR0b24tdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vL1xuLy8gTGFyZ2UgQnV0dG9uIHN0eWxlc1xuLy8vXG5cbkBtaXhpbiBuZ3gtQnV0dG9uTGFyZ2UoKSB7XG4gIFttYXQtYnV0dG9uXS5tYXQtYnV0dG9uLnhwby1MYXJnZUJ1dHRvbixcbiAgW21hdC1mbGF0LWJ1dHRvbl0ubWF0LWZsYXQtYnV0dG9uLnhwby1MYXJnZUJ1dHRvbixcbiAgW21hdC1yYWlzZWQtYnV0dG9uXS5tYXQtcmFpc2VkLWJ1dHRvbi54cG8tTGFyZ2VCdXR0b24sXG4gIFttYXQtc3Ryb2tlZC1idXR0b25dLm1hdC1zdHJva2VkLWJ1dHRvbi54cG8tTGFyZ2VCdXR0b24sXG4gIG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQueHBvLUxhcmdlQnV0dG9uLFxuICBtYXQtYnV0dG9uLXRvZ2dsZS5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQueHBvLUxhcmdlQnV0dG9uIHtcbiAgICAkX2J1dHRvbi1sYXJnZS1oZWlnaHQ6IDUwcHg7XG5cbiAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLWxhcmdlO1xuICAgIGhlaWdodDogJF9idXR0b24tbGFyZ2UtaGVpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cbiAgICAubWF0LWJ1dHRvbi10b2dnbGUtYnV0dG9uIHtcbiAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tZXh0cmFMYXJnZTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuLy8vXG4vLyBBY3Rpb24gQnV0dG9uIHN0eWxlc1xuLy8vXG5cbkBtaXhpbiB4cG8tYWN0aW9uLWJ1dHRvbi10aGVtZSgkdGhlbWUpIHtcbiAgLnhwby1BY3Rpb25CdXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8td2hpdGU7XG4gICAgYm9yZGVyOiAkbmd4LWlucHV0LWJvcmRlci13aWR0aCBzb2xpZCAkeHBvLWdyZXktLTMwMDtcbiAgICBjb2xvcjogJHhwby1ncmV5LS05MDA7XG4gICAgcGFkZGluZzogJHhwby1jb250ZW50U3BhY2luZyAvIDg7XG5cbiAgICAubWF0LWljb24ge1xuICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1sYXJnZTtcbiAgICAgIHBhZGRpbmc6ICR4cG8tY29udGVudFNwYWNpbmcgLyA0O1xuICAgIH1cblxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUge1xuICAgICAgYm9yZGVyOiAkbmd4LWlucHV0LWJvcmRlci13aWR0aCBzb2xpZCAkeHBvLWdyZXktLTMwMDtcbiAgICAgIGNvbG9yOiAkeHBvLWJsdWUtLTM1MDtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJHhwby1ncmV5LS0xMTAwO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIEFkZGl0aW9uYWwgcGFyYW1ldGVycyB0aGF0IGNhbiBiZSB1c2UgdXNlZCB0byBjb25maWd1cmUgdGhlIGJ1dHRvblxuQGZ1bmN0aW9uIG5neC1idXR0b25Db25maWcoXG4gICRob3Zlci1jb2xvcjogaW5pdGlhbCxcbiAgLy8gZm9udCBjb2xvciB0aGF0IHdpbGwgYmUgYXBwbGllZCBvbiBob3ZlciB0byBiYXNpYyBidXR0b25zXG4gICRwcmltYXJ5LWhvdmVyLWNvbG9yOiBpbml0aWFsLFxuICAvLyBmb250IGNvbG9yIHRoYXQgd2lsbCBiZSBhcHBsaWVkIG9uIGhvdmVyIHRvIHByaW1hcnkgYnV0dG9uc1xuICAkYWNjZW50LWhvdmVyLWNvbG9yOiBpbml0aWFsIC8vICBmb250IGNvbG9yIHRoYXQgd2lsbCBiZSBhcHBsaWVkIG9uIGhvdmVyIHRvIGFjY2VudCBjb2xvcnNcbikge1xuICBAcmV0dXJuIChob3Zlci1jb2xvcjogJGhvdmVyLWNvbG9yLCBwcmltYXJ5LWhvdmVyLWNvbG9yOiAkcHJpbWFyeS1ob3Zlci1jb2xvciwgYWNjZW50LWhvdmVyLWNvbG9yOiAkYWNjZW50LWhvdmVyLWNvbG9yKTtcbn1cblxuQG1peGluIHhwby1idXR0b24tZGlzYWJsZWQoJGJhY2tncm91bmQtY29sb3IsICRib3JkZXItY29sb3IsICRmb250LWNvbG9yKSB7XG4gICYsXG4gICY6YWN0aXZlLFxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG4gICAgY29sb3I6ICRmb250LWNvbG9yO1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIH1cbn1cblxuQG1peGluIHhwby1idXR0b24tdGhlbWUoJHRoZW1lLCAkYnV0dG9uLWNvbmZpZzogbmd4LWJ1dHRvbkNvbmZpZygpKSB7XG4gICRfYnV0dG9uLXBhZGRpbmctLWhvcml6b250YWw6IDIwcHg7XG4gICRfYnV0dG9uLWJvcmRlci0tcmVndWxhcjogMnB4O1xuXG4gIC8vIC0tLSBCdXR0b24gV2Fybi0tLVxuICAkX2J1dHRvbi13YXJuOiAkeHBvLXJlZC0tNDAwO1xuICAkX2J1dHRvbi13YXJuLS1hY3RpdmU6ICR4cG8tcmVkLS05MDA7XG4gICRfYnV0dG9uLXdhcm4tLWhvdmVyOiAkeHBvLXJlZC0tMzAwO1xuICAkX2J1dHRvbi1tZWRpdW0taGVpZ2h0OiA0MHB4O1xuXG4gIC8vIEFsbCBCdXR0b25zXG4gIFttYXQtYnV0dG9uXS5tYXQtYnV0dG9uLFxuICBbbWF0LWZsYXQtYnV0dG9uXS5tYXQtZmxhdC1idXR0b24sXG4gIFttYXQtcmFpc2VkLWJ1dHRvbl0ubWF0LXJhaXNlZC1idXR0b24sXG4gIFttYXQtaWNvbi1idXR0b25dLm1hdC1pY29uLWJ1dHRvbixcbiAgW21hdC1zdHJva2VkLWJ1dHRvbl0ubWF0LXN0cm9rZWQtYnV0dG9uIHtcbiAgICBib3JkZXItd2lkdGg6ICRfYnV0dG9uLWJvcmRlci0tcmVndWxhcjtcbiAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLWxhcmdlO1xuICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLW5vcm1hbDtcbiAgICBoZWlnaHQ6ICRfYnV0dG9uLW1lZGl1bS1oZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICBwYWRkaW5nOiAwICRfYnV0dG9uLXBhZGRpbmctLWhvcml6b250YWw7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgJG5neC1idXR0b24tYW5pbWF0aW9uRHVyYXRpb24gZWFzZSwgYmFja2dyb3VuZC1jb2xvciAkbmd4LWJ1dHRvbi1hbmltYXRpb25EdXJhdGlvbiBlYXNlLCBib3JkZXItY29sb3IgJG5neC1idXR0b24tYW5pbWF0aW9uRHVyYXRpb24gZWFzZTtcbiAgfVxuXG4gIC8vIEZvciBidXR0b25zIHdpdGhvdXQgYm9yZGVyIG9yIGJhY2tncm91bmQgd2UgYXJlIG5vdCB1c2luZyB0aGUgdmVydGljYWwgcGFkZGluZ1xuICBbbWF0LWJ1dHRvbl0ubWF0LWJ1dHRvbiB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8vIFRoaXMgc3R5bGVzIGFyZSBoZXJlIHRvIGJlIGFibGUgdG8gdXNlICd4cG9TbWFsbEJ1dHRvbicgYW5kICd4cG9TbWFsbEJ1dHRvbidcbiAgLy8gd2l0aCBtYXQtYnV0dG9uLXRvZ2dsZVxuICBtYXQtYnV0dG9uLXRvZ2dsZS5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4gIG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgIGhlaWdodDogJF9idXR0b24tbWVkaXVtLWhlaWdodDtcblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwge1xuICAgICAgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICAgICAgYm9yZGVyLXRvcC13aWR0aDogJF9idXR0b24tYm9yZGVyLS1yZWd1bGFyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLm1hdC1idXR0b24tdG9nZ2xlLFxuICAgIC5tYXQtYnV0dG9uLXRvZ2dsZS1idXR0b24ge1xuICAgICAgYm9yZGVyLXdpZHRoOiAkX2J1dHRvbi1ib3JkZXItLXJlZ3VsYXI7XG4gICAgfVxuXG4gICAgLm1hdC1idXR0b24tdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLWxhcmdlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIG1hdC1idXR0b24tdG9nZ2xlLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgYm9yZGVyLXdpZHRoOiAkX2J1dHRvbi1ib3JkZXItLXJlZ3VsYXI7XG4gIH1cblxuICBtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gICAgYm9yZGVyLXdpZHRoOiAwO1xuICB9XG5cbiAgW21hdC1pY29uLWJ1dHRvbl0ubWF0LWljb24tYnV0dG9uIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLy8gRmxhdC1idXR0b24gc3R5bGVzICMxXG4gIFttYXQtZmxhdC1idXR0b25dLm1hdC1mbGF0LWJ1dHRvbixcbiAgW21hdC1yYWlzZWQtYnV0dG9uXS5tYXQtcmFpc2VkLWJ1dHRvbiB7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRfYnV0dG9uLWJvcmRlci0tcmVndWxhcjtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7IC8vIG92ZXJyaWRlcyBhcmUgYSBqZXJrLS1vbmx5IGZvciBgbWF0LXJhaXNlZC1gXG4gICAgY29sb3I6ICR4cG8td2hpdGU7XG5cbiAgICAmLFxuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ibHVlLS04MDA7XG4gICAgICBib3JkZXItY29sb3I6ICR4cG8tYmx1ZS0tODAwO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ibHVlLS0zNTA7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHhwby1ibHVlLS0zNTA7XG4gICAgICB9XG5cbiAgICAgICY6Zm9jdXMsXG4gICAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tYmx1ZS0tODUwO1xuICAgICAgICBib3JkZXItY29sb3I6ICR4cG8tYmx1ZS0tODUwO1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJF9idXR0b24td2FybjtcbiAgICAgIGJvcmRlci1jb2xvcjogJF9idXR0b24td2FybjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRfYnV0dG9uLXdhcm4tLWhvdmVyO1xuICAgICAgICBib3JkZXItY29sb3I6ICRfYnV0dG9uLXdhcm4tLWhvdmVyO1xuICAgICAgfVxuXG4gICAgICAmOmZvY3VzLFxuICAgICAgJjphY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkX2J1dHRvbi13YXJuLS1hY3RpdmU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJF9idXR0b24td2Fybi0tYWN0aXZlO1xuICAgICAgfVxuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIHhwby1idXR0b24tZGlzYWJsZWQoJHhwby1ncmV5LS0zMDAsICR4cG8tZ3JleS0tMzAwLCAkeHBvLXdoaXRlKTtcbiAgICB9XG4gIH1cblxuICAvLyBTdHJva2VkIEJ1dHRvbnNcbiAgLm1hdC1zdHJva2VkLWJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkeHBvLWJsdWUtLTg1MDtcbiAgICBjb2xvcjogJHhwby1ibHVlLS04NTA7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tYmx1ZS0tMTUwO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkeHBvLWJsdWUtLTgwMDtcbiAgICAgIGNvbG9yOiAkeHBvLWJsdWUtLTgwMDtcbiAgICB9XG5cbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tYmx1ZS0tMTUwO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkeHBvLWJsdWUtLTM1MDtcbiAgICAgIGNvbG9yOiAkeHBvLWJsdWUtLTM1MDtcbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBAaW5jbHVkZSB4cG8tYnV0dG9uLWRpc2FibGVkKCR4cG8tZ3JleS0tODAsICR4cG8tZ3JleS0tMzUwLCAkeHBvLWdyZXktLTM1MCk7XG4gICAgfVxuICB9XG5cbiAgLy8gTGluayBidXR0b25zIGFuZCBpY29uIGJ1dHRvbnNcbiAgLm1hdC1idXR0b24sXG4gIC5tYXQtaWNvbi1idXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgJi5tYXQtcHJpbWFyeSB7XG4gICAgICBjb2xvcjogJHhwby1ibHVlLS00MDA7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICR4cG8tYmx1ZS0tMzAwO1xuICAgICAgfVxuXG4gICAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAkeHBvLWJsdWUtLTkwMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLFxuICAgICYubWF0LWFjY2VudCB7XG4gICAgICBjb2xvcjogJHhwby1ncmV5LS05MDA7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tNDAwO1xuICAgICAgfVxuXG4gICAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTkwMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIGNvbG9yOiAkX2J1dHRvbi13YXJuO1xuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkX2J1dHRvbi13YXJuLS1ob3ZlcjtcbiAgICAgIH1cblxuICAgICAgJjphY3RpdmUge1xuICAgICAgICBjb2xvcjogJF9idXR0b24td2Fybi0tYWN0aXZlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEJ1dHRvbnMgd2l0aCBib3JkZXJzXG4gIFttYXQtZmxhdC1idXR0b25dLm1hdC1mbGF0LWJ1dHRvbixcbiAgW21hdC1yYWlzZWQtYnV0dG9uXS5tYXQtcmFpc2VkLWJ1dHRvbixcbiAgW21hdC1zdHJva2VkLWJ1dHRvbl0ubWF0LXN0cm9rZWQtYnV0dG9uIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB9XG5cbiAgLy8gRGlzYWJsZWQgc3RhdGVzIGZvciBidXR0b25zIHdpdGggbm8gYmFja2dyb3VuZFxuICBbbWF0LWJ1dHRvbl0ubWF0LWJ1dHRvbixcbiAgW21hdC1pY29uLWJ1dHRvbl0ubWF0LWljb24tYnV0dG9uIHtcbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBAaW5jbHVkZSB4cG8tYnV0dG9uLWRpc2FibGVkKHRyYW5zcGFyZW50LCAkeHBvLWdyZXktLTM1MCwgJHhwby1ncmV5LS0zNTApO1xuICAgIH1cbiAgfVxuXG4gIC8vIEJyaW5nIGluIHRoZSBTbWFsbCBCdXR0b24gU3R5bGVzXG4gIEBpbmNsdWRlIG5neC1CdXR0b25TbWFsbCgpO1xuXG4gIC8vIEJyaW5nIGluIHRoZSBMYXJnZSBCdXR0b24gU3R5bGVzXG4gIEBpbmNsdWRlIG5neC1CdXR0b25MYXJnZSgpO1xuXG4gIEBpbmNsdWRlIHhwby1hY3Rpb24tYnV0dG9uLXRoZW1lKCR0aGVtZSk7XG5cbiAgLy8vXG4gIC8vIFJlbW92YWxzXG4gIC8vL1xuICAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LFxuICAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gICAgb3BhY2l0eTogMCAhaW1wb3J0YW50OyAvLyAoeHBvKTogaGlkZSBiYWNrZ3JvdW5kIGNvbG9yO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHJvdW5kZWQgYm9yZGVyc1xuICBbbWF0LXN0cm9rZWQtYnV0dG9uXS5tYXQtc3Ryb2tlZC1idXR0b24sXG4gIFttYXQtcmFpc2VkLWJ1dHRvbl0ubWF0LXJhaXNlZC1idXR0b24sXG4gIFttYXQtZmxhdC1idXR0b25dLm1hdC1mbGF0LWJ1dHRvbiB7XG4gICAgYm9yZGVyLXJhZGl1czogJF9idXR0b24tYm9yZGVyLS1yZWd1bGFyO1xuICB9XG59XG5cbi8vL1xuLy8gU2V0cyB1cCB0aGUgYnV0dG9uIHRvZ2dsZSBncm91cFxuLy8vXG5cbi8qXG4gIDEuIFRoZXNlIGFyZSBjYXJyaWVkIG92ZXIgZnJvbSBNYXRlcmlhbCBidXQgVVggZG9lcyBub3RcbiAgICAgIGhhdmUgYW55IGRlc2lnbiBmb3IgdGhlbSB5ZXQuIFRoYXQncyB3aHkgdGhleSBhcmUgbm90XG4gICAgICBpbiB0aGUgc2FtcGxlLi4uIHRoZXkncmUgYSBiaXQgb2YgYSBoaWRkZW4gQVBJLlxuKi9cblxuQGltcG9ydCAnfkBhbmd1bGFyL21hdGVyaWFsL3RoZW1pbmcnO1xuXG5AbWl4aW4geHBvLWJ1dHRvbi10b2dnbGUtZ3JvdXAtdGhlbWUoJHRoZW1lKSB7XG4gIEBpbmNsdWRlIG1hdC1idXR0b24tdG9nZ2xlLXRoZW1lKCR0aGVtZSk7XG5cbiAgbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAsXG4gIG1hdC1idXR0b24tdG9nZ2xlLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUge1xuICAgICRfaW5uZXJEaXZpZGVyQ29sb3I6ICR4cG8tYmx1ZS0tODUwO1xuICAgICRfaW5uZXJCb3JkZXJUaGlja25lc3M6IDJweDtcbiAgICAkX2lubmVyU3RhbmRhbG9uZUJ1dHRvbi1tYXJnaW46IDJweDsgLy8gIzFcbiAgICAkX2lubmVyUGFkZGluZy0taG9yaXpvbnRhbDogMjBweDtcblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLFxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICBib3JkZXItcmFkaXVzOiAycHg7XG5cbiAgICAgIEBhdC1yb290IC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAvLyAjMVxuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRfaW5uZXJTdGFuZGFsb25lQnV0dG9uLW1hcmdpbjtcbiAgICAgIH1cblxuICAgICAgQGF0LXJvb3QgLm1hdC1idXR0b24tdG9nZ2xlLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUsIC8vICMxXG4gICAgICAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgICAgICBib3JkZXItY29sb3I6ICRfaW5uZXJEaXZpZGVyQ29sb3I7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGNvbG9yOiAkeHBvLWJsdWUtLTg1MDtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tbWVkaXVtO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAkbmd4LWJ1dHRvbi1hbmltYXRpb25EdXJhdGlvbiBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yICRuZ3gtYnV0dG9uLWFuaW1hdGlvbkR1cmF0aW9uIGVhc2U7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ibHVlLS0xNTA7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmV5LS0xMDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tYmx1ZS0tMzUwO1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJHhwby1ibHVlLS0zNTA7XG4gICAgICAgICAgY29sb3I6ICR4cG8td2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTgwO1xuICAgICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTM1MDtcbiAgICAgICAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgICAgICAgLm1hdC1idXR0b24tdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gQnV0dG9uIENvbnRlbnRcbiAgICAgIC5tYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIHBhZGRpbmc6IDAgJF9pbm5lclBhZGRpbmctLWhvcml6b250YWw7XG4gICAgICB9XG5cbiAgICAgIC8vIE92ZXJyaWRlcyBmb3IgYm9yZGVyIGNvbG9yc1xuICAgICAgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlOm5vdCgubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCkge1xuICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJF9pbm5lckRpdmlkZXJDb2xvcjtcbiAgICAgIH1cblxuICAgICAgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJHhwby1ibHVlLS0zNTA7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwge1xuICAgICAgICAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRfaW5uZXJEaXZpZGVyQ29sb3I7XG4gICAgICAgICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICBib3JkZXItY29sb3I6ICR4cG8tZ3JleS0tMzUwO1xuICB9XG59XG5cbkBtaXhpbiB4cG8tbGluay10aGVtZSgkdGhlbWUpIHtcbiAgJF9pY29uLXNpemU6IDEuMTQzZW07IC8vIHJlbGF0aXZlIHRvIHBhcmVudCBzaXplXG5cbiAgLnhwby1MaW5rIHtcbiAgICBjb2xvcjogJHhwby1ibHVlLS04MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLW1lZGl1bTtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkeHBvLWJsdWUtLTM1MDtcbiAgICAgIG91dGxpbmU6IDA7XG4gICAgfVxuXG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJHhwby1ibHVlLS04NTA7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgICYtLXJlZ3VsYXIge1xuICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tbm9ybWFsO1xuICAgIH1cblxuICAgICYtLWFjY2VudCB7XG4gICAgICBjb2xvcjogJHhwby1ncmV5LS05MDA7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzLFxuICAgICAgJjphY3RpdmUge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJHhwby1ncmV5LS05MDA7XG4gICAgICAgIG91dGxpbmU6IDA7XG4gICAgICB9XG5cbiAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tMTAwMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWljb24ge1xuICAgICAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbGFyZ2U7XG4gICAgICBoZWlnaHQ6ICRfaWNvbi1zaXplO1xuICAgICAgbWFyZ2luLWxlZnQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyA0O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB3aWR0aDogJF9pY29uLXNpemU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB4cG8tZG93bmxvYWQtYnV0dG9uLXRoZW1lKCR0aGVtZSkge1xuICBidXR0b24ueHBvLURvd25sb2FkQnV0dG9uIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAubWF0LXNwaW5uZXIge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbGVmdDogJHhwby1jb250ZW50U3BhY2luZyAvIDQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB4cG8tY2hlY2tib3gtdGhlbWUoJHRoZW1lKSB7XG4gIEBpbmNsdWRlIG1hdC1jaGVja2JveC10aGVtZSgkdGhlbWUpO1xuICAkX2NoZWNrYm94LWluZGV0ZXJtaW5hdGUtYm9yZGVyUmFkaXVzOiAycHg7XG4gICRfY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1wYWRkaW5nOiAxcHggMnB4IDNweCAxcHg7XG4gICRfY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1tYXJnaW46IDNweCAzcHg7XG4gICRfY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1ib3JkZXI6IDJweCBzb2xpZCAkeHBvLWJsYWNrO1xuXG4gIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OyAvLyBBdm9pZCBkZWZhdWx0IGluZGV0ZXJtaXRhdGUgc3R5bGUgd2hlbiBsZWZ0IGluZGV0ZXJtaW5hdGUgc3RhdGVcbiAgfVxuXG4gIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtYWNjZW50IHtcbiAgICAubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lciB7XG4gICAgICBib3JkZXI6ICRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoIHNvbGlkICR4cG8tYmxhY2s7XG4gICAgICBib3JkZXItcmFkaXVzOiAkX2NoZWNrYm94LWluZGV0ZXJtaW5hdGUtYm9yZGVyUmFkaXVzO1xuICAgIH1cblxuICAgICYubWF0LWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICAgIC5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVyIHtcbiAgICAgICAgYm9yZGVyOiAkbmd4LWlucHV0LWJvcmRlci13aWR0aCBzb2xpZCAkeHBvLWdyZXktLTM1MDtcblxuICAgICAgICAubWF0LWNoZWNrYm94LWZyYW1lIHtcbiAgICAgICAgICBib3JkZXI6ICRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQ6ICR4cG8tYmxhY2s7XG4gICAgICBib3JkZXI6ICRfY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1ib3JkZXI7XG4gICAgICBoZWlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgICAgbWFyZ2luOiAkX2NoZWNrYm94LWluZGV0ZXJtaW5hdGUtbWFyZ2luO1xuICAgICAgcGFkZGluZzogJF9jaGVja2JveC1pbmRldGVybWluYXRlLXBhZGRpbmc7XG4gICAgICB3aWR0aDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jaGVja2JveCB7XG4gICAgJF9tYXQtY2hlY2tib3gtY2xhc3M6ICY7XG5cbiAgICBib3JkZXI6ICRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIG1hcmdpbjogM3B4ICR4cG8tY29udGVudFNwYWNpbmcgLyA0O1xuICAgIHBhZGRpbmc6IDAgJHhwby1jb250ZW50U3BhY2luZyAvIDQ7XG5cbiAgICAmLmNkay1rZXlib2FyZC1mb2N1c2VkIHtcbiAgICAgIGJvcmRlcjogJG5neC1pbnB1dC1ib3JkZXItd2lkdGggZGFzaGVkICR4cG8tZ3JleS0tMzAwO1xuICAgIH1cblxuICAgICYueHBvLUNoZWNrYm94R3JvdXAtc2VsZWN0QWxsIHtcbiAgICAgIG1hcmdpbjogM3B4ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgIH1cblxuICAgIC5tYXQtY2hlY2tib3gtbGF5b3V0IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJi5tYXQtY2hlY2tib3gtbGFiZWwtYmVmb3JlIC5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNDtcbiAgICB9XG5cbiAgICAubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lciB7XG4gICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgICAgbWFyZ2luOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNCAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNCAwIDA7XG4gICAgfVxuXG4gICAgJi1yaXBwbGUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmLWJhY2tncm91bmQge1xuICAgICAgLm1hdC1jaGVja2JveC1jaGVja21hcmsge1xuICAgICAgICAmLXBhdGgge1xuICAgICAgICAgIHN0cm9rZS13aWR0aDogMy4xMzMzM3B4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5tYXQtY2hlY2tib3gtZGlzYWJsZWQge1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgLm1hdC1jaGVja2JveC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTk1MDtcbiAgICAgIH1cblxuICAgICAgLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1kYXJrO1xuICAgICAgfVxuXG4gICAgICAubWF0LWNoZWNrYm94LWNoZWNrbWFyayB7XG4gICAgICAgIGZpbGw6ICRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWxpZ2h0O1xuICAgICAgfVxuXG4gICAgICAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1saWdodDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHhwby1ncmV5LS0zNTA7XG5cbiAgICAgICAgLm1hdC1jaGVja2JveC1jaGVja2VkICYge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tMzUwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7XG4gICAgICAgICAgc3Ryb2tlOiAkbmd4LWlucHV0LWNvbG9yLWRpc2FibGUtLWxpZ2h0ZXIgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICAgICAgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTMwMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXQtY2hlY2tib3gtbWl4ZWRtYXJrIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1saWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAubWF0LWNoZWNrYm94LWZyYW1lIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkeHBvLWdyZXktLTMwMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1jaGVja2JveC1jaGVja2VkIHtcbiAgICAgIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuZ3gtaW5wdXQtY29sb3Itb25BY3RpdmUtLWRhcms7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICAgICAgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1kYXJrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkge1xuICAgICAgI3skX21hdC1jaGVja2JveC1jbGFzc30taW5uZXItY29udGFpbmVyOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlKSB7XG4gICAgICAubWF0LWNoZWNrYm94LWZyYW1lIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJG5neC1pbnB1dC1jb2xvci1ib3JkZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tZGFyaztcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGNoaXAtc2l6ZSgkY2hpcC1zaXplLCAkZm9udC1zaXplKSB7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6ICRjaGlwLXNpemU7XG4gIG1pbi1oZWlnaHQ6ICRjaGlwLXNpemU7XG59XG5cbkBtaXhpbiBpY29uLXNpemUoJGljb24tc2l6ZSkge1xuICBoZWlnaHQ6ICRpY29uLXNpemU7XG4gIHdpZHRoOiAkaWNvbi1zaXplO1xufVxuXG5AbWl4aW4gY2hpcHMtYmFkZ2UoJGJhY2tncm91bmRDb2xvciwgJGJvcmRlciwgJGNvbG9yKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kQ29sb3I7XG4gIGJvcmRlcjogJGJvcmRlcjtcbiAgY29sb3I6ICRjb2xvcjtcbn1cblxuQG1peGluIHhwby1jaGlwcy10aGVtZSgkdGhlbWUpIHtcbiAgQGluY2x1ZGUgbWF0LWNoaXBzLXRoZW1lKCR0aGVtZSk7XG5cbiAgbWF0LWNoaXAubWF0LWNoaXAge1xuICAgICRfbWF0Q2hpcC1wcmlvcml0eS1jcml0aWNhbDogJHhwby1jb2xvci0tZXJyb3I7XG4gICAgJF9tYXRDaGlwLXByaW9yaXR5LWhpZ2g6ICR4cG8tb3JhbmdlLS0zMDA7XG4gICAgJF9tYXRDaGlwLXByaW9yaXR5LW1lZGl1bTogJHhwby1jb2xvci0td2FybjtcbiAgICAkX21hdENoaXAtYm9yZGVyLXJhZGl1cy0tZGVmYXVsdDogJHhwby1jb250ZW50U3BhY2luZztcbiAgICAkX21hdENoaXAtdGFncy1ib3JkZXItcmFkaXVzOiAycHg7XG4gICAgJF9tYXRDaGlwLXRhZ0xhcmdlLWhlaWdodDogMzBweDtcbiAgICAkX21hdEJhZGdlQ29udGVudC1mb250U2l6ZTogMTBweDtcbiAgICAkX21hdENoaXAtQmFkZ2UtaGVpZ2h0OiAyMHB4O1xuXG4gICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tbWVkaXVtO1xuXG4gICAgQGluY2x1ZGUgY2hpcC1zaXplKCR4cG8tbGluZUhlaWdodC0tYmFzZSwgJHhwby1mb250U2l6ZS0tbWVkaXVtKTtcblxuICAgIC5tYXQtaWNvbiB7XG4gICAgICBAaW5jbHVkZSBpY29uLXNpemUoJHhwby1mb250U2l6ZS0tbWVkaXVtKTtcbiAgICB9XG5cbiAgICAmLnhwby1DaGlwLS1zbWFsbCB7XG4gICAgICBAaW5jbHVkZSBjaGlwLXNpemUoJHhwby1saW5lSGVpZ2h0LS1zbWFsbCwgJHhwby1mb250U2l6ZS0tc21hbGwpO1xuXG4gICAgICAubWF0LWljb24ge1xuICAgICAgICBAaW5jbHVkZSBpY29uLXNpemUoJHhwby1mb250U2l6ZS0tc21hbGwpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LXN0YW5kYXJkLWNoaXAge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmV5LS0zMDA7XG4gICAgICBib3JkZXItcmFkaXVzOiAkX21hdENoaXAtYm9yZGVyLXJhZGl1cy0tZGVmYXVsdDtcbiAgICAgIHBhZGRpbmctbGVmdDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcblxuICAgICAgJjpub3QoLm1hdC1jaGlwLWRpc2FibGVkKSB7XG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cblxuICAgICAgLm1hdC1pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyA0O1xuXG4gICAgICAgICYubWF0LWNoaXAtdHJhaWxpbmctaWNvbiB7XG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNDtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi54cG8tdGFnIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmV5LS0xMDA7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR4cG8tZ3JleS0tMzAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkX21hdENoaXAtdGFncy1ib3JkZXItcmFkaXVzO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8td2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWNoaXAtcmVtb3ZlIHtcbiAgICAgICAgICAmLFxuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tMTEwMDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm1hdC1pY29uIHtcbiAgICAgICAgICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1tZWRpdW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1sYXJnZSB7XG4gICAgICAgICAgY29sb3I6ICR4cG8tYmxhY2s7XG4gICAgICAgICAgZm9udC1mYW1pbHk6ICR4cG8tZm9udEZhbWlseS0tcHJpbWFyeTtcbiAgICAgICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbiAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgIGhlaWdodDogJF9tYXRDaGlwLXRhZ0xhcmdlLWhlaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYueHBvLUNoaXAge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAmLS11bnJlYWQsXG4gICAgICAmLS1jcml0aWNhbCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRfbWF0Q2hpcC1wcmlvcml0eS1jcml0aWNhbDtcbiAgICAgICAgY29sb3I6ICR4cG8td2hpdGU7XG4gICAgICB9XG5cbiAgICAgICYtLWhpZ2gge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkX21hdENoaXAtcHJpb3JpdHktaGlnaDtcbiAgICAgIH1cblxuICAgICAgJi0tbWVkaXVtIHtcbiAgICAgICAgYmFja2dyb3VuZDogJF9tYXRDaGlwLXByaW9yaXR5LW1lZGl1bTtcbiAgICAgIH1cblxuICAgICAgJi0tZ3JlZW4ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZWVuLS00MDA7XG4gICAgICAgIGNvbG9yOiAkeHBvLXdoaXRlO1xuICAgICAgfVxuXG4gICAgICAmLS1vcmFuZ2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLW9yYW5nZS0tMzAwO1xuICAgICAgfVxuXG4gICAgICAmLS1yZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLXJlZC0tNDAwO1xuICAgICAgICBjb2xvcjogJHhwby13aGl0ZTtcbiAgICAgIH1cblxuICAgICAgJi0teWVsbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby15ZWxsb3ctLTQwMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnhwby1CYWRnZUNoaXAge1xuICAgICAgJi5tYXQtY2hpcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJF9tYXRCYWRnZUNvbnRlbnQtZm9udFNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWV4dHJhQm9sZDtcbiAgICAgICAgbWluLWhlaWdodDogJF9tYXRDaGlwLUJhZGdlLWhlaWdodDtcbiAgICAgIH1cblxuICAgICAgLy8gTnVtYmVyZWRcbiAgICAgICYtLW5lZ2F0aXZlIHtcbiAgICAgICAgJi5tYXQtc3RhbmRhcmQtY2hpcCB7XG4gICAgICAgICAgJi5tYXQtY2hpcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjaGlwcy1iYWRnZShcbiAgICAgICAgICAgICAgJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1uZWdhdGl2ZSxcbiAgICAgICAgICAgICAgJG5neC1pbnB1dC1ib3JkZXItd2lkdGggc29saWQgJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1uZWdhdGl2ZSxcbiAgICAgICAgICAgICAgJF9tYXRCYWRnZUNvbnRlbnQtY29sb3ItLW5lZ2F0aXZlXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLS1wb3NpdGl2ZSB7XG4gICAgICAgICYubWF0LXN0YW5kYXJkLWNoaXAge1xuICAgICAgICAgICYubWF0LWNoaXAge1xuICAgICAgICAgICAgQGluY2x1ZGUgY2hpcHMtYmFkZ2UoXG4gICAgICAgICAgICAgICRfbWF0QmFkZ2VDb250ZW50LWJhY2tncm91bmRDb2xvci0tcG9zaXRpdmUsXG4gICAgICAgICAgICAgICRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoIHNvbGlkICRfbWF0QmFkZ2VDb250ZW50LWJhY2tncm91bmRDb2xvci0tcG9zaXRpdmUsXG4gICAgICAgICAgICAgICRuZ3gtU25hY2tiYXItc3RhdHVzLS1zdWNjZXNzXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC1oZWFkZXItLXNtYWxsKCkge1xuICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1zbWFsbDtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLXNtYWxsO1xuICBsaW5lLWhlaWdodDogJHhwby1oZWFkZXItbGluZUhlaWdodC0tc21hbGw7XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tbWVkaXVtKCkge1xuICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1tZWRpdW07XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1tZWRpdW07XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1tZWRpdW07XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tbGFyZ2UoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLWxhcmdlO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbGFyZ2U7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1sYXJnZTtcbn1cblxuLy8gUmVndWxhciB0ZXh0IG1peGluc1xuQG1peGluIFRleHRUcmVhdG1lbnQtLXNtYWxsKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLXNtYWxsO1xuICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbWFsbDtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtLW1lZGl1bSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LS1sYXJnZSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1sYXJnZTtcbn1cblxuXG4vKlxuKiogPT09PSBCYXNpYyBjb2xvcnMgPT09PVxuKi9cblxuLypcbioqID09PT0gWFBPIEJyYW5kIENvbG9yIFBhbGV0dGUgPT09PVxuKi9cblxuLy8gWFBPIFJlZFxuJHhwby1icmFuZC1yZWQ6ICNjYzAwMDA7XG4keHBvLWJyYW5kLXJlZC0tOTAwOiAkeHBvLWJyYW5kLXJlZDtcbiR4cG8tYnJhbmQtcmVkLS04MDA6ICNlNDIxMGU7XG4keHBvLWJyYW5kLXJlZC0tNzAwOiAjZjMyYTEzO1xuJHhwby1icmFuZC1yZWQtLTYwMDogI2ZmMzMxNztcbiR4cG8tYnJhbmQtcmVkLS01MDA6ICNmZjM5MWM7XG4keHBvLWJyYW5kLXJlZC0tNDAwOiAjZmY1ZTNkO1xuJHhwby1icmFuZC1yZWQtLTMwMDogI2ZmN2U2MDtcbiR4cG8tYnJhbmQtcmVkLS0yMDA6ICNmZmE0OGU7XG4keHBvLWJyYW5kLXJlZC0tMTAwOiAjZmZjOGJhO1xuJHhwby1icmFuZC1yZWQtLTUwOiAjZmNlOGU2O1xuXG4vLyBYUE8gQmxhY2tcbiR4cG8tYmxhY2s6ICMwMDAwMDA7XG4keHBvLWJyYW5kLWJsYWNrLS05MDA6ICR4cG8tYmxhY2s7XG4keHBvLWJyYW5kLWJsYWNrLS04MDA6ICMyNjI2MjY7XG4keHBvLWJyYW5kLWJsYWNrLS03MDA6ICM1NTU1NTU7XG4keHBvLWJyYW5kLWJsYWNrLS02MDA6ICM3YjdiN2I7XG4keHBvLWJyYW5kLWJsYWNrLS01MDA6ICM5ZDlkOWQ7XG4keHBvLWJyYW5kLWJsYWNrLS00MDA6ICM5ZDlkOWQ7XG4keHBvLWJyYW5kLWJsYWNrLS0zMDA6ICNjNGM0YzQ7XG4keHBvLWJyYW5kLWJsYWNrLS0yMDA6ICNkOWQ5ZDk7XG4keHBvLWJyYW5kLWJsYWNrLS0xMDA6ICNlOWU5ZTk7XG4keHBvLWJyYW5kLWJsYWNrLS01MDogI2Y1ZjVmNTtcblxuLy8gWFBPIERhcmsgR3JleVxuJHhwby1icmFuZC1kYXJrLWdyZXk6ICM0MTRhNGM7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tOTAwOiAjMjIyODJiO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTgwMDogJHhwby1icmFuZC1kYXJrLWdyZXk7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNzAwOiAjNjI2ODZjO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTYwMDogIzc1N2Q4MTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS01MDA6ICNhMGE2YWE7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNDAwOiAjYmVjNWM5O1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTMwMDogI2UwZTdlYjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0yMDA6ICNlYmYyZjY7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMTAwOiAjZjBmN2ZiO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTUwOiAjZjRmY2ZmO1xuXG4vLyBYUE8gTWVkaXVtIEdyZXlcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXk6ICM4NDg0ODQ7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS05MDA6ICMyZTJlMmU7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS04MDA6ICM1MDUwNTA7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS03MDA6ICM3MDcwNzA7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS02MDA6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXk7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS01MDA6ICNhZmFmYWY7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS00MDA6ICNjZGNkY2Q7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0zMDA6ICNlZWVlZWU7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA6ICNmM2YzZjM7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0xMDA6ICNmOGY4Zjg7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS01MDogI2ZjZmNmYztcblxuLy8gWFBPIExpZ2h0IEdyZXlcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleTogI2RlZGVkZTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tOTAwOiAjMWYxZjFmO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS04MDA6ICMzZjNmM2Y7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTcwMDogIzVlNWU1ZTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNjAwOiAjNzI3MjcyO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS01MDA6ICM5YTlhOWE7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTQwMDogI2JhYmFiYTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMzAwOiAkeHBvLWJyYW5kLWxpZ2h0LWdyZXk7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTIwMDogI2VjZWNlYztcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMTAwOiAjZjRmNGY0O1xuJHhwby1icmFuZC1saWdodC1ncmV5LS01MDogI2Y5ZjlmOTtcblxuLypcbioqID09PT0gTWFpbiBDb2xvciBQYWxldHRlID09PT1cbiovXG5cbi8vIEJsYWNrIGFuZCBHcmV5XG4keHBvLWdyZXktLTk3NTogIzIxMjEyMTtcbiR4cG8tZ3JleS0tOTUwOiAjMzMzMzMzO1xuJHhwby1ncmV5LS05MDA6ICM0YTRhNGE7XG4keHBvLWdyZXktLTcwMDogIzZmNmY2ZjtcbiR4cG8tZ3JleS0tMzUwOiAjYmRiZGJkO1xuJHhwby1ncmV5LS0zMDA6ICNkOGQ4ZDg7XG4keHBvLWdyZXktLTgwOiAjZjZmNmY2O1xuJHhwby1ncmV5LS0yNTogI2ZhZmFmYTtcblxuJHhwby13aGl0ZTogI2ZmZmZmZjtcblxuLy8gTGlua3MsIEJ1dHRvbnMsIFRhYnNldCBhbmQgVGFicGlsbHNcbiR4cG8tYmx1ZS0tODUwOiAjMGQ0N2ExO1xuJHhwby1ibHVlLS04MDA6ICMxOTc2ZDI7XG4keHBvLWJsdWUtLTM1MDogIzIxOTZmMztcblxuLy8gRXJyb3IgU3RhdGVcbiR4cG8tcmVkLS0yMDA6ICNiNzFjMWM7XG4keHBvLXJlZC0tMTUwOiAjZDMyZjJmO1xuJHhwby1yZWQtLTUwOiAjZmNlZWViO1xuXG4vLyBTdWNjZXNzIFN0YXRlXG4keHBvLWdyZWVuLS02MDA6ICMzODhlM2M7XG4keHBvLWdyZWVuLS00NTA6ICM0Y2FmNTA7XG4keHBvLWdyZWVuLS01MDogI2YxZjlmMTtcblxuLy8gV2FybmluZyBTdGF0ZVxuJHhwby15ZWxsb3ctLTM1MDogI2ZmZDYwMDtcblxuJHhwby1vcmFuZ2UtLTM1MDogI2ZmNmQwMDtcblxuLy8gSW5mbyBTdGF0ZVxuJHhwby1ibHVlLS03MDA6ICMwMDkxZWE7XG5cbi8vIFRyYW5zYWN0aW9uYWwgQ2VsbHNcbiR4cG8tZ3JleS0tMTUwOiAjZWNlZmYxO1xuXG4keHBvLWJsdWVHcmV5LS03MDA6ICNjZmQ4ZGM7XG5cbi8vIEFjY2VudCBDb2xvcnNcbiR4cG8tcGluay0tNzAwOiAjYzUxMTYyO1xuXG4keHBvLXRlYWwtLTcwMDogIzAwYmZhNTtcblxuJHhwby1ibHVlLS04MjU6ICMzMDRmZmU7XG4keHBvLWJsdWUtLTIwMDogI2U0ZWZmYTtcblxuJHhwby1hY2NlbnQtcmVkLS00MDA6ICR4cG8tYnJhbmQtcmVkLS00MDA7XG4keHBvLWFjY2VudC1yZWQtLTEwMDogJHhwby1icmFuZC1yZWQtLTEwMDtcblxuJHhwby1wdXJwbGUtLTcwMDogIzYyMDBlYTtcblxuJHhwby1ncmVlbi0tMjAwOiAjYTRlNTliO1xuXG4keHBvLXllbGxvdy0tMjAwOiAjZmZmOWM0O1xuXG4vKlxuKiogPT09PSBERVBSRUNBVEVEIENPTE9SUyA9PT09XG4qL1xuXG4vKlxuKiogV0FSTklORzogVEhJUyBWQVJJQUJMRVMgV0lMTCBCRSBSRU1PVkVEIFNPT05cbiovXG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTEwMDogI2U4ZjVmZTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMTUwOiAjZTNmMmZkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0zMDA6ICMwZDk0ZjQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTQwMDogIzA4NjhhYztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tOTAwOiAjMDUzYzYzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTEwMDogI2ZmZjhlNTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS0zMDA6ICNmZmNmNGQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tNDAwOiAjZmZiYTAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTcwMDogI2ZmZDYwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS05MDA6ICM0ZDM4MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS0xMDA6ICNjOGZmZGY7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS0zMDA6ICMxY2U4NTU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS0zNTA6ICMwMGM4NTM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS00MDA6ICMxMWE2M2I7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS03MDA6ICMwMGM4NTM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS05MDA6ICMwYTYxMjI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTUwOiAjZmJmYmZiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS02MDogI2ZhZmFmYTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMTAwOiAjZjNmM2YzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0yMDA6ICNlNmU2ZTY7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTI1MDogI2RkZGRkZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNDAwOiAjOWI5YjliO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS02MDA6ICM3NTc1NzU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTY1MDogIzg1ODU4NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNzUwOiAjNTc1NzU3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS05MTU6ICM0MzQ5NGQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTkzMDogIzQyNDI0Mjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMTAwMDogIzE3MTcxNztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMTEwMDogIzIxMjEyMTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0xMDA6ICNmZmVlZWU7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMjUwOiAjZGQyYzAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTMwMDogI2ZmMjIyMjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS00MDA6ICNkNTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNjAwOiAjY2MwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTcwMDogI2QzMmYyZjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS05MDA6ICM1NTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tMTAwOiAjZmZkZmNhO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTMwMDogI2ZmOTk1Nztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS00MDA6ICNmZjY0MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tOTAwOiAjOGIzNzAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1mb250Q29sb3ItLWxpbms6ICMwODY4YWM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJhY2tncm91bmRDb2xvci0tYm9keTogI2YzZjNmMztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLWVycm9yOiAjZDUwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0tc3VjY2VzczogIzExYTYzYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLXdhcm46ICNmZmJhMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1pbmZvOiAjNGE0YTRhO1xuXG4vKlxuKiogPT09PSBDT0xPUlMgQVBQTElFRCA9PT09XG4qL1xuJHhwby1mb250Q29sb3ItLXByaW1hcnk6ICR4cG8tZ3JleS0tOTAwO1xuXG4vKlxuKiogPT09PSBUeXBvZ3JhcGh5ID09PT1cbiovXG4vLyBQdXR0aW5nIHNpemVzIGluIG1hcHMgdG8gYWxsb3cgZHluYW1pYyBzaXppbmcgZm9yIGV4dGVybmFsXG4vLyBSb290IGZvbnQtc2l6ZShzKSBhbHdheXMgaW4gcHhcbiR4cG8tZm9udFNpemUtLXJvb3Q6IDE0cHg7XG4keHBvLWZvbnRTaXplLS1zbWFsbDogMC44NzVyZW07IC8vMTJweFxuJHhwby1mb250U2l6ZS0tbWVkaXVtOiAxcmVtOyAvLzE0cHhcbiR4cG8tZm9udFNpemUtLWxhcmdlOiAxLjE0M3JlbTsgLy8xNnB4XG4keHBvLWZvbnRTaXplLS1leHRyYUxhcmdlOiAxLjI4NXJlbTsgLy8xOHB4XG4keHBvLWZvbnRTaXplLS14eGxhcmdlOiAxLjcxNHJlbTsgLy8yNHB4XG5cbiR4cG8taGVhZGVyLWZvbnRTaXplLS14c21hbGw6IDFyZW07IC8vMTRweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXNtYWxsOiAxLjE0M3JlbTsgLy8xNnB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tbWVkaXVtOiAxLjI4NXJlbTsgLy8xOHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tbGFyZ2U6IDEuNDI4cmVtOyAvLzIwcHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS14bGFyZ2U6IDEuNTcxcmVtOyAvLzIycHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS14eGxhcmdlOiAxLjg1N3JlbTsgLy8yNnB4XG5cbiR4cG8tZm9udEZhbWlseS0tcHJpbWFyeTogJ1JvYm90bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBzYW5zLXNlcmlmO1xuJHhwby1mb250RmFtaWx5LS1yb2JvdG9XaWRlQmxhY2s6ICdSb2JvdG8gV2lkZSBCbGFjaycsICdSb2JvdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgc2Fucy1zZXJpZjtcblxuJHhwby1mb250V2VpZ2h0LS1saWdodDogMzAwO1xuJHhwby1mb250V2VpZ2h0LS1ub3JtYWw6IDQwMDtcbiR4cG8tZm9udFdlaWdodC0tbWVkaXVtOiA1MDA7IC8vIERFUFJFQ0FURUQgfCBkbyBub3QgZGVsZXRlIHNpbmNlIGl0IGlzIHN0aWxsIGJlaW5nIHVzZWQgaW4gc29tZSBwcm9qZWN0c1xuJHhwby1mb250V2VpZ2h0LS1ib2xkOiA1MDA7XG4keHBvLWZvbnRXZWlnaHQtLWV4dHJhQm9sZDogNjAwO1xuJHhwby1mb250V2VpZ2h0LS1ib2xkZXI6IDcwMDtcblxuJHhwby1saW5lSGVpZ2h0LS14bDogMi4yODZyZW07IC8vIDMycHhcbiR4cG8tbGluZUhlaWdodC0tbGc6IDEuNzE0cmVtOyAvLyAyNHB4XG4keHBvLWxpbmVIZWlnaHQtLW1kOiAxLjU3MXJlbTsgLy8gMjJweFxuJHhwby1saW5lSGVpZ2h0LS1zbTogMS40MjlyZW07IC8vIDIwcHhcblxuJHhwby1saW5lSGVpZ2h0LS1iYXNlOiAyNHB4OyAvLyBmb3IgbWVkaXVtIGFuZCBsYXJnZSBmb250IHNpemVcbiR4cG8tbGluZUhlaWdodC0tbWVkaXVtOiAxOHB4OyAvLyBmb3IgbWVkaXVtIGZvbnQgc2l6ZXNcbiR4cG8tbGluZUhlaWdodC0tc21hbGw6IDE2cHg7IC8vIGZvciBzbWFsbCBmb250IHNpemVcblxuJHhwby1oZWFkZXItbGluZUhlaWdodC0tc21hbGw6IDEuMTQzOyAvLyBERVBSRUNBVEVEXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1tZWRpdW06IDEuMTQzOyAvLyBERVBSRUNBVEVEXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1sYXJnZTogMS4yODY7IC8vIERFUFJFQ0FURURcblxuJHhwby1sZXR0ZXJTcGFjaW5nLS1iYXNlOiAwLjJweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLXNtYWxsOiAwLjNweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLW1lZGl1bTogMC4zM3B4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbGFyZ2U6IDAuMzhweDtcblxuLy8gPT09PSBMYXlvdXQgPT09PVxuJHhwby1jb250ZW50U3BhY2luZzogMTZweDtcblxuLy8gQnJlYWtwb2ludHNcbiR4cG8tYnJlYWtwb2ludC0tc21hbGwteHM6IDQ4MHB4O1xuJHhwby1icmVha3BvaW50LS1zbWFsbDogNjAwcHg7XG4keHBvLWJyZWFrcG9pbnQtLW1lZGl1bTogNzY4cHg7XG4keHBvLWJyZWFrcG9pbnQtLWxhcmdlOiAxMDI1cHg7XG4keHBvLWJyZWFrcG9pbnQtLXhMYXJnZTogMTQ0MHB4O1xuXG4keHBvLXNlbGVjdC1iYWNrZ3JvdW5kQ29sb3Itb3B0aW9uT25Ib3ZlcjogJHhwby1ibHVlLS0yMDA7XG5cbi8vIC0tIE5HWC1VSSBTcGVjaWZpYyAtLVxuJG5neC1mb290ZXItaGVpZ2h0OiA0MnB4O1xuJG5neC10YWItaGVhZGVyLWhlaWdodDogNDBweDtcbiRuZ3gtdGFibGUtcm93LWhlaWdodDogMzBweDtcblxuJG5neC1pY29uLXNpemU6IDI0cHg7IC8vIFRPRE86IERlcHJlY2F0ZSB0aGlzIHZhcmlhYmxlXG4keHBvLWljb24tc2l6ZS0tc3RhbmRhcmQ6IDIwcHg7XG4keHBvLWljb24tc2l6ZS0tc21hbGw6IDE4cHg7XG4keHBvLWljb24tc2l6ZS0tbGFyZ2U6IDI0cHg7XG5cbiRuZ3gtdGhlQmxhY2tSb2JvdG86IDkwMDtcblxuJHhwby1pbnB1dC1oZWlnaHQtLWRlZmF1bHQ6IDMwcHg7XG4keHBvLWlucHV0LWhlaWdodC0tdHdvTGluZXM6IDQ1cHg7XG5cbiRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoOiAxcHg7XG5cbiRuZ3gtaW5wdXQtY29sb3Itb25Ib3ZlcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMjAwO1xuJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tZGFyazogJHhwby1ibGFjaztcbiRuZ3gtaW5wdXQtY29sb3Itb25BY3RpdmUtLWxpZ2h0OiAkeHBvLXdoaXRlO1xuJG5neC1pbnB1dC1jb2xvci1ib3JkZXI6ICR4cG8tZ3JleS0tMzAwO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlZC0tZGFyazogJHhwby1ncmV5LS0zNTA7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGUtLWxpZ2h0ZXI6ICR4cG8td2hpdGU7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1saWdodDogJHhwby1ncmV5LS04MDtcblxuJG5neC1idXR0b24tbGluZUhlaWdodDogMzZweDtcbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQtLXNtYWxsOiAyOHB4O1xuJG5neC1idXR0b24tbGluZUhlaWdodC0tbGFyZ2U6IDQ2cHg7XG4kbmd4LWJ1dHRvbi1hbmltYXRpb25EdXJhdGlvbjogMjAwbXM7XG5cbiRuZ3gtaGVhZGVyLWhlaWdodDogNDBweDtcbi8vIEZvciB1c2Ugd2hlbiBhIGhvdmVyIGlzIG5lZWRlZCBvbiBhIHdoaXRlIGJhY2tncm91bmQuXG4kbmd4LXdoaXRlQWZmb3JkYW5jZS1vbkhvdmVyLWNvbG9yOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA7XG5cbiRuZ3gtbWVudS1iYWNrZ3JvdW5kQ29sb3I6ICR4cG8td2hpdGU7XG5cbi8qXG4qKiA9PT09IFNOQUNLQkFSIERFUFJFQ0FURUQgVkFSSUFCTEVTID09PT1cbiovXG5cbi8qXG4qKiBXQVJOSU5HOiBUSElTIFZBUklBQkxFUyBXSUxMIEJFIFJFTU9WRUQgU09PTlxuKi9cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1zdWNjZXNzOiAkeHBvLWdyZWVuLS00NTA7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1lcnJvcjogJHhwby1yZWQtLTE1MDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLWluZm86ICMwMjg4ZDE7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS13YXJuOiAjZmJjMDJkO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLXN1Y2Nlc3M6ICR4cG8tZ3JlZW4tLTYwMDtcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0tZXJyb3I6ICR4cG8tcmVkLS0yMDA7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0taW5mbzogIzAxNTc5YjtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja0Jhci1tYXJnaW5Ub3A6IDMycHg7XG5cbi8vQmFkZ2VcbiRfbWF0QmFkZ2VDb250ZW50LWJhY2tncm91bmRDb2xvci0tbmVnYXRpdmU6ICR4cG8tcmVkLS01MDtcbiRfbWF0QmFkZ2VDb250ZW50LWNvbG9yLS1uZWdhdGl2ZTogI2RkMmMwMDtcbiRfbWF0QmFkZ2VDb250ZW50LWJhY2tncm91bmRDb2xvci0tcG9zaXRpdmU6ICR4cG8tZ3JlZW4tLTUwO1xuXG4kbmd4LW1lbnUtYmFja2dyb3VuZENvbG9yLW9uSG92ZXI6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwO1xuLy8gVXNlZCBhcyBhIHNwYWNlciBmb3IgZmxleGVkIGNoaWxkcmVuXG4vLyBUT0RPOiBNb3ZlIGFsbCBpbnN0YW5jZXMgdG8gdGhlIHV0aWxpdGllcyBkZWZpbml0aW9uXG4uZmxleC0tc3RyZXRjaCB7XG4gIGZsZXg6IDE7XG59XG5cbi8vIC0tLSBEaWFsb2cgLS0tXG4kbmd4LWRpYWxvZy1oZWFkZXItaGVpZ2h0OiA0OHB4O1xuJG5neC1kaWFsb2ctZm9vdGVyLWhlaWdodDogNjRweDtcblxuLy8gLS0tIFRyYW5zaXRpb25zIC0tLVxuJHhwby10cmFuc2l0aW9uLTIwMDogYWxsIDIwMG1zIGVhc2Utb3V0O1xuXG4vLyAtLS0gQ29udGV4dHVhbCBIZWFkZXIgLS0tXG4kbmd4LUNvbnRleHR1YWxIZWFkZXItc2VwYXJhdG9yLS1jb2xvcjogJHhwby1ncmV5LS0zNTA7XG5cblxuJF9kYXRlUGlja2VyLWlucHV0LS1ib3JkZXI6IHNvbGlkIDFweCAkeHBvLWJsYWNrO1xuJF9kYXRlUGlja2VyLWlucHV0LS1taW5XaWR0aDogJHhwby1jb250ZW50U3BhY2luZyAqIDg7XG5cbiRfZGF0ZVBpY2tlci1wb3B1cC0tbWFyZ2luVG9wQWRqdXN0bWVudDogLTFweDtcblxuJF9kYXRlUGlja2VyLXBhbmVsLS1oZWlnaHQ6IDI1MHB4O1xuJF9kYXRlUGlja2VyLXBhbmVsLS13aWR0aDogMjI2cHg7XG5cbiRfZGF0ZVBpY2tlci1jb250cm9sc0Jhci0taGVpZ2h0OiAzMHB4O1xuJF9kYXRlUGlja2VyLWNvbnRyb2xzQmFyLS1tYXJnaW5zOiAkeHBvLWNvbnRlbnRTcGFjaW5nICogMC41O1xuJF9kYXRlUGlja2VyLWNvbnRyb2xzQmFyLWJ1dHRvbnMtLXRoaWNrbmVzczogM3B4O1xuJF9kYXRlUGlja2VyLWNvbnRyb2xzQmFyLXByZXZOZXh0QnV0dG9ucy0tc2l6ZTogJHhwby1jb250ZW50U3BhY2luZztcbiRfZGF0ZVBpY2tlci1jb250cm9sc0Jhci0tc2NhbGU6IHNjYWxlKDAuNTMwNSk7XG5cbiRfZGF0ZVBpY2tlci15ZWFyUGlja2VyLWNlbGxDb250ZW50LS1oZWlnaHQ6IDMwcHg7XG5cbiRfZGF0ZVBpY2tlci1tdWx0aVllYXItLWhlaWdodDogMjA1cHg7XG5cbkBtaXhpbiB4cG8tZGF0ZVBpY2tlci10aGVtZSgkdGhlbWUpIHtcbiAgQGluY2x1ZGUgbWF0LWRhdGVwaWNrZXItdGhlbWUoJHRoZW1lKTtcblxuICAvLy9cbiAgLy8vIERhdGUgUGlja2VyIElucHV0LCBjYWxlbmRhciBidXR0b25cbiAgLy8vXG4gIC54cG8tRGF0ZVBpY2tlciB7XG4gICAgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZSB7XG4gICAgICAkX2RhdGVQaWNrZXItdG9nZ2xlLS1zaXplOiAxNnB4O1xuXG4gICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAubWF0LWljb24tYnV0dG9uIHtcbiAgICAgICAgaGVpZ2h0OiAkX2RhdGVQaWNrZXItdG9nZ2xlLS1zaXplO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHdpZHRoOiAkX2RhdGVQaWNrZXItdG9nZ2xlLS1zaXplO1xuXG4gICAgICAgIC5tYXQtYnV0dG9uLXdyYXBwZXIge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAubWF0LWljb24ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkX2RhdGVQaWNrZXItdG9nZ2xlLS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkX2RhdGVQaWNrZXItdG9nZ2xlLS1zaXplO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRfZGF0ZVBpY2tlci10b2dnbGUtLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJF9kYXRlUGlja2VyLXRvZ2dsZS0tc2l6ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgICAgICAvLyBtaW4td2lkdGggcHJvcGVydHkgc2V0IHRvIGF2b2lkIG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBpY29uIG92ZXJsYXBzIHRleHQgaW5wdXRcbiAgICAgICAgLy8gYmFzZWQgb24gY29udGVudCBzcGFjaW5nXG4gICAgICAgIG1pbi13aWR0aDogJF9kYXRlUGlja2VyLWlucHV0LS1taW5XaWR0aDtcbiAgICAgIH1cblxuICAgICAgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCB7XG4gICAgICAgICRfZGF0ZVBpY2tlci10b2dnbGUtLW1hcmdpbi1yaWdodDogNHB4O1xuXG4gICAgICAgIG1hcmdpbi1yaWdodDogJF9kYXRlUGlja2VyLXRvZ2dsZS0tbWFyZ2luLXJpZ2h0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIHNob3cgZGVmaW5lZCBib3JkZXIgY29sb3IgaW4gZGF0ZSBwaWNrZXIgaW5wdXQgdGV4dFxuICAgIC8vIHdoZW4gZGF0ZSBwaWNrZXIgY2FsZW5kYXIgaXMgb3BlblxuICAgICYtLWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICBib3JkZXItY29sb3I6ICR4cG8tYmxhY2s7XG4gICAgfVxuICB9XG5cbiAgLy8vXG4gIC8vLyBEYXRlIFBpY2tlciBDYWxlbmRhciBwb3B1cFxuICAvLy9cbiAgLm1hdC1kYXRlcGlja2VyLXBvcHVwIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IHtcbiAgICBib3JkZXI6ICRfZGF0ZVBpY2tlci1pbnB1dC0tYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgLy8gdGhpcyBpcyBhIG5lZ2F0aXZlIHRvcCBtYXJnaW4gdXNlZCB0byBzaG93IHRoZSBjYWxlbmRhciBwb3B1cCB0b3AgYm9yZGVyXG4gICAgLy8gYW5kIHRvIG5vdCBzaG93aW5nIHRoZSBpbnB1dCB0ZXh0IGJvdHRvbSBib3JkZXJcbiAgICBtYXJnaW4tdG9wOiAkX2RhdGVQaWNrZXItcG9wdXAtLW1hcmdpblRvcEFkanVzdG1lbnQ7XG5cbiAgICAueHBvLURhdGVQaWNrZXItY2FsZW5kYXIubWF0LWNhbGVuZGFyIHtcbiAgICAgIGhlaWdodDogJF9kYXRlUGlja2VyLXBhbmVsLS1oZWlnaHQ7XG4gICAgICB3aWR0aDogJF9kYXRlUGlja2VyLXBhbmVsLS13aWR0aDtcblxuICAgICAgLm1hdC1jYWxlbmRhciB7XG4gICAgICAgIC8vL1xuICAgICAgICAvLy8gU3R5bGVzIGZvciBjYWxlbmRhciBoZWFkZXJcbiAgICAgICAgLy8vXG4gICAgICAgICYtaGVhZGVyIHtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtY29udHJvbHMge1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgaGVpZ2h0OiAkX2RhdGVQaWNrZXItY29udHJvbHNCYXItLWhlaWdodDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgbWFyZ2luOiAkX2RhdGVQaWNrZXItY29udHJvbHNCYXItLW1hcmdpbnMgMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtcGVyaW9kLWJ1dHRvbiB7XG4gICAgICAgICAgY29sb3I6ICR4cG8tYmxhY2s7XG4gICAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG4gICAgICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtcHJldmlvdXMtYnV0dG9uLFxuICAgICAgICAmLW5leHQtYnV0dG9uIHtcbiAgICAgICAgICBoZWlnaHQ6ICRfZGF0ZVBpY2tlci1jb250cm9sc0Jhci1wcmV2TmV4dEJ1dHRvbnMtLXNpemU7XG4gICAgICAgICAgd2lkdGg6ICRfZGF0ZVBpY2tlci1jb250cm9sc0Jhci1wcmV2TmV4dEJ1dHRvbnMtLXNpemU7XG5cbiAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICR4cG8tYmxhY2s7XG4gICAgICAgICAgICBib3JkZXItdG9wLXdpZHRoOiAkX2RhdGVQaWNrZXItY29udHJvbHNCYXItYnV0dG9ucy0tdGhpY2tuZXNzO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtcHJldmlvdXMtYnV0dG9uIHtcbiAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBib3JkZXItbGVmdC13aWR0aDogJF9kYXRlUGlja2VyLWNvbnRyb2xzQmFyLWJ1dHRvbnMtLXRoaWNrbmVzcztcbiAgICAgICAgICAgIHRyYW5zZm9ybTogJF9kYXRlUGlja2VyLWNvbnRyb2xzQmFyLS1zY2FsZSB0cmFuc2xhdGVYKCRfZGF0ZVBpY2tlci1jb250cm9sc0Jhci1idXR0b25zLS10aGlja25lc3MpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtbmV4dC1idXR0b24ge1xuICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogJF9kYXRlUGlja2VyLWNvbnRyb2xzQmFyLWJ1dHRvbnMtLXRoaWNrbmVzcztcbiAgICAgICAgICAgIHRyYW5zZm9ybTogJF9kYXRlUGlja2VyLWNvbnRyb2xzQmFyLS1zY2FsZSB0cmFuc2xhdGVYKC0kX2RhdGVQaWNrZXItY29udHJvbHNCYXItYnV0dG9ucy0tdGhpY2tuZXNzKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vL1xuICAgICAgICAvLy8gU3R5bGVzIGZvciBjYWxlbmRhciB0YWJsZSBoZWFkZXJcbiAgICAgICAgLy8vXG4gICAgICAgICYtdGFibGUtaGVhZGVyIHtcbiAgICAgICAgICBjb2xvcjogJHhwby1ibGFjaztcblxuICAgICAgICAgIHRoIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi1kaXZpZGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8vXG4gICAgICAgIC8vLyBDb21tb24gc3R5bGVzIGZvciBjYWxlbmRhciBib2R5IHZpZXdzXG4gICAgICAgIC8vL1xuICAgICAgICAmLWJvZHkge1xuICAgICAgICAgICYtbGFiZWwge1xuICAgICAgICAgICAgLy8gIWltcG9ydGFudCBpcyBuZWVkZWQgaW4gb3JkZXIgdG8gb3ZlcnJpZGUgaW4tbGluZSBzdHlsZXNcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIC8vIGZvciBzcGFjaW5nIHB1cnBvc2VzIHdlIG5lZWQgdG8ga2VlcCB0aGUgZWxlbWVudCBzaXplXG4gICAgICAgICAgICAvLyBzbyB3ZSB1c2UgdmlzaWJpbGl0eTogaGlkZGVuIGluc3RlYWQgb2YgZGlzcGxheTogbm9uZVxuICAgICAgICAgICAgLy8gYmVzaWRlcyB0aGlzIGNsYXNzIGlzIGFwcGx5IHRvIGEgdGQgZWxlbWVudFxuICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYtY2VsbDpob3ZlciB7XG4gICAgICAgICAgICAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50IHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ibHVlLS0xMDA7XG4gICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgIGNvbG9yOiAkeHBvLWJsYWNrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgICYtY2VsbC1jb250ZW50IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tNjA7XG4gICAgICAgICAgICBjb2xvcjogJHhwby1ibGFjaztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYtdG9kYXkge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkeHBvLWJsdWUtLTgwMDtcbiAgICAgICAgICAgIGNvbG9yOiAkeHBvLWJsdWUtLTgwMDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tYmx1ZS0tODAwO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkeHBvLWJsdWUtLTgwMDtcbiAgICAgICAgICAgIGNvbG9yOiAkeHBvLXdoaXRlO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcblxuICAgICAgICAgICAgJi5tYXQtY2FsZW5kYXItYm9keS10b2RheSB7XG4gICAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8vXG4gICAgLy8vIFN0eWxlcyBmb3IgY2FsZW5kYXIgeWVhciB2aWV3XG4gICAgLy8vXG4gICAgbWF0LXllYXItdmlldyAubWF0LWNhbGVuZGFyLXRhYmxlIHtcbiAgICAgIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vL1xuICAgIC8vLyBTdHlsZXMgZm9yIGNhbGVuZGFyIG11bHRpLXllYXIgdmlld1xuICAgIC8vL1xuICAgIG1hdC1tdWx0aS15ZWFyLXZpZXcgLm1hdC1jYWxlbmRhci10YWJsZSB7XG4gICAgICBoZWlnaHQ6ICRfZGF0ZVBpY2tlci1tdWx0aVllYXItLWhlaWdodDtcblxuICAgICAgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudCB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGhlaWdodDogJF9kYXRlUGlja2VyLXllYXJQaWNrZXItY2VsbENvbnRlbnQtLWhlaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHhwby1kYXRlLXJhbmdlLXBpY2tlci10aGVtZSgkdGhlbWUpIHtcbiAgLy8gREFURSBSQU5HRSBJTlBVVCBGT1JNIEZJRUxEIFNUWUxFXG4gIG1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLXR5cGUteHBvLWRhdGUtcmFuZ2UtaW5wdXQge1xuICAgIC8vIHVzZSBhIG5lZ2F0aXZlIG1hcmdpbiB0byBwb3NpdGlvbiB0aGUgbGFiZWwgb24gdG9wIGZvciB0aGUgaW5wdXQgY29udHJvbFxuICAgIC8vIGluIHRoZSBzYW1lIHdheSBpdCBpcyBkb25lIGZvciBcIm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LWlucHV0XCJcbiAgICAkX2xhYmVsLXRvcDogLTI0cHg7XG4gICAgJF9mb3JtRmllbGQtbWFyZ2luVG9wOiAyNHB4O1xuICAgICRfZm9ybUZpZWxkLWljb24tZm9udFNpemU6IDIwcHg7XG5cbiAgICBtYXJnaW4tYm90dG9tOiAkeHBvLWNvbnRlbnRTcGFjaW5nO1xuICAgIG1hcmdpbi10b3A6ICRfZm9ybUZpZWxkLW1hcmdpblRvcDtcblxuICAgICYubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElucHV0IGRlZmF1bHQgYmVoYXZpb3JcbiAgICAmLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IHtcbiAgICAgIC8vIE9ubHkgcGxhY2Vob2xkZXJcbiAgICAgICYubWF0LWZvcm0tZmllbGQtaGlkZS1wbGFjZWhvbGRlciB7XG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG4gICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgICAgICAgJF9sYWJlbFdyYXBwZXItdG9wLS1kZWZhdWx0OiAtMTJweDtcbiAgICAgICAgICAkX2xhYmVsV3JhcHBlci1sZWZ0LS1kZWZhdWx0OiA5cHg7XG5cbiAgICAgICAgICBsZWZ0OiAkX2xhYmVsV3JhcHBlci1sZWZ0LS1kZWZhdWx0O1xuICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICAgIHRvcDogJF9sYWJlbFdyYXBwZXItdG9wLS1kZWZhdWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRm9jdXNlZCBvciB3aXRoIHZhbHVlXG4gICAgICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IHtcbiAgICAgICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgdG9wOiAkX2xhYmVsLXRvcDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICR4cG8tZm9udEZhbWlseS0tcHJpbWFyeTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tZXh0cmFMYXJnZTsgLy9UaGlzIHNpemUgaW4gMThweCBiZWNhdXNlIHRoZSBkZWZhdWx0IGxhYmVsIHdpdGggc2NhbGUoMC43NSlcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogaW5oZXJpdDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSxcbiAgICAmLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgICAgLy8gU2V0cyB0aGUgYm9yZGVyIGNvbG9yIHdoZW4gaW52YWxpZFxuICAgICAgJi5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkeHBvLXJlZC0tNDAwO1xuICAgICAgfVxuXG4gICAgICAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgICAgIGhlaWdodDogdW5zZXQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuXG4gICAgICAubWF0LWhpbnQge1xuICAgICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLXNtYWxsO1xuICAgICAgICBtYXJnaW4tdG9wOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgICAgIH1cblxuICAgICAgLm1hdC1lcnJvciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkeHBvLWZvbnRGYW1pbHktLXByaW1hcnk7XG4gICAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xuICAgICAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ub3JtYWw7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xuICAgICAgICBtYXJnaW4tdG9wOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcblxuICAgICAgICAubWF0LWljb24ge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogJF9mb3JtRmllbGQtaWNvbi1mb250U2l6ZTtcbiAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc21hbGw7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNDtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBSZW1vdmVzIHRoZSB1bmRlcmxpbmVcbiAgICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5tYXQtZm9ybS1maWVsZC1oYXMtbGFiZWwpIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9jdXNlZCB7XG4gICAgICAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICAgIGJvcmRlcjogJG5neC1pbnB1dC1ib3JkZXItd2lkdGggc29saWQgJHhwby1ibGFjaztcbiAgICAgIH1cblxuICAgICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgICAgICBAaW5jbHVkZSBtYXQtZWxldmF0aW9uKDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgICAgICRfZm9ybUZpZWxkLWJvcmRlclJhZGl1czogMnB4O1xuXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby13aGl0ZTtcbiAgICAgIGJvcmRlcjogJG5neC1pbnB1dC1ib3JkZXItd2lkdGggc29saWQgJG5neC1pbnB1dC1jb2xvci1ib3JkZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAkX2Zvcm1GaWVsZC1ib3JkZXJSYWRpdXM7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAubWF0LWZvcm0tZmllbGQtc3VmZml4IHtcbiAgICAgICAgJF9mb3JtRmllbGQtc3VmZml4LW1hcmdpbjogNHB4O1xuXG4gICAgICAgIG1hcmdpbi1yaWdodDogJF9mb3JtRmllbGQtc3VmZml4LW1hcmdpbjtcblxuICAgICAgICAubWF0LWljb24tYnV0dG9uIHtcbiAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB3aWR0aDogMjA4cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTk1MCAhaW1wb3J0YW50OyAvLyBUaGUgcmVhc29uIG9mIHRoZSAhaW1wb3J0YW50IGlzIHRoZSBibHVlIGNvbG9yIG9uIGZvY3VzXG4gICAgICBmb250LWZhbWlseTogJHhwby1mb250RmFtaWx5LS1wcmltYXJ5O1xuICAgICAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbGFyZ2U7IC8vVGhpcyBzaXplIGluIDIwcHggYmVjYXVzZSB0aGUgZGVmYXVsdCBsYWJlbCB3aXRoIHNjYWxlKDAuNzUpXG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuXG4gICAgICBtYXQtbGFiZWwge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcblxuICAgICAgICAubWF0LWljb24ge1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgICB0b3A6ICRfbGFiZWwtdG9wO1xuICAgIH1cbiAgfVxuXG4gIC8vIERBVEUgUkFOR0UgSU5QVVRcbiAgLnhwby1EYXRlUmFuZ2VJbnB1dCB7XG4gICAgJi1zZXBhcmF0b3Ige1xuICAgICAgLy8gRGlzYWJsZSB0ZXh0IHNlbGVjdGlvblxuICAgICAgLy8gd2UgYWRkIHRoaXMgaGVyZSwgaW5zdGVhZCBvZiB0aGUgY29tcG9uZW50IHN0eWxlcyBkZWZpbml0aW9uXG4gICAgICAvLyBqdXN0IHRvIHJldXNlIG1hdGVyaWFsIG1peGluIHdlIGhhdmUgYXZhaWxhYmxlIGhlcmUgYW5kIGl0J3Mgbm90IGF2YWlsYWJsZVxuICAgICAgLy8gaW5zaWRlIHRoZSBjb21wb25lbnQgc3R5bGVzIGRlZmluaXRpb25cbiAgICAgIEBpbmNsdWRlIHVzZXItc2VsZWN0KG5vbmUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIERBVEUgUElDS0VSIFBPUFVQXG4gIC5jZGstb3ZlcmxheS1wYW5lLnhwby1EYXRlUmFuZ2VQaWNrZXItcG9wdXAge1xuICAgIC8vIHRoZSBzYW1lIGFzIGZvciBgbWFyZ2luLXRvcGAgaW4gY2FzZSB0aGUgY2FsZW5kYXIgaXMgc2hvd24gYWJvdmUgdGhlIGlucHV0XG4gICAgbWFyZ2luLWJvdHRvbTogLTFweDtcbiAgICAvLyB0aGlzIGlzIGEgbmVnYXRpdmUgdG9wIG1hcmdpbiB1c2VkIHRvIHNob3cgdGhlIGNhbGVuZGFyIHBvcHVwIHRvcCBib3JkZXJcbiAgICAvLyBhbmQgdG8gbm90IHNob3dpbmcgdGhlIGlucHV0IGJvdHRvbSBib3JkZXJcbiAgICBtYXJnaW4tdG9wOiAtMXB4O1xuICB9XG59XG5cbkBpbXBvcnQgJ35AYW5ndWxhci9tYXRlcmlhbC90aGVtaW5nJztcbi8vIFRPRE86IFJlbmFtZSB0aGlzIHNvIGl0IGRvZXNuJ3QgZ2V0IGNvbmZ1c2VkIHdpdGggdGhlIHBhZ2UncyBoZWFkZXJcblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1zbWFsbCgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tc21hbGw7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1zbWFsbDtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLXNtYWxsO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC1oZWFkZXItLW1lZGl1bSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbWVkaXVtO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbWVkaXVtO1xuICBsaW5lLWhlaWdodDogJHhwby1oZWFkZXItbGluZUhlaWdodC0tbWVkaXVtO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC1oZWFkZXItLWxhcmdlKCkge1xuICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1sYXJnZTtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLWxhcmdlO1xuICBsaW5lLWhlaWdodDogJHhwby1oZWFkZXItbGluZUhlaWdodC0tbGFyZ2U7XG59XG5cbi8vIFJlZ3VsYXIgdGV4dCBtaXhpbnNcbkBtaXhpbiBUZXh0VHJlYXRtZW50LS1zbWFsbCgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1zbWFsbDtcbiAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc21hbGw7XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LS1tZWRpdW0oKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tbGFyZ2UoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbGFyZ2U7XG59XG5cblxuLypcbioqID09PT0gQmFzaWMgY29sb3JzID09PT1cbiovXG5cbi8qXG4qKiA9PT09IFhQTyBCcmFuZCBDb2xvciBQYWxldHRlID09PT1cbiovXG5cbi8vIFhQTyBSZWRcbiR4cG8tYnJhbmQtcmVkOiAjY2MwMDAwO1xuJHhwby1icmFuZC1yZWQtLTkwMDogJHhwby1icmFuZC1yZWQ7XG4keHBvLWJyYW5kLXJlZC0tODAwOiAjZTQyMTBlO1xuJHhwby1icmFuZC1yZWQtLTcwMDogI2YzMmExMztcbiR4cG8tYnJhbmQtcmVkLS02MDA6ICNmZjMzMTc7XG4keHBvLWJyYW5kLXJlZC0tNTAwOiAjZmYzOTFjO1xuJHhwby1icmFuZC1yZWQtLTQwMDogI2ZmNWUzZDtcbiR4cG8tYnJhbmQtcmVkLS0zMDA6ICNmZjdlNjA7XG4keHBvLWJyYW5kLXJlZC0tMjAwOiAjZmZhNDhlO1xuJHhwby1icmFuZC1yZWQtLTEwMDogI2ZmYzhiYTtcbiR4cG8tYnJhbmQtcmVkLS01MDogI2ZjZThlNjtcblxuLy8gWFBPIEJsYWNrXG4keHBvLWJsYWNrOiAjMDAwMDAwO1xuJHhwby1icmFuZC1ibGFjay0tOTAwOiAkeHBvLWJsYWNrO1xuJHhwby1icmFuZC1ibGFjay0tODAwOiAjMjYyNjI2O1xuJHhwby1icmFuZC1ibGFjay0tNzAwOiAjNTU1NTU1O1xuJHhwby1icmFuZC1ibGFjay0tNjAwOiAjN2I3YjdiO1xuJHhwby1icmFuZC1ibGFjay0tNTAwOiAjOWQ5ZDlkO1xuJHhwby1icmFuZC1ibGFjay0tNDAwOiAjOWQ5ZDlkO1xuJHhwby1icmFuZC1ibGFjay0tMzAwOiAjYzRjNGM0O1xuJHhwby1icmFuZC1ibGFjay0tMjAwOiAjZDlkOWQ5O1xuJHhwby1icmFuZC1ibGFjay0tMTAwOiAjZTllOWU5O1xuJHhwby1icmFuZC1ibGFjay0tNTA6ICNmNWY1ZjU7XG5cbi8vIFhQTyBEYXJrIEdyZXlcbiR4cG8tYnJhbmQtZGFyay1ncmV5OiAjNDE0YTRjO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTkwMDogIzIyMjgyYjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS04MDA6ICR4cG8tYnJhbmQtZGFyay1ncmV5O1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTcwMDogIzYyNjg2YztcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS02MDA6ICM3NTdkODE7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNTAwOiAjYTBhNmFhO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTQwMDogI2JlYzVjOTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0zMDA6ICNlMGU3ZWI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMjAwOiAjZWJmMmY2O1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTEwMDogI2YwZjdmYjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS01MDogI2Y0ZmNmZjtcblxuLy8gWFBPIE1lZGl1bSBHcmV5XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5OiAjODQ4NDg0O1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tOTAwOiAjMmUyZTJlO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tODAwOiAjNTA1MDUwO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNzAwOiAjNzA3MDcwO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNjAwOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5O1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTAwOiAjYWZhZmFmO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNDAwOiAjY2RjZGNkO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMzAwOiAjZWVlZWVlO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMjAwOiAjZjNmM2YzO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMTAwOiAjZjhmOGY4O1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTA6ICNmY2ZjZmM7XG5cbi8vIFhQTyBMaWdodCBHcmV5XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXk6ICNkZWRlZGU7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTkwMDogIzFmMWYxZjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tODAwOiAjM2YzZjNmO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS03MDA6ICM1ZTVlNWU7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTYwMDogIzcyNzI3MjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNTAwOiAjOWE5YTlhO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS00MDA6ICNiYWJhYmE7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTMwMDogJHhwby1icmFuZC1saWdodC1ncmV5O1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0yMDA6ICNlY2VjZWM7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTEwMDogI2Y0ZjRmNDtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNTA6ICNmOWY5Zjk7XG5cbi8qXG4qKiA9PT09IE1haW4gQ29sb3IgUGFsZXR0ZSA9PT09XG4qL1xuXG4vLyBCbGFjayBhbmQgR3JleVxuJHhwby1ncmV5LS05NzU6ICMyMTIxMjE7XG4keHBvLWdyZXktLTk1MDogIzMzMzMzMztcbiR4cG8tZ3JleS0tOTAwOiAjNGE0YTRhO1xuJHhwby1ncmV5LS03MDA6ICM2ZjZmNmY7XG4keHBvLWdyZXktLTM1MDogI2JkYmRiZDtcbiR4cG8tZ3JleS0tMzAwOiAjZDhkOGQ4O1xuJHhwby1ncmV5LS04MDogI2Y2ZjZmNjtcbiR4cG8tZ3JleS0tMjU6ICNmYWZhZmE7XG5cbiR4cG8td2hpdGU6ICNmZmZmZmY7XG5cbi8vIExpbmtzLCBCdXR0b25zLCBUYWJzZXQgYW5kIFRhYnBpbGxzXG4keHBvLWJsdWUtLTg1MDogIzBkNDdhMTtcbiR4cG8tYmx1ZS0tODAwOiAjMTk3NmQyO1xuJHhwby1ibHVlLS0zNTA6ICMyMTk2ZjM7XG5cbi8vIEVycm9yIFN0YXRlXG4keHBvLXJlZC0tMjAwOiAjYjcxYzFjO1xuJHhwby1yZWQtLTE1MDogI2QzMmYyZjtcbiR4cG8tcmVkLS01MDogI2ZjZWVlYjtcblxuLy8gU3VjY2VzcyBTdGF0ZVxuJHhwby1ncmVlbi0tNjAwOiAjMzg4ZTNjO1xuJHhwby1ncmVlbi0tNDUwOiAjNGNhZjUwO1xuJHhwby1ncmVlbi0tNTA6ICNmMWY5ZjE7XG5cbi8vIFdhcm5pbmcgU3RhdGVcbiR4cG8teWVsbG93LS0zNTA6ICNmZmQ2MDA7XG5cbiR4cG8tb3JhbmdlLS0zNTA6ICNmZjZkMDA7XG5cbi8vIEluZm8gU3RhdGVcbiR4cG8tYmx1ZS0tNzAwOiAjMDA5MWVhO1xuXG4vLyBUcmFuc2FjdGlvbmFsIENlbGxzXG4keHBvLWdyZXktLTE1MDogI2VjZWZmMTtcblxuJHhwby1ibHVlR3JleS0tNzAwOiAjY2ZkOGRjO1xuXG4vLyBBY2NlbnQgQ29sb3JzXG4keHBvLXBpbmstLTcwMDogI2M1MTE2MjtcblxuJHhwby10ZWFsLS03MDA6ICMwMGJmYTU7XG5cbiR4cG8tYmx1ZS0tODI1OiAjMzA0ZmZlO1xuJHhwby1ibHVlLS0yMDA6ICNlNGVmZmE7XG5cbiR4cG8tYWNjZW50LXJlZC0tNDAwOiAkeHBvLWJyYW5kLXJlZC0tNDAwO1xuJHhwby1hY2NlbnQtcmVkLS0xMDA6ICR4cG8tYnJhbmQtcmVkLS0xMDA7XG5cbiR4cG8tcHVycGxlLS03MDA6ICM2MjAwZWE7XG5cbiR4cG8tZ3JlZW4tLTIwMDogI2E0ZTU5YjtcblxuJHhwby15ZWxsb3ctLTIwMDogI2ZmZjljNDtcblxuLypcbioqID09PT0gREVQUkVDQVRFRCBDT0xPUlMgPT09PVxuKi9cblxuLypcbioqIFdBUk5JTkc6IFRISVMgVkFSSUFCTEVTIFdJTEwgQkUgUkVNT1ZFRCBTT09OXG4qL1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0xMDA6ICNlOGY1ZmU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTE1MDogI2UzZjJmZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMzAwOiAjMGQ5NGY0O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS00MDA6ICMwODY4YWM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTkwMDogIzA1M2M2Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS0xMDA6ICNmZmY4ZTU7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tMzAwOiAjZmZjZjRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTQwMDogI2ZmYmEwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS03MDA6ICNmZmQ2MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tOTAwOiAjNGQzODAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tMTAwOiAjYzhmZmRmO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tMzAwOiAjMWNlODU1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tMzUwOiAjMDBjODUzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tNDAwOiAjMTFhNjNiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tNzAwOiAjMDBjODUzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tOTAwOiAjMGE2MTIyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS01MDogI2ZiZmJmYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjA6ICNmYWZhZmE7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTEwMDogI2YzZjNmMztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMjAwOiAjZTZlNmU2O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0yNTA6ICNkZGRkZGQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTQwMDogIzliOWI5Yjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjAwOiAjNzU3NTc1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS02NTA6ICM4NTg1ODU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTc1MDogIzU3NTc1Nztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tOTE1OiAjNDM0OTRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS05MzA6ICM0MjQyNDI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTEwMDA6ICMxNzE3MTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTExMDA6ICMyMTIxMjE7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMTAwOiAjZmZlZWVlO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTI1MDogI2RkMmMwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0zMDA6ICNmZjIyMjI7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNDAwOiAjZDUwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTYwMDogI2NjMDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS03MDA6ICNkMzJmMmY7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tOTAwOiAjNTUwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTEwMDogI2ZmZGZjYTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS0zMDA6ICNmZjk5NTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tNDAwOiAjZmY2NDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTkwMDogIzhiMzcwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZm9udENvbG9yLS1saW5rOiAjMDg2OGFjO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1iYWNrZ3JvdW5kQ29sb3ItLWJvZHk6ICNmM2YzZjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1lcnJvcjogI2Q1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLXN1Y2Nlc3M6ICMxMWE2M2I7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS13YXJuOiAjZmZiYTAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0taW5mbzogIzRhNGE0YTtcblxuLypcbioqID09PT0gQ09MT1JTIEFQUExJRUQgPT09PVxuKi9cbiR4cG8tZm9udENvbG9yLS1wcmltYXJ5OiAkeHBvLWdyZXktLTkwMDtcblxuLypcbioqID09PT0gVHlwb2dyYXBoeSA9PT09XG4qL1xuLy8gUHV0dGluZyBzaXplcyBpbiBtYXBzIHRvIGFsbG93IGR5bmFtaWMgc2l6aW5nIGZvciBleHRlcm5hbFxuLy8gUm9vdCBmb250LXNpemUocykgYWx3YXlzIGluIHB4XG4keHBvLWZvbnRTaXplLS1yb290OiAxNHB4O1xuJHhwby1mb250U2l6ZS0tc21hbGw6IDAuODc1cmVtOyAvLzEycHhcbiR4cG8tZm9udFNpemUtLW1lZGl1bTogMXJlbTsgLy8xNHB4XG4keHBvLWZvbnRTaXplLS1sYXJnZTogMS4xNDNyZW07IC8vMTZweFxuJHhwby1mb250U2l6ZS0tZXh0cmFMYXJnZTogMS4yODVyZW07IC8vMThweFxuJHhwby1mb250U2l6ZS0teHhsYXJnZTogMS43MTRyZW07IC8vMjRweFxuXG4keHBvLWhlYWRlci1mb250U2l6ZS0teHNtYWxsOiAxcmVtOyAvLzE0cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1zbWFsbDogMS4xNDNyZW07IC8vMTZweFxuJHhwby1oZWFkZXItZm9udFNpemUtLW1lZGl1bTogMS4yODVyZW07IC8vMThweFxuJHhwby1oZWFkZXItZm9udFNpemUtLWxhcmdlOiAxLjQyOHJlbTsgLy8yMHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0teGxhcmdlOiAxLjU3MXJlbTsgLy8yMnB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0teHhsYXJnZTogMS44NTdyZW07IC8vMjZweFxuXG4keHBvLWZvbnRGYW1pbHktLXByaW1hcnk6ICdSb2JvdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiR4cG8tZm9udEZhbWlseS0tcm9ib3RvV2lkZUJsYWNrOiAnUm9ib3RvIFdpZGUgQmxhY2snLCAnUm9ib3RvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XG5cbiR4cG8tZm9udFdlaWdodC0tbGlnaHQ6IDMwMDtcbiR4cG8tZm9udFdlaWdodC0tbm9ybWFsOiA0MDA7XG4keHBvLWZvbnRXZWlnaHQtLW1lZGl1bTogNTAwOyAvLyBERVBSRUNBVEVEIHwgZG8gbm90IGRlbGV0ZSBzaW5jZSBpdCBpcyBzdGlsbCBiZWluZyB1c2VkIGluIHNvbWUgcHJvamVjdHNcbiR4cG8tZm9udFdlaWdodC0tYm9sZDogNTAwO1xuJHhwby1mb250V2VpZ2h0LS1leHRyYUJvbGQ6IDYwMDtcbiR4cG8tZm9udFdlaWdodC0tYm9sZGVyOiA3MDA7XG5cbiR4cG8tbGluZUhlaWdodC0teGw6IDIuMjg2cmVtOyAvLyAzMnB4XG4keHBvLWxpbmVIZWlnaHQtLWxnOiAxLjcxNHJlbTsgLy8gMjRweFxuJHhwby1saW5lSGVpZ2h0LS1tZDogMS41NzFyZW07IC8vIDIycHhcbiR4cG8tbGluZUhlaWdodC0tc206IDEuNDI5cmVtOyAvLyAyMHB4XG5cbiR4cG8tbGluZUhlaWdodC0tYmFzZTogMjRweDsgLy8gZm9yIG1lZGl1bSBhbmQgbGFyZ2UgZm9udCBzaXplXG4keHBvLWxpbmVIZWlnaHQtLW1lZGl1bTogMThweDsgLy8gZm9yIG1lZGl1bSBmb250IHNpemVzXG4keHBvLWxpbmVIZWlnaHQtLXNtYWxsOiAxNnB4OyAvLyBmb3Igc21hbGwgZm9udCBzaXplXG5cbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLXNtYWxsOiAxLjE0MzsgLy8gREVQUkVDQVRFRFxuJHhwby1oZWFkZXItbGluZUhlaWdodC0tbWVkaXVtOiAxLjE0MzsgLy8gREVQUkVDQVRFRFxuJHhwby1oZWFkZXItbGluZUhlaWdodC0tbGFyZ2U6IDEuMjg2OyAvLyBERVBSRUNBVEVEXG5cbiR4cG8tbGV0dGVyU3BhY2luZy0tYmFzZTogMC4ycHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1zbWFsbDogMC4zcHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1tZWRpdW06IDAuMzNweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLWxhcmdlOiAwLjM4cHg7XG5cbi8vID09PT0gTGF5b3V0ID09PT1cbiR4cG8tY29udGVudFNwYWNpbmc6IDE2cHg7XG5cbi8vIEJyZWFrcG9pbnRzXG4keHBvLWJyZWFrcG9pbnQtLXNtYWxsLXhzOiA0ODBweDtcbiR4cG8tYnJlYWtwb2ludC0tc21hbGw6IDYwMHB4O1xuJHhwby1icmVha3BvaW50LS1tZWRpdW06IDc2OHB4O1xuJHhwby1icmVha3BvaW50LS1sYXJnZTogMTAyNXB4O1xuJHhwby1icmVha3BvaW50LS14TGFyZ2U6IDE0NDBweDtcblxuJHhwby1zZWxlY3QtYmFja2dyb3VuZENvbG9yLW9wdGlvbk9uSG92ZXI6ICR4cG8tYmx1ZS0tMjAwO1xuXG4vLyAtLSBOR1gtVUkgU3BlY2lmaWMgLS1cbiRuZ3gtZm9vdGVyLWhlaWdodDogNDJweDtcbiRuZ3gtdGFiLWhlYWRlci1oZWlnaHQ6IDQwcHg7XG4kbmd4LXRhYmxlLXJvdy1oZWlnaHQ6IDMwcHg7XG5cbiRuZ3gtaWNvbi1zaXplOiAyNHB4OyAvLyBUT0RPOiBEZXByZWNhdGUgdGhpcyB2YXJpYWJsZVxuJHhwby1pY29uLXNpemUtLXN0YW5kYXJkOiAyMHB4O1xuJHhwby1pY29uLXNpemUtLXNtYWxsOiAxOHB4O1xuJHhwby1pY29uLXNpemUtLWxhcmdlOiAyNHB4O1xuXG4kbmd4LXRoZUJsYWNrUm9ib3RvOiA5MDA7XG5cbiR4cG8taW5wdXQtaGVpZ2h0LS1kZWZhdWx0OiAzMHB4O1xuJHhwby1pbnB1dC1oZWlnaHQtLXR3b0xpbmVzOiA0NXB4O1xuXG4kbmd4LWlucHV0LWJvcmRlci13aWR0aDogMXB4O1xuXG4kbmd4LWlucHV0LWNvbG9yLW9uSG92ZXI6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDtcbiRuZ3gtaW5wdXQtY29sb3Itb25BY3RpdmUtLWRhcms6ICR4cG8tYmxhY2s7XG4kbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1saWdodDogJHhwby13aGl0ZTtcbiRuZ3gtaW5wdXQtY29sb3ItYm9yZGVyOiAkeHBvLWdyZXktLTMwMDtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWRhcms6ICR4cG8tZ3JleS0tMzUwO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlLS1saWdodGVyOiAkeHBvLXdoaXRlO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlZC0tbGlnaHQ6ICR4cG8tZ3JleS0tODA7XG5cbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQ6IDM2cHg7XG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0LS1zbWFsbDogMjhweDtcbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQtLWxhcmdlOiA0NnB4O1xuJG5neC1idXR0b24tYW5pbWF0aW9uRHVyYXRpb246IDIwMG1zO1xuXG4kbmd4LWhlYWRlci1oZWlnaHQ6IDQwcHg7XG4vLyBGb3IgdXNlIHdoZW4gYSBob3ZlciBpcyBuZWVkZWQgb24gYSB3aGl0ZSBiYWNrZ3JvdW5kLlxuJG5neC13aGl0ZUFmZm9yZGFuY2Utb25Ib3Zlci1jb2xvcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMjAwO1xuXG4kbmd4LW1lbnUtYmFja2dyb3VuZENvbG9yOiAkeHBvLXdoaXRlO1xuXG4vKlxuKiogPT09PSBTTkFDS0JBUiBERVBSRUNBVEVEIFZBUklBQkxFUyA9PT09XG4qL1xuXG4vKlxuKiogV0FSTklORzogVEhJUyBWQVJJQUJMRVMgV0lMTCBCRSBSRU1PVkVEIFNPT05cbiovXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0tc3VjY2VzczogJHhwby1ncmVlbi0tNDUwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0tZXJyb3I6ICR4cG8tcmVkLS0xNTA7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1pbmZvOiAjMDI4OGQxO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0td2FybjogI2ZiYzAyZDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1zdWNjZXNzOiAkeHBvLWdyZWVuLS02MDA7XG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLWVycm9yOiAkeHBvLXJlZC0tMjAwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLWluZm86ICMwMTU3OWI7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tCYXItbWFyZ2luVG9wOiAzMnB4O1xuXG4vL0JhZGdlXG4kX21hdEJhZGdlQ29udGVudC1iYWNrZ3JvdW5kQ29sb3ItLW5lZ2F0aXZlOiAkeHBvLXJlZC0tNTA7XG4kX21hdEJhZGdlQ29udGVudC1jb2xvci0tbmVnYXRpdmU6ICNkZDJjMDA7XG4kX21hdEJhZGdlQ29udGVudC1iYWNrZ3JvdW5kQ29sb3ItLXBvc2l0aXZlOiAkeHBvLWdyZWVuLS01MDtcblxuJG5neC1tZW51LWJhY2tncm91bmRDb2xvci1vbkhvdmVyOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS01MDtcbi8vIFVzZWQgYXMgYSBzcGFjZXIgZm9yIGZsZXhlZCBjaGlsZHJlblxuLy8gVE9ETzogTW92ZSBhbGwgaW5zdGFuY2VzIHRvIHRoZSB1dGlsaXRpZXMgZGVmaW5pdGlvblxuLmZsZXgtLXN0cmV0Y2gge1xuICBmbGV4OiAxO1xufVxuXG4vLyAtLS0gRGlhbG9nIC0tLVxuJG5neC1kaWFsb2ctaGVhZGVyLWhlaWdodDogNDhweDtcbiRuZ3gtZGlhbG9nLWZvb3Rlci1oZWlnaHQ6IDY0cHg7XG5cbi8vIC0tLSBUcmFuc2l0aW9ucyAtLS1cbiR4cG8tdHJhbnNpdGlvbi0yMDA6IGFsbCAyMDBtcyBlYXNlLW91dDtcblxuLy8gLS0tIENvbnRleHR1YWwgSGVhZGVyIC0tLVxuJG5neC1Db250ZXh0dWFsSGVhZGVyLXNlcGFyYXRvci0tY29sb3I6ICR4cG8tZ3JleS0tMzUwO1xuXG5cbkBtaXhpbiBkaWFsb2ctaGVhZGVyLS1wcmltYXJ5KCkge1xuICAkX25neC1IZWFkZXJGb250LS1zaXplOiAyNnB4O1xuICAkX25neC1IZWFkZXJQYWRkaW5nLS10b3A6IDM4cHg7XG4gICRfbmd4LUhlYWRlck1hcmdpbi0taG9yaXpvbnRhbDogMjRweDtcbiAgJF9uZ3gtSGVhZGVyVGl0bGUtY29sb3I6ICMyMTIxMjE7XG4gIGNvbG9yOiAkX25neC1IZWFkZXJUaXRsZS1jb2xvcjtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAxO1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXNocmluazogMDtcbiAgZm9udC1zaXplOiAkX25neC1IZWFkZXJGb250LS1zaXplO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGxpbmUtaGVpZ2h0OiAkX25neC1IZWFkZXJGb250LS1zaXplO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBtYXJnaW46IDAgJF9uZ3gtSGVhZGVyTWFyZ2luLS1ob3Jpem9udGFsO1xuICBwYWRkaW5nLWJvdHRvbTogJHhwb19jb250ZW50U3BhY2luZyAvIDI7XG4gIHBhZGRpbmctdG9wOiAkX25neC1IZWFkZXJQYWRkaW5nLS10b3A7XG59XG5cblxuQG1peGluIHhwby1kaWFsb2ctdGhlbWUoJHRoZW1lKSB7XG4gIEBpbmNsdWRlIG1hdC1kaWFsb2ctdGhlbWUoJHRoZW1lKTtcbiAgJF9uZ3gtRGlhbG9nU3BhY2luZy0taG9yaXpvbnRhbDogMjRweDtcbiAgJF9uZ3gtRGlhbG9nU3BhY2luZy0tY29udGVudEJvdHRvbTogMzZweDtcblxuICBtYXQtZGlhbG9nLWNvbnRhaW5lci5tYXQtZGlhbG9nLWNvbnRhaW5lciB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgIFttYXQtZGlhbG9nLXRpdGxlXS5tYXQtZGlhbG9nLXRpdGxlIHtcbiAgICAgIEBpbmNsdWRlIGRpYWxvZy1oZWFkZXItLXByaW1hcnkoKTtcblxuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cbiAgICAgICY6bm90KC54cG8tQ29uZmlybURpYWxvZy1oZWFkZXIpIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR4cG8tZ3JleS0tMzAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIFttYXQtZGlhbG9nLWNvbnRlbnRdLm1hdC1kaWFsb2ctY29udGVudCxcbiAgICBtYXQtZGlhbG9nLWNvbnRlbnQubWF0LWRpYWxvZy1jb250ZW50IHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6ICR4cG8tY29udGVudFNwYWNpbmcvMiAkX25neC1EaWFsb2dTcGFjaW5nLS1ob3Jpem9udGFsICRfbmd4LURpYWxvZ1NwYWNpbmctLWNvbnRlbnRCb3R0b207XG5cbiAgICAgIHA6bm90KDpsYXN0LW9mLXR5cGUpIHtcbiAgICAgICAgLy8gVGhlIGRlc2lnbiBzcGVjaWZpZXMgMjRweCBtYXJnaW4gYm90dG9tIGZyb20gdGhlIGJvcmRlciBvZiB0aGUgbGV0dGVyLFxuICAgICAgICAvLyB0byBhY2hpZXZlIHRoYXQgd2VlIG5lZWQgdG8gcmVkdWNlIHRoZSB2YWx1ZSBvZiB0aGF0IG1hcmdpblxuICAgICAgICBtYXJnaW4tYm90dG9tOiAkeHBvLWNvbnRlbnRTcGFjaW5nO1xuICAgICAgfVxuICAgIH1cblxuICAgIFttYXQtZGlhbG9nLWFjdGlvbnNdLm1hdC1kaWFsb2ctYWN0aW9ucyxcbiAgICBtYXQtZGlhbG9nLWFjdGlvbnMubWF0LWRpYWxvZy1hY3Rpb25zIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkeHBvLWdyZXktLTMwMDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIG1hcmdpbjogMCAkX25neC1EaWFsb2dTcGFjaW5nLS1ob3Jpem9udGFsO1xuICAgICAgcGFkZGluZzogJF9uZ3gtRGlhbG9nU3BhY2luZy0taG9yaXpvbnRhbCAwO1xuXG4gICAgICAueHBvLUJ1dHRvbkdyb3VwID4gLm1hdC1idXR0b24tYmFzZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBUaGlzIG92ZXJyaWRlcyBzdHlsZXMgaW4gb3JkZXIgZm9yIHRoZSBleHBhbnNpb24tcGFuZWwgdG8gbWF0Y2ggdGhlXG4vLyBuZ3gtbHRsLWNvcmUgZGVzaWduIGd1aWRlbGluZXMuXG5AbWl4aW4geHBvLWV4cGFuc2lvbi1wYW5lbC10aGVtZSgkdGhlbWUpIHtcbiAgQGluY2x1ZGUgbWF0LWV4cGFuc2lvbi1wYW5lbC10aGVtZSgkdGhlbWUpO1xuXG4gICRfbWF0RXhwYW5zaW9uLWhlYWRlclRpdGxlLXBhZGRpbmdMZWZ0OiAxMHB4O1xuICAkX3BhbmVsTWF0SWNvbi1mb250U2l6ZTogMjBweDtcbiAgJF9tYXRFeHBhbnNpb25QYW5lbEJvZHktcGFkZGluZzogJHhwby1jb250ZW50U3BhY2luZyAvIDIgMzlweCAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgJF9tYXRFeHBhbnNpb25QYW5lbEhlYWRlci1TdGF0dXNJbmRpY2F0b3ItZm9udFNpemU6IDEwcHg7XG5cbiAgLm1hdC1hY2NvcmRpb24gPiAubWF0LWV4cGFuc2lvbi1wYW5lbCxcbiAgLm1hdC1leHBhbnNpb24tcGFuZWwge1xuICAgIC8vIEZpeCBzY3JvbGxpbmcgd2hlbiBvcGVuaW5nIHBhbmVsIGFuZCBvdGhlciBwYW5lbCBpcyBhbHJlYWR5IG9wZW5lZFxuICAgIG1hcmdpbjogMC4xcHg7XG5cbiAgICAmLFxuICAgICY6bm90KFtjbGFzcyo9J21hdC1lbGV2YXRpb24teiddKSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG5cbiAgICAmIHtcbiAgICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciB7XG4gICAgICAgIHBhZGRpbmc6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtaWNvbiB7XG4gICAgICBmb250LXNpemU6ICRfcGFuZWxNYXRJY29uLWZvbnRTaXplO1xuICAgIH1cblxuICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWJvZHkge1xuICAgICAgcGFkZGluZzogJF9tYXRFeHBhbnNpb25QYW5lbEJvZHktcGFkZGluZztcbiAgICAgIHBhZGRpbmctYm90dG9tOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcblxuICAgICAgcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tcm9vdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50IHtcbiAgICAgIC5tYXQtY2VsbCB7XG4gICAgICAgID4gLm1hdC1pY29uIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1jb250ZW50IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogJHhwby1jb250ZW50U3BhY2luZyAvIDIgJF9tYXRFeHBhbnNpb24taGVhZGVyVGl0bGUtcGFkZGluZ0xlZnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLm1hdC1leHBhbmRlZCkge1xuICAgICAgLm1hdC1jb250ZW50OjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnYWRkJztcbiAgICAgICAgZm9udC1mYW1pbHk6ICdNYXRlcmlhbCBJY29ucyc7XG4gICAgICAgIGZvbnQtc2l6ZTogJHhwby1saW5lSGVpZ2h0LS1iYXNlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LWV4cGFuZGVkIHtcbiAgICAgIC5tYXQtY29udGVudDo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJ3JlbW92ZSc7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnTWF0ZXJpYWwgSWNvbnMnO1xuICAgICAgICBmb250LXNpemU6ICR4cG8tbGluZUhlaWdodC0tYmFzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCgueHBvLUV4cGFuc2lvblBhbmVsRGFyay0td3JhcCkge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR4cG8tZ3JleS0tMzAwO1xuXG4gICAgICBtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciB7XG4gICAgICAgICYubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLXNtYWxsO1xuXG4gICAgICAgICAgJjpub3QoW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSkge1xuICAgICAgICAgICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlIHtcbiAgICAgICAgICAgICAgY29sb3I6ICR4cG8tYmxhY2s7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5tYXQtY29udGVudDo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tOTMwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgICZbYXJpYS1kaXNhYmxlZD0ndHJ1ZSddIHtcbiAgICAgICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTMwMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnhwby1FeHBhbnNpb25QYW5lbERhcmstLXdyYXAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG5cbiAgICAgICY6bm90KC5tYXQtZXhwYW5kZWQpIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHhwby1ncmV5LS0zMDA7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWV4cGFuZGVkIHtcbiAgICAgICAgLm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudCB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHhwby1ncmV5LS0zMDA7XG4gICAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuXG4gICAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICAgICAgICAmW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSB7XG4gICAgICAgICAgLm1hdC1jb250ZW50IHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTgwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSB7XG4gICAgICAgICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTMwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLm1hdC1leHBhbmRlZCB7XG4gICAgICAgICAgLm1hdC1jb250ZW50OjpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmV5LS05NTA7XG4gICAgICAgICAgICBjb2xvcjogJHhwby13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC5tYXQtY29udGVudCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTkwMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXG4gICAgICAgICAgICAmID4gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlLFxuICAgICAgICAgICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgICAgY29sb3I6ICR4cG8td2hpdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoLm1hdC1leHBhbmRlZCkge1xuICAgICAgICAgIC5tYXQtY29udGVudCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTgwO1xuICAgICAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tMTAwMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTMwMDtcbiAgICAgICAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tOTUwO1xuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgIHBhZGRpbmc6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIHtcbiAgICAgICYubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICAgICAgICA6OmJlZm9yZSxcbiAgICAgICAgLm1hdC1pY29uLFxuICAgICAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUsXG4gICAgICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgOjpiZWZvcmUge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUge1xuICAgICAgICAgIEBpbmNsdWRlIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1zbWFsbCgpO1xuXG4gICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLWJhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xuICAgICAgICAgIEBpbmNsdWRlIFRleHRUcmVhdG1lbnQtLXNtYWxsKCk7XG5cbiAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAueHBvLVN0YXR1c0luZGljYXRvciB7XG4gICAgICAgICAgJjpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLXRhZyB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRfbWF0RXhwYW5zaW9uUGFuZWxIZWFkZXItU3RhdHVzSW5kaWNhdG9yLWZvbnRTaXplO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LWV4cGFuZGVkIHtcbiAgICAgICYubWF0LWV4cGFuc2lvbi1wYW5lbC1zcGFjaW5nIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5tYXQtZXhwYW5kZWQpIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcjpub3QoW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSk6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vXG4vLyBUaGUgb3ZlcnJpZGVzIGluIG9yZGVyIGZvciB0aGUgZm9ybSBmaWVsZCB0byBtYXRjaCB0aGVcbi8vICAgZGVzaWduIHNwZWNpZmljYXRpb25zLlxuLy8gQXMgYSBub3RlOiBUaGlzIGRvZXMgbm90IGNvbnRhaW4gdGhlIHN0eWxlcyBmb3IgdGhlIGlucHV0c1xuLy8gICB0aGVtc2VsdmVzLiBUaG9zZSBjYW4gYmUgZm91bmQgaW4gdGhlIGlucHV0IHRoZW1lLiBXaGlsZVxuLy8gICBtb3N0IG9mIHRoZSBzdHlsaW5nIGZvciBpbnB1dHMgaXMgaGVyZSwgdGVjaG5pY2FsbHkgaXQnc1xuLy8gICB0aGUgXCJmb3JtLWZpZWxkXCIgdGhhdCBpcyBiZWluZyBzdHlsZWQgaGVyZS5cbi8vXG4vLyBBZGRpdGlvbmFsIE5vdGU6IFBsZWFzZSBjb250aW51ZSB0byB1c2UgRU1zIGZvciBzaXppbmcuXG4vLyAgIFRoaXMgYWxsb3dzIHRoZSBpbnB1dHMgdG8gYmUgc2NhbGVkIG91dHNpZGUgb2YgdGhlXG4vLyAgIGNvbXBvbmVudHMgYXJvdW5kIGl0LiBUaGlzIGlzIHdoYXQgTWF0ZXJpYWwgZG9lcyBhbmRcbi8vICAgaXQgaGFzIGJlZW4ga2VwdCBmdW5jdGlvbmluZyBieSBrZWVwaW5nIHRoZSB0cmVuZC5cbi8vXG4vLyBAYXV0aG9yICAgIFBldGVyIFJhbXNpbmcgPHBldGVyLnJhbXNpbmdAeHBvLmNvbT5cbi8vXG4vLyBAdGhhbmtzICAgIEFsbGlzb24sIFBldGVyJ3Mgd2lmZSwgd2hvIHNwZW50IGEgbG9uZWx5XG4vLyAgICAgICAgICAgICB3ZWVrZW5kIHdoaWxlIGhlIGNvZGVkIHRoaXMgaW4gdGhlIG9mZmljZS5cbi8vXG4vLyBUT0RPOiBGaWd1cmUgb3V0IHRoZSBAYXQtcm9vdCBvcmdhbml6YXRpb24gaGVyZS4gVGhlXG4vLyAgICAgICAgY29tcGlsYXRpb24gaXMgYSBiaXQgd29ua3kuXG4vLy9cblxuLypcbiAgICAxLiBUaGFua3MgdG8gc3ViLXBpeGVscyBhbmQgaG93IHRoZXkgcmVuZGVyIHRoaXMgY2F1c2VkIHNvbWUgbmFzdHlcbiAgICAgICAgYmx1ci4gRXchIFdoYXQgb25lIGNhbiBkbyBpcyBzdGFydCB0byBhZGQgc3ViLXBpeGVscyBpbiBhbG9uZ1xuICAgICAgICB3aXRoIHRoZSBcImVtXCIgKG9yIHJlbSwgb3IgcG9pbnRzLCBvciDwn6eAOyBpdCBkb2Vzbid0IHJlYWxseVxuICAgICAgICBtYXR0ZXIpLiBUaGlzIGlzIHN1Yi1waXhlbCBwdXNoaW5nIHNvIEkganVzdCB1c2VkIG15IGV5ZSBvblxuICAgICAgICBhIGxvdy1yZXogbW9uaXRvciBhbmQgZ290IGl0IGFzIGNsb3NlIGFzIEkgY291bGQuIEJlY2F1c2VcbiAgICAgICAgYGNhbGNgIHdhcyB1c2VzIHRoaXMgd2lsbCBiZSBoYW5kbGVkIG9uIHRoZSBET00gaW5zdGVhZCBvZlxuICAgICAgICBkdXJpbmcgdGhlIFNDU1MgY29tcGlsYXRpb24gd2hpY2ggc2hvdWxkIGdpdmUgdGhlIHJlbmRlcmluZ1xuICAgICAgICBlbmdpbmUgdGhlIGJlc3QgY2hhbmNlIHRvIG1ha2UgdGhlIGNvcnJlY3QgZGVjaXNpb24uXG4gICAgMi4gVGhpcyBpcyB0byBzdXBwb3J0IHRoZSB0ZXh0IHdlaWdodCBjaGFuZ2luZyBmcm9tIHRoZSBsYWJlbFxuICAgICAgICBjaGFuZ2luZyB3ZWlnaHRzIGFzIHdlIHdhbnQgdG8gYW5pbWF0ZSB0aGlzIGNoYW5nZSBpbnN0ZWFkXG4gICAgICAgIG9mIGEgc25hcHBpbmcgY2hhbmdlLlxuICAgIDMuIFRoaXMgbGFyZ2UgYml0IG9mIGNsYXNzZXMgaXMgdG8gaWRlbnRpZnkgaWYgYSBwcmVmaXggaXMgYXR0YWNoZWRcbiAgICAgICAgdG8gdGhlIGlucHV0IHNvIHRoYXQgd2UgY2FuIG1vdmUgdGhlIGxhYmVsIGJldHRlci5cbiAgICA0LiBNYXRlcmlhbCBoYXMgdGhpcyBzZXQgdG8gMTMzLjMzMyUgYmVjYXVzZSB0aGV5IHNjYWxlIHRoZSBsYWJlbC5cbiAgICAgICAgV2UncmUgY2hhbmdpbmcgdGhhdCBzY2FsZSBzbyB3ZSBuZWVkIHRvIGNoYW5nZSB0aGUgc2l6ZSBvZiBpdC5cbiovXG5cbkBtaXhpbiB4cG8tZm9ybS1maWVsZC10aGVtZSgkdGhlbWUpIHtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtdGhlbWUoJHRoZW1lKTtcblxuICAvLyBJTlBVVCBTVFlMRVxuICBtYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1pbnB1dCB7XG4gICAgJF9sYWJlbC10b3A6IC0yNHB4O1xuICAgICRfZm9ybUZpZWxkLW1hcmdpblRvcDogMjRweDtcbiAgICAkX2RlZmF1bHRGb3JtRmllbGRXcmFwcGVyLXRvcDogLTEycHg7XG4gICAgJF9kZWZhdWx0Rm9ybUZpZWxkV3JhcHBlci1sZWZ0OiA5cHg7XG4gICAgJF9mb3JtLWZpZWxkLWJvcmRlclJhZGl1czogMnB4O1xuICAgICRfZm9ybUZpZWxkLXN1ZmZpeFByZWZpeC1tYXJnaW46IDZweDtcbiAgICAkX2Zvcm1GaWVsZC1pY29uLXNpemU6IDE2cHg7XG4gICAgJF9mb3JtRmllbGQtaWNvbi1mb250U2l6ZTogMjBweDtcbiAgICAkX2Zvcm1GaWVsZC1zdWZmaXhQcmVmaXgtbG9hZGVyLS1zaXplOiAyNHB4O1xuXG4gICAgbWFyZ2luLWJvdHRvbTogJHhwby1jb250ZW50U3BhY2luZztcbiAgICBtYXJnaW4tdG9wOiAkX2Zvcm1GaWVsZC1tYXJnaW5Ub3A7XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgICAgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJbnB1dCBkZWZhdWx0IGJlaGF2aW9yXG4gICAgJi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSB7XG4gICAgICAvLyBPbmx5IHBsYWNlaG9sZGVyXG4gICAgICAmLm1hdC1mb3JtLWZpZWxkLWhpZGUtcGxhY2Vob2xkZXIge1xuICAgICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICAgICAgICAgIGxlZnQ6ICRfZGVmYXVsdEZvcm1GaWVsZFdyYXBwZXItbGVmdDtcbiAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgICB0b3A6ICRfZGVmYXVsdEZvcm1GaWVsZFdyYXBwZXItdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRm9jdXNlZCBvciB3aXRoIHZhbHVlXG4gICAgICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IHtcbiAgICAgICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgdG9wOiAkX2xhYmVsLXRvcDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICR4cG8tZm9udEZhbWlseS0tcHJpbWFyeTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLW1lZGl1bTsgLy9UaGlzIHNpemUgaW4gMThweCBiZWNhdXNlIHRoZSBkZWZhdWx0IGxhYmVsIHdpdGggc2NhbGUoMC43NSlcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogaW5oZXJpdDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSxcbiAgICAmLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgICAgJF9pbm5lcklucHV0LWxlZnRQYWRkaW5nOiAwLjI1ZW07XG4gICAgICAkX2lubmVySW5wdXQtcmlnaHRQYWRkaW5nOiAwLjI1ZW07XG4gICAgICAkX2lucHV0LWJvcmRlckNvbG9yLS1mb2N1c2VkOiAkbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1kYXJrO1xuXG4gICAgICAvLyBTZXRzIHRoZSBib3JkZXIgY29sb3Igd2hlbiBpbnZhbGlkXG4gICAgICAmLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICAgICAgICBib3JkZXItY29sb3I6ICR4cG8tY29sb3ItLWVycm9yO1xuICAgICAgfVxuXG4gICAgICAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgICAgIGhlaWdodDogdW5zZXQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICB9XG5cbiAgICAgICYubmd4LUZvcm1GaWVsZC0taW5saW5lIHtcbiAgICAgICAgJixcbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXIge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cblxuICAgICAgLm1hdC1oaW50IHtcbiAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1zbWFsbDtcbiAgICAgICAgbWFyZ2luLXRvcDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZXJyb3Ige1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmb250LWZhbWlseTogJHhwby1mb250RmFtaWx5LS1wcmltYXJ5O1xuICAgICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tbm9ybWFsO1xuICAgICAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbWFsbDtcbiAgICAgICAgbWFyZ2luLXRvcDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG5cbiAgICAgICAgLm1hdC1pY29uIHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICBmb250LXNpemU6ICRfZm9ybUZpZWxkLWljb24tZm9udFNpemU7XG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogJHhwby1jb250ZW50U3BhY2luZyAvIDQ7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gQm9yZGVybGVzc1xuICAgICAgLy8gVGhpcyBjbGFzcyBoYXMgdGhlIG9sZCBmb3JtYXQsIHdlJ3JlIG5vdCB1cGRhdGluZyBub3cgYmVjYXVzZSBpdCBtaWdodCBiZWluZ1xuICAgICAgLy8gdXNlZCBpbiBzZXZlcmFsIGFwcGxpY2F0aW9uc1xuICAgICAgJi5uZ3gtRm9ybUZpZWxkLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICBib3gtc2hhZG93OiB1bnNldDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBSRU1PVkFMU1xuICAgICAgLy8gUmVtb3ZlcyB0aGUgdW5kZXJsaW5lXG4gICAgICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCgubWF0LWZvcm0tZmllbGQtaGFzLWxhYmVsKSB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgICYubWF0LWZvY3VzZWQge1xuICAgICAgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICAgICAgICBib3JkZXI6ICRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoIHNvbGlkICR4cG8tYmxhY2s7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICAgICAgQGluY2x1ZGUgbWF0LWVsZXZhdGlvbigwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby13aGl0ZTtcbiAgICAgIGJvcmRlcjogJG5neC1pbnB1dC1ib3JkZXItd2lkdGggc29saWQgJG5neC1pbnB1dC1jb2xvci1ib3JkZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAkX2Zvcm0tZmllbGQtYm9yZGVyUmFkaXVzO1xuICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgLm1hdC1mb3JtLWZpZWxkLXByZWZpeCxcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1zdWZmaXgge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgIC5tYXQtaWNvbiB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgZm9udC1zaXplOiAkX2Zvcm1GaWVsZC1pY29uLWZvbnRTaXplO1xuICAgICAgICAgIGhlaWdodDogJF9mb3JtRmllbGQtaWNvbi1zaXplO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkX2Zvcm1GaWVsZC1pY29uLXNpemU7XG4gICAgICAgICAgd2lkdGg6ICRfZm9ybUZpZWxkLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC54cG8tQnVzeUxvYWRlciB7XG4gICAgICAgICAgd2lkdGg6ICRfZm9ybUZpZWxkLXN1ZmZpeFByZWZpeC1sb2FkZXItLXNpemU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLm1hdC1mb3JtLWZpZWxkLXByZWZpeCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkX2Zvcm1GaWVsZC1zdWZmaXhQcmVmaXgtbWFyZ2luO1xuICAgICAgfVxuXG4gICAgICAubWF0LWZvcm0tZmllbGQtc3VmZml4IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkX2Zvcm1GaWVsZC1zdWZmaXhQcmVmaXgtbWFyZ2luO1xuICAgICAgfVxuXG4gICAgICAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgLm1hdC1pY29uICsgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWlucHV0LWVsZW1lbnQge1xuICAgICAgICAgIGNvbG9yOiAkeHBvLWJsYWNrO1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAkeHBvLWZvbnRGYW1pbHktLXByaW1hcnk7XG4gICAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIHBhZGRpbmc6IDZweCAkeHBvLWNvbnRlbnRTcGFjaW5nLzI7XG4gICAgICAgICAgcmVzaXplOiBub25lO1xuXG4gICAgICAgICAgJjpkaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTEwMDtcbiAgICAgICAgICAgIGNvbG9yOiAkeHBvLWJsYWNrO1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tbm9ybWFsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJHhwby1ncmV5LS05NTAgIWltcG9ydGFudDsgLy8gVGhlIHJlYXNvbiBvZiB0aGUgIWltcG9ydGFudCBpcyB0aGUgYmx1ZSBjb2xvciBvbiBmb2N1c1xuICAgICAgZm9udC1mYW1pbHk6ICR4cG8tZm9udEZhbWlseS0tcHJpbWFyeTtcbiAgICAgIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLWxhcmdlOyAvL1RoaXMgc2l6ZSBpbiAyMHB4IGJlY2F1c2UgdGhlIGRlZmF1bHQgbGFiZWwgd2l0aCBzY2FsZSgwLjc1KVxuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcblxuICAgICAgbWF0LWxhYmVsIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG5cbiAgICAgICAgLm1hdC1pY29uIHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICAgICAgdG9wOiAkX2xhYmVsLXRvcDtcbiAgICB9XG4gIH1cblxuICAvLyBYUE8gY3VzdG9tIENvbXBvbmVudHMvRGlyZWN0aXZlc1xuICAueHBvLUxhYmVsLS13cmFwIHtcbiAgICAubWF0LWNoZWNrYm94LWxheW91dCxcbiAgICAubWF0LXJhZGlvLWxhYmVsIHtcbiAgICAgIHdoaXRlLXNwYWNlOiB1bnNldDtcbiAgICB9XG4gIH1cblxuICAueHBvLUZvcm0tLWlubGluZSB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5tYXQtYnV0dG9uLWJhc2UsXG4gICAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLFxuICAgIC5tYXQtZm9ybS1maWVsZCxcbiAgICAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtaW5wdXQ6bm90KC5tYXQtZm9ybS1maWVsZC1oYXMtbGFiZWwpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICR4cG8tY29udGVudFNwYWNpbmc7XG4gICAgICBtYXJnaW4tcmlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXG4gICAgJiA+IC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkeHBvLWNvbnRlbnRTcGFjaW5nO1xuXG4gICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vL1xuLy8gVGhlIG92ZXJyaWRlcyBpbiBvcmRlciBmb3IgdGhlIElucHV0IHRvIG1hdGNoIHRoZSBkZXNpZ25cbi8vXG4vLyBBcyBhIG5vdGU6IFRoaXMgaXMganVzdCBmb3IgSW5wdXRzLiBNb3N0IG9mIHRoZSBzdHlsaW5nXG4vLyAgIGZvciBpbnB1dHMgaXMgYWN0dWFsbHkgaGFuZGxlZCBvbiB0aGUgRm9ybSBGaWVsZC5cbi8vXG4vLyBBZGRpdGlvbmFsIE5vdGU6IFBsZWFzZSBjb250aW51ZSB0byB1c2UgRU1zIGZvciBzaXppbmcuXG4vLyAgIFRoaXMgYWxsb3dzIHRoZSBpbnB1dHMgdG8gYmUgc2NhbGVkIG91dHNpZGUgb2YgdGhlXG4vLyAgIGNvbXBvbmVudHMgYXJvdW5kIGl0LiBUaGlzIGlzIHdoYXQgTWF0ZXJpYWwgZG9lcyBhbmRcbi8vICAgaXQgaGFzIGJlZW4ga2VwdCBmdW5jdGlvbmluZyBieSBrZWVwaW5nIHRoZSB0cmVuZC5cbi8vXG4vLyBAYXV0aG9yICAgIFBldGVyIFJhbXNpbmcgPHBldGVyLnJhbXNpbmdAeHBvLmNvbT5cbi8vL1xuXG5AbWl4aW4geHBvLWlucHV0LXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtaW5wdXQtdGhlbWUoJHRoZW1lKTtcblxuICBpbnB1dC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gICAgY2FyZXQtY29sb3I6ICR4cG8tZ3JleS0tOTAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXRvcDogMC4xMzc1ZW07XG5cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuICB9XG59XG5cbi8vL1xuLy8gVGhlIGNvZGUgdG8gbWFrZSB0aGUgYmFzZSBNYXRlcmlhbCBNZW51cyBtYWtlIEJyYWQgaGFwcHlcbi8vXG4vLyAuLi5hbmQgTWFyaW8sIHRvby5cbi8vXG4vLyBAYXV0aG9yICAgIFBldGVyIFJhbXNpbmcgPHBldGVyLnJhbXNpbmdAeHBvLmNvbT5cbi8vXG4vLy9cblxuLypcbiAgICAxLiBUaHJldyBhIGBkaXZgIHRvIHN0YXJ0IHRoaXMgb2ZmIHRvIGdldCB0aGUgc2NvcmUgdG8gMDAxMSBpbiBvcmRlclxuICAgICAgICB0byBiZWF0IE1hdGVyaWFscyAwMDEwLiBNd2FoYWhhaGEuXG4gICAgMi4gVGhpcyBkaXNhYmxlcyB0aGUgY2FyZXQgb24gYW55dGhpbmcgYnV0IHRoZSBmaXJzdCBtZW51IHdoZW4gdGhlcmVcbiAgICAgICAgYXJlIG5lc3RlZCBtZW51cy4gVGhpcyBpcyBzbGlnaHRseSBmcmFnaWxlIGJ1dCBzYWRseSBNYXRlcmlhbFxuICAgICAgICBkb2Vzbid0IGdpdmUgdXMgbXVjaCBvZiBhIGNob2ljZSBoZXJlLiBXZSBrbm93IHRoZSBmaXJzdCBwYW5lbFxuICAgICAgICBpcyB0aGUgc2Vjb25kIGNoaWxkIG9mIHRoZSBvdmVybGF5IGBkaXZgIHNvIHdlIGdldCB0aGUgc2Vjb25kXG4gICAgICAgIHdpdGggYG50aC1vZi10eXBlKDIpYCB3aGljaCBnZXRzIHRoZSBzZWNvbmQgYGRpdmAuLi50aGVuIGFkZFxuICAgICAgICBgOm5vdCgpYCBhbmQgeW91IG5vdyBnZXQgXCJldmVyeXRoaW5nIHRoYXQgaXNuJ3QgdGhlIHNlY29uZCBkaXYuXG4gICAgMy4gVGhpcyBpcyBiZWNhdXNlIHRoZSBmaXJzdCBhbmQgbGFzdCBtZW51IGl0ZW1zIGhhdmUgc3BhY2UgYWRkZWRcbiAgICAgICAgYXJvdW5kIHRoZW0uIFRoZSBjYXJldHMgbmVlZCB0byByZXNwZWN0IHRoYXQgYW5kIGJlY2F1c2UgdGhlXG4gICAgICAgIGFyZWEgcm91bmQgdGhlIGJ1dHRvbnMgbmVlZHMgdG8gYWNjZXB0IHRoZSBob3ZlciBzdGF0ZSB0aGlzXG4gICAgICAgIHRoZXNlIG5lZWQgdG8gYmUgbWFudWFsbHkgbW92ZWQuIEFsbCBvdGhlciBjYXJldHMgYXJlIGp1c3RcbiAgICAgICAgbW92ZWQgNTAlIHdob2xlc2FsZS5cbiAgICA0LiBUaGFua3MgdG8gdGhlIHJlZHVjZWQgcGFkZGluZyB3ZSBuZWVkIHRvIG1vdmUgdGhlIHN1Ym1lbnUgdHJpZ2dlclxuICAgICAgICBpY29uIG92ZXIganVzdCBhIGJpdC5cbiovXG5cbkBtaXhpbiB4cG8tbWVudS10aGVtZSgkdGhlbWUpIHtcbiAgQGluY2x1ZGUgbWF0LW1lbnUtdGhlbWUoJHRoZW1lKTtcblxuICBkaXYubWF0LW1lbnUtcGFuZWwge1xuICAgIC8vICMxXG4gICAgJF9jYXJldC1zaXplOiAwLjRlbTtcbiAgICAkX21lbnUtaGVpZ2h0OiAxLjc1ZW07XG4gICAgJF90b3BCb3R0b20tcGFkZGluZzogMC41ZW07XG5cbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgLTFweCAtMXB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC40KSwgMCAxcHggMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KTtcbiAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgbWluLWhlaWdodDogdW5zZXQ7IC8vIG92ZXJyaWRpbmcgbWF0ZXJpYWwncyA2NHB4XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLm1hdC1tZW51LWNvbnRlbnQ6bm90KDplbXB0eSkge1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB9XG5cbiAgICAubWF0LW1lbnUtaXRlbSB7XG4gICAgICBjb2xvcjogJHhwby1ncmV5LS03MDA7XG4gICAgICBoZWlnaHQ6ICRfbWVudS1oZWlnaHQ7XG4gICAgICBsaW5lLWhlaWdodDogJF9tZW51LWhlaWdodDtcbiAgICAgIHBhZGRpbmc6IDAgJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG5cbiAgICAgICY6ZGlzYWJsZWQge1xuICAgICAgICBjb2xvcjogJHhwby1ncmV5LS00MDA7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICB9XG5cbiAgICAgICYtc3VibWVudS10cmlnZ2VyOjphZnRlciB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTdweDsgLy8gIzRcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhLm1hdC1tZW51LWl0ZW0sXG4gICAgYS5tYXQtbWVudS1pdGVtOmhvdmVyLFxuICAgIGEubWF0LW1lbnUtaXRlbTpmb2N1cyB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLm1hdC1kaXZpZGVyIHtcbiAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTMwMDtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyAjMlxuICAuY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveDpub3QoOm50aC1vZi10eXBlKDIpKSB7XG4gICAgLm1hdC1tZW51LXBhbmVsOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gc25hY2tiYXItLXdpZHRoLS1icmVha3BvaW50KCkge1xuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAvLyB0YWJsZXQgbGFuZHNjYXBlXG4gICAgbWluLXdpZHRoOiA4MHZ3O1xuICAgIG1heC1oZWlnaHQ6IDQwdmg7XG4gIH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgLy8gdGFibGV0IHBvcnRyYWl0XG4gICAgbWluLXdpZHRoOiA2MHZ3O1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IDQwdmg7XG4gIH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC8vIGRlc2t0b3BcbiAgICBtaW4td2lkdGg6IDQwdnc7XG4gICAgbWF4LWhlaWdodDogNDB2aDtcbiAgfVxufVxuXG5AbWl4aW4gc25hY2tCYXItLWJhY2tncm91bmQoJG5hbWUsICRiYWNrZ3JvdW5kLWNvbG9yKSB7XG4gICYtLSN7JG5hbWV9IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcjtcbiAgfVxufVxuXG5AbWl4aW4gc25hY2tCYXItLXRleHQtLWNvbG9yKCRuYW1lLCAkY29sb3IpIHtcbiAgJi0tI3skbmFtZX0ge1xuICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAueHBvLUxpbmsge1xuICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLW5vcm1hbDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHNuYWNrQmFyLS1jbG9zZS0tY29sb3IoJG5hbWUsICRjb2xvcikge1xuICAmLS0jeyRuYW1lfSAmLWNsb3NlQnV0dG9uIHtcbiAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJHhwby13aGl0ZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1zbWFsbCgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tc21hbGw7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1zbWFsbDtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLXNtYWxsO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC1oZWFkZXItLW1lZGl1bSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbWVkaXVtO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbWVkaXVtO1xuICBsaW5lLWhlaWdodDogJHhwby1oZWFkZXItbGluZUhlaWdodC0tbWVkaXVtO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC1oZWFkZXItLWxhcmdlKCkge1xuICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1sYXJnZTtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLWxhcmdlO1xuICBsaW5lLWhlaWdodDogJHhwby1oZWFkZXItbGluZUhlaWdodC0tbGFyZ2U7XG59XG5cbi8vIFJlZ3VsYXIgdGV4dCBtaXhpbnNcbkBtaXhpbiBUZXh0VHJlYXRtZW50LS1zbWFsbCgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1zbWFsbDtcbiAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc21hbGw7XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LS1tZWRpdW0oKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tbGFyZ2UoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbGFyZ2U7XG59XG5cblxuLypcbioqID09PT0gQmFzaWMgY29sb3JzID09PT1cbiovXG5cbi8qXG4qKiA9PT09IFhQTyBCcmFuZCBDb2xvciBQYWxldHRlID09PT1cbiovXG5cbi8vIFhQTyBSZWRcbiR4cG8tYnJhbmQtcmVkOiAjY2MwMDAwO1xuJHhwby1icmFuZC1yZWQtLTkwMDogJHhwby1icmFuZC1yZWQ7XG4keHBvLWJyYW5kLXJlZC0tODAwOiAjZTQyMTBlO1xuJHhwby1icmFuZC1yZWQtLTcwMDogI2YzMmExMztcbiR4cG8tYnJhbmQtcmVkLS02MDA6ICNmZjMzMTc7XG4keHBvLWJyYW5kLXJlZC0tNTAwOiAjZmYzOTFjO1xuJHhwby1icmFuZC1yZWQtLTQwMDogI2ZmNWUzZDtcbiR4cG8tYnJhbmQtcmVkLS0zMDA6ICNmZjdlNjA7XG4keHBvLWJyYW5kLXJlZC0tMjAwOiAjZmZhNDhlO1xuJHhwby1icmFuZC1yZWQtLTEwMDogI2ZmYzhiYTtcbiR4cG8tYnJhbmQtcmVkLS01MDogI2ZjZThlNjtcblxuLy8gWFBPIEJsYWNrXG4keHBvLWJsYWNrOiAjMDAwMDAwO1xuJHhwby1icmFuZC1ibGFjay0tOTAwOiAkeHBvLWJsYWNrO1xuJHhwby1icmFuZC1ibGFjay0tODAwOiAjMjYyNjI2O1xuJHhwby1icmFuZC1ibGFjay0tNzAwOiAjNTU1NTU1O1xuJHhwby1icmFuZC1ibGFjay0tNjAwOiAjN2I3YjdiO1xuJHhwby1icmFuZC1ibGFjay0tNTAwOiAjOWQ5ZDlkO1xuJHhwby1icmFuZC1ibGFjay0tNDAwOiAjOWQ5ZDlkO1xuJHhwby1icmFuZC1ibGFjay0tMzAwOiAjYzRjNGM0O1xuJHhwby1icmFuZC1ibGFjay0tMjAwOiAjZDlkOWQ5O1xuJHhwby1icmFuZC1ibGFjay0tMTAwOiAjZTllOWU5O1xuJHhwby1icmFuZC1ibGFjay0tNTA6ICNmNWY1ZjU7XG5cbi8vIFhQTyBEYXJrIEdyZXlcbiR4cG8tYnJhbmQtZGFyay1ncmV5OiAjNDE0YTRjO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTkwMDogIzIyMjgyYjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS04MDA6ICR4cG8tYnJhbmQtZGFyay1ncmV5O1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTcwMDogIzYyNjg2YztcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS02MDA6ICM3NTdkODE7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNTAwOiAjYTBhNmFhO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTQwMDogI2JlYzVjOTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0zMDA6ICNlMGU3ZWI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMjAwOiAjZWJmMmY2O1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTEwMDogI2YwZjdmYjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS01MDogI2Y0ZmNmZjtcblxuLy8gWFBPIE1lZGl1bSBHcmV5XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5OiAjODQ4NDg0O1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tOTAwOiAjMmUyZTJlO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tODAwOiAjNTA1MDUwO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNzAwOiAjNzA3MDcwO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNjAwOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5O1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTAwOiAjYWZhZmFmO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNDAwOiAjY2RjZGNkO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMzAwOiAjZWVlZWVlO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMjAwOiAjZjNmM2YzO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMTAwOiAjZjhmOGY4O1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTA6ICNmY2ZjZmM7XG5cbi8vIFhQTyBMaWdodCBHcmV5XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXk6ICNkZWRlZGU7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTkwMDogIzFmMWYxZjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tODAwOiAjM2YzZjNmO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS03MDA6ICM1ZTVlNWU7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTYwMDogIzcyNzI3MjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNTAwOiAjOWE5YTlhO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS00MDA6ICNiYWJhYmE7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTMwMDogJHhwby1icmFuZC1saWdodC1ncmV5O1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0yMDA6ICNlY2VjZWM7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTEwMDogI2Y0ZjRmNDtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNTA6ICNmOWY5Zjk7XG5cbi8qXG4qKiA9PT09IE1haW4gQ29sb3IgUGFsZXR0ZSA9PT09XG4qL1xuXG4vLyBCbGFjayBhbmQgR3JleVxuJHhwby1ncmV5LS05NzU6ICMyMTIxMjE7XG4keHBvLWdyZXktLTk1MDogIzMzMzMzMztcbiR4cG8tZ3JleS0tOTAwOiAjNGE0YTRhO1xuJHhwby1ncmV5LS03MDA6ICM2ZjZmNmY7XG4keHBvLWdyZXktLTM1MDogI2JkYmRiZDtcbiR4cG8tZ3JleS0tMzAwOiAjZDhkOGQ4O1xuJHhwby1ncmV5LS04MDogI2Y2ZjZmNjtcbiR4cG8tZ3JleS0tMjU6ICNmYWZhZmE7XG5cbiR4cG8td2hpdGU6ICNmZmZmZmY7XG5cbi8vIExpbmtzLCBCdXR0b25zLCBUYWJzZXQgYW5kIFRhYnBpbGxzXG4keHBvLWJsdWUtLTg1MDogIzBkNDdhMTtcbiR4cG8tYmx1ZS0tODAwOiAjMTk3NmQyO1xuJHhwby1ibHVlLS0zNTA6ICMyMTk2ZjM7XG5cbi8vIEVycm9yIFN0YXRlXG4keHBvLXJlZC0tMjAwOiAjYjcxYzFjO1xuJHhwby1yZWQtLTE1MDogI2QzMmYyZjtcbiR4cG8tcmVkLS01MDogI2ZjZWVlYjtcblxuLy8gU3VjY2VzcyBTdGF0ZVxuJHhwby1ncmVlbi0tNjAwOiAjMzg4ZTNjO1xuJHhwby1ncmVlbi0tNDUwOiAjNGNhZjUwO1xuJHhwby1ncmVlbi0tNTA6ICNmMWY5ZjE7XG5cbi8vIFdhcm5pbmcgU3RhdGVcbiR4cG8teWVsbG93LS0zNTA6ICNmZmQ2MDA7XG5cbiR4cG8tb3JhbmdlLS0zNTA6ICNmZjZkMDA7XG5cbi8vIEluZm8gU3RhdGVcbiR4cG8tYmx1ZS0tNzAwOiAjMDA5MWVhO1xuXG4vLyBUcmFuc2FjdGlvbmFsIENlbGxzXG4keHBvLWdyZXktLTE1MDogI2VjZWZmMTtcblxuJHhwby1ibHVlR3JleS0tNzAwOiAjY2ZkOGRjO1xuXG4vLyBBY2NlbnQgQ29sb3JzXG4keHBvLXBpbmstLTcwMDogI2M1MTE2MjtcblxuJHhwby10ZWFsLS03MDA6ICMwMGJmYTU7XG5cbiR4cG8tYmx1ZS0tODI1OiAjMzA0ZmZlO1xuJHhwby1ibHVlLS0yMDA6ICNlNGVmZmE7XG5cbiR4cG8tYWNjZW50LXJlZC0tNDAwOiAkeHBvLWJyYW5kLXJlZC0tNDAwO1xuJHhwby1hY2NlbnQtcmVkLS0xMDA6ICR4cG8tYnJhbmQtcmVkLS0xMDA7XG5cbiR4cG8tcHVycGxlLS03MDA6ICM2MjAwZWE7XG5cbiR4cG8tZ3JlZW4tLTIwMDogI2E0ZTU5YjtcblxuJHhwby15ZWxsb3ctLTIwMDogI2ZmZjljNDtcblxuLypcbioqID09PT0gREVQUkVDQVRFRCBDT0xPUlMgPT09PVxuKi9cblxuLypcbioqIFdBUk5JTkc6IFRISVMgVkFSSUFCTEVTIFdJTEwgQkUgUkVNT1ZFRCBTT09OXG4qL1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0xMDA6ICNlOGY1ZmU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTE1MDogI2UzZjJmZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMzAwOiAjMGQ5NGY0O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS00MDA6ICMwODY4YWM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTkwMDogIzA1M2M2Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS0xMDA6ICNmZmY4ZTU7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tMzAwOiAjZmZjZjRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTQwMDogI2ZmYmEwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS03MDA6ICNmZmQ2MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tOTAwOiAjNGQzODAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tMTAwOiAjYzhmZmRmO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tMzAwOiAjMWNlODU1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tMzUwOiAjMDBjODUzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tNDAwOiAjMTFhNjNiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tNzAwOiAjMDBjODUzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tOTAwOiAjMGE2MTIyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS01MDogI2ZiZmJmYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjA6ICNmYWZhZmE7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTEwMDogI2YzZjNmMztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMjAwOiAjZTZlNmU2O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0yNTA6ICNkZGRkZGQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTQwMDogIzliOWI5Yjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjAwOiAjNzU3NTc1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS02NTA6ICM4NTg1ODU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTc1MDogIzU3NTc1Nztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tOTE1OiAjNDM0OTRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS05MzA6ICM0MjQyNDI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTEwMDA6ICMxNzE3MTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTExMDA6ICMyMTIxMjE7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMTAwOiAjZmZlZWVlO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTI1MDogI2RkMmMwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0zMDA6ICNmZjIyMjI7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNDAwOiAjZDUwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTYwMDogI2NjMDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS03MDA6ICNkMzJmMmY7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tOTAwOiAjNTUwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTEwMDogI2ZmZGZjYTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS0zMDA6ICNmZjk5NTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tNDAwOiAjZmY2NDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTkwMDogIzhiMzcwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZm9udENvbG9yLS1saW5rOiAjMDg2OGFjO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1iYWNrZ3JvdW5kQ29sb3ItLWJvZHk6ICNmM2YzZjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1lcnJvcjogI2Q1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLXN1Y2Nlc3M6ICMxMWE2M2I7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS13YXJuOiAjZmZiYTAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0taW5mbzogIzRhNGE0YTtcblxuLypcbioqID09PT0gQ09MT1JTIEFQUExJRUQgPT09PVxuKi9cbiR4cG8tZm9udENvbG9yLS1wcmltYXJ5OiAkeHBvLWdyZXktLTkwMDtcblxuLypcbioqID09PT0gVHlwb2dyYXBoeSA9PT09XG4qL1xuLy8gUHV0dGluZyBzaXplcyBpbiBtYXBzIHRvIGFsbG93IGR5bmFtaWMgc2l6aW5nIGZvciBleHRlcm5hbFxuLy8gUm9vdCBmb250LXNpemUocykgYWx3YXlzIGluIHB4XG4keHBvLWZvbnRTaXplLS1yb290OiAxNHB4O1xuJHhwby1mb250U2l6ZS0tc21hbGw6IDAuODc1cmVtOyAvLzEycHhcbiR4cG8tZm9udFNpemUtLW1lZGl1bTogMXJlbTsgLy8xNHB4XG4keHBvLWZvbnRTaXplLS1sYXJnZTogMS4xNDNyZW07IC8vMTZweFxuJHhwby1mb250U2l6ZS0tZXh0cmFMYXJnZTogMS4yODVyZW07IC8vMThweFxuJHhwby1mb250U2l6ZS0teHhsYXJnZTogMS43MTRyZW07IC8vMjRweFxuXG4keHBvLWhlYWRlci1mb250U2l6ZS0teHNtYWxsOiAxcmVtOyAvLzE0cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1zbWFsbDogMS4xNDNyZW07IC8vMTZweFxuJHhwby1oZWFkZXItZm9udFNpemUtLW1lZGl1bTogMS4yODVyZW07IC8vMThweFxuJHhwby1oZWFkZXItZm9udFNpemUtLWxhcmdlOiAxLjQyOHJlbTsgLy8yMHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0teGxhcmdlOiAxLjU3MXJlbTsgLy8yMnB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0teHhsYXJnZTogMS44NTdyZW07IC8vMjZweFxuXG4keHBvLWZvbnRGYW1pbHktLXByaW1hcnk6ICdSb2JvdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiR4cG8tZm9udEZhbWlseS0tcm9ib3RvV2lkZUJsYWNrOiAnUm9ib3RvIFdpZGUgQmxhY2snLCAnUm9ib3RvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XG5cbiR4cG8tZm9udFdlaWdodC0tbGlnaHQ6IDMwMDtcbiR4cG8tZm9udFdlaWdodC0tbm9ybWFsOiA0MDA7XG4keHBvLWZvbnRXZWlnaHQtLW1lZGl1bTogNTAwOyAvLyBERVBSRUNBVEVEIHwgZG8gbm90IGRlbGV0ZSBzaW5jZSBpdCBpcyBzdGlsbCBiZWluZyB1c2VkIGluIHNvbWUgcHJvamVjdHNcbiR4cG8tZm9udFdlaWdodC0tYm9sZDogNTAwO1xuJHhwby1mb250V2VpZ2h0LS1leHRyYUJvbGQ6IDYwMDtcbiR4cG8tZm9udFdlaWdodC0tYm9sZGVyOiA3MDA7XG5cbiR4cG8tbGluZUhlaWdodC0teGw6IDIuMjg2cmVtOyAvLyAzMnB4XG4keHBvLWxpbmVIZWlnaHQtLWxnOiAxLjcxNHJlbTsgLy8gMjRweFxuJHhwby1saW5lSGVpZ2h0LS1tZDogMS41NzFyZW07IC8vIDIycHhcbiR4cG8tbGluZUhlaWdodC0tc206IDEuNDI5cmVtOyAvLyAyMHB4XG5cbiR4cG8tbGluZUhlaWdodC0tYmFzZTogMjRweDsgLy8gZm9yIG1lZGl1bSBhbmQgbGFyZ2UgZm9udCBzaXplXG4keHBvLWxpbmVIZWlnaHQtLW1lZGl1bTogMThweDsgLy8gZm9yIG1lZGl1bSBmb250IHNpemVzXG4keHBvLWxpbmVIZWlnaHQtLXNtYWxsOiAxNnB4OyAvLyBmb3Igc21hbGwgZm9udCBzaXplXG5cbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLXNtYWxsOiAxLjE0MzsgLy8gREVQUkVDQVRFRFxuJHhwby1oZWFkZXItbGluZUhlaWdodC0tbWVkaXVtOiAxLjE0MzsgLy8gREVQUkVDQVRFRFxuJHhwby1oZWFkZXItbGluZUhlaWdodC0tbGFyZ2U6IDEuMjg2OyAvLyBERVBSRUNBVEVEXG5cbiR4cG8tbGV0dGVyU3BhY2luZy0tYmFzZTogMC4ycHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1zbWFsbDogMC4zcHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1tZWRpdW06IDAuMzNweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLWxhcmdlOiAwLjM4cHg7XG5cbi8vID09PT0gTGF5b3V0ID09PT1cbiR4cG8tY29udGVudFNwYWNpbmc6IDE2cHg7XG5cbi8vIEJyZWFrcG9pbnRzXG4keHBvLWJyZWFrcG9pbnQtLXNtYWxsLXhzOiA0ODBweDtcbiR4cG8tYnJlYWtwb2ludC0tc21hbGw6IDYwMHB4O1xuJHhwby1icmVha3BvaW50LS1tZWRpdW06IDc2OHB4O1xuJHhwby1icmVha3BvaW50LS1sYXJnZTogMTAyNXB4O1xuJHhwby1icmVha3BvaW50LS14TGFyZ2U6IDE0NDBweDtcblxuJHhwby1zZWxlY3QtYmFja2dyb3VuZENvbG9yLW9wdGlvbk9uSG92ZXI6ICR4cG8tYmx1ZS0tMjAwO1xuXG4vLyAtLSBOR1gtVUkgU3BlY2lmaWMgLS1cbiRuZ3gtZm9vdGVyLWhlaWdodDogNDJweDtcbiRuZ3gtdGFiLWhlYWRlci1oZWlnaHQ6IDQwcHg7XG4kbmd4LXRhYmxlLXJvdy1oZWlnaHQ6IDMwcHg7XG5cbiRuZ3gtaWNvbi1zaXplOiAyNHB4OyAvLyBUT0RPOiBEZXByZWNhdGUgdGhpcyB2YXJpYWJsZVxuJHhwby1pY29uLXNpemUtLXN0YW5kYXJkOiAyMHB4O1xuJHhwby1pY29uLXNpemUtLXNtYWxsOiAxOHB4O1xuJHhwby1pY29uLXNpemUtLWxhcmdlOiAyNHB4O1xuXG4kbmd4LXRoZUJsYWNrUm9ib3RvOiA5MDA7XG5cbiR4cG8taW5wdXQtaGVpZ2h0LS1kZWZhdWx0OiAzMHB4O1xuJHhwby1pbnB1dC1oZWlnaHQtLXR3b0xpbmVzOiA0NXB4O1xuXG4kbmd4LWlucHV0LWJvcmRlci13aWR0aDogMXB4O1xuXG4kbmd4LWlucHV0LWNvbG9yLW9uSG92ZXI6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDtcbiRuZ3gtaW5wdXQtY29sb3Itb25BY3RpdmUtLWRhcms6ICR4cG8tYmxhY2s7XG4kbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1saWdodDogJHhwby13aGl0ZTtcbiRuZ3gtaW5wdXQtY29sb3ItYm9yZGVyOiAkeHBvLWdyZXktLTMwMDtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWRhcms6ICR4cG8tZ3JleS0tMzUwO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlLS1saWdodGVyOiAkeHBvLXdoaXRlO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlZC0tbGlnaHQ6ICR4cG8tZ3JleS0tODA7XG5cbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQ6IDM2cHg7XG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0LS1zbWFsbDogMjhweDtcbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQtLWxhcmdlOiA0NnB4O1xuJG5neC1idXR0b24tYW5pbWF0aW9uRHVyYXRpb246IDIwMG1zO1xuXG4kbmd4LWhlYWRlci1oZWlnaHQ6IDQwcHg7XG4vLyBGb3IgdXNlIHdoZW4gYSBob3ZlciBpcyBuZWVkZWQgb24gYSB3aGl0ZSBiYWNrZ3JvdW5kLlxuJG5neC13aGl0ZUFmZm9yZGFuY2Utb25Ib3Zlci1jb2xvcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMjAwO1xuXG4kbmd4LW1lbnUtYmFja2dyb3VuZENvbG9yOiAkeHBvLXdoaXRlO1xuXG4vKlxuKiogPT09PSBTTkFDS0JBUiBERVBSRUNBVEVEIFZBUklBQkxFUyA9PT09XG4qL1xuXG4vKlxuKiogV0FSTklORzogVEhJUyBWQVJJQUJMRVMgV0lMTCBCRSBSRU1PVkVEIFNPT05cbiovXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0tc3VjY2VzczogJHhwby1ncmVlbi0tNDUwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0tZXJyb3I6ICR4cG8tcmVkLS0xNTA7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1pbmZvOiAjMDI4OGQxO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0td2FybjogI2ZiYzAyZDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1zdWNjZXNzOiAkeHBvLWdyZWVuLS02MDA7XG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLWVycm9yOiAkeHBvLXJlZC0tMjAwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLWluZm86ICMwMTU3OWI7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tCYXItbWFyZ2luVG9wOiAzMnB4O1xuXG4vL0JhZGdlXG4kX21hdEJhZGdlQ29udGVudC1iYWNrZ3JvdW5kQ29sb3ItLW5lZ2F0aXZlOiAkeHBvLXJlZC0tNTA7XG4kX21hdEJhZGdlQ29udGVudC1jb2xvci0tbmVnYXRpdmU6ICNkZDJjMDA7XG4kX21hdEJhZGdlQ29udGVudC1iYWNrZ3JvdW5kQ29sb3ItLXBvc2l0aXZlOiAkeHBvLWdyZWVuLS01MDtcblxuJG5neC1tZW51LWJhY2tncm91bmRDb2xvci1vbkhvdmVyOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS01MDtcbi8vIFVzZWQgYXMgYSBzcGFjZXIgZm9yIGZsZXhlZCBjaGlsZHJlblxuLy8gVE9ETzogTW92ZSBhbGwgaW5zdGFuY2VzIHRvIHRoZSB1dGlsaXRpZXMgZGVmaW5pdGlvblxuLmZsZXgtLXN0cmV0Y2gge1xuICBmbGV4OiAxO1xufVxuXG4vLyAtLS0gRGlhbG9nIC0tLVxuJG5neC1kaWFsb2ctaGVhZGVyLWhlaWdodDogNDhweDtcbiRuZ3gtZGlhbG9nLWZvb3Rlci1oZWlnaHQ6IDY0cHg7XG5cbi8vIC0tLSBUcmFuc2l0aW9ucyAtLS1cbiR4cG8tdHJhbnNpdGlvbi0yMDA6IGFsbCAyMDBtcyBlYXNlLW91dDtcblxuLy8gLS0tIENvbnRleHR1YWwgSGVhZGVyIC0tLVxuJG5neC1Db250ZXh0dWFsSGVhZGVyLXNlcGFyYXRvci0tY29sb3I6ICR4cG8tZ3JleS0tMzUwO1xuXG5cbkBtaXhpbiB4cG8tc25hY2stYmFyLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtc25hY2stYmFyLXRoZW1lKCR0aGVtZSk7XG5cbiAgc25hY2stYmFyLWNvbnRhaW5lci5tYXQtc25hY2stYmFyLWNvbnRhaW5lciB7XG4gICAgJF9zbmFja0Jhci1ib3JkZXJSYWRpdXM6IDJweDtcblxuICAgIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjEyKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMik7XG5cbiAgICBiYWNrZ3JvdW5kOiAkeHBvLXdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRfc25hY2tCYXItYm9yZGVyUmFkaXVzO1xuICAgIGNvbG9yOiAkeHBvLWZvbnRDb2xvci0tcHJpbWFyeTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIEBpbmNsdWRlIHNuYWNrYmFyLS13aWR0aC0tYnJlYWtwb2ludCgpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWFyZ2luOiAkeHBvLWNvbnRlbnRTcGFjaW5nICogMjtcbiAgfVxufVxuXG5AbWl4aW4geHBvLXRhYmxlLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtdGFibGUtdGhlbWUoJHRoZW1lKTtcblxuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkdGhlbWUsIGlzLWRhcmspOyAvLyBUT0RPOiBmb3IgYWxsIG9mIHRoZXNlIHZhcmlhYmxlcywgaXQgc2hvdWxkIGNvbWUgZnJvbSB0aGUgcGFsZXR0ZVxuICAkX3RhYmxlLXNwYWNpbmc6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAkX3RhYmxlLWJvcmRlckNvbG9yOiAkeHBvLWdyZXktLTMwMDtcbiAgJF90YWJsZS1ib3JkZXI6IDFweCBzb2xpZCAkX3RhYmxlLWJvcmRlckNvbG9yO1xuICAkX2Zvb3Rlci1iYWNrZ3JvdW5kQ29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCAkeHBvLWdyZXktLTcwMCwgJHhwby1ncmV5LS0yMDApO1xuICAkX2hlYWRlci1ncm91cEJhY2tncm91bmRDb2xvcjogaWYoJGlzLWRhcmstdGhlbWUsICR4cG8tZ3JleS0tOTAwLCAkeHBvLWdyZXktLTIwMCk7XG4gICRfaGVhZGVyLWJhY2tncm91bmRDb2xvcjogaWYoJGlzLWRhcmstdGhlbWUsICR4cG8tZ3JleS0tNzAwLCAkeHBvLWdyZXktLTgwKTtcbiAgJF9oZWFkZXItY29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCB3aGl0ZSwgJHhwby1ncmV5LS05MDApO1xuXG4gIC8vIFdyYXBwaW5nIGFsbCBzdHlsZXMgYXJvdW5kIGAubWF0LXRhYmxlYCB0byBpbmNyZWFzZSBzcGVjaWZpY2l0eSBzb1xuICAvLyB0aGVzZSBzdHlsZXMgdGFrZSBwZXJzaXN0YW5jZSBvdmVyIG1hdGVyaWFsJ3NcbiAgLm1hdC10YWJsZSB7XG4gICAgYm9yZGVyOiAkX3RhYmxlLWJvcmRlcjtcblxuICAgIHRyLm1hdC1oZWFkZXItcm93LFxuICAgIHRyLm1hdC1mb290ZXItcm93LFxuICAgIHRyLm1hdC1yb3cge1xuICAgICAgaGVpZ2h0OiAkbmd4LXRhYmxlLXJvdy1oZWlnaHQ7XG4gICAgfVxuXG4gICAgbWF0LWhlYWRlci1yb3cubWF0LWhlYWRlci1yb3csXG4gICAgbWF0LWZvb3Rlci1yb3cubWF0LWZvb3Rlci1yb3csXG4gICAgbWF0LXJvdy5tYXQtcm93IHtcbiAgICAgIG1pbi1oZWlnaHQ6ICRuZ3gtdGFibGUtcm93LWhlaWdodDtcbiAgICB9XG5cbiAgICAvLyBCb3JkZXIgQm90dG9tIGVsZW1lbnRzXG4gICAgbWF0LXJvdy5tYXQtcm93LFxuICAgIG1hdC1oZWFkZXItcm93Lm1hdC1oZWFkZXItcm93LFxuICAgIG1hdC1mb290ZXItcm93Lm1hdC1mb290ZXItcm93LFxuICAgIHRoLm1hdC1oZWFkZXItY2VsbCxcbiAgICB0ZC5tYXQtY2VsbCxcbiAgICB0ZC5tYXQtZm9vdGVyLWNlbGwge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJF90YWJsZS1ib3JkZXJDb2xvcjtcbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgYm9yZGVyIGJvdHRvbSBjb2xvciBmcm9tIGxhc3Qgcm93IHRvIGF2b2lkIGRvdWJsZSBib3JkZXJcbiAgICBtYXQtcm93Lm1hdC1yb3c6bGFzdC1jaGlsZCxcbiAgICBtYXQtZm9vdGVyLXJvdy5tYXQtZm9vdGVyLXJvdzpsYXN0LWNoaWxkLFxuICAgIHRyLm1hdC1yb3c6bGFzdC1jaGlsZCA+IC5tYXQtY2VsbCB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAubWF0LWNlbGwge1xuICAgICAgLm1hdC1pY29uIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgID4gLnhwby1JY29uIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNDtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gQWxsIENlbGxzXG4gICAgdGgubWF0LWhlYWRlci1jZWxsLFxuICAgIHRkLm1hdC1jZWxsLFxuICAgIHRkLm1hdC1mb290ZXItY2VsbCxcbiAgICBtYXQtY2VsbC5tYXQtY2VsbCxcbiAgICBtYXQtaGVhZGVyLWNlbGwubWF0LWhlYWRlci1jZWxsLFxuICAgIG1hdC1mb290ZXItY2VsbC5tYXQtZm9vdGVyLWNlbGwge1xuICAgICAgJixcbiAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIC8vIG5lZWRlZCB0byBvdmVycmlkZSBtYXRlcmlhbCdzIHN0eWxlc1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRfdGFibGUtc3BhY2luZztcbiAgICAgIH1cblxuICAgICAgJixcbiAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgLy8gbmVlZGVkIHRvIG92ZXJyaWRlIG1hdGVyaWFsJ3Mgc3R5bGVzXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRfdGFibGUtc3BhY2luZztcbiAgICAgIH1cblxuICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG4gICAgfVxuXG4gICAgLy8gSGVhZGVyIHJvd3NcbiAgICB0ci5tYXQtaGVhZGVyLXJvdyxcbiAgICBtYXQtaGVhZGVyLXJvdy5tYXQtaGVhZGVyLXJvdyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkX2hlYWRlci1iYWNrZ3JvdW5kQ29sb3I7XG4gICAgICBib3gtc2hhZG93OiAwIDRweCAtMnB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuXG4gICAgICAubWF0LWhlYWRlci1jZWxsIHtcbiAgICAgICAgY29sb3I6ICRfaGVhZGVyLWNvbG9yO1xuICAgICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLXNtYWxsO1xuICAgICAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1tZWRpdW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRm9vdGVyIFJvd3NcbiAgICB0ci5tYXQtZm9vdGVyLXJvdyxcbiAgICBtYXQtZm9vdGVyLXJvdy5tYXQtZm9vdGVyLXJvdyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkX2Zvb3Rlci1iYWNrZ3JvdW5kQ29sb3I7XG5cbiAgICAgIC5tYXQtZm9vdGVyLWNlbGwge1xuICAgICAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1tZWRpdW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC10YWItbGFiZWwubWF0LXRhYi1sYWJlbC1hY3RpdmUge1xuICAgICAgY29sb3I6ICR4cG8tYmxhY2s7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jZWxsIHtcbiAgICAubWF0LWljb24ge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cblxuICAgID4gLnhwby1JY29uIHtcbiAgICAgIG1hcmdpbi1yaWdodDogJHhwby1jb250ZW50U3BhY2luZyAvIDQ7XG4gICAgfVxuICB9XG5cbiAgLy8gWHBvIEN1c3RvbSBDbGFzc1xuICAueHBvLU1hdFRhYmxlIHtcbiAgICAvLyBDb2x1bW4gR3JvdXBcbiAgICAmLS13aXRoQ29sdW1uR3JvdXAge1xuICAgICAgLy8gUHJpbWFyeSBoZWFkZXJcbiAgICAgIHRyLm1hdC1oZWFkZXItcm93OmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkX2hlYWRlci1ncm91cEJhY2tncm91bmRDb2xvcjtcblxuICAgICAgICB0aC5tYXQtaGVhZGVyLWNlbGwge1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJldXNhYmxlIENsYXNzZXNcbiAgICAmLS1ib3JkZXJSaWdodCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICRfdGFibGUtYm9yZGVyO1xuICAgIH1cblxuICAgICYtLWJvcmRlckxlZnQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICRfdGFibGUtYm9yZGVyO1xuICAgIH1cblxuICAgIC8vIENlbGwgQ2xhc3Nlc1xuICAgICYtY2VsbCB7XG4gICAgICAmLS10ZXh0QWxpZ25SaWdodCB7XG4gICAgICAgICYubWF0LWhlYWRlci1jZWxsLFxuICAgICAgICAmLm1hdC1jZWxsLFxuICAgICAgICAmLm1hdC1mb290ZXItY2VsbCB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLS10ZXh0QWxpZ25DZW50ZXIge1xuICAgICAgICAmLm1hdC1oZWFkZXItY2VsbCxcbiAgICAgICAgJi5tYXQtY2VsbCxcbiAgICAgICAgJi5tYXQtZm9vdGVyLWNlbGwge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4geHBvLXRhYnMtdGhlbWUoJHRoZW1lKSB7XG4gIEBpbmNsdWRlIG1hdC10YWJzLXRoZW1lKCR0aGVtZSk7XG4gICRfdGFiLWJvcmRlcjogMXB4IHNvbGlkICR4cG8tZ3JleS0tMzAwO1xuICAkX3RhYi1pbmstdGhpY2tuZXNzOiA0cHg7XG4gICRfdGFiLWlubmVyUGFkZGluZzogMTJweDtcbiAgLy8gUGFnaW5nIGFycm93cyBhcmUgZHJhd24gd2l0aCBhbiBlbXB0eSBkaXYgdGhhdCBoYXMgMnB4IGJvcmRlci4gVXNpbmcgdGhlIHRyYW5zbGF0ZSBvcHRpb24gaXQgYWNoaWV2ZXNcbiAgLy8gdGhlIGFycm93IGZvcm0uIFRoaXMgdmFsdWUgcmVwcmVzZW50cyB0aGUgaGVpZ2h0L3dpZHRoIG9mIHRoZSBkaXYgYW5kIGlzIGFwcGxpZWQgaW4gb3JkZXIgdG8gbWFrZSB0aGVcbiAgLy8gYXJyb3cgMTZweCB4IDE2cHggYXMgaXQgaXMgZGVmaW5lZCBpbiB0aGUgVVggc3BlY3MuXG4gICRfdGFiLW5hdi1zaXplOiAxMS4zNHB4O1xuICAkX3RhYi13aWRlci1oZWFkZXItcGFnaW5hdGlvbi1tYXgtd2lkdGg6IDQwcHg7XG4gICRfdGFiLWhlYWRlci1wYWdpbmF0aW9uLW1heC13aWR0aDogMjRweDtcblxuICAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmV5LS04MDtcbiAgICBib3JkZXI6ICRfdGFiLWJvcmRlcjtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIG1heC13aWR0aDogJF90YWItaGVhZGVyLXBhZ2luYXRpb24tbWF4LXdpZHRoO1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAyOXB4O1xuXG4gICAgOm5vdCgueHBvLVRhYnMtd2lkZU5hdikgJiB7XG4gICAgICBtYXgtd2lkdGg6ICRfdGFiLWhlYWRlci1wYWdpbmF0aW9uLW1heC13aWR0aDtcbiAgICB9XG5cbiAgICAueHBvLVRhYnMtd2lkZU5hdiAmIHtcbiAgICAgIG1heC13aWR0aDogJF90YWItd2lkZXItaGVhZGVyLXBhZ2luYXRpb24tbWF4LXdpZHRoO1xuICAgICAgd2lkdGg6IDU1cHg7XG4gICAgfVxuXG4gICAgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gICAgICBoZWlnaHQ6ICRfdGFiLW5hdi1zaXplO1xuICAgICAgd2lkdGg6ICRfdGFiLW5hdi1zaXplO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtdGFiLWxhYmVsLWNvbnRlbnQge1xuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG5cbiAgICBzcGFuIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgfVxuXG4gICAgLnhwby1pY29uLFxuICAgIC5tYXQtaWNvbixcbiAgICAubWF0LWNoaXAsXG4gICAgLm1hdC1jaGlwLWxpc3Qtd3JhcHBlciB7XG4gICAgICBtYXJnaW4tbGVmdDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgfVxuXG4gICAgLm1hdC1jaGlwLnhwby1DaGlwLS1zbWFsbCB7XG4gICAgICAkX21hdENoaXAtZm9udC1zaXplOiAxMXB4O1xuXG4gICAgICBAaW5jbHVkZSBjaGlwLXNpemUoJHhwby1saW5lSGVpZ2h0LS1zbWFsbCwgJF9tYXRDaGlwLWZvbnQtc2l6ZSk7XG5cbiAgICAgIC5tYXQtaWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGljb24tc2l6ZSgkX21hdENoaXAtZm9udC1zaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmID4gLnhwby1pY29uOmZpcnN0LWNoaWxkLFxuICAgICYgPiAubWF0LWljb246Zmlyc3QtY2hpbGQsXG4gICAgJiA+IC5tYXQtY2hpcDpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tbGVmdDogJF90YWItaW5uZXJQYWRkaW5nO1xuICAgIH1cblxuICAgICYgPiAubWF0LWljb24ge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLWxhcmdlO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC1pbmstYmFyLFxuICAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtaW5rLWJhciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ibHVlLS0zMDA7XG4gIH1cblxuICAubWF0LXRhYi1saXN0IC5tYXQtdGFiLWxhYmVscyAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWxhYmVsLWFjdGl2ZSB7XG4gICAgY29sb3I6ICR4cG8tYmxhY2s7XG4gIH1cblxuICAubWF0LXRhYi1sYWJlbHMgLm1hdC10YWItbGFiZWwsXG4gIC5tYXQtdGFiLW5hdi1iYXIgLm1hdC10YWItbGluayB7XG4gICAgY29sb3I6ICR4cG8tYmxhY2s7XG4gICAgaGVpZ2h0OiAkbmd4LXRhYi1oZWFkZXItaGVpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAkbmd4LXRhYi1oZWFkZXItaGVpZ2h0O1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBvcGFjaXR5OiAxOyAvLyBPdmVycmlkaW5nIG1hdGVyaWFsJ3MgMC42IG9wYWNpdHlcbiAgICBwYWRkaW5nOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNCAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmLm1hdC10YWItbGFiZWwtYWN0aXZlIHtcbiAgICAgIGNvbG9yOiAkeHBvLWZvbnRDb2xvci0tcHJpbWFyeTtcbiAgICB9XG5cbiAgICAmLm1hdC10YWItZGlzYWJsZWQge1xuICAgICAgY29sb3I6ICR4cG8tZ3JleS0tMzAwO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtdGFiLWxpbmsge1xuICAgIC8vIFJlbW92aW5nIHVuZGVybGluZSBhcHBsaWVkIHRvIGEgdGFncyBmcm9tIHRoZSB4cG8tYnV0dG9uIHN0eWxlc1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLypcbiAgICogTW9zdCBvZiBvdXIgY2FzZXMgd2UgaGF2ZSB0aGUgdGFiIGNvbnRlbnRzIHRha2UgdXAgdGhlIHdob2xlIHNwYWNlIG9mIHRoZSB2aWV3LFxuICAgKiAgaXQgaGFyZCB0byBhY2Nlc3MgdGhpcyBzZWxlY3RvciB3aXRoIHZpZXcgZW5jYXBzdWxhdGlvbiBvbiwgc28gd2UgY2FuIGRlZmF1bHQgaXQgdG9cbiAgICogIDEwMCUuIHRoZSB1c2VyIGNhbiBhbHdheXMgd3JhcCB0aGUgdGFicyBpbiBhIHdyYXBwZXIgYW5kIGRpY3RhdGUgdGhlIGhlaWdodCB0aGVyZS5cbiAgICovXG5cbiAgLm1hdC10YWItYm9keS13cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAueHBvLVByaW1hcnlUYWJzLFxuICAueHBvLUFsdGVybmF0ZVRhYnMge1xuICAgICYubWF0LXRhYi1uYXYtYmFyLFxuICAgICYubWF0LXRhYi1ncm91cCB7XG4gICAgICAubWF0LWluay1iYXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICAvLyBSZW1vdmluZyB0aGUgYm9yZGVyIGJvdHRvbSB0byBwdXQgaXQgb24gdGhlIGxhYmVsIHNvIHRoYXQgdGFiIGNhbiBvdmVybGFwIHRoZSBib3JkZXJcbiAgICAgIC8vIGJvdHRvbSB3aGVuIHNlbGVjdGVkXG4gICAgICAmLFxuICAgICAgLm1hdC10YWItaGVhZGVyIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLm1hdC10YWItbGlzdCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRfdGFiLWJvcmRlcjtcbiAgICAgIH1cblxuICAgICAgLm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLFxuICAgICAgLm1hdC10YWItbGlua3MgLm1hdC10YWItbGluayB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8td2hpdGU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkX3RhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci10b3A6ICRfdGFiLWJvcmRlcjtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAgJF90YWItaW5uZXJQYWRkaW5nO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkX3RhYi1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubWF0LXRhYi1sYWJlbC1hY3RpdmUge1xuICAgICAgICAgIGJvcmRlci10b3A6ICRfdGFiLWluay10aGlja25lc3Mgc29saWQgJHhwby1ibHVlLS04NTA7XG4gICAgICAgICAgb3ZlcmZsb3c6IGluaGVyaXQ7XG5cbiAgICAgICAgICAubWF0LXRhYi1sYWJlbC1jb250ZW50IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRfdGFiLWluay10aGlja25lc3MgLSAxO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC5tYXQtY2hpcCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTYwMDtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBPdmVybGFwcGluZyB0aGUgYm9yZGVyIGJvdHRvbSBvZiB0aGUgdGFiLWxpc3RcbiAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyOm5vdCgubWF0LXRhYi1kaXNhYmxlZCk6bm90KC5tYXQtdGFiLWxhYmVsLWFjdGl2ZSkge1xuICAgICAgICAgIGJvcmRlci10b3A6ICRfdGFiLWluay10aGlja25lc3Mgc29saWQgJHhwby1ibHVlLS0zNTA7XG5cbiAgICAgICAgICAubWF0LXRhYi1sYWJlbC1jb250ZW50IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRfdGFiLWluay10aGlja25lc3MgLSAxO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy9cbi8vIE92ZXJyaWRlcyBmb3IgdGhlIFNlbGVjdFxuLy9cbi8vIEBhdXRob3I6IFBldGVyIFJhbXNpbmcgPHBldGVyLnJhbXNpbmdAeHBvLmNvbT5cbi8vL1xuXG4vKlxuICAgIDEuIE1vdmVzIHRoZSBzZWxlY3QgdG8gc2l0IHJpZ2h0IHVuZGVyIHRoZSB0cmlnZ2VyXG4qL1xuXG5AbWl4aW4geHBvLXNlbGVjdC10aGVtZSgkdGhlbWUpIHtcbiAgQGluY2x1ZGUgbWF0LXNlbGVjdC10aGVtZSgkdGhlbWUpO1xuICAkX29wdGlvbi1oZWlnaHQ6IDIuM2VtO1xuICAkX3NlbGVjdC10d29MaW5lc0Rlc2NyaXB0aW9uLWZvbnRTaXplOiAxMXB4O1xuICAkX3NlbGVjdFBhbmVsLW1hcmdpbkxlZnQ6IDdweDtcbiAgJF9zZWxlY3RQYW5lbC1tYXJnaW5Ub3A6IDI0cHg7XG4gICRfc2VsZWN0SW5wdXQtcGFkZGluZy0tdmVydGljYWw6IDZweDtcbiAgJF9mb3JtLWZpZWxkLWJvcmRlclJhZGl1czogMnB4O1xuICAkX2Zvcm0tZmllbGQtc3VmZml4LWxvYWRlci0tc2l6ZTogMjRweDtcbiAgJF9mb3JtLWZpZWxkLXN1ZmZpeC1yaWdodDogMjRweDtcbiAgJF9mb3JtRmllbGQtaWNvbi1zaXplOiAxNnB4O1xuICAkX2Zvcm1GaWVsZC1pY29uLWZvbnRTaXplOiAyMHB4O1xuXG4gIC8vIFNlbGVjdCB3aXRoIGljb24gYW5kIHR3byBsaW5lc1xuICAueHBvLVNlbGVjdC10d29MaW5lc0NvbnRhaW5lciB7XG4gICAgY29sb3I6ICR4cG8tZ3JleS0tMTEwMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWFyZ2luLWxlZnQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuXG4gICAgLm1hdC1vcHRpb24tdGV4dCB7XG4gICAgICAmOm50aC1vZi10eXBlKDEpIHtcbiAgICAgICAgY29sb3I6ICR4cG8tYmxhY2s7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xuICAgICAgfVxuXG4gICAgICAmOm50aC1vZi10eXBlKDIpIHtcbiAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tOTUwO1xuICAgICAgICBmb250LXNpemU6ICRfc2VsZWN0LXR3b0xpbmVzRGVzY3JpcHRpb24tZm9udFNpemU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxMnB4O1xuICAgICAgICBwYWRkaW5nLXRvcDogJHhwby1jb250ZW50U3BhY2luZyAvIDQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnhwby1TZWxlY3QtdHdvQ29sdW1uc0NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIHNwYW46Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICBmbGV4OiAxO1xuICAgIH1cblxuICAgIHNwYW46bGFzdC1vZi10eXBlIHtcbiAgICAgIGZsZXg6IDI7XG4gICAgfVxuICB9XG5cbiAgLnhwby1TZWxlY3QtcGFuZWwge1xuICAgICYubWF0LXNlbGVjdC1wYW5lbCB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkbmd4LWlucHV0LWNvbG9yLWJvcmRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAkX3NlbGVjdFBhbmVsLW1hcmdpbkxlZnQ7IC8vICMxXG4gICAgICBtYXJnaW4tdG9wOiAkX3NlbGVjdFBhbmVsLW1hcmdpblRvcDsgLy8gIzFcblxuICAgICAgLm1hdC1vcHRpb24sXG4gICAgICAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgICAgICAgaGVpZ2h0OiAkeHBvLWlucHV0LWhlaWdodC0tZGVmYXVsdDsgLy8gVGhlIHN0eWxlIGlzIG92ZXJ3cml0dGVuIGJ5IGRlZmF1bHQgb3RoZXJ3aXNlXG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7IC8vIFRoZSBzdHlsZSBpcyBvdmVyd3JpdHRlbiBieSBkZWZhdWx0IG90aGVyd2lzZVxuICAgICAgICBwYWRkaW5nOiAkX3NlbGVjdElucHV0LXBhZGRpbmctLXZlcnRpY2FsICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuXG4gICAgICAgICY6bm90KDpsYXN0LW9mLXR5cGUpIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAkbmd4LWlucHV0LWJvcmRlci13aWR0aCBzb2xpZCAkeHBvLWdyZXktLTMwMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYueHBvLU9wdGlvbiB7XG4gICAgICAgICAgJi0tdHdvTGluZXMge1xuICAgICAgICAgICAgaGVpZ2h0OiAkeHBvLWlucHV0LWhlaWdodC0tdHdvTGluZXM7XG5cbiAgICAgICAgICAgIC5tYXQtb3B0aW9uLXRleHQge1xuICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgICYtaGlkZURpdmlkZXI6bm90KDpsYXN0LW9mLXR5cGUpIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpob3Zlcjpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpLFxuICAgICAgICAmOmZvY3VzOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICR4cG8tc2VsZWN0LWJhY2tncm91bmRDb2xvci1vcHRpb25PbkhvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hdC1pY29uIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLm1hdC1zZWxlY3RlZCB7XG4gICAgICAgICAgJjpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR4cG8tc2VsZWN0LWJhY2tncm91bmRDb2xvci1vcHRpb25PbkhvdmVyO1xuICAgICAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tOTAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtZGlzYWJsZWQge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tODA7XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LW9wdGlvbi10ZXh0IHtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTk1MDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXQtcHNldWRvLWNoZWNrYm94IHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkbmd4LWlucHV0LWNvbG9yLWJvcmRlcjtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcblxuICAgICAgICAgICYtZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmV5LS0zMDA7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICR4cG8tZ3JleS0tMzAwO1xuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgY3VycmVudENvbG9yO1xuICAgICAgICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAzcHg7XG4gICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICAgIC8vIEZvciBzb21lIHN0cmFuZ2UgcmVhc29uIEFuZ3VsYXIgTWF0ZXJpYWwgZG9lc24ndCBoYXZlIHRoZXNlIHN0eWxlc1xuICAgICAgICAgICAgICAvLyBmb3IgdGhlIGRpc2FibGVkIG9wdGlvbnMsIHdlIGFyZSBhZGRpbmcgaXQgdG8gZW5zdXJlIHRoYXQgd2UgY2FuIHNob3dcbiAgICAgICAgICAgICAgLy8gc2VsZWN0ZWQgb3B0aW9ucyBhcyBkaXNhYmxlZC5cbiAgICAgICAgICAgICAgd2lkdGg6IDhweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLWNoZWNrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ibGFjaztcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHhwby1ibGFjaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAvLyBUaGVzZSB2YWx1ZXMgYXJlIG5lZWRlZCB0byBvdmVycmlkZSB0aGUgb25lcyBzZXQgYnkgTWF0ZXJpYWwsXG4gICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIG92ZXJyaWRlIHRoZW0gYmVjYXVzZSB3ZSBjaGFuZ2VkIHRoZSBib3JkZXItd2l0aC5cbiAgICAgICAgICAgIGxlZnQ6IDJweDtcbiAgICAgICAgICAgIHRvcDogMy40cHg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEFwcGx5aW5nIHRoZXNlIHN0eWxlcyBvdXRzaWRlIHRoZSBtYXQtb3B0aW9uIGJsb2NrLCBzbyBpdFxuICAgICAgLy8gZG9lc24ndCBtaXh1cCBvciBicmVhayB0aGUgbWF0LW9wdGlvblxuICAgICAgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoIHNvbGlkICR4cG8tZ3JleS0tMzAwO1xuICAgICAgICBjb2xvcjogJHhwby1ncmV5LS05NTA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtb3B0Z3JvdXAge1xuICAgICAgICAmOm5vdCg6Zmlyc3Qtb2YtdHlwZSkgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gICAgICAgICAgYm9yZGVyLXRvcDogJG5neC1pbnB1dC1ib3JkZXItd2lkdGggc29saWQgJHhwby1ncmV5LS0zMDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZW1vdmFsc1xuICAubWF0LW9wdGlvbiAubWF0LW9wdGlvbi1yaXBwbGUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZCB7XG4gICAgJi5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1zZWxlY3Qge1xuICAgICAgJi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LXNlbGVjdCB7XG4gICAgICAmLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5LFxuICAgICAgJi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICAgICAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTsgLy8gVE9ETzogdmFyaWFibGVzIHVzaW5nIHRoaXMgc2hvdWxkIGNvbWUgZnJvbSBwYWxldHRlXG4gICAgICAgICRfaW5wdXQtYm9yZGVyQ29sb3ItLWZvY3VzZWQ6ICRuZ3gtaW5wdXQtY29sb3Itb25BY3RpdmUtLWRhcms7XG4gICAgICAgICRfaW5wdXQtYm9yZGVyQ29sb3I6ICRuZ3gtaW5wdXQtY29sb3ItYm9yZGVyO1xuICAgICAgICAkX2xhYmVsVmVydGljYWxNb3ZlbWVudDogLTEuM2VtO1xuICAgICAgICAkX3ByZWZpeFN1ZmZpeEljb24tc2l6ZTogMmVtO1xuICAgICAgICAkX2lucHV0LXBsYWNlaG9sZGVyVGV4dENvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgJHhwby1ncmV5LS0xMDAsICR4cG8tZ3JleS0tNDAwKTtcbiAgICAgICAgJF9pbnB1dC1sYWJlbFRleHRDb2xvcjogaWYoJGlzLWRhcmstdGhlbWUsICR4cG8tZ3JleS0tNTAsICR4cG8tZ3JleS0tNzAwKTtcbiAgICAgICAgJF9zZWxlY3QtZm9ybUZpZWxkV3JhcHBlci10b3A6IC00M3B4O1xuICAgICAgICAkX2Zvcm1GaWVsZC1tYXJnaW5Ub3A6IDI0cHg7XG5cbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHhwby1jb250ZW50U3BhY2luZztcbiAgICAgICAgbWFyZ2luLXRvcDogJF9mb3JtRmllbGQtbWFyZ2luVG9wO1xuXG4gICAgICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQge1xuICAgICAgICAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTgwO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAubWF0LXNlbGVjdC1wbGFjZWhvbGRlcixcbiAgICAgICAgICAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkeHBvLWJsYWNrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLm1hdC1mb3JtLWZpZWxkLWhhcy1sYWJlbCAubWF0LXNlbGVjdDpub3QoLm1hdC1zZWxlY3QtZW1wdHkpIC5tYXQtc2VsZWN0LWFycm93LXdyYXBwZXIge1xuICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICAgICAgICBoZWlnaHQ6IHVuc2V0O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgdG9wOiAwO1xuXG4gICAgICAgICAgLy8gU2V0cyB0aGUgZm9jdXNlZCBib3JkZXIgY29sb3IgYW5kIGJveCBzaGFkb3dcbiAgICAgICAgICBAYXQtcm9vdCAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJF9pbnB1dC1ib3JkZXJDb2xvci0tZm9jdXNlZCAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFNldHMgdGhlIGJvcmRlciBjb2xvciB3aGVuIGludmFsaWRcbiAgICAgICAgICBAYXQtcm9vdCAubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkeHBvLWNvbG9yLS1lcnJvciAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAkbmd4LWlucHV0LWJvcmRlci13aWR0aCBzb2xpZCAkX2lucHV0LWJvcmRlckNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJF9mb3JtLWZpZWxkLWJvcmRlclJhZGl1cztcbiAgICAgICAgICAgIHBhZGRpbmc6ICRfc2VsZWN0SW5wdXQtcGFkZGluZy0tdmVydGljYWwgJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG5cbiAgICAgICAgICAgIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubWF0LXNlbGVjdC12YWx1ZS10ZXh0IHtcbiAgICAgICAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tMTEwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLm1hdC1mb2N1c2VkIHtcbiAgICAgICAgICAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICAgICAgICBjb2xvcjogJHhwby1ncmV5LS05MDAgIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLm5neC1Gb3JtRmllbGQtLWlubGluZSAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgY29sb3I6ICRfaW5wdXQtcGxhY2Vob2xkZXJUZXh0Q29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgY29sb3I6ICRfaW5wdXQtcGxhY2Vob2xkZXJUZXh0Q29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmLm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTk1MDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgICByaWdodDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgICAgICAgdG9wOiAkX3NlbGVjdC1mb3JtRmllbGRXcmFwcGVyLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgY29sb3I6ICRfaW5wdXQtcGxhY2Vob2xkZXJUZXh0Q29sb3I7XG4gICAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG4gICAgICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tbm9ybWFsO1xuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IC8vICM0XG4gICAgICAgICAgdHJhbnNmb3JtOiB1bnNldCAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgY29sb3I6ICRfaW5wdXQtcGxhY2Vob2xkZXJUZXh0Q29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgY29sb3I6ICRfaW5wdXQtcGxhY2Vob2xkZXJUZXh0Q29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGlzIGlzIHRoZSBhc3RlcmlzayB0aGF0IGlzIGFkZGVkIGlmIGByZXF1aXJlZGAgaXMgYWRkZWQgdG8gdGhlIGlucHV0XG4gICAgICAgIC5tYXQtcGxhY2Vob2xkZXItcmVxdWlyZWQge1xuICAgICAgICAgIGNvbG9yOiAkeHBvLWNvbG9yLS1lcnJvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXQtaGludCB7XG4gICAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1zbWFsbDtcbiAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tbm9ybWFsO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hdC1lcnJvciB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmb250LWZhbWlseTogJHhwby1mb250RmFtaWx5LS1wcmltYXJ5O1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLW5vcm1hbDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbWFsbDtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcblxuICAgICAgICAgIC5tYXQtaWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJF9mb3JtRmllbGQtaWNvbi1mb250U2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNDtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1wcmVmaXgge1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4zZW07XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWZvcm0tZmllbGQtc3VmZml4IHtcbiAgICAgICAgICBoZWlnaHQ6ICRfZm9ybS1maWVsZC1zdWZmaXgtbG9hZGVyLS1zaXplO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICByaWdodDogJF9mb3JtLWZpZWxkLXN1ZmZpeC1yaWdodDtcbiAgICAgICAgICB3aWR0aDogJF9mb3JtLWZpZWxkLXN1ZmZpeC1sb2FkZXItLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBCb3JkZXJsZXNzXG4gICAgICAgICYubmd4LUZvcm1GaWVsZC0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogdW5zZXQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gUkVNT1ZBTFNcbiAgICAgICAgLy8gUmVtb3ZlcyB0aGUgdW5kZXJsaW5lXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBUaGVzZSBzdHlsZXMgcmVtb3ZlIHRoZSBleHRyYSB3aWR0aCBhbmQgdGhlIHRyYW5zbGF0ZVggaW5saW5lIHN0eWxlcyxcbiAgLy8gYWRkZWQgYnkgQW5ndWxhciBNYXRlcmlhbCB1c2luZyB2YXJpYWJsZXMgU0VMRUNUX1BBTkVMX1BBRERJTkdfWFxuICAvLyBhbmQgU0VMRUNUX01VTFRJUExFX1BBTkVMX1BBRERJTkdfWC5cbiAgLy8gQWx0aG91Z2ggU0VMRUNUX01VTFRJUExFX1BBTkVMX1BBRERJTkdfWCBpcyBwdWJsaWMgYW5kIHJpZ2h0IG5vdyB3ZSBjb3VsZFxuICAvLyBvdmVycmlkZSBpdCwgaXQncyBtYXJrZWQgYXMgZGVwcmVjYXRlZCwgc28gd2UgYXJlIGFwcGx5aW5nIHRoaXMgc29sdXRpb24gdGhhdFxuICAvLyB3aWxsIGJlIHZhbGlkIHVwIHRvIEFuZ3VsYXIxMi5cbiAgLnhwby1TZWxlY3QtcGFuZWwubWF0LXNlbGVjdC1wYW5lbCB7XG4gICAgbWluLXdpZHRoOiBjYWxjKDEwMCUgKyAxOHB4KSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnhwby1TZWxlY3QtcGFuZWxNdWx0aXBsZS5tYXQtc2VsZWN0LXBhbmVsIHtcbiAgICBtYXJnaW4tbGVmdDogMzFweDtcbiAgfVxufVxuXG5AbWl4aW4geHBvLXNsaWRlLXRvZ2dsZS10aGVtZSgkdGhlbWUpIHtcbiAgJF90aHVtYlNpemU6IDIycHg7XG5cbiAgbWF0LXNsaWRlLXRvZ2dsZS5tYXQtc2xpZGUtdG9nZ2xlIHtcbiAgICAkX21hdFNsaWRlVG9nZ2xlLXdpZHRoLXNtYWxsOiAzMnB4O1xuICAgICRfbWF0U2xpZGVUb2dnbGUtaGVpZ2h0LXNtYWxsOiAxNnB4O1xuICAgICRfbWF0U2xpZGVUb2dnbGUtdGh1bWItc21hbGw6IDE0cHg7XG4gICAgJF9tYXRTbGlkZVRvZ2dsZS10aHVtYjogMjBweDtcbiAgICAkX21hdFNsaWRlVG9nZ2xlLWJhci13aXRoOiAzOHB4O1xuICAgICRfbWF0U2xpZGVUb2dnbGUtYm9yZGVyLXVuc2VsZWN0ZWQtZGlzYWJsZWQ6ICNlMmUyZTQ7XG4gICAgJF9tYXRTbGlkZVRvZ2dsZS1ib3JkZXItY2hlY2tlZC1kaXNhYmxlZDogI2M3ZGVjNjtcbiAgICAkX21hdFNsaWRlVG9nZ2xlLWJhY2tncm91bmQtYmFyOiAjY2RlOGNjO1xuXG4gICAgJi5tYXQtZGlzYWJsZWQge1xuICAgICAgb3BhY2l0eTogdW5zZXQ7XG4gICAgfVxuXG4gICAgJi5tYXQtY2hlY2tlZCB7XG4gICAgICBvcGFjaXR5OiB1bnNldDtcbiAgICB9XG5cbiAgICAmLm1hdC1jaGVja2VkLm1hdC1kaXNhYmxlZCAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJF9tYXRTbGlkZVRvZ2dsZS1iYWNrZ3JvdW5kLWJhcjtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRfbWF0U2xpZGVUb2dnbGUtYm9yZGVyLWNoZWNrZWQtZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgJi5tYXQtZGlzYWJsZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNTA7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkX21hdFNsaWRlVG9nZ2xlLWJvcmRlci11bnNlbGVjdGVkLWRpc2FibGVkO1xuXG4gICAgICAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkX21hdFNsaWRlVG9nZ2xlLWJvcmRlci11bnNlbGVjdGVkLWRpc2FibGVkO1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JlZW4tLTQ1MDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR4cG8tZ3JlZW4tLTYwMDtcbiAgICB9XG5cbiAgICAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmV5LS04MDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR4cG8tZ3JleS0tMzAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogMzBweDtcbiAgICAgIGhlaWdodDogJF90aHVtYlNpemU7XG4gICAgICB3aWR0aDogJF9tYXRTbGlkZVRvZ2dsZS1iYXItd2l0aDtcbiAgICB9XG5cbiAgICAmLm1hdC1jaGVja2VkLm1hdC1kaXNhYmxlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJF9tYXRTbGlkZVRvZ2dsZS1ib3JkZXItY2hlY2tlZC1kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAmLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8td2hpdGU7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cblxuICAgICYubWF0LWRpc2FibGVkIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8td2hpdGU7XG4gICAgfVxuXG4gICAgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWItY29udGFpbmVyIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IDAuMXB4O1xuXG4gICAgICAmLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLXdoaXRlO1xuICAgICAgICBoZWlnaHQ6ICRfdGh1bWJTaXplO1xuICAgICAgICB3aWR0aDogJF90aHVtYlNpemU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby13aGl0ZTtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkeHBvLWdyZXktLTMwMDtcbiAgICB9XG5cbiAgICAmLnhwby1TbGlkZVRvZ2dsZS0tc21hbGwge1xuICAgICAgJi5tYXQtY2hlY2tlZC5tYXQtZGlzYWJsZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJF9tYXRTbGlkZVRvZ2dsZS1iYWNrZ3JvdW5kLWJhcjtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJF9tYXRTbGlkZVRvZ2dsZS1ib3JkZXItY2hlY2tlZC1kaXNhYmxlZDtcbiAgICAgIH1cblxuICAgICAgJi5tYXQtZGlzYWJsZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1icmFuZC1saWdodC1ncmV5LS01MDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJF9tYXRTbGlkZVRvZ2dsZS1ib3JkZXItdW5zZWxlY3RlZC1kaXNhYmxlZDtcbiAgICAgIH1cblxuICAgICAgJi5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZWVuLS00NTA7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR4cG8tZ3JlZW4tLTYwMDtcbiAgICAgIH1cblxuICAgICAgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmV5LS04MDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMzBweDtcbiAgICAgICAgaGVpZ2h0OiAkX21hdFNsaWRlVG9nZ2xlLWhlaWdodC1zbWFsbDtcbiAgICAgICAgd2lkdGg6ICRfbWF0U2xpZGVUb2dnbGUtd2lkdGgtc21hbGw7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iLWNvbnRhaW5lciB7XG4gICAgICAgIGhlaWdodDogJF9tYXRTbGlkZVRvZ2dsZS10aHVtYi1zbWFsbDtcbiAgICAgICAgd2lkdGg6ICRfbWF0U2xpZGVUb2dnbGUtdGh1bWItc21hbGw7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgICAgICAgaGVpZ2h0OiAkX21hdFNsaWRlVG9nZ2xlLXRodW1iLXNtYWxsO1xuICAgICAgICB3aWR0aDogJF9tYXRTbGlkZVRvZ2dsZS10aHVtYi1zbWFsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LXNsaWRlLXRvZ2dsZS1yaXBwbGUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vXG4vLyBPdmVycmlkZXMgZm9yIHRoZSByYWRpbyBidXR0b25cbi8vL1xuXG5AbWl4aW4geHBvLXJhZGlvLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtcmFkaW8tdGhlbWUoJHRoZW1lKTtcblxuICBtYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1idXR0b24ge1xuICAgIC5tYXQtcmFkaW8tY29udGFpbmVyIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC44KTtcblxuICAgICAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1kYXJrO1xuICAgICAgfVxuXG4gICAgICAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gICAgICAgIGJvcmRlci13aWR0aDogJG5neC1pbnB1dC1ib3JkZXItd2lkdGg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1yYWRpby1sYWJlbC1jb250ZW50IHtcbiAgICAgIHBhZGRpbmctbGVmdDogMnB4O1xuICAgIH1cblxuICAgICYubWF0LXJhZGlvLWNoZWNrZWQge1xuICAgICAgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICAgICAgICBib3JkZXItY29sb3I6ICRuZ3gtaW5wdXQtY29sb3Itb25BY3RpdmUtLWxpZ2h0O1xuICAgICAgfVxuXG4gICAgICAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC42MjUpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LXJhZGlvLWRpc2FibGVkIHtcbiAgICAgIC5tYXQtcmFkaW8tbGFiZWwge1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgfVxuXG4gICAgICAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSxcbiAgICAgICYubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICAgICAgICBib3JkZXItY29sb3I6ICRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWRhcms7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlZC0tZGFyaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLy9cbiAgICAvLyBSZW1vdmFsc1xuICAgIC8vL1xuICAgIC5tYXQtcmlwcGxlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB4cG8taGVhZGVyLXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkdGhlbWUsIGlzLWRhcmspO1xuXG4gIC54cG8tSGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGFwcC1iYXIpO1xuICAgIGJvcmRlci1ib3R0b206IGlmKCRpcy1kYXJrLXRoZW1lLCAycHgsIDFweCkgc29saWQgaWYoJGlzLWRhcmstdGhlbWUsIHRyYW5zcGFyZW50LCAkeHBvLWdyZXktLTMwMCk7XG4gIH1cbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1zbWFsbCgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tc21hbGw7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1zbWFsbDtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLXNtYWxsO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC1oZWFkZXItLW1lZGl1bSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbWVkaXVtO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbWVkaXVtO1xuICBsaW5lLWhlaWdodDogJHhwby1oZWFkZXItbGluZUhlaWdodC0tbWVkaXVtO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC1oZWFkZXItLWxhcmdlKCkge1xuICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1sYXJnZTtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLWxhcmdlO1xuICBsaW5lLWhlaWdodDogJHhwby1oZWFkZXItbGluZUhlaWdodC0tbGFyZ2U7XG59XG5cbi8vIFJlZ3VsYXIgdGV4dCBtaXhpbnNcbkBtaXhpbiBUZXh0VHJlYXRtZW50LS1zbWFsbCgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1zbWFsbDtcbiAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc21hbGw7XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LS1tZWRpdW0oKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tbGFyZ2UoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbGFyZ2U7XG59XG5cblxuLypcbioqID09PT0gQmFzaWMgY29sb3JzID09PT1cbiovXG5cbi8qXG4qKiA9PT09IFhQTyBCcmFuZCBDb2xvciBQYWxldHRlID09PT1cbiovXG5cbi8vIFhQTyBSZWRcbiR4cG8tYnJhbmQtcmVkOiAjY2MwMDAwO1xuJHhwby1icmFuZC1yZWQtLTkwMDogJHhwby1icmFuZC1yZWQ7XG4keHBvLWJyYW5kLXJlZC0tODAwOiAjZTQyMTBlO1xuJHhwby1icmFuZC1yZWQtLTcwMDogI2YzMmExMztcbiR4cG8tYnJhbmQtcmVkLS02MDA6ICNmZjMzMTc7XG4keHBvLWJyYW5kLXJlZC0tNTAwOiAjZmYzOTFjO1xuJHhwby1icmFuZC1yZWQtLTQwMDogI2ZmNWUzZDtcbiR4cG8tYnJhbmQtcmVkLS0zMDA6ICNmZjdlNjA7XG4keHBvLWJyYW5kLXJlZC0tMjAwOiAjZmZhNDhlO1xuJHhwby1icmFuZC1yZWQtLTEwMDogI2ZmYzhiYTtcbiR4cG8tYnJhbmQtcmVkLS01MDogI2ZjZThlNjtcblxuLy8gWFBPIEJsYWNrXG4keHBvLWJsYWNrOiAjMDAwMDAwO1xuJHhwby1icmFuZC1ibGFjay0tOTAwOiAkeHBvLWJsYWNrO1xuJHhwby1icmFuZC1ibGFjay0tODAwOiAjMjYyNjI2O1xuJHhwby1icmFuZC1ibGFjay0tNzAwOiAjNTU1NTU1O1xuJHhwby1icmFuZC1ibGFjay0tNjAwOiAjN2I3YjdiO1xuJHhwby1icmFuZC1ibGFjay0tNTAwOiAjOWQ5ZDlkO1xuJHhwby1icmFuZC1ibGFjay0tNDAwOiAjOWQ5ZDlkO1xuJHhwby1icmFuZC1ibGFjay0tMzAwOiAjYzRjNGM0O1xuJHhwby1icmFuZC1ibGFjay0tMjAwOiAjZDlkOWQ5O1xuJHhwby1icmFuZC1ibGFjay0tMTAwOiAjZTllOWU5O1xuJHhwby1icmFuZC1ibGFjay0tNTA6ICNmNWY1ZjU7XG5cbi8vIFhQTyBEYXJrIEdyZXlcbiR4cG8tYnJhbmQtZGFyay1ncmV5OiAjNDE0YTRjO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTkwMDogIzIyMjgyYjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS04MDA6ICR4cG8tYnJhbmQtZGFyay1ncmV5O1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTcwMDogIzYyNjg2YztcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS02MDA6ICM3NTdkODE7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNTAwOiAjYTBhNmFhO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTQwMDogI2JlYzVjOTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0zMDA6ICNlMGU3ZWI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMjAwOiAjZWJmMmY2O1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTEwMDogI2YwZjdmYjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS01MDogI2Y0ZmNmZjtcblxuLy8gWFBPIE1lZGl1bSBHcmV5XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5OiAjODQ4NDg0O1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tOTAwOiAjMmUyZTJlO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tODAwOiAjNTA1MDUwO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNzAwOiAjNzA3MDcwO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNjAwOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5O1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTAwOiAjYWZhZmFmO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNDAwOiAjY2RjZGNkO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMzAwOiAjZWVlZWVlO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMjAwOiAjZjNmM2YzO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMTAwOiAjZjhmOGY4O1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTA6ICNmY2ZjZmM7XG5cbi8vIFhQTyBMaWdodCBHcmV5XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXk6ICNkZWRlZGU7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTkwMDogIzFmMWYxZjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tODAwOiAjM2YzZjNmO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS03MDA6ICM1ZTVlNWU7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTYwMDogIzcyNzI3MjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNTAwOiAjOWE5YTlhO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS00MDA6ICNiYWJhYmE7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTMwMDogJHhwby1icmFuZC1saWdodC1ncmV5O1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0yMDA6ICNlY2VjZWM7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTEwMDogI2Y0ZjRmNDtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNTA6ICNmOWY5Zjk7XG5cbi8qXG4qKiA9PT09IE1haW4gQ29sb3IgUGFsZXR0ZSA9PT09XG4qL1xuXG4vLyBCbGFjayBhbmQgR3JleVxuJHhwby1ncmV5LS05NzU6ICMyMTIxMjE7XG4keHBvLWdyZXktLTk1MDogIzMzMzMzMztcbiR4cG8tZ3JleS0tOTAwOiAjNGE0YTRhO1xuJHhwby1ncmV5LS03MDA6ICM2ZjZmNmY7XG4keHBvLWdyZXktLTM1MDogI2JkYmRiZDtcbiR4cG8tZ3JleS0tMzAwOiAjZDhkOGQ4O1xuJHhwby1ncmV5LS04MDogI2Y2ZjZmNjtcbiR4cG8tZ3JleS0tMjU6ICNmYWZhZmE7XG5cbiR4cG8td2hpdGU6ICNmZmZmZmY7XG5cbi8vIExpbmtzLCBCdXR0b25zLCBUYWJzZXQgYW5kIFRhYnBpbGxzXG4keHBvLWJsdWUtLTg1MDogIzBkNDdhMTtcbiR4cG8tYmx1ZS0tODAwOiAjMTk3NmQyO1xuJHhwby1ibHVlLS0zNTA6ICMyMTk2ZjM7XG5cbi8vIEVycm9yIFN0YXRlXG4keHBvLXJlZC0tMjAwOiAjYjcxYzFjO1xuJHhwby1yZWQtLTE1MDogI2QzMmYyZjtcbiR4cG8tcmVkLS01MDogI2ZjZWVlYjtcblxuLy8gU3VjY2VzcyBTdGF0ZVxuJHhwby1ncmVlbi0tNjAwOiAjMzg4ZTNjO1xuJHhwby1ncmVlbi0tNDUwOiAjNGNhZjUwO1xuJHhwby1ncmVlbi0tNTA6ICNmMWY5ZjE7XG5cbi8vIFdhcm5pbmcgU3RhdGVcbiR4cG8teWVsbG93LS0zNTA6ICNmZmQ2MDA7XG5cbiR4cG8tb3JhbmdlLS0zNTA6ICNmZjZkMDA7XG5cbi8vIEluZm8gU3RhdGVcbiR4cG8tYmx1ZS0tNzAwOiAjMDA5MWVhO1xuXG4vLyBUcmFuc2FjdGlvbmFsIENlbGxzXG4keHBvLWdyZXktLTE1MDogI2VjZWZmMTtcblxuJHhwby1ibHVlR3JleS0tNzAwOiAjY2ZkOGRjO1xuXG4vLyBBY2NlbnQgQ29sb3JzXG4keHBvLXBpbmstLTcwMDogI2M1MTE2MjtcblxuJHhwby10ZWFsLS03MDA6ICMwMGJmYTU7XG5cbiR4cG8tYmx1ZS0tODI1OiAjMzA0ZmZlO1xuJHhwby1ibHVlLS0yMDA6ICNlNGVmZmE7XG5cbiR4cG8tYWNjZW50LXJlZC0tNDAwOiAkeHBvLWJyYW5kLXJlZC0tNDAwO1xuJHhwby1hY2NlbnQtcmVkLS0xMDA6ICR4cG8tYnJhbmQtcmVkLS0xMDA7XG5cbiR4cG8tcHVycGxlLS03MDA6ICM2MjAwZWE7XG5cbiR4cG8tZ3JlZW4tLTIwMDogI2E0ZTU5YjtcblxuJHhwby15ZWxsb3ctLTIwMDogI2ZmZjljNDtcblxuLypcbioqID09PT0gREVQUkVDQVRFRCBDT0xPUlMgPT09PVxuKi9cblxuLypcbioqIFdBUk5JTkc6IFRISVMgVkFSSUFCTEVTIFdJTEwgQkUgUkVNT1ZFRCBTT09OXG4qL1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0xMDA6ICNlOGY1ZmU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTE1MDogI2UzZjJmZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMzAwOiAjMGQ5NGY0O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS00MDA6ICMwODY4YWM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTkwMDogIzA1M2M2Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS0xMDA6ICNmZmY4ZTU7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tMzAwOiAjZmZjZjRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTQwMDogI2ZmYmEwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS03MDA6ICNmZmQ2MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tOTAwOiAjNGQzODAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tMTAwOiAjYzhmZmRmO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tMzAwOiAjMWNlODU1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tMzUwOiAjMDBjODUzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tNDAwOiAjMTFhNjNiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tNzAwOiAjMDBjODUzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tOTAwOiAjMGE2MTIyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS01MDogI2ZiZmJmYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjA6ICNmYWZhZmE7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTEwMDogI2YzZjNmMztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMjAwOiAjZTZlNmU2O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0yNTA6ICNkZGRkZGQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTQwMDogIzliOWI5Yjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjAwOiAjNzU3NTc1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS02NTA6ICM4NTg1ODU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTc1MDogIzU3NTc1Nztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tOTE1OiAjNDM0OTRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS05MzA6ICM0MjQyNDI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTEwMDA6ICMxNzE3MTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTExMDA6ICMyMTIxMjE7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMTAwOiAjZmZlZWVlO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTI1MDogI2RkMmMwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0zMDA6ICNmZjIyMjI7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNDAwOiAjZDUwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTYwMDogI2NjMDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS03MDA6ICNkMzJmMmY7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tOTAwOiAjNTUwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTEwMDogI2ZmZGZjYTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS0zMDA6ICNmZjk5NTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tNDAwOiAjZmY2NDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTkwMDogIzhiMzcwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZm9udENvbG9yLS1saW5rOiAjMDg2OGFjO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1iYWNrZ3JvdW5kQ29sb3ItLWJvZHk6ICNmM2YzZjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1lcnJvcjogI2Q1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLXN1Y2Nlc3M6ICMxMWE2M2I7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS13YXJuOiAjZmZiYTAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0taW5mbzogIzRhNGE0YTtcblxuLypcbioqID09PT0gQ09MT1JTIEFQUExJRUQgPT09PVxuKi9cbiR4cG8tZm9udENvbG9yLS1wcmltYXJ5OiAkeHBvLWdyZXktLTkwMDtcblxuLypcbioqID09PT0gVHlwb2dyYXBoeSA9PT09XG4qL1xuLy8gUHV0dGluZyBzaXplcyBpbiBtYXBzIHRvIGFsbG93IGR5bmFtaWMgc2l6aW5nIGZvciBleHRlcm5hbFxuLy8gUm9vdCBmb250LXNpemUocykgYWx3YXlzIGluIHB4XG4keHBvLWZvbnRTaXplLS1yb290OiAxNHB4O1xuJHhwby1mb250U2l6ZS0tc21hbGw6IDAuODc1cmVtOyAvLzEycHhcbiR4cG8tZm9udFNpemUtLW1lZGl1bTogMXJlbTsgLy8xNHB4XG4keHBvLWZvbnRTaXplLS1sYXJnZTogMS4xNDNyZW07IC8vMTZweFxuJHhwby1mb250U2l6ZS0tZXh0cmFMYXJnZTogMS4yODVyZW07IC8vMThweFxuJHhwby1mb250U2l6ZS0teHhsYXJnZTogMS43MTRyZW07IC8vMjRweFxuXG4keHBvLWhlYWRlci1mb250U2l6ZS0teHNtYWxsOiAxcmVtOyAvLzE0cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1zbWFsbDogMS4xNDNyZW07IC8vMTZweFxuJHhwby1oZWFkZXItZm9udFNpemUtLW1lZGl1bTogMS4yODVyZW07IC8vMThweFxuJHhwby1oZWFkZXItZm9udFNpemUtLWxhcmdlOiAxLjQyOHJlbTsgLy8yMHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0teGxhcmdlOiAxLjU3MXJlbTsgLy8yMnB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0teHhsYXJnZTogMS44NTdyZW07IC8vMjZweFxuXG4keHBvLWZvbnRGYW1pbHktLXByaW1hcnk6ICdSb2JvdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiR4cG8tZm9udEZhbWlseS0tcm9ib3RvV2lkZUJsYWNrOiAnUm9ib3RvIFdpZGUgQmxhY2snLCAnUm9ib3RvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XG5cbiR4cG8tZm9udFdlaWdodC0tbGlnaHQ6IDMwMDtcbiR4cG8tZm9udFdlaWdodC0tbm9ybWFsOiA0MDA7XG4keHBvLWZvbnRXZWlnaHQtLW1lZGl1bTogNTAwOyAvLyBERVBSRUNBVEVEIHwgZG8gbm90IGRlbGV0ZSBzaW5jZSBpdCBpcyBzdGlsbCBiZWluZyB1c2VkIGluIHNvbWUgcHJvamVjdHNcbiR4cG8tZm9udFdlaWdodC0tYm9sZDogNTAwO1xuJHhwby1mb250V2VpZ2h0LS1leHRyYUJvbGQ6IDYwMDtcbiR4cG8tZm9udFdlaWdodC0tYm9sZGVyOiA3MDA7XG5cbiR4cG8tbGluZUhlaWdodC0teGw6IDIuMjg2cmVtOyAvLyAzMnB4XG4keHBvLWxpbmVIZWlnaHQtLWxnOiAxLjcxNHJlbTsgLy8gMjRweFxuJHhwby1saW5lSGVpZ2h0LS1tZDogMS41NzFyZW07IC8vIDIycHhcbiR4cG8tbGluZUhlaWdodC0tc206IDEuNDI5cmVtOyAvLyAyMHB4XG5cbiR4cG8tbGluZUhlaWdodC0tYmFzZTogMjRweDsgLy8gZm9yIG1lZGl1bSBhbmQgbGFyZ2UgZm9udCBzaXplXG4keHBvLWxpbmVIZWlnaHQtLW1lZGl1bTogMThweDsgLy8gZm9yIG1lZGl1bSBmb250IHNpemVzXG4keHBvLWxpbmVIZWlnaHQtLXNtYWxsOiAxNnB4OyAvLyBmb3Igc21hbGwgZm9udCBzaXplXG5cbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLXNtYWxsOiAxLjE0MzsgLy8gREVQUkVDQVRFRFxuJHhwby1oZWFkZXItbGluZUhlaWdodC0tbWVkaXVtOiAxLjE0MzsgLy8gREVQUkVDQVRFRFxuJHhwby1oZWFkZXItbGluZUhlaWdodC0tbGFyZ2U6IDEuMjg2OyAvLyBERVBSRUNBVEVEXG5cbiR4cG8tbGV0dGVyU3BhY2luZy0tYmFzZTogMC4ycHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1zbWFsbDogMC4zcHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1tZWRpdW06IDAuMzNweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLWxhcmdlOiAwLjM4cHg7XG5cbi8vID09PT0gTGF5b3V0ID09PT1cbiR4cG8tY29udGVudFNwYWNpbmc6IDE2cHg7XG5cbi8vIEJyZWFrcG9pbnRzXG4keHBvLWJyZWFrcG9pbnQtLXNtYWxsLXhzOiA0ODBweDtcbiR4cG8tYnJlYWtwb2ludC0tc21hbGw6IDYwMHB4O1xuJHhwby1icmVha3BvaW50LS1tZWRpdW06IDc2OHB4O1xuJHhwby1icmVha3BvaW50LS1sYXJnZTogMTAyNXB4O1xuJHhwby1icmVha3BvaW50LS14TGFyZ2U6IDE0NDBweDtcblxuJHhwby1zZWxlY3QtYmFja2dyb3VuZENvbG9yLW9wdGlvbk9uSG92ZXI6ICR4cG8tYmx1ZS0tMjAwO1xuXG4vLyAtLSBOR1gtVUkgU3BlY2lmaWMgLS1cbiRuZ3gtZm9vdGVyLWhlaWdodDogNDJweDtcbiRuZ3gtdGFiLWhlYWRlci1oZWlnaHQ6IDQwcHg7XG4kbmd4LXRhYmxlLXJvdy1oZWlnaHQ6IDMwcHg7XG5cbiRuZ3gtaWNvbi1zaXplOiAyNHB4OyAvLyBUT0RPOiBEZXByZWNhdGUgdGhpcyB2YXJpYWJsZVxuJHhwby1pY29uLXNpemUtLXN0YW5kYXJkOiAyMHB4O1xuJHhwby1pY29uLXNpemUtLXNtYWxsOiAxOHB4O1xuJHhwby1pY29uLXNpemUtLWxhcmdlOiAyNHB4O1xuXG4kbmd4LXRoZUJsYWNrUm9ib3RvOiA5MDA7XG5cbiR4cG8taW5wdXQtaGVpZ2h0LS1kZWZhdWx0OiAzMHB4O1xuJHhwby1pbnB1dC1oZWlnaHQtLXR3b0xpbmVzOiA0NXB4O1xuXG4kbmd4LWlucHV0LWJvcmRlci13aWR0aDogMXB4O1xuXG4kbmd4LWlucHV0LWNvbG9yLW9uSG92ZXI6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDtcbiRuZ3gtaW5wdXQtY29sb3Itb25BY3RpdmUtLWRhcms6ICR4cG8tYmxhY2s7XG4kbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1saWdodDogJHhwby13aGl0ZTtcbiRuZ3gtaW5wdXQtY29sb3ItYm9yZGVyOiAkeHBvLWdyZXktLTMwMDtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWRhcms6ICR4cG8tZ3JleS0tMzUwO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlLS1saWdodGVyOiAkeHBvLXdoaXRlO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlZC0tbGlnaHQ6ICR4cG8tZ3JleS0tODA7XG5cbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQ6IDM2cHg7XG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0LS1zbWFsbDogMjhweDtcbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQtLWxhcmdlOiA0NnB4O1xuJG5neC1idXR0b24tYW5pbWF0aW9uRHVyYXRpb246IDIwMG1zO1xuXG4kbmd4LWhlYWRlci1oZWlnaHQ6IDQwcHg7XG4vLyBGb3IgdXNlIHdoZW4gYSBob3ZlciBpcyBuZWVkZWQgb24gYSB3aGl0ZSBiYWNrZ3JvdW5kLlxuJG5neC13aGl0ZUFmZm9yZGFuY2Utb25Ib3Zlci1jb2xvcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMjAwO1xuXG4kbmd4LW1lbnUtYmFja2dyb3VuZENvbG9yOiAkeHBvLXdoaXRlO1xuXG4vKlxuKiogPT09PSBTTkFDS0JBUiBERVBSRUNBVEVEIFZBUklBQkxFUyA9PT09XG4qL1xuXG4vKlxuKiogV0FSTklORzogVEhJUyBWQVJJQUJMRVMgV0lMTCBCRSBSRU1PVkVEIFNPT05cbiovXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0tc3VjY2VzczogJHhwby1ncmVlbi0tNDUwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0tZXJyb3I6ICR4cG8tcmVkLS0xNTA7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1pbmZvOiAjMDI4OGQxO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0td2FybjogI2ZiYzAyZDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1zdWNjZXNzOiAkeHBvLWdyZWVuLS02MDA7XG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLWVycm9yOiAkeHBvLXJlZC0tMjAwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLWluZm86ICMwMTU3OWI7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tCYXItbWFyZ2luVG9wOiAzMnB4O1xuXG4vL0JhZGdlXG4kX21hdEJhZGdlQ29udGVudC1iYWNrZ3JvdW5kQ29sb3ItLW5lZ2F0aXZlOiAkeHBvLXJlZC0tNTA7XG4kX21hdEJhZGdlQ29udGVudC1jb2xvci0tbmVnYXRpdmU6ICNkZDJjMDA7XG4kX21hdEJhZGdlQ29udGVudC1iYWNrZ3JvdW5kQ29sb3ItLXBvc2l0aXZlOiAkeHBvLWdyZWVuLS01MDtcblxuJG5neC1tZW51LWJhY2tncm91bmRDb2xvci1vbkhvdmVyOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS01MDtcbi8vIFVzZWQgYXMgYSBzcGFjZXIgZm9yIGZsZXhlZCBjaGlsZHJlblxuLy8gVE9ETzogTW92ZSBhbGwgaW5zdGFuY2VzIHRvIHRoZSB1dGlsaXRpZXMgZGVmaW5pdGlvblxuLmZsZXgtLXN0cmV0Y2gge1xuICBmbGV4OiAxO1xufVxuXG4vLyAtLS0gRGlhbG9nIC0tLVxuJG5neC1kaWFsb2ctaGVhZGVyLWhlaWdodDogNDhweDtcbiRuZ3gtZGlhbG9nLWZvb3Rlci1oZWlnaHQ6IDY0cHg7XG5cbi8vIC0tLSBUcmFuc2l0aW9ucyAtLS1cbiR4cG8tdHJhbnNpdGlvbi0yMDA6IGFsbCAyMDBtcyBlYXNlLW91dDtcblxuLy8gLS0tIENvbnRleHR1YWwgSGVhZGVyIC0tLVxuJG5neC1Db250ZXh0dWFsSGVhZGVyLXNlcGFyYXRvci0tY29sb3I6ICR4cG8tZ3JleS0tMzUwO1xuXG5cbi54cG8tRm9vdGVyIHtcbiAgJF9mb290ZXJMaW5rLW1hcmdpbjogMCAxMnB4O1xuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICYtbmF2YmFyIHtcbiAgICA6bnRoLWNoaWxkKG4pIHtcbiAgICAgIG1hcmdpbjogJF9mb290ZXJMaW5rLW1hcmdpbjtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkeHBvLWNvbnRlbnRTcGFjaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYtYm9sZC10ZXh0IHtcbiAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkZXI7XG4gIH1cbiAgLy8gVE9ETzogZGVmaW5lIGhlcmUgc3R5bGVzIGZvciBzdGlja3kgd2hlbiBmb290ZXIgY29tcG9uZW50IGlzIGRlZmluZWQgdG8gYmUgcGFydCBvZiB0aGUgc2hlbGwgY29tcG9uZW50XG4gICYtLXN0aWNreSB7XG4gICAgYm90dG9tOiAwO1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gIH1cbn1cblxuQG1peGluIHhwby1zcGVjaWFsLXN0YXR1cy1pbmRpY2F0b3JzLXRoZW1lKCR0aGVtZSkge1xuICAueHBvLVNzaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG5cbiAgICAueHBvLUljb24ge1xuICAgICAgd2lkdGg6IGF1dG87XG5cbiAgICAgIC5tYXQtaWNvbiBzdmcge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHhwby10YWItZHJhd2VyLXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC8vIFRPRE9cbiAgLy8gLnhwby1UYWJEcmF3ZXIge1xuXG4gIC8vICAgJi1uYXYsXG4gIC8vICAgJi1idXR0b24gIHtcbiAgLy8gICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gIC8vICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICAvLyAgIH1cbiAgLy8gfVxufVxuXG5AbWl4aW4geHBvLXRyYXktdGhlbWUoJHRoZW1lKSB7XG4gIC5tYXQtZHJhd2VyLnhwby1UcmF5RHJhd2VyIHtcbiAgICAkX3RyYXlEcmF3ZXItLW1pbldpZHRoOiA1MDBweDtcbiAgICAkX3RyYXlEcmF3ZXItLW1heFdpZHRoOiAxMCU7XG4gICAgJF90cmF5RHJhd2VyLS1tYXhXaWR0aEV4dGVuZGVkOiA5MCU7XG4gICAgJF90cmF5RHJhd2VyLXNoYWRvdy0tdk9mZnNldDogM3B4O1xuICAgICRfdHJheURyYXdlci1zaGFkb3ctLWJsdXI6IDlweDtcbiAgICAkX3RyYXlEcmF3ZXItc2hhZG93LS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM1KTtcblxuICAgIG1heC13aWR0aDogJF90cmF5RHJhd2VyLS1tYXhXaWR0aDtcbiAgICBtaW4td2lkdGg6ICRfdHJheURyYXdlci0tbWluV2lkdGg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aWR0aDogJF90cmF5RHJhd2VyLS1tYXhXaWR0aDtcblxuICAgICYueHBvLVRyYXlEcmF3ZXItLWV4dGVuZGVkIHtcbiAgICAgIG1heC13aWR0aDogJF90cmF5RHJhd2VyLS1tYXhXaWR0aEV4dGVuZGVkO1xuICAgICAgd2lkdGg6ICRfdHJheURyYXdlci0tbWF4V2lkdGhFeHRlbmRlZDtcbiAgICB9XG5cbiAgICAmOm5vdCgubWF0LWRyYXdlci1zaWRlKSxcbiAgICAmLm1hdC1kcmF3ZXItc2lkZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkeHBvLWdyZXktLTMwMDtcbiAgICAgIGJveC1zaGFkb3c6IDAgJF90cmF5RHJhd2VyLXNoYWRvdy0tdk9mZnNldCAkX3RyYXlEcmF3ZXItc2hhZG93LS1ibHVyIDAgJF90cmF5RHJhd2VyLXNoYWRvdy0tY29sb3I7XG4gICAgfVxuXG4gICAgLm1hdC1kcmF3ZXItaW5uZXItY29udGFpbmVyIHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tc21hbGwoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLXNtYWxsO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1zbWFsbDtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1tZWRpdW0oKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLW1lZGl1bTtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLW1lZGl1bTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLW1lZGl1bTtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1sYXJnZSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbGFyZ2U7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1sYXJnZTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLWxhcmdlO1xufVxuXG4vLyBSZWd1bGFyIHRleHQgbWl4aW5zXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tc21hbGwoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tbWVkaXVtKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtLWxhcmdlKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLWxhcmdlO1xufVxuXG5cbi8qXG4qKiA9PT09IEJhc2ljIGNvbG9ycyA9PT09XG4qL1xuXG4vKlxuKiogPT09PSBYUE8gQnJhbmQgQ29sb3IgUGFsZXR0ZSA9PT09XG4qL1xuXG4vLyBYUE8gUmVkXG4keHBvLWJyYW5kLXJlZDogI2NjMDAwMDtcbiR4cG8tYnJhbmQtcmVkLS05MDA6ICR4cG8tYnJhbmQtcmVkO1xuJHhwby1icmFuZC1yZWQtLTgwMDogI2U0MjEwZTtcbiR4cG8tYnJhbmQtcmVkLS03MDA6ICNmMzJhMTM7XG4keHBvLWJyYW5kLXJlZC0tNjAwOiAjZmYzMzE3O1xuJHhwby1icmFuZC1yZWQtLTUwMDogI2ZmMzkxYztcbiR4cG8tYnJhbmQtcmVkLS00MDA6ICNmZjVlM2Q7XG4keHBvLWJyYW5kLXJlZC0tMzAwOiAjZmY3ZTYwO1xuJHhwby1icmFuZC1yZWQtLTIwMDogI2ZmYTQ4ZTtcbiR4cG8tYnJhbmQtcmVkLS0xMDA6ICNmZmM4YmE7XG4keHBvLWJyYW5kLXJlZC0tNTA6ICNmY2U4ZTY7XG5cbi8vIFhQTyBCbGFja1xuJHhwby1ibGFjazogIzAwMDAwMDtcbiR4cG8tYnJhbmQtYmxhY2stLTkwMDogJHhwby1ibGFjaztcbiR4cG8tYnJhbmQtYmxhY2stLTgwMDogIzI2MjYyNjtcbiR4cG8tYnJhbmQtYmxhY2stLTcwMDogIzU1NTU1NTtcbiR4cG8tYnJhbmQtYmxhY2stLTYwMDogIzdiN2I3YjtcbiR4cG8tYnJhbmQtYmxhY2stLTUwMDogIzlkOWQ5ZDtcbiR4cG8tYnJhbmQtYmxhY2stLTQwMDogIzlkOWQ5ZDtcbiR4cG8tYnJhbmQtYmxhY2stLTMwMDogI2M0YzRjNDtcbiR4cG8tYnJhbmQtYmxhY2stLTIwMDogI2Q5ZDlkOTtcbiR4cG8tYnJhbmQtYmxhY2stLTEwMDogI2U5ZTllOTtcbiR4cG8tYnJhbmQtYmxhY2stLTUwOiAjZjVmNWY1O1xuXG4vLyBYUE8gRGFyayBHcmV5XG4keHBvLWJyYW5kLWRhcmstZ3JleTogIzQxNGE0YztcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS05MDA6ICMyMjI4MmI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tODAwOiAkeHBvLWJyYW5kLWRhcmstZ3JleTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS03MDA6ICM2MjY4NmM7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNjAwOiAjNzU3ZDgxO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTUwMDogI2EwYTZhYTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS00MDA6ICNiZWM1Yzk7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMzAwOiAjZTBlN2ViO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTIwMDogI2ViZjJmNjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0xMDA6ICNmMGY3ZmI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNTA6ICNmNGZjZmY7XG5cbi8vIFhQTyBNZWRpdW0gR3JleVxuJHhwby1icmFuZC1tZWRpdW0tZ3JleTogIzg0ODQ4NDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTkwMDogIzJlMmUyZTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTgwMDogIzUwNTA1MDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTcwMDogIzcwNzA3MDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTYwMDogJHhwby1icmFuZC1tZWRpdW0tZ3JleTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwMDogI2FmYWZhZjtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTQwMDogI2NkY2RjZDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTMwMDogI2VlZWVlZTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDogI2YzZjNmMztcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTEwMDogI2Y4ZjhmODtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwOiAjZmNmY2ZjO1xuXG4vLyBYUE8gTGlnaHQgR3JleVxuJHhwby1icmFuZC1saWdodC1ncmV5OiAjZGVkZWRlO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS05MDA6ICMxZjFmMWY7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTgwMDogIzNmM2YzZjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNzAwOiAjNWU1ZTVlO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS02MDA6ICM3MjcyNzI7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwMDogIzlhOWE5YTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNDAwOiAjYmFiYWJhO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0zMDA6ICR4cG8tYnJhbmQtbGlnaHQtZ3JleTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMjAwOiAjZWNlY2VjO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0xMDA6ICNmNGY0ZjQ7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwOiAjZjlmOWY5O1xuXG4vKlxuKiogPT09PSBNYWluIENvbG9yIFBhbGV0dGUgPT09PVxuKi9cblxuLy8gQmxhY2sgYW5kIEdyZXlcbiR4cG8tZ3JleS0tOTc1OiAjMjEyMTIxO1xuJHhwby1ncmV5LS05NTA6ICMzMzMzMzM7XG4keHBvLWdyZXktLTkwMDogIzRhNGE0YTtcbiR4cG8tZ3JleS0tNzAwOiAjNmY2ZjZmO1xuJHhwby1ncmV5LS0zNTA6ICNiZGJkYmQ7XG4keHBvLWdyZXktLTMwMDogI2Q4ZDhkODtcbiR4cG8tZ3JleS0tODA6ICNmNmY2ZjY7XG4keHBvLWdyZXktLTI1OiAjZmFmYWZhO1xuXG4keHBvLXdoaXRlOiAjZmZmZmZmO1xuXG4vLyBMaW5rcywgQnV0dG9ucywgVGFic2V0IGFuZCBUYWJwaWxsc1xuJHhwby1ibHVlLS04NTA6ICMwZDQ3YTE7XG4keHBvLWJsdWUtLTgwMDogIzE5NzZkMjtcbiR4cG8tYmx1ZS0tMzUwOiAjMjE5NmYzO1xuXG4vLyBFcnJvciBTdGF0ZVxuJHhwby1yZWQtLTIwMDogI2I3MWMxYztcbiR4cG8tcmVkLS0xNTA6ICNkMzJmMmY7XG4keHBvLXJlZC0tNTA6ICNmY2VlZWI7XG5cbi8vIFN1Y2Nlc3MgU3RhdGVcbiR4cG8tZ3JlZW4tLTYwMDogIzM4OGUzYztcbiR4cG8tZ3JlZW4tLTQ1MDogIzRjYWY1MDtcbiR4cG8tZ3JlZW4tLTUwOiAjZjFmOWYxO1xuXG4vLyBXYXJuaW5nIFN0YXRlXG4keHBvLXllbGxvdy0tMzUwOiAjZmZkNjAwO1xuXG4keHBvLW9yYW5nZS0tMzUwOiAjZmY2ZDAwO1xuXG4vLyBJbmZvIFN0YXRlXG4keHBvLWJsdWUtLTcwMDogIzAwOTFlYTtcblxuLy8gVHJhbnNhY3Rpb25hbCBDZWxsc1xuJHhwby1ncmV5LS0xNTA6ICNlY2VmZjE7XG5cbiR4cG8tYmx1ZUdyZXktLTcwMDogI2NmZDhkYztcblxuLy8gQWNjZW50IENvbG9yc1xuJHhwby1waW5rLS03MDA6ICNjNTExNjI7XG5cbiR4cG8tdGVhbC0tNzAwOiAjMDBiZmE1O1xuXG4keHBvLWJsdWUtLTgyNTogIzMwNGZmZTtcbiR4cG8tYmx1ZS0tMjAwOiAjZTRlZmZhO1xuXG4keHBvLWFjY2VudC1yZWQtLTQwMDogJHhwby1icmFuZC1yZWQtLTQwMDtcbiR4cG8tYWNjZW50LXJlZC0tMTAwOiAkeHBvLWJyYW5kLXJlZC0tMTAwO1xuXG4keHBvLXB1cnBsZS0tNzAwOiAjNjIwMGVhO1xuXG4keHBvLWdyZWVuLS0yMDA6ICNhNGU1OWI7XG5cbiR4cG8teWVsbG93LS0yMDA6ICNmZmY5YzQ7XG5cbi8qXG4qKiA9PT09IERFUFJFQ0FURUQgQ09MT1JTID09PT1cbiovXG5cbi8qXG4qKiBXQVJOSU5HOiBUSElTIFZBUklBQkxFUyBXSUxMIEJFIFJFTU9WRUQgU09PTlxuKi9cbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMTAwOiAjZThmNWZlO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0xNTA6ICNlM2YyZmQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTMwMDogIzBkOTRmNDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tNDAwOiAjMDg2OGFjO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS05MDA6ICMwNTNjNjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tMTAwOiAjZmZmOGU1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTMwMDogI2ZmY2Y0ZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS00MDA6ICNmZmJhMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tNzAwOiAjZmZkNjAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTkwMDogIzRkMzgwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTEwMDogI2M4ZmZkZjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTMwMDogIzFjZTg1NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTM1MDogIzAwYzg1Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTQwMDogIzExYTYzYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTcwMDogIzAwYzg1Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTkwMDogIzBhNjEyMjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNTA6ICNmYmZiZmI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTYwOiAjZmFmYWZhO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMDA6ICNmM2YzZjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTIwMDogI2U2ZTZlNjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMjUwOiAjZGRkZGRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS00MDA6ICM5YjliOWI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTYwMDogIzc1NzU3NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjUwOiAjODU4NTg1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS03NTA6ICM1NzU3NTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTkxNTogIzQzNDk0ZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tOTMwOiAjNDI0MjQyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMDAwOiAjMTcxNzE3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMTAwOiAjMjEyMTIxO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTEwMDogI2ZmZWVlZTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0yNTA6ICNkZDJjMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMzAwOiAjZmYyMjIyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTQwMDogI2Q1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS02MDA6ICNjYzAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNzAwOiAjZDMyZjJmO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTkwMDogIzU1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS0xMDA6ICNmZmRmY2E7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tMzAwOiAjZmY5OTU3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTQwMDogI2ZmNjQwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS05MDA6ICM4YjM3MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWZvbnRDb2xvci0tbGluazogIzA4NjhhYztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmFja2dyb3VuZENvbG9yLS1ib2R5OiAjZjNmM2YzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0tZXJyb3I6ICNkNTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1zdWNjZXNzOiAjMTFhNjNiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0td2FybjogI2ZmYmEwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLWluZm86ICM0YTRhNGE7XG5cbi8qXG4qKiA9PT09IENPTE9SUyBBUFBMSUVEID09PT1cbiovXG4keHBvLWZvbnRDb2xvci0tcHJpbWFyeTogJHhwby1ncmV5LS05MDA7XG5cbi8qXG4qKiA9PT09IFR5cG9ncmFwaHkgPT09PVxuKi9cbi8vIFB1dHRpbmcgc2l6ZXMgaW4gbWFwcyB0byBhbGxvdyBkeW5hbWljIHNpemluZyBmb3IgZXh0ZXJuYWxcbi8vIFJvb3QgZm9udC1zaXplKHMpIGFsd2F5cyBpbiBweFxuJHhwby1mb250U2l6ZS0tcm9vdDogMTRweDtcbiR4cG8tZm9udFNpemUtLXNtYWxsOiAwLjg3NXJlbTsgLy8xMnB4XG4keHBvLWZvbnRTaXplLS1tZWRpdW06IDFyZW07IC8vMTRweFxuJHhwby1mb250U2l6ZS0tbGFyZ2U6IDEuMTQzcmVtOyAvLzE2cHhcbiR4cG8tZm9udFNpemUtLWV4dHJhTGFyZ2U6IDEuMjg1cmVtOyAvLzE4cHhcbiR4cG8tZm9udFNpemUtLXh4bGFyZ2U6IDEuNzE0cmVtOyAvLzI0cHhcblxuJHhwby1oZWFkZXItZm9udFNpemUtLXhzbWFsbDogMXJlbTsgLy8xNHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tc21hbGw6IDEuMTQzcmVtOyAvLzE2cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1tZWRpdW06IDEuMjg1cmVtOyAvLzE4cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1sYXJnZTogMS40MjhyZW07IC8vMjBweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXhsYXJnZTogMS41NzFyZW07IC8vMjJweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXh4bGFyZ2U6IDEuODU3cmVtOyAvLzI2cHhcblxuJHhwby1mb250RmFtaWx5LS1wcmltYXJ5OiAnUm9ib3RvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XG4keHBvLWZvbnRGYW1pbHktLXJvYm90b1dpZGVCbGFjazogJ1JvYm90byBXaWRlIEJsYWNrJywgJ1JvYm90bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXG4keHBvLWZvbnRXZWlnaHQtLWxpZ2h0OiAzMDA7XG4keHBvLWZvbnRXZWlnaHQtLW5vcm1hbDogNDAwO1xuJHhwby1mb250V2VpZ2h0LS1tZWRpdW06IDUwMDsgLy8gREVQUkVDQVRFRCB8IGRvIG5vdCBkZWxldGUgc2luY2UgaXQgaXMgc3RpbGwgYmVpbmcgdXNlZCBpbiBzb21lIHByb2plY3RzXG4keHBvLWZvbnRXZWlnaHQtLWJvbGQ6IDUwMDtcbiR4cG8tZm9udFdlaWdodC0tZXh0cmFCb2xkOiA2MDA7XG4keHBvLWZvbnRXZWlnaHQtLWJvbGRlcjogNzAwO1xuXG4keHBvLWxpbmVIZWlnaHQtLXhsOiAyLjI4NnJlbTsgLy8gMzJweFxuJHhwby1saW5lSGVpZ2h0LS1sZzogMS43MTRyZW07IC8vIDI0cHhcbiR4cG8tbGluZUhlaWdodC0tbWQ6IDEuNTcxcmVtOyAvLyAyMnB4XG4keHBvLWxpbmVIZWlnaHQtLXNtOiAxLjQyOXJlbTsgLy8gMjBweFxuXG4keHBvLWxpbmVIZWlnaHQtLWJhc2U6IDI0cHg7IC8vIGZvciBtZWRpdW0gYW5kIGxhcmdlIGZvbnQgc2l6ZVxuJHhwby1saW5lSGVpZ2h0LS1tZWRpdW06IDE4cHg7IC8vIGZvciBtZWRpdW0gZm9udCBzaXplc1xuJHhwby1saW5lSGVpZ2h0LS1zbWFsbDogMTZweDsgLy8gZm9yIHNtYWxsIGZvbnQgc2l6ZVxuXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1zbWFsbDogMS4xNDM7IC8vIERFUFJFQ0FURURcbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLW1lZGl1bTogMS4xNDM7IC8vIERFUFJFQ0FURURcbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLWxhcmdlOiAxLjI4NjsgLy8gREVQUkVDQVRFRFxuXG4keHBvLWxldHRlclNwYWNpbmctLWJhc2U6IDAuMnB4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tc21hbGw6IDAuM3B4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbWVkaXVtOiAwLjMzcHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1sYXJnZTogMC4zOHB4O1xuXG4vLyA9PT09IExheW91dCA9PT09XG4keHBvLWNvbnRlbnRTcGFjaW5nOiAxNnB4O1xuXG4vLyBCcmVha3BvaW50c1xuJHhwby1icmVha3BvaW50LS1zbWFsbC14czogNDgwcHg7XG4keHBvLWJyZWFrcG9pbnQtLXNtYWxsOiA2MDBweDtcbiR4cG8tYnJlYWtwb2ludC0tbWVkaXVtOiA3NjhweDtcbiR4cG8tYnJlYWtwb2ludC0tbGFyZ2U6IDEwMjVweDtcbiR4cG8tYnJlYWtwb2ludC0teExhcmdlOiAxNDQwcHg7XG5cbiR4cG8tc2VsZWN0LWJhY2tncm91bmRDb2xvci1vcHRpb25PbkhvdmVyOiAkeHBvLWJsdWUtLTIwMDtcblxuLy8gLS0gTkdYLVVJIFNwZWNpZmljIC0tXG4kbmd4LWZvb3Rlci1oZWlnaHQ6IDQycHg7XG4kbmd4LXRhYi1oZWFkZXItaGVpZ2h0OiA0MHB4O1xuJG5neC10YWJsZS1yb3ctaGVpZ2h0OiAzMHB4O1xuXG4kbmd4LWljb24tc2l6ZTogMjRweDsgLy8gVE9ETzogRGVwcmVjYXRlIHRoaXMgdmFyaWFibGVcbiR4cG8taWNvbi1zaXplLS1zdGFuZGFyZDogMjBweDtcbiR4cG8taWNvbi1zaXplLS1zbWFsbDogMThweDtcbiR4cG8taWNvbi1zaXplLS1sYXJnZTogMjRweDtcblxuJG5neC10aGVCbGFja1JvYm90bzogOTAwO1xuXG4keHBvLWlucHV0LWhlaWdodC0tZGVmYXVsdDogMzBweDtcbiR4cG8taW5wdXQtaGVpZ2h0LS10d29MaW5lczogNDVweDtcblxuJG5neC1pbnB1dC1ib3JkZXItd2lkdGg6IDFweDtcblxuJG5neC1pbnB1dC1jb2xvci1vbkhvdmVyOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA7XG4kbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1kYXJrOiAkeHBvLWJsYWNrO1xuJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tbGlnaHQ6ICR4cG8td2hpdGU7XG4kbmd4LWlucHV0LWNvbG9yLWJvcmRlcjogJHhwby1ncmV5LS0zMDA7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1kYXJrOiAkeHBvLWdyZXktLTM1MDtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZS0tbGlnaHRlcjogJHhwby13aGl0ZTtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWxpZ2h0OiAkeHBvLWdyZXktLTgwO1xuXG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0OiAzNnB4O1xuJG5neC1idXR0b24tbGluZUhlaWdodC0tc21hbGw6IDI4cHg7XG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0LS1sYXJnZTogNDZweDtcbiRuZ3gtYnV0dG9uLWFuaW1hdGlvbkR1cmF0aW9uOiAyMDBtcztcblxuJG5neC1oZWFkZXItaGVpZ2h0OiA0MHB4O1xuLy8gRm9yIHVzZSB3aGVuIGEgaG92ZXIgaXMgbmVlZGVkIG9uIGEgd2hpdGUgYmFja2dyb3VuZC5cbiRuZ3gtd2hpdGVBZmZvcmRhbmNlLW9uSG92ZXItY29sb3I6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDtcblxuJG5neC1tZW51LWJhY2tncm91bmRDb2xvcjogJHhwby13aGl0ZTtcblxuLypcbioqID09PT0gU05BQ0tCQVIgREVQUkVDQVRFRCBWQVJJQUJMRVMgPT09PVxuKi9cblxuLypcbioqIFdBUk5JTkc6IFRISVMgVkFSSUFCTEVTIFdJTEwgQkUgUkVNT1ZFRCBTT09OXG4qL1xuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLXN1Y2Nlc3M6ICR4cG8tZ3JlZW4tLTQ1MDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLWVycm9yOiAkeHBvLXJlZC0tMTUwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0taW5mbzogIzAyODhkMTtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLXdhcm46ICNmYmMwMmQ7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0tc3VjY2VzczogJHhwby1ncmVlbi0tNjAwO1xuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1lcnJvcjogJHhwby1yZWQtLTIwMDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1pbmZvOiAjMDE1NzliO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrQmFyLW1hcmdpblRvcDogMzJweDtcblxuLy9CYWRnZVxuJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1uZWdhdGl2ZTogJHhwby1yZWQtLTUwO1xuJF9tYXRCYWRnZUNvbnRlbnQtY29sb3ItLW5lZ2F0aXZlOiAjZGQyYzAwO1xuJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1wb3NpdGl2ZTogJHhwby1ncmVlbi0tNTA7XG5cbiRuZ3gtbWVudS1iYWNrZ3JvdW5kQ29sb3Itb25Ib3ZlcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTA7XG4vLyBVc2VkIGFzIGEgc3BhY2VyIGZvciBmbGV4ZWQgY2hpbGRyZW5cbi8vIFRPRE86IE1vdmUgYWxsIGluc3RhbmNlcyB0byB0aGUgdXRpbGl0aWVzIGRlZmluaXRpb25cbi5mbGV4LS1zdHJldGNoIHtcbiAgZmxleDogMTtcbn1cblxuLy8gLS0tIERpYWxvZyAtLS1cbiRuZ3gtZGlhbG9nLWhlYWRlci1oZWlnaHQ6IDQ4cHg7XG4kbmd4LWRpYWxvZy1mb290ZXItaGVpZ2h0OiA2NHB4O1xuXG4vLyAtLS0gVHJhbnNpdGlvbnMgLS0tXG4keHBvLXRyYW5zaXRpb24tMjAwOiBhbGwgMjAwbXMgZWFzZS1vdXQ7XG5cbi8vIC0tLSBDb250ZXh0dWFsIEhlYWRlciAtLS1cbiRuZ3gtQ29udGV4dHVhbEhlYWRlci1zZXBhcmF0b3ItLWNvbG9yOiAkeHBvLWdyZXktLTM1MDtcblxuXG4vLy9cbi8vIE92ZXJyaWRlcyBmb3IgdGhlIHRvb2x0aXBcbi8vL1xuXG4keHBvLXRvb2x0aXAtYXJyb3ctbWFyZ2luOiAxOHB4O1xuJHhwby10b29sdGlwLWFycm93LXdpZHRoOiAxMHB4O1xuJHhwby10b29sdGlwLWFycm93LWhlaWdodDogMTBweDtcblxuQG1peGluIHhwby10b29sdGlwLXRoZW1lKCR0aGVtZSkge1xuICAuY2RrLW92ZXJsYXktY29udGFpbmVyIHtcbiAgICAubWF0LXRvb2x0aXAtcGFuZWwge1xuICAgICAgLm1hdC10b29sdGlwIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHhwby1ncmV5LS0xMTAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHhwby13aGl0ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG4gICAgICAgIC8vIG5lZWQgdG8gdXNlIHNhbWUgZm9udC1zaXplIGZvciBsaW5lLWhlaWdodFxuICAgICAgICAvLyB0byBrZWVwIHRoZSBzcGFjZXMgYmV0d2VlbiB0ZXh0IGFuZCBib3ggYm9yZGVyIGFzIHRoZXkgYXJlIGluIHRoZSB2aXN1YWwgc3BlY3NcbiAgICAgICAgbGluZS1oZWlnaHQ6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIHBhZGRpbmc6ICR4cG8tY29udGVudFNwYWNpbmc7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cblxuICAgICAgLy9cbiAgICAgIC8vIFNlbGVjdG9ycyB0byBmaW5kIHRoZSBlbGVtZW50IHRoYXQgaXMgcG9zaXRpb25lZCBcImFib3ZlXCIsIFwiYmVsb3dcIiwgXCJiZWZvcmVcIiwgXCJhZnRlclwiLCBcInJpZ2h0XCIgb3IgXCJsZWZ0XCJcbiAgICAgIC8vIFRoaXMgaXMgYSBjb21iaW5hdGlvbiBiZXR3ZWVuIHRoZSAubWF0LXRvb2x0aXAtcGFuZWwgYW5kIC5tYXQtdG9vbHRpcCBpbmxpbmUgc3R5bGVcbiAgICAgIC8vXG5cbiAgICAgIC8vIFRoaXMgc2VsZWN0b3IgbGV0IHVzIGZpbmQgdGhlIHBvc2l0aW9uIFwiYWJvdmVcIlxuICAgICAgJltzdHlsZSo9J2JvdHRvbSddW3N0eWxlKj0nbGVmdCddIHtcbiAgICAgICAgLy8gU2VsZWN0b3IgdG8gZmluZCB0aGUgZWxlbWVudCBwb3NpdGlvbmVkOiBcImFib3ZlXCJcbiAgICAgICAgLm1hdC10b29sdGlwW3N0eWxlKj0nY2VudGVyJ11bc3R5bGUqPSdib3R0b20nXSB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHhwby10b29sdGlwLWFycm93LW1hcmdpbjtcblxuICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogJHhwby10b29sdGlwLWFycm93LXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkeHBvLXRvb2x0aXAtYXJyb3ctd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkeHBvLXRvb2x0aXAtYXJyb3ctaGVpZ2h0IHNvbGlkICR4cG8tZ3JleS0tMTEwMDtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFRoaXMgc2VsZWN0b3IgbGV0IHVzIGZpbmQgdGhlIHBvc2l0aW9ucyBcImJlbG93XCIsIFwiYWZ0ZXJcIiwgXCJyaWdodFwiXG4gICAgICAmW3N0eWxlKj0ndG9wJ11bc3R5bGUqPSdsZWZ0J10ge1xuICAgICAgICAvLyBTZWxlY3RvciB0byBmaW5kIHRoZSBlbGVtZW50IHBvc2l0aW9uZWQ6IFwiYmVsb3dcIlxuICAgICAgICAubWF0LXRvb2x0aXBbc3R5bGUqPSdjZW50ZXInXVtzdHlsZSo9J3RvcCddIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAkeHBvLXRvb2x0aXAtYXJyb3ctbWFyZ2luO1xuXG4gICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICR4cG8tdG9vbHRpcC1hcnJvdy1oZWlnaHQgc29saWQgJHhwby1ncmV5LS0xMTAwO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6ICR4cG8tdG9vbHRpcC1hcnJvdy13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHhwby10b29sdGlwLWFycm93LXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgICAgIGJvdHRvbTogMTAwJTtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gLy8gU2VsZWN0b3IgdG8gZmluZCB0aGUgZWxlbWVudCBwb3NpdGlvbmVkOiAgXCJhZnRlclwiLCBcInJpZ2h0XCJcbiAgICAgICAgLm1hdC10b29sdGlwW3N0eWxlKj0nY2VudGVyJ11bc3R5bGUqPSdsZWZ0J10ge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkeHBvLXRvb2x0aXAtYXJyb3ctbWFyZ2luO1xuXG4gICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICR4cG8tdG9vbHRpcC1hcnJvdy13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAkeHBvLXRvb2x0aXAtYXJyb3ctaGVpZ2h0IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkeHBvLXRvb2x0aXAtYXJyb3ctaGVpZ2h0IHNvbGlkICR4cG8tZ3JleS0tMTEwMDtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICR4cG8tdG9vbHRpcC1hcnJvdy13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyAvLyBTZWxlY3RvciB0byBmaW5kIHRoZSBlbGVtZW50IHBvc2l0aW9uZWQ6IFwiYmVmb3JlXCIsIFwibGVmdFwiXG4gICAgICAmW3N0eWxlKj0ndG9wJ11bc3R5bGUqPSdyaWdodCddIHtcbiAgICAgICAgLy9wb3NpdGlvbiBiZWZvcmUsIGxlZnRcbiAgICAgICAgLm1hdC10b29sdGlwW3N0eWxlKj0nY2VudGVyJ11bc3R5bGUqPSdyaWdodCddIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICR4cG8tdG9vbHRpcC1hcnJvdy1tYXJnaW47XG5cbiAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkeHBvLXRvb2x0aXAtYXJyb3ctd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogJHhwby10b29sdGlwLWFycm93LWhlaWdodCBzb2xpZCAkeHBvLWdyZXktLTExMDA7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICR4cG8tdG9vbHRpcC1hcnJvdy1oZWlnaHQgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkeHBvLXRvb2x0aXAtYXJyb3ctd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8vIENyZWF0ZSBhIHRoZW1lLlxuQG1peGluIHhwby1tYXRlcmlhbC1pbnRlcm5hbC10aGVtZSgkdGhlbWUpIHtcbiAgQGluY2x1ZGUgeHBvLW1hdC1jb3JlLXRoZW1lKCR0aGVtZSk7XG5cbiAgQGluY2x1ZGUgeHBvLWNhcmQtdGhlbWUoJHRoZW1lKTtcblxuICBAaW5jbHVkZSB4cG8tYnV0dG9uLXRoZW1lKCR0aGVtZSwgbmd4LWJ1dHRvbkNvbmZpZygkYWNjZW50LWhvdmVyLWNvbG9yOiAkeHBvLWdyZXktLTQwMCwgJGhvdmVyLWNvbG9yOiAkeHBvLWdyZXktLTQwMCwgJHByaW1hcnktaG92ZXItY29sb3I6ICR4cG8tZ3JleS0tNDAwKSk7XG4gIEBpbmNsdWRlIHhwby1hcHBsaWNhdGlvblN3aXRjaGVyLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby1hdXRvY29tcGxldGUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLWJhZGdlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby1idXR0b24tdG9nZ2xlLWdyb3VwLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby1jaGVja2JveC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tY2hpcHMtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLWRhdGVQaWNrZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLWRhdGUtcmFuZ2UtcGlja2VyLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby1kaWFsb2ctdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLWV4cGFuc2lvbi1wYW5lbC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tZm9ybS1maWVsZC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8taW5wdXQtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLWxpbmstdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLW1lbnUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLXNuYWNrLWJhci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tdGFibGUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLXRhYnMtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLXJhZGlvLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby1zZWxlY3QtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLXNsaWRlLXRvZ2dsZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tc3BlY2lhbC1zdGF0dXMtaW5kaWNhdG9ycy10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tdHJheS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tdG9vbHRpcC10aGVtZSgkdGhlbWUpO1xuXG4gIC8vIFhwbyBDb21wb25lbnQgdGhlbWVzXG4gIEBpbmNsdWRlIHhwby1kb3dubG9hZC1idXR0b24tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLWhlYWRlci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tdGFiLWRyYXdlci10aGVtZSgkdGhlbWUpO1xuXG4gIC8vIE1hdGVyaWFsIHRoZW1lcyB0aGF0IGRvbnQgbmVlZCBvdmVycmlkZXMgc2luY2UgdGhleSBtYXRjaCBvdXIgc3R5bGUgYWxyZWFkeVxuICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3MtYmFyLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1wcm9ncmVzcy1zcGlubmVyLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1zaWRlbmF2LXRoZW1lKCR0aGVtZSk7XG5cbiAgLy8gVE9ETzogcmVtb3ZlIHdoZW4geHBvLXRoZW1lZFxuICBAaW5jbHVkZSBtYXQtdG9vbHRpcC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtYmFkZ2UtdGhlbWUoJHRoZW1lKTtcblxuICBtYXQtZGlhbG9nLWNvbnRhaW5lci5tYXQtZGlhbG9nLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG4vLyBUT0RPOiBpbnRyb2R1Y2Ugb3VyIGdyZXlzP1xuJGRhcmstcHJpbWFyeS10ZXh0OiByZ2JhKGJsYWNrLCAwLjg3KTtcbiRkYXJrLXNlY29uZGFyeS10ZXh0OiByZ2JhKGJsYWNrLCAwLjU0KTtcbiRkYXJrLWRpc2FibGVkLXRleHQ6IHJnYmEoYmxhY2ssIDAuMzgpO1xuJGRhcmstZGl2aWRlcnM6IHJnYmEoYmxhY2ssIDAuMTIpO1xuJGRhcmstZm9jdXNlZDogcmdiYShibGFjaywgMC4xMik7XG5cbiRsaWdodC1wcmltYXJ5LXRleHQ6IHdoaXRlO1xuJGxpZ2h0LXNlY29uZGFyeS10ZXh0OiByZ2JhKHdoaXRlLCAwLjcpO1xuJGxpZ2h0LWRpc2FibGVkLXRleHQ6IHJnYmEod2hpdGUsIDAuNSk7XG4kbGlnaHQtZGl2aWRlcnM6IHJnYmEod2hpdGUsIDAuMTIpO1xuJGxpZ2h0LWZvY3VzZWQ6IHJnYmEod2hpdGUsIDAuMTIpO1xuXG4keHBvLWdyZXktLTk1MDogIzMzMzMzMzsgLy8gVE9ETzogdGhpcyBpcyB3aGF0IGlzIHNwZWMnZCBvdXQgZm9yIGRhcmsgY2FyZCBiYWNrZ3JvdW5kcywgYnV0IGl0cyBub3QgaW4gb3VyIHZhciBsaXN0XG5cbiR4cG8tYmx1ZS1wYWxldHRlOiAoXG4gIDEwMDogJHhwby1ibHVlLS0xMDAsXG4gIDMwMDogJHhwby1ibHVlLS0xMDAsXG4gIDQwMDogJHhwby1ibHVlLS00MDAsXG4gIDkwMDogJHhwby1ibHVlLS05MDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgMTAwOiAkeHBvLXdoaXRlLFxuICAgIDMwMDogJHhwby13aGl0ZSxcbiAgICA0MDA6ICR4cG8td2hpdGUsXG4gICAgOTAwOiAkeHBvLXdoaXRlLFxuICApLFxuKTtcblxuJHhwby1ncmV5LXBhbGV0dGU6IChcbiAgMTAwOiAkeHBvLWdyZXktLTEwMCxcbiAgMzAwOiAkeHBvLWdyZXktLTMwMCxcbiAgNDAwOiAkeHBvLWdyZXktLTQwMCxcbiAgOTAwOiAkeHBvLWdyZXktLTkwMCxcbiAgY29udHJhc3Q6IChcbiAgICAxMDA6ICR4cG8tZ3JleS0tOTAwLFxuICAgIDMwMDogJHhwby1ncmV5LS05MDAsXG4gICAgNDAwOiAkeHBvLWdyZXktLTkwMCxcbiAgICA5MDA6ICR4cG8td2hpdGUsXG4gICksXG4pO1xuXG4keHBvLXJlZC1wYWxldHRlOiAoXG4gIDEwMDogJHhwby1yZWQtLTEwMCxcbiAgMzAwOiAkeHBvLXJlZC0tMzAwLFxuICA0MDA6ICR4cG8tcmVkLS00MDAsXG4gIDkwMDogJHhwby1yZWQtLTkwMCxcbiAgY29udHJhc3Q6IChcbiAgICAxMDA6ICR4cG8td2hpdGUsXG4gICAgMzAwOiAkeHBvLXdoaXRlLFxuICAgIDQwMDogJHhwby13aGl0ZSxcbiAgICA5MDA6ICR4cG8td2hpdGUsXG4gICksXG4pO1xuXG4vLyBCYWNrZ3JvdW5kIHBhbGV0dGUgZm9yIGxpZ2h0IHRoZW1lcy5cbiR4cG8tbGlnaHQtdGhlbWUtYmFja2dyb3VuZDogKFxuICBzdGF0dXMtYmFyOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMzAwKSxcbiAgYXBwLWJhcjogJHhwby13aGl0ZSxcbiAgYmFja2dyb3VuZDogJHhwby1iYWNrZ3JvdW5kQ29sb3ItLWJvZHksXG4gIGhvdmVyOiByZ2JhKGJsYWNrLCAwLjA0KSxcbiAgY2FyZDogd2hpdGUsXG4gIGRpYWxvZzogd2hpdGUsXG4gIGRpc2FibGVkLWJ1dHRvbjogcmdiYShibGFjaywgMC4xMiksXG4gIHJhaXNlZC1idXR0b246IHdoaXRlLFxuICBmb2N1c2VkLWJ1dHRvbjogJGRhcmstZm9jdXNlZCxcbiAgc2VsZWN0ZWQtYnV0dG9uOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMzAwKSxcbiAgc2VsZWN0ZWQtZGlzYWJsZWQtYnV0dG9uOiBtYXBfZ2V0KCRtYXQtZ3JleSwgNDAwKSxcbiAgZGlzYWJsZWQtYnV0dG9uLXRvZ2dsZTogbWFwX2dldCgkbWF0LWdyZXksIDIwMCksXG4gIHVuc2VsZWN0ZWQtY2hpcDogbWFwX2dldCgkbWF0LWdyZXksIDMwMCksXG4gIGRpc2FibGVkLWxpc3Qtb3B0aW9uOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMjAwKSxcbik7XG5cbi8vIEJhY2tncm91bmQgcGFsZXR0ZSBmb3IgZGFyayB0aGVtZXMuXG4keHBvLWRhcmstdGhlbWUtYmFja2dyb3VuZDogKFxuICBzdGF0dXMtYmFyOiBibGFjayxcbiAgYXBwLWJhcjogJHhwby1ncmV5LS05NTAsXG4gIGJhY2tncm91bmQ6ICR4cG8tZ3JleS0tMTAwMCxcbiAgaG92ZXI6IHJnYmEod2hpdGUsIDAuMDQpLFxuICBjYXJkOiAkeHBvLWdyZXktLTk1MCxcbiAgZGlhbG9nOiAkeHBvLWdyZXktLTk1MCxcbiAgZGlzYWJsZWQtYnV0dG9uOiByZ2JhKHdoaXRlLCAwLjEyKSxcbiAgcmFpc2VkLWJ1dHRvbjogJHhwby1ncmV5LS05NTAsXG4gIGZvY3VzZWQtYnV0dG9uOiAkbGlnaHQtZm9jdXNlZCxcbiAgc2VsZWN0ZWQtYnV0dG9uOiBtYXBfZ2V0KCRtYXQtZ3JleSwgOTAwKSxcbiAgc2VsZWN0ZWQtZGlzYWJsZWQtYnV0dG9uOiAkeHBvLWdyZXktLTk1MCxcbiAgZGlzYWJsZWQtYnV0dG9uLXRvZ2dsZTogYmxhY2ssXG4gIHVuc2VsZWN0ZWQtY2hpcDogbWFwX2dldCgkbWF0LWdyZXksIDcwMCksXG4gIGRpc2FibGVkLWxpc3Qtb3B0aW9uOiBibGFjayxcbik7XG5cbi8vIEZvcmVncm91bmQgcGFsZXR0ZSBmb3IgbGlnaHQgdGhlbWVzLlxuJHhwby1saWdodC10aGVtZS1mb3JlZ3JvdW5kOiAoXG4gIGJhc2U6IGJsYWNrLFxuICBkaXZpZGVyOiAkZGFyay1kaXZpZGVycyxcbiAgZGl2aWRlcnM6ICRkYXJrLWRpdmlkZXJzLFxuICBkaXNhYmxlZDogJGRhcmstZGlzYWJsZWQtdGV4dCxcbiAgZGlzYWJsZWQtYnV0dG9uOiByZ2JhKGJsYWNrLCAwLjI2KSxcbiAgZGlzYWJsZWQtdGV4dDogJGRhcmstZGlzYWJsZWQtdGV4dCxcbiAgZWxldmF0aW9uOiBibGFjayxcbiAgaGludC10ZXh0OiAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBzZWNvbmRhcnktdGV4dDogJGRhcmstc2Vjb25kYXJ5LXRleHQsXG4gIGljb246IHJnYmEoYmxhY2ssIDAuNTQpLFxuICBpY29uczogcmdiYShibGFjaywgMC41NCksXG4gIHRleHQ6IHJnYmEoYmxhY2ssIDAuODcpLFxuICBzbGlkZXItbWluOiByZ2JhKGJsYWNrLCAwLjg3KSxcbiAgc2xpZGVyLW9mZjogcmdiYShibGFjaywgMC4yNiksXG4gIHNsaWRlci1vZmYtYWN0aXZlOiByZ2JhKGJsYWNrLCAwLjM4KSxcbik7XG5cbi8vIEZvcmVncm91bmQgcGFsZXR0ZSBmb3IgZGFyayB0aGVtZXMuXG4keHBvLWRhcmstdGhlbWUtZm9yZWdyb3VuZDogKFxuICBiYXNlOiB3aGl0ZSxcbiAgZGl2aWRlcjogJGxpZ2h0LWRpdmlkZXJzLFxuICBkaXZpZGVyczogJGxpZ2h0LWRpdmlkZXJzLFxuICBkaXNhYmxlZDogJGxpZ2h0LWRpc2FibGVkLXRleHQsXG4gIGRpc2FibGVkLWJ1dHRvbjogcmdiYSh3aGl0ZSwgMC4zKSxcbiAgZGlzYWJsZWQtdGV4dDogJGxpZ2h0LWRpc2FibGVkLXRleHQsXG4gIGVsZXZhdGlvbjogYmxhY2ssXG4gIGhpbnQtdGV4dDogJGxpZ2h0LWRpc2FibGVkLXRleHQsXG4gIHNlY29uZGFyeS10ZXh0OiAkbGlnaHQtc2Vjb25kYXJ5LXRleHQsXG4gIGljb246IHdoaXRlLFxuICBpY29uczogd2hpdGUsXG4gIHRleHQ6IHdoaXRlLFxuICBzbGlkZXItbWluOiB3aGl0ZSxcbiAgc2xpZGVyLW9mZjogcmdiYSh3aGl0ZSwgMC4zKSxcbiAgc2xpZGVyLW9mZi1hY3RpdmU6IHJnYmEod2hpdGUsIDAuMyksXG4pO1xuXG4vLyBUT0RPOiBpbnRyb2R1Y2Ugb3VyIGdyZXlzP1xuJGRhcmstcHJpbWFyeS10ZXh0OiByZ2JhKGJsYWNrLCAwLjg3KTtcbiRkYXJrLXNlY29uZGFyeS10ZXh0OiByZ2JhKGJsYWNrLCAwLjU0KTtcbiRkYXJrLWRpc2FibGVkLXRleHQ6IHJnYmEoYmxhY2ssIDAuMzgpO1xuJGRhcmstZGl2aWRlcnM6IHJnYmEoYmxhY2ssIDAuMTIpO1xuJGRhcmstZm9jdXNlZDogcmdiYShibGFjaywgMC4xMik7XG5cbiRsaWdodC1wcmltYXJ5LXRleHQ6IHdoaXRlO1xuJGxpZ2h0LXNlY29uZGFyeS10ZXh0OiByZ2JhKHdoaXRlLCAwLjcpO1xuJGxpZ2h0LWRpc2FibGVkLXRleHQ6IHJnYmEod2hpdGUsIDAuNSk7XG4kbGlnaHQtZGl2aWRlcnM6IHJnYmEod2hpdGUsIDAuMTIpO1xuJGxpZ2h0LWZvY3VzZWQ6IHJnYmEod2hpdGUsIDAuMTIpO1xuXG4keHBvLWdyZXktLTk1MDogIzMzMzMzMzsgLy8gVE9ETzogdGhpcyBpcyB3aGF0IGlzIHNwZWMnZCBvdXQgZm9yIGRhcmsgY2FyZCBiYWNrZ3JvdW5kcywgYnV0IGl0cyBub3QgaW4gb3VyIHZhciBsaXN0XG5cbiR4cG8tYmx1ZS1wYWxldHRlOiAoXG4gIDEwMDogJHhwby1ibHVlLS0xMDAsXG4gIDMwMDogJHhwby1ibHVlLS0xMDAsXG4gIDQwMDogJHhwby1ibHVlLS00MDAsXG4gIDkwMDogJHhwby1ibHVlLS05MDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgMTAwOiAkeHBvLXdoaXRlLFxuICAgIDMwMDogJHhwby13aGl0ZSxcbiAgICA0MDA6ICR4cG8td2hpdGUsXG4gICAgOTAwOiAkeHBvLXdoaXRlLFxuICApLFxuKTtcblxuJHhwby1ncmV5LXBhbGV0dGU6IChcbiAgMTAwOiAkeHBvLWdyZXktLTEwMCxcbiAgMzAwOiAkeHBvLWdyZXktLTMwMCxcbiAgNDAwOiAkeHBvLWdyZXktLTQwMCxcbiAgOTAwOiAkeHBvLWdyZXktLTkwMCxcbiAgY29udHJhc3Q6IChcbiAgICAxMDA6ICR4cG8tZ3JleS0tOTAwLFxuICAgIDMwMDogJHhwby1ncmV5LS05MDAsXG4gICAgNDAwOiAkeHBvLWdyZXktLTkwMCxcbiAgICA5MDA6ICR4cG8td2hpdGUsXG4gICksXG4pO1xuXG4keHBvLXJlZC1wYWxldHRlOiAoXG4gIDEwMDogJHhwby1yZWQtLTEwMCxcbiAgMzAwOiAkeHBvLXJlZC0tMzAwLFxuICA0MDA6ICR4cG8tcmVkLS00MDAsXG4gIDkwMDogJHhwby1yZWQtLTkwMCxcbiAgY29udHJhc3Q6IChcbiAgICAxMDA6ICR4cG8td2hpdGUsXG4gICAgMzAwOiAkeHBvLXdoaXRlLFxuICAgIDQwMDogJHhwby13aGl0ZSxcbiAgICA5MDA6ICR4cG8td2hpdGUsXG4gICksXG4pO1xuXG4vLyBCYWNrZ3JvdW5kIHBhbGV0dGUgZm9yIGxpZ2h0IHRoZW1lcy5cbiR4cG8tbGlnaHQtdGhlbWUtYmFja2dyb3VuZDogKFxuICBzdGF0dXMtYmFyOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMzAwKSxcbiAgYXBwLWJhcjogJHhwby13aGl0ZSxcbiAgYmFja2dyb3VuZDogJHhwby1iYWNrZ3JvdW5kQ29sb3ItLWJvZHksXG4gIGhvdmVyOiByZ2JhKGJsYWNrLCAwLjA0KSxcbiAgY2FyZDogd2hpdGUsXG4gIGRpYWxvZzogd2hpdGUsXG4gIGRpc2FibGVkLWJ1dHRvbjogcmdiYShibGFjaywgMC4xMiksXG4gIHJhaXNlZC1idXR0b246IHdoaXRlLFxuICBmb2N1c2VkLWJ1dHRvbjogJGRhcmstZm9jdXNlZCxcbiAgc2VsZWN0ZWQtYnV0dG9uOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMzAwKSxcbiAgc2VsZWN0ZWQtZGlzYWJsZWQtYnV0dG9uOiBtYXBfZ2V0KCRtYXQtZ3JleSwgNDAwKSxcbiAgZGlzYWJsZWQtYnV0dG9uLXRvZ2dsZTogbWFwX2dldCgkbWF0LWdyZXksIDIwMCksXG4gIHVuc2VsZWN0ZWQtY2hpcDogbWFwX2dldCgkbWF0LWdyZXksIDMwMCksXG4gIGRpc2FibGVkLWxpc3Qtb3B0aW9uOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMjAwKSxcbik7XG5cbi8vIEJhY2tncm91bmQgcGFsZXR0ZSBmb3IgZGFyayB0aGVtZXMuXG4keHBvLWRhcmstdGhlbWUtYmFja2dyb3VuZDogKFxuICBzdGF0dXMtYmFyOiBibGFjayxcbiAgYXBwLWJhcjogJHhwby1ncmV5LS05NTAsXG4gIGJhY2tncm91bmQ6ICR4cG8tZ3JleS0tMTAwMCxcbiAgaG92ZXI6IHJnYmEod2hpdGUsIDAuMDQpLFxuICBjYXJkOiAkeHBvLWdyZXktLTk1MCxcbiAgZGlhbG9nOiAkeHBvLWdyZXktLTk1MCxcbiAgZGlzYWJsZWQtYnV0dG9uOiByZ2JhKHdoaXRlLCAwLjEyKSxcbiAgcmFpc2VkLWJ1dHRvbjogJHhwby1ncmV5LS05NTAsXG4gIGZvY3VzZWQtYnV0dG9uOiAkbGlnaHQtZm9jdXNlZCxcbiAgc2VsZWN0ZWQtYnV0dG9uOiBtYXBfZ2V0KCRtYXQtZ3JleSwgOTAwKSxcbiAgc2VsZWN0ZWQtZGlzYWJsZWQtYnV0dG9uOiAkeHBvLWdyZXktLTk1MCxcbiAgZGlzYWJsZWQtYnV0dG9uLXRvZ2dsZTogYmxhY2ssXG4gIHVuc2VsZWN0ZWQtY2hpcDogbWFwX2dldCgkbWF0LWdyZXksIDcwMCksXG4gIGRpc2FibGVkLWxpc3Qtb3B0aW9uOiBibGFjayxcbik7XG5cbi8vIEZvcmVncm91bmQgcGFsZXR0ZSBmb3IgbGlnaHQgdGhlbWVzLlxuJHhwby1saWdodC10aGVtZS1mb3JlZ3JvdW5kOiAoXG4gIGJhc2U6IGJsYWNrLFxuICBkaXZpZGVyOiAkZGFyay1kaXZpZGVycyxcbiAgZGl2aWRlcnM6ICRkYXJrLWRpdmlkZXJzLFxuICBkaXNhYmxlZDogJGRhcmstZGlzYWJsZWQtdGV4dCxcbiAgZGlzYWJsZWQtYnV0dG9uOiByZ2JhKGJsYWNrLCAwLjI2KSxcbiAgZGlzYWJsZWQtdGV4dDogJGRhcmstZGlzYWJsZWQtdGV4dCxcbiAgZWxldmF0aW9uOiBibGFjayxcbiAgaGludC10ZXh0OiAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBzZWNvbmRhcnktdGV4dDogJGRhcmstc2Vjb25kYXJ5LXRleHQsXG4gIGljb246IHJnYmEoYmxhY2ssIDAuNTQpLFxuICBpY29uczogcmdiYShibGFjaywgMC41NCksXG4gIHRleHQ6IHJnYmEoYmxhY2ssIDAuODcpLFxuICBzbGlkZXItbWluOiByZ2JhKGJsYWNrLCAwLjg3KSxcbiAgc2xpZGVyLW9mZjogcmdiYShibGFjaywgMC4yNiksXG4gIHNsaWRlci1vZmYtYWN0aXZlOiByZ2JhKGJsYWNrLCAwLjM4KSxcbik7XG5cbi8vIEZvcmVncm91bmQgcGFsZXR0ZSBmb3IgZGFyayB0aGVtZXMuXG4keHBvLWRhcmstdGhlbWUtZm9yZWdyb3VuZDogKFxuICBiYXNlOiB3aGl0ZSxcbiAgZGl2aWRlcjogJGxpZ2h0LWRpdmlkZXJzLFxuICBkaXZpZGVyczogJGxpZ2h0LWRpdmlkZXJzLFxuICBkaXNhYmxlZDogJGxpZ2h0LWRpc2FibGVkLXRleHQsXG4gIGRpc2FibGVkLWJ1dHRvbjogcmdiYSh3aGl0ZSwgMC4zKSxcbiAgZGlzYWJsZWQtdGV4dDogJGxpZ2h0LWRpc2FibGVkLXRleHQsXG4gIGVsZXZhdGlvbjogYmxhY2ssXG4gIGhpbnQtdGV4dDogJGxpZ2h0LWRpc2FibGVkLXRleHQsXG4gIHNlY29uZGFyeS10ZXh0OiAkbGlnaHQtc2Vjb25kYXJ5LXRleHQsXG4gIGljb246IHdoaXRlLFxuICBpY29uczogd2hpdGUsXG4gIHRleHQ6IHdoaXRlLFxuICBzbGlkZXItbWluOiB3aGl0ZSxcbiAgc2xpZGVyLW9mZjogcmdiYSh3aGl0ZSwgMC4zKSxcbiAgc2xpZGVyLW9mZi1hY3RpdmU6IHJnYmEod2hpdGUsIDAuMyksXG4pO1xuXG5cbi8vIENyZWF0ZXMgYSBjb250YWluZXIgb2JqZWN0IGZvciBhIGxpZ2h0IHRoZW1lIHRvIGJlIGdpdmVuIHRvIGluZGl2aWR1YWwgY29tcG9uZW50IHRoZW1lIG1peGlucy5cbkBmdW5jdGlvbiB4cG8tbGlnaHQtdGhlbWUoJHByaW1hcnksICRhY2NlbnQsICR3YXJuKSB7XG4gIEByZXR1cm4gKHByaW1hcnk6ICRwcmltYXJ5LCBhY2NlbnQ6ICRhY2NlbnQsIHdhcm46ICR3YXJuLCBpcy1kYXJrOiBmYWxzZSwgZm9yZWdyb3VuZDogJHhwby1saWdodC10aGVtZS1mb3JlZ3JvdW5kLCBiYWNrZ3JvdW5kOiAkeHBvLWxpZ2h0LXRoZW1lLWJhY2tncm91bmQpO1xufVxuXG4vLyBDcmVhdGVzIGEgY29udGFpbmVyIG9iamVjdCBmb3IgYSBkYXJrIHRoZW1lIHRvIGJlIGdpdmVuIHRvIGluZGl2aWR1YWwgY29tcG9uZW50IHRoZW1lIG1peGlucy5cbkBmdW5jdGlvbiB4cG8tZGFyay10aGVtZSgkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm4pIHtcbiAgQHJldHVybiAocHJpbWFyeTogJHByaW1hcnksIGFjY2VudDogJGFjY2VudCwgd2FybjogJHdhcm4sIGlzLWRhcms6IHRydWUsIGZvcmVncm91bmQ6ICR4cG8tZGFyay10aGVtZS1mb3JlZ3JvdW5kLCBiYWNrZ3JvdW5kOiAkeHBvLWRhcmstdGhlbWUtYmFja2dyb3VuZCk7XG59XG5cblxuLy8gSW5jbHVkZSBub24tdGhlbWUgc3R5bGVzIGZvciBjb3JlLlxuQGluY2x1ZGUgeHBvLW1hdC1jb3JlKCk7XG5cbi8vIERlZmluZSBhIHRoZW1lLlxuJHByaW1hcnk6IG1hdC1wYWxldHRlKCR4cG8tYmx1ZS1wYWxldHRlLCA0MDAsIDMwMCwgOTAwKTtcbiRhY2NlbnQ6IG1hdC1wYWxldHRlKCR4cG8tZ3JleS1wYWxldHRlLCA5MDAsIDQwMCwgOTAwKTtcbiR3YXJuOiBtYXQtcGFsZXR0ZSgkeHBvLXJlZC1wYWxldHRlLCA0MDAsIDMwMCwgOTAwKTtcblxuJHRoZW1lOiB4cG8tbGlnaHQtdGhlbWUoJHByaW1hcnksICRhY2NlbnQsICR3YXJuKTtcblxuLy8gSW5jbHVkZSBhbGwgdGhlbWUgc3R5bGVzIGZvciB0aGUgY29tcG9uZW50cy5cbkBpbmNsdWRlIHhwby1tYXRlcmlhbC1pbnRlcm5hbC10aGVtZSgkdGhlbWUpO1xuXG4vLyBUSElTIElTIEpVU1QgSEVSRSBVTlRJTCBXRSBDQU4gR0VUIFRIRU0gSU4gQVJDXG4vLyBUT0RPOiBBbnl0aGluZyBoZXJlIHNob3VsZCBiZSBiYWNrLXBvcnRlZCB0byBBUkNcbi51LWZsZXgtLWZpbGxTcGFjZSB7XG4gIGZsZXg6IDE7XG59XG5cbi51LWZsZXgtLXNwYWNlQmV0d2VlbiB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbiIsIi8vIEZpbGUgZm9yIHdoaWNoIGFsbCBpbXBvcnRzIGFyZSByZXNvbHZlZCBhbmQgYnVuZGxlZC4gVGhpcyBpcyB0aGUgZW50cnktcG9pbnQgZm9yXG4vLyB0aGUgYEBhbmd1bGFyL21hdGVyaWFsYCB0aGVtaW5nIFNhc3MgYnVuZGxlLiBTZWUgYC8vc3JjL21hdGVyaWFsOnRoZW1pbmdfYnVuZGxlYC5cblxuLy8gSW1wb3J0IGFsbCB0aGUgdGhlbWluZyBmdW5jdGlvbmFsaXR5LlxuLy8gV2Ugd2FudCBvdmVybGF5cyB0byBhbHdheXMgYXBwZWFyIG92ZXIgdXNlciBjb250ZW50LCBzbyBzZXQgYSBiYXNlbGluZVxuLy8gdmVyeSBoaWdoIHotaW5kZXggZm9yIHRoZSBvdmVybGF5IGNvbnRhaW5lciwgd2hpY2ggaXMgd2hlcmUgd2UgY3JlYXRlIHRoZSBuZXdcbi8vIHN0YWNraW5nIGNvbnRleHQgZm9yIGFsbCBvdmVybGF5cy5cbiRjZGstei1pbmRleC1vdmVybGF5LWNvbnRhaW5lcjogMTAwMCAhZGVmYXVsdDtcbiRjZGstei1pbmRleC1vdmVybGF5OiAxMDAwICFkZWZhdWx0O1xuJGNkay16LWluZGV4LW92ZXJsYXktYmFja2Ryb3A6IDEwMDAgIWRlZmF1bHQ7XG5cbi8vIEJhY2tncm91bmQgY29sb3IgZm9yIGFsbCBvZiB0aGUgYmFja2Ryb3BzXG4kY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcC1iYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMzIpICFkZWZhdWx0O1xuXG4vLyBEZWZhdWx0IGJhY2tkcm9wIGFuaW1hdGlvbiBpcyBiYXNlZCBvbiB0aGUgTWF0ZXJpYWwgRGVzaWduIHN3aWZ0LWVhc2Utb3V0LlxuJGJhY2tkcm9wLWFuaW1hdGlvbi1kdXJhdGlvbjogNDAwbXMgIWRlZmF1bHQ7XG4kYmFja2Ryb3AtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSkgIWRlZmF1bHQ7XG5cblxuQG1peGluIGNkay1vdmVybGF5KCkge1xuICAuY2RrLW92ZXJsYXktY29udGFpbmVyLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIge1xuICAgIC8vIERpc2FibGUgZXZlbnRzIGZyb20gYmVpbmcgY2FwdHVyZWQgb24gdGhlIG92ZXJsYXkgY29udGFpbmVyLlxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgLy8gVGhlIGNvbnRhaW5lciBzaG91bGQgYmUgdGhlIHNpemUgb2YgdGhlIHZpZXdwb3J0LlxuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIFRoZSBvdmVybGF5LWNvbnRhaW5lciBpcyBhbiBpbnZpc2libGUgZWxlbWVudCB3aGljaCBjb250YWlucyBhbGwgaW5kaXZpZHVhbCBvdmVybGF5cy5cbiAgLmNkay1vdmVybGF5LWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5LWNvbnRhaW5lcjtcblxuICAgICY6ZW1wdHkge1xuICAgICAgLy8gSGlkZSB0aGUgZWxlbWVudCB3aGVuIGl0IGRvZXNuJ3QgaGF2ZSBhbnkgY2hpbGQgbm9kZXMuIFRoaXMgZG9lc24ndFxuICAgICAgLy8gaW5jbHVkZSBvdmVybGF5cyB0aGF0IGhhdmUgYmVlbiBkZXRhY2hlZCwgcmF0aGVyIHRoYW4gZGlzcG9zZWQuXG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdlIHVzZSBhbiBleHRyYSB3cmFwcGVyIGVsZW1lbnQgaW4gb3JkZXIgdG8gdXNlIG1ha2UgdGhlIG92ZXJsYXkgaXRzZWxmIGEgZmxleCBpdGVtLlxuICAvLyBUaGlzIG1ha2VzIGNlbnRlcmluZyB0aGUgb3ZlcmxheSBlYXN5IHdpdGhvdXQgcnVubmluZyBpbnRvIHRoZSBzdWJwaXhlbCByZW5kZXJpbmdcbiAgLy8gcHJvYmxlbXMgdGllZCB0byB1c2luZyBgdHJhbnNmb3JtYCBhbmQgd2l0aG91dCBpbnRlcmZlcmluZyB3aXRoIHRoZSBvdGhlciBwb3NpdGlvblxuICAvLyBzdHJhdGVnaWVzLlxuICAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5O1xuICB9XG5cbiAgLy8gQSBzaW5nbGUgb3ZlcmxheSBwYW5lLlxuICAuY2RrLW92ZXJsYXktcGFuZSB7XG4gICAgLy8gTm90ZTogaXQncyBpbXBvcnRhbnQgZm9yIHRoaXMgb25lIHRvIHN0YXJ0IG9mZiBgYWJzb2x1dGVgLFxuICAgIC8vIGluIG9yZGVyIGZvciB1cyB0byBiZSBhYmxlIHRvIG1lYXN1cmUgaXQgY29ycmVjdGx5LlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5O1xuXG4gICAgLy8gRm9yIGNvbm5lY3RlZC1wb3NpdGlvbiBvdmVybGF5cywgd2Ugc2V0IGBkaXNwbGF5OiBmbGV4YCBpblxuICAgIC8vIG9yZGVyIHRvIGZvcmNlIGBtYXgtd2lkdGhgIGFuZCBgbWF4LWhlaWdodGAgdG8gdGFrZSBlZmZlY3QuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC5jZGstb3ZlcmxheS1iYWNrZHJvcCB7XG4gICAgLy8gVE9ETyhqZWxib3Vybik6IHJldXNlIHNpZGVuYXYgZnVsbHNjcmVlbiBtaXhpbi5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuXG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXktYmFja2Ryb3A7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRiYWNrZHJvcC1hbmltYXRpb24tZHVyYXRpb24gJGJhY2tkcm9wLWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb247XG4gICAgb3BhY2l0eTogMDtcblxuICAgICYuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyB7XG4gICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAvLyBOb3RlIHRoYXQgd2UgY2FuJ3QgaW1wb3J0IGFuZCB1c2UgdGhlIGBoaWdoLWNvbnRyYXN0YCBtaXhpbiBmcm9tIGBfYTExeS5zY3NzYCwgYmVjYXVzZVxuICAgICAgLy8gdGhpcyBmaWxlIHdpbGwgYmUgY29waWVkIHRvIHRoZSB0b3AtbGV2ZWwgYGNka2AgcGFja2FnZSB3aGVuIHB1dHRpbmcgdG9nZXRoZXIgdGhlIGZpbGVzXG4gICAgICAvLyBmb3IgbnBtLiBBbnkgcmVsYXRpdmUgaW1wb3J0IHBhdGhzIHdlIHVzZSBoZXJlIHdpbGwgYmVjb21lIGludmFsaWQgb25jZSB0aGUgZmlsZSBpcyBjb3BpZWQuXG4gICAgICAuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlICYge1xuICAgICAgICAvLyBJbiBoaWdoIGNvbnRyYXN0IG1vZGUgdGhlIHJnYmEgYmFja2dyb3VuZCB3aWxsIGJlY29tZSBzb2xpZFxuICAgICAgICAvLyBzbyB3ZSBuZWVkIHRvIGZhbGwgYmFjayB0byBtYWtpbmcgaXQgb3BhcXVlIHVzaW5nIGBvcGFjaXR5YC5cbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wIHtcbiAgICBiYWNrZ3JvdW5kOiAkY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcC1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wIHtcbiAgICAvLyBOb3RlOiBhcyBvZiBGaXJlZm94IDU3LCBoYXZpbmcgdGhlIGJhY2tkcm9wIGJlIGBiYWNrZ3JvdW5kOiBub25lYCB3aWxsIHByZXZlbnQgaXQgZnJvbVxuICAgIC8vIGNhcHR1cmluZyB0aGUgdXNlcidzIG1vdXNlIHNjcm9sbCBldmVudHMuIFNpbmNlIHdlIGFsc28gY2FuJ3QgdXNlIHNvbWV0aGluZyBsaWtlXG4gICAgLy8gYHJnYmEoMCwgMCwgMCwgMClgLCB3ZSB3b3JrIGFyb3VuZCB0aGUgaW5jb25zaXN0ZW5jeSBieSBub3Qgc2V0dGluZyB0aGUgYmFja2dyb3VuZCBhdFxuICAgIC8vIGFsbCBhbmQgdXNpbmcgYG9wYWNpdHlgIHRvIG1ha2UgdGhlIGVsZW1lbnQgdHJhbnNwYXJlbnQuXG4gICAgJiwgJi5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gT3ZlcmxheSBwYXJlbnQgZWxlbWVudCB1c2VkIHdpdGggdGhlIGNvbm5lY3RlZCBwb3NpdGlvbiBzdHJhdGVneS4gVXNlZCB0byBjb25zdHJhaW4gdGhlXG4gIC8vIG92ZXJsYXkgZWxlbWVudCdzIHNpemUgdG8gZml0IHdpdGhpbiB0aGUgdmlld3BvcnQuXG4gIC5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXk7XG5cbiAgICAvLyBXZSB1c2UgYGRpc3BsYXk6IGZsZXhgIG9uIHRoaXMgZWxlbWVudCBleGNsdXNpdmVseSBmb3IgY2VudGVyaW5nIGNvbm5lY3RlZCBvdmVybGF5cy5cbiAgICAvLyBXaGVuICpub3QqIGNlbnRlcmluZywgYSB0b3AvbGVmdC9ib3R0b20vcmlnaHQgd2lsbCBiZSBzZXQgd2hpY2ggb3ZlcnJpZGVzIHRoZSBub3JtYWxcbiAgICAvLyBmbGV4IGxheW91dC5cbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgLy8gV2UgdXNlIHRoZSBgY29sdW1uYCBkaXJlY3Rpb24gaGVyZSB0byBhdm9pZCBzb21lIGZsZXhib3ggaXNzdWVzIGluIEVkZ2VcbiAgICAvLyB3aGVuIHVzaW5nIHRoZSBcImdyb3cgYWZ0ZXIgb3BlblwiIG9wdGlvbnMuXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIC8vIEFkZCBzb21lIGRpbWVuc2lvbnMgc28gdGhlIGVsZW1lbnQgaGFzIGFuIGBpbm5lclRleHRgIHdoaWNoIHNvbWUgcGVvcGxlIGRlcGVuZCBvbiBpbiB0ZXN0cy5cbiAgICBtaW4td2lkdGg6IDFweDtcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gIH1cblxuICAvLyBVc2VkIHdoZW4gZGlzYWJsaW5nIGdsb2JhbCBzY3JvbGxpbmcuXG4gIC5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG5cbiAgICAvLyBOZWNlc3NhcnkgZm9yIHRoZSBjb250ZW50IG5vdCB0byBsb3NlIGl0cyB3aWR0aC4gTm90ZSB0aGF0IHdlJ3JlIHVzaW5nIDEwMCUsIGluc3RlYWQgb2ZcbiAgICAvLyAxMDB2dywgYmVjYXVzZSAxMDB2dyBpbmNsdWRlcyB0aGUgd2lkdGggcGx1cyB0aGUgc2Nyb2xsYmFyLCB3aGVyZWFzIDEwMCUgaXMgdGhlIHdpZHRoXG4gICAgLy8gdGhhdCB0aGUgZWxlbWVudCBoYWQgYmVmb3JlIHdlIG1hZGUgaXQgYGZpeGVkYC5cbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC8vIE5vdGU6IHRoaXMgd2lsbCBhbHdheXMgYWRkIGEgc2Nyb2xsYmFyIHRvIHdoYXRldmVyIGVsZW1lbnQgaXQgaXMgb24sIHdoaWNoIGNhblxuICAgIC8vIHBvdGVudGlhbGx5IHJlc3VsdCBpbiBkb3VibGUgc2Nyb2xsYmFycy4gSXQgc2hvdWxkbid0IGJlIGFuIGlzc3VlLCBiZWNhdXNlIHdlIHdvbid0XG4gICAgLy8gYmxvY2sgc2Nyb2xsaW5nIG9uIGEgcGFnZSB0aGF0IGRvZXNuJ3QgaGF2ZSBhIHNjcm9sbGJhciBpbiB0aGUgZmlyc3QgcGxhY2UuXG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICB9XG59XG5cbkBtaXhpbiBjZGstYTExeSB7XG4gIC5jZGstdmlzdWFsbHktaGlkZGVuIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuXG4gICAgLy8gVGhpcyB3b3JrcyBhcm91bmQgYSBDaHJvbWUgYnVnIHRoYXQgY2FuIGNhdXNlIHRoZSB0YWIgdG8gY3Jhc2ggd2hlbiBsYXJnZSBhbW91bnRzIG9mXG4gICAgLy8gbm9uLUVuZ2xpc2ggdGV4dCBnZXQgd3JhcHBlZDogaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTIwMTQ0NFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAvLyBBdm9pZCBicm93c2VycyByZW5kZXJpbmcgdGhlIGZvY3VzIHJpbmcgaW4gc29tZSBjYXNlcy5cbiAgICBvdXRsaW5lOiAwO1xuXG4gICAgLy8gQXZvaWQgc29tZSBjYXNlcyB3aGVyZSB0aGUgYnJvd3NlciB3aWxsIHN0aWxsIHJlbmRlciB0aGUgbmF0aXZlIGNvbnRyb2xzIChzZWUgIzkwNDkpLlxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cbn1cblxuLy8vIEVtaXRzIHRoZSBtaXhpbidzIGNvbnRlbnQgbmVzdGVkIHVuZGVyIGAkc2VsZWN0b3ItY29udGV4dGAgaWYgYCRzZWxlY3Rvci1jb250ZXh0YFxuLy8vIGlzIG5vbi1lbXB0eS5cbi8vLyBAcGFyYW0gc2VsZWN0b3ItY29udGV4dCBUaGUgc2VsZWN0b3IgdW5kZXIgd2hpY2ggdG8gbmVzdCB0aGUgbWl4aW4ncyBjb250ZW50LlxuQG1peGluIF9jZGstb3B0aW9uYWxseS1uZXN0LWNvbnRlbnQoJHNlbGVjdG9yLWNvbnRleHQpIHtcbiAgQGlmICgkc2VsZWN0b3ItY29udGV4dCA9PSAnJykge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEBlbHNlIHtcbiAgICAjeyRzZWxlY3Rvci1jb250ZXh0fSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFwcGxpZXMgc3R5bGVzIGZvciB1c2VycyBpbiBoaWdoIGNvbnRyYXN0IG1vZGUuIE5vdGUgdGhhdCB0aGlzIG9ubHkgYXBwbGllc1xuLy8vIHRvIE1pY3Jvc29mdCBicm93c2Vycy4gQ2hyb21lIGNhbiBiZSBpbmNsdWRlZCBieSBjaGVja2luZyBmb3IgdGhlIGBodG1sW2hjXWBcbi8vLyBhdHRyaWJ1dGUsIGhvd2V2ZXIgQ2hyb21lIGhhbmRsZXMgaGlnaCBjb250cmFzdCBkaWZmZXJlbnRseS5cbi8vL1xuLy8vIEBwYXJhbSB0YXJnZXQgV2hpY2gga2luZCBvZiBoaWdoIGNvbnRyYXN0IHNldHRpbmcgdG8gdGFyZ2V0LiBEZWZhdWx0cyB0byBgYWN0aXZlYCwgY2FuIGJlXG4vLy8gICAgYHdoaXRlLW9uLWJsYWNrYCBvciBgYmxhY2stb24td2hpdGVgLlxuLy8vIEBwYXJhbSBlbmNhcHN1bGF0aW9uIFdoZXRoZXIgdG8gZW1pdCBzdHlsZXMgZm9yIHZpZXcgZW5jYXBzdWxhdGlvbi4gVmFsdWVzIGFyZTpcbi8vLyAgICAgKiBgb25gIC0gd29ya3MgZm9yIGBFbXVsYXRlZGAsIGBOYXRpdmVgLCBhbmQgYFNoYWRvd0RvbWBcbi8vLyAgICAgKiBgb2ZmYCAtIHdvcmtzIGZvciBgTm9uZWBcbi8vLyAgICAgKiBgYW55YCAtIHdvcmtzIGZvciBhbGwgZW5jYXBzdWxhdGlvbiBtb2RlcyBieSBlbWl0dGluZyB0aGUgQ1NTIHR3aWNlIChkZWZhdWx0KS5cbkBtaXhpbiBjZGstaGlnaC1jb250cmFzdCgkdGFyZ2V0OiBhY3RpdmUsICRlbmNhcHN1bGF0aW9uOiAnYW55Jykge1xuICBAaWYgKCR0YXJnZXQgIT0gJ2FjdGl2ZScgYW5kICR0YXJnZXQgIT0gJ2JsYWNrLW9uLXdoaXRlJyBhbmQgJHRhcmdldCAhPSAnd2hpdGUtb24tYmxhY2snKSB7XG4gICAgQGVycm9yICdVbmtub3duIGNkay1oaWdoLWNvbnRyYXN0IHZhbHVlIFwiI3skdGFyZ2V0fVwiIHByb3ZpZGVkLiAnICtcbiAgICAgICAgICAgJ0FsbG93ZWQgdmFsdWVzIGFyZSBcImFjdGl2ZVwiLCBcImJsYWNrLW9uLXdoaXRlXCIsIGFuZCBcIndoaXRlLW9uLWJsYWNrXCInO1xuICB9XG5cbiAgQGlmICgkZW5jYXBzdWxhdGlvbiAhPSAnb24nIGFuZCAkZW5jYXBzdWxhdGlvbiAhPSAnb2ZmJyBhbmQgJGVuY2Fwc3VsYXRpb24gIT0gJ2FueScpIHtcbiAgICBAZXJyb3IgJ1Vua25vd24gY2RrLWhpZ2gtY29udHJhc3QgZW5jYXBzdWxhdGlvbiBcIiN7JGVuY2Fwc3VsYXRpb259XCIgcHJvdmlkZWQuICcgK1xuICAgICAgICAgICAnQWxsb3dlZCB2YWx1ZXMgYXJlIFwib25cIiwgXCJvZmZcIiwgYW5kIFwiYW55XCInO1xuICB9XG5cbiAgLy8gSWYgdGhlIHNlbGVjdG9yIGNvbnRleHQgaGFzIG11bHRpcGxlIHBhcnRzLCBzdWNoIGFzIGAuc2VjdGlvbiwgLnJlZ2lvbmAsIGp1c3QgZG9pbmdcbiAgLy8gYC5jZGstaGlnaC1jb250cmFzdC14eHggI3smfWAgd2lsbCBvbmx5IGFwcGx5IHRoZSBwYXJlbnQgc2VsZWN0b3IgdG8gdGhlIGZpcnN0IHBhcnQgb2YgdGhlXG4gIC8vIGNvbnRleHQuIFdlIGFkZHJlc3MgdGhpcyBieSBuZXN0aW5nIHRoZSBzZWxlY3RvciBjb250ZXh0IHVuZGVyIC5jZGstaGlnaC1jb250cmFzdC5cbiAgQGF0LXJvb3Qge1xuICAgICRzZWxlY3Rvci1jb250ZXh0OiAjeyZ9O1xuXG4gICAgQGlmICgkZW5jYXBzdWxhdGlvbiAhPSAnb24nKSB7XG4gICAgICAvLyBOb3RlIHRoYXQgaWYgdGhpcyBzZWxlY3RvciBpcyB1cGRhdGVkLCB0aGUgc2FtZSBjaGFuZ2UgaGFzIHRvIGJlIG1hZGUgaW5zaWRlXG4gICAgICAvLyBgX292ZXJsYXkuc2Nzc2Agd2hpY2ggY2FuJ3QgZGVwZW5kIG9uIHRoaXMgbWl4aW4gZHVlIHRvIHNvbWUgaW5mcmFzdHJ1Y3R1cmUgbGltaXRhdGlvbnMuXG4gICAgICAuY2RrLWhpZ2gtY29udHJhc3QtI3skdGFyZ2V0fSB7XG4gICAgICAgIEBpbmNsdWRlIF9jZGstb3B0aW9uYWxseS1uZXN0LWNvbnRlbnQoJHNlbGVjdG9yLWNvbnRleHQpIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAoJGVuY2Fwc3VsYXRpb24gIT0gJ29mZicpIHtcbiAgICAgIC5jZGstaGlnaC1jb250cmFzdC0jeyR0YXJnZXR9IDpob3N0IHtcbiAgICAgICAgQGluY2x1ZGUgX2Nkay1vcHRpb25hbGx5LW5lc3QtY29udGVudCgkc2VsZWN0b3ItY29udGV4dCkge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIENvcmUgc3R5bGVzIHRoYXQgZW5hYmxlIG1vbml0b3JpbmcgYXV0b2ZpbGwgc3RhdGUgb2YgdGV4dCBmaWVsZHMuXG5AbWl4aW4gY2RrLXRleHQtZmllbGQge1xuICAvLyBLZXlmcmFtZXMgdGhhdCBhcHBseSBubyBzdHlsZXMsIGJ1dCBhbGxvdyB1cyB0byBtb25pdG9yIHdoZW4gYW4gdGV4dCBmaWVsZCBiZWNvbWVzIGF1dG9maWxsZWRcbiAgLy8gYnkgd2F0Y2hpbmcgZm9yIHRoZSBhbmltYXRpb24gZXZlbnRzIHRoYXQgYXJlIGZpcmVkIHdoZW4gdGhleSBzdGFydC4gTm90ZTogdGhlIC8qISovIGNvbW1lbnQgaXNcbiAgLy8gbmVlZGVkIHRvIHByZXZlbnQgTGliU2FzcyBmcm9tIHN0cmlwcGluZyB0aGUga2V5ZnJhbWVzIG91dC5cbiAgLy8gQmFzZWQgb246IGh0dHBzOi8vbWVkaXVtLmNvbS9AYnJ1bm4vZGV0ZWN0aW5nLWF1dG9maWxsZWQtZmllbGRzLWluLWphdmFzY3JpcHQtYWVkNTk4ZDI1ZGE3XG4gIEBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgey8qISovfVxuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCB7LyohKi99XG5cbiAgLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDotd2Via2l0LWF1dG9maWxsIHtcbiAgICAvLyBTaW5jZSBDaHJvbWUgODAgd2UgbmVlZCBhIDFtcyBkZWxheSwgb3IgdGhlIGFuaW1hdGlvbnN0YXJ0IGV2ZW50IHdvbid0IGZpcmUuXG4gICAgYW5pbWF0aW9uOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXM7XG4gIH1cblxuICAuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCkge1xuICAgIC8vIFNpbmNlIENocm9tZSA4MCB3ZSBuZWVkIGEgMW1zIGRlbGF5LCBvciB0aGUgYW5pbWF0aW9uc3RhcnQgZXZlbnQgd29uJ3QgZmlyZS5cbiAgICBhbmltYXRpb246IGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXM7XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIHJlc2l6ZSBoYW5kbGUgb24gYXV0b3NpemluZyB0ZXh0YXJlYXMsIGJlY2F1c2Ugd2hhdGV2ZXIgaGVpZ2h0XG4gIC8vIHRoZSB1c2VyIHJlc2l6ZWQgdG8gd2lsbCBiZSBvdmVyd3JpdHRlbiBvbmNlIHRoZXkgc3RhcnQgdHlwaW5nIGFnYWluLlxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUge1xuICAgIHJlc2l6ZTogbm9uZTtcbiAgfVxuXG4gIC8vIFRoaXMgY2xhc3MgaXMgdGVtcG9yYXJpbHkgYXBwbGllZCB0byB0aGUgdGV4dGFyZWEgd2hlbiBpdCBpcyBiZWluZyBtZWFzdXJlZC4gSXQgaXMgaW1tZWRpYXRlbHlcbiAgLy8gcmVtb3ZlZCB3aGVuIG1lYXN1cmluZyBpcyBjb21wbGV0ZS4gV2UgdXNlIGAhaW1wb3J0YW50YCBydWxlcyBoZXJlIHRvIG1ha2Ugc3VyZSB1c2VyLXNwZWNpZmllZFxuICAvLyBydWxlcyBkbyBub3QgaW50ZXJmZXJlIHdpdGggdGhlIG1lYXN1cmVtZW50LlxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nIHtcbiAgICBAaW5jbHVkZSBfY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1iYXNlO1xuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgfVxuXG4gIC8vIFNpbWlsYXIgdG8gdGhlIGBjZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nYCBjbGFzcywgYnV0IG9ubHkgYXBwbGllZCBvbiBGaXJlZm94LiBXZSBuZWVkXG4gIC8vIHRvIHVzZSB0aGlzIGNsYXNzLCBiZWNhdXNlIEZpcmVmb3ggaGFzIGEgYnVnIHdoZXJlIGNoYW5naW5nIHRoZSBgb3ZlcmZsb3dgIGJyZWFrcyB0aGUgdXNlcidzXG4gIC8vIGFiaWxpdHkgdG8gdW5kby9yZWRvIHdoYXQgdGhleSB3ZXJlIHR5cGluZyAoc2VlICMxNjYyOSkuIFRoaXMgY2xhc3MgaXMgb25seSBzY29wZWQgdG8gRmlyZWZveCxcbiAgLy8gYmVjYXVzZSB0aGUgbWVhc3VyZW1lbnRzIHRoZXJlIGRvbid0IHNlZW0gdG8gYmUgYWZmZWN0ZWQgYnkgdGhlIGBoZWlnaHQ6IDBgLCB3aGVyZWFzIG9uIG90aGVyXG4gIC8vIGJyb3dzZXJzIHRoZXkgYXJlLCBlLmcuIENocm9tZSBkZXRlY3RzIGxvbmdlciB0ZXh0IGFuZCBJRSBkb2VzJ3QgcmVzaXplIGJhY2sgdG8gbm9ybWFsLlxuICAvLyBJZGVudGljYWwgaXNzdWUgcmVwb3J0OiBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD00NDg3ODRcbiAgdGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94IHtcbiAgICBAaW5jbHVkZSBfY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1iYXNlO1xuICAgIGhlaWdodDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtaXhpbiBfY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1iYXNlIHtcbiAgLy8gSGF2aW5nIDJweCB0b3AgYW5kIGJvdHRvbSBwYWRkaW5nIHNlZW1zIHRvIGZpeCBhIGJ1ZyB3aGVyZSBDaHJvbWUgZ2V0cyBhbiBpbmNvcnJlY3RcbiAgLy8gbWVhc3VyZW1lbnQuIFdlIGp1c3QgaGF2ZSB0byBhY2NvdW50IGZvciBpdCBsYXRlciBhbmQgc3VidHJhY3QgaXQgb2ZmIHRoZSBmaW5hbCByZXN1bHQuXG4gIHBhZGRpbmc6IDJweCAwICFpbXBvcnRhbnQ7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7XG59XG5cbi8vIFVzZWQgdG8gZ2VuZXJhdGUgVUlEcyBmb3Iga2V5ZnJhbWVzIHVzZWQgdG8gY2hhbmdlIHRoZSB0ZXh0IGZpZWxkIGF1dG9maWxsIHN0eWxlcy5cbiRjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudDogMDtcblxuLy8gTWl4aW4gdXNlZCB0byBhcHBseSBjdXN0b20gYmFja2dyb3VuZCBhbmQgZm9yZWdyb3VuZCBjb2xvcnMgdG8gYW4gYXV0b2ZpbGxlZCB0ZXh0IGZpZWxkLlxuLy8gQmFzZWQgb246IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzI3ODE1NDkvXG4vLyByZW1vdmluZy1pbnB1dC1iYWNrZ3JvdW5kLWNvbG91ci1mb3ItY2hyb21lLWF1dG9jb21wbGV0ZSNhbnN3ZXItMzc0MzIyNjBcbkBtaXhpbiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvcigkYmFja2dyb3VuZCwgJGZvcmVncm91bmQ6JycpIHtcbiAgQGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci0jeyRjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudH0ge1xuICAgIHRvIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgQGlmICRmb3JlZ3JvdW5kICE9ICcnIHsgY29sb3I6ICRmb3JlZ3JvdW5kOyB9XG4gICAgfVxuICB9XG5cbiAgJjotd2Via2l0LWF1dG9maWxsIHtcbiAgICBhbmltYXRpb246IGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLSN7JGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50fSBib3RoO1xuICB9XG5cbiAgJi5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWQ6LXdlYmtpdC1hdXRvZmlsbCB7XG4gICAgLy8gU2luY2UgQ2hyb21lIDgwIHdlIG5lZWQgYSAxbXMgZGVsYXkgZm9yIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0LCBvciB0aGUgYW5pbWF0aW9uc3RhcnRcbiAgICAvLyBldmVudCB3b24ndCBmaXJlLlxuICAgIGFuaW1hdGlvbjogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zLFxuICAgICAgICAgICAgICAgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItI3skY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnR9IGJvdGg7XG4gIH1cblxuICAkY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnQ6XG4gICAgICAkY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnQgKyAxICFnbG9iYWw7XG59XG5cblxuLy8gQ29yZSBzdHlsZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBhcHBseSBtYXRlcmlhbCBkZXNpZ24gdHJlYXRtZW50cyB0byBhbnkgZWxlbWVudC5cbi8vIE1lZGlhIHF1ZXJpZXNcbi8vIFRPRE8oam9zZXBocGVycm90dCk6IENoYW5nZSAkbWF0LXhzbWFsbCBhbmQgJG1hdC1zbWFsbCB1c2FnZXMgdG8gcmVseSBvbiBCcmVha3BvaW50T2JzZXJ2ZXIsXG4kbWF0LXhzbWFsbDogJ21heC13aWR0aDogNTk5cHgnO1xuJG1hdC1zbWFsbDogJ21heC13aWR0aDogOTU5cHgnO1xuXG4vLyBUT0RPOiBSZXZpc2l0IGFsbCB6LWluZGljZXMgYmVmb3JlIGJldGFcbi8vIHotaW5kZXggbWFzdGVyIGxpc3RcblxuJHotaW5kZXgtZmFiOiAyMCAhZGVmYXVsdDtcbiR6LWluZGV4LWRyYXdlcjogMTAwICFkZWZhdWx0O1xuXG4vLyBHbG9iYWwgY29uc3RhbnRzXG4kcGk6IDMuMTQxNTkyNjU7XG5cbi8vIFBhZGRpbmcgYmV0d2VlbiBpbnB1dCB0b2dnbGVzIGFuZCB0aGVpciBsYWJlbHNcbiRtYXQtdG9nZ2xlLXBhZGRpbmc6IDhweCAhZGVmYXVsdDtcbi8vIFdpZHRoIGFuZCBoZWlnaHQgb2YgaW5wdXQgdG9nZ2xlc1xuJG1hdC10b2dnbGUtc2l6ZTogMjBweCAhZGVmYXVsdDtcblxuLy8gRWFzaW5nIEN1cnZlc1xuLy8gVE9ETyhqZWxib3Vybik6IGFsbCBvZiB0aGVzZSBuZWVkIHRvIGJlIHJldmlzaXRlZFxuXG4vLyBUaGUgZGVmYXVsdCBhbmltYXRpb24gY3VydmVzIHVzZWQgYnkgbWF0ZXJpYWwgZGVzaWduLlxuJG1hdC1saW5lYXItb3V0LXNsb3ctaW4tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAwLjEpICFkZWZhdWx0O1xuJG1hdC1mYXN0LW91dC1zbG93LWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhZGVmYXVsdDtcbiRtYXQtZmFzdC1vdXQtbGluZWFyLWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSkgIWRlZmF1bHQ7XG5cbiRlYXNlLWluLW91dC1jdXJ2ZS1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpICFkZWZhdWx0O1xuXG4kc3dpZnQtZWFzZS1vdXQtZHVyYXRpb246IDQwMG1zICFkZWZhdWx0O1xuJHN3aWZ0LWVhc2Utb3V0LXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSkgIWRlZmF1bHQ7XG4kc3dpZnQtZWFzZS1vdXQ6IGFsbCAkc3dpZnQtZWFzZS1vdXQtZHVyYXRpb24gJHN3aWZ0LWVhc2Utb3V0LXRpbWluZy1mdW5jdGlvbiAhZGVmYXVsdDtcblxuJHN3aWZ0LWVhc2UtaW4tZHVyYXRpb246IDMwMG1zICFkZWZhdWx0O1xuJHN3aWZ0LWVhc2UtaW4tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NSwgMCwgMC41NSwgMC4yKSAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluOiBhbGwgJHN3aWZ0LWVhc2UtaW4tZHVyYXRpb24gJHN3aWZ0LWVhc2UtaW4tdGltaW5nLWZ1bmN0aW9uICFkZWZhdWx0O1xuXG4kc3dpZnQtZWFzZS1pbi1vdXQtZHVyYXRpb246IDUwMG1zICFkZWZhdWx0O1xuJHN3aWZ0LWVhc2UtaW4tb3V0LXRpbWluZy1mdW5jdGlvbjogJGVhc2UtaW4tb3V0LWN1cnZlLWZ1bmN0aW9uICFkZWZhdWx0O1xuJHN3aWZ0LWVhc2UtaW4tb3V0OiBhbGwgJHN3aWZ0LWVhc2UtaW4tb3V0LWR1cmF0aW9uICRzd2lmdC1lYXNlLWluLW91dC10aW1pbmctZnVuY3Rpb24gIWRlZmF1bHQ7XG5cbiRzd2lmdC1saW5lYXItZHVyYXRpb246IDgwbXMgIWRlZmF1bHQ7XG4kc3dpZnQtbGluZWFyLXRpbWluZy1mdW5jdGlvbjogbGluZWFyICFkZWZhdWx0O1xuJHN3aWZ0LWxpbmVhcjogYWxsICRzd2lmdC1saW5lYXItZHVyYXRpb24gJHN3aWZ0LWxpbmVhci10aW1pbmctZnVuY3Rpb24gIWRlZmF1bHQ7XG5cblxuXG4vLyBBIGNvbGxlY3Rpb24gb2YgbWl4aW5zIGFuZCBDU1MgY2xhc3NlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIGFwcGx5IGVsZXZhdGlvbiB0byBhIG1hdGVyaWFsXG4vLyBlbGVtZW50LlxuLy8gU2VlOiBodHRwczovL21hdGVyaWFsLmlvL2Rlc2lnbi9lbnZpcm9ubWVudC9lbGV2YXRpb24uaHRtbFxuLy8gRXhhbXBsZXM6XG4vL1xuLy9cbi8vIC5tYXQtZm9vIHtcbi8vICAgQGluY2x1ZGUgJG1hdC1lbGV2YXRpb24oMik7XG4vL1xuLy8gICAmOmFjdGl2ZSB7XG4vLyAgICAgQGluY2x1ZGUgJG1hdC1lbGV2YXRpb24oOCk7XG4vLyAgIH1cbi8vIH1cbi8vXG4vLyA8ZGl2IGlkPVwiZXh0ZXJuYWwtY2FyZFwiIGNsYXNzPVwibWF0LWVsZXZhdGlvbi16MlwiPjxwPlNvbWUgY29udGVudDwvcD48L2Rpdj5cbi8vXG4vLyBGb3IgYW4gZXhwbGFuYXRpb24gb2YgdGhlIGRlc2lnbiBiZWhpbmQgaG93IGVsZXZhdGlvbiBpcyBpbXBsZW1lbnRlZCwgc2VlIHRoZSBkZXNpZ24gZG9jIGF0XG4vLyBodHRwczovL2dvby5nbC9LcTBrOVouXG5cbi8vIENvbG9ycyBmb3IgdW1icmEsIHBlbnVtYnJhLCBhbmQgYW1iaWVudCBzaGFkb3dzLiBBcyBkZXNjcmliZWQgaW4gdGhlIGRlc2lnbiBkb2MsIGVhY2ggZWxldmF0aW9uXG4vLyBsZXZlbCBpcyBjcmVhdGVkIHVzaW5nIGEgc2V0IG9mIDMgc2hhZG93IHZhbHVlcywgb25lIGZvciB1bWJyYSAodGhlIHNoYWRvdyByZXByZXNlbnRpbmcgdGhlXG4vLyBzcGFjZSBjb21wbGV0ZWx5IG9ic2N1cmVkIGJ5IGFuIG9iamVjdCByZWxhdGl2ZSB0byBpdHMgbGlnaHQgc291cmNlKSwgb25lIGZvciBwZW51bWJyYSAodGhlXG4vLyBzcGFjZSBwYXJ0aWFsbHkgb2JzY3VyZWQgYnkgYW4gb2JqZWN0KSwgYW5kIG9uZSBmb3IgYW1iaWVudCAodGhlIHNwYWNlIHdoaWNoIGNvbnRhaW5zIHRoZSBvYmplY3Rcbi8vIGl0c2VsZikuIEZvciBhIGZ1cnRoZXIgZXhwbGFuYXRpb24gb2YgdGhlc2UgdGVybXMgYW5kIHRoZWlyIG1lYW5pbmdzLCBzZWVcbi8vIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1VtYnJhLF9wZW51bWJyYV9hbmRfYW50dW1icmEuXG5cbi8vIE1hcHMgZm9yIHRoZSBkaWZmZXJlbnQgc2hhZG93IHNldHMgYW5kIHRoZWlyIHZhbHVlcyB3aXRoaW4gZWFjaCB6LXNwYWNlLiBUaGVzZSB2YWx1ZXMgd2VyZVxuLy8gY3JlYXRlZCBieSB0YWtpbmcgYSBmZXcgcmVmZXJlbmNlIHNoYWRvdyBzZXRzIGNyZWF0ZWQgYnkgR29vZ2xlJ3MgRGVzaWduZXJzIGFuZCBpbnRlcnBvbGF0aW5nXG4vLyBhbGwgb2YgdGhlIHZhbHVlcyBiZXR3ZWVuIHRoZW0uXG5cbkBmdW5jdGlvbiBfZ2V0LXVtYnJhLW1hcCgkY29sb3IsICRvcGFjaXR5KSB7XG4gICRzaGFkb3ctY29sb3I6IGlmKHR5cGUtb2YoJGNvbG9yKSA9PSBjb2xvciwgcmdiYSgkY29sb3IsICRvcGFjaXR5ICogMC4yKSwgJGNvbG9yKTtcblxuICBAcmV0dXJuIChcbiAgICAwOiAnMHB4IDBweCAwcHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE6ICcwcHggMnB4IDFweCAtMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI6ICcwcHggM3B4IDFweCAtMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDM6ICcwcHggM3B4IDNweCAtMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDQ6ICcwcHggMnB4IDRweCAtMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDU6ICcwcHggM3B4IDVweCAtMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDY6ICcwcHggM3B4IDVweCAtMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDc6ICcwcHggNHB4IDVweCAtMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDg6ICcwcHggNXB4IDVweCAtM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDk6ICcwcHggNXB4IDZweCAtM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEwOiAnMHB4IDZweCA2cHggLTNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMTogJzBweCA2cHggN3B4IC00cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTI6ICcwcHggN3B4IDhweCAtNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEzOiAnMHB4IDdweCA4cHggLTRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNDogJzBweCA3cHggOXB4IC00cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTU6ICcwcHggOHB4IDlweCAtNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE2OiAnMHB4IDhweCAxMHB4IC01cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTc6ICcwcHggOHB4IDExcHggLTVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxODogJzBweCA5cHggMTFweCAtNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE5OiAnMHB4IDlweCAxMnB4IC02cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjA6ICcwcHggMTBweCAxM3B4IC02cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjE6ICcwcHggMTBweCAxM3B4IC02cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjI6ICcwcHggMTBweCAxNHB4IC02cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjM6ICcwcHggMTFweCAxNHB4IC03cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjQ6ICcwcHggMTFweCAxNXB4IC03cHggI3skc2hhZG93LWNvbG9yfSdcbiAgKTtcbn1cblxuQGZ1bmN0aW9uIF9nZXQtcGVudW1icmEtbWFwKCRjb2xvciwgJG9wYWNpdHkpIHtcbiAgJHNoYWRvdy1jb2xvcjogaWYodHlwZS1vZigkY29sb3IpID09IGNvbG9yLCByZ2JhKCRjb2xvciwgJG9wYWNpdHkgKiAwLjE0KSwgJGNvbG9yKTtcblxuICBAcmV0dXJuIChcbiAgICAwOiAnMHB4IDBweCAwcHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE6ICcwcHggMXB4IDFweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjogJzBweCAycHggMnB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAzOiAnMHB4IDNweCA0cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDQ6ICcwcHggNHB4IDVweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNTogJzBweCA1cHggOHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA2OiAnMHB4IDZweCAxMHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA3OiAnMHB4IDdweCAxMHB4IDFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA4OiAnMHB4IDhweCAxMHB4IDFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA5OiAnMHB4IDlweCAxMnB4IDFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMDogJzBweCAxMHB4IDE0cHggMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDExOiAnMHB4IDExcHggMTVweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTI6ICcwcHggMTJweCAxN3B4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMzogJzBweCAxM3B4IDE5cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE0OiAnMHB4IDE0cHggMjFweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTU6ICcwcHggMTVweCAyMnB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNjogJzBweCAxNnB4IDI0cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE3OiAnMHB4IDE3cHggMjZweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTg6ICcwcHggMThweCAyOHB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOTogJzBweCAxOXB4IDI5cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIwOiAnMHB4IDIwcHggMzFweCAzcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjE6ICcwcHggMjFweCAzM3B4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMjogJzBweCAyMnB4IDM1cHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIzOiAnMHB4IDIzcHggMzZweCAzcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjQ6ICcwcHggMjRweCAzOHB4IDNweCAjeyRzaGFkb3ctY29sb3J9J1xuICApO1xufVxuXG5AZnVuY3Rpb24gX2dldC1hbWJpZW50LW1hcCgkY29sb3IsICRvcGFjaXR5KSB7XG4gICRzaGFkb3ctY29sb3I6IGlmKHR5cGUtb2YoJGNvbG9yKSA9PSBjb2xvciwgcmdiYSgkY29sb3IsICRvcGFjaXR5ICogMC4xMiksICRjb2xvcik7XG5cbiAgQHJldHVybiAoXG4gICAgMDogJzBweCAwcHggMHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOiAnMHB4IDFweCAzcHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI6ICcwcHggMXB4IDVweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMzogJzBweCAxcHggOHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA0OiAnMHB4IDFweCAxMHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA1OiAnMHB4IDFweCAxNHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA2OiAnMHB4IDFweCAxOHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA3OiAnMHB4IDJweCAxNnB4IDFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA4OiAnMHB4IDNweCAxNHB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA5OiAnMHB4IDNweCAxNnB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMDogJzBweCA0cHggMThweCAzcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTE6ICcwcHggNHB4IDIwcHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEyOiAnMHB4IDVweCAyMnB4IDRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMzogJzBweCA1cHggMjRweCA0cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTQ6ICcwcHggNXB4IDI2cHggNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE1OiAnMHB4IDZweCAyOHB4IDVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNjogJzBweCA2cHggMzBweCA1cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTc6ICcwcHggNnB4IDMycHggNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE4OiAnMHB4IDdweCAzNHB4IDZweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOTogJzBweCA3cHggMzZweCA2cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjA6ICcwcHggOHB4IDM4cHggN3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIxOiAnMHB4IDhweCA0MHB4IDdweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMjogJzBweCA4cHggNDJweCA3cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjM6ICcwcHggOXB4IDQ0cHggOHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI0OiAnMHB4IDlweCA0NnB4IDhweCAjeyRzaGFkb3ctY29sb3J9J1xuICApO1xufVxuXG4vLyBUaGUgZGVmYXVsdCBkdXJhdGlvbiB2YWx1ZSBmb3IgZWxldmF0aW9uIHRyYW5zaXRpb25zLlxuJG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbjogMjgwbXMgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IGVhc2luZyB2YWx1ZSBmb3IgZWxldmF0aW9uIHRyYW5zaXRpb25zLlxuJG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICRtYXQtZmFzdC1vdXQtc2xvdy1pbi10aW1pbmctZnVuY3Rpb247XG5cbi8vIFRoZSBkZWZhdWx0IGNvbG9yIGZvciBlbGV2YXRpb24gc2hhZG93cy5cbiRtYXQtZWxldmF0aW9uLWNvbG9yOiBibGFjayAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgb3BhY2l0eSBzY2FsaW5nIHZhbHVlIGZvciBlbGV2YXRpb24gc2hhZG93cy5cbiRtYXQtZWxldmF0aW9uLW9wYWNpdHk6IDEgIWRlZmF1bHQ7XG5cbi8vIFByZWZpeCBmb3IgZWxldmF0aW9uLXJlbGF0ZWQgc2VsZWN0b3JzLlxuJG1hdC1lbGV2YXRpb24tcHJlZml4OiAnbWF0LWVsZXZhdGlvbi16JztcblxuLy8gQXBwbGllcyB0aGUgY29ycmVjdCBjc3MgcnVsZXMgdG8gYW4gZWxlbWVudCB0byBnaXZlIGl0IHRoZSBlbGV2YXRpb24gc3BlY2lmaWVkIGJ5ICR6VmFsdWUuXG4vLyBUaGUgJHpWYWx1ZSBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjQuXG5AbWl4aW4gbWF0LWVsZXZhdGlvbigkelZhbHVlLCAkY29sb3I6ICRtYXQtZWxldmF0aW9uLWNvbG9yLCAkb3BhY2l0eTogJG1hdC1lbGV2YXRpb24tb3BhY2l0eSkge1xuICBAaWYgdHlwZS1vZigkelZhbHVlKSAhPSBudW1iZXIgb3Igbm90IHVuaXRsZXNzKCR6VmFsdWUpIHtcbiAgICBAZXJyb3IgJyR6VmFsdWUgbXVzdCBiZSBhIHVuaXRsZXNzIG51bWJlcic7XG4gIH1cbiAgQGlmICR6VmFsdWUgPCAwIG9yICR6VmFsdWUgPiAyNCB7XG4gICAgQGVycm9yICckelZhbHVlIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyNCc7XG4gIH1cblxuICBib3gtc2hhZG93OiAje21hcC1nZXQoX2dldC11bWJyYS1tYXAoJGNvbG9yLCAkb3BhY2l0eSksICR6VmFsdWUpfSxcbiAgICAgICAgICAgICAgI3ttYXAtZ2V0KF9nZXQtcGVudW1icmEtbWFwKCRjb2xvciwgJG9wYWNpdHkpLCAkelZhbHVlKX0sXG4gICAgICAgICAgICAgICN7bWFwLWdldChfZ2V0LWFtYmllbnQtbWFwKCRjb2xvciwgJG9wYWNpdHkpLCAkelZhbHVlKX07XG59XG5cbi8vIEFwcGxpZXMgdGhlIGVsZXZhdGlvbiB0byBhbiBlbGVtZW50IGluIGEgbWFubmVyIHRoYXQgYWxsb3dzXG4vLyBjb25zdW1lcnMgdG8gb3ZlcnJpZGUgaXQgdmlhIHRoZSBNYXRlcmlhbCBlbGV2YXRpb24gY2xhc3Nlcy5cbkBtaXhpbiBtYXQtb3ZlcnJpZGFibGUtZWxldmF0aW9uKFxuICAgICR6VmFsdWUsXG4gICAgJGNvbG9yOiAkbWF0LWVsZXZhdGlvbi1jb2xvcixcbiAgICAkb3BhY2l0eTogJG1hdC1lbGV2YXRpb24tb3BhY2l0eSkge1xuICAmOm5vdChbY2xhc3MqPScjeyRtYXQtZWxldmF0aW9uLXByZWZpeH0nXSkge1xuICAgIEBpbmNsdWRlIG1hdC1lbGV2YXRpb24oJHpWYWx1ZSwgJGNvbG9yLCAkb3BhY2l0eSk7XG4gIH1cbn1cblxuLy8gUmV0dXJucyBhIHN0cmluZyB0aGF0IGNhbiBiZSB1c2VkIGFzIHRoZSB2YWx1ZSBmb3IgYSB0cmFuc2l0aW9uIHByb3BlcnR5IGZvciBlbGV2YXRpb24uXG4vLyBDYWxsaW5nIHRoaXMgZnVuY3Rpb24gZGlyZWN0bHkgaXMgdXNlZnVsIGluIHNpdHVhdGlvbnMgd2hlcmUgYSBjb21wb25lbnQgbmVlZHMgdG8gdHJhbnNpdGlvblxuLy8gbW9yZSB0aGFuIG9uZSBwcm9wZXJ0eS5cbi8vXG4vLyAuZm9vIHtcbi8vICAgdHJhbnNpdGlvbjogbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXByb3BlcnR5LXZhbHVlKCksIG9wYWNpdHkgMTAwbXMgZWFzZTtcbi8vIH1cbkBmdW5jdGlvbiBtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tcHJvcGVydHktdmFsdWUoXG4gICAgJGR1cmF0aW9uOiAkbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uLFxuICAgICRlYXNpbmc6ICRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKSB7XG4gIEByZXR1cm4gYm94LXNoYWRvdyAjeyRkdXJhdGlvbn0gI3skZWFzaW5nfTtcbn1cblxuLy8gQXBwbGllcyB0aGUgY29ycmVjdCBjc3MgcnVsZXMgbmVlZGVkIHRvIGhhdmUgYW4gZWxlbWVudCB0cmFuc2l0aW9uIGJldHdlZW4gZWxldmF0aW9ucy5cbi8vIFRoaXMgbWl4aW4gc2hvdWxkIGJlIGFwcGxpZWQgdG8gZWxlbWVudHMgd2hvc2UgZWxldmF0aW9uIHZhbHVlcyB3aWxsIGNoYW5nZSBkZXBlbmRpbmcgb24gdGhlaXJcbi8vIGNvbnRleHQgKGUuZy4gd2hlbiBhY3RpdmUgb3IgZGlzYWJsZWQpLlxuLy9cbi8vIE5PVEUodHJhdmlza2F1Zm1hbik6IEJvdGggdGhpcyBtaXhpbiBhbmQgdGhlIGFib3ZlIGZ1bmN0aW9uIHVzZSBkZWZhdWx0IHBhcmFtZXRlcnMgc28gdGhleSBjYW5cbi8vIGJlIHVzZWQgaW4gdGhlIHNhbWUgd2F5IGJ5IGNsaWVudHMuXG5AbWl4aW4gbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uKFxuICAgICRkdXJhdGlvbjogJG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbixcbiAgICAkZWFzaW5nOiAkbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbikge1xuICB0cmFuc2l0aW9uOiBtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tcHJvcGVydHktdmFsdWUoJGR1cmF0aW9uLCAkZWFzaW5nKTtcbn1cblxuXG5AbWl4aW4gbWF0LXByaXZhdGUtdGhlbWUtZWxldmF0aW9uKCR6VmFsdWUsICRjb25maWcsICRvcGFjaXR5OiAkbWF0LWVsZXZhdGlvbi1vcGFjaXR5KSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuICAkZWxldmF0aW9uLWNvbG9yOiBtYXAtZ2V0KCRmb3JlZ3JvdW5kLCBlbGV2YXRpb24pO1xuICAkZWxldmF0aW9uLWNvbG9yLW9yLWRlZmF1bHQ6IGlmKCRlbGV2YXRpb24tY29sb3IgPT0gbnVsbCwgJG1hdC1lbGV2YXRpb24tY29sb3IsICRlbGV2YXRpb24tY29sb3IpO1xuXG4gIEBpbmNsdWRlIG1hdC1lbGV2YXRpb24oJHpWYWx1ZSwgJGVsZXZhdGlvbi1jb2xvci1vci1kZWZhdWx0LCAkb3BhY2l0eSk7XG59XG5cbkBtaXhpbiBtYXQtcHJpdmF0ZS10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oJHpWYWx1ZSwgJGNvbmZpZywgJG9wYWNpdHk6ICRtYXQtZWxldmF0aW9uLW9wYWNpdHkpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG4gICRlbGV2YXRpb24tY29sb3I6IG1hcC1nZXQoJGZvcmVncm91bmQsIGVsZXZhdGlvbik7XG4gICRlbGV2YXRpb24tY29sb3Itb3ItZGVmYXVsdDogaWYoJGVsZXZhdGlvbi1jb2xvciA9PSBudWxsLCAkbWF0LWVsZXZhdGlvbi1jb2xvciwgJGVsZXZhdGlvbi1jb2xvcik7XG5cbiAgQGluY2x1ZGUgbWF0LW92ZXJyaWRhYmxlLWVsZXZhdGlvbigkelZhbHVlLCAkZWxldmF0aW9uLWNvbG9yLW9yLWRlZmF1bHQsICRvcGFjaXR5KTtcbn1cblxuLy8gSWYgdGhlIG1hdC1hbmltYXRpb24tbm9vcCBjbGFzcyBpcyBwcmVzZW50IG9uIHRoZSBjb21wb25lbnRzIHJvb3QgZWxlbWVudCxcbi8vIHByZXZlbnQgbm9uIGNzcyBhbmltYXRpb25zIGZyb20gcnVubmluZy5cbi8vIE5PVEU6IEN1cnJlbnRseSB0aGlzIG1peGluIHNob3VsZCBvbmx5IGJlIHVzZWQgd2l0aCBjb21wb25lbnRzIHRoYXQgZG8gbm90XG4vLyBoYXZlIGFueSBwcm9qZWN0ZWQgY29udGVudC5cbkBtaXhpbiBtYXQtcHJpdmF0ZS1hbmltYXRpb24tbm9vcCgpIHtcbiAgLy8gQGF0LXJvb3QgaXMgdXNlZCB0byBzdGVwcyBvdXRzaWRlIG9mIHRoZSBoaWVyYXJjaHkgb2YgdGhlIHNjc3MgcnVsZXMuIFRoaXMgaXNcbiAgLy8gZG9uZSB0byBhbGxvdyBhIGNsYXNzIHRvIGJlIGFkZGVkIHRvIGJlIGFkZGVkIHRvIGJhc2Ugb2YgdGhlIHNjc3MgbmVzdGluZ1xuICAvLyBjb250ZXh0LlxuICAvLyBGb3IgZXhhbXBsZTpcbiAgLy8gLm15LXJvb3Qge1xuICAvLyAgIC5teS1zdWJjbGFzcyB7XG4gIC8vICAgICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtYW5pbWF0aW9uLW5vb3AoKTtcbiAgLy8gICAgfVxuICAvLyB9XG4gIC8vIHJlc3VsdHMgaW46XG4gIC8vIC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5teS1yb290IC5teS1zdWJjbGFzcyB7IC4uLiB9XG4gIEBhdC1yb290IC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSN7Jn0ge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIENvbG9yIHBhbGV0dGVzIGZyb20gdGhlIE1hdGVyaWFsIERlc2lnbiBzcGVjLlxuLy8gU2VlIGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2NvbG9yL1xuLy9cbi8vIENvbnRyYXN0IGNvbG9ycyBhcmUgaGFyZC1jb2RlZCBiZWNhdXNlIGl0IGlzIHRvbyBkaWZmaWN1bHQgKHByb2JhYmx5IGltcG9zc2libGUpIHRvXG4vLyBjYWxjdWxhdGUgdGhlbS4gVGhlc2UgY29udHJhc3QgY29sb3JzIGFyZSBwdWxsZWQgZnJvbSB0aGUgcHVibGljIE1hdGVyaWFsIERlc2lnbiBzcGVjIHN3YXRjaGVzLlxuLy8gV2hpbGUgdGhlIGNvbnRyYXN0IGNvbG9ycyBpbiB0aGUgc3BlYyBhcmUgbm90IHByZXNjcmlwdGl2ZSwgd2UgdXNlIHRoZW0gZm9yIGNvbnZlbmllbmNlLlxuXG5cbi8vIEBkZXByZWNhdGVkIHJlbmFtZWQgdG8gJGRhcmstcHJpbWFyeS10ZXh0LlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJGJsYWNrLTg3LW9wYWNpdHk6IHJnYmEoYmxhY2ssIDAuODcpO1xuLy8gQGRlcHJlY2F0ZWQgcmVuYW1lZCB0byAkbGlnaHQtcHJpbWFyeS10ZXh0LlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJHdoaXRlLTg3LW9wYWNpdHk6IHJnYmEod2hpdGUsIDAuODcpO1xuLy8gQGRlcHJlY2F0ZWQgdXNlICRkYXJrLVtzZWNvbmRhcnktdGV4dCxkaXNhYmxlZC10ZXh0LGRpdmlkZXJzLGZvY3VzZWRdIGluc3RlYWQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kYmxhY2stMTItb3BhY2l0eTogcmdiYShibGFjaywgMC4xMik7XG4vLyBAZGVwcmVjYXRlZCB1c2UgJGxpZ2h0LVtzZWNvbmRhcnktdGV4dCxkaXNhYmxlZC10ZXh0LGRpdmlkZXJzLGZvY3VzZWRdIGluc3RlYWQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kd2hpdGUtMTItb3BhY2l0eTogcmdiYSh3aGl0ZSwgMC4xMik7XG4vLyBAZGVwcmVjYXRlZCB1c2UgJGRhcmstW3NlY29uZGFyeS10ZXh0LGRpc2FibGVkLXRleHQsZGl2aWRlcnMsZm9jdXNlZF0gaW5zdGVhZC5cbi8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjBcbiRibGFjay02LW9wYWNpdHk6IHJnYmEoYmxhY2ssIDAuMDYpO1xuLy8gQGRlcHJlY2F0ZWQgdXNlICRsaWdodC1bc2Vjb25kYXJ5LXRleHQsZGlzYWJsZWQtdGV4dCxkaXZpZGVycyxmb2N1c2VkXSBpbnN0ZWFkLlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJHdoaXRlLTYtb3BhY2l0eTogcmdiYSh3aGl0ZSwgMC4wNik7XG5cbiRkYXJrLXByaW1hcnktdGV4dDogcmdiYShibGFjaywgMC44Nyk7XG4kZGFyay1zZWNvbmRhcnktdGV4dDogcmdiYShibGFjaywgMC41NCk7XG4kZGFyay1kaXNhYmxlZC10ZXh0OiByZ2JhKGJsYWNrLCAwLjM4KTtcbiRkYXJrLWRpdmlkZXJzOiByZ2JhKGJsYWNrLCAwLjEyKTtcbiRkYXJrLWZvY3VzZWQ6IHJnYmEoYmxhY2ssIDAuMTIpO1xuJGxpZ2h0LXByaW1hcnktdGV4dDogd2hpdGU7XG4kbGlnaHQtc2Vjb25kYXJ5LXRleHQ6IHJnYmEod2hpdGUsIDAuNyk7XG4kbGlnaHQtZGlzYWJsZWQtdGV4dDogcmdiYSh3aGl0ZSwgMC41KTtcbiRsaWdodC1kaXZpZGVyczogcmdiYSh3aGl0ZSwgMC4xMik7XG4kbGlnaHQtZm9jdXNlZDogcmdiYSh3aGl0ZSwgMC4xMik7XG5cbiRtYXQtcmVkOiAoXG4gIDUwOiAjZmZlYmVlLFxuICAxMDA6ICNmZmNkZDIsXG4gIDIwMDogI2VmOWE5YSxcbiAgMzAwOiAjZTU3MzczLFxuICA0MDA6ICNlZjUzNTAsXG4gIDUwMDogI2Y0NDMzNixcbiAgNjAwOiAjZTUzOTM1LFxuICA3MDA6ICNkMzJmMmYsXG4gIDgwMDogI2M2MjgyOCxcbiAgOTAwOiAjYjcxYzFjLFxuICBBMTAwOiAjZmY4YTgwLFxuICBBMjAwOiAjZmY1MjUyLFxuICBBNDAwOiAjZmYxNzQ0LFxuICBBNzAwOiAjZDUwMDAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtcGluazogKFxuICA1MDogI2ZjZTRlYyxcbiAgMTAwOiAjZjhiYmQwLFxuICAyMDA6ICNmNDhmYjEsXG4gIDMwMDogI2YwNjI5MixcbiAgNDAwOiAjZWM0MDdhLFxuICA1MDA6ICNlOTFlNjMsXG4gIDYwMDogI2Q4MWI2MCxcbiAgNzAwOiAjYzIxODViLFxuICA4MDA6ICNhZDE0NTcsXG4gIDkwMDogIzg4MGU0ZixcbiAgQTEwMDogI2ZmODBhYixcbiAgQTIwMDogI2ZmNDA4MSxcbiAgQTQwMDogI2Y1MDA1NyxcbiAgQTcwMDogI2M1MTE2MixcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LXB1cnBsZTogKFxuICA1MDogI2YzZTVmNSxcbiAgMTAwOiAjZTFiZWU3LFxuICAyMDA6ICNjZTkzZDgsXG4gIDMwMDogI2JhNjhjOCxcbiAgNDAwOiAjYWI0N2JjLFxuICA1MDA6ICM5YzI3YjAsXG4gIDYwMDogIzhlMjRhYSxcbiAgNzAwOiAjN2IxZmEyLFxuICA4MDA6ICM2YTFiOWEsXG4gIDkwMDogIzRhMTQ4YyxcbiAgQTEwMDogI2VhODBmYyxcbiAgQTIwMDogI2UwNDBmYixcbiAgQTQwMDogI2Q1MDBmOSxcbiAgQTcwMDogI2FhMDBmZixcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtZGVlcC1wdXJwbGU6IChcbiAgNTA6ICNlZGU3ZjYsXG4gIDEwMDogI2QxYzRlOSxcbiAgMjAwOiAjYjM5ZGRiLFxuICAzMDA6ICM5NTc1Y2QsXG4gIDQwMDogIzdlNTdjMixcbiAgNTAwOiAjNjczYWI3LFxuICA2MDA6ICM1ZTM1YjEsXG4gIDcwMDogIzUxMmRhOCxcbiAgODAwOiAjNDUyN2EwLFxuICA5MDA6ICMzMTFiOTIsXG4gIEExMDA6ICNiMzg4ZmYsXG4gIEEyMDA6ICM3YzRkZmYsXG4gIEE0MDA6ICM2NTFmZmYsXG4gIEE3MDA6ICM2MjAwZWEsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWluZGlnbzogKFxuICA1MDogI2U4ZWFmNixcbiAgMTAwOiAjYzVjYWU5LFxuICAyMDA6ICM5ZmE4ZGEsXG4gIDMwMDogIzc5ODZjYixcbiAgNDAwOiAjNWM2YmMwLFxuICA1MDA6ICMzZjUxYjUsXG4gIDYwMDogIzM5NDlhYixcbiAgNzAwOiAjMzAzZjlmLFxuICA4MDA6ICMyODM1OTMsXG4gIDkwMDogIzFhMjM3ZSxcbiAgQTEwMDogIzhjOWVmZixcbiAgQTIwMDogIzUzNmRmZSxcbiAgQTQwMDogIzNkNWFmZSxcbiAgQTcwMDogIzMwNGZmZSxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtYmx1ZTogKFxuICA1MDogI2UzZjJmZCxcbiAgMTAwOiAjYmJkZWZiLFxuICAyMDA6ICM5MGNhZjksXG4gIDMwMDogIzY0YjVmNixcbiAgNDAwOiAjNDJhNWY1LFxuICA1MDA6ICMyMTk2ZjMsXG4gIDYwMDogIzFlODhlNSxcbiAgNzAwOiAjMTk3NmQyLFxuICA4MDA6ICMxNTY1YzAsXG4gIDkwMDogIzBkNDdhMSxcbiAgQTEwMDogIzgyYjFmZixcbiAgQTIwMDogIzQ0OGFmZixcbiAgQTQwMDogIzI5NzlmZixcbiAgQTcwMDogIzI5NjJmZixcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWxpZ2h0LWJsdWU6IChcbiAgNTA6ICNlMWY1ZmUsXG4gIDEwMDogI2IzZTVmYyxcbiAgMjAwOiAjODFkNGZhLFxuICAzMDA6ICM0ZmMzZjcsXG4gIDQwMDogIzI5YjZmNixcbiAgNTAwOiAjMDNhOWY0LFxuICA2MDA6ICMwMzliZTUsXG4gIDcwMDogIzAyODhkMSxcbiAgODAwOiAjMDI3N2JkLFxuICA5MDA6ICMwMTU3OWIsXG4gIEExMDA6ICM4MGQ4ZmYsXG4gIEEyMDA6ICM0MGM0ZmYsXG4gIEE0MDA6ICMwMGIwZmYsXG4gIEE3MDA6ICMwMDkxZWEsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtY3lhbjogKFxuICA1MDogI2UwZjdmYSxcbiAgMTAwOiAjYjJlYmYyLFxuICAyMDA6ICM4MGRlZWEsXG4gIDMwMDogIzRkZDBlMSxcbiAgNDAwOiAjMjZjNmRhLFxuICA1MDA6ICMwMGJjZDQsXG4gIDYwMDogIzAwYWNjMSxcbiAgNzAwOiAjMDA5N2E3LFxuICA4MDA6ICMwMDgzOGYsXG4gIDkwMDogIzAwNjA2NCxcbiAgQTEwMDogIzg0ZmZmZixcbiAgQTIwMDogIzE4ZmZmZixcbiAgQTQwMDogIzAwZTVmZixcbiAgQTcwMDogIzAwYjhkNCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LXRlYWw6IChcbiAgNTA6ICNlMGYyZjEsXG4gIDEwMDogI2IyZGZkYixcbiAgMjAwOiAjODBjYmM0LFxuICAzMDA6ICM0ZGI2YWMsXG4gIDQwMDogIzI2YTY5YSxcbiAgNTAwOiAjMDA5Njg4LFxuICA2MDA6ICMwMDg5N2IsXG4gIDcwMDogIzAwNzk2YixcbiAgODAwOiAjMDA2OTVjLFxuICA5MDA6ICMwMDRkNDAsXG4gIEExMDA6ICNhN2ZmZWIsXG4gIEEyMDA6ICM2NGZmZGEsXG4gIEE0MDA6ICMxZGU5YjYsXG4gIEE3MDA6ICMwMGJmYTUsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1ncmVlbjogKFxuICA1MDogI2U4ZjVlOSxcbiAgMTAwOiAjYzhlNmM5LFxuICAyMDA6ICNhNWQ2YTcsXG4gIDMwMDogIzgxYzc4NCxcbiAgNDAwOiAjNjZiYjZhLFxuICA1MDA6ICM0Y2FmNTAsXG4gIDYwMDogIzQzYTA0NyxcbiAgNzAwOiAjMzg4ZTNjLFxuICA4MDA6ICMyZTdkMzIsXG4gIDkwMDogIzFiNWUyMCxcbiAgQTEwMDogI2I5ZjZjYSxcbiAgQTIwMDogIzY5ZjBhZSxcbiAgQTQwMDogIzAwZTY3NixcbiAgQTcwMDogIzAwYzg1MyxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtbGlnaHQtZ3JlZW46IChcbiAgNTA6ICNmMWY4ZTksXG4gIDEwMDogI2RjZWRjOCxcbiAgMjAwOiAjYzVlMWE1LFxuICAzMDA6ICNhZWQ1ODEsXG4gIDQwMDogIzljY2M2NSxcbiAgNTAwOiAjOGJjMzRhLFxuICA2MDA6ICM3Y2IzNDIsXG4gIDcwMDogIzY4OWYzOCxcbiAgODAwOiAjNTU4YjJmLFxuICA5MDA6ICMzMzY5MWUsXG4gIEExMDA6ICNjY2ZmOTAsXG4gIEEyMDA6ICNiMmZmNTksXG4gIEE0MDA6ICM3NmZmMDMsXG4gIEE3MDA6ICM2NGRkMTcsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtbGltZTogKFxuICA1MDogI2Y5ZmJlNyxcbiAgMTAwOiAjZjBmNGMzLFxuICAyMDA6ICNlNmVlOWMsXG4gIDMwMDogI2RjZTc3NSxcbiAgNDAwOiAjZDRlMTU3LFxuICA1MDA6ICNjZGRjMzksXG4gIDYwMDogI2MwY2EzMyxcbiAgNzAwOiAjYWZiNDJiLFxuICA4MDA6ICM5ZTlkMjQsXG4gIDkwMDogIzgyNzcxNyxcbiAgQTEwMDogI2Y0ZmY4MSxcbiAgQTIwMDogI2VlZmY0MSxcbiAgQTQwMDogI2M2ZmYwMCxcbiAgQTcwMDogI2FlZWEwMCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQteWVsbG93OiAoXG4gIDUwOiAjZmZmZGU3LFxuICAxMDA6ICNmZmY5YzQsXG4gIDIwMDogI2ZmZjU5ZCxcbiAgMzAwOiAjZmZmMTc2LFxuICA0MDA6ICNmZmVlNTgsXG4gIDUwMDogI2ZmZWIzYixcbiAgNjAwOiAjZmRkODM1LFxuICA3MDA6ICNmYmMwMmQsXG4gIDgwMDogI2Y5YTgyNSxcbiAgOTAwOiAjZjU3ZjE3LFxuICBBMTAwOiAjZmZmZjhkLFxuICBBMjAwOiAjZmZmZjAwLFxuICBBNDAwOiAjZmZlYTAwLFxuICBBNzAwOiAjZmZkNjAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWFtYmVyOiAoXG4gIDUwOiAjZmZmOGUxLFxuICAxMDA6ICNmZmVjYjMsXG4gIDIwMDogI2ZmZTA4MixcbiAgMzAwOiAjZmZkNTRmLFxuICA0MDA6ICNmZmNhMjgsXG4gIDUwMDogI2ZmYzEwNyxcbiAgNjAwOiAjZmZiMzAwLFxuICA3MDA6ICNmZmEwMDAsXG4gIDgwMDogI2ZmOGYwMCxcbiAgOTAwOiAjZmY2ZjAwLFxuICBBMTAwOiAjZmZlNTdmLFxuICBBMjAwOiAjZmZkNzQwLFxuICBBNDAwOiAjZmZjNDAwLFxuICBBNzAwOiAjZmZhYjAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LW9yYW5nZTogKFxuICA1MDogI2ZmZjNlMCxcbiAgMTAwOiAjZmZlMGIyLFxuICAyMDA6ICNmZmNjODAsXG4gIDMwMDogI2ZmYjc0ZCxcbiAgNDAwOiAjZmZhNzI2LFxuICA1MDA6ICNmZjk4MDAsXG4gIDYwMDogI2ZiOGMwMCxcbiAgNzAwOiAjZjU3YzAwLFxuICA4MDA6ICNlZjZjMDAsXG4gIDkwMDogI2U2NTEwMCxcbiAgQTEwMDogI2ZmZDE4MCxcbiAgQTIwMDogI2ZmYWI0MCxcbiAgQTQwMDogI2ZmOTEwMCxcbiAgQTcwMDogI2ZmNmQwMCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogYmxhY2ssXG4gIClcbik7XG5cbiRtYXQtZGVlcC1vcmFuZ2U6IChcbiAgNTA6ICNmYmU5ZTcsXG4gIDEwMDogI2ZmY2NiYyxcbiAgMjAwOiAjZmZhYjkxLFxuICAzMDA6ICNmZjhhNjUsXG4gIDQwMDogI2ZmNzA0MyxcbiAgNTAwOiAjZmY1NzIyLFxuICA2MDA6ICNmNDUxMWUsXG4gIDcwMDogI2U2NGExOSxcbiAgODAwOiAjZDg0MzE1LFxuICA5MDA6ICNiZjM2MGMsXG4gIEExMDA6ICNmZjllODAsXG4gIEEyMDA6ICNmZjZlNDAsXG4gIEE0MDA6ICNmZjNkMDAsXG4gIEE3MDA6ICNkZDJjMDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWJyb3duOiAoXG4gIDUwOiAjZWZlYmU5LFxuICAxMDA6ICNkN2NjYzgsXG4gIDIwMDogI2JjYWFhNCxcbiAgMzAwOiAjYTE4ODdmLFxuICA0MDA6ICM4ZDZlNjMsXG4gIDUwMDogIzc5NTU0OCxcbiAgNjAwOiAjNmQ0YzQxLFxuICA3MDA6ICM1ZDQwMzcsXG4gIDgwMDogIzRlMzQyZSxcbiAgOTAwOiAjM2UyNzIzLFxuICBBMTAwOiAjZDdjY2M4LFxuICBBMjAwOiAjYmNhYWE0LFxuICBBNDAwOiAjOGQ2ZTYzLFxuICBBNzAwOiAjNWQ0MDM3LFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWdyZXk6IChcbiAgNTA6ICNmYWZhZmEsXG4gIDEwMDogI2Y1ZjVmNSxcbiAgMjAwOiAjZWVlZWVlLFxuICAzMDA6ICNlMGUwZTAsXG4gIDQwMDogI2JkYmRiZCxcbiAgNTAwOiAjOWU5ZTllLFxuICA2MDA6ICM3NTc1NzUsXG4gIDcwMDogIzYxNjE2MSxcbiAgODAwOiAjNDI0MjQyLFxuICA5MDA6ICMyMTIxMjEsXG4gIEExMDA6ICNmZmZmZmYsXG4gIEEyMDA6ICNlZWVlZWUsXG4gIEE0MDA6ICNiZGJkYmQsXG4gIEE3MDA6ICM2MTYxNjEsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuLy8gQWxpYXMgZm9yIGFsdGVybmF0ZSBzcGVsbGluZy5cbiRtYXQtZ3JheTogJG1hdC1ncmV5O1xuXG4kbWF0LWJsdWUtZ3JleTogKFxuICA1MDogI2VjZWZmMSxcbiAgMTAwOiAjY2ZkOGRjLFxuICAyMDA6ICNiMGJlYzUsXG4gIDMwMDogIzkwYTRhZSxcbiAgNDAwOiAjNzg5MDljLFxuICA1MDA6ICM2MDdkOGIsXG4gIDYwMDogIzU0NmU3YSxcbiAgNzAwOiAjNDU1YTY0LFxuICA4MDA6ICMzNzQ3NGYsXG4gIDkwMDogIzI2MzIzOCxcbiAgQTEwMDogI2NmZDhkYyxcbiAgQTIwMDogI2IwYmVjNSxcbiAgQTQwMDogIzc4OTA5YyxcbiAgQTcwMDogIzQ1NWE2NCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4vLyBBbGlhcyBmb3IgYWx0ZXJuYXRlIHNwZWxsaW5nLlxuJG1hdC1ibHVlLWdyYXk6ICRtYXQtYmx1ZS1ncmV5O1xuXG5cbi8vIEJhY2tncm91bmQgcGFsZXR0ZSBmb3IgbGlnaHQgdGhlbWVzLlxuJG1hdC1saWdodC10aGVtZS1iYWNrZ3JvdW5kOiAoXG4gIHN0YXR1cy1iYXI6IG1hcC1nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBhcHAtYmFyOiAgICBtYXAtZ2V0KCRtYXQtZ3JleSwgMTAwKSxcbiAgYmFja2dyb3VuZDogbWFwLWdldCgkbWF0LWdyZXksIDUwKSxcbiAgaG92ZXI6ICAgICAgcmdiYShibGFjaywgMC4wNCksIC8vIFRPRE8oa2FyYSk6IGNoZWNrIHN0eWxlIHdpdGggTWF0ZXJpYWwgRGVzaWduIFVYXG4gIGNhcmQ6ICAgICAgIHdoaXRlLFxuICBkaWFsb2c6ICAgICB3aGl0ZSxcbiAgZGlzYWJsZWQtYnV0dG9uOiByZ2JhKGJsYWNrLCAwLjEyKSxcbiAgcmFpc2VkLWJ1dHRvbjogd2hpdGUsXG4gIGZvY3VzZWQtYnV0dG9uOiAkZGFyay1mb2N1c2VkLFxuICBzZWxlY3RlZC1idXR0b246IG1hcC1nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBzZWxlY3RlZC1kaXNhYmxlZC1idXR0b246IG1hcC1nZXQoJG1hdC1ncmV5LCA0MDApLFxuICBkaXNhYmxlZC1idXR0b24tdG9nZ2xlOiBtYXAtZ2V0KCRtYXQtZ3JleSwgMjAwKSxcbiAgdW5zZWxlY3RlZC1jaGlwOiBtYXAtZ2V0KCRtYXQtZ3JleSwgMzAwKSxcbiAgZGlzYWJsZWQtbGlzdC1vcHRpb246IG1hcC1nZXQoJG1hdC1ncmV5LCAyMDApLFxuICB0b29sdGlwOiBtYXAtZ2V0KCRtYXQtZ3JleSwgNzAwKSxcbik7XG5cbi8vIEJhY2tncm91bmQgcGFsZXR0ZSBmb3IgZGFyayB0aGVtZXMuXG4kbWF0LWRhcmstdGhlbWUtYmFja2dyb3VuZDogKFxuICBzdGF0dXMtYmFyOiBibGFjayxcbiAgYXBwLWJhcjogICAgbWFwLWdldCgkbWF0LWdyZXksIDkwMCksXG4gIGJhY2tncm91bmQ6ICMzMDMwMzAsXG4gIGhvdmVyOiAgICAgIHJnYmEod2hpdGUsIDAuMDQpLCAvLyBUT0RPKGthcmEpOiBjaGVjayBzdHlsZSB3aXRoIE1hdGVyaWFsIERlc2lnbiBVWFxuICBjYXJkOiAgICAgICBtYXAtZ2V0KCRtYXQtZ3JleSwgODAwKSxcbiAgZGlhbG9nOiAgICAgbWFwLWdldCgkbWF0LWdyZXksIDgwMCksXG4gIGRpc2FibGVkLWJ1dHRvbjogcmdiYSh3aGl0ZSwgMC4xMiksXG4gIHJhaXNlZC1idXR0b246IG1hcC1nZXQoJG1hdC1ncmV5LCA4MDApLFxuICBmb2N1c2VkLWJ1dHRvbjogJGxpZ2h0LWZvY3VzZWQsXG4gIHNlbGVjdGVkLWJ1dHRvbjogbWFwLWdldCgkbWF0LWdyZXksIDkwMCksXG4gIHNlbGVjdGVkLWRpc2FibGVkLWJ1dHRvbjogbWFwLWdldCgkbWF0LWdyZXksIDgwMCksXG4gIGRpc2FibGVkLWJ1dHRvbi10b2dnbGU6IGJsYWNrLFxuICB1bnNlbGVjdGVkLWNoaXA6IG1hcC1nZXQoJG1hdC1ncmV5LCA3MDApLFxuICBkaXNhYmxlZC1saXN0LW9wdGlvbjogYmxhY2ssXG4gIHRvb2x0aXA6IG1hcC1nZXQoJG1hdC1ncmV5LCA3MDApLFxuKTtcblxuLy8gRm9yZWdyb3VuZCBwYWxldHRlIGZvciBsaWdodCB0aGVtZXMuXG4kbWF0LWxpZ2h0LXRoZW1lLWZvcmVncm91bmQ6IChcbiAgYmFzZTogICAgICAgICAgICAgIGJsYWNrLFxuICBkaXZpZGVyOiAgICAgICAgICAgJGRhcmstZGl2aWRlcnMsXG4gIGRpdmlkZXJzOiAgICAgICAgICAkZGFyay1kaXZpZGVycyxcbiAgZGlzYWJsZWQ6ICAgICAgICAgICRkYXJrLWRpc2FibGVkLXRleHQsXG4gIGRpc2FibGVkLWJ1dHRvbjogICByZ2JhKGJsYWNrLCAwLjI2KSxcbiAgZGlzYWJsZWQtdGV4dDogICAgICRkYXJrLWRpc2FibGVkLXRleHQsXG4gIGVsZXZhdGlvbjogICAgICAgICBibGFjayxcbiAgaGludC10ZXh0OiAgICAgICAgICRkYXJrLWRpc2FibGVkLXRleHQsXG4gIHNlY29uZGFyeS10ZXh0OiAgICAkZGFyay1zZWNvbmRhcnktdGV4dCxcbiAgaWNvbjogICAgICAgICAgICAgIHJnYmEoYmxhY2ssIDAuNTQpLFxuICBpY29uczogICAgICAgICAgICAgcmdiYShibGFjaywgMC41NCksXG4gIHRleHQ6ICAgICAgICAgICAgICByZ2JhKGJsYWNrLCAwLjg3KSxcbiAgc2xpZGVyLW1pbjogICAgICAgIHJnYmEoYmxhY2ssIDAuODcpLFxuICBzbGlkZXItb2ZmOiAgICAgICAgcmdiYShibGFjaywgMC4yNiksXG4gIHNsaWRlci1vZmYtYWN0aXZlOiByZ2JhKGJsYWNrLCAwLjM4KSxcbik7XG5cbi8vIEZvcmVncm91bmQgcGFsZXR0ZSBmb3IgZGFyayB0aGVtZXMuXG4kbWF0LWRhcmstdGhlbWUtZm9yZWdyb3VuZDogKFxuICBiYXNlOiAgICAgICAgICAgICAgd2hpdGUsXG4gIGRpdmlkZXI6ICAgICAgICAgICAkbGlnaHQtZGl2aWRlcnMsXG4gIGRpdmlkZXJzOiAgICAgICAgICAkbGlnaHQtZGl2aWRlcnMsXG4gIGRpc2FibGVkOiAgICAgICAgICAkbGlnaHQtZGlzYWJsZWQtdGV4dCxcbiAgZGlzYWJsZWQtYnV0dG9uOiAgIHJnYmEod2hpdGUsIDAuMyksXG4gIGRpc2FibGVkLXRleHQ6ICAgICAkbGlnaHQtZGlzYWJsZWQtdGV4dCxcbiAgZWxldmF0aW9uOiAgICAgICAgIGJsYWNrLFxuICBoaW50LXRleHQ6ICAgICAgICAgJGxpZ2h0LWRpc2FibGVkLXRleHQsXG4gIHNlY29uZGFyeS10ZXh0OiAgICAkbGlnaHQtc2Vjb25kYXJ5LXRleHQsXG4gIGljb246ICAgICAgICAgICAgICB3aGl0ZSxcbiAgaWNvbnM6ICAgICAgICAgICAgIHdoaXRlLFxuICB0ZXh0OiAgICAgICAgICAgICAgd2hpdGUsXG4gIHNsaWRlci1taW46ICAgICAgICB3aGl0ZSxcbiAgc2xpZGVyLW9mZjogICAgICAgIHJnYmEod2hpdGUsIDAuMyksXG4gIHNsaWRlci1vZmYtYWN0aXZlOiByZ2JhKHdoaXRlLCAwLjMpLFxuKTtcblxuLy8gTm90ZSB0aGF0IHRoaXMgZmlsZSBpcyBjYWxsZWQgYHByaXZhdGVgLCBiZWNhdXNlIHRoZSBBUElzIGluIGl0IGFyZW4ndCBwdWJsaWMgeWV0LlxuLy8gT25jZSB0aGV5J3JlIG1hZGUgYXZhaWxhYmxlLCB0aGUgY29kZSBzaG91bGQgYmUgbW92ZWQgb3V0IGludG8gYW4gYGluZGV4LnNjc3NgLlxuXG4vLyBUYWtlbiBmcm9tIG1hdC1kZW5zaXR5IHdpdGggc21hbGwgbW9kaWZpY2F0aW9ucyB0byBub3QgcmVseSBvbiB0aGUgbmV3IFNhc3MgbW9kdWxlXG4vLyBzeXN0ZW0sIGFuZCB0byBzdXBwb3J0IGFyYml0cmFyeSBwcm9wZXJ0aWVzIGluIGEgZGVuc2l0eSBjb25maWd1cmF0aW9uLlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL21hdGVyaWFsLWNvbXBvbmVudHMvbWF0ZXJpYWwtY29tcG9uZW50cy13ZWIvYmxvYi9tYXN0ZXIvcGFja2FnZXMvbWRjLWRlbnNpdHlcblxuJF9tYXQtZGVuc2l0eS1pbnRlcnZhbDogNHB4ICFkZWZhdWx0O1xuJF9tYXQtZGVuc2l0eS1taW5pbXVtLXNjYWxlOiBtaW5pbXVtICFkZWZhdWx0O1xuJF9tYXQtZGVuc2l0eS1tYXhpbXVtLXNjYWxlOiBtYXhpbXVtICFkZWZhdWx0O1xuJF9tYXQtZGVuc2l0eS1zdXBwb3J0ZWQtc2NhbGVzOiAoZGVmYXVsdCwgbWluaW11bSwgbWF4aW11bSkgIWRlZmF1bHQ7XG4kX21hdC1kZW5zaXR5LWRlZmF1bHQtc2NhbGU6IDAgIWRlZmF1bHQ7XG5cbi8vIFdoZXRoZXIgZGVuc2l0eSBzaG91bGQgYmUgZ2VuZXJhdGVkIGF0IHJvb3QuIFRoaXMgd2lsbCBiZSB0ZW1wb3JhcmlseSBzZXQgdG8gYHRydWVgXG4vLyB3aGVuZXZlciBkZW5zaXR5IHN0eWxlcyBmb3IgbGVnYWN5IHRoZW1lcyBhcmUgZ2VuZXJhdGVkLlxuJG1hdC1wcml2YXRlLWRlbnNpdHktZ2VuZXJhdGUtYXQtcm9vdDogZmFsc2U7XG4vLyBXaGV0aGVyIGRlbnNpdHkgc3R5bGVzIHNob3VsZCBiZSBnZW5lcmF0ZWQuIFRoaXMgd2lsbCBiZSB0ZW1wb3JhcmlseSBzZXQgdG8gYGZhbHNlYCBpZlxuLy8gZHVwbGljYXRlIGRlbnNpdHkgc3R5bGVzIGZvciBhIGxlZ2FjeSB0aGVtZSB3b3VsZCBiZSBnZW5lcmF0ZWQuIEZvciBsZWdhY3kgdGhlbWVzLFxuLy8gd2UgYWx3YXlzIGdlbmVyYXRlIHRoZSBkZWZhdWx0IGRlbnNpdHkgKipvbmx5IG9uY2UqKiBhdCByb290LlxuJG1hdC1wcml2YXRlLWRlbnNpdHktZ2VuZXJhdGUtc3R5bGVzOiB0cnVlO1xuXG4vLyBNaXhpbiB0aGF0IGNhbiBiZSB1c2VkIHRvIHdyYXAgZGVuc2l0eSBzdHlsZXMgb2YgZ2l2ZW4gY29tcG9uZW50cy4gVGhlIG1peGluIHdpbGxcbi8vIG1vdmUgdGhlIGRlbnNpdHkgc3R5bGVzIHRvIHJvb3QgaWYgdGhlIGAkbWF0LXByaXZhdGUtZGVuc2l0eS1nZW5lcmF0ZS1hdC1yb290YCBnbG9iYWwgdmFyaWFibGVcbi8vIGlzIHNldC4gSWYgYCRtYXQtcHJpdmF0ZS1kZW5zaXR5LWdlbmVyYXRlLXN0eWxlc2AgaXMgc2V0IHRvIGBmYWxzZWAsIGdlbmVyYXRpb24gb2YgZGVuc2l0eVxuLy8gc3R5bGVzIHdyYXBwZWQgaW4gdGhpcyBtaXhpbiBpcyBza2lwcGVkLiBUaGlzIG1peGluIGV4aXN0cyB0byBpbXByb3ZlIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4vLyBvZiB0aGUgbmV3IHRoZW1pbmcgQVBJIHdoZXJlIGRlbnNpdHkgc3R5bGVzIGFyZSBpbmNsdWRlZCBhcyBwYXJ0IG9mIHRoZW1lcy4gUHJldmlvdXNseSxcbi8vIGRlbnNpdHkgc3R5bGVzIG9mIGNvbXBvbmVudHMgd2VyZSBwYXJ0IG9mIHRoZWlyIGJhc2Ugc3R5bGVzLiBXaXRoIHRoZSBuZXcgQVBJLCB0aGV5IGFyZVxuLy8gcGFydCBvZiB0aGUgdGhlbWluZyBzeXN0ZW0uIFRoZSBgPC4uPi10aGVtZWAgbWl4aW5zIGdlbmVyYXRlIGRlbnNpdHkgYnkgZGVmYXVsdCB1bmxlc3Ncbi8vIHRoZSBkZW5zaXR5IGNvbmZpZ3VyYXRpb24gaXMgZXhwbGljaXRseSBzcGVjaWZpZWQgYXMgcGVyIG5ldyBBUEkuIFRoaXMgbWVhbnMsIHRoYXQgcHJvamVjdHNcbi8vIHVzaW5nIGA8Li4+LXRoZW1lYCBtaXhpbnMgZm9yIHNlcGFyYXRlIHRoZW1lcyAobGlrZSBgLmRhcmstdGhlbWVgKSB3aWxsIGNhdXNlIGR1cGxpY2F0ZVxuLy8gZGVuc2l0eSBzdHlsZXMuIFRoaXMgaXMgYnJlYWtpbmcgYXMgaXQgaW5jcmVhc2VzIHNwZWNpZmljaXR5IG9mIGRlbnNpdHkgc3R5bGVzLiBUaGlzIG1peGluXG4vLyBwcm92aWRlcyBhbiBBUEkgdG8gY29udHJvbCBnZW5lcmF0aW9uIG9mIGRlbnNpdHkgc3R5bGVzIHNvIHRoYXQgd2UgY2FuIGVuc3VyZSB0aGV5IGFyZSBvbmx5XG4vLyBjcmVhdGVkICpvbmNlKiBhbmQgYXQgcm9vdC5cbkBtaXhpbiBtYXQtcHJpdmF0ZS1kZW5zaXR5LWxlZ2FjeS1jb21wYXRpYmlsaXR5KCkge1xuICBAaWYgJG1hdC1wcml2YXRlLWRlbnNpdHktZ2VuZXJhdGUtc3R5bGVzIGFuZCAkbWF0LXByaXZhdGUtZGVuc2l0eS1nZW5lcmF0ZS1hdC1yb290IHtcbiAgICBAYXQtcm9vdCB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJG1hdC1wcml2YXRlLWRlbnNpdHktZ2VuZXJhdGUtc3R5bGVzIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AZnVuY3Rpb24gbWF0LXByaXZhdGUtZGVuc2l0eS1wcm9wLXZhbHVlKCRkZW5zaXR5LWNvbmZpZywgJGRlbnNpdHktc2NhbGUsICRwcm9wZXJ0eS1uYW1lKSB7XG4gIEBpZiAodHlwZS1vZigkZGVuc2l0eS1zY2FsZSkgPT0gJ3N0cmluZycgYW5kXG4gICAgICBpbmRleCgkbGlzdDogJF9tYXQtZGVuc2l0eS1zdXBwb3J0ZWQtc2NhbGVzLCAkdmFsdWU6ICRkZW5zaXR5LXNjYWxlKSA9PSBudWxsKSB7XG4gICAgQGVycm9yICdtYXQtZGVuc2l0eTogU3VwcG9ydGVkIGRlbnNpdHkgc2NhbGVzICN7JF9tYXQtZGVuc2l0eS1zdXBwb3J0ZWQtc2NhbGVzfSwgJyAgK1xuICAgICAgJ2J1dCByZWNlaXZlZCAjeyRkZW5zaXR5LXNjYWxlfS4nO1xuICB9XG5cbiAgJHZhbHVlOiBudWxsO1xuICAkcHJvcGVydHktc2NhbGUtbWFwOiBtYXAtZ2V0KCRkZW5zaXR5LWNvbmZpZywgJHByb3BlcnR5LW5hbWUpO1xuXG4gIEBpZiBtYXAtaGFzLWtleSgkcHJvcGVydHktc2NhbGUtbWFwLCAkZGVuc2l0eS1zY2FsZSkge1xuICAgICR2YWx1ZTogbWFwLWdldCgkcHJvcGVydHktc2NhbGUtbWFwLCAkZGVuc2l0eS1zY2FsZSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgICR2YWx1ZTogbWFwLWdldCgkcHJvcGVydHktc2NhbGUtbWFwLCBkZWZhdWx0KSArICRkZW5zaXR5LXNjYWxlICogJF9tYXQtZGVuc2l0eS1pbnRlcnZhbDtcbiAgfVxuXG4gICRtaW4tdmFsdWU6IG1hcC1nZXQoJHByb3BlcnR5LXNjYWxlLW1hcCwgJF9tYXQtZGVuc2l0eS1taW5pbXVtLXNjYWxlKTtcbiAgJG1heC12YWx1ZTogbWFwLWdldCgkcHJvcGVydHktc2NhbGUtbWFwLCAkX21hdC1kZW5zaXR5LW1heGltdW0tc2NhbGUpO1xuXG4gIEBpZiAoJHZhbHVlIDwgJG1pbi12YWx1ZSBvciAkdmFsdWUgPiAkbWF4LXZhbHVlKSB7XG4gICAgQGVycm9yICdtYXQtZGVuc2l0eTogI3skcHJvcGVydHktbmFtZX0gbXVzdCBiZSBiZXR3ZWVuICN7JG1pbi12YWx1ZX0gYW5kICcgK1xuICAgICAgJyN7JG1heC12YWx1ZX0gKGluY2x1c2l2ZSksIGJ1dCByZWNlaXZlZCAjeyR2YWx1ZX0uJztcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5cbi8vIFdoZXRoZXIgZHVwbGljYXRpb24gd2FybmluZ3Mgc2hvdWxkIGJlIGRpc2FibGVkLiBXYXJuaW5ncyBlbmFibGVkIGJ5IGRlZmF1bHQuXG4kbWF0LXRoZW1lLWlnbm9yZS1kdXBsaWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFdoZXRoZXIgZGVuc2l0eSBzaG91bGQgYmUgZ2VuZXJhdGVkIGJ5IGRlZmF1bHQuXG4kX21hdC10aGVtZS1nZW5lcmF0ZS1kZWZhdWx0LWRlbnNpdHk6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIFdhcm5pbmcgdGhhdCB3aWxsIGJlIHByaW50ZWQgaWYgZHVwbGljYXRlZCBzdHlsZXMgYXJlIGdlbmVyYXRlZCBieSBhIHRoZW1lLlxuJF9tYXQtdGhlbWUtZHVwbGljYXRlLXdhcm5pbmc6ICdSZWFkIG1vcmUgYWJvdXQgaG93IHN0eWxlIGR1cGxpY2F0aW9uIGNhbiBiZSBhdm9pZGVkIGluIGEgJyArXG4gICdkZWRpY2F0ZWQgZ3VpZGUuIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvYmxvYi9tYXN0ZXIvZ3VpZGVzL2R1cGxpY2F0ZS10aGVtaW5nLXN0eWxlcy5tZCc7XG5cbi8vIFRoZXNlIHZhcmlhYmxlIGFyZSBub3QgaW50ZW5kZWQgdG8gYmUgb3ZlcnJpZGRlbiBleHRlcm5hbGx5LiBUaGV5IHVzZSBgIWRlZmF1bHRgIHRvXG4vLyBhdm9pZCBiZWluZyByZXNldCBldmVyeSB0aW1lIHRoaXMgZmlsZSBpcyBpbXBvcnRlZC5cbiRfbWF0LXRoZW1lLWVtaXR0ZWQtY29sb3I6ICgpICFkZWZhdWx0O1xuJF9tYXQtdGhlbWUtZW1pdHRlZC10eXBvZ3JhcGh5OiAoKSAhZGVmYXVsdDtcbiRfbWF0LXRoZW1lLWVtaXR0ZWQtZGVuc2l0eTogKCkgIWRlZmF1bHQ7XG5cbi8vIEZvciBhIGdpdmVuIGh1ZSBpbiBhIHBhbGV0dGUsIHJldHVybiB0aGUgY29udHJhc3QgY29sb3IgZnJvbSB0aGUgbWFwIG9mIGNvbnRyYXN0IHBhbGV0dGVzLlxuLy8gQHBhcmFtICRwYWxldHRlXG4vLyBAcGFyYW0gJGh1ZVxuQGZ1bmN0aW9uIG1hdC1jb250cmFzdCgkcGFsZXR0ZSwgJGh1ZSkge1xuICBAcmV0dXJuIG1hcC1nZXQobWFwLWdldCgkcGFsZXR0ZSwgY29udHJhc3QpLCAkaHVlKTtcbn1cblxuXG4vLyBDcmVhdGVzIGEgbWFwIG9mIGh1ZXMgdG8gY29sb3JzIGZvciBhIHRoZW1lLiBUaGlzIGlzIHVzZWQgdG8gZGVmaW5lIGEgdGhlbWUgcGFsZXR0ZSBpbiB0ZXJtc1xuLy8gb2YgdGhlIE1hdGVyaWFsIERlc2lnbiBodWVzLlxuLy8gQHBhcmFtICRiYXNlLXBhbGV0dGVcbi8vIEBwYXJhbSAkZGVmYXVsdFxuLy8gQHBhcmFtICRsaWdodGVyXG4vLyBAcGFyYW0gJGRhcmtlclxuLy8gQHBhcmFtICR0ZXh0XG5AZnVuY3Rpb24gbWF0LXBhbGV0dGUoJGJhc2UtcGFsZXR0ZSwgJGRlZmF1bHQ6IDUwMCwgJGxpZ2h0ZXI6IDEwMCwgJGRhcmtlcjogNzAwLCAkdGV4dDogJGRlZmF1bHQpIHtcbiAgJHJlc3VsdDogbWFwLW1lcmdlKCRiYXNlLXBhbGV0dGUsIChcbiAgICBkZWZhdWx0OiBtYXAtZ2V0KCRiYXNlLXBhbGV0dGUsICRkZWZhdWx0KSxcbiAgICBsaWdodGVyOiBtYXAtZ2V0KCRiYXNlLXBhbGV0dGUsICRsaWdodGVyKSxcbiAgICBkYXJrZXI6IG1hcC1nZXQoJGJhc2UtcGFsZXR0ZSwgJGRhcmtlciksXG4gICAgdGV4dDogbWFwLWdldCgkYmFzZS1wYWxldHRlLCAkdGV4dCksXG5cbiAgICBkZWZhdWx0LWNvbnRyYXN0OiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGRlZmF1bHQpLFxuICAgIGxpZ2h0ZXItY29udHJhc3Q6IG1hdC1jb250cmFzdCgkYmFzZS1wYWxldHRlLCAkbGlnaHRlciksXG4gICAgZGFya2VyLWNvbnRyYXN0OiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGRhcmtlcilcbiAgKSk7XG5cbiAgLy8gRm9yIGVhY2ggaHVlIGluIHRoZSBwYWxldHRlLCBhZGQgYSBcIi1jb250cmFzdFwiIGNvbG9yIHRvIHRoZSBtYXAuXG4gIEBlYWNoICRodWUsICRjb2xvciBpbiAkYmFzZS1wYWxldHRlIHtcbiAgICAkcmVzdWx0OiBtYXAtbWVyZ2UoJHJlc3VsdCwgKFxuICAgICAgJyN7JGh1ZX0tY29udHJhc3QnOiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGh1ZSlcbiAgICApKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuXG4vLyBHZXRzIGEgY29sb3IgZnJvbSBhIHRoZW1lIHBhbGV0dGUgKHRoZSBvdXRwdXQgb2YgbWF0LXBhbGV0dGUpLlxuLy8gVGhlIGh1ZSBjYW4gYmUgb25lIG9mIHRoZSBzdGFuZGFyZCB2YWx1ZXMgKDUwMCwgQTQwMCwgZXRjLiksIG9uZSBvZiB0aGUgdGhyZWUgcHJlY29uZmlndXJlZFxuLy8gaHVlcyAoZGVmYXVsdCwgbGlnaHRlciwgZGFya2VyKSwgb3IgYW55IG9mIHRoZSBhZm9yZW1lbnRpb25lZCBwcmVmaXhlZCB3aXRoIFwiLWNvbnRyYXN0XCIuXG4vL1xuLy8gQHBhcmFtICRwYWxldHRlIFRoZSB0aGVtZSBwYWxldHRlIChvdXRwdXQgb2YgbWF0LXBhbGV0dGUpLlxuLy8gQHBhcmFtICRodWUgVGhlIGh1ZSBmcm9tIHRoZSBwYWxldHRlIHRvIHVzZS4gSWYgdGhpcyBpcyBhIHZhbHVlIGJldHdlZW4gMCBhbmQgMSwgaXQgd2lsbFxuLy8gICAgIGJlIHRyZWF0ZWQgYXMgb3BhY2l0eS5cbi8vIEBwYXJhbSAkb3BhY2l0eSBUaGUgYWxwaGEgY2hhbm5lbCB2YWx1ZSBmb3IgdGhlIGNvbG9yLlxuQGZ1bmN0aW9uIG1hdC1jb2xvcigkcGFsZXR0ZSwgJGh1ZTogZGVmYXVsdCwgJG9wYWNpdHk6IG51bGwpIHtcbiAgLy8gSWYgaHVlS2V5IGlzIGEgbnVtYmVyIGJldHdlZW4gemVybyBhbmQgb25lLCB0aGVuIGl0IGFjdHVhbGx5IGNvbnRhaW5zIGFuXG4gIC8vIG9wYWNpdHkgdmFsdWUsIHNvIHJlY2FsbCB0aGlzIGZ1bmN0aW9uIHdpdGggdGhlIGRlZmF1bHQgaHVlIGFuZCB0aGF0IGdpdmVuIG9wYWNpdHkuXG4gIEBpZiB0eXBlLW9mKCRodWUpID09IG51bWJlciBhbmQgJGh1ZSA+PSAwIGFuZCAkaHVlIDw9IDEge1xuICAgIEByZXR1cm4gbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LCAkaHVlKTtcbiAgfVxuXG4gICRjb2xvcjogbWFwLWdldCgkcGFsZXR0ZSwgJGh1ZSk7XG5cbiAgQGlmICh0eXBlLW9mKCRjb2xvcikgIT0gY29sb3IpIHtcbiAgICAvLyBJZiB0aGUgJGNvbG9yIHJlc29sdmVkIHRvIHNvbWV0aGluZyBkaWZmZXJlbnQgZnJvbSBhIGNvbG9yIChlLmcuIGEgQ1NTIHZhcmlhYmxlKSxcbiAgICAvLyB3ZSBjYW4ndCBhcHBseSB0aGUgb3BhY2l0eSBhbnl3YXkgc28gd2UgcmV0dXJuIHRoZSB2YWx1ZSBhcyBpcywgb3RoZXJ3aXNlIFNhc3MgY2FuXG4gICAgLy8gdGhyb3cgYW4gZXJyb3Igb3Igb3V0cHV0IHNvbWV0aGluZyBpbnZhbGlkLlxuICAgIEByZXR1cm4gJGNvbG9yO1xuICB9XG5cbiAgQHJldHVybiByZ2JhKCRjb2xvciwgaWYoJG9wYWNpdHkgPT0gbnVsbCwgb3BhY2l0eSgkY29sb3IpLCAkb3BhY2l0eSkpO1xufVxuXG4vLyBWYWxpZGF0ZXMgdGhlIHNwZWNpZmllZCB0aGVtZSBieSBlbnN1cmluZyB0aGF0IHRoZSBvcHRpb25hbCBjb2xvciBjb25maWcgZGVmaW5lc1xuLy8gYSBwcmltYXJ5LCBhY2NlbnQgYW5kIHdhcm4gcGFsZXR0ZS4gUmV0dXJucyB0aGUgdGhlbWUgaWYgbm8gZmFpbHVyZXMgd2VyZSBmb3VuZC5cbkBmdW5jdGlvbiBfbWF0LXZhbGlkYXRlLXRoZW1lKCR0aGVtZSkge1xuICBAaWYgbWFwLWdldCgkdGhlbWUsIGNvbG9yKSB7XG4gICAgJGNvbG9yOiBtYXAtZ2V0KCR0aGVtZSwgY29sb3IpO1xuICAgIEBpZiBub3QgbWFwLWdldCgkY29sb3IsIHByaW1hcnkpIHtcbiAgICAgIEBlcnJvciAnVGhlbWUgZG9lcyBub3QgZGVmaW5lIGEgdmFsaWQgXCJwcmltYXJ5XCIgcGFsZXR0ZS4nO1xuICAgIH1cbiAgICBAZWxzZSBpZiBub3QgbWFwLWdldCgkY29sb3IsIGFjY2VudCkge1xuICAgICAgQGVycm9yICdUaGVtZSBkb2VzIG5vdCBkZWZpbmUgYSB2YWxpZCBcImFjY2VudFwiIHBhbGV0dGUuJztcbiAgICB9XG4gICAgQGVsc2UgaWYgbm90IG1hcC1nZXQoJGNvbG9yLCB3YXJuKSB7XG4gICAgICBAZXJyb3IgJ1RoZW1lIGRvZXMgbm90IGRlZmluZSBhIHZhbGlkIFwid2FyblwiIHBhbGV0dGUuJztcbiAgICB9XG4gIH1cbiAgQHJldHVybiAkdGhlbWU7XG59XG5cbi8vIENyZWF0ZXMgYSBsaWdodC10aGVtZWQgY29sb3IgY29uZmlndXJhdGlvbiBmcm9tIHRoZSBzcGVjaWZpZWRcbi8vIHByaW1hcnksIGFjY2VudCBhbmQgd2FybiBwYWxldHRlcy5cbkBmdW5jdGlvbiBfbWF0LWNyZWF0ZS1saWdodC1jb2xvci1jb25maWcoJHByaW1hcnksICRhY2NlbnQsICR3YXJuOiBudWxsKSB7XG4gIEByZXR1cm4gKFxuICAgIHByaW1hcnk6ICRwcmltYXJ5LFxuICAgIGFjY2VudDogJGFjY2VudCxcbiAgICB3YXJuOiBpZigkd2FybiAhPSBudWxsLCAkd2FybiwgbWF0LXBhbGV0dGUoJG1hdC1yZWQpKSxcbiAgICBpcy1kYXJrOiBmYWxzZSxcbiAgICBmb3JlZ3JvdW5kOiAkbWF0LWxpZ2h0LXRoZW1lLWZvcmVncm91bmQsXG4gICAgYmFja2dyb3VuZDogJG1hdC1saWdodC10aGVtZS1iYWNrZ3JvdW5kLFxuICApO1xufVxuXG4vLyBDcmVhdGVzIGEgZGFyay10aGVtZWQgY29sb3IgY29uZmlndXJhdGlvbiBmcm9tIHRoZSBzcGVjaWZpZWRcbi8vIHByaW1hcnksIGFjY2VudCBhbmQgd2FybiBwYWxldHRlcy5cbkBmdW5jdGlvbiBfbWF0LWNyZWF0ZS1kYXJrLWNvbG9yLWNvbmZpZygkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm46IG51bGwpIHtcbiAgQHJldHVybiAoXG4gICAgcHJpbWFyeTogJHByaW1hcnksXG4gICAgYWNjZW50OiAkYWNjZW50LFxuICAgIHdhcm46IGlmKCR3YXJuICE9IG51bGwsICR3YXJuLCBtYXQtcGFsZXR0ZSgkbWF0LXJlZCkpLFxuICAgIGlzLWRhcms6IHRydWUsXG4gICAgZm9yZWdyb3VuZDogJG1hdC1kYXJrLXRoZW1lLWZvcmVncm91bmQsXG4gICAgYmFja2dyb3VuZDogJG1hdC1kYXJrLXRoZW1lLWJhY2tncm91bmQsXG4gICk7XG59XG5cbi8vIENyZWF0ZXMgYSBjb250YWluZXIgb2JqZWN0IGZvciBhIGxpZ2h0IHRoZW1lIHRvIGJlIGdpdmVuIHRvIGluZGl2aWR1YWwgY29tcG9uZW50IHRoZW1lIG1peGlucy5cbi8vIFRPRE86IFJlbW92ZSBsZWdhY3kgQVBJIGFuZCByZW5hbWUgYCRwcmltYXJ5YCB0byBgJGNvbmZpZ2AuIEN1cnJlbnRseSBpdCBjYW5ub3QgYmUgcmVuYW1lZFxuLy8gYXMgaXQgd291bGQgYnJlYWsgZXhpc3RpbmcgYXBwcyB0aGF0IHNldCB0aGUgcGFyYW1ldGVyIGJ5IG5hbWUuXG5AZnVuY3Rpb24gbWF0LWxpZ2h0LXRoZW1lKCRwcmltYXJ5LCAkYWNjZW50OiBudWxsLCAkd2FybjogbWF0LXBhbGV0dGUoJG1hdC1yZWQpKSB7XG4gIC8vIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIGNvbnRhaW5lciBvYmplY3QgZm9yIHRoZSBpbmRpdmlkdWFsIGNvbXBvbmVudCB0aGVtZSBtaXhpbnMuIENvbnN1bWVyc1xuICAvLyBjYW4gY29uc3RydWN0IHN1Y2ggYW4gb2JqZWN0IGJ5IGNhbGxpbmcgdGhpcyBmdW5jdGlvbiwgb3IgYnkgYnVpbGRpbmcgdGhlIG9iamVjdCBtYW51YWxseS5cbiAgLy8gVGhlcmUgYXJlIHR3byBwb3NzaWJsZSB3YXlzIHRvIGludm9rZSB0aGlzIGZ1bmN0aW9uIGluIG9yZGVyIHRvIGNyZWF0ZSBzdWNoIGFuIG9iamVjdDpcbiAgLy9cbiAgLy8gICAgKDEpIFBhc3NpbmcgaW4gYSBtYXAgdGhhdCBob2xkcyBvcHRpb25hbCBjb25maWd1cmF0aW9ucyBmb3IgaW5kaXZpZHVhbCBwYXJ0cyBvZiB0aGVcbiAgLy8gICAgICAgIHRoZW1pbmcgc3lzdGVtLiBGb3IgYGNvbG9yYCBjb25maWd1cmF0aW9ucywgdGhlIGZ1bmN0aW9uIG9ubHkgZXhwZWN0cyB0aGUgcGFsZXR0ZXNcbiAgLy8gICAgICAgIGZvciBgcHJpbWFyeWAgYW5kIGBhY2NlbnRgIChhbmQgb3B0aW9uYWxseSBgd2FybmApLiBUaGUgZnVuY3Rpb24gd2lsbCBleHBhbmQgdGhlXG4gIC8vICAgICAgICBzaG9ydGhhbmQgaW50byBhbiBhY3R1YWwgY29uZmlndXJhdGlvbiB0aGF0IGNhbiBiZSBjb25zdW1lZCBpbiBgLWNvbG9yYCBtaXhpbnMuXG4gIC8vICAgICgyKSBMZWdhY3kgcGF0dGVybjogUGFzc2luZyBpbiB0aGUgcGFsZXR0ZXMgYXMgcGFyYW1ldGVycy4gVGhpcyBpcyBub3QgYXMgZmxleGlibGVcbiAgLy8gICAgICAgIGFzIHBhc3NpbmcgaW4gYSBjb25maWd1cmF0aW9uIG1hcCBiZWNhdXNlIG9ubHkgdGhlIGBjb2xvcmAgc3lzdGVtIGNhbiBiZSBjb25maWd1cmVkLlxuICAvL1xuICAvLyBJZiB0aGUgbGVnYWN5IHBhdHRlcm4gaXMgdXNlZCwgd2UgZ2VuZXJhdGUgYSBjb250YWluZXIgb2JqZWN0IG9ubHkgd2l0aCBhIGxpZ2h0LXRoZW1lZFxuICAvLyBjb25maWd1cmF0aW9uIGZvciB0aGUgYGNvbG9yYCB0aGVtaW5nIHBhcnQuXG4gIEBpZiAkYWNjZW50ICE9IG51bGwge1xuICAgIEByZXR1cm4gbWF0LXByaXZhdGUtY3JlYXRlLWJhY2t3YXJkcy1jb21wYXRpYmlsaXR5LXRoZW1lKF9tYXQtdmFsaWRhdGUtdGhlbWUoKFxuICAgICAgX2lzLWxlZ2FjeS10aGVtZTogdHJ1ZSxcbiAgICAgIGNvbG9yOiBfbWF0LWNyZWF0ZS1saWdodC1jb2xvci1jb25maWcoJHByaW1hcnksICRhY2NlbnQsICR3YXJuKSxcbiAgICApKSk7XG4gIH1cbiAgLy8gSWYgdGhlIG1hcCBwYXR0ZXJuIGlzIHVzZWQgKDEpLCB3ZSBqdXN0IHBhc3MtdGhyb3VnaCB0aGUgY29uZmlndXJhdGlvbnMgZm9yIGluZGl2aWR1YWxcbiAgLy8gcGFydHMgb2YgdGhlIHRoZW1pbmcgc3lzdGVtLCBidXQgdXBkYXRlIHRoZSBgY29sb3JgIGNvbmZpZ3VyYXRpb24gaWYgc2V0LiBBcyBleHBsYWluZWRcbiAgLy8gYWJvdmUsIHRoZSBjb2xvciBzaG9ydGhhbmQgd2lsbCBiZSBleHBhbmRlZCB0byBhbiBhY3R1YWwgbGlnaHQtdGhlbWVkIGNvbG9yIGNvbmZpZ3VyYXRpb24uXG4gICRyZXN1bHQ6ICRwcmltYXJ5O1xuICBAaWYgbWFwLWdldCgkcHJpbWFyeSwgY29sb3IpIHtcbiAgICAkY29sb3Itc2V0dGluZ3M6IG1hcC1nZXQoJHByaW1hcnksIGNvbG9yKTtcbiAgICAkcHJpbWFyeTogbWFwLWdldCgkY29sb3Itc2V0dGluZ3MsIHByaW1hcnkpO1xuICAgICRhY2NlbnQ6IG1hcC1nZXQoJGNvbG9yLXNldHRpbmdzLCBhY2NlbnQpO1xuICAgICR3YXJuOiBtYXAtZ2V0KCRjb2xvci1zZXR0aW5ncywgd2Fybik7XG4gICAgJHJlc3VsdDogbWFwLW1lcmdlKCRyZXN1bHQsIChjb2xvcjogX21hdC1jcmVhdGUtbGlnaHQtY29sb3ItY29uZmlnKCRwcmltYXJ5LCAkYWNjZW50LCAkd2FybikpKTtcbiAgfVxuICBAcmV0dXJuIG1hdC1wcml2YXRlLWNyZWF0ZS1iYWNrd2FyZHMtY29tcGF0aWJpbGl0eS10aGVtZShfbWF0LXZhbGlkYXRlLXRoZW1lKCRyZXN1bHQpKTtcbn1cblxuLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBvYmplY3QgZm9yIGEgZGFyayB0aGVtZSB0byBiZSBnaXZlbiB0byBpbmRpdmlkdWFsIGNvbXBvbmVudCB0aGVtZSBtaXhpbnMuXG4vLyBUT0RPOiBSZW1vdmUgbGVnYWN5IEFQSSBhbmQgcmVuYW1lIGAkcHJpbWFyeWAgdG8gYCRjb25maWdgLiBDdXJyZW50bHkgaXQgY2Fubm90IGJlIHJlbmFtZWRcbi8vIGFzIGl0IHdvdWxkIGJyZWFrIGV4aXN0aW5nIGFwcHMgdGhhdCBzZXQgdGhlIHBhcmFtZXRlciBieSBuYW1lLlxuQGZ1bmN0aW9uIG1hdC1kYXJrLXRoZW1lKCRwcmltYXJ5LCAkYWNjZW50OiBudWxsLCAkd2FybjogbWF0LXBhbGV0dGUoJG1hdC1yZWQpKSB7XG4gIC8vIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIGNvbnRhaW5lciBvYmplY3QgZm9yIHRoZSBpbmRpdmlkdWFsIGNvbXBvbmVudCB0aGVtZSBtaXhpbnMuIENvbnN1bWVyc1xuICAvLyBjYW4gY29uc3RydWN0IHN1Y2ggYW4gb2JqZWN0IGJ5IGNhbGxpbmcgdGhpcyBmdW5jdGlvbiwgb3IgYnkgYnVpbGRpbmcgdGhlIG9iamVjdCBtYW51YWxseS5cbiAgLy8gVGhlcmUgYXJlIHR3byBwb3NzaWJsZSB3YXlzIHRvIGludm9rZSB0aGlzIGZ1bmN0aW9uIGluIG9yZGVyIHRvIGNyZWF0ZSBzdWNoIGFuIG9iamVjdDpcbiAgLy9cbiAgLy8gICAgKDEpIFBhc3NpbmcgaW4gYSBtYXAgdGhhdCBob2xkcyBvcHRpb25hbCBjb25maWd1cmF0aW9ucyBmb3IgaW5kaXZpZHVhbCBwYXJ0cyBvZiB0aGVcbiAgLy8gICAgICAgIHRoZW1pbmcgc3lzdGVtLiBGb3IgYGNvbG9yYCBjb25maWd1cmF0aW9ucywgdGhlIGZ1bmN0aW9uIG9ubHkgZXhwZWN0cyB0aGUgcGFsZXR0ZXNcbiAgLy8gICAgICAgIGZvciBgcHJpbWFyeWAgYW5kIGBhY2NlbnRgIChhbmQgb3B0aW9uYWxseSBgd2FybmApLiBUaGUgZnVuY3Rpb24gd2lsbCBleHBhbmQgdGhlXG4gIC8vICAgICAgICBzaG9ydGhhbmQgaW50byBhbiBhY3R1YWwgY29uZmlndXJhdGlvbiB0aGF0IGNhbiBiZSBjb25zdW1lZCBpbiBgLWNvbG9yYCBtaXhpbnMuXG4gIC8vICAgICgyKSBMZWdhY3kgcGF0dGVybjogUGFzc2luZyBpbiB0aGUgcGFsZXR0ZXMgYXMgcGFyYW1ldGVycy4gVGhpcyBpcyBub3QgYXMgZmxleGlibGVcbiAgLy8gICAgICAgIGFzIHBhc3NpbmcgaW4gYSBjb25maWd1cmF0aW9uIG1hcCBiZWNhdXNlIG9ubHkgdGhlIGBjb2xvcmAgc3lzdGVtIGNhbiBiZSBjb25maWd1cmVkLlxuICAvL1xuICAvLyBJZiB0aGUgbGVnYWN5IHBhdHRlcm4gaXMgdXNlZCwgd2UgZ2VuZXJhdGUgYSBjb250YWluZXIgb2JqZWN0IG9ubHkgd2l0aCBhIGRhcmstdGhlbWVkXG4gIC8vIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBgY29sb3JgIHRoZW1pbmcgcGFydC5cbiAgQGlmICRhY2NlbnQgIT0gbnVsbCB7XG4gICAgQHJldHVybiBtYXQtcHJpdmF0ZS1jcmVhdGUtYmFja3dhcmRzLWNvbXBhdGliaWxpdHktdGhlbWUoX21hdC12YWxpZGF0ZS10aGVtZSgoXG4gICAgICBfaXMtbGVnYWN5LXRoZW1lOiB0cnVlLFxuICAgICAgY29sb3I6IF9tYXQtY3JlYXRlLWRhcmstY29sb3ItY29uZmlnKCRwcmltYXJ5LCAkYWNjZW50LCAkd2FybiksXG4gICAgKSkpO1xuICB9XG4gIC8vIElmIHRoZSBtYXAgcGF0dGVybiBpcyB1c2VkICgxKSwgd2UganVzdCBwYXNzLXRocm91Z2ggdGhlIGNvbmZpZ3VyYXRpb25zIGZvciBpbmRpdmlkdWFsXG4gIC8vIHBhcnRzIG9mIHRoZSB0aGVtaW5nIHN5c3RlbSwgYnV0IHVwZGF0ZSB0aGUgYGNvbG9yYCBjb25maWd1cmF0aW9uIGlmIHNldC4gQXMgZXhwbGFpbmVkXG4gIC8vIGFib3ZlLCB0aGUgY29sb3Igc2hvcnRoYW5kIHdpbGwgYmUgZXhwYW5kZWQgdG8gYW4gYWN0dWFsIGRhcmstdGhlbWVkIGNvbG9yIGNvbmZpZ3VyYXRpb24uXG4gICRyZXN1bHQ6ICRwcmltYXJ5O1xuICBAaWYgbWFwLWdldCgkcHJpbWFyeSwgY29sb3IpIHtcbiAgICAkY29sb3Itc2V0dGluZ3M6IG1hcC1nZXQoJHByaW1hcnksIGNvbG9yKTtcbiAgICAkcHJpbWFyeTogbWFwLWdldCgkY29sb3Itc2V0dGluZ3MsIHByaW1hcnkpO1xuICAgICRhY2NlbnQ6IG1hcC1nZXQoJGNvbG9yLXNldHRpbmdzLCBhY2NlbnQpO1xuICAgICR3YXJuOiBtYXAtZ2V0KCRjb2xvci1zZXR0aW5ncywgd2Fybik7XG4gICAgJHJlc3VsdDogbWFwLW1lcmdlKCRyZXN1bHQsIChjb2xvcjogX21hdC1jcmVhdGUtZGFyay1jb2xvci1jb25maWcoJHByaW1hcnksICRhY2NlbnQsICR3YXJuKSkpO1xuICB9XG4gIEByZXR1cm4gbWF0LXByaXZhdGUtY3JlYXRlLWJhY2t3YXJkcy1jb21wYXRpYmlsaXR5LXRoZW1lKF9tYXQtdmFsaWRhdGUtdGhlbWUoJHJlc3VsdCkpO1xufVxuXG4vLy8gR2V0cyB0aGUgY29sb3IgY29uZmlndXJhdGlvbiBmcm9tIHRoZSBnaXZlbiB0aGVtZSBvciBjb25maWd1cmF0aW9uLlxuQGZ1bmN0aW9uIG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSwgJGRlZmF1bHQ6IG51bGwpIHtcbiAgLy8gSWYgYSBjb25maWd1cmF0aW9uIGhhcyBiZWVuIHBhc3NlZCwgcmV0dXJuIHRoZSBjb25maWcgZGlyZWN0bHkuXG4gIEBpZiBub3QgbWF0LXByaXZhdGUtaXMtdGhlbWUtb2JqZWN0KCR0aGVtZSkge1xuICAgIEByZXR1cm4gJHRoZW1lO1xuICB9XG4gIC8vIElmIHRoZSB0aGVtZSBoYXMgYmVlbiBjb25zdHJ1Y3RlZCB0aHJvdWdoIHRoZSBsZWdhY3kgdGhlbWluZyBBUEksIHdlIHVzZSB0aGUgdGhlbWUgb2JqZWN0XG4gIC8vIGFzIGNvbG9yIGNvbmZpZ3VyYXRpb24gaW5zdGVhZCBvZiB0aGUgZGVkaWNhdGVkIGBjb2xvcmAgcHJvcGVydHkuIFdlIGRvIHRoaXMgYmVjYXVzZSBmb3JcbiAgLy8gYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIHdlIGNvcGllZCB0aGUgY29sb3IgY29uZmlndXJhdGlvbiBmcm9tIGAkdGhlbWUuY29sb3JgIHRvIGAkdGhlbWVgLlxuICAvLyBIZW5jZSBkZXZlbG9wZXJzIGNvdWxkIGN1c3RvbWl6ZSB0aGUgY29sb3JzIGF0IHRvcC1sZXZlbCBhbmQgd2FudCB0byByZXNwZWN0IHRoZXNlIGNoYW5nZXNcbiAgLy8gVE9ETzogUmVtb3ZlIHdoZW4gbGVnYWN5IHRoZW1pbmcgQVBJIGlzIHJlbW92ZWQuXG4gIEBpZiBtYXQtcHJpdmF0ZS1pcy1sZWdhY3ktY29uc3RydWN0ZWQtdGhlbWUoJHRoZW1lKSB7XG4gICAgQHJldHVybiAkdGhlbWU7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCR0aGVtZSwgY29sb3IpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJHRoZW1lLCBjb2xvcik7XG4gIH1cbiAgQHJldHVybiAkZGVmYXVsdDtcbn1cblxuLy8vIEdldHMgdGhlIGRlbnNpdHkgY29uZmlndXJhdGlvbiBmcm9tIHRoZSBnaXZlbiB0aGVtZSBvciBjb25maWd1cmF0aW9uLlxuQGZ1bmN0aW9uIG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lLW9yLWNvbmZpZywgJGRlZmF1bHQ6IDApIHtcbiAgLy8gSWYgYSBjb25maWd1cmF0aW9uIGhhcyBiZWVuIHBhc3NlZCwgcmV0dXJuIHRoZSBjb25maWcgZGlyZWN0bHkuXG4gIEBpZiBub3QgbWF0LXByaXZhdGUtaXMtdGhlbWUtb2JqZWN0KCR0aGVtZS1vci1jb25maWcpIHtcbiAgICBAcmV0dXJuICR0aGVtZS1vci1jb25maWc7XG4gIH1cbiAgLy8gSW4gY2FzZSBhIHRoZW1lIGhhcyBiZWVuIHBhc3NlZCwgZXh0cmFjdCB0aGUgY29uZmlndXJhdGlvbiBpZiBwcmVzZW50LFxuICAvLyBvciBmYWxsIGJhY2sgdG8gdGhlIGRlZmF1bHQgZGVuc2l0eSBjb25maWcuXG4gIEBpZiBtYXAtaGFzLWtleSgkdGhlbWUtb3ItY29uZmlnLCBkZW5zaXR5KSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCR0aGVtZS1vci1jb25maWcsIGRlbnNpdHkpO1xuICB9XG4gIEByZXR1cm4gJGRlZmF1bHQ7XG59XG5cbi8vLyBHZXRzIHRoZSB0eXBvZ3JhcGh5IGNvbmZpZ3VyYXRpb24gZnJvbSB0aGUgZ2l2ZW4gdGhlbWUgb3IgY29uZmlndXJhdGlvbi5cbi8vLyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIHR5cG9ncmFwaHkgaXMgbm90IGluY2x1ZGVkIGJ5IGRlZmF1bHQuXG5AZnVuY3Rpb24gbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUtb3ItY29uZmlnLCAkZGVmYXVsdDogbnVsbCkge1xuICAvLyBJZiBhIGNvbmZpZ3VyYXRpb24gaGFzIGJlZW4gcGFzc2VkLCByZXR1cm4gdGhlIGNvbmZpZyBkaXJlY3RseS5cbiAgQGlmIG5vdCBtYXQtcHJpdmF0ZS1pcy10aGVtZS1vYmplY3QoJHRoZW1lLW9yLWNvbmZpZykge1xuICAgIEByZXR1cm4gJHRoZW1lLW9yLWNvbmZpZztcbiAgfVxuICAvLyBJbiBjYXNlIGEgdGhlbWUgaGFzIGJlZW4gcGFzc2VkLCBleHRyYWN0IHRoZSBjb25maWd1cmF0aW9uIGlmIHByZXNlbnQsXG4gIC8vIG9yIGZhbGwgYmFjayB0byB0aGUgZGVmYXVsdCB0eXBvZ3JhcGh5IGNvbmZpZy5cbiAgQGlmIChtYXAtaGFzLWtleSgkdGhlbWUtb3ItY29uZmlnLCB0eXBvZ3JhcGh5KSkge1xuICAgIEByZXR1cm4gbWFwLWdldCgkdGhlbWUtb3ItY29uZmlnLCB0eXBvZ3JhcGh5KTtcbiAgfVxuICBAcmV0dXJuICRkZWZhdWx0O1xufVxuXG5cbi8vXG4vLyBQcml2YXRlIEFQSXNcbi8vXG5cbi8vIENoZWNrcyBpZiBjb25maWd1cmF0aW9ucyB0aGF0IGhhdmUgYmVlbiBkZWNsYXJlZCBpbiB0aGUgZ2l2ZW4gdGhlbWUgaGF2ZSBiZWVuIGdlbmVyYXRlZFxuLy8gYmVmb3JlLiBJZiBzbywgd2FybmluZ3Mgd2lsbCBiZSByZXBvcnRlZC4gVGhpcyBzaG91bGQgbm90aWZ5IGRldmVsb3BlcnMgaW4gY2FzZSBkdXBsaWNhdGVcbi8vIHN0eWxlcyBhcmUgYWNjaWRlbnRhbGx5IGdlbmVyYXRlZCBkdWUgdG8gd3JvbmcgdXNhZ2Ugb2YgdGhlIGFsbC10aGVtZSBtaXhpbnMuXG4vL1xuLy8gQWRkaXRpb25hbGx5LCB0aGlzIG1peGluIGNvbnRyb2xzIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgZGVuc2l0eSBjb25maWd1cmF0aW9uLiBCeVxuLy8gZGVmYXVsdCwgZGVuc2l0eSBzdHlsZXMgYXJlIGdlbmVyYXRlZCBhdCBzY2FsZSB6ZXJvLiBJZiB0aGUgc2FtZSBkZW5zaXR5IHN0eWxlcyB3b3VsZCBiZVxuLy8gZ2VuZXJhdGVkIGEgc2Vjb25kIHRpbWUgdGhvdWdoLCB0aGUgZGVmYXVsdCB2YWx1ZSB3aWxsIGNoYW5nZSB0byBhdm9pZCBkdXBsaWNhdGUgc3R5bGVzLlxuLy9cbi8vIFRoZSBtaXhpbiBrZWVwcyB0cmFjayBvZiBhbGwgY29uZmlndXJhdGlvbnMgaW4gYSBsaXN0IHRoYXQgaXMgc2NvcGVkIHRvIHRoZSBzcGVjaWZpZWRcbi8vIGlkLiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIGEgZ2l2ZW4gdGhlbWUgY2FuIGJlIHBhc3NlZCB0byBtdWx0aXBsZSBkaXNqb2ludCB0aGVtZSBtaXhpbnNcbi8vIChlLmcuIGBhbmd1bGFyLW1hdGVyaWFsLXRoZW1lYCBhbmQgYGFuZ3VsYXItbWF0ZXJpYWwtbWRjLXRoZW1lYCkgd2l0aG91dCBjYXVzaW5nIGFueVxuLy8gc3R5bGUgZHVwbGljYXRpb24uXG5AbWl4aW4gbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUtb3ItY29sb3ItY29uZmlnLCAkaWQpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAkY29sb3ItY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAkZGVuc2l0eS1jb25maWc6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgJHR5cG9ncmFwaHktY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG4gIC8vIExpc3RzIG9mIHByZXZpb3VzIGBjb2xvcmAsIGBkZW5zaXR5YCBhbmQgYHR5cG9ncmFwaHlgIGNvbmZpZ3VyYXRpb25zLlxuICAkcHJldmlvdXMtY29sb3I6IG1hcC1nZXQoJF9tYXQtdGhlbWUtZW1pdHRlZC1jb2xvciwgJGlkKSBvciAoKTtcbiAgJHByZXZpb3VzLXR5cG9ncmFwaHk6IG1hcC1nZXQoJF9tYXQtdGhlbWUtZW1pdHRlZC10eXBvZ3JhcGh5LCAkaWQpIG9yICgpO1xuICAkcHJldmlvdXMtZGVuc2l0eTogbWFwLWdldCgkX21hdC10aGVtZS1lbWl0dGVkLWRlbnNpdHksICRpZCkgb3IgKCk7XG4gIC8vIFdoZXRoZXIgZHVwbGljYXRlIGxlZ2FjeSBkZW5zaXR5IHN0eWxlcyB3b3VsZCBiZSBnZW5lcmF0ZWQuXG4gICRkdXBsaWNhdGUtbGVnYWN5LWRlbnNpdHk6IGZhbHNlO1xuXG4gIC8vIENoZWNrIGlmIHRoZSBjb2xvciBjb25maWd1cmF0aW9uIGhhcyBiZWVuIGdlbmVyYXRlZCBiZWZvcmUuXG4gIEBpZiAkY29sb3ItY29uZmlnICE9IG51bGwge1xuICAgIEBpZiBpbmRleCgkcHJldmlvdXMtY29sb3IsICRjb2xvci1jb25maWcpICE9IG51bGwgYW5kXG4gICAgICAgIG5vdCAkbWF0LXRoZW1lLWlnbm9yZS1kdXBsaWNhdGlvbi13YXJuaW5ncyB7XG4gICAgICBAd2FybiAnVGhlIHNhbWUgY29sb3Igc3R5bGVzIGFyZSBnZW5lcmF0ZWQgbXVsdGlwbGUgdGltZXMuICcgK1xuICAgICAgICAgICRfbWF0LXRoZW1lLWR1cGxpY2F0ZS13YXJuaW5nO1xuICAgIH1cbiAgICAkcHJldmlvdXMtY29sb3I6IGFwcGVuZCgkcHJldmlvdXMtY29sb3IsICRjb2xvci1jb25maWcpO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHR5cG9ncmFwaHkgY29uZmlndXJhdGlvbiBoYXMgYmVlbiBnZW5lcmF0ZWQgYmVmb3JlLlxuICBAaWYgJHR5cG9ncmFwaHktY29uZmlnICE9IG51bGwge1xuICAgIEBpZiBpbmRleCgkcHJldmlvdXMtdHlwb2dyYXBoeSwgJHR5cG9ncmFwaHktY29uZmlnKSAhPSBudWxsIGFuZFxuICAgICAgICBub3QgJG1hdC10aGVtZS1pZ25vcmUtZHVwbGljYXRpb24td2FybmluZ3Mge1xuICAgICAgQHdhcm4gJ1RoZSBzYW1lIHR5cG9ncmFwaHkgc3R5bGVzIGFyZSBnZW5lcmF0ZWQgbXVsdGlwbGUgdGltZXMuICcgK1xuICAgICAgICAgICRfbWF0LXRoZW1lLWR1cGxpY2F0ZS13YXJuaW5nO1xuICAgIH1cbiAgICAkcHJldmlvdXMtdHlwb2dyYXBoeTogYXBwZW5kKCRwcmV2aW91cy10eXBvZ3JhcGh5LCAkdHlwb2dyYXBoeS1jb25maWcpO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIGRlbnNpdHkgY29uZmlndXJhdGlvbiBoYXMgYmVlbiBnZW5lcmF0ZWQgYmVmb3JlLlxuICBAaWYgJGRlbnNpdHktY29uZmlnICE9IG51bGwge1xuICAgIEBpZiBpbmRleCgkcHJldmlvdXMtZGVuc2l0eSwgJGRlbnNpdHktY29uZmlnKSAhPSBudWxsIHtcbiAgICAgIC8vIE9ubHkgcmVwb3J0IGEgd2FybmluZyBpZiBkZW5zaXR5IHN0eWxlcyB3b3VsZCBiZSBkdXBsaWNhdGVkIGZvciBub24tbGVnYWN5IHRoZW1lXG4gICAgICAvLyBkZWZpbml0aW9ucy4gRm9yIGxlZ2FjeSB0aGVtZXMsIHdlIGhhdmUgY29tcGF0aWJpbGl0eSBsb2dpYyB0aGF0IGF2b2lkcyBkdXBsaWNhdGlvblxuICAgICAgLy8gb2YgZGVmYXVsdCBkZW5zaXR5IHN0eWxlcy4gV2UgZG9uJ3Qgd2FudCB0byByZXBvcnQgYSB3YXJuaW5nIGluIHRob3NlIGNhc2VzLlxuICAgICAgQGlmIG1hdC1wcml2YXRlLWlzLWxlZ2FjeS1jb25zdHJ1Y3RlZC10aGVtZSgkdGhlbWUpIHtcbiAgICAgICAgJGR1cGxpY2F0ZS1sZWdhY3ktZGVuc2l0eTogdHJ1ZTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmIG5vdCAkbWF0LXRoZW1lLWlnbm9yZS1kdXBsaWNhdGlvbi13YXJuaW5ncyB7XG4gICAgICAgIEB3YXJuICdUaGUgc2FtZSBkZW5zaXR5IHN0eWxlcyBhcmUgZ2VuZXJhdGVkIG11bHRpcGxlIHRpbWVzLiAnICtcbiAgICAgICAgICAgJF9tYXQtdGhlbWUtZHVwbGljYXRlLXdhcm5pbmc7XG4gICAgICB9XG4gICAgfVxuICAgICRwcmV2aW91cy1kZW5zaXR5OiBhcHBlbmQoJHByZXZpb3VzLWRlbnNpdHksICRkZW5zaXR5LWNvbmZpZyk7XG4gIH1cblxuICAkX21hdC10aGVtZS1lbWl0dGVkLWNvbG9yOiBtYXAtbWVyZ2UoXG4gICAgICAkX21hdC10aGVtZS1lbWl0dGVkLWNvbG9yLCAoJGlkOiAkcHJldmlvdXMtY29sb3IpKSAhZ2xvYmFsO1xuICAkX21hdC10aGVtZS1lbWl0dGVkLWRlbnNpdHk6IG1hcC1tZXJnZShcbiAgICAgICRfbWF0LXRoZW1lLWVtaXR0ZWQtZGVuc2l0eSwgKCRpZDogJHByZXZpb3VzLWRlbnNpdHkpKSAhZ2xvYmFsO1xuICAkX21hdC10aGVtZS1lbWl0dGVkLXR5cG9ncmFwaHk6IG1hcC1tZXJnZShcbiAgICAgICRfbWF0LXRoZW1lLWVtaXR0ZWQtdHlwb2dyYXBoeSwgKCRpZDogJHByZXZpb3VzLXR5cG9ncmFwaHkpKSAhZ2xvYmFsO1xuXG4gIC8vIE9wdGlvbmFsbHksIGNvbnN1bWVycyBvZiB0aGlzIG1peGluIGNhbiB3cmFwIGNvbnRlbnRzIGluc2lkZSBzbyB0aGF0IG5lc3RlZFxuICAvLyBkdXBsaWNhdGUgc3R5bGUgY2hlY2tzIGRvIG5vdCByZXBvcnQgYW5vdGhlciB3YXJuaW5nLiBlLmcuIGlmIGRldmVsb3BlcnMgaW5jbHVkZVxuICAvLyB0aGUgYGFuZ3VsYXItbWF0ZXJpYWwtdGhlbWVgIG1peGluIHR3aWNlLCBvbmx5IHRoZSB0b3AtbGV2ZWwgZHVwbGljYXRlIHN0eWxlcyBjaGVja1xuICAvLyBzaG91bGQgcmVwb3J0IGEgd2FybmluZy4gTm90IGFsbCBpbmRpdmlkdWFsIGNvbXBvbmVudHMgc2hvdWxkIHJlcG9ydCBhIHdhcm5pbmcgdG9vLlxuICAkb3JpZy1tYXQtdGhlbWUtaWdub3JlLWR1cGxpY2F0aW9uLXdhcm5pbmdzOiAkbWF0LXRoZW1lLWlnbm9yZS1kdXBsaWNhdGlvbi13YXJuaW5ncztcbiAgJG1hdC10aGVtZS1pZ25vcmUtZHVwbGljYXRpb24td2FybmluZ3M6IHRydWUgIWdsb2JhbDtcblxuICAvLyBJZiBkdXBsaWNhdGUgZGVmYXVsdCBkZW5zaXR5IHN0eWxlcyB3b3VsZCBiZSBnZW5lcmF0ZWQgZm9yIGEgbGVnYWN5IGNvbnN0cnVjdGVkIHRoZW1lLFxuICAvLyB3ZSBhZGp1c3QgdGhlIGRlbnNpdHkgZ2VuZXJhdGlvbiBzbyB0aGF0IG5vIGRlbnNpdHkgc3R5bGVzIGFyZSBnZW5lcmF0ZWQgYnkgZGVmYXVsdC5cbiAgLy8gSWYgbm8gZGVmYXVsdCBkZW5zaXR5IHN0eWxlcyBoYXZlIGJlZW4gZ2VuZXJhdGVkIHlldCwgd2UgZW5zdXJlIHRoYXQgdGhlIHN0eWxlc1xuICAvLyBhcmUgZ2VuZXJhdGVkIGF0IHJvb3QuIEZvciBsZWdhY3kgdGhlbWVzIG91ciBnb2FsIGlzIHRvIGdlbmVyYXRlIGRlZmF1bHQgZGVuc2l0eVxuICAvLyBzdHlsZXMgKipvbmNlKiogYW5kIGF0IHJvb3QuIFRoaXMgbWF0Y2hlcyB0aGUgb2xkIGJlaGF2aW9yIHdoZXJlIGRlbnNpdHkgc3R5bGVzIHdlcmVcbiAgLy8gcGFydCBvZiB0aGUgYmFzZSBjb21wb25lbnQgc3R5bGVzICh0aGF0IGRpZCBub3QgdXNlIHZpZXcgZW5jYXBzdWxhdGlvbikuXG4gIC8vIFRPRE86IFJlbW92ZSB0aGlzIGNvbXBhdGliaWxpdHkgbG9naWMgd2hlbiB0aGUgbGVnYWN5IHRoZW1pbmcgQVBJIGlzIHJlbW92ZWQuXG4gICRtYXQtcHJpdmF0ZS1kZW5zaXR5LWdlbmVyYXRlLWF0LXJvb3Q6IG1hdC1wcml2YXRlLWlzLWxlZ2FjeS1jb25zdHJ1Y3RlZC10aGVtZSgkdGhlbWUpICFnbG9iYWw7XG4gICRtYXQtcHJpdmF0ZS1kZW5zaXR5LWdlbmVyYXRlLXN0eWxlczogbm90ICRkdXBsaWNhdGUtbGVnYWN5LWRlbnNpdHkgIWdsb2JhbDtcblxuICBAY29udGVudDtcbiAgJG1hdC10aGVtZS1pZ25vcmUtZHVwbGljYXRpb24td2FybmluZ3M6ICRvcmlnLW1hdC10aGVtZS1pZ25vcmUtZHVwbGljYXRpb24td2FybmluZ3MgIWdsb2JhbDtcblxuICAkbWF0LXByaXZhdGUtZGVuc2l0eS1nZW5lcmF0ZS1hdC1yb290OiBmYWxzZSAhZ2xvYmFsO1xuICAkbWF0LXByaXZhdGUtZGVuc2l0eS1nZW5lcmF0ZS1zdHlsZXM6IHRydWUgIWdsb2JhbDtcbn1cblxuLy8gQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIHZhbHVlIHJlc29sdmVzIHRvIGEgdGhlbWUgb2JqZWN0LiBUaGVtZSBvYmplY3RzIGFyZSBhbHdheXNcbi8vIG9mIHR5cGUgYG1hcGAgYW5kIGNhbiBvcHRpb25hbGx5IG9ubHkgc3BlY2lmeSBgY29sb3JgLCBgZGVuc2l0eWAgb3IgYHR5cG9ncmFwaHlgLlxuQGZ1bmN0aW9uIG1hdC1wcml2YXRlLWlzLXRoZW1lLW9iamVjdCgkdmFsdWUpIHtcbiAgQHJldHVybiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ21hcCcgYW5kIChcbiAgICBtYXAtaGFzLWtleSgkdmFsdWUsIGNvbG9yKSBvclxuICAgIG1hcC1oYXMta2V5KCR2YWx1ZSwgZGVuc2l0eSkgb3JcbiAgICBtYXAtaGFzLWtleSgkdmFsdWUsIHR5cG9ncmFwaHkpIG9yXG4gICAgbGVuZ3RoKCR2YWx1ZSkgPT0gMFxuICApO1xufVxuXG4vLyBDaGVja3Mgd2hldGhlciBhIGdpdmVuIHZhbHVlIGNvcnJlc3BvbmRzIHRvIGEgbGVnYWN5IGNvbnN0cnVjdGVkIHRoZW1lLlxuQGZ1bmN0aW9uIG1hdC1wcml2YXRlLWlzLWxlZ2FjeS1jb25zdHJ1Y3RlZC10aGVtZSgkdmFsdWUpIHtcbiAgQHJldHVybiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ21hcCcgYW5kIG1hcC1nZXQoJHZhbHVlLCAnX2lzLWxlZ2FjeS10aGVtZScpO1xufVxuXG4vLyBDcmVhdGVzIGEgYmFja3dhcmRzIGNvbXBhdGlibGUgdGhlbWUuIFByZXZpb3VzbHkgaW4gQW5ndWxhciBNYXRlcmlhbCwgdGhlbWUgb2JqZWN0c1xuLy8gY29udGFpbmVkIHRoZSBjb2xvciBjb25maWd1cmF0aW9uIGRpcmVjdGx5LiBXaXRoIHRoZSByZWNlbnQgcmVmYWN0b3Jpbmcgb2YgdGhlIHRoZW1pbmdcbi8vIHN5c3RlbSB0byBhbGxvdyBmb3IgZGVuc2l0eSBhbmQgdHlwb2dyYXBoeSBjb25maWd1cmF0aW9ucywgdGhpcyBpcyBubyBsb25nZXIgdGhlIGNhc2UuXG4vLyBUbyBlbnN1cmUgdGhhdCBjb25zdHJ1Y3RlZCB0aGVtZXMgd2hpY2ggd2lsbCBiZSBwYXNzZWQgdG8gY3VzdG9tIHRoZW1lIG1peGlucyBkbyBub3QgYnJlYWssXG4vLyB3ZSBjb3B5IHRoZSBjb2xvciBjb25maWd1cmF0aW9uIGFuZCBwdXQgaXRzIHByb3BlcnRpZXMgYXQgdGhlIHRvcC1sZXZlbCBvZiB0aGUgdGhlbWUgb2JqZWN0LlxuLy8gSGVyZSBpcyBhbiBleGFtcGxlIG9mIGEgcGF0dGVybiB0aGF0IHNob3VsZCBzdGlsbCB3b3JrIHVudGlsIGl0J3Mgb2ZmaWNpYWxseSBtYXJrZWQgYXMgYVxuLy8gYnJlYWtpbmcgY2hhbmdlOlxuLy9cbi8vICAgIEBtaXhpbiBteS1jdXN0b20tY29tcG9uZW50LXRoZW1lKCR0aGVtZSkge1xuLy8gICAgICAubXktY29tcCB7XG4vLyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KSk7XG4vLyAgICAgIH1cbi8vICAgIH1cbi8vXG4vLyBOb3RlIHRoYXQgdGhlIGAkdGhlbWUucHJpbWFyeWAga2V5IGRvZXMgdXN1YWxseSBub3QgZXhpc3Qgc2luY2UgdGhlIGNvbG9yIGNvbmZpZ3VyYXRpb25cbi8vIGlzIHN0b3JlZCBpbiBgJHRoZW1lLmNvbG9yYCB3aGljaCBjb250YWlucyBhIHByb3BlcnR5IGZvciBgcHJpbWFyeWAuIFRoaXMgbWV0aG9kIGNvcGllc1xuLy8gdGhlIG1hcCBmcm9tIGAkdGhlbWUuY29sb3JgIHRvIGAkdGhlbWVgIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS5cbkBmdW5jdGlvbiBtYXQtcHJpdmF0ZS1jcmVhdGUtYmFja3dhcmRzLWNvbXBhdGliaWxpdHktdGhlbWUoJHRoZW1lKSB7XG4gIEBpZiBub3QgbWFwLWdldCgkdGhlbWUsIGNvbG9yKSB7XG4gICAgQHJldHVybiAkdGhlbWU7XG4gIH1cbiAgJGNvbG9yOiBtYXAtZ2V0KCR0aGVtZSwgY29sb3IpO1xuICBAcmV0dXJuIG1hcC1tZXJnZSgkdGhlbWUsICRjb2xvcik7XG59XG5cbi8vIEdldHMgdGhlIHRoZW1lIGZyb20gdGhlIGdpdmVuIHZhbHVlIHRoYXQgaXMgZWl0aGVyIGFscmVhZHkgYSB0aGVtZSwgb3IgYSBjb2xvciBjb25maWd1cmF0aW9uLlxuLy8gVGhpcyBoYW5kbGVzIHRoZSBsZWdhY3kgY2FzZSB3aGVyZSBkZXZlbG9wZXJzIHBhc3MgYSBjb2xvciBjb25maWd1cmF0aW9uIGRpcmVjdGx5IHRvIHRoZVxuLy8gdGhlbWUgbWl4aW4uIEJlZm9yZSB3ZSBpbnRyb2R1Y2VkIHRoZSBuZXcgcGF0dGVybiBmb3IgY29uc3RydWN0aW5nIGEgdGhlbWUsIGRldmVsb3BlcnMgcGFzc2VkXG4vLyB0aGUgY29sb3IgY29uZmlndXJhdGlvbiBkaXJlY3RseSB0byB0aGUgdGhlbWUgbWl4aW5zLiBUaGlzIGNhbiBiZSBzdGlsbCB0aGUgY2FzZSBpZiBkZXZlbG9wZXJzXG4vLyBjb25zdHJ1Y3QgYSB0aGVtZSBtYW51YWxseSBhbmQgcGFzcyBpdCB0byBhIHRoZW1lLiBXZSBzdXBwb3J0IHRoaXMgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LlxuLy8gVE9ETyhkZXZ2ZXJzaW9uKTogcmVtb3ZlIHRoaXMgaW4gdGhlIGZ1dHVyZS4gQ29uc3RydWN0aW5nIHRoZW1lcyBtYW51YWxseSBpcyByYXJlLFxuLy8gYW5kIHRoZSBjb2RlIGNhbiBiZSBlYXNpbHkgdXBkYXRlZCB0byB0aGUgbmV3IEFQSS5cbkBmdW5jdGlvbiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgQGlmIG1hdC1wcml2YXRlLWlzLXRoZW1lLW9iamVjdCgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICAgQHJldHVybiAkdGhlbWUtb3ItY29sb3ItY29uZmlnO1xuICB9XG4gIEByZXR1cm4gbWF0LXByaXZhdGUtY3JlYXRlLWJhY2t3YXJkcy1jb21wYXRpYmlsaXR5LXRoZW1lKChcbiAgICBfaXMtbGVnYWN5LXRoZW1lOiB0cnVlLFxuICAgIGNvbG9yOiAkdGhlbWUtb3ItY29sb3ItY29uZmlnXG4gICkpO1xufVxuXG5cblxuJG1hdC1yaXBwbGUtY29sb3Itb3BhY2l0eTogMC4xO1xuXG5AbWl4aW4gbWF0LXJpcHBsZSgpIHtcblxuICAvLyBUaGUgaG9zdCBlbGVtZW50IG9mIGFuIG1hdC1yaXBwbGUgZGlyZWN0aXZlIHNob3VsZCBhbHdheXMgaGF2ZSBhIHBvc2l0aW9uIG9mIFwiYWJzb2x1dGVcIiBvclxuICAvLyBcInJlbGF0aXZlXCIgc28gdGhhdCB0aGUgcmlwcGxlcyBpbnNpZGUgYXJlIGNvcnJlY3RseSBwb3NpdGlvbmVkIHJlbGF0aXZlbHkgdG8gdGhlIGNvbnRhaW5lci5cbiAgLm1hdC1yaXBwbGUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAvLyBCeSBkZWZhdWx0LCBldmVyeSByaXBwbGUgY29udGFpbmVyIHNob3VsZCBoYXZlIHBvc2l0aW9uOiByZWxhdGl2ZSBpbiBmYXZvciBvZiBjcmVhdGluZyBhblxuICAgIC8vIGVhc3kgQVBJIGZvciBkZXZlbG9wZXJzIHVzaW5nIHRoZSBNYXRSaXBwbGUgZGlyZWN0aXZlLlxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC8vIFByb21vdGUgY29udGFpbmVycyB0aGF0IGhhdmUgcmlwcGxlcyB0byBhIG5ldyBsYXllci4gV2Ugd2FudCB0byB0YXJnZXQgYDpub3QoOmVtcHR5KWAsXG4gICAgLy8gYmVjYXVzZSB3ZSBkb24ndCB3YW50IGFsbCByaXBwbGUgY29udGFpbmVycyB0byBoYXZlIHRoZWlyIG93biBsYXllciBzaW5jZSB0aGV5J3JlIHVzZWQgaW4gYVxuICAgIC8vIGxvdCBvZiBwbGFjZXMgYW5kIHRoZSBsYXllciBpcyBvbmx5IHJlbGV2YW50IHdoaWxlIGFuaW1hdGluZy4gTm90ZSB0aGF0IGlkZWFsbHkgd2UnZCB1c2VcbiAgICAvLyB0aGUgYGNvbnRhaW5gIHByb3BlcnR5IGhlcmUgKHNlZSAjMTMxNzUpLCBiZWNhdXNlIGA6ZW1wdHlgIGNhbiBiZSBicm9rZW4gYnkgaGF2aW5nIGV4dHJhXG4gICAgLy8gdGV4dCBpbnNpZGUgdGhlIGVsZW1lbnQsIGJ1dCBpdCBpc24ndCB2ZXJ5IHdlbGwgc3VwcG9ydGVkIHlldC5cbiAgICAmOm5vdCg6ZW1wdHkpIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcbiAgICB9XG4gIH1cblxuICAubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZCB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cblxuICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSwgdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuXG4gICAgLy8gSW4gaGlnaCBjb250cmFzdCBtb2RlIHRoZSByaXBwbGUgaXMgb3BhcXVlLCBjYXVzaW5nIGl0IHRvIG9ic3RydWN0IHRoZSBjb250ZW50LlxuICAgIEBpbmNsdWRlIGNkay1oaWdoLWNvbnRyYXN0KGFjdGl2ZSwgb2ZmKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4vKiBDb2xvcnMgZm9yIHRoZSByaXBwbGUgZWxlbWVudHMuKi9cbkBtaXhpbiBtYXQtcmlwcGxlLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuICAkZm9yZWdyb3VuZC1iYXNlOiBtYXAtZ2V0KCRmb3JlZ3JvdW5kLCBiYXNlKTtcblxuICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICAvLyBJZiB0aGUgcmlwcGxlIGNvbG9yIGlzIHJlc29sdmVzIHRvIGEgY29sb3IgKnR5cGUqLCB3ZSBjYW4gdXNlIGl0IGRpcmVjdGx5LCBvdGhlcndpc2VcbiAgICAvLyAoZS5nLiBpdCByZXNvbHZlcyB0byBhIENTUyB2YXJpYWJsZSkgd2UgZmFsbCBiYWNrIHRvIHVzaW5nIHRoZSBjb2xvciBhbmQgc2V0dGluZyBhbiBvcGFjaXR5LlxuICAgIEBpZiAodHlwZS1vZigkZm9yZWdyb3VuZC1iYXNlKSA9PSBjb2xvcikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkZm9yZWdyb3VuZC1iYXNlLCAkbWF0LXJpcHBsZS1jb2xvci1vcGFjaXR5KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZvcmVncm91bmQtYmFzZTtcbiAgICAgIG9wYWNpdHk6ICRtYXQtcmlwcGxlLWNvbG9yLW9wYWNpdHk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcmlwcGxlLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1yaXBwbGUnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcmlwcGxlLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cblxuLy8gVGhpcyBtaXhpbiBlbnN1cmVzIGFuIGVsZW1lbnQgc3BhbnMgdG8gZmlsbCB0aGUgbmVhcmVzdCBhbmNlc3RvciB3aXRoIGRlZmluZWQgcG9zaXRpb25pbmcuXG5AbWl4aW4gbWF0LWZpbGwge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuXG4vLy8gTWl4aW4gdGhhdCB0dXJucyBvbiBzdHJvbmcgZm9jdXMgaW5kaWNhdG9ycy5cbi8vL1xuLy8vIEBleGFtcGxlXG4vLy8gICAubXktYXBwIHtcbi8vLyAgICAgQGluY2x1ZGUgbWF0LXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzKCRjb25maWcpO1xuLy8vICAgfVxuQG1peGluIG1hdC1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycygkY29uZmlnOiAoKSkge1xuICAvLyBEZWZhdWx0IGZvY3VzIGluZGljYXRvciBjb25maWcuXG4gICRkZWZhdWx0LWNvbmZpZzogKFxuICAgIGJvcmRlci1zdHlsZTogc29saWQsXG4gICAgYm9yZGVyLXdpZHRoOiAzcHgsXG4gICAgYm9yZGVyLXJhZGl1czogNHB4LFxuICApO1xuXG4gIC8vIE1lcmdlIGRlZmF1bHQgY29uZmlnIHdpdGggdXNlciBjb25maWcuXG4gICRjb25maWc6IG1hcC1tZXJnZSgkZGVmYXVsdC1jb25maWcsICRjb25maWcpO1xuICAkYm9yZGVyLXN0eWxlOiBtYXAtZ2V0KCRjb25maWcsIGJvcmRlci1zdHlsZSk7XG4gICRib3JkZXItd2lkdGg6IG1hcC1nZXQoJGNvbmZpZywgYm9yZGVyLXdpZHRoKTtcbiAgJGJvcmRlci1yYWRpdXM6IG1hcC1nZXQoJGNvbmZpZywgYm9yZGVyLXJhZGl1cyk7XG5cbiAgLy8gQmFzZSBzdHlsZXMgZm9yIGZvY3VzIGluZGljYXRvcnMuXG4gIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIG1hdC1maWxsKCk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBib3JkZXI6ICRib3JkZXItd2lkdGggJGJvcmRlci1zdHlsZSB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgfVxuXG4gIC8vIEJ5IGRlZmF1bHQsIGFsbCBmb2N1cyBpbmRpY2F0b3JzIGFyZSBmbHVzaCB3aXRoIHRoZSBib3VuZGluZyBib3ggb2YgdGhlaXJcbiAgLy8gaG9zdCBlbGVtZW50LiBGb3IgcGFydGljdWxhciBlbGVtZW50cyAobGlzdGVkIGJlbG93KSwgZGVmYXVsdCBpbnNldC9vZmZzZXRcbiAgLy8gdmFsdWVzIGFyZSBuZWNlc3NhcnkgdG8gZW5zdXJlIHRoYXQgdGhlIGZvY3VzIGluZGljYXRvciBpcyBzdWZmaWNpZW50bHlcbiAgLy8gY29udHJhc3RpdmUgYW5kIHJlbmRlcnMgYXBwcm9wcmlhdGVseS5cblxuICAubWF0LWZvY3VzLWluZGljYXRvci5tYXQtZmxhdC1idXR0b246OmJlZm9yZSxcbiAgLm1hdC1mb2N1cy1pbmRpY2F0b3IubWF0LXJhaXNlZC1idXR0b246OmJlZm9yZSxcbiAgLm1hdC1mb2N1cy1pbmRpY2F0b3IubWF0LWZhYjo6YmVmb3JlLFxuICAubWF0LWZvY3VzLWluZGljYXRvci5tYXQtbWluaS1mYWI6OmJlZm9yZSxcbiAgLm1hdC1mb2N1cy1pbmRpY2F0b3IubWF0LWNoaXA6OmJlZm9yZSxcbiAgLm1hdC1mb2N1cy1pbmRpY2F0b3IubWF0LXNvcnQtaGVhZGVyLWNvbnRhaW5lcjo6YmVmb3JlIHtcbiAgICBtYXJnaW46IC0oJGJvcmRlci13aWR0aCArIDJweCk7XG4gIH1cblxuICAubWF0LWZvY3VzLWluZGljYXRvci5tYXQtc3Ryb2tlZC1idXR0b246OmJlZm9yZSxcbiAgLm1hdC1mb2N1cy1pbmRpY2F0b3IubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50OjpiZWZvcmUge1xuICAgIG1hcmdpbjogLSgkYm9yZGVyLXdpZHRoICsgM3B4KTtcbiAgfVxuXG4gIC5tYXQtZm9jdXMtaW5kaWNhdG9yLm1hdC10YWItbGluazo6YmVmb3JlLFxuICAubWF0LWZvY3VzLWluZGljYXRvci5tYXQtdGFiLWxhYmVsOjpiZWZvcmUge1xuICAgIG1hcmdpbjogNXB4O1xuICB9XG5cbiAgLy8gUmVuZGVyIHRoZSBmb2N1cyBpbmRpY2F0b3Igb24gZm9jdXMuIERlZmluaW5nIGEgcHNldWRvIGVsZW1lbnQnc1xuICAvLyBjb250ZW50IHdpbGwgY2F1c2UgaXQgdG8gcmVuZGVyLlxuXG4gIC8vIENoZWNrYm94ZXMsIHJhZGlvcywgYW5kIHNsaWRlIHRvZ2dsZXMgcmVuZGVyIGZvY3VzIGluZGljYXRvcnMgd2hlbiB0aGVcbiAgLy8gYXNzb2NpYXRlZCB2aXN1YWxseS1oaWRkZW4gaW5wdXQgaXMgZm9jdXNlZC5cbiAgLm1hdC1jaGVja2JveC1pbnB1dDpmb2N1cyB+IC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsXG4gIC5tYXQtcmFkaW8taW5wdXQ6Zm9jdXMgfiAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLFxuICAubWF0LXNsaWRlLXRvZ2dsZS1pbnB1dDpmb2N1cyB+IC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iLWNvbnRhaW5lciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLFxuXG4gIC8vIEZvciBvcHRpb25zLCByZW5kZXIgdGhlIGZvY3VzIGluZGljYXRvciB3aGVuIHRoZSBjbGFzcyAubWF0LWFjdGl2ZVxuICAvLyBpcyBwcmVzZW50LlxuICAubWF0LWZvY3VzLWluZGljYXRvci5tYXQtb3B0aW9uLm1hdC1hY3RpdmU6OmJlZm9yZSxcblxuICAvLyBGb3IgY2FsZW5kYXIgY2VsbHMsIHJlbmRlciB0aGUgZm9jdXMgaW5kaWNhdG9yIHdoZW4gdGhlIHBhcmVudCBjZWxsIGlzXG4gIC8vIGZvY3VzZWQuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsOmZvY3VzIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsXG5cbiAgLy8gRm9yIGFsbCBvdGhlciBjb21wb25lbnRzLCByZW5kZXIgdGhlIGZvY3VzIGluZGljYXRvciBvbiBmb2N1cy5cbiAgLm1hdC1mb2N1cy1pbmRpY2F0b3I6Zm9jdXM6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gIH1cbn1cblxuLy8gTWl4aW4gdGhhdCBhcHBsaWVzIHRoZSBib3JkZXIgY29sb3IgZm9yIHRoZSBmb2N1cyBpbmRpY2F0b3JzLlxuQG1peGluIF9tYXQtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtYm9yZGVyLWNvbG9yKCRjb2xvcikge1xuICAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlIHtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIEBpbmNsdWRlIF9tYXQtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtYm9yZGVyLWNvbG9yKG1hdC1jb2xvcihtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpKSk7XG59XG5cbi8vLyBNaXhpbiB0aGF0IHNldHMgdGhlIGNvbG9yIG9mIHRoZSBmb2N1cyBpbmRpY2F0b3JzLlxuLy8vXG4vLy8gQHBhcmFtIHtjb2xvcnxtYXB9ICR0aGVtZS1vci1jb2xvclxuLy8vICAgSWYgdGhlbWUsIGZvY3VzIGluZGljYXRvcnMgYXJlIHNldCB0byB0aGUgcHJpbWFyeSBjb2xvciBvZiB0aGUgdGhlbWUuIElmXG4vLy8gICBjb2xvciwgZm9jdXMgaW5kaWNhdG9ycyBhcmUgc2V0IHRvIHRoYXQgY29sb3IuXG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vICAgLmRlbW8tZGFyay10aGVtZSB7XG4vLy8gICAgIEBpbmNsdWRlIG1hdC1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycy10aGVtZSgkZGFyay10aGVtZS1tYXApO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyAgIC5kZW1vLXJlZC10aGVtZSB7XG4vLy8gICAgIEBpbmNsdWRlIG1hdC1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycy10aGVtZSgjZjAwKTtcbi8vLyAgIH1cbi8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXRlcmlhbC90aGVtZS1taXhpbi1hcGkgKi9cbkBtaXhpbiBtYXQtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtdGhlbWUoJHRoZW1lLW9yLWNvbG9yKSB7XG4gIEBpZiB0eXBlLW9mKCR0aGVtZS1vci1jb2xvcikgIT0gJ21hcCcge1xuICAgIEBpbmNsdWRlIF9tYXQtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtYm9yZGVyLWNvbG9yKCR0aGVtZS1vci1jb2xvcik7XG4gIH1cbiAgQGVsc2Uge1xuICAgICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3IpO1xuICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzJykge1xuICAgICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgICAgQGluY2x1ZGUgbWF0LXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLWNvbG9yKCRjb2xvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIE1peGluIHRoYXQgZW5zdXJlcyBmb2N1cyBpbmRpY2F0b3IgaG9zdCBlbGVtZW50cyBhcmUgcG9zaXRpb25lZCBzbyB0aGF0IHRoZSBmb2N1cyBpbmRpY2F0b3Jcbi8vIHBzZXVkbyBlbGVtZW50IHdpdGhpbiBpcyBwb3NpdGlvbmVkIHJlbGF0aXZlIHRvIHRoZSBob3N0LiBQcml2YXRlIG1peGluIGluY2x1ZGVkIHdpdGhpblxuLy8gYG1hdC1jb3JlYC5cbkBtaXhpbiBtYXQtcHJpdmF0ZS1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycy1wb3NpdGlvbmluZygpIHtcbiAgLm1hdC1mb2N1cy1pbmRpY2F0b3Ige1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxufVxuXG5cblxuLy8gVXRpbGl0eSBmb3IgZmV0Y2hpbmcgYSBuZXN0ZWQgdmFsdWUgZnJvbSBhIHR5cG9ncmFwaHkgY29uZmlnLlxuQGZ1bmN0aW9uIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCAkbmFtZSkge1xuICBAcmV0dXJuIG1hcC1nZXQobWFwLWdldCgkY29uZmlnLCAkbGV2ZWwpLCAkbmFtZSk7XG59XG5cbi8vIEdldHMgdGhlIGZvbnQgc2l6ZSBmb3IgYSBsZXZlbCBpbnNpZGUgYSB0eXBvZ3JhcGh5IGNvbmZpZy5cbkBmdW5jdGlvbiBtYXQtZm9udC1zaXplKCRjb25maWcsICRsZXZlbCkge1xuICBAcmV0dXJuIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCBmb250LXNpemUpO1xufVxuXG4vLyBHZXRzIHRoZSBsaW5lIGhlaWdodCBmb3IgYSBsZXZlbCBpbnNpZGUgYSB0eXBvZ3JhcGh5IGNvbmZpZy5cbkBmdW5jdGlvbiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgJGxldmVsKSB7XG4gIEByZXR1cm4gX21hdC1nZXQtdHlwZS12YWx1ZSgkY29uZmlnLCAkbGV2ZWwsIGxpbmUtaGVpZ2h0KTtcbn1cblxuLy8gR2V0cyB0aGUgZm9udCB3ZWlnaHQgZm9yIGEgbGV2ZWwgaW5zaWRlIGEgdHlwb2dyYXBoeSBjb25maWcuXG5AZnVuY3Rpb24gbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsICRsZXZlbCkge1xuICBAcmV0dXJuIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCBmb250LXdlaWdodCk7XG59XG5cbi8vIEdldHMgdGhlIGxldHRlciBzcGFjaW5nIGZvciBhIGxldmVsIGluc2lkZSBhIHR5cG9ncmFwaHkgY29uZmlnLlxuQGZ1bmN0aW9uIG1hdC1sZXR0ZXItc3BhY2luZygkY29uZmlnLCAkbGV2ZWwpIHtcbiAgQHJldHVybiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgbGV0dGVyLXNwYWNpbmcpO1xufVxuXG4vLyBHZXRzIHRoZSBmb250LWZhbWlseSBmcm9tIGEgdHlwb2dyYXBoeSBjb25maWcgYW5kIHJlbW92ZXMgdGhlIHF1b3RlcyBhcm91bmQgaXQuXG5AZnVuY3Rpb24gbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsICRsZXZlbDogbnVsbCkge1xuICAkZm9udC1mYW1pbHk6IG1hcC1nZXQoJGNvbmZpZywgZm9udC1mYW1pbHkpO1xuXG4gIEBpZiAkbGV2ZWwgIT0gbnVsbCB7XG4gICAgJGZvbnQtZmFtaWx5OiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgZm9udC1mYW1pbHkpO1xuICB9XG5cbiAgLy8gR3VhcmQgYWdhaW5zdCB1bnF1b3Rpbmcgbm9uLXN0cmluZyB2YWx1ZXMsIGJlY2F1c2UgaXQncyBkZXByZWNhdGVkLlxuICBAcmV0dXJuIGlmKHR5cGUtb2YoJGZvbnQtZmFtaWx5KSA9PSBzdHJpbmcsIHVucXVvdGUoJGZvbnQtZmFtaWx5KSwgJGZvbnQtZmFtaWx5KTtcbn1cblxuLy8gT3V0cHV0cyB0aGUgc2hvcnRoYW5kIGBmb250YCBDU1MgcHJvcGVydHksIGJhc2VkIG9uIGEgc2V0IG9mIHR5cG9ncmFwaHkgdmFsdWVzLiBGYWxscyBiYWNrIHRvXG4vLyB0aGUgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIGlmIGEgdmFsdWUgdGhhdCBpc24ndCBhbGxvd2VkIGluIHRoZSBzaG9ydGhhbmQgaXMgcGFzc2VkIGluLlxuQG1peGluIG1hdC10eXBvZ3JhcGh5LWZvbnQtc2hvcnRoYW5kKCRmb250LXNpemUsICRmb250LXdlaWdodCwgJGxpbmUtaGVpZ2h0LCAkZm9udC1mYW1pbHkpIHtcbiAgLy8gSWYgYW55IG9mIHRoZSB2YWx1ZXMgYXJlIHNldCB0byBgaW5oZXJpdGAsIHdlIGNhbid0IHVzZSB0aGUgc2hvcnRoYW5kXG4gIC8vIHNvIHdlIGZhbGwgYmFjayB0byBwYXNzaW5nIGluIHRoZSBpbmRpdmlkdWFsIHByb3BlcnRpZXMuXG4gIEBpZiAoJGZvbnQtc2l6ZSA9PSBpbmhlcml0IG9yXG4gICAgICAgJGZvbnQtd2VpZ2h0ID09IGluaGVyaXQgb3JcbiAgICAgICAkbGluZS1oZWlnaHQgPT0gaW5oZXJpdCBvclxuICAgICAgICRmb250LWZhbWlseSA9PSBpbmhlcml0IG9yXG4gICAgICAgJGZvbnQtc2l6ZSA9PSBudWxsIG9yXG4gICAgICAgJGZvbnQtd2VpZ2h0ID09IG51bGwgb3JcbiAgICAgICAkbGluZS1oZWlnaHQgPT0gbnVsbCBvclxuICAgICAgICRmb250LWZhbWlseSA9PSBudWxsKSB7XG5cbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIE90aGVyd2lzZSB1c2UgdGhlIHNob3J0aGFuZCBgZm9udGAsIGJlY2F1c2UgaXQncyB0aGUgbGVhc3QgYW1vdW50IG9mIGJ5dGVzLiBOb3RlXG4gICAgLy8gdGhhdCB3ZSBuZWVkIHRvIHVzZSBpbnRlcnBvbGF0aW9uIGZvciBgZm9udC1zaXplL2xpbmUtaGVpZ2h0YCBpbiBvcmRlciB0byBwcmV2ZW50XG4gICAgLy8gU2FzcyBmcm9tIGRpdmlkaW5nIHRoZSB0d28gdmFsdWVzLlxuICAgIGZvbnQ6ICRmb250LXdlaWdodCAjeyRmb250LXNpemV9LyN7JGxpbmUtaGVpZ2h0fSAkZm9udC1mYW1pbHk7XG4gIH1cbn1cblxuLy8gQ29udmVydHMgYSB0eXBvZ3JhcGh5IGxldmVsIGludG8gQ1NTIHN0eWxlcy5cbkBtaXhpbiBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgJGxldmVsKSB7XG4gICRmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgJGxldmVsKTtcbiAgJGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgJGxldmVsKTtcbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgJGxldmVsKTtcbiAgJGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgJGxldmVsKTtcblxuICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1mb250LXNob3J0aGFuZCgkZm9udC1zaXplLCAkZm9udC13ZWlnaHQsICRsaW5lLWhlaWdodCwgJGZvbnQtZmFtaWx5KTtcbiAgbGV0dGVyLXNwYWNpbmc6IG1hdC1sZXR0ZXItc3BhY2luZygkY29uZmlnLCAkbGV2ZWwpO1xufVxuXG5cbkBtaXhpbiBtYXQtb3B0aW9uLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG5cbiAgLm1hdC1vcHRpb24ge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgJjpob3Zlcjpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpLFxuICAgICY6Zm9jdXM6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGhvdmVyKTtcbiAgICB9XG5cbiAgICAvLyBJbiBtdWx0aXBsZSBtb2RlIHRoZXJlIGlzIGEgY2hlY2tib3ggdG8gc2hvdyB0aGF0IHRoZSBvcHRpb24gaXMgc2VsZWN0ZWQuXG4gICAgJi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIpO1xuICAgIH1cblxuICAgICYubWF0LWFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGhvdmVyKTtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIH1cblxuICAgICYubWF0LW9wdGlvbi1kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtcHJpbWFyeSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG4gIH1cblxuICAubWF0LWFjY2VudCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtd2FybiAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1vcHRpb24tdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtb3B0aW9uIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgc3ViaGVhZGluZy0yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9tYXQtb3B0aW9uLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1vcHRpb24tdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LW9wdGlvbicpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1vcHRpb24tY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1vcHRpb24tZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1vcHRpb24tdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuQG1peGluIG1hdC1vcHRncm91cC1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LW9wdGdyb3VwLWRpc2FibGVkIC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1vcHRncm91cC10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGJvZHktMik7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtb3B0Z3JvdXAtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LW9wdGdyb3VwLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1vcHRncm91cCcpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1vcHRncm91cC1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LW9wdGdyb3VwLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtb3B0Z3JvdXAtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5AbWl4aW4gbWF0LXBzZXVkby1jaGVja2JveC1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkY29uZmlnLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuXG4gIC8vIE5PVEUodHJhdmlza2F1Zm1hbik6IFdoaWxlIHRoZSBzcGVjIGNhbGxzIGZvciB0cmFuc2x1Y2VudCBibGFja3Mvd2hpdGVzIGZvciBkaXNhYmxlZCBjb2xvcnMsXG4gIC8vIHRoaXMgZG9lcyBub3Qgd29yayB3ZWxsIHdpdGggZWxlbWVudHMgbGF5ZXJlZCBvbiB0b3Agb2Ygb25lIGFub3RoZXIuIFRvIGdldCBhcm91bmQgdGhpcyB3ZVxuICAvLyBibGVuZCB0aGUgY29sb3JzIHRvZ2V0aGVyIGJhc2VkIG9uIHRoZSBiYXNlIGNvbG9yIGFuZCB0aGUgdGhlbWUgYmFja2dyb3VuZC5cbiAgJHdoaXRlLTMwcGN0LW9wYWNpdHktb24tZGFyazogIzY4Njg2ODtcbiAgJGJsYWNrLTI2cGN0LW9wYWNpdHktb24tbGlnaHQ6ICNiMGIwYjA7XG4gICRkaXNhYmxlZC1jb2xvcjogaWYoJGlzLWRhcmstdGhlbWUsICR3aGl0ZS0zMHBjdC1vcGFjaXR5LW9uLWRhcmssICRibGFjay0yNnBjdC1vcGFjaXR5LW9uLWxpZ2h0KTtcbiAgJGNvbG9yZWQtYm94LXNlbGVjdG9yOiAnLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCwgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSc7XG5cbiAgLm1hdC1wc2V1ZG8tY2hlY2tib3gge1xuICAgIGNvbG9yOiBtYXQtY29sb3IobWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKSwgc2Vjb25kYXJ5LXRleHQpO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgYmFja2dyb3VuZCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICAgIGNvbG9yOiAkZGlzYWJsZWQtY29sb3I7XG4gIH1cblxuICAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbiAgLm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcihtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpKTtcbiAgfVxuXG4gIC8vIERlZmF1bHQgdG8gdGhlIGFjY2VudCBjb2xvci4gTm90ZSB0aGF0IHRoZSBwc2V1ZG8gY2hlY2tib3hlcyBhcmUgbWVhbnQgdG8gaW5oZXJpdCB0aGVcbiAgLy8gdGhlbWUgZnJvbSB0aGVpciBwYXJlbnQsIHJhdGhlciB0aGFuIGltcGxlbWVudGluZyB0aGVpciBvd24gdGhlbWluZywgd2hpY2ggaXMgd2h5IHdlXG4gIC8vIGRvbid0IGF0dGFjaCB0byB0aGUgYG1hdC0qYCBjbGFzc2VzLiBBbHNvIG5vdGUgdGhhdCB0aGlzIG5lZWRzIHRvIGJlIGJlbG93IGAubWF0LXByaW1hcnlgXG4gIC8vIGluIG9yZGVyIHRvIGFsbG93IGZvciB0aGUgY29sb3IgdG8gYmUgb3ZlcndyaXR0ZW4gaWYgdGhlIGNoZWNrYm94IGlzIGluc2lkZSBhIHBhcmVudCB0aGF0XG4gIC8vIGhhcyBgbWF0LWFjY2VudGAgYW5kIGlzIHBsYWNlZCBpbnNpZGUgYW5vdGhlciBwYXJlbnQgdGhhdCBoYXMgYG1hdC1wcmltYXJ5YC5cbiAgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbiAgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSxcbiAgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbiAgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KSk7XG4gIH1cblxuICAubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbiAgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcihtYXAtZ2V0KCRjb25maWcsIHdhcm4pKTtcbiAgfVxuXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICAgICYubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCB7XG4gICAgICBiYWNrZ3JvdW5kOiAkZGlzYWJsZWQtY29sb3I7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcHNldWRvLWNoZWNrYm94LXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIF9tYXQtcHNldWRvLWNoZWNrYm94LWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1wc2V1ZG8tY2hlY2tib3gtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LXBzZXVkby1jaGVja2JveCcpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1wc2V1ZG8tY2hlY2tib3gtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1wc2V1ZG8tY2hlY2tib3gtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1wc2V1ZG8tY2hlY2tib3gtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG4vLyBSZXByZXNlbnRzIGEgdHlwb2dyYXBoeSBsZXZlbCBmcm9tIHRoZSBNYXRlcmlhbCBkZXNpZ24gc3BlYy5cbkBmdW5jdGlvbiBtYXQtdHlwb2dyYXBoeS1sZXZlbChcbiAgJGZvbnQtc2l6ZSxcbiAgJGxpbmUtaGVpZ2h0OiAkZm9udC1zaXplLFxuICAkZm9udC13ZWlnaHQ6IDQwMCxcbiAgJGZvbnQtZmFtaWx5OiBudWxsLFxuICAkbGV0dGVyLXNwYWNpbmc6IG5vcm1hbCkge1xuXG4gIEByZXR1cm4gKFxuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZSxcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LFxuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQsXG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseSxcbiAgICBsZXR0ZXItc3BhY2luZzogJGxldHRlci1zcGFjaW5nXG4gICk7XG59XG5cbi8vIFJlcHJlc2VudHMgYSBjb2xsZWN0aW9uIG9mIHR5cG9ncmFwaHkgbGV2ZWxzLlxuLy8gRGVmYXVsdHMgY29tZSBmcm9tIGh0dHBzOi8vbWF0ZXJpYWwuaW8vZ3VpZGVsaW5lcy9zdHlsZS90eXBvZ3JhcGh5Lmh0bWxcbi8vIE5vdGU6IFRoZSBzcGVjIGRvZXNuJ3QgbWVudGlvbiBsZXR0ZXIgc3BhY2luZy4gVGhlIHZhbHVlcyBoZXJlIGNvbWUgZnJvbVxuLy8gZXllYmFsbGluZyBpdCB1bnRpbCBpdCBsb29rZWQgZXhhY3RseSBsaWtlIHRoZSBzcGVjIGV4YW1wbGVzLlxuQGZ1bmN0aW9uIG1hdC10eXBvZ3JhcGh5LWNvbmZpZyhcbiAgJGZvbnQtZmFtaWx5OiAgICdSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZicsXG4gICRkaXNwbGF5LTQ6ICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxMTJweCwgMTEycHgsIDMwMCwgJGxldHRlci1zcGFjaW5nOiAtMC4wNWVtKSxcbiAgJGRpc3BsYXktMzogICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDU2cHgsIDU2cHgsIDQwMCwgJGxldHRlci1zcGFjaW5nOiAtMC4wMmVtKSxcbiAgJGRpc3BsYXktMjogICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDQ1cHgsIDQ4cHgsIDQwMCwgJGxldHRlci1zcGFjaW5nOiAtMC4wMDVlbSksXG4gICRkaXNwbGF5LTE6ICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgzNHB4LCA0MHB4LCA0MDApLFxuICAkaGVhZGxpbmU6ICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMjRweCwgMzJweCwgNDAwKSxcbiAgJHRpdGxlOiAgICAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDIwcHgsIDMycHgsIDUwMCksXG4gICRzdWJoZWFkaW5nLTI6ICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxNnB4LCAyOHB4LCA0MDApLFxuICAkc3ViaGVhZGluZy0xOiAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTVweCwgMjRweCwgNDAwKSxcbiAgJGJvZHktMjogICAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDE0cHgsIDI0cHgsIDUwMCksXG4gICRib2R5LTE6ICAgICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxNHB4LCAyMHB4LCA0MDApLFxuICAkY2FwdGlvbjogICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTJweCwgMjBweCwgNDAwKSxcbiAgJGJ1dHRvbjogICAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDE0cHgsIDE0cHgsIDUwMCksXG4gIC8vIExpbmUtaGVpZ2h0IG11c3QgYmUgdW5pdC1sZXNzIGZyYWN0aW9uIG9mIHRoZSBmb250LXNpemUuXG4gICRpbnB1dDogICAgICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbChpbmhlcml0LCAxLjEyNSwgNDAwKVxuKSB7XG5cbiAgLy8gRGVjbGFyZSBhbiBpbml0aWFsIG1hcCB3aXRoIGFsbCBvZiB0aGUgbGV2ZWxzLlxuICAkY29uZmlnOiAoXG4gICAgZGlzcGxheS00OiAgICAgICRkaXNwbGF5LTQsXG4gICAgZGlzcGxheS0zOiAgICAgICRkaXNwbGF5LTMsXG4gICAgZGlzcGxheS0yOiAgICAgICRkaXNwbGF5LTIsXG4gICAgZGlzcGxheS0xOiAgICAgICRkaXNwbGF5LTEsXG4gICAgaGVhZGxpbmU6ICAgICAgICRoZWFkbGluZSxcbiAgICB0aXRsZTogICAgICAgICAgJHRpdGxlLFxuICAgIHN1YmhlYWRpbmctMjogICAkc3ViaGVhZGluZy0yLFxuICAgIHN1YmhlYWRpbmctMTogICAkc3ViaGVhZGluZy0xLFxuICAgIGJvZHktMjogICAgICAgICAkYm9keS0yLFxuICAgIGJvZHktMTogICAgICAgICAkYm9keS0xLFxuICAgIGNhcHRpb246ICAgICAgICAkY2FwdGlvbixcbiAgICBidXR0b246ICAgICAgICAgJGJ1dHRvbixcbiAgICBpbnB1dDogICAgICAgICAgJGlucHV0LFxuICApO1xuXG4gIC8vIExvb3AgdGhyb3VnaCB0aGUgbGV2ZWxzIGFuZCBzZXQgdGhlIGBmb250LWZhbWlseWAgb2YgdGhlIG9uZXMgdGhhdCBkb24ndCBoYXZlIG9uZSB0byB0aGUgYmFzZS5cbiAgLy8gTm90ZSB0aGF0IFNhc3MgY2FuJ3QgbW9kaWZ5IG1hcHMgaW4gcGxhY2UsIHdoaWNoIG1lYW5zIHRoYXQgd2UgbmVlZCB0byBtZXJnZSBhbmQgcmUtYXNzaWduLlxuICBAZWFjaCAka2V5LCAkbGV2ZWwgaW4gJGNvbmZpZyB7XG4gICAgQGlmIG1hcC1nZXQoJGxldmVsLCBmb250LWZhbWlseSkgPT0gbnVsbCB7XG4gICAgICAkbmV3LWxldmVsOiBtYXAtbWVyZ2UoJGxldmVsLCAoZm9udC1mYW1pbHk6ICRmb250LWZhbWlseSkpO1xuICAgICAgJGNvbmZpZzogbWFwLW1lcmdlKCRjb25maWcsICgka2V5OiAkbmV3LWxldmVsKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gQWRkIHRoZSBiYXNlIGZvbnQgZmFtaWx5IHRvIHRoZSBjb25maWcuXG4gIEByZXR1cm4gbWFwLW1lcmdlKCRjb25maWcsIChmb250LWZhbWlseTogJGZvbnQtZmFtaWx5KSk7XG59XG5cbi8vIFdoZXRoZXIgYSBjb25maWcgaXMgZm9yIHRoZSBNYXRlcmlhbCBEZXNpZ24gMjAxOCB0eXBvZ3JhcGh5IHN5c3RlbS5cbkBmdW5jdGlvbiBtYXQtcHJpdmF0ZS10eXBvZ3JhcGh5LWlzLTIwMTgtY29uZmlnKCRjb25maWcpIHtcbiAgQHJldHVybiBtYXAtZ2V0KCRjb25maWcsIGhlYWRsaW5lLTEpICE9IG51bGw7XG59XG5cbi8vIFdoZXRoZXIgYSBjb25maWcgaXMgZm9yIHRoZSBNYXRlcmlhbCBEZXNpZ24gMjAxNCB0eXBvZ3JhcGh5IHN5c3RlbS5cbkBmdW5jdGlvbiBtYXQtcHJpdmF0ZS10eXBvZ3JhcGh5LWlzLTIwMTQtY29uZmlnKCRjb25maWcpIHtcbiAgQHJldHVybiBtYXAtZ2V0KCRjb25maWcsIGhlYWRsaW5lKSAhPSBudWxsO1xufVxuXG4vLyBHaXZlbiBhIGNvbmZpZyBmb3IgZWl0aGVyIHRoZSAyMDE0IG9yIDIwMTggTWF0ZXJpYWwgRGVzaWduIHR5cG9ncmFwaHkgc3lzdGVtLFxuLy8gcHJvZHVjZXMgYSBub3JtYWxpemVkIHR5cG9ncmFwaHkgY29uZmlnIGZvciB0aGUgMjAxNCBNYXRlcmlhbCBEZXNpZ24gdHlwb2dyYXBoeSBzeXN0ZW0uXG4vLyAyMDE0IC0gaHR0cHM6Ly9tYXRlcmlhbC5pby9hcmNoaXZlL2d1aWRlbGluZXMvc3R5bGUvdHlwb2dyYXBoeS5odG1sI3R5cG9ncmFwaHktc3R5bGVzXG4vLyAyMDE4IC0gaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vdHlwb2dyYXBoeS90aGUtdHlwZS1zeXN0ZW0uaHRtbCN0eXBlLXNjYWxlXG5AZnVuY3Rpb24gbWF0LXByaXZhdGUtdHlwb2dyYXBoeS10by0yMDE0LWNvbmZpZygkY29uZmlnKSB7XG4gIEBpZiBtYXQtcHJpdmF0ZS10eXBvZ3JhcGh5LWlzLTIwMTgtY29uZmlnKCRjb25maWcpIHtcbiAgICBAcmV0dXJuIG1hdC10eXBvZ3JhcGh5LWNvbmZpZyhcbiAgICAgICAgJGRpc3BsYXktNDogbWFwLWdldCgkY29uZmlnLCBoZWFkbGluZS0xKSxcbiAgICAgICAgJGRpc3BsYXktMzogbWFwLWdldCgkY29uZmlnLCBoZWFkbGluZS0yKSxcbiAgICAgICAgJGRpc3BsYXktMjogbWFwLWdldCgkY29uZmlnLCBoZWFkbGluZS0zKSxcbiAgICAgICAgJGRpc3BsYXktMTogbWFwLWdldCgkY29uZmlnLCBoZWFkbGluZS00KSxcbiAgICAgICAgJGhlYWRsaW5lOiBtYXAtZ2V0KCRjb25maWcsIGhlYWRsaW5lLTUpLFxuICAgICAgICAkdGl0bGU6IG1hcC1nZXQoJGNvbmZpZywgaGVhZGxpbmUtNiksXG4gICAgICAgICRzdWJoZWFkaW5nLTI6IG1hcC1nZXQoJGNvbmZpZywgc3VidGl0bGUtMSksXG4gICAgICAgICRzdWJoZWFkaW5nLTE6IG1hcC1nZXQoJGNvbmZpZywgc3VidGl0bGUtMiksXG4gICAgICAgICRib2R5LTI6IG1hcC1nZXQoJGNvbmZpZywgYm9keS0xKSxcbiAgICAgICAgJGJvZHktMTogbWFwLWdldCgkY29uZmlnLCBib2R5LTIpLFxuICAgICAgICAkYnV0dG9uOiBtYXAtZ2V0KCRjb25maWcsIGJ1dHRvbiksXG4gICAgICAgICRjYXB0aW9uOiBtYXAtZ2V0KCRjb25maWcsIGNhcHRpb24pLFxuICAgICk7XG4gIH1cbiAgQHJldHVybiAkY29uZmlnO1xufVxuXG4vLyBHaXZlbiBhIGNvbmZpZyBmb3IgZWl0aGVyIHRoZSAyMDE0IG9yIDIwMTggTWF0ZXJpYWwgRGVzaWduIHR5cG9ncmFwaHkgc3lzdGVtLFxuLy8gcHJvZHVjZXMgYSBub3JtYWxpemVkIHR5cG9ncmFwaHkgY29uZmlnIGZvciB0aGUgMjAxOCBNYXRlcmlhbCBEZXNpZ24gdHlwb2dyYXBoeSBzeXN0ZW0uXG4vLyAyMDE0IC0gaHR0cHM6Ly9tYXRlcmlhbC5pby9hcmNoaXZlL2d1aWRlbGluZXMvc3R5bGUvdHlwb2dyYXBoeS5odG1sI3R5cG9ncmFwaHktc3R5bGVzXG4vLyAyMDE4IC0gaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vdHlwb2dyYXBoeS90aGUtdHlwZS1zeXN0ZW0uaHRtbCN0eXBlLXNjYWxlXG5AZnVuY3Rpb24gbWF0LXByaXZhdGUtdHlwb2dyYXBoeS10by0yMDE4LWNvbmZpZygkY29uZmlnKSB7XG4gIEBpZiBtYXQtcHJpdmF0ZS10eXBvZ3JhcGh5LWlzLTIwMTQtY29uZmlnKCRjb25maWcpIHtcbiAgICBAcmV0dXJuIChcbiAgICAgICAgaGVhZGxpbmUtMTogbWFwLWdldCgkY29uZmlnLCBkaXNwbGF5LTQpLFxuICAgICAgICBoZWFkbGluZS0yOiBtYXAtZ2V0KCRjb25maWcsIGRpc3BsYXktMyksXG4gICAgICAgIGhlYWRsaW5lLTM6IG1hcC1nZXQoJGNvbmZpZywgZGlzcGxheS0yKSxcbiAgICAgICAgaGVhZGxpbmUtNDogbWFwLWdldCgkY29uZmlnLCBkaXNwbGF5LTEpLFxuICAgICAgICBoZWFkbGluZS01OiBtYXAtZ2V0KCRjb25maWcsIGhlYWRsaW5lKSxcbiAgICAgICAgaGVhZGxpbmUtNjogbWFwLWdldCgkY29uZmlnLCB0aXRsZSksXG4gICAgICAgIHN1YnRpdGxlLTE6IG1hcC1nZXQoJGNvbmZpZywgc3ViaGVhZGluZy0yKSxcbiAgICAgICAgc3VidGl0bGUtMjogbWFwLWdldCgkY29uZmlnLCBzdWJoZWFkaW5nLTEpLFxuICAgICAgICBib2R5LTE6IG1hcC1nZXQoJGNvbmZpZywgYm9keS0yKSxcbiAgICAgICAgYm9keS0yOiBtYXAtZ2V0KCRjb25maWcsIGJvZHktMSksXG4gICAgICAgIGJ1dHRvbjogbWFwLWdldCgkY29uZmlnLCBidXR0b24pLFxuICAgICAgICBjYXB0aW9uOiBtYXAtZ2V0KCRjb25maWcsIGNhcHRpb24pLFxuICAgICk7XG4gIH1cbiAgQHJldHVybiAkY29uZmlnO1xufVxuXG4vLyBBZGRzIHRoZSBiYXNlIHR5cG9ncmFwaHkgc3R5bGVzLCBiYXNlZCBvbiBhIGNvbmZpZy5cbi8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXRlcmlhbC90aGVtZS1taXhpbi1hcGkgKi9cbkBtaXhpbiBtYXQtYmFzZS10eXBvZ3JhcGh5KCRjb25maWcsICRzZWxlY3RvcjogJy5tYXQtdHlwb2dyYXBoeScpIHtcbiAgLm1hdC1oMSwgLm1hdC1oZWFkbGluZSwgI3skc2VsZWN0b3J9IGgxIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgaGVhZGxpbmUpO1xuICAgIG1hcmdpbjogMCAwIDE2cHg7XG4gIH1cblxuICAubWF0LWgyLCAubWF0LXRpdGxlLCAjeyRzZWxlY3Rvcn0gaDIge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCB0aXRsZSk7XG4gICAgbWFyZ2luOiAwIDAgMTZweDtcbiAgfVxuXG4gIC5tYXQtaDMsIC5tYXQtc3ViaGVhZGluZy0yLCAjeyRzZWxlY3Rvcn0gaDMge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBzdWJoZWFkaW5nLTIpO1xuICAgIG1hcmdpbjogMCAwIDE2cHg7XG4gIH1cblxuICAubWF0LWg0LCAubWF0LXN1YmhlYWRpbmctMSwgI3skc2VsZWN0b3J9IGg0IHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgc3ViaGVhZGluZy0xKTtcbiAgICBtYXJnaW46IDAgMCAxNnB4O1xuICB9XG5cbiAgLy8gTm90ZTogdGhlIHNwZWMgZG9lc24ndCBoYXZlIGFueXRoaW5nIHRoYXQgd291bGQgY29ycmVzcG9uZCB0byBoNSBhbmQgaDYsIGJ1dCB3ZSBhZGQgdGhlc2UgZm9yXG4gIC8vIGNvbnNpc3RlbmN5LiBUaGUgZm9udCBzaXplcyBjb21lIGZyb20gdGhlIENocm9tZSB1c2VyIGFnZW50IHN0eWxlcyB3aGljaCBoYXZlIGg1IGF0IDAuODNlbVxuICAvLyBhbmQgaDYgYXQgMC42N2VtLlxuICAubWF0LWg1LCAjeyRzZWxlY3Rvcn0gaDUge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWZvbnQtc2hvcnRoYW5kKFxuICAgICAgIC8vIGNhbGMgaXMgdXNlZCBoZXJlIHRvIHN1cHBvcnQgY3NzIHZhcmlhYmxlc1xuICAgICAgY2FsYygje21hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKX0gKiAwLjgzKSxcbiAgICAgIG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpLFxuICAgICAgbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGJvZHktMSksXG4gICAgICBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYm9keS0xKVxuICAgICk7XG5cbiAgICBtYXJnaW46IDAgMCAxMnB4O1xuICB9XG5cbiAgLm1hdC1oNiwgI3skc2VsZWN0b3J9IGg2IHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1mb250LXNob3J0aGFuZChcbiAgICAgICAvLyBjYWxjIGlzIHVzZWQgaGVyZSB0byBzdXBwb3J0IGNzcyB2YXJpYWJsZXNcbiAgICAgIGNhbGMoI3ttYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSl9ICogMC42NyksXG4gICAgICBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKSxcbiAgICAgIG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBib2R5LTEpLFxuICAgICAgbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJvZHktMSlcbiAgICApO1xuXG4gICAgbWFyZ2luOiAwIDAgMTJweDtcbiAgfVxuXG4gIC5tYXQtYm9keS1zdHJvbmcsIC5tYXQtYm9keS0yIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxuXG4gIC5tYXQtYm9keSwgLm1hdC1ib2R5LTEsICN7JHNlbGVjdG9yfSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGJvZHktMSk7XG5cbiAgICBwIHtcbiAgICAgIG1hcmdpbjogMCAwIDEycHg7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zbWFsbCwgLm1hdC1jYXB0aW9uIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgY2FwdGlvbik7XG4gIH1cblxuICAubWF0LWRpc3BsYXktNCwgI3skc2VsZWN0b3J9IC5tYXQtZGlzcGxheS00IHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgZGlzcGxheS00KTtcbiAgICBtYXJnaW46IDAgMCA1NnB4O1xuICB9XG5cbiAgLm1hdC1kaXNwbGF5LTMsICN7JHNlbGVjdG9yfSAubWF0LWRpc3BsYXktMyB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGRpc3BsYXktMyk7XG4gICAgbWFyZ2luOiAwIDAgNjRweDtcbiAgfVxuXG4gIC5tYXQtZGlzcGxheS0yLCAjeyRzZWxlY3Rvcn0gLm1hdC1kaXNwbGF5LTIge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBkaXNwbGF5LTIpO1xuICAgIG1hcmdpbjogMCAwIDY0cHg7XG4gIH1cblxuICAubWF0LWRpc3BsYXktMSwgI3skc2VsZWN0b3J9IC5tYXQtZGlzcGxheS0xIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgZGlzcGxheS0xKTtcbiAgICBtYXJnaW46IDAgMCA2NHB4O1xuICB9XG59XG5cblxuXG5cbkBtaXhpbiBtYXQtYXV0b2NvbXBsZXRlLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcblxuICAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCB7XG4gICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDQsICRjb25maWcpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgICAvLyBTZWxlY3RlZCBvcHRpb25zIGluIGF1dG9jb21wbGV0ZXMgc2hvdWxkIG5vdCBiZSBncmF5LCBidXQgd2VcbiAgICAvLyBvbmx5IHdhbnQgdG8gb3ZlcnJpZGUgdGhlIGJhY2tncm91bmQgZm9yIHNlbGVjdGVkIG9wdGlvbnMgaWZcbiAgICAvLyB0aGV5IGFyZSAqbm90KiBpbiBob3ZlciBvciBmb2N1cyBzdGF0ZS4gVGhpcyBjaGFuZ2UgaGFzIHRvIGJlXG4gICAgLy8gbWFkZSBoZXJlIGJlY2F1c2UgYmFzZSBvcHRpb24gc3R5bGVzIGFyZSBzaGFyZWQgYmV0d2VlbiB0aGVcbiAgICAvLyBhdXRvY29tcGxldGUgYW5kIHRoZSBzZWxlY3QuXG4gICAgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LWFjdGl2ZSk6bm90KDpob3Zlcikge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcblxuICAgICAgJjpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtYXV0b2NvbXBsZXRlLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIF9tYXQtYXV0b2NvbXBsZXRlLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1hdXRvY29tcGxldGUtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWF1dG9jb21wbGV0ZScpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1hdXRvY29tcGxldGUtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1hdXRvY29tcGxldGUtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1hdXRvY29tcGxldGUtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cbi8vIFRoaXMgY29udGFpbnMgYWxsIG9mIHRoZSBzdHlsZXMgZm9yIHRoZSBiYWRnZVxuLy8gcmF0aGVyIHRoYW4ganVzdCB0aGUgY29sb3IvdGhlbWUgYmVjYXVzZSBvZlxuLy8gbm8gc3R5bGUgc2hlZXQgc3VwcG9ydCBmb3IgZGlyZWN0aXZlcy5cblxuXG5cblxuXG4kbWF0LWJhZGdlLWZvbnQtc2l6ZTogMTJweDtcbiRtYXQtYmFkZ2UtZm9udC13ZWlnaHQ6IDYwMDtcbiRtYXQtYmFkZ2UtZGVmYXVsdC1zaXplOiAyMnB4ICFkZWZhdWx0O1xuJG1hdC1iYWRnZS1zbWFsbC1zaXplOiAkbWF0LWJhZGdlLWRlZmF1bHQtc2l6ZSAtIDY7XG4kbWF0LWJhZGdlLWxhcmdlLXNpemU6ICRtYXQtYmFkZ2UtZGVmYXVsdC1zaXplICsgNjtcblxuLy8gTWl4aW4gZm9yIGJ1aWxkaW5nIG9mZnNldCBnaXZlbiBkaWZmZXJlbnQgc2l6ZXNcbkBtaXhpbiBfbWF0LWJhZGdlLXNpemUoJHNpemUpIHtcbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICB3aWR0aDogJHNpemU7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJHNpemU7XG4gIH1cblxuICAmLm1hdC1iYWRnZS1hYm92ZSB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIHRvcDogLSRzaXplIC8gMjtcbiAgICB9XG4gIH1cblxuICAmLm1hdC1iYWRnZS1iZWxvdyB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIGJvdHRvbTogLSRzaXplIC8gMjtcbiAgICB9XG4gIH1cblxuICAmLm1hdC1iYWRnZS1iZWZvcmUge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBsZWZ0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgW2Rpcj0ncnRsJ10gJi5tYXQtYmFkZ2UtYmVmb3JlIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIHJpZ2h0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgJi5tYXQtYmFkZ2UtYWZ0ZXIge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICByaWdodDogLSRzaXplO1xuICAgIH1cbiAgfVxuXG4gIFtkaXI9J3J0bCddICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICBsZWZ0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgJi5tYXQtYmFkZ2Utb3ZlcmxhcCB7XG4gICAgJi5tYXQtYmFkZ2UtYmVmb3JlIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIGxlZnQ6IC0kc2l6ZSAvIDI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgW2Rpcj0ncnRsJ10gJi5tYXQtYmFkZ2UtYmVmb3JlIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHJpZ2h0OiAtJHNpemUgLyAyO1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIHJpZ2h0OiAtJHNpemUgLyAyO1xuICAgICAgfVxuICAgIH1cblxuICAgIFtkaXI9J3J0bCddICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBsZWZ0OiAtJHNpemUgLyAyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJhZGdlLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHByaW1hcnkpO1xuXG4gICAgQGluY2x1ZGUgY2RrLWhpZ2gtY29udHJhc3QoYWN0aXZlLCBvZmYpIHtcbiAgICAgIG91dGxpbmU6IHNvbGlkIDFweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1iYWRnZS1hY2NlbnQge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIGRlZmF1bHQtY29udHJhc3QpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYmFkZ2Utd2FybiB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHdhcm4sIGRlZmF1bHQtY29udHJhc3QpO1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJhZGdlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAubWF0LWJhZGdlLWhpZGRlbiB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1iYWRnZS1kaXNhYmxlZCB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICRhcHAtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnYmFja2dyb3VuZCcpO1xuICAgICAgJGJhZGdlLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLWJ1dHRvbik7XG5cbiAgICAgIC8vIFRoZSBkaXNhYmxlZCBjb2xvciB1c3VhbGx5IGhhcyBzb21lIGtpbmQgb2Ygb3BhY2l0eSwgYnV0IGJlY2F1c2UgdGhlIGJhZGdlIGlzIG92ZXJsYXllZFxuICAgICAgLy8gb24gdG9wIG9mIHNvbWV0aGluZyBlbHNlLCBpdCB3b24ndCBsb29rIGdvb2QgaWYgaXQncyBvcGFxdWUuIElmIGl0IGlzIGEgY29sb3IgKnR5cGUqLFxuICAgICAgLy8gd2UgY29udmVydCBpdCBpbnRvIGEgc29saWQgY29sb3IgYnkgdGFraW5nIHRoZSBvcGFjaXR5IGZyb20gdGhlIHJnYmEgdmFsdWUgYW5kIHVzaW5nXG4gICAgICAvLyB0aGUgdmFsdWUgdG8gZGV0ZXJtaW5lIHRoZSBwZXJjZW50YWdlIG9mIHRoZSBiYWNrZ3JvdW5kIHRvIHB1dCBpbnRvIGZvcmVncm91bmQgd2hlblxuICAgICAgLy8gbWl4aW5nIHRoZSBjb2xvcnMgdG9nZXRoZXIuXG4gICAgICBAaWYgKHR5cGUtb2YoJGJhZGdlLWNvbG9yKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkYXBwLWJhY2tncm91bmQpID09IGNvbG9yKSB7XG4gICAgICAgICRiYWRnZS1vcGFjaXR5OiBvcGFjaXR5KCRiYWRnZS1jb2xvcik7XG4gICAgICAgIGJhY2tncm91bmQ6IG1peCgkYXBwLWJhY2tncm91bmQsIHJnYmEoJGJhZGdlLWNvbG9yLCAxKSwgKDEgLSAkYmFkZ2Utb3BhY2l0eSkgKiAxMDAlKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGJhZGdlLWNvbG9yO1xuICAgICAgfVxuXG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgZWFzZS1pbi1vdXQ7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjYpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuXG4gIC5uZy1hbmltYXRlLWRpc2FibGVkIC5tYXQtYmFkZ2UtY29udGVudCxcbiAgLm1hdC1iYWRnZS1jb250ZW50Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG5cbiAgLy8gVGhlIGFjdGl2ZSBjbGFzcyBpcyBhZGRlZCBhZnRlciB0aGUgZWxlbWVudCBpcyBhZGRlZFxuICAvLyBzbyBpdCBjYW4gYW5pbWF0ZSBzY2FsZSB0byBkZWZhdWx0XG4gIC5tYXQtYmFkZ2UtY29udGVudC5tYXQtYmFkZ2UtYWN0aXZlIHtcbiAgICAvLyBTY2FsZSB0byBgbm9uZWAgaW5zdGVhZCBvZiBgMWAgdG8gYXZvaWQgYmx1cnJ5IHRleHQgaW4gc29tZSBicm93c2Vycy5cbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAubWF0LWJhZGdlLXNtYWxsIHtcbiAgICBAaW5jbHVkZSBfbWF0LWJhZGdlLXNpemUoJG1hdC1iYWRnZS1zbWFsbC1zaXplKTtcbiAgfVxuICAubWF0LWJhZGdlLW1lZGl1bSB7XG4gICAgQGluY2x1ZGUgX21hdC1iYWRnZS1zaXplKCRtYXQtYmFkZ2UtZGVmYXVsdC1zaXplKTtcbiAgfVxuICAubWF0LWJhZGdlLWxhcmdlIHtcbiAgICBAaW5jbHVkZSBfbWF0LWJhZGdlLXNpemUoJG1hdC1iYWRnZS1sYXJnZS1zaXplKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJhZGdlLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgIGZvbnQtd2VpZ2h0OiAkbWF0LWJhZGdlLWZvbnQtd2VpZ2h0O1xuICAgIGZvbnQtc2l6ZTogJG1hdC1iYWRnZS1mb250LXNpemU7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtYmFkZ2Utc21hbGwgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAvLyBTZXQgdGhlIGZvbnQgc2l6ZSB0byA3NSUgb2YgdGhlIG9yaWdpbmFsLlxuICAgIGZvbnQtc2l6ZTogJG1hdC1iYWRnZS1mb250LXNpemUgKiAwLjc1O1xuICB9XG5cbiAgLm1hdC1iYWRnZS1sYXJnZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgIGZvbnQtc2l6ZTogJG1hdC1iYWRnZS1mb250LXNpemUgKiAyO1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LWJhZGdlLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1iYWRnZS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtYmFkZ2UnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtYmFkZ2UtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1iYWRnZS1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWJhZGdlLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuQG1peGluIG1hdC1ib3R0b20tc2hlZXQtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtdGhlbWUtZWxldmF0aW9uKDE2LCAkY29uZmlnKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGRpYWxvZyk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1ib3R0b20tc2hlZXQtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtYm90dG9tLXNoZWV0LWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1ib3R0b20tc2hlZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWJvdHRvbS1zaGVldCcpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1ib3R0b20tc2hlZXQtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1ib3R0b20tc2hlZXQtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1ib3R0b20tc2hlZXQtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuJF9tYXQtYnV0dG9uLXJpcHBsZS1vcGFjaXR5OiAwLjE7XG5cbi8vIEFwcGxpZXMgYSBmb2N1cyBzdHlsZSB0byBhbiBtYXQtYnV0dG9uIGVsZW1lbnQgZm9yIGVhY2ggb2YgdGhlIHN1cHBvcnRlZCBwYWxldHRlcy5cbkBtaXhpbiBfbWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuXG4gICYubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgfVxuXG4gICYubWF0LWFjY2VudCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCk7XG4gIH1cblxuICAmLm1hdC13YXJuIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkd2Fybik7XG4gIH1cblxuICAmLm1hdC1idXR0b24tZGlzYWJsZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8gQXBwbGllcyB0aGUgYmFja2dyb3VuZCBjb2xvciBmb3IgYSByaXBwbGUuIElmIHRoZSB2YWx1ZSBwcm92aWRlZCBpcyBub3QgYSBTYXNzIGNvbG9yLFxuLy8gd2UgYXNzdW1lIHRoYXQgd2UndmUgYmVlbiBnaXZlbiBhIENTUyB2YXJpYWJsZS4gU2luY2Ugd2UgY2FuJ3QgcGVyZm9ybSBhbHBoYS1ibGVuZGluZ1xuLy8gb24gYSBDU1MgdmFyaWFibGUsIHdlIGluc3RlYWQgYWRkIHRoZSBvcGFjaXR5IGRpcmVjdGx5IHRvIHRoZSByaXBwbGUgZWxlbWVudC5cbkBtaXhpbiBfbWF0LWJ1dHRvbi1yaXBwbGUtYmFja2dyb3VuZCgkcGFsZXR0ZSwgJGh1ZSwgJG9wYWNpdHkpIHtcbiAgJGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgJGh1ZSwgJG9wYWNpdHkpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcjtcbiAgQGlmICh0eXBlLW9mKCRiYWNrZ3JvdW5kLWNvbG9yKSAhPSBjb2xvcikge1xuICAgIG9wYWNpdHk6ICRvcGFjaXR5O1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LWJ1dHRvbi1yaXBwbGUtY29sb3IoJHRoZW1lLCAkaHVlLCAkb3BhY2l0eTogJF9tYXQtYnV0dG9uLXJpcHBsZS1vcGFjaXR5KSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gICYubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tcmlwcGxlLWJhY2tncm91bmQoJHByaW1hcnksICRodWUsICRvcGFjaXR5KTtcbiAgfVxuXG4gICYubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi1yaXBwbGUtYmFja2dyb3VuZCgkYWNjZW50LCAkaHVlLCAkb3BhY2l0eSk7XG4gIH1cblxuICAmLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXJpcHBsZS1iYWNrZ3JvdW5kKCR3YXJuLCAkaHVlLCAkb3BhY2l0eSk7XG4gIH1cbn1cblxuLy8gQXBwbGllcyBhIHByb3BlcnR5IHRvIGFuIG1hdC1idXR0b24gZWxlbWVudCBmb3IgZWFjaCBvZiB0aGUgc3VwcG9ydGVkIHBhbGV0dGVzLlxuQG1peGluIF9tYXQtYnV0dG9uLXRoZW1lLXByb3BlcnR5KCR0aGVtZSwgJHByb3BlcnR5LCAkaHVlKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gICYubWF0LXByaW1hcnkge1xuICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCRwcmltYXJ5LCAkaHVlKTtcbiAgfVxuICAmLm1hdC1hY2NlbnQge1xuICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCRhY2NlbnQsICRodWUpO1xuICB9XG4gICYubWF0LXdhcm4ge1xuICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCR3YXJuLCAkaHVlKTtcbiAgfVxuXG4gICYubWF0LXByaW1hcnksICYubWF0LWFjY2VudCwgJi5tYXQtd2FybiwgJi5tYXQtYnV0dG9uLWRpc2FibGVkIHtcbiAgICAmLm1hdC1idXR0b24tZGlzYWJsZWQge1xuICAgICAgJHBhbGV0dGU6IGlmKCRwcm9wZXJ0eSA9PSAnY29sb3InLCAkZm9yZWdyb3VuZCwgJGJhY2tncm91bmQpO1xuICAgICAgI3skcHJvcGVydHl9OiBtYXQtY29sb3IoJHBhbGV0dGUsIGRpc2FibGVkLWJ1dHRvbik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtYnV0dG9uLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1idXR0b24sIC5tYXQtaWNvbi1idXR0b24sIC5tYXQtc3Ryb2tlZC1idXR0b24ge1xuICAgIC8vIEJ1dHRvbnMgd2l0aG91dCBhIGJhY2tncm91bmQgY29sb3Igc2hvdWxkIGluaGVyaXQgdGhlIGZvbnQgY29sb3IuIFRoaXMgaXMgbmVjZXNzYXJ5IHRvXG4gICAgLy8gZW5zdXJlIHRoYXQgdGhlIGJ1dHRvbiBpcyByZWFkYWJsZSBvbiBjdXN0b20gYmFja2dyb3VuZCBjb2xvcnMuIEl0J3Mgd3JvbmcgdG8gYWx3YXlzIGFzc3VtZVxuICAgIC8vIHRoYXQgdGhvc2UgYnV0dG9ucyBhcmUgYWx3YXlzIHBsYWNlZCBpbnNpZGUgb2YgY29udGFpbmVycyB3aXRoIHRoZSBkZWZhdWx0IGJhY2tncm91bmRcbiAgICAvLyBjb2xvciBvZiB0aGUgdGhlbWUgKGUuZy4gdGhlbWVkIHRvb2xiYXJzKS5cbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXRoZW1lLXByb3BlcnR5KCRjb25maWcsICdjb2xvcicsIHRleHQpO1xuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXktY29sb3IoJGNvbmZpZyk7XG5cbiAgICAvLyBTZXR1cCB0aGUgcmlwcGxlIGNvbG9yIHRvIGJlIGJhc2VkIG9uIHRoZSB0ZXh0IGNvbG9yLiBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgcmlwcGxlc1xuICAgIC8vIGFyZSBtYXRjaGluZyB3aXRoIHRoZSBjdXJyZW50IHRoZW1lIHBhbGV0dGUgYW5kIGFyZSBpbiBjb250cmFzdCB0byB0aGUgYmFja2dyb3VuZCBjb2xvclxuICAgIC8vIChlLmcgaW4gdGhlbWVkIHRvb2xiYXJzKS5cbiAgICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICAgIG9wYWNpdHk6ICRfbWF0LWJ1dHRvbi1yaXBwbGUtb3BhY2l0eTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRmb3JlZ3JvdW5kLCBiYXNlKTtcbiAgfVxuXG4gIC8vIE5vdGU6IHRoaXMgbmVlZHMgYSBiaXQgZXh0cmEgc3BlY2lmaWNpdHksIGJlY2F1c2Ugd2UncmUgbm90IGd1YXJhbnRlZWQgdGhlIGluY2x1c2lvblxuICAvLyBvcmRlciBvZiB0aGUgdGhlbWUgc3R5bGVzIGFuZCB0aGUgYnV0dG9uIHJlc2V0IG1heSBlbmQgdXAgcmVzZXR0aW5nIHRoaXMgYXMgd2VsbC5cbiAgLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWZsYXQtYnV0dG9uLCAubWF0LXJhaXNlZC1idXR0b24sIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgICAvLyBEZWZhdWx0IGZvbnQgYW5kIGJhY2tncm91bmQgY29sb3Igd2hlbiBub3QgdXNpbmcgYW55IGNvbG9yIHBhbGV0dGUuXG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCByYWlzZWQtYnV0dG9uKTtcblxuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXRoZW1lLXByb3BlcnR5KCRjb25maWcsICdjb2xvcicsIGRlZmF1bHQtY29udHJhc3QpO1xuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXRoZW1lLXByb3BlcnR5KCRjb25maWcsICdiYWNrZ3JvdW5kLWNvbG9yJywgZGVmYXVsdCk7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tcmlwcGxlLWNvbG9yKCRjb25maWcsIGRlZmF1bHQtY29udHJhc3QpO1xuICB9XG5cbiAgLm1hdC1zdHJva2VkLWJ1dHRvbiwgLm1hdC1mbGF0LWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDAsICRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1yYWlzZWQtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMiwgJGNvbmZpZyk7XG5cbiAgICAmOm5vdCgubWF0LWJ1dHRvbi1kaXNhYmxlZCk6YWN0aXZlIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbig4LCAkY29uZmlnKTtcbiAgICB9XG5cbiAgICAmLm1hdC1idXR0b24tZGlzYWJsZWQge1xuICAgICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDAsICRjb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNiwgJGNvbmZpZyk7XG5cbiAgICAmOm5vdCgubWF0LWJ1dHRvbi1kaXNhYmxlZCk6YWN0aXZlIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbigxMiwgJGNvbmZpZyk7XG4gICAgfVxuXG4gICAgJi5tYXQtYnV0dG9uLWRpc2FibGVkIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbigwLCAkY29uZmlnKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1idXR0b24tdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtYnV0dG9uLCAubWF0LXJhaXNlZC1idXR0b24sIC5tYXQtaWNvbi1idXR0b24sIC5tYXQtc3Ryb2tlZC1idXR0b24sXG4gIC5tYXQtZmxhdC1idXR0b24sIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBidXR0b24pO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBidXR0b24pO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYnV0dG9uKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9tYXQtYnV0dG9uLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1idXR0b24tdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWJ1dHRvbicpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1idXR0b24tY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1idXR0b24tZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1idXR0b24tdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cbiRtYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFyZC1oZWlnaHQ6IDQ4cHggIWRlZmF1bHQ7XG4vLyBNaW5pbXVtIGhlaWdodCBmb3IgaGlnaGVzdCBkZW5zaXR5IGNhbiB2YXJ5IGJhc2VkIG9uIHRoZSBjb250ZW50IHRoYXQgZGV2ZWxvcGVyc1xuLy8gcHJvamVjdCBpbnRvIGJ1dHRvbi10b2dnbGUncy4gV2UgdXNlIGEgbWluaW11bSBvZiBgMjRweGAgdGhvdWdoIGJlY2F1c2UgY29tbW9ubHlcbi8vIGljb25zIG9yIHRleHQgYXJlIGRpc3BsYXllZC4gSWNvbnMgYnkgZGVmYXVsdCBoYXZlIGEgc2l6ZSBvZiBgMjRweGAuXG4kbWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhcmQtbWluaW11bS1oZWlnaHQ6IDI0cHggIWRlZmF1bHQ7XG4kbWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhcmQtbWF4aW11bS1oZWlnaHQ6ICRtYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFyZC1oZWlnaHQgIWRlZmF1bHQ7XG5cbiRtYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFyZC1kZW5zaXR5LWNvbmZpZzogKFxuICBoZWlnaHQ6IChcbiAgICBkZWZhdWx0OiAkbWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhcmQtaGVpZ2h0LFxuICAgIG1heGltdW06ICRtYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFyZC1tYXhpbXVtLWhlaWdodCxcbiAgICBtaW5pbXVtOiAkbWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhcmQtbWluaW11bS1oZWlnaHQsXG4gIClcbikgIWRlZmF1bHQ7XG5cblxuQG1peGluIG1hdC1idXR0b24tdG9nZ2xlLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGRpdmlkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUsXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtdGhlbWUtZWxldmF0aW9uKDIsICRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbiAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG5cbiAgICAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGZvY3VzZWQtYnV0dG9uKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcblxuICAgIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZm9jdXNlZC1idXR0b24sIDEpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweCAkZGl2aWRlci1jb2xvcjtcbiAgfVxuXG4gIFtkaXI9J3J0bCddIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggJGRpdmlkZXItY29sb3I7XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZC5tYXQtYnV0dG9uLXRvZ2dsZS12ZXJ0aWNhbCB7XG4gICAgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgYm9yZGVyLXRvcDogc29saWQgMXB4ICRkaXZpZGVyLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIHNlbGVjdGVkLWJ1dHRvbik7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuXG4gICAgJi5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtYnV0dG9uKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGRpc2FibGVkLWJ1dHRvbi10b2dnbGUpO1xuXG4gICAgJi5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgfVxuXG4gICAgJi5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgc2VsZWN0ZWQtZGlzYWJsZWQtYnV0dG9uKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLFxuICAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggJGRpdmlkZXItY29sb3I7XG4gIH1cbn1cblxuQG1peGluIG1hdC1idXR0b24tdG9nZ2xlLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1idXR0b24tdG9nZ2xlLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkZGVuc2l0eS1zY2FsZTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJHN0YW5kYXJkLWhlaWdodDogbWF0LXByaXZhdGUtZGVuc2l0eS1wcm9wLXZhbHVlKFxuICAgICAgJG1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYXJkLWRlbnNpdHktY29uZmlnLCAkZGVuc2l0eS1zY2FsZSwgaGVpZ2h0KTtcblxuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1kZW5zaXR5LWxlZ2FjeS1jb21wYXRpYmlsaXR5KCkge1xuICAgIC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50IHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkc3RhbmRhcmQtaGVpZ2h0O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJ1dHRvbi10b2dnbGUtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWJ1dHRvbi10b2dnbGUnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtYnV0dG9uLXRvZ2dsZS1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtYnV0dG9uLXRvZ2dsZS1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10b2dnbGUtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtY2FyZC1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1jYXJkIHtcbiAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMSwgJGNvbmZpZyk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgIC8vIE5lZWRzIGV4dHJhIHNwZWNpZmljaXR5IHRvIGJlIGFibGUgdG8gb3ZlcnJpZGUgdGhlIGVsZXZhdGlvbiBzZWxlY3RvcnMuXG4gICAgJi5tYXQtY2FyZC1mbGF0IHtcbiAgICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbigwLCAkY29uZmlnKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWNhcmQtc3VidGl0bGUge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWNhcmQtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtY2FyZCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtY2FyZC10aXRsZSB7XG4gICAgZm9udDoge1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBoZWFkbGluZSk7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCB0aXRsZSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYXJkLWhlYWRlciAubWF0LWNhcmQtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCB0aXRsZSk7XG4gIH1cblxuICAubWF0LWNhcmQtc3VidGl0bGUsXG4gIC5tYXQtY2FyZC1jb250ZW50IHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC1jYXJkLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1jYXJkLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1jYXJkJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWNhcmQtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1jYXJkLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtY2FyZC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5AbWl4aW4gbWF0LWNoZWNrYm94LWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCRjb25maWcsIGlzLWRhcmspO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG5cbiAgLy8gVGhlIGNvbG9yIG9mIHRoZSBjaGVja2JveCdzIGNoZWNrbWFyayAvIG1peGVkbWFyay5cbiAgJGNoZWNrYm94LW1hcmstY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgYmFja2dyb3VuZCk7XG5cbiAgLy8gTk9URSh0cmF2aXNrYXVmbWFuKTogV2hpbGUgdGhlIHNwZWMgY2FsbHMgZm9yIHRyYW5zbHVjZW50IGJsYWNrcy93aGl0ZXMgZm9yIGRpc2FibGVkIGNvbG9ycyxcbiAgLy8gdGhpcyBkb2VzIG5vdCB3b3JrIHdlbGwgd2l0aCBlbGVtZW50cyBsYXllcmVkIG9uIHRvcCBvZiBvbmUgYW5vdGhlci4gVG8gZ2V0IGFyb3VuZCB0aGlzIHdlXG4gIC8vIGJsZW5kIHRoZSBjb2xvcnMgdG9nZXRoZXIgYmFzZWQgb24gdGhlIGJhc2UgY29sb3IgYW5kIHRoZSB0aGVtZSBiYWNrZ3JvdW5kLlxuICAkd2hpdGUtMzBwY3Qtb3BhY2l0eS1vbi1kYXJrOiAjNjg2ODY4O1xuICAkYmxhY2stMjZwY3Qtb3BhY2l0eS1vbi1saWdodDogI2IwYjBiMDtcbiAgJGRpc2FibGVkLWNvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgJHdoaXRlLTMwcGN0LW9wYWNpdHktb24tZGFyaywgJGJsYWNrLTI2cGN0LW9wYWNpdHktb24tbGlnaHQpO1xuXG4gIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWNoZWNrbWFyayB7XG4gICAgZmlsbDogJGNoZWNrYm94LW1hcmstY29sb3I7XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoIHtcbiAgICAvLyAhaW1wb3J0YW50IGlzIG5lZWRlZCBoZXJlIGJlY2F1c2UgYSBzdHJva2UgbXVzdCBiZSBzZXQgYXMgYW5cbiAgICAvLyBhdHRyaWJ1dGUgb24gdGhlIFNWRyBpbiBvcmRlciBmb3IgbGluZSBhbmltYXRpb24gdG8gd29yayBwcm9wZXJseS5cbiAgICBzdHJva2U6ICRjaGVja2JveC1tYXJrLWNvbG9yICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWF0LWNoZWNrYm94LW1peGVkbWFyayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNoZWNrYm94LW1hcmstY29sb3I7XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUsIC5tYXQtY2hlY2tib3gtY2hlY2tlZCB7XG4gICAgJi5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHdhcm4pO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQge1xuICAgICYubWF0LWNoZWNrYm94LWNoZWNrZWQsXG4gICAgJi5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gICAgICAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLm1hdC1jaGVja2JveC1jaGVja2VkKSB7XG4gICAgICAubWF0LWNoZWNrYm94LWZyYW1lIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1jaGVja2JveC1sYWJlbCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLy8gU3dpdGNoIHRoaXMgdG8gYSBzb2xpZCBjb2xvciBzaW5jZSB3ZSdyZSB1c2luZyBgb3BhY2l0eWBcbiAgLy8gdG8gY29udHJvbCBob3cgb3BhcXVlIHRoZSByaXBwbGUgc2hvdWxkIGJlLlxuICAubWF0LWNoZWNrYm94IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQobWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKSwgYmFzZSk7XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLFxuICAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkge1xuICAgICYubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1jaGVja2JveC10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC1jaGVja2JveCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC8vIFRPRE8oa2FyYSk6IFJlbW92ZSB0aGlzIHN0eWxlIHdoZW4gZml4aW5nIHZlcnRpY2FsIGJhc2VsaW5lXG4gIC5tYXQtY2hlY2tib3gtbGF5b3V0IC5tYXQtY2hlY2tib3gtbGFiZWwge1xuICAgIGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC1jaGVja2JveC1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtY2hlY2tib3gtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWNoZWNrYm94Jykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWNoZWNrYm94LWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtY2hlY2tib3gtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1jaGVja2JveC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cbiRtYXQtY2hpcC1yZW1vdmUtZm9udC1zaXplOiAxOHB4O1xuXG5AbWl4aW4gX21hdC1jaGlwLWVsZW1lbnQtY29sb3IoJGZvcmVncm91bmQsICRiYWNrZ3JvdW5kKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGZvcmVncm91bmQ7XG5cbiAgLm1hdC1jaGlwLXJlbW92ZSB7XG4gICAgY29sb3I6ICRmb3JlZ3JvdW5kO1xuICAgIG9wYWNpdHk6IDAuNDtcbiAgfVxufVxuXG5cbi8vIEFwcGxpZXMgdGhlIGJhY2tncm91bmQgY29sb3IgZm9yIGEgcmlwcGxlIGVsZW1lbnQuXG4vLyBJZiB0aGUgY29sb3IgdmFsdWUgcHJvdmlkZWQgaXMgbm90IGEgU2FzcyBjb2xvcixcbi8vIHdlIGFzc3VtZSB0aGF0IHdlJ3ZlIGJlZW4gZ2l2ZW4gYSBDU1MgdmFyaWFibGUuXG4vLyBTaW5jZSB3ZSBjYW4ndCBwZXJmb3JtIGFscGhhLWJsZW5kaW5nIG9uIGEgQ1NTIHZhcmlhYmxlLFxuLy8gd2UgaW5zdGVhZCBhZGQgdGhlIG9wYWNpdHkgZGlyZWN0bHkgdG8gdGhlIHJpcHBsZSBlbGVtZW50LlxuQG1peGluIF9tYXQtY2hpcHMtcmlwcGxlLWJhY2tncm91bmQoJHBhbGV0dGUsICRkZWZhdWx0LWNvbnRyYXN0LCAkb3BhY2l0eSkge1xuICAkYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCAkZGVmYXVsdC1jb250cmFzdCwgJG9wYWNpdHkpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcjtcbiAgQGlmICh0eXBlLW9mKCRiYWNrZ3JvdW5kLWNvbG9yKSAhPSBjb2xvcikge1xuICAgIG9wYWNpdHk6ICRvcGFjaXR5O1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LWNoaXAtdGhlbWUtY29sb3IoJHBhbGV0dGUpIHtcbiAgQGluY2x1ZGUgX21hdC1jaGlwLWVsZW1lbnQtY29sb3IobWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0KSwgbWF0LWNvbG9yKCRwYWxldHRlKSk7XG5cbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgQGluY2x1ZGUgX21hdC1jaGlwcy1yaXBwbGUtYmFja2dyb3VuZCgkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCwgMC4xKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWNoaXBzLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCRjb25maWcsIGlzLWRhcmspO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gICR1bnNlbGVjdGVkLWJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgdW5zZWxlY3RlZC1jaGlwKTtcbiAgJHVuc2VsZWN0ZWQtZm9yZWdyb3VuZDogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAge1xuICAgIEBpbmNsdWRlIF9tYXQtY2hpcC1lbGVtZW50LWNvbG9yKCR1bnNlbGVjdGVkLWZvcmVncm91bmQsICR1bnNlbGVjdGVkLWJhY2tncm91bmQpO1xuXG4gICAgJjpub3QoLm1hdC1jaGlwLWRpc2FibGVkKSB7XG4gICAgICAmOmFjdGl2ZSB7XG4gICAgICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLWVsZXZhdGlvbigzLCAkY29uZmlnKTtcbiAgICAgIH1cblxuICAgICAgLm1hdC1jaGlwLXJlbW92ZTpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5tYXQtY2hpcC1kaXNhYmxlZCB7XG4gICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogbWFwLWdldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkIHtcbiAgICAmLm1hdC1wcmltYXJ5IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtY2hpcC10aGVtZS1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWNoaXAtdGhlbWUtY29sb3IoJHdhcm4pO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWNoaXAtdGhlbWUtY29sb3IoJGFjY2VudCk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtY2hpcHMtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtY2hpcCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMik7XG4gICAgZm9udC13ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTIpO1xuXG4gICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb24sXG4gICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbiB7XG4gICAgICBmb250LXNpemU6ICRtYXQtY2hpcC1yZW1vdmUtZm9udC1zaXplO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gX21hdC1jaGlwcy1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtY2hpcHMtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWNoaXBzJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWNoaXBzLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtY2hpcHMtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1jaGlwcy10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtZGl2aWRlci1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWRpdmlkZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWRpdmlkZXItdmVydGljYWwge1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWRpdmlkZXItdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gX21hdC1kaXZpZGVyLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1kaXZpZGVyLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1kaXZpZGVyJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWRpdmlkZXItY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1kaXZpZGVyLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZGl2aWRlci10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5AbWl4aW4gbWF0LXRhYmxlLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LXRhYmxlIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdjYXJkJyk7XG4gIH1cblxuICAubWF0LXRhYmxlIHRoZWFkLCAubWF0LXRhYmxlIHRib2R5LCAubWF0LXRhYmxlIHRmb290LFxuICBtYXQtaGVhZGVyLXJvdywgbWF0LXJvdywgbWF0LWZvb3Rlci1yb3csXG4gIFttYXQtaGVhZGVyLXJvd10sIFttYXQtcm93XSwgW21hdC1mb290ZXItcm93XSxcbiAgLm1hdC10YWJsZS1zdGlja3kge1xuICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gIH1cblxuICBtYXQtcm93LCBtYXQtaGVhZGVyLXJvdywgbWF0LWZvb3Rlci1yb3csXG4gIHRoLm1hdC1oZWFkZXItY2VsbCwgdGQubWF0LWNlbGwsIHRkLm1hdC1mb290ZXItY2VsbCB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxuXG4gIC5tYXQtaGVhZGVyLWNlbGwge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtY2VsbCwgLm1hdC1mb290ZXItY2VsbCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC10YWJsZS10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC10YWJsZSB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtaGVhZGVyLWNlbGwge1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICBmb250LXdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMik7XG4gIH1cblxuICAubWF0LWNlbGwsIC5tYXQtZm9vdGVyLWNlbGwge1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LXRhYmxlLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC10YWJsZS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtdGFibGUnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtdGFibGUtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC10YWJsZS1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXRhYmxlLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG4kbWF0LWRhdGVwaWNrZXItc2VsZWN0ZWQtdG9kYXktYm94LXNoYWRvdy13aWR0aDogMXB4O1xuJG1hdC1kYXRlcGlja2VyLXNlbGVjdGVkLWZhZGUtYW1vdW50OiAwLjY7XG4kbWF0LWRhdGVwaWNrZXItcmFuZ2UtZmFkZS1hbW91bnQ6IDAuMjtcbiRtYXQtZGF0ZXBpY2tlci10b2RheS1mYWRlLWFtb3VudDogMC4yO1xuJG1hdC1jYWxlbmRhci1ib2R5LWZvbnQtc2l6ZTogMTNweCAhZGVmYXVsdDtcbiRtYXQtY2FsZW5kYXItd2Vla2RheS10YWJsZS1mb250LXNpemU6IDExcHggIWRlZmF1bHQ7XG5cbkBtaXhpbiBfbWF0LWRhdGVwaWNrZXItY29sb3IoJHBhbGV0dGUpIHtcbiAgQGluY2x1ZGUgbWF0LWRhdGUtcmFuZ2UtY29sb3JzKFxuICAgIG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdCwgJG1hdC1kYXRlcGlja2VyLXJhbmdlLWZhZGUtYW1vdW50KSk7XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgICAkYmFja2dyb3VuZDogbWF0LWNvbG9yKCRwYWxldHRlKTtcblxuICAgIEBpZiAodHlwZS1vZigkYmFja2dyb3VuZCkgPT0gY29sb3IpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGZhZGUtb3V0KCRiYWNrZ3JvdW5kLCAkbWF0LWRhdGVwaWNrZXItc2VsZWN0ZWQtZmFkZS1hbW91bnQpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBJZiB3ZSBjb3VsZG4ndCByZXNvbHZlIHRvIGJhY2tncm91bmQgdG8gYSBjb2xvciAoZS5nLiBpdCdzIGEgQ1NTIHZhcmlhYmxlKSxcbiAgICAgIC8vIGZhbGwgYmFjayB0byBmYWRpbmcgdGhlIGNvbnRlbnQgb3V0IHZpYSBgb3BhY2l0eWAuXG4gICAgICBvcGFjaXR5OiAkbWF0LWRhdGVwaWNrZXItdG9kYXktZmFkZS1hbW91bnQ7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAkbWF0LWRhdGVwaWNrZXItc2VsZWN0ZWQtdG9kYXktYm94LXNoYWRvdy13aWR0aFxuICAgICAgICAgICAgICAgIG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktY2VsbDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkKTpob3ZlcixcbiAgLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmUsXG4gIC5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmUge1xuICAgICYgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtZGF0ZXBpY2tlci11bnNlbGVjdGVkLWNlbGwge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsIDAuMyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFV0aWxpdHkgbWl4aW4gdG8gdGFyZ2V0IGNlbGxzIHRoYXQgYXJlbid0IHNlbGVjdGVkLiBVc2VkIHRvIG1ha2Ugc2VsZWN0b3IgZWFzaWVyIHRvIGZvbGxvdy5cbkBtaXhpbiBfbWF0LWRhdGVwaWNrZXItdW5zZWxlY3RlZC1jZWxsIHtcbiAgJjpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIG1hdC1kYXRlcGlja2VyLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGRpc2FibGVkLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuXG4gIC5tYXQtY2FsZW5kYXItYXJyb3cge1xuICAgIGJvcmRlci10b3AtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgaWNvbik7XG4gIH1cblxuICAvLyBUaGUgcHJldi9uZXh0IGJ1dHRvbnMgbmVlZCBhIGJpdCBtb3JlIHNwZWNpZmljaXR5IHRvXG4gIC8vIGF2b2lkIGJlaW5nIG92ZXJ3cml0dGVuIGJ5IHRoZSAubWF0LWljb24tYnV0dG9uLlxuICAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLFxuICAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLW5leHQtYnV0dG9uLFxuICAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLXByZXZpb3VzLWJ1dHRvbiB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgaWNvbik7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgaGludC10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyLWRpdmlkZXI6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50LFxuICAubWF0LWRhdGUtcmFuZ2UtaW5wdXQtc2VwYXJhdG9yIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudCB7XG4gICAgQGluY2x1ZGUgX21hdC1kYXRlcGlja2VyLXVuc2VsZWN0ZWQtY2VsbCB7XG4gICAgICBjb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWRhdGUtcmFuZ2UtaW5wdXQtc2VwYXJhdG9yIHtcbiAgICBjb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWluLXByZXZpZXcge1xuICAgICRkaXZpZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuXG4gICAgQGlmIHR5cGUtb2YoJGRpdmlkZXItY29sb3IpID09IGNvbG9yIHtcbiAgICAgIC8vIFRoZSBkaXZpZGVyIGNvbG9yIGlzIHNldCB1bmRlciB0aGUgYXNzdW1wdGlvbiB0aGF0IGl0J2xsIGJlIHVzZWRcbiAgICAgIC8vIGZvciBhIHNvbGlkIGJvcmRlciwgYnV0IGJlY2F1c2Ugd2UncmUgdXNpbmcgYSBkYXNoZWQgYm9yZGVyIGZvciB0aGVcbiAgICAgIC8vIHByZXZpZXcgcmFuZ2UsIHdlIG5lZWQgdG8gYnVtcCBpdHMgb3BhY2l0eSB0byBlbnN1cmUgdGhhdCBpdCdzIHZpc2libGUuXG4gICAgICBjb2xvcjogcmdiYSgkZGl2aWRlci1jb2xvciwgbWluKG9wYWNpdHkoJGRpdmlkZXItY29sb3IpICogMiwgMSkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBjb2xvcjogJGRpdmlkZXItY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5IHtcbiAgICBAaW5jbHVkZSBfbWF0LWRhdGVwaWNrZXItdW5zZWxlY3RlZC1jZWxsIHtcbiAgICAgIC8vIE5vdGU6IHRob3VnaCBpdCdzIG5vdCB0ZXh0LCB0aGUgYm9yZGVyIGlzIGEgaGludCBhYm91dCB0aGUgZmFjdCB0aGF0IHRoaXMgaXMgdG9kYXkncyBkYXRlLFxuICAgICAgLy8gc28gd2UgdXNlIHRoZSBoaW50IGNvbG9yLlxuICAgICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5IHtcbiAgICBAaW5jbHVkZSBfbWF0LWRhdGVwaWNrZXItdW5zZWxlY3RlZC1jZWxsIHtcbiAgICAgICRjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuXG4gICAgICBAaWYgKHR5cGUtb2YoJGNvbG9yKSA9PSBjb2xvcikge1xuICAgICAgICBib3JkZXItY29sb3I6IGZhZGUtb3V0KCRjb2xvciwgJG1hdC1kYXRlcGlja2VyLXRvZGF5LWZhZGUtYW1vdW50KTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgLy8gSWYgdGhlIGNvbG9yIGRpZG4ndCByZXNvbHZlIHRvIGEgY29sb3IgdmFsdWUsIGJ1dCBzb21ldGhpbmcgbGlrZSBhIENTUyB2YXJpYWJsZSwgd2UgY2FuJ3RcbiAgICAgICAgLy8gZmFkZSBpdCBvdXQgc28gd2UgZmFsbCBiYWNrIHRvIHJlZHVjaW5nIHRoZSBlbGVtZW50IG9wYWNpdHkuIE5vdGUgdGhhdCB3ZSBkb24ndCB1c2UgdGhlXG4gICAgICAgIC8vICRtYXQtZGF0ZXBpY2tlci10b2RheS1mYWRlLWFtb3VudCwgYmVjYXVzZSBoaW50IHRleHQgdXN1YWxseSBoYXMgc29tZSBvcGFjaXR5IGFwcGxpZWRcbiAgICAgICAgLy8gdG8gaXQgYWxyZWFkeSBhbmQgd2UgZG9uJ3Qgd2FudCB0aGVtIHRvIHN0YWNrIG9uIHRvcCBvZiBlYWNoIG90aGVyLlxuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgX21hdC1kYXRlcGlja2VyLWNvbG9yKG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSkpO1xuXG4gIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS10aGVtZS1lbGV2YXRpb24oNCwgJGNvbmZpZyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LWFjY2VudCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWRhdGVwaWNrZXItY29sb3IobWFwLWdldCgkY29uZmlnLCBhY2NlbnQpKTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtZGF0ZXBpY2tlci1jb2xvcihtYXAtZ2V0KCRjb25maWcsIHdhcm4pKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWRhdGVwaWNrZXItY29udGVudC10b3VjaCB7XG4gICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtdGhlbWUtZWxldmF0aW9uKDAsICRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUge1xuICAgIGNvbG9yOiBtYXQtY29sb3IobWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KSwgdGV4dCk7XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCRjb25maWcsIGFjY2VudCksIHRleHQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCRjb25maWcsIHdhcm4pLCB0ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWRhdGUtcmFuZ2UtaW5wdXQtaW5uZXJbZGlzYWJsZWRdIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWRhdGVwaWNrZXItdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtY2FsZW5kYXIge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHkge1xuICAgIGZvbnQtc2l6ZTogJG1hdC1jYWxlbmRhci1ib2R5LWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCxcbiAgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJ1dHRvbik7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHRoIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiAkbWF0LWNhbGVuZGFyLXdlZWtkYXktdGFibGUtZm9udC1zaXplO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1kYXRlLXJhbmdlLWNvbG9ycyhcbiAgJHJhbmdlLWNvbG9yLFxuICAkY29tcGFyaXNvbi1jb2xvcjogcmdiYSgjZjlhYjAwLCAkbWF0LWRhdGVwaWNrZXItcmFuZ2UtZmFkZS1hbW91bnQpLFxuICAkb3ZlcmxhcC1jb2xvcjogI2E4ZGFiNSxcbiAgJG92ZXJsYXAtc2VsZWN0ZWQtY29sb3I6IGRhcmtlbigkb3ZlcmxhcC1jb2xvciwgMzAlKSkge1xuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZTo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAkcmFuZ2UtY29sb3I7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsXG4gIC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlOjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6ICRjb21wYXJpc29uLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLXN0YXJ0OjpiZWZvcmUsXG4gIFtkaXI9J3J0bCddIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1lbmQ6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkcmFuZ2UtY29sb3IgNTAlLCAkY29tcGFyaXNvbi1jb2xvciA1MCUpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3JlLFxuICBbZGlyPSdydGwnXSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2Utc3RhcnQ6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsICRyYW5nZS1jb2xvciA1MCUsICRjb21wYXJpc29uLWNvbG9yIDUwJSk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2UgPiAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsXG4gIC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlLm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlOjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogJG92ZXJsYXAtY29sb3I7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQsXG4gIC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kOiAkb3ZlcmxhcC1zZWxlY3RlZC1jb2xvcjtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC1kYXRlcGlja2VyLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1kYXRlcGlja2VyLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1kYXRlcGlja2VyJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWRhdGVwaWNrZXItY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1kYXRlcGlja2VyLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZGF0ZXBpY2tlci10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1kaWFsb2ctY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtZGlhbG9nLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtdGhlbWUtZWxldmF0aW9uKDI0LCAkY29uZmlnKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGRpYWxvZyk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1kaWFsb2ctdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtZGlhbG9nLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgdGl0bGUpO1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LWRpYWxvZy1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtZGlhbG9nLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1kaWFsb2cnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZGlhbG9nLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtZGlhbG9nLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZGlhbG9nLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuLy8gRGVmYXVsdCBtaW5pbXVtIGFuZCBtYXhpbXVtIGhlaWdodCBmb3IgY29sbGFwc2VkIHBhbmVsIGhlYWRlcnMuXG4kbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItY29sbGFwc2VkLWhlaWdodDogNDhweCAhZGVmYXVsdDtcbiRtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1jb2xsYXBzZWQtbWluaW11bS1oZWlnaHQ6IDM2cHggIWRlZmF1bHQ7XG4kbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItY29sbGFwc2VkLW1heGltdW0taGVpZ2h0OlxuICAgICRtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1jb2xsYXBzZWQtaGVpZ2h0ICFkZWZhdWx0O1xuXG4vLyBEZWZhdWx0IG1pbmltdW0gYW5kIG1heGltdW0gaGVpZ2h0IGZvciBleHBhbmRlZCBwYW5lbCBoZWFkZXJzLlxuJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWV4cGFuZGVkLWhlaWdodDogNjRweCAhZGVmYXVsdDtcbiRtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1leHBhbmRlZC1taW5pbXVtLWhlaWdodDogNDhweCAhZGVmYXVsdDtcbiRtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1leHBhbmRlZC1tYXhpbXVtLWhlaWdodDpcbiAgICAkbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZXhwYW5kZWQtaGVpZ2h0ICFkZWZhdWx0O1xuXG4vLyBEZW5zaXR5IGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBleHBhbnNpb24gcGFuZWwuIENhcHR1cmVzIHRoZVxuLy8gaGVpZ2h0IGZvciBib3RoIGV4cGFuZGVkIGFuZCBjb2xsYXBzZWQgcGFuZWwgaGVhZGVycy5cbiRtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZW5zaXR5LWNvbmZpZzogKFxuICBjb2xsYXBzZWQtaGVpZ2h0OiAoXG4gICAgZGVmYXVsdDogJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWNvbGxhcHNlZC1oZWlnaHQsXG4gICAgbWF4aW11bTogJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWNvbGxhcHNlZC1tYXhpbXVtLWhlaWdodCxcbiAgICBtaW5pbXVtOiAkbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItY29sbGFwc2VkLW1pbmltdW0taGVpZ2h0LFxuICApLFxuICBleHBhbmRlZC1oZWlnaHQ6IChcbiAgICBkZWZhdWx0OiAkbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZXhwYW5kZWQtaGVpZ2h0LFxuICAgIG1heGltdW06ICRtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1leHBhbmRlZC1tYXhpbXVtLWhlaWdodCxcbiAgICBtaW5pbXVtOiAkbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZXhwYW5kZWQtbWluaW11bS1oZWlnaHQsXG4gIClcbikgIWRlZmF1bHQ7XG5cbi8vIE5vdGU6IEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggdGhlIGFuaW1hdGlvbiB0aW1pbmcgZm9yIHRoZSB0b2dnbGUgaW5kaWNhdG9yXG4vLyBhbmQgYm9keSBleHBhbnNpb24uIFRoZXNlIGFyZSBhbmltYXRlZCB1c2luZyBBbmd1bGFyIGFuaW1hdGlvbnMuXG4kbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdHJhbnNpdGlvbjogMjI1bXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcblxuQG1peGluIG1hdC1wcml2YXRlLWV4cGFuc2lvbi1mb2N1cyB7XG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsIHtcbiAgICAmIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jZGsta2V5Ym9hcmQtZm9jdXNlZCxcbiAgICAmIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jZGstcHJvZ3JhbS1mb2N1c2VkLFxuICAgICY6bm90KC5tYXQtZXhwYW5kZWQpIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcjpob3ZlciB7XG4gICAgICAmOm5vdChbYXJpYS1kaXNhYmxlZD0ndHJ1ZSddKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbkBtaXhpbiBtYXQtZXhwYW5zaW9uLXBhbmVsLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWV4cGFuc2lvbi1wYW5lbCB7XG4gICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDIsICRjb25maWcpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cblxuICAubWF0LWFjdGlvbi1yb3cge1xuICAgIGJvcmRlci10b3AtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1leHBhbnNpb24tZm9jdXMge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIpO1xuICB9XG5cbiAgLy8gRGlzYWJsZSB0aGUgaG92ZXIgb24gdG91Y2ggZGV2aWNlcyBzaW5jZSBpdCBjYW4gYXBwZWFyIGxpa2UgaXQgaXMgc3R1Y2suIFdlIGNhbid0IHVzZVxuICAvLyBgQG1lZGlhIChob3ZlcilgIGFib3ZlLCBiZWNhdXNlIHRoZSBkZXNrdG9wIHN1cHBvcnQgYnJvd3NlciBzdXBwb3J0IGlzbid0IGdyZWF0LlxuICBAbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gICAgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KC5tYXQtZXhwYW5kZWQpOm5vdChbYXJpYS1kaXNhYmxlZD0ndHJ1ZSddKVxuICAgICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbixcbiAgLm1hdC1leHBhbnNpb24taW5kaWNhdG9yOjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtYnV0dG9uKTtcblxuICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSxcbiAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtZXhwYW5zaW9uLXBhbmVsLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBzdWJoZWFkaW5nLTEpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtZXhwYW5zaW9uLXBhbmVsLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkZGVuc2l0eS1zY2FsZTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGV4cGFuZGVkLWhlaWdodDogbWF0LXByaXZhdGUtZGVuc2l0eS1wcm9wLXZhbHVlKFxuICAgICAgICAkbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVuc2l0eS1jb25maWcsICRkZW5zaXR5LXNjYWxlLCBleHBhbmRlZC1oZWlnaHQpO1xuICAkY29sbGFwc2VkLWhlaWdodDogbWF0LXByaXZhdGUtZGVuc2l0eS1wcm9wLXZhbHVlKFxuICAgICAgJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlbnNpdHktY29uZmlnLCAkZGVuc2l0eS1zY2FsZSwgY29sbGFwc2VkLWhlaWdodCk7XG5cbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtZGVuc2l0eS1sZWdhY3ktY29tcGF0aWJpbGl0eSgpIHtcbiAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICAgICAgaGVpZ2h0OiAkY29sbGFwc2VkLWhlaWdodDtcblxuICAgICAgJi5tYXQtZXhwYW5kZWQge1xuICAgICAgICBoZWlnaHQ6ICRleHBhbmRlZC1oZWlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtZXhwYW5zaW9uLXBhbmVsLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1leHBhbnNpb24tcGFuZWwnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZXhwYW5zaW9uLXBhbmVsLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1leHBhbnNpb24tcGFuZWwtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1leHBhbnNpb24tcGFuZWwtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cbi8vIFRoaXMgbWl4aW4gd2lsbCBlbnN1cmUgdGhhdCBsaW5lcyB0aGF0IG92ZXJmbG93IHRoZSBjb250YWluZXIgd2lsbCBoaWRlIHRoZSBvdmVyZmxvdyBhbmRcbi8vIHRydW5jYXRlIG5lYXRseSB3aXRoIGFuIGVsbGlwc2lzLlxuQG1peGluIG1hdC10cnVuY2F0ZS1saW5lKCkge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLy8gTWl4aW4gdG8gcHJvdmlkZSBhbGwgbWF0LWxpbmUgc3R5bGVzLCBjaGFuZ2luZyBzZWNvbmRhcnkgZm9udCBzaXplIGJhc2VkIG9uIHdoZXRoZXIgdGhlIGxpc3Rcbi8vIGlzIGluIGRlbnNlIG1vZGUuXG5AbWl4aW4gbWF0LWxpbmUtYmFzZSgkc2Vjb25kYXJ5LWZvbnQtc2l6ZSkge1xuICAubWF0LWxpbmUge1xuICAgIEBpbmNsdWRlIG1hdC10cnVuY2F0ZS1saW5lKCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIC8vIGFsbCBsaW5lcyBidXQgdGhlIHRvcCBsaW5lIHNob3VsZCBoYXZlIHNtYWxsZXIgdGV4dFxuICAgICY6bnRoLWNoaWxkKG4rMikge1xuICAgICAgZm9udC1zaXplOiAkc2Vjb25kYXJ5LWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gVGhpcyBtaXhpbiBub3JtYWxpemVzIGRlZmF1bHQgZWxlbWVudCBzdHlsZXMsIGUuZy4gZm9udCB3ZWlnaHQgZm9yIGhlYWRpbmcgdGV4dC5cbkBtaXhpbiBtYXQtbm9ybWFsaXplLXRleHQoKSB7XG4gICYgPiAqIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgfVxufVxuXG4vLyBUaGlzIG1peGluIHByb3ZpZGVzIGJhc2Ugc3R5bGVzIGZvciB0aGUgd3JhcHBlciBhcm91bmQgbWF0LWxpbmUgZWxlbWVudHMgaW4gYSBsaXN0LlxuQG1peGluIG1hdC1saW5lLXdyYXBwZXItYmFzZSgpIHtcbiAgQGluY2x1ZGUgbWF0LW5vcm1hbGl6ZS10ZXh0KCk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleDogYXV0bztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAvLyBNdXN0IHJlbW92ZSB3cmFwcGVyIHdoZW4gbGluZXMgYXJlIGVtcHR5IG9yIGl0IHRha2VzIHVwIGhvcml6b250YWxcbiAgLy8gc3BhY2UgYW5kIHB1c2hlcyBvdGhlciBlbGVtZW50cyB0byB0aGUgcmlnaHQuXG4gICY6ZW1wdHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuXG5cbi8vIEluY2x1ZGUgdGhpcyBlbXB0eSBtaXhpbiBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgb3RoZXIgY29tcG9uZW50cy5cbkBtaXhpbiBtYXQtZ3JpZC1saXN0LWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtZ3JpZC1saXN0LXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LWdyaWQtdGlsZS1oZWFkZXIsXG4gIC5tYXQtZ3JpZC10aWxlLWZvb3RlciB7XG4gICAgQGluY2x1ZGUgbWF0LWxpbmUtYmFzZShtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pKTtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC1ncmlkLWxpc3QtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWdyaWQtbGlzdC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtZ3JpZC1saXN0Jykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWdyaWQtbGlzdC1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWdyaWQtbGlzdC1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWdyaWQtbGlzdC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cbkBtaXhpbiBtYXQtaWNvbi1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtaWNvbiB7XG4gICAgJi5tYXQtcHJpbWFyeSB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCB0ZXh0KTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWljb24tdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gX21hdC1pY29uLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1pY29uLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1pY29uJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWljb24tY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1pY29uLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtaWNvbi10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cbi8vIFJlbmRlcnMgYSBncmFkaWVudCBmb3Igc2hvd2luZyB0aGUgZGFzaGVkIGxpbmUgd2hlbiB0aGUgaW5wdXQgaXMgZGlzYWJsZWQuXG4vLyBVbmxpa2UgdXNpbmcgYSBib3JkZXIsIGEgZ3JhZGllbnQgYWxsb3dzIHVzIHRvIGFkanVzdCB0aGUgc3BhY2luZyBvZiB0aGUgZG90dGVkIGxpbmVcbi8vIHRvIG1hdGNoIHRoZSBNYXRlcmlhbCBEZXNpZ24gc3BlYy5cbkBtaXhpbiBtYXQtcHJpdmF0ZS1jb250cm9sLWRpc2FibGVkLXVuZGVybGluZSgkY29sb3IpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkY29sb3IgMCUsICRjb2xvciAzMyUsIHRyYW5zcGFyZW50IDAlKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0cHggMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuXG4vLyBGaWd1cmVzIG91dCB0aGUgY29sb3Igb2YgdGhlIHBsYWNlaG9sZGVyIGZvciBhIGZvcm0gY29udHJvbC5cbi8vIFVzZWQgcHJpbWFyaWx5IHRvIHByZXZlbnQgdGhlIHZhcmlvdXMgZm9ybSBjb250cm9scyBmcm9tXG4vLyBiZWNvbWluZyBvdXQgb2Ygc3luYyBzaW5jZSB0aGVzZSBjb2xvcnMgYXJlbid0IGluIGEgcGFsZXR0ZS5cbkBmdW5jdGlvbiBtYXQtcHJpdmF0ZS1jb250cm9sLXBsYWNlaG9sZGVyLWNvbG9yKCRjb25maWcpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCRjb25maWcsIGlzLWRhcmspO1xuICBAcmV0dXJuIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjUsIDAuNDIpKTtcbn1cblxuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBtYXRlcmlhbC9uby1wcmVmaXhlcyAqL1xuQG1peGluIHVzZXItc2VsZWN0KCR2YWx1ZSkge1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiAkdmFsdWU7XG4gIC1tb3otdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbiAgLW1zLXVzZXItc2VsZWN0OiAkdmFsdWU7XG4gIHVzZXItc2VsZWN0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBpbnB1dC1wbGFjZWhvbGRlciB7XG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gICY6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGN1cnNvci1ncmFiIHtcbiAgY3Vyc29yOiAtd2Via2l0LWdyYWI7XG4gIGN1cnNvcjogZ3JhYjtcbn1cblxuQG1peGluIGN1cnNvci1ncmFiYmluZyB7XG4gIGN1cnNvcjogLXdlYmtpdC1ncmFiYmluZztcbiAgY3Vyc29yOiBncmFiYmluZztcbn1cblxuQG1peGluIGJhY2tmYWNlLXZpc2liaWxpdHkoJHZhbHVlKSB7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogJHZhbHVlO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBwb3NpdGlvbi1zdGlja3koJGltcG9ydGFudDogZmFsc2UpIHtcbiAgcG9zaXRpb246IC13ZWJraXQtc3RpY2t5ICN7aWYoJGltcG9ydGFudCwgJyFpbXBvcnRhbnQnLCAnJyl9O1xuICBwb3NpdGlvbjogc3RpY2t5ICN7aWYoJGltcG9ydGFudCwgJyFpbXBvcnRhbnQnLCAnJyl9O1xufVxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuXG5cblxuQG1peGluIG1hdC1pbnB1dC1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1pbnB1dC1lbGVtZW50OmRpc2FibGVkLFxuICAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gICAgY2FyZXQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG5cbiAgICBAaW5jbHVkZSBpbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogbWF0LXByaXZhdGUtY29udHJvbC1wbGFjZWhvbGRlci1jb2xvcigkY29uZmlnKTtcbiAgICB9XG5cbiAgICAvLyBPbiBkYXJrIHRoZW1lcyB3ZSBzZXQgdGhlIG5hdGl2ZSBgc2VsZWN0YCBjb2xvciB0byBzb21lIHNoYWRlIG9mIHdoaXRlLFxuICAgIC8vIGhvd2V2ZXIgdGhlIGNvbG9yIHByb3BhZ2F0ZXMgdG8gYWxsIG9mIHRoZSBgb3B0aW9uYCBlbGVtZW50cywgd2hpY2ggYXJlXG4gICAgLy8gYWx3YXlzIG9uIGEgd2hpdGUgYmFja2dyb3VuZCBpbnNpZGUgdGhlIGRyb3Bkb3duLCBjYXVzaW5nIHRoZW0gdG8gYmxlbmQgaW4uXG4gICAgLy8gU2luY2Ugd2UgY2FuJ3QgY2hhbmdlIGJhY2tncm91bmQgb2YgdGhlIGRyb3Bkb3duLCB3ZSBuZWVkIHRvIGV4cGxpY2l0bHlcbiAgICAvLyByZXNldCB0aGUgY29sb3Igb2YgdGhlIG9wdGlvbnMgdG8gc29tZXRoaW5nIGRhcmsuXG4gICAgQGlmIChtYXAtZ2V0KCRjb25maWcsIGlzLWRhcmspKSB7XG4gICAgICBvcHRpb24ge1xuICAgICAgICBjb2xvcjogJGRhcmstcHJpbWFyeS10ZXh0O1xuICAgICAgfVxuXG4gICAgICBvcHRpb246ZGlzYWJsZWQge1xuICAgICAgICBjb2xvcjogJGRhcmstZGlzYWJsZWQtdGV4dDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQubWF0LWFjY2VudCAubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIGNhcmV0LWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQubWF0LXdhcm4gLm1hdC1pbnB1dC1lbGVtZW50LFxuICAubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIGNhcmV0LWNvbG9yOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWlucHV0LXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG5cbiAgLy8gVGhlIGFtb3VudCBvZiBzcGFjZSBiZXR3ZWVuIHRoZSB0b3Agb2YgdGhlIGxpbmUgYW5kIHRoZSB0b3Agb2YgdGhlIGFjdHVhbCB0ZXh0XG4gIC8vIChhcyBhIGZyYWN0aW9uIG9mIHRoZSBmb250LXNpemUpLlxuICAkbGluZS1zcGFjaW5nOiAoJGxpbmUtaGVpZ2h0IC0gMSkgLyAyO1xuXG4gIC8vIDxpbnB1dD4gZWxlbWVudHMgc2VlbSB0byBoYXZlIHRoZWlyIGhlaWdodCBzZXQgc2xpZ2h0bHkgdG9vIGxhcmdlIG9uIFNhZmFyaSBjYXVzaW5nIHRoZSB0ZXh0IHRvXG4gIC8vIGJlIG1pc2FsaWduZWQgdy5yLnQuIHRoZSBwbGFjZWhvbGRlci4gQWRkaW5nIHRoaXMgbWFyZ2luIGNvcnJlY3RzIGl0LlxuICBpbnB1dC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gICAgbWFyZ2luLXRvcDogLSRsaW5lLXNwYWNpbmcgKiAxZW07XG4gIH1cbn1cblxuQG1peGluIF9tYXQtaW5wdXQtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWlucHV0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1pbnB1dCcpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1pbnB1dC1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWlucHV0LWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtaW5wdXQtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtbGlzdC1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1saXN0LWJhc2Uge1xuICAgIC5tYXQtbGlzdC1pdGVtIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIH1cblxuICAgIC5tYXQtbGlzdC1vcHRpb24ge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1zdWJoZWFkZXIge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtbGlzdC1pdGVtLWRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGRpc2FibGVkLWxpc3Qtb3B0aW9uKTtcbiAgfVxuXG4gIC5tYXQtbGlzdC1vcHRpb24sXG4gIC5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW0sXG4gIC5tYXQtYWN0aW9uLWxpc3QgLm1hdC1saXN0LWl0ZW0ge1xuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnaG92ZXInKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWxpc3Qtc2luZ2xlLXNlbGVjdGVkLW9wdGlvbiB7XG4gICAgJiwgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGhvdmVyLCAwLjEyKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1saXN0LXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcblxuICAubWF0LWxpc3QtaXRlbSB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgfVxuXG4gIC5tYXQtbGlzdC1vcHRpb24ge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gIH1cblxuICAvLyBEZWZhdWx0IGxpc3RcbiAgLm1hdC1saXN0LWJhc2Uge1xuICAgIC5tYXQtbGlzdC1pdGVtIHtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBzdWJoZWFkaW5nLTIpO1xuICAgICAgQGluY2x1ZGUgbWF0LWxpbmUtYmFzZShtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSkpO1xuICAgIH1cblxuICAgIC5tYXQtbGlzdC1vcHRpb24ge1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIHN1YmhlYWRpbmctMik7XG4gICAgICBAaW5jbHVkZSBtYXQtbGluZS1iYXNlKG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKSk7XG4gICAgfVxuXG4gICAgLm1hdC1zdWJoZWFkZXIge1xuICAgICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBib2R5LTIpO1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMik7XG4gICAgICBmb250LXdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMik7XG4gICAgfVxuICB9XG5cbiAgLy8gRGVuc2UgbGlzdFxuICAubWF0LWxpc3QtYmFzZVtkZW5zZV0ge1xuICAgIC5tYXQtbGlzdC1pdGVtIHtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKSk7XG4gICAgfVxuXG4gICAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbik7XG4gICAgICBAaW5jbHVkZSBtYXQtbGluZS1iYXNlKG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbikpO1xuICAgIH1cblxuICAgIC5tYXQtc3ViaGVhZGVyIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbik7XG4gICAgICBmb250LXdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBfbWF0LWxpc3QtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWxpc3QtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWxpc3QnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtbGlzdC1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWxpc3QtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1saXN0LXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LW1lbnUtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtbWVudS1wYW5lbCB7XG4gICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDQsICRjb25maWcpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2NhcmQnKTtcbiAgfVxuXG4gIC5tYXQtbWVudS1pdGVtIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCAndGV4dCcpO1xuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgJixcbiAgICAgICY6OmFmdGVyLFxuICAgICAgLm1hdC1pY29uLW5vLWNvbG9yIHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2Rpc2FibGVkJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1tZW51LWl0ZW0gLm1hdC1pY29uLW5vLWNvbG9yLFxuICAubWF0LW1lbnUtaXRlbS1zdWJtZW51LXRyaWdnZXI6OmFmdGVyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCAnaWNvbicpO1xuICB9XG5cbiAgLm1hdC1tZW51LWl0ZW06aG92ZXIsXG4gIC5tYXQtbWVudS1pdGVtLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gIC5tYXQtbWVudS1pdGVtLmNkay1rZXlib2FyZC1mb2N1c2VkLFxuICAubWF0LW1lbnUtaXRlbS1oaWdobGlnaHRlZCB7XG4gICAgJjpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnaG92ZXInKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1tZW51LXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LW1lbnUtaXRlbSB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBfbWF0LW1lbnUtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LW1lbnUtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LW1lbnUnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtbWVudS1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LW1lbnUtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1tZW51LXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuJG1hdC1wYWdpbmF0b3ItaGVpZ2h0OiA1NnB4ICFkZWZhdWx0O1xuLy8gTWluaW11bSBoZWlnaHQgZm9yIHBhZ2luYXRvcidzIGluIHRoZSBoaWdoZXN0IGRlbnNpdHkgaXMgZGV0ZXJtaW5lZCBiYXNlZCBvbiBob3dcbi8vIG11Y2ggdGhlIHBhZ2luYXRvciBjYW4gc2hyaW5rIHVudGlsIHRoZSBjb250ZW50IGV4Y2VlZHMgKGkuZS4gbmF2aWdhdGlvbiBidXR0b25zKS5cbiRtYXQtcGFnaW5hdG9yLW1pbmltdW0taGVpZ2h0OiA0MHB4ICFkZWZhdWx0O1xuJG1hdC1wYWdpbmF0b3ItbWF4aW11bS1oZWlnaHQ6ICRtYXQtcGFnaW5hdG9yLWhlaWdodCAhZGVmYXVsdDtcblxuJG1hdC1wYWdpbmF0b3ItZGVuc2l0eS1jb25maWc6IChcbiAgaGVpZ2h0OiAoXG4gICAgZGVmYXVsdDogJG1hdC1wYWdpbmF0b3ItaGVpZ2h0LFxuICAgIG1heGltdW06ICRtYXQtcGFnaW5hdG9yLW1heGltdW0taGVpZ2h0LFxuICAgIG1pbmltdW06ICRtYXQtcGFnaW5hdG9yLW1pbmltdW0taGVpZ2h0LFxuICApXG4pICFkZWZhdWx0O1xuXG5cbkBtaXhpbiBtYXQtcGFnaW5hdG9yLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcblxuICAubWF0LXBhZ2luYXRvciB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnY2FyZCcpO1xuICB9XG5cbiAgLm1hdC1wYWdpbmF0b3IsXG4gIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4gIC5tYXQtcGFnaW5hdG9yLWluY3JlbWVudCB7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2ljb24nKTtcbiAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCBtYXQtY29sb3IoJGZvcmVncm91bmQsICdpY29uJyk7XG4gIH1cblxuICAubWF0LXBhZ2luYXRvci1maXJzdCxcbiAgLm1hdC1wYWdpbmF0b3ItbGFzdCB7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2ljb24nKTtcbiAgfVxuXG4gIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIHtcbiAgICAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4gICAgLm1hdC1wYWdpbmF0b3ItaW5jcmVtZW50LFxuICAgIC5tYXQtcGFnaW5hdG9yLWZpcnN0LFxuICAgIC5tYXQtcGFnaW5hdG9yLWxhc3Qge1xuICAgICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsICdkaXNhYmxlZCcpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXBhZ2luYXRvci10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC1wYWdpbmF0b3IsXG4gIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcGFnaW5hdG9yLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkZGVuc2l0eS1zY2FsZTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGhlaWdodDogbWF0LXByaXZhdGUtZGVuc2l0eS1wcm9wLXZhbHVlKCRtYXQtcGFnaW5hdG9yLWRlbnNpdHktY29uZmlnLCAkZGVuc2l0eS1zY2FsZSwgaGVpZ2h0KTtcblxuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1kZW5zaXR5LWxlZ2FjeS1jb21wYXRpYmlsaXR5KCkge1xuICAgIC5tYXQtcGFnaW5hdG9yLWNvbnRhaW5lciB7XG4gICAgICBtaW4taGVpZ2h0OiAkaGVpZ2h0O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXBhZ2luYXRvci10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtcGFnaW5hdG9yJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXBhZ2luYXRvci1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcGFnaW5hdG9yLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcGFnaW5hdG9yLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5AbWl4aW4gbWF0LXByb2dyZXNzLWJhci1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcblxuICAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kIHtcbiAgICBmaWxsOiBtYXQtY29sb3IoJHByaW1hcnksIGxpZ2h0ZXIpO1xuICB9XG5cbiAgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIGxpZ2h0ZXIpO1xuICB9XG5cbiAgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gIH1cblxuICAubWF0LXByb2dyZXNzLWJhci5tYXQtYWNjZW50IHtcbiAgICAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kIHtcbiAgICAgIGZpbGw6IG1hdC1jb2xvcigkYWNjZW50LCBsaWdodGVyKTtcbiAgICB9XG5cbiAgICAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIGxpZ2h0ZXIpO1xuICAgIH1cblxuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgICB9XG4gIH1cblxuICAubWF0LXByb2dyZXNzLWJhci5tYXQtd2FybiB7XG4gICAgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gICAgICBmaWxsOiBtYXQtY29sb3IoJHdhcm4sIGxpZ2h0ZXIpO1xuICAgIH1cblxuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHdhcm4sIGxpZ2h0ZXIpO1xuICAgIH1cblxuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3MtYmFyLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIF9tYXQtcHJvZ3Jlc3MtYmFyLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1wcm9ncmVzcy1iYXItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LXByb2dyZXNzLWJhcicpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1wcm9ncmVzcy1iYXItY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1wcm9ncmVzcy1iYXItZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1wcm9ncmVzcy1iYXItdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuQG1peGluIG1hdC1wcm9ncmVzcy1zcGlubmVyLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuXG4gIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciwgLm1hdC1zcGlubmVyIHtcbiAgICBjaXJjbGUge1xuICAgICAgc3Ryb2tlOiBtYXQtY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCBjaXJjbGUge1xuICAgICAgc3Ryb2tlOiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiBjaXJjbGUge1xuICAgICAgc3Ryb2tlOiBtYXQtY29sb3IoJHdhcm4pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXByb2dyZXNzLXNwaW5uZXItdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gX21hdC1wcm9ncmVzcy1zcGlubmVyLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1wcm9ncmVzcy1zcGlubmVyLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1wcm9ncmVzcy1zcGlubmVyJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXByb2dyZXNzLXNwaW5uZXItY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1wcm9ncmVzcy1zcGlubmVyLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5AbWl4aW4gX21hdC1yYWRpby1jb2xvcigkcGFsZXR0ZSkge1xuICAmLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSk7XG4gIH1cblxuICAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSxcbiAgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSksXG4gICYubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSxcbiAgJjphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXJhZGlvLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LXJhZGlvLWJ1dHRvbiB7XG4gICAgJi5tYXQtcHJpbWFyeSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXJhZGlvLWNvbG9yKCRwcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgX21hdC1yYWRpby1jb2xvcigkYWNjZW50KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtcmFkaW8tY29sb3IoJHdhcm4pO1xuICAgIH1cblxuICAgIC8vIFRoaXMgbmVlZHMgZXh0cmEgc3BlY2lmaWNpdHksIGJlY2F1c2UgdGhlIGNsYXNzZXMgYWJvdmUgYXJlIGNvbWJpbmVkXG4gICAgLy8gKGUuZy4gYC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnRgKSB3aGljaCBpbmNyZWFzZXMgdGhlaXIgc3BlY2lmaWNpdHkgYSBsb3QuXG4gICAgLy8gVE9ETzogY29uc2lkZXIgbWFraW5nIHRoZSBzZWxlY3RvcnMgaW50byBkZXNjZW5kYW50cyAoYC5tYXQtcHJpbWFyeSAubWF0LXJhZGlvLWJ1dHRvbmApLlxuICAgICYubWF0LXJhZGlvLWRpc2FibGVkIHtcbiAgICAgICYubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUsXG4gICAgICAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZCk7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4gICAgICAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQpO1xuICAgICAgfVxuXG4gICAgICAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xuICAgICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU3dpdGNoIHRoaXMgdG8gYSBzb2xpZCBjb2xvciBzaW5jZSB3ZSdyZSB1c2luZyBgb3BhY2l0eWBcbiAgICAvLyB0byBjb250cm9sIGhvdyBvcGFxdWUgdGhlIHJpcHBsZSBzaG91bGQgYmUuXG4gICAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRmb3JlZ3JvdW5kLCBiYXNlKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1yYWRpby10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC1yYWRpby1idXR0b24ge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtcmFkaW8tZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LXJhZGlvLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1yYWRpbycpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1yYWRpby1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXJhZGlvLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcmFkaW8tdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1zZWxlY3QtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcblxuICAubWF0LXNlbGVjdC12YWx1ZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cblxuICAubWF0LXNlbGVjdC1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IG1hdC1wcml2YXRlLWNvbnRyb2wtcGxhY2Vob2xkZXItY29sb3IoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gIH1cblxuICAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1zZWxlY3QtcGFuZWwge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDQsICRjb25maWcpO1xuXG4gICAgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSkge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3ZlciwgMC4xMik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkIHtcbiAgICAmLm1hdC1mb2N1c2VkIHtcbiAgICAgICYubWF0LXByaW1hcnkgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCB0ZXh0KTtcbiAgICAgIH1cblxuICAgICAgJi5tYXQtYWNjZW50IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KTtcbiAgICAgIH1cblxuICAgICAgJi5tYXQtd2FybiAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtc2VsZWN0Lm1hdC1zZWxlY3QtaW52YWxpZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNlbGVjdC10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuXG4gIC5tYXQtc2VsZWN0IHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gICAgaGVpZ2h0OiAkbGluZS1oZWlnaHQgKiAxZW07XG4gIH1cbn1cblxuQG1peGluIF9tYXQtc2VsZWN0LWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1zZWxlY3QtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LXNlbGVjdCcpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1zZWxlY3QtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1zZWxlY3QtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1zZWxlY3QtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuQG1peGluIG1hdC1zaWRlbmF2LWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgJGRyYXdlci1iYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGRpYWxvZyk7XG4gICRkcmF3ZXItY29udGFpbmVyLWJhY2tncm91bmQtY29sb3I6ICBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuICAkZHJhd2VyLXB1c2gtYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaWFsb2cpO1xuICAkZHJhd2VyLXNpZGUtYm9yZGVyOiBzb2xpZCAxcHggbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcblxuICAubWF0LWRyYXdlci1jb250YWluZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkcmF3ZXItY29udGFpbmVyLWJhY2tncm91bmQtY29sb3I7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cblxuICAubWF0LWRyYXdlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGRyYXdlci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgJi5tYXQtZHJhd2VyLXB1c2gge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRyYXdlci1wdXNoLWJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuXG4gICAgJjpub3QoLm1hdC1kcmF3ZXItc2lkZSkge1xuICAgICAgLy8gVGhlIGVsZXZhdGlvbiBvZiB6LTE2IGlzIG5vdGVkIGluIHRoZSBkZXNpZ24gc3BlY2lmaWNhdGlvbnMuXG4gICAgICAvLyBTZWUgaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vY29tcG9uZW50cy9uYXZpZ2F0aW9uLWRyYXdlci5odG1sXG4gICAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS10aGVtZS1lbGV2YXRpb24oMTYsICRjb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZHJhd2VyLXNpZGUge1xuICAgIGJvcmRlci1yaWdodDogJGRyYXdlci1zaWRlLWJvcmRlcjtcblxuICAgICYubWF0LWRyYXdlci1lbmQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICRkcmF3ZXItc2lkZS1ib3JkZXI7XG4gICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgW2Rpcj0ncnRsJ10gLm1hdC1kcmF3ZXItc2lkZSB7XG4gICAgYm9yZGVyLWxlZnQ6ICRkcmF3ZXItc2lkZS1ib3JkZXI7XG4gICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuXG4gICAgJi5tYXQtZHJhd2VyLWVuZCB7XG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgIGJvcmRlci1yaWdodDogJGRyYXdlci1zaWRlLWJvcmRlcjtcbiAgICB9XG4gIH1cblxuICAubWF0LWRyYXdlci1iYWNrZHJvcC5tYXQtZHJhd2VyLXNob3duIHtcbiAgICAkb3BhY2l0eTogMC42O1xuICAgICRiYWNrZHJvcC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkLCAkb3BhY2l0eSk7XG5cbiAgICBAaWYgKHR5cGUtb2YoJGJhY2tkcm9wLWNvbG9yKSA9PSBjb2xvcikge1xuICAgICAgLy8gV2UgdXNlIGludmVydCgpIGhlcmUgdG8gaGF2ZSB0aGUgZGFya2VuIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIGV4cGVjdGVkIHRvIGJlIHVzZWQuIElmIHRoZVxuICAgICAgLy8gYmFja2dyb3VuZCBpcyBsaWdodCwgd2UgdXNlIGEgZGFyayBiYWNrZHJvcC4gSWYgdGhlIGJhY2tncm91bmQgaXMgZGFyayxcbiAgICAgIC8vIHdlIHVzZSBhIGxpZ2h0IGJhY2tkcm9wLlxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW52ZXJ0KCRiYWNrZHJvcC1jb2xvcik7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIElmIHdlIGNvdWxkbid0IHJlc29sdmUgdGhlIGJhY2tkcm9wIGNvbG9yIHRvIGEgY29sb3IgdmFsdWUsIGZhbGwgYmFjayB0byB1c2luZ1xuICAgICAgLy8gYG9wYWNpdHlgIHRvIG1ha2UgaXQgb3BhcXVlIHNpbmNlIGl0cyBlbmQgdmFsdWUgY291bGQgYmUgYSBzb2xpZCBjb2xvci5cbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZHJvcC1jb2xvcjtcbiAgICAgIG9wYWNpdHk6ICRvcGFjaXR5O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNpZGVuYXYtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gX21hdC1zaWRlbmF2LWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1zaWRlbmF2LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1zaWRlbmF2Jykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXNpZGVuYXYtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1zaWRlbmF2LWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtc2lkZW5hdi10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cbkBtaXhpbiBfbWF0LXNsaWRlLXRvZ2dsZS1jaGVja2VkKCRwYWxldHRlLCAkdGh1bWItY2hlY2tlZC1odWUpIHtcbiAgJi5tYXQtY2hlY2tlZCB7XG4gICAgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCAkdGh1bWItY2hlY2tlZC1odWUpO1xuICAgIH1cblxuICAgIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gICAgICAvLyBPcGFjaXR5IGlzIGRldGVybWluZWQgZnJvbSB0aGUgc3BlY3MgZm9yIHRoZSBzZWxlY3Rpb24gY29udHJvbHMuXG4gICAgICAvLyBTZWU6IGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2NvbXBvbmVudHMvc2VsZWN0aW9uLWNvbnRyb2xzLmh0bWwjc3BlY3NcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgJHRodW1iLWNoZWNrZWQtaHVlLCAwLjU0KTtcbiAgICB9XG5cbiAgICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICAgIC8vIFNldCBubyBvcGFjaXR5IGZvciB0aGUgcmlwcGxlcyBiZWNhdXNlIHRoZSByaXBwbGUgb3BhY2l0eSB3aWxsIGJlIGFkanVzdGVkIGR5bmFtaWNhbGx5XG4gICAgICAvLyBiYXNlZCBvbiB0aGUgdHlwZSBvZiBpbnRlcmFjdGlvbiB3aXRoIHRoZSBzbGlkZS10b2dnbGUgKGUuZy4gZm9yIGhvdmVyLCBmb2N1cylcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgJHRodW1iLWNoZWNrZWQtaHVlKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1zbGlkZS10b2dnbGUtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGlzLWRhcms6IG1hcC1nZXQoJGNvbmZpZywgaXMtZGFyayk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgLy8gQ29sb3IgaHVlcyBhcmUgYmFzZWQgb24gdGhlIHNwZWNzIHdoaWNoIGJyaWVmbHkgc2hvdyB0aGUgaHVlcyB0aGF0IGFyZSBhcHBsaWVkIHRvIGEgc3dpdGNoLlxuICAvLyBUaGUgMjAxOCBzcGVjcyBubyBsb25nZXIgZGVzY3JpYmUgaG93IGRhcmsgc3dpdGNoZXMgc2hvdWxkIGxvb2sgbGlrZS4gRHVlIHRvIHRoZSBsYWNrIG9mXG4gIC8vIGluZm9ybWF0aW9uIGZvciBkYXJrIHRoZW1lZCBzd2l0Y2hlcywgd2UgcGFydGlhbGx5IGtlZXAgdGhlIG9sZCBiZWhhdmlvciB0aGF0IGlzIGJhc2VkIG9uXG4gIC8vIHRoZSBwcmV2aW91cyBzcGVjaWZpY2F0aW9ucy4gRm9yIHRoZSBjaGVja2VkIGNvbG9yIHdlIGFsd2F5cyB1c2UgdGhlIGBkZWZhdWx0YCBodWUgYmVjYXVzZVxuICAvLyB0aGF0IGZvbGxvd3MgTURDIGFuZCBhbHNvIG1ha2VzIGl0IGVhc2llciBmb3IgcGVvcGxlIHRvIGNyZWF0ZSBhIGN1c3RvbSB0aGVtZSB3aXRob3V0IG5lZWRpbmdcbiAgLy8gdG8gc3BlY2lmeSBlYWNoIGh1ZSBpbmRpdmlkdWFsbHkuXG4gICR0aHVtYi11bmNoZWNrZWQtaHVlOiBpZigkaXMtZGFyaywgNDAwLCA1MCk7XG4gICR0aHVtYi1jaGVja2VkLWh1ZTogZGVmYXVsdDtcblxuICAkYmFyLXVuY2hlY2tlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZCk7XG4gICRyaXBwbGUtdW5jaGVja2VkLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGJhc2UpO1xuXG4gIC5tYXQtc2xpZGUtdG9nZ2xlIHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlLXRvZ2dsZS1jaGVja2VkKCRhY2NlbnQsICR0aHVtYi1jaGVja2VkLWh1ZSk7XG5cbiAgICAmLm1hdC1wcmltYXJ5IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtc2xpZGUtdG9nZ2xlLWNoZWNrZWQoJHByaW1hcnksICR0aHVtYi1jaGVja2VkLWh1ZSk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXNsaWRlLXRvZ2dsZS1jaGVja2VkKCR3YXJuLCAkdGh1bWItY2hlY2tlZC1odWUpO1xuICAgIH1cblxuICAgICY6bm90KC5tYXQtY2hlY2tlZCkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICAvLyBTZXQgbm8gb3BhY2l0eSBmb3IgdGhlIHJpcHBsZXMgYmVjYXVzZSB0aGUgcmlwcGxlIG9wYWNpdHkgd2lsbCBiZSBhZGp1c3RlZCBkeW5hbWljYWxseVxuICAgICAgLy8gYmFzZWQgb24gdGhlIHR5cGUgb2YgaW50ZXJhY3Rpb24gd2l0aCB0aGUgc2xpZGUtdG9nZ2xlIChlLmcuIGZvciBob3ZlciwgZm9jdXMpXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmlwcGxlLXVuY2hlY2tlZC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtdGhlbWUtZWxldmF0aW9uKDEsICRjb25maWcpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkbWF0LWdyZXksICR0aHVtYi11bmNoZWNrZWQtaHVlKTtcbiAgfVxuXG4gIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhci11bmNoZWNrZWQtY29sb3I7XG4gIH1cbn1cblxuQG1peGluIG1hdC1zbGlkZS10b2dnbGUtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnQge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtc2xpZGUtdG9nZ2xlLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1zbGlkZS10b2dnbGUtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LXNsaWRlLXRvZ2dsZScpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1zbGlkZS10b2dnbGUtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1zbGlkZS10b2dnbGUtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1zbGlkZS10b2dnbGUtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gX21hdC1zbGlkZXItaW5uZXItY29udGVudC10aGVtZSgkcGFsZXR0ZSkge1xuICAubWF0LXNsaWRlci10cmFjay1maWxsLFxuICAubWF0LXNsaWRlci10aHVtYixcbiAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSk7XG4gIH1cblxuICAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICAgICRvcGFjaXR5OiAwLjI7XG4gICAgJGNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQsICRvcGFjaXR5KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG5cbiAgICAvLyBgbWF0LWNvbG9yYCB1c2VzIGByZ2JhYCBmb3IgdGhlIG9wYWNpdHkgd2hpY2ggd29uJ3Qgd29yayB3aXRoXG4gICAgLy8gQ1NTIHZhcmlhYmxlcyBzbyB3ZSBuZWVkIHRvIHVzZSBgb3BhY2l0eWAgYXMgYSBmYWxsYmFjay5cbiAgICBAaWYgKHR5cGUtb2YoJGNvbG9yKSAhPSBjb2xvcikge1xuICAgICAgb3BhY2l0eTogJG9wYWNpdHk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtc2xpZGVyLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgJG1hdC1zbGlkZXItb2ZmLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNsaWRlci1vZmYpO1xuICAkbWF0LXNsaWRlci1vZmYtZm9jdXNlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzbGlkZXItb2ZmLWFjdGl2ZSk7XG4gICRtYXQtc2xpZGVyLWRpc2FibGVkLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNsaWRlci1vZmYpO1xuICAkbWF0LXNsaWRlci1sYWJlbGVkLW1pbi12YWx1ZS10aHVtYi1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzbGlkZXItbWluKTtcbiAgJG1hdC1zbGlkZXItbGFiZWxlZC1taW4tdmFsdWUtdGh1bWItbGFiZWwtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2xpZGVyLW9mZik7XG4gICRtYXQtc2xpZGVyLXRpY2stb3BhY2l0eTogMC43O1xuICAkbWF0LXNsaWRlci10aWNrLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGJhc2UsICRtYXQtc2xpZGVyLXRpY2stb3BhY2l0eSk7XG4gICRtYXQtc2xpZGVyLXRpY2stc2l6ZTogMnB4O1xuXG4gIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLW9mZi1jb2xvcjtcbiAgfVxuXG4gIC5tYXQtcHJpbWFyeSB7XG4gICAgQGluY2x1ZGUgX21hdC1zbGlkZXItaW5uZXItY29udGVudC10aGVtZSgkcHJpbWFyeSk7XG4gIH1cblxuICAubWF0LWFjY2VudCB7XG4gICAgQGluY2x1ZGUgX21hdC1zbGlkZXItaW5uZXItY29udGVudC10aGVtZSgkYWNjZW50KTtcbiAgfVxuXG4gIC5tYXQtd2FybiB7XG4gICAgQGluY2x1ZGUgX21hdC1zbGlkZXItaW5uZXItY29udGVudC10aGVtZSgkd2Fybik7XG4gIH1cblxuICAubWF0LXNsaWRlcjpob3ZlcixcbiAgLmNkay1mb2N1c2VkIHtcbiAgICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLW9mZi1mb2N1c2VkLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWRpc2FibGVkIHtcbiAgICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kLFxuICAgIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4gICAgLm1hdC1zbGlkZXItdGh1bWIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItZGlzYWJsZWQtY29sb3I7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zbGlkZXItbWluLXZhbHVlIHtcbiAgICAubWF0LXNsaWRlci1mb2N1cy1yaW5nIHtcbiAgICAgICRvcGFjaXR5OiAwLjEyO1xuICAgICAgJGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGJhc2UsICRvcGFjaXR5KTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcblxuICAgICAgLy8gYG1hdC1jb2xvcmAgdXNlcyBgcmdiYWAgZm9yIHRoZSBvcGFjaXR5IHdoaWNoIHdvbid0IHdvcmsgd2l0aFxuICAgICAgLy8gQ1NTIHZhcmlhYmxlcyBzbyB3ZSBuZWVkIHRvIHVzZSBgb3BhY2l0eWAgYXMgYSBmYWxsYmFjay5cbiAgICAgIEBpZiAodHlwZS1vZigkY29sb3IpICE9IGNvbG9yKSB7XG4gICAgICAgIG9wYWNpdHk6ICRvcGFjaXR5O1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nIHtcbiAgICAgIC5tYXQtc2xpZGVyLXRodW1iLFxuICAgICAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWF0LXNsaWRlci1sYWJlbGVkLW1pbi12YWx1ZS10aHVtYi1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgJi5jZGstZm9jdXNlZCB7XG4gICAgICAgIC5tYXQtc2xpZGVyLXRodW1iLFxuICAgICAgICAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItbGFiZWxlZC1taW4tdmFsdWUtdGh1bWItbGFiZWwtY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKSB7XG4gICAgICAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJG1hdC1zbGlkZXItb2ZmLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlcixcbiAgICAgICYuY2RrLWZvY3VzZWQge1xuICAgICAgICAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci1vZmYtZm9jdXNlZC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWhhcy10aWNrcyAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci10aWNrLWNvbG9yO1xuXG4gICAgLy8gYG1hdC1jb2xvcmAgdXNlcyBgcmdiYWAgZm9yIHRoZSBvcGFjaXR5IHdoaWNoIHdvbid0IHdvcmsgd2l0aFxuICAgIC8vIENTUyB2YXJpYWJsZXMgc28gd2UgbmVlZCB0byB1c2UgYG9wYWNpdHlgIGFzIGEgZmFsbGJhY2suXG4gICAgQGlmICh0eXBlLW9mKCRtYXQtc2xpZGVyLXRpY2stY29sb3IpICE9IGNvbG9yKSB7XG4gICAgICBvcGFjaXR5OiAkbWF0LXNsaWRlci10aWNrLW9wYWNpdHk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJG1hdC1zbGlkZXItdGljay1jb2xvcixcbiAgICAgICAgJG1hdC1zbGlkZXItdGljay1jb2xvciAkbWF0LXNsaWRlci10aWNrLXNpemUsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgICAvLyBGaXJlZm94IGRvZXNuJ3QgZHJhdyB0aGUgZ3JhZGllbnQgY29ycmVjdGx5IHdpdGggJ3RvIHJpZ2h0J1xuICAgIC8vIChzZWUgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxNDMxOSkuXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1yZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDAuMDAwMWRlZywgJG1hdC1zbGlkZXItdGljay1jb2xvcixcbiAgICAgICAgJG1hdC1zbGlkZXItdGljay1jb2xvciAkbWF0LXNsaWRlci10aWNrLXNpemUsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcblxuICAgIC8vIGBtYXQtY29sb3JgIHVzZXMgYHJnYmFgIGZvciB0aGUgb3BhY2l0eSB3aGljaCB3b24ndCB3b3JrIHdpdGhcbiAgICAvLyBDU1MgdmFyaWFibGVzIHNvIHdlIG5lZWQgdG8gdXNlIGBvcGFjaXR5YCBhcyBhIGZhbGxiYWNrLlxuICAgIEBpZiAodHlwZS1vZigkbWF0LXNsaWRlci10aWNrLWNvbG9yKSAhPSBjb2xvcikge1xuICAgICAgb3BhY2l0eTogJG1hdC1zbGlkZXItdGljay1vcGFjaXR5O1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRpY2tzIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgJG1hdC1zbGlkZXItdGljay1jb2xvcixcbiAgICAgICAgJG1hdC1zbGlkZXItdGljay1jb2xvciAkbWF0LXNsaWRlci10aWNrLXNpemUsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcblxuICAgIC8vIGBtYXQtY29sb3JgIHVzZXMgYHJnYmFgIGZvciB0aGUgb3BhY2l0eSB3aGljaCB3b24ndCB3b3JrIHdpdGhcbiAgICAvLyBDU1MgdmFyaWFibGVzIHNvIHdlIG5lZWQgdG8gdXNlIGBvcGFjaXR5YCBhcyBhIGZhbGxiYWNrLlxuICAgIEBpZiAodHlwZS1vZigkbWF0LXNsaWRlci10aWNrLWNvbG9yKSAhPSBjb2xvcikge1xuICAgICAgb3BhY2l0eTogJG1hdC1zbGlkZXItdGljay1vcGFjaXR5O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNsaWRlci10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9tYXQtc2xpZGVyLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1zbGlkZXItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LXNsaWRlcicpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1zbGlkZXItY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1zbGlkZXItZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1zbGlkZXItdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuJG1hdC1zdGVwcGVyLWhlYWRlci1oZWlnaHQ6IDcycHggIWRlZmF1bHQ7XG4vLyBNaW5pbXVtIGhlaWdodCBmb3IgaGlnaGVzdCBkZW5zaXR5IHN0ZXBwZXIncyBpcyBkZXRlcm1pbmVkIGJhc2VkIG9uIGhvdyBtdWNoXG4vLyBzdGVwcGVyIGhlYWRlcnMgY2FuIHNocmluayB1bnRpbCB0aGUgc3RlcCBpY29uIG9yIHN0ZXAgbGFiZWwgZXhjZWVkLiBXZSBjYW4ndCB1c2Vcbi8vIGEgdmFsdWUgYmVsb3cgYDQycHhgIGJlY2F1c2UgdGhlIG9wdGlvbmFsIGxhYmVsIGZvciBzdGVwcyB3b3VsZCBvdGhlcndpc2UgZXhjZWVkLlxuJG1hdC1zdGVwcGVyLWhlYWRlci1taW5pbXVtLWhlaWdodDogNDJweCAhZGVmYXVsdDtcbiRtYXQtc3RlcHBlci1oZWFkZXItbWF4aW11bS1oZWlnaHQ6ICRtYXQtc3RlcHBlci1oZWFkZXItaGVpZ2h0ICFkZWZhdWx0O1xuXG4kbWF0LXN0ZXBwZXItZGVuc2l0eS1jb25maWc6IChcbiAgaGVpZ2h0OiAoXG4gICAgZGVmYXVsdDogJG1hdC1zdGVwcGVyLWhlYWRlci1oZWlnaHQsXG4gICAgbWF4aW11bTogJG1hdC1zdGVwcGVyLWhlYWRlci1tYXhpbXVtLWhlaWdodCxcbiAgICBtaW5pbXVtOiAkbWF0LXN0ZXBwZXItaGVhZGVyLW1pbmltdW0taGVpZ2h0LFxuICApXG4pICFkZWZhdWx0O1xuXG4vLyBOb3RlOiBUaGVzZSB2YXJpYWJsZXMgYXJlIG5vdCBkZW5vdGVkIHdpdGggYCFkZWZhdWx0YCBiZWNhdXNlIHRoZXkgYXJlIHVzZWQgaW4gdGhlIG5vbi10aGVtZVxuLy8gY29tcG9uZW50IHN0eWxlcy4gTW9kaWZ5aW5nIHRoZXNlIHZhcmlhYmxlcyBkb2VzIG5vdCBoYXZlIHRoZSBkZXNpcmVkIGVmZmVjdCBmb3IgY29uc3VtZXJzLlxuJG1hdC1zdGVwcGVyLWxhYmVsLWhlYWRlci1oZWlnaHQ6IDI0cHg7XG4kbWF0LXN0ZXBwZXItbGFiZWwtcG9zaXRpb24tYm90dG9tLXRvcC1nYXA6IDE2cHg7XG4kbWF0LXN0ZXBwZXItbGFiZWwtbWluLXdpZHRoOiA1MHB4O1xuXG4kbWF0LXZlcnRpY2FsLXN0ZXBwZXItY29udGVudC1tYXJnaW46IDM2cHg7XG5cbiRtYXQtc3RlcHBlci1zaWRlLWdhcDogMjRweDtcbiRtYXQtc3RlcHBlci1saW5lLXdpZHRoOiAxcHg7XG4kbWF0LXN0ZXBwZXItbGluZS1nYXA6IDhweDtcblxuJG1hdC1zdGVwLXN1Yi1sYWJlbC1mb250LXNpemU6IDEycHg7XG4kbWF0LXN0ZXAtaGVhZGVyLWljb24tc2l6ZTogMTZweDtcblxuXG5AbWl4aW4gbWF0LXN0ZXBwZXItY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcblxuICAubWF0LXN0ZXAtaGVhZGVyIHtcbiAgICAmLmNkay1rZXlib2FyZC1mb2N1c2VkLFxuICAgICYuY2RrLXByb2dyYW0tZm9jdXNlZCxcbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIpO1xuICAgIH1cblxuICAgIC8vIE9uIHRvdWNoIGRldmljZXMgdGhlIDpob3ZlciBzdGF0ZSB3aWxsIGxpbmdlciBvbiB0aGUgZWxlbWVudCBhZnRlciBhIHRhcC5cbiAgICAvLyBSZXNldCBpdCB2aWEgYEBtZWRpYWAgYWZ0ZXIgdGhlIGRlY2xhcmF0aW9uLCBiZWNhdXNlIHRoZSBtZWRpYSBxdWVyeSBpc24ndFxuICAgIC8vIHN1cHBvcnRlZCBieSBhbGwgYnJvd3NlcnMgeWV0LlxuICAgIEBtZWRpYSAoaG92ZXI6IG5vbmUpIHtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtc3RlcC1sYWJlbCxcbiAgICAubWF0LXN0ZXAtb3B0aW9uYWwge1xuICAgICAgLy8gVE9ETyhqb3NlcGhwZXJyb3R0KTogVXBkYXRlIHRvIHVzaW5nIGEgY29ycmVjdGVkIGRpc2FibGVkLXRleHQgY29udHJhc3RcbiAgICAgIC8vIGluc3RlYWQgb2Ygc2Vjb25kYXJ5LXRleHQuXG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1zdGVwLWljb24ge1xuICAgICAgLy8gVE9ETyhqb3NlcGhwZXJyb3R0KTogVXBkYXRlIHRvIHVzaW5nIGEgY29ycmVjdGVkIGRpc2FibGVkLXRleHQgY29udHJhc3RcbiAgICAgIC8vIGluc3RlYWQgb2Ygc2Vjb25kYXJ5LXRleHQuXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIGRlZmF1bHQtY29udHJhc3QpO1xuICAgIH1cblxuICAgIC5tYXQtc3RlcC1pY29uLXNlbGVjdGVkLFxuICAgIC5tYXQtc3RlcC1pY29uLXN0YXRlLWRvbmUsXG4gICAgLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnkpO1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIC5tYXQtc3RlcC1pY29uIHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICAgIH1cblxuICAgICAgLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsXG4gICAgICAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLFxuICAgICAgLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIC5tYXQtc3RlcC1pY29uIHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtc3RlcC1pY29uLXNlbGVjdGVkLFxuICAgICAgLm1hdC1zdGVwLWljb24tc3RhdGUtZG9uZSxcbiAgICAgIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVkaXQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHdhcm4pO1xuICAgICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lcnJvciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICAgIH1cblxuICAgIC5tYXQtc3RlcC1sYWJlbC5tYXQtc3RlcC1sYWJlbC1hY3RpdmUge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLCAubWF0LXN0ZXBwZXItdmVydGljYWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gIH1cblxuICAubWF0LXN0ZXBwZXItdmVydGljYWwtbGluZTo6YmVmb3JlIHtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxuXG4gIC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YmVmb3JlLFxuICAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmFmdGVyLFxuICAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbC1saW5lIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc3RlcHBlci10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC1zdGVwcGVyLXZlcnRpY2FsLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtc3RlcC1sYWJlbCB7XG4gICAgZm9udDoge1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKTtcbiAgICB9O1xuICB9XG5cbiAgLm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvciB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgfVxuXG4gIC5tYXQtc3RlcC1sYWJlbC1lcnJvciB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMik7XG4gIH1cblxuICAubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWQge1xuICAgIGZvbnQ6IHtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0yKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMik7XG4gICAgfTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXN0ZXBwZXItZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRkZW5zaXR5LXNjYWxlOiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkaGVpZ2h0OiBtYXQtcHJpdmF0ZS1kZW5zaXR5LXByb3AtdmFsdWUoJG1hdC1zdGVwcGVyLWRlbnNpdHktY29uZmlnLCAkZGVuc2l0eS1zY2FsZSwgaGVpZ2h0KTtcbiAgJHZlcnRpY2FsLXBhZGRpbmc6ICgkaGVpZ2h0IC0gJG1hdC1zdGVwcGVyLWxhYmVsLWhlYWRlci1oZWlnaHQpIC8gMjtcblxuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1kZW5zaXR5LWxlZ2FjeS1jb21wYXRpYmlsaXR5KCkge1xuICAgIC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlciB7XG4gICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgfVxuXG4gICAgLm1hdC1zdGVwcGVyLWxhYmVsLXBvc2l0aW9uLWJvdHRvbSAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXIsXG4gICAgLm1hdC12ZXJ0aWNhbC1zdGVwcGVyLWhlYWRlciB7XG4gICAgICBwYWRkaW5nOiAkdmVydGljYWwtcGFkZGluZyAkbWF0LXN0ZXBwZXItc2lkZS1nYXA7XG4gICAgfVxuXG4gICAgLy8gRW5zdXJlcyB0aGF0IHRoZSB2ZXJ0aWNhbCBsaW5lcyBmb3IgdGhlIHN0ZXAgY29udGVudCBleGNlZWQgaW50byB0aGUgc3RlcFxuICAgIC8vIGhlYWRlcnMgd2l0aCBhIGdpdmVuIGRpc3RhbmNlIChgJG1hdC1zdGVwcGVyLWxpbmUtZ2FwYCkgdG8gdGhlIHN0ZXAgaWNvbi5cbiAgICAubWF0LXN0ZXBwZXItdmVydGljYWwtbGluZTo6YmVmb3JlIHtcbiAgICAgIHRvcDogJG1hdC1zdGVwcGVyLWxpbmUtZ2FwIC0gJHZlcnRpY2FsLXBhZGRpbmc7XG4gICAgICBib3R0b206ICRtYXQtc3RlcHBlci1saW5lLWdhcCAtICR2ZXJ0aWNhbC1wYWRkaW5nO1xuICAgIH1cblxuICAgIC8vIEVuc3VyZXMgdGhhdCB0aGUgaG9yaXpvbnRhbCBsaW5lcyBmb3IgdGhlIHN0ZXAgaGVhZGVyIGFyZSBjZW50ZXJlZCB2ZXJ0aWNhbGx5LlxuICAgIC5tYXQtc3RlcHBlci1sYWJlbC1wb3NpdGlvbi1ib3R0b20gLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyIHtcbiAgICAgICY6OmFmdGVyLCAmOjpiZWZvcmUge1xuICAgICAgICB0b3A6ICR2ZXJ0aWNhbC1wYWRkaW5nICsgJG1hdC1zdGVwcGVyLWxhYmVsLWhlYWRlci1oZWlnaHQgLyAyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEVuc3VyZXMgdGhhdCB0aGUgaG9yaXpvbnRhbCBsaW5lIGZvciB0aGUgc3RlcCBjb250ZW50IGlzIGFsaWduZWQgY2VudGVyZWQgdmVydGljYWxseS5cbiAgICAubWF0LXN0ZXBwZXItbGFiZWwtcG9zaXRpb24tYm90dG9tIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgdG9wOiAkdmVydGljYWwtcGFkZGluZyArICRtYXQtc3RlcHBlci1sYWJlbC1oZWFkZXItaGVpZ2h0IC8gMjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1zdGVwcGVyLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1zdGVwcGVyJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXN0ZXBwZXItY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXN0ZXBwZXItZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1zdGVwcGVyLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuQG1peGluIG1hdC1zb3J0LWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LXNvcnQtaGVhZGVyLWFycm93IHtcbiAgICAkdGFibGUtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnY2FyZCcpO1xuICAgICR0ZXh0LWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcblxuICAgIC8vIEJlY2F1c2UgdGhlIGFycm93IGlzIG1hZGUgdXAgb2YgbXVsdGlwbGUgZWxlbWVudHMgdGhhdCBhcmUgc3RhY2tlZCBvbiB0b3Agb2YgZWFjaCBvdGhlcixcbiAgICAvLyB3ZSBjYW4ndCB1c2UgdGhlIHNlbWktdHJhbnNwYXJlbnQgY29sb3IgZnJvbSB0aGUgdGhlbWUgZGlyZWN0bHkuIElmIHRoZSB2YWx1ZSBpcyBhIGNvbG9yXG4gICAgLy8gKnR5cGUqLCB3ZSBjb252ZXJ0IGl0IGludG8gYSBzb2xpZCBjb2xvciBieSB0YWtpbmcgdGhlIG9wYWNpdHkgZnJvbSB0aGUgcmdiYSB2YWx1ZSBhbmRcbiAgICAvLyB1c2luZyB0aGUgdmFsdWUgdG8gZGV0ZXJtaW5lIHRoZSBwZXJjZW50YWdlIG9mIHRoZSBiYWNrZ3JvdW5kIHRvIHB1dCBpbnRvIGZvcmVncm91bmRcbiAgICAvLyB3aGVuIG1peGluZyB0aGUgY29sb3JzIHRvZ2V0aGVyLiBPdGhlcndpc2UsIGlmIGl0IHJlc29sdmVzIHRvIHNvbWV0aGluZyBkaWZmZXJlbnRcbiAgICAvLyAoZS5nLiBpdCByZXNvbHZlcyB0byBhIENTUyB2YXJpYWJsZSksIHdlIHVzZSB0aGUgY29sb3IgZGlyZWN0bHkuXG4gICAgQGlmICh0eXBlLW9mKCR0YWJsZS1iYWNrZ3JvdW5kKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkdGV4dC1jb2xvcikgPT0gY29sb3IpIHtcbiAgICAgICR0ZXh0LW9wYWNpdHk6IG9wYWNpdHkoJHRleHQtY29sb3IpO1xuICAgICAgY29sb3I6IG1peCgkdGFibGUtYmFja2dyb3VuZCwgcmdiYSgkdGV4dC1jb2xvciwgMSksICgxIC0gJHRleHQtb3BhY2l0eSkgKiAxMDAlKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNvcnQtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gX21hdC1zb3J0LWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1zb3J0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1zb3J0Jykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXNvcnQtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1zb3J0LWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtc29ydC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5AbWl4aW4gbWF0LXRhYnMtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGhlYWRlci1ib3JkZXI6IDFweCBzb2xpZCBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuXG4gIC5tYXQtdGFiLW5hdi1iYXIsXG4gIC5tYXQtdGFiLWhlYWRlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhlYWRlci1ib3JkZXI7XG4gIH1cblxuICAubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIge1xuICAgIC5tYXQtdGFiLW5hdi1iYXIsXG4gICAgLm1hdC10YWItaGVhZGVyIHtcbiAgICAgIGJvcmRlci10b3A6ICRoZWFkZXItYm9yZGVyO1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAubWF0LXRhYi1sYWJlbCwgLm1hdC10YWItbGluayB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgICAmLm1hdC10YWItZGlzYWJsZWQge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICB9XG5cbiAgLy8gUmVtb3ZlIGhlYWRlciBib3JkZXIgd2hlbiB0aGVyZSBpcyBhIGJhY2tncm91bmQgY29sb3JcbiAgLm1hdC10YWItZ3JvdXBbY2xhc3MqPSdtYXQtYmFja2dyb3VuZC0nXSAubWF0LXRhYi1oZWFkZXIsXG4gIC5tYXQtdGFiLW5hdi1iYXJbY2xhc3MqPSdtYXQtYmFja2dyb3VuZC0nXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICBib3JkZXItdG9wOiBub25lO1xuICB9XG5cbiAgLm1hdC10YWItZ3JvdXAsIC5tYXQtdGFiLW5hdi1iYXIge1xuICAgICR0aGVtZS1jb2xvcnM6IChcbiAgICAgIHByaW1hcnk6ICRwcmltYXJ5LFxuICAgICAgYWNjZW50OiAkYWNjZW50LFxuICAgICAgd2FybjogJHdhcm5cbiAgICApO1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkdGhlbWUtY29sb3JzIHtcbiAgICAgIC8vIFNldCB0aGUgZm9yZWdyb3VuZCBjb2xvciBvZiB0aGUgdGFic1xuICAgICAgJi5tYXQtI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LXRhYi1sYWJlbC1mb2N1cygkY29sb3IpO1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWluay1iYXIoJGNvbG9yKTtcblxuICAgICAgICAvLyBPdmVycmlkZSBpbmsgYmFyIHdoZW4gYmFja2dyb3VuZCBjb2xvciBpcyB0aGUgc2FtZVxuICAgICAgICAmLm1hdC1iYWNrZ3JvdW5kLSN7JG5hbWV9IHtcbiAgICAgICAgICA+IC5tYXQtdGFiLWhlYWRlciwgPiAubWF0LXRhYi1saW5rLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBfbWF0LWluay1iYXIoJGNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICR0aGVtZS1jb2xvcnMge1xuICAgICAgLy8gU2V0IGJhY2tncm91bmQgY29sb3Igb2YgdGhlIHRhYnMgYW5kIG92ZXJyaWRlIGZvY3VzIGNvbG9yXG4gICAgICAmLm1hdC1iYWNrZ3JvdW5kLSN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWItbGFiZWwtZm9jdXMoJGNvbG9yKTtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWJzLWJhY2tncm91bmQoJGNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9tYXQtaW5rLWJhcigkY29sb3IsICRodWU6IGRlZmF1bHQpIHtcbiAgLm1hdC1pbmstYmFyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGNvbG9yLCAkaHVlKTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC10YWItbGFiZWwtZm9jdXMoJHRhYi1mb2N1cy1jb2xvcikge1xuICAubWF0LXRhYi1sYWJlbCxcbiAgLm1hdC10YWItbGluayB7XG4gICAgJi5jZGsta2V5Ym9hcmQtZm9jdXNlZCxcbiAgICAmLmNkay1wcm9ncmFtLWZvY3VzZWQge1xuICAgICAgJjpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR0YWItZm9jdXMtY29sb3IsIGxpZ2h0ZXIsIDAuMyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBfbWF0LXRhYnMtYmFja2dyb3VuZCgkYmFja2dyb3VuZC1jb2xvcikge1xuICAvLyBOb3RlIHRoYXQgdGhlc2Ugc2VsZWN0b3JzIHRhcmdldCBkaXJlY3QgZGVzY2VuZGFudHMgc29cbiAgLy8gdGhhdCB0aGUgc3R5bGVzIGRvbid0IGFwcGx5IHRvIGFueSBuZXN0ZWQgdGFiIGdyb3Vwcy5cblxuICAvLyBTZXQgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHRhYiBncm91cFxuICA+IC5tYXQtdGFiLWhlYWRlciwgPiAubWF0LXRhYi1saW5rLWNvbnRhaW5lciwgPiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yKTtcbiAgfVxuXG4gIC8vIFNldCBsYWJlbHMgdG8gY29udHJhc3QgYWdhaW5zdCBiYWNrZ3JvdW5kXG4gID4gLm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLCA+IC5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmsge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQtY29sb3IsIGRlZmF1bHQtY29udHJhc3QpO1xuXG4gICAgJi5tYXQtdGFiLWRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQtY29sb3IsIGRlZmF1bHQtY29udHJhc3QsIDAuNCk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2V0IHBhZ2luYXRpb24gY2hldnJvbnMgdG8gY29udHJhc3QgYmFja2dyb3VuZFxuICA+IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sXG4gID4gLm1hdC10YWItbGlua3MgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSxcbiAgPiAubWF0LXRhYi1oZWFkZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQtY29sb3IsIGRlZmF1bHQtY29udHJhc3QpO1xuICB9XG5cbiAgPiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZC1jb2xvciwgZGVmYXVsdC1jb250cmFzdCwgMC40KTtcbiAgfVxuXG4gIC8vIFNldCByaXBwbGVzIGNvbG9yIHRvIGJlIHRoZSBjb250cmFzdCBjb2xvciBvZiB0aGUgbmV3IGJhY2tncm91bmQuIE90aGVyd2lzZSB0aGUgcmlwcGxlXG4gIC8vIGNvbG9yIHdpbGwgYmUgYmFzZWQgb24gdGhlIGFwcCBiYWNrZ3JvdW5kIGNvbG9yLlxuICA+IC5tYXQtdGFiLWhlYWRlciAubWF0LXJpcHBsZS1lbGVtZW50LFxuICA+IC5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZC1jb2xvciwgZGVmYXVsdC1jb250cmFzdCwgMC4xMik7XG4gIH1cbn1cblxuQG1peGluIG1hdC10YWJzLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LXRhYi1ncm91cCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtdGFiLWxhYmVsLCAubWF0LXRhYi1saW5rIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBidXR0b24pO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBidXR0b24pO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYnV0dG9uKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9tYXQtdGFicy1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtdGFicy10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtdGFicycpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC10YWJzLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdGFicy1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXRhYnMtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG4vLyBNaW5pbXVtIGhlaWdodCBmb3IgdG9vbGJhcidzIGluIHRoZSBoaWdoZXN0IGRlbnNpdHkgaXMgZGlmZmljdWx0IHRvIGRldGVybWluZSBiZWNhdXNlXG4vLyBkZXZlbG9wZXJzIGNhbiBwcm9qZWN0IGFyYml0cmFyeSBjb250ZW50LiBXZSB1c2UgYSBtaW5pbXVtIHZhbHVlIHRoYXQgZW5zdXJlcyB0aGF0IG1vc3Rcbi8vIGNvbW1vbiBjb250ZW50IChlLmcuIGljb24gYnV0dG9ucykgZG9lcyBub3QgZXhjZWVkIHRoZSByb3cgYm91bmRhcmllcyBpbiBoaWdoZXN0IGRlbnNpdHkuXG4kbWF0LXRvb2xiYXItbWluaW11bS1oZWlnaHQ6IDQ0cHggIWRlZmF1bHQ7XG5cbiRtYXQtdG9vbGJhci1oZWlnaHQtZGVza3RvcDogNjRweCAhZGVmYXVsdDtcbiRtYXQtdG9vbGJhci1tYXhpbXVtLWhlaWdodC1kZXNrdG9wOiAkbWF0LXRvb2xiYXItaGVpZ2h0LWRlc2t0b3AgIWRlZmF1bHQ7XG4kbWF0LXRvb2xiYXItbWluaW11bS1oZWlnaHQtZGVza3RvcDogJG1hdC10b29sYmFyLW1pbmltdW0taGVpZ2h0ICFkZWZhdWx0O1xuXG4kbWF0LXRvb2xiYXItaGVpZ2h0LW1vYmlsZTogNTZweCAhZGVmYXVsdDtcbiRtYXQtdG9vbGJhci1tYXhpbXVtLWhlaWdodC1tb2JpbGU6ICRtYXQtdG9vbGJhci1oZWlnaHQtbW9iaWxlICFkZWZhdWx0O1xuJG1hdC10b29sYmFyLW1pbmltdW0taGVpZ2h0LW1vYmlsZTogJG1hdC10b29sYmFyLW1pbmltdW0taGVpZ2h0ICFkZWZhdWx0O1xuXG4kbWF0LXRvb2xiYXItZGVza3RvcC1kZW5zaXR5LWNvbmZpZzogKFxuICBoZWlnaHQ6IChcbiAgICBkZWZhdWx0OiAkbWF0LXRvb2xiYXItaGVpZ2h0LWRlc2t0b3AsXG4gICAgbWF4aW11bTogJG1hdC10b29sYmFyLW1heGltdW0taGVpZ2h0LWRlc2t0b3AsXG4gICAgbWluaW11bTogJG1hdC10b29sYmFyLW1pbmltdW0taGVpZ2h0LWRlc2t0b3AsXG4gIClcbikgIWRlZmF1bHQ7XG5cbiRtYXQtdG9vbGJhci1tb2JpbGUtZGVuc2l0eS1jb25maWc6IChcbiAgaGVpZ2h0OiAoXG4gICAgZGVmYXVsdDogJG1hdC10b29sYmFyLWhlaWdodC1tb2JpbGUsXG4gICAgbWF4aW11bTogJG1hdC10b29sYmFyLW1heGltdW0taGVpZ2h0LW1vYmlsZSxcbiAgICBtaW5pbXVtOiAkbWF0LXRvb2xiYXItbWluaW11bS1oZWlnaHQtbW9iaWxlLFxuICApXG4pICFkZWZhdWx0O1xuXG5cbkBtaXhpbiBfbWF0LXRvb2xiYXItaGVpZ2h0KCRoZWlnaHQpIHtcbiAgLm1hdC10b29sYmFyLW11bHRpcGxlLXJvd3Mge1xuICAgIG1pbi1oZWlnaHQ6ICRoZWlnaHQ7XG4gIH1cbiAgLm1hdC10b29sYmFyLXJvdywgLm1hdC10b29sYmFyLXNpbmdsZS1yb3cge1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC10b29sYmFyLWNvbG9yKCRwYWxldHRlKSB7XG4gIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkcGFsZXR0ZSk7XG4gIGNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QpO1xufVxuXG5AbWl4aW4gX21hdC10b29sYmFyLWZvcm0tZmllbGQtb3ZlcnJpZGVzIHtcbiAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSxcbiAgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbiAgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgLm1hdC1zZWxlY3QtdmFsdWUsXG4gIC5tYXQtc2VsZWN0LWFycm93LFxuICAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICB9XG5cbiAgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBjYXJldC1jb2xvcjogY3VycmVudENvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtdG9vbGJhci1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtdG9vbGJhciB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBhcHAtYmFyKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWNvbG9yKCRwcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBfbWF0LXRvb2xiYXItZm9ybS1maWVsZC1vdmVycmlkZXM7XG4gIH1cbn1cblxuQG1peGluIG1hdC10b29sYmFyLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LXRvb2xiYXIsXG4gIC5tYXQtdG9vbGJhciBoMSxcbiAgLm1hdC10b29sYmFyIGgyLFxuICAubWF0LXRvb2xiYXIgaDMsXG4gIC5tYXQtdG9vbGJhciBoNCxcbiAgLm1hdC10b29sYmFyIGg1LFxuICAubWF0LXRvb2xiYXIgaDYge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCB0aXRsZSk7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtdG9vbGJhci1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGRlbnNpdHktc2NhbGU6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRoZWlnaHQtZGVza3RvcDogbWF0LXByaXZhdGUtZGVuc2l0eS1wcm9wLXZhbHVlKFxuICAgICAgJG1hdC10b29sYmFyLWRlc2t0b3AtZGVuc2l0eS1jb25maWcsICRkZW5zaXR5LXNjYWxlLCBoZWlnaHQpO1xuICAkaGVpZ2h0LW1vYmlsZTogbWF0LXByaXZhdGUtZGVuc2l0eS1wcm9wLXZhbHVlKFxuICAgICAgJG1hdC10b29sYmFyLW1vYmlsZS1kZW5zaXR5LWNvbmZpZywgJGRlbnNpdHktc2NhbGUsIGhlaWdodCk7XG5cbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtZGVuc2l0eS1sZWdhY3ktY29tcGF0aWJpbGl0eSgpIHtcbiAgICAvLyBTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IGZvciB0aGUgdG9vbGJhci5cbiAgICBAaW5jbHVkZSBfbWF0LXRvb2xiYXItaGVpZ2h0KCRoZWlnaHQtZGVza3RvcCk7XG5cbiAgICAvLyBBcyBwZXIgc3BlY3MsIHRvb2xiYXJzIHNob3VsZCBoYXZlIGEgZGlmZmVyZW50IGhlaWdodCBpbiBtb2JpbGUgZGV2aWNlcy4gVGhpcyBoYXMgYmVlblxuICAgIC8vIHNwZWNpZmllZCBpbiB0aGUgb2xkIGd1aWRlbGluZXMgYW5kIGlzIHN0aWxsIG9ic2VydmFibGUgaW4gdGhlIG5ldyBzcGVjaWZpY2F0aW9ucyBieVxuICAgIC8vIGxvb2tpbmcgYXQgdGhlIHNwZWMgaW1hZ2VzLiBTZWU6IGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2NvbXBvbmVudHMvYXBwLWJhcnMtdG9wLmh0bWwjYW5hdG9teVxuICAgIEBtZWRpYSAoJG1hdC14c21hbGwpIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdG9vbGJhci1oZWlnaHQoJGhlaWdodC1tb2JpbGUpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRvb2xiYXItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LXRvb2xiYXInKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtdG9vbGJhci1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtdG9vbGJhci1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXRvb2xiYXItdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuJG1hdC10b29sdGlwLXRhcmdldC1oZWlnaHQ6IDIycHg7XG4kbWF0LXRvb2x0aXAtZm9udC1zaXplOiAxMHB4O1xuJG1hdC10b29sdGlwLXZlcnRpY2FsLXBhZGRpbmc6ICgkbWF0LXRvb2x0aXAtdGFyZ2V0LWhlaWdodCAtICRtYXQtdG9vbHRpcC1mb250LXNpemUpIC8gMjtcblxuJG1hdC10b29sdGlwLWhhbmRzZXQtdGFyZ2V0LWhlaWdodDogMzBweDtcbiRtYXQtdG9vbHRpcC1oYW5kc2V0LWZvbnQtc2l6ZTogMTRweDtcbiRtYXQtdG9vbHRpcC1oYW5kc2V0LXZlcnRpY2FsLXBhZGRpbmc6XG4gICAgKCRtYXQtdG9vbHRpcC1oYW5kc2V0LXRhcmdldC1oZWlnaHQgLSAkbWF0LXRvb2x0aXAtaGFuZHNldC1mb250LXNpemUpIC8gMjtcblxuQG1peGluIG1hdC10b29sdGlwLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuXG4gIC5tYXQtdG9vbHRpcCB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCB0b29sdGlwLCAwLjkpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtdG9vbHRpcC10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC10b29sdGlwIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICAgIGZvbnQtc2l6ZTogJG1hdC10b29sdGlwLWZvbnQtc2l6ZTtcbiAgICBwYWRkaW5nLXRvcDogJG1hdC10b29sdGlwLXZlcnRpY2FsLXBhZGRpbmc7XG4gICAgcGFkZGluZy1ib3R0b206ICRtYXQtdG9vbHRpcC12ZXJ0aWNhbC1wYWRkaW5nO1xuICB9XG5cbiAgLm1hdC10b29sdGlwLWhhbmRzZXQge1xuICAgIGZvbnQtc2l6ZTogJG1hdC10b29sdGlwLWhhbmRzZXQtZm9udC1zaXplO1xuICAgIHBhZGRpbmctdG9wOiAkbWF0LXRvb2x0aXAtaGFuZHNldC12ZXJ0aWNhbC1wYWRkaW5nO1xuICAgIHBhZGRpbmctYm90dG9tOiAkbWF0LXRvb2x0aXAtaGFuZHNldC12ZXJ0aWNhbC1wYWRkaW5nO1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LXRvb2x0aXAtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LXRvb2x0aXAtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LXRvb2x0aXAnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtdG9vbHRpcC1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRvb2x0aXAtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC10b29sdGlwLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LXNuYWNrLWJhci1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkY29uZmlnLCBpcy1kYXJrKTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuXG4gIC5tYXQtc25hY2stYmFyLWNvbnRhaW5lciB7XG4gICAgLy8gVXNlIHRoZSBwcmltYXJ5IHRleHQgb24gdGhlIGRhcmsgdGhlbWUsIGV2ZW4gdGhvdWdoIHRoZSBsaWdodGVyIG9uZSB1c2VzXG4gICAgLy8gYSBzZWNvbmRhcnksIGJlY2F1c2UgdGhlIGNvbnRyYXN0IG9uIHRoZSBsaWdodCBwcmltYXJ5IHRleHQgaXMgcG9vci5cbiAgICBjb2xvcjogaWYoJGlzLWRhcmstdGhlbWUsICRkYXJrLXByaW1hcnktdGV4dCwgJGxpZ2h0LXNlY29uZGFyeS10ZXh0KTtcbiAgICBiYWNrZ3JvdW5kOiBpZigkaXMtZGFyay10aGVtZSwgbWFwLWdldCgkbWF0LWdyZXksIDUwKSwgIzMyMzIzMik7XG5cbiAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS10aGVtZS1lbGV2YXRpb24oNiwgJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24ge1xuICAgIGNvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgaW5oZXJpdCwgbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNuYWNrLWJhci10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC1zaW1wbGUtc25hY2tiYXIge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJvZHktMSk7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uIHtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IGluaGVyaXQ7XG4gICAgICBzaXplOiBpbmhlcml0O1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYnV0dG9uKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9tYXQtc25hY2stYmFyLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1zbmFjay1iYXItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LXNuYWNrLWJhcicpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1zbmFjay1iYXItY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1zbmFjay1iYXItZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1zbmFjay1iYXItdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuLy8gVGhlbWUgc3R5bGVzIHRoYXQgb25seSBhcHBseSB0byB0aGUgZmlsbCBhcHBlYXJhbmNlIG9mIHRoZSBmb3JtLWZpZWxkLlxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtZmlsbC1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJGNvbmZpZywgaXMtZGFyayk7XG5cbiAgJGZpbGwtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBiYXNlLCBpZigkaXMtZGFyay10aGVtZSwgMC4xLCAwLjA0KSk7XG4gICRmaWxsLWRpc2FibGVkLWJhY2tncm91bmQ6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgaWYoJGlzLWRhcmstdGhlbWUsIDAuMDUsIDAuMDIpKTtcbiAgJHVuZGVybGluZS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyLCBpZigkaXMtZGFyay10aGVtZSwgMC41LCAwLjQyKSk7XG4gICRsYWJlbC1kaXNhYmxlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIHtcbiAgICAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmlsbC1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZpbGwtZGlzYWJsZWQtYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkbGFiZWwtZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZTogMDtcblxuLy8gQXBwbGllcyBhIGZsb2F0aW5nIGxhYmVsIGFib3ZlIHRoZSBmb3JtIGZpZWxkIGNvbnRyb2wgaXRzZWxmLlxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1maWxsLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLWZpbGwtZGVkdXBlKVxuICAgICAgICAgICAgIHNjYWxlKCRmb250LXNjYWxlKTtcbiAgd2lkdGg6IDEwMCUgLyAkZm9udC1zY2FsZSArICRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZTtcblxuICAkbWF0LWZvcm0tZmllbGQtZmlsbC1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZSArIDAuMDAwMDEgIWdsb2JhbDtcbn1cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWZpbGwtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC8vIFRoZSB1bml0LWxlc3MgbGluZS1oZWlnaHQgZnJvbSB0aGUgZm9udCBjb25maWcuXG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGlucHV0KTtcbiAgLy8gVGhlIGFtb3VudCB0byBzY2FsZSB0aGUgZm9udCBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsIGFuZCBzdWJzY3JpcHQuXG4gICRzdWJzY3JpcHQtZm9udC1zY2FsZTogMC43NTtcbiAgLy8gVGhlIHBhZGRpbmcgb24gdG9wIG9mIHRoZSBpbmZpeC5cbiAgJGluZml4LXBhZGRpbmctdG9wOiAwLjI1ZW07XG4gIC8vIFRoZSBwYWRkaW5nIGJlbG93IHRoZSBpbmZpeC5cbiAgJGluZml4LXBhZGRpbmctYm90dG9tOiAwLjc1ZW07XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBhbW91bnQgd2Ugb2Zmc2V0IHRoZSBsYWJlbCBmcm9tIHRoZSBpbnB1dCB0ZXh0IGluIHRoZSBmaWxsIGFwcGVhcmFuY2UuXG4gICRmaWxsLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0OiAtMC41ZW07XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICAgIHBhZGRpbmc6ICRpbmZpeC1wYWRkaW5nLXRvcCAwICRpbmZpeC1wYWRkaW5nLWJvdHRvbSAwO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmctdG9wO1xuICAgICAgbWFyZ2luLXRvcDogJGZpbGwtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQ7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQge1xuICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtZmlsbC1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLXRvcCArICRmaWxsLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1maWxsLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmctdG9wICsgJGZpbGwtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQsXG4gICAgICAgICAgICAgICAgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXByaXZhdGUtZm9ybS1maWVsZC1maWxsLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWZpbGwtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWZvcm0tZmllbGQtZmlsbCcpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWZpbGwtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtZm9ybS1maWVsZC1maWxsLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1maWxsLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG4vLyBUaGVtZSBzdHlsZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHRoZSBsZWdhY3kgYXBwZWFyYW5jZSBvZiB0aGUgZm9ybS1maWVsZC5cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJGNvbmZpZywgaXMtZGFyayk7XG5cbiAgJGxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgJHVuZGVybGluZS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyLCBpZigkaXMtZGFyay10aGVtZSwgMC43LCAwLjQyKSk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IHtcbiAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgY29sb3I6ICRsYWJlbC1jb2xvcjtcbiAgICB9XG5cbiAgICAubWF0LWhpbnQge1xuICAgICAgY29sb3I6ICRsYWJlbC1jb2xvcjtcbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR1bmRlcmxpbmUtY29sb3I7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNvbnRyb2wtZGlzYWJsZWQtdW5kZXJsaW5lKCR1bmRlcmxpbmUtY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlOiAwO1xuXG4vLyBBcHBsaWVzIGEgZmxvYXRpbmcgbGFiZWwgYWJvdmUgdGhlIGZvcm0gZmllbGQgY29udHJvbCBpdHNlbGYuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZygkZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKSB7XG4gIC8vIFdlIHVzZSBwZXJzcGVjdGl2ZSB0byBmaXggdGhlIHRleHQgYmx1cnJpbmVzcyBhcyBkZXNjcmliZWQgaGVyZTpcbiAgLy8gaHR0cDovL3d3dy51c2VyYWdlbnRtYW4uY29tL2Jsb2cvMjAxNC8wNS8wNC9maXhpbmctdHlwb2dyYXBoeS1pbnNpZGUtb2YtMi1kLWNzcy10cmFuc2Zvcm1zL1xuICAvLyBUaGlzIHJlc3VsdHMgaW4gYSBzbWFsbCBqaXR0ZXIgYWZ0ZXIgdGhlIGxhYmVsIGZsb2F0cyBvbiBGaXJlZm94LCB3aGljaCB0aGVcbiAgLy8gdHJhbnNsYXRlWiBmaXhlcy5cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nKSBzY2FsZSgkZm9udC1zY2FsZSkgcGVyc3BlY3RpdmUoMTAwcHgpXG4gIHRyYW5zbGF0ZVooMC4wMDFweCArICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlKTtcbiAgLy8gVGhlIHRyaWNrcyBhYm92ZSB1c2VkIHRvIHNtb290aCBvdXQgdGhlIGFuaW1hdGlvbiBvbiBjaHJvbWUgYW5kIGZpcmVmb3ggYWN0dWFsbHkgbWFrZSB0aGluZ3NcbiAgLy8gd29yc2Ugb24gSUUsIHNvIHdlIGRvbid0IGluY2x1ZGUgdGhlbSBpbiB0aGUgSUUgdmVyc2lvbi5cbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJGluZml4LW1hcmdpbi10b3AgLSAkaW5maXgtcGFkZGluZyArICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlKVxuICAgICAgICAgICAgICAgICAgc2NhbGUoJGZvbnQtc2NhbGUpO1xuXG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZTtcblxuICAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZTogJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbi8vIFNhbWUgYXMgbWl4aW4gYWJvdmUsIGJ1dCBvbWl0cyB0aGUgdHJhbnNsYXRlWiBmb3IgcHJpbnRpbmcgcHVycG9zZXMuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludCgkZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKSB7XG4gIC8vIFRoaXMgcmVzdWx0cyBpbiBhIHNtYWxsIGppdHRlciBhZnRlciB0aGUgbGFiZWwgZmxvYXRzIG9uIEZpcmVmb3gsIHdoaWNoIHRoZVxuICAvLyB0cmFuc2xhdGVaIGZpeGVzLlxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRpbmZpeC1tYXJnaW4tdG9wIC0gJGluZml4LXBhZGRpbmcgKyAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZSlcbiAgICAgICAgICAgICAgICAgIHNjYWxlKCRmb250LXNjYWxlKTtcbiAgLy8gVGhlIHRyaWNrcyBhYm92ZSB1c2VkIHRvIHNtb290aCBvdXQgdGhlIGFuaW1hdGlvbiBvbiBjaHJvbWUgYW5kIGZpcmVmb3ggYWN0dWFsbHkgbWFrZSB0aGluZ3NcbiAgLy8gd29yc2Ugb24gSUUsIHNvIHdlIGRvbid0IGluY2x1ZGUgdGhlbSBpbiB0aGUgSUUgdmVyc2lvbi5cbiAgJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlICsgMC4wMDAwMSAhZ2xvYmFsO1xufVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtbGVnYWN5LXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBhbW91bnQgb2Ygc3BhY2UgYmV0d2VlbiB0aGUgdG9wIG9mIHRoZSBsaW5lIGFuZCB0aGUgdG9wIG9mIHRoZSBhY3R1YWwgdGV4dFxuICAvLyAoYXMgYSBmcmFjdGlvbiBvZiB0aGUgZm9udC1zaXplKS5cbiAgJGxpbmUtc3BhY2luZzogKCRsaW5lLWhlaWdodCAtIDEpIC8gMjtcbiAgLy8gVGhlIHBhZGRpbmcgb24gdGhlIGluZml4LiBNb2NrcyBzaG93IGhhbGYgb2YgdGhlIHRleHQgc2l6ZSwgYnV0IHNlZW0gdG8gbWVhc3VyZSBmcm9tIHRoZSBlZGdlXG4gIC8vIG9mIHRoZSB0ZXh0IGl0c2VsZiwgbm90IHRoZSBlZGdlIG9mIHRoZSBsaW5lOyB0aGVyZWZvcmUgd2Ugc3VidHJhY3Qgb2ZmIHRoZSBsaW5lIHNwYWNpbmcuXG4gICRpbmZpeC1wYWRkaW5nOiAwLjVlbSAtICRsaW5lLXNwYWNpbmc7XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBib3R0b20gb2YgdGhlIC5tYXQtZm9ybS1maWVsZC1mbGV4IGFyZWEgYW5kIHRoZSBzdWJzY3JpcHQgd3JhcHBlci5cbiAgLy8gTW9ja3Mgc2hvdyBoYWxmIG9mIHRoZSB0ZXh0IHNpemUsIGJ1dCB0aGlzIG1hcmdpbiBpcyBhcHBsaWVkIHRvIGFuIGVsZW1lbnQgd2l0aCB0aGUgc3Vic2NyaXB0XG4gIC8vIHRleHQgZm9udCBzaXplLCBzbyB3ZSBuZWVkIHRvIGRpdmlkZSBieSB0aGUgc2NhbGUgZmFjdG9yIHRvIG1ha2UgaXQgaGFsZiBvZiB0aGUgb3JpZ2luYWwgdGV4dFxuICAvLyBzaXplLiBXZSBhZ2FpbiBuZWVkIHRvIHN1YnRyYWN0IG9mZiB0aGUgbGluZSBzcGFjaW5nIHNpbmNlIHRoZSBtb2NrcyBtZWFzdXJlIHRvIHRoZSBlZGdlIG9mIHRoZVxuICAvLyB0ZXh0LCBub3QgdGhlICBlZGdlIG9mIHRoZSBsaW5lLlxuICAkc3Vic2NyaXB0LW1hcmdpbi10b3A6IDAuNWVtIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlIC0gKCRsaW5lLXNwYWNpbmcgKiAyKTtcbiAgLy8gVGhlIHBhZGRpbmcgYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC13cmFwcGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBzdWJzY3JpcHQsIHNpbmNlIGl0J3NcbiAgLy8gYWJzb2x1dGVseSBwb3NpdGlvbmVkLiBUaGlzIGlzIGEgY29tYmluYXRpb24gb2YgdGhlIHN1YnNjcmlwdCdzIG1hcmdpbiBhbmQgbGluZS1oZWlnaHQsIGJ1dCB3ZVxuICAvLyBuZWVkIHRvIG11bHRpcGx5IGJ5IHRoZSBzdWJzY3JpcHQgZm9udCBzY2FsZSBmYWN0b3Igc2luY2UgdGhlIHdyYXBwZXIgaGFzIGEgbGFyZ2VyIGZvbnQgc2l6ZS5cbiAgJHdyYXBwZXItcGFkZGluZy1ib3R0b206ICgkc3Vic2NyaXB0LW1hcmdpbi10b3AgKyAkbGluZS1oZWlnaHQpICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgICAgcGFkZGluZy1ib3R0b206ICR3cmFwcGVyLXBhZGRpbmctYm90dG9tO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICBwYWRkaW5nOiAkaW5maXgtcGFkZGluZyAwO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG5cbiAgICAgIC8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjAgd2lsbCByZWx5IG9uIEF1dG9maWxsTW9uaXRvciBpbnN0ZWFkLlxuICAgICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICAvLyBXZSB3YW50IHRoZSB1bmRlcmxpbmUgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgICAvLyBzbyB3ZSBtb3ZlIGl0IHVwIGJ5IHRoZSBwYWRkaW5nIGFtb3VudC5cbiAgICAgIGJvdHRvbTogJHdyYXBwZXItcGFkZGluZy1ib3R0b207XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgICAgIG1hcmdpbi10b3A6ICRzdWJzY3JpcHQtbWFyZ2luLXRvcDtcblxuICAgICAgLy8gV2Ugd2FudCB0aGUgc3Vic2NyaXB0IHRvIHN0YXJ0IGF0IHRoZSBlbmQgb2YgdGhlIGNvbnRlbnQgYm94LCBub3QgdGhlIHBhZGRpbmcgYm94LFxuICAgICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQgKGFkanVzdGVkIGZvciB0aGUgc21hbGxlciBmb250IHNpemUpO1xuICAgICAgdG9wOiBjYWxjKDEwMCUgLSAjeyR3cmFwcGVyLXBhZGRpbmctYm90dG9tIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gdHJhbnNsYXRlWiBjYXVzZXMgdGhlIGxhYmVsIHRvIG5vdCBhcHBlYXIgd2hpbGUgcHJpbnRpbmcsIHNvIHdlIG92ZXJyaWRlIGl0IHRvIG5vdFxuICAvLyBhcHBseSB0cmFuc2xhdGVaIHdoaWxlIHByaW50aW5nXG4gIEBtZWRpYSBwcmludCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAgICAgICAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludChcbiAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjAgd2lsbCByZWx5IG9uIEF1dG9maWxsTW9uaXRvciBpbnN0ZWFkLlxuICAgICAgICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbDotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nLXByaW50KFxuICAgICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAgIC8vICh1c2VkIGFzIGEgcHVyZSBDU1Mgc3RhbmQtaW4gZm9yIG1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCkuXG4gICAgICAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludChcbiAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXByaXZhdGUtZm9ybS1maWVsZC1sZWdhY3ktZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtbGVnYWN5LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1mb3JtLWZpZWxkLWxlZ2FjeScpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1mb3JtLWZpZWxkLWxlZ2FjeS1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtbGVnYWN5LXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG4vLyBUaGVtZSBzdHlsZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHRoZSBvdXRsaW5lIGFwcGVhcmFuY2Ugb2YgdGhlIGZvcm0tZmllbGQuXG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJGNvbmZpZywgaXMtZGFyayk7XG5cbiAgJGxhYmVsLWRpc2FibGVkLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICAkb3V0bGluZS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyLCBpZigkaXMtZGFyay10aGVtZSwgMC4zLCAwLjEyKSk7XG4gICRvdXRsaW5lLWNvbG9yLWhvdmVyOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAxLCAwLjg3KSk7XG4gICRvdXRsaW5lLWNvbG9yLXByaW1hcnk6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gICRvdXRsaW5lLWNvbG9yLWFjY2VudDogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAkb3V0bGluZS1jb2xvci13YXJuOiBtYXQtY29sb3IoJHdhcm4pO1xuICAkb3V0bGluZS1jb2xvci1kaXNhYmxlZDogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyLCBpZigkaXMtZGFyay10aGVtZSwgMC4xNSwgMC4wNikpO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUge1xuICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvcjtcbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gICAgICBjb2xvcjogJG91dGxpbmUtY29sb3ItaG92ZXI7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9jdXNlZCB7XG4gICAgICAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gICAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci1wcmltYXJ5O1xuICAgICAgfVxuXG4gICAgICAmLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICAgICAgICBjb2xvcjogJG91dGxpbmUtY29sb3ItYWNjZW50O1xuICAgICAgfVxuXG4gICAgICAmLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLXdhcm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ2xhc3MgcmVwZWF0ZWQgc28gdGhhdCBydWxlIGlzIHNwZWNpZmljIGVub3VnaCB0byBvdmVycmlkZSBmb2N1c2VkIGFjY2VudCBjb2xvciBjYXNlLlxuICAgICYubWF0LWZvcm0tZmllbGQtaW52YWxpZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLXdhcm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCB7XG4gICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBjb2xvcjogJGxhYmVsLWRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuXG4gICAgICAubWF0LWZvcm0tZmllbGQtb3V0bGluZSB7XG4gICAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci1kaXNhYmxlZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gVXNlZCB0byBtYWtlIGluc3RhbmNlcyBvZiB0aGUgX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nIG1peGluIG5lZ2xpZ2libHkgZGlmZmVyZW50LFxuLy8gYW5kIHByZXZlbnQgR29vZ2xlJ3MgQ1NTIE9wdGltaXplciBmcm9tIGNvbGxhcHNpbmcgdGhlIGRlY2xhcmF0aW9ucy4gVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBzb21lXG4vLyBvZiB0aGUgc2VsZWN0b3JzIGNvbnRhaW4gcHNldWRvLWNsYXNzZXMgbm90IHJlY29nbml6ZWQgaW4gYWxsIGJyb3dzZXJzLiBJZiBhIGJyb3dzZXIgZW5jb3VudGVyc1xuLy8gYW4gdW5rbm93biBwc2V1ZG8tY2xhc3MgaXQgd2lsbCBkaXNjYXJkIHRoZSBlbnRpcmUgcnVsZSBzZXQuXG4kbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZWR1cGU6IDA7XG5cbi8vIEFwcGxpZXMgYSBmbG9hdGluZyBsYWJlbCBhYm92ZSB0aGUgZm9ybSBmaWVsZCBjb250cm9sIGl0c2VsZi5cbkBtaXhpbiBfbWF0LWZvcm0tZmllbGQtb3V0bGluZS1sYWJlbC1mbG9hdGluZygkZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJGluZml4LW1hcmdpbi10b3AgLSAkaW5maXgtcGFkZGluZyArICRtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWRlZHVwZSlcbiAgc2NhbGUoJGZvbnQtc2NhbGUpO1xuICB3aWR0aDogMTAwJSAvICRmb250LXNjYWxlICsgJG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVkdXBlO1xuXG4gICRtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWRlZHVwZTogJG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVkdXBlICsgMC4wMDAwMSAhZ2xvYmFsO1xufVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtb3V0bGluZS10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuICAvLyBUaGUgYW1vdW50IHRvIHNjYWxlIHRoZSBmb250IGZvciB0aGUgZmxvYXRpbmcgbGFiZWwgYW5kIHN1YnNjcmlwdC5cbiAgJHN1YnNjcmlwdC1mb250LXNjYWxlOiAwLjc1O1xuICAvLyBUaGUgcGFkZGluZyBhYm92ZSBhbmQgYmVsb3cgdGhlIGluZml4LlxuICAkaW5maXgtcGFkZGluZzogMWVtO1xuICAvLyBUaGUgbWFyZ2luIGFwcGxpZWQgdG8gdGhlIGZvcm0tZmllbGQtaW5maXggdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsLlxuICAkaW5maXgtbWFyZ2luLXRvcDogMWVtICogJGxpbmUtaGVpZ2h0ICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBUaGUgc3BhY2UgYmV0d2VlbiB0aGUgYm90dG9tIG9mIHRoZSAubWF0LWZvcm0tZmllbGQtZmxleCBhcmVhIGFuZCB0aGUgc3Vic2NyaXB0IHdyYXBwZXIuXG4gIC8vIE1vY2tzIHNob3cgaGFsZiBvZiB0aGUgdGV4dCBzaXplLCBidXQgdGhpcyBtYXJnaW4gaXMgYXBwbGllZCB0byBhbiBlbGVtZW50IHdpdGggdGhlIHN1YnNjcmlwdFxuICAvLyB0ZXh0IGZvbnQgc2l6ZSwgc28gd2UgbmVlZCB0byBkaXZpZGUgYnkgdGhlIHNjYWxlIGZhY3RvciB0byBtYWtlIGl0IGhhbGYgb2YgdGhlIG9yaWdpbmFsIHRleHRcbiAgLy8gc2l6ZS5cbiAgJHN1YnNjcmlwdC1tYXJnaW4tdG9wOiAwLjVlbSAvICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcbiAgLy8gVGhlIHBhZGRpbmcgYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC13cmFwcGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBzdWJzY3JpcHQsIHNpbmNlIGl0J3NcbiAgLy8gYWJzb2x1dGVseSBwb3NpdGlvbmVkLiBUaGlzIGlzIGEgY29tYmluYXRpb24gb2YgdGhlIHN1YnNjcmlwdCdzIG1hcmdpbiBhbmQgbGluZS1oZWlnaHQsIGJ1dCB3ZVxuICAvLyBuZWVkIHRvIG11bHRpcGx5IGJ5IHRoZSBzdWJzY3JpcHQgZm9udCBzY2FsZSBmYWN0b3Igc2luY2UgdGhlIHdyYXBwZXIgaGFzIGEgbGFyZ2VyIGZvbnQgc2l6ZS5cbiAgJHdyYXBwZXItcGFkZGluZy1ib3R0b206ICgkc3Vic2NyaXB0LW1hcmdpbi10b3AgKyAkbGluZS1oZWlnaHQpICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBUaGUgYW1vdW50IHdlIG9mZnNldCB0aGUgbGFiZWwgZnJvbSB0aGUgaW5wdXQgdGV4dCBpbiB0aGUgb3V0bGluZSBhcHBlYXJhbmNlLlxuICAkb3V0bGluZS1hcHBlYXJhbmNlLWxhYmVsLW9mZnNldDogLTAuMjVlbTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIHtcbiAgICAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgICAgcGFkZGluZzogJGluZml4LXBhZGRpbmcgMCAkaW5maXgtcGFkZGluZyAwO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmc7XG4gICAgICBtYXJnaW4tdG9wOiAkb3V0bGluZS1hcHBlYXJhbmNlLWxhYmVsLW9mZnNldDtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCB7XG4gICAgICAmLm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gICAgICAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcgKyAkb3V0bGluZS1hcHBlYXJhbmNlLWxhYmVsLW9mZnNldCxcbiAgICAgICAgICAgICAgICAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG5cbiAgICAgIC8vIFNlcnZlci1zaWRlIHJlbmRlcmVkIG1hdElucHV0IHdpdGggYSBsYWJlbCBhdHRyaWJ1dGUgYnV0IGxhYmVsIG5vdCBzaG93blxuICAgICAgLy8gKHVzZWQgYXMgYSBwdXJlIENTUyBzdGFuZC1pbiBmb3IgbWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0KS5cbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtb3V0bGluZS1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nICsgJG91dGxpbmUtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQsXG4gICAgICAgICAgICAgICAgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXByaXZhdGUtZm9ybS1maWVsZC1vdXRsaW5lLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWZvcm0tZmllbGQtb3V0bGluZScpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtZm9ybS1maWVsZC1vdXRsaW5lLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG5cbi8vIFRoZW1lIHN0eWxlcyB0aGF0IG9ubHkgYXBwbHkgdG8gdGhlIHN0YW5kYXJkIGFwcGVhcmFuY2Ugb2YgdGhlIGZvcm0tZmllbGQuXG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJGNvbmZpZywgaXMtZGFyayk7XG5cbiAgJHVuZGVybGluZS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyLCBpZigkaXMtZGFyay10aGVtZSwgMC43LCAwLjQyKSk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY29udHJvbC1kaXNhYmxlZC11bmRlcmxpbmUoJHVuZGVybGluZS1jb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtcHJpdmF0ZS1mb3JtLWZpZWxkLXN0YW5kYXJkLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLXN0YW5kYXJkLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1mb3JtLWZpZWxkLXN0YW5kYXJkJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtc3RhbmRhcmQtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtZm9ybS1maWVsZC1zdGFuZGFyZC1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtc3RhbmRhcmQtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuLy8gQ29sb3Igc3R5bGVzIHRoYXQgYXBwbHkgdG8gYWxsIGFwcGVhcmFuY2VzIG9mIHRoZSBmb3JtLWZpZWxkLlxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCRjb25maWcsIGlzLWRhcmspO1xuXG4gIC8vIExhYmVsIGNvbG9ycy4gUmVxdWlyZWQgaXMgdXNlZCBmb3IgdGhlIGAqYCBzdGFyIHNob3duIGluIHRoZSBsYWJlbC5cbiAgJGxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0LCBpZigkaXMtZGFyay10aGVtZSwgMC43LCAwLjYpKTtcbiAgJGZvY3VzZWQtbGFiZWwtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG4gICRyZXF1aXJlZC1sYWJlbC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuXG4gIC8vIFVuZGVybGluZSBjb2xvcnMuXG4gICR1bmRlcmxpbmUtY29sb3ItYmFzZTogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyLCBpZigkaXMtZGFyay10aGVtZSwgMSwgMC44NykpO1xuICAkdW5kZXJsaW5lLWNvbG9yLWFjY2VudDogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuICAkdW5kZXJsaW5lLWNvbG9yLXdhcm46IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICR1bmRlcmxpbmUtZm9jdXNlZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCB0ZXh0KTtcblxuICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIGNvbG9yOiAkbGFiZWwtY29sb3I7XG4gIH1cblxuICAubWF0LWhpbnQge1xuICAgIGNvbG9yOiAkbGFiZWwtY29sb3I7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICBjb2xvcjogJGZvY3VzZWQtbGFiZWwtY29sb3I7XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3ItYWNjZW50O1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgICB9XG4gIH1cblxuICAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlciB7XG4gICAgY29sb3I6ICRyZXF1aXJlZC1sYWJlbC1jb2xvcjtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR1bmRlcmxpbmUtY29sb3ItYmFzZTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWZvY3VzZWQtY29sb3I7XG5cbiAgICAgICYubWF0LWFjY2VudCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR1bmRlcmxpbmUtY29sb3ItYWNjZW50O1xuICAgICAgfVxuXG4gICAgICAmLm1hdC13YXJuIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkge1xuICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgICAgY29sb3I6ICR1bmRlcmxpbmUtZm9jdXNlZC1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci1hY2NlbnQ7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gICAgfVxuICB9XG5cbiAgLy8gU3R5bGluZyBmb3IgdGhlIGVycm9yIHN0YXRlIG9mIHRoZSBmb3JtIGZpZWxkLiBOb3RlIHRoYXQgd2hpbGUgdGhlIHNhbWUgY2FuIGJlXG4gIC8vIGFjaGlldmVkIHdpdGggdGhlIG5nLSogY2xhc3Nlcywgd2UgdXNlIHRoaXMgYXBwcm9hY2ggaW4gb3JkZXIgdG8gZW5zdXJlIHRoYXQgdGhlIHNhbWVcbiAgLy8gbG9naWMgaXMgdXNlZCB0byBzdHlsZSB0aGUgZXJyb3Igc3RhdGUgYW5kIHRvIHNob3cgdGhlIGVycm9yIG1lc3NhZ2VzLlxuICAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG5cbiAgICAgICYubWF0LWFjY2VudCxcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIge1xuICAgICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUsXG4gICAgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtYWNjZW50IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgICB9XG4gIH1cblxuICAubWF0LWVycm9yIHtcbiAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuICB9XG5cbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtbGVnYWN5LWNvbG9yKCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC1jb2xvcigkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtZmlsbC1jb2xvcigkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtb3V0bGluZS1jb2xvcigkY29uZmlnKTtcbn1cblxuLy8gVXNlZCB0byBtYWtlIGluc3RhbmNlcyBvZiB0aGUgX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nIG1peGluIG5lZ2xpZ2libHkgZGlmZmVyZW50LFxuLy8gYW5kIHByZXZlbnQgR29vZ2xlJ3MgQ1NTIE9wdGltaXplciBmcm9tIGNvbGxhcHNpbmcgdGhlIGRlY2xhcmF0aW9ucy4gVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBzb21lXG4vLyBvZiB0aGUgc2VsZWN0b3JzIGNvbnRhaW4gcHNldWRvLWNsYXNzZXMgbm90IHJlY29nbml6ZWQgaW4gYWxsIGJyb3dzZXJzLiBJZiBhIGJyb3dzZXIgZW5jb3VudGVyc1xuLy8gYW4gdW5rbm93biBwc2V1ZG8tY2xhc3MgaXQgd2lsbCBkaXNjYXJkIHRoZSBlbnRpcmUgcnVsZSBzZXQuXG4kbWF0LWZvcm0tZmllbGQtZGVkdXBlOiAwO1xuXG4vLyBBcHBsaWVzIGEgZmxvYXRpbmcgbGFiZWwgYWJvdmUgdGhlIGZvcm0gZmllbGQgY29udHJvbCBpdHNlbGYuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLWRlZHVwZSlcbiAgICAgICAgICAgICBzY2FsZSgkZm9udC1zY2FsZSk7XG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtZGVkdXBlO1xuXG4gICRtYXQtZm9ybS1maWVsZC1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuXG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBwcmVmaXggYW5kIHN1ZmZpeCBpY29ucy5cbiAgJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNjYWxlOiAxLjU7XG5cbiAgLy8gVGhlIHBhZGRpbmcgb24gdGhlIGluZml4LiBNb2NrcyBzaG93IGhhbGYgb2YgdGhlIHRleHQgc2l6ZS5cbiAgJGluZml4LXBhZGRpbmc6IDAuNWVtO1xuICAvLyBUaGUgbWFyZ2luIGFwcGxpZWQgdG8gdGhlIGZvcm0tZmllbGQtaW5maXggdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsLlxuICAkaW5maXgtbWFyZ2luLXRvcDogMWVtICogJGxpbmUtaGVpZ2h0ICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBGb250IHNpemUgdG8gdXNlIGZvciB0aGUgbGFiZWwgYW5kIHN1YnNjcmlwdCB0ZXh0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2l6ZTogJHN1YnNjcmlwdC1mb250LXNjYWxlICogMTAwJTtcbiAgLy8gRm9udCBzaXplIHRvIHVzZSBmb3IgdGhlIGZvciB0aGUgcHJlZml4IGFuZCBzdWZmaXggaWNvbnMuXG4gICRwcmVmaXgtc3VmZml4LWljb24tZm9udC1zaXplOiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2NhbGUgKiAxMDAlO1xuICAvLyBUaGUgc3BhY2UgYmV0d2VlbiB0aGUgYm90dG9tIG9mIHRoZSAubWF0LWZvcm0tZmllbGQtZmxleCBhcmVhIGFuZCB0aGUgc3Vic2NyaXB0IHdyYXBwZXIuXG4gIC8vIE1vY2tzIHNob3cgaGFsZiBvZiB0aGUgdGV4dCBzaXplLCBidXQgdGhpcyBtYXJnaW4gaXMgYXBwbGllZCB0byBhbiBlbGVtZW50IHdpdGggdGhlIHN1YnNjcmlwdFxuICAvLyB0ZXh0IGZvbnQgc2l6ZSwgc28gd2UgbmVlZCB0byBkaXZpZGUgYnkgdGhlIHNjYWxlIGZhY3RvciB0byBtYWtlIGl0IGhhbGYgb2YgdGhlIG9yaWdpbmFsIHRleHRcbiAgLy8gc2l6ZS5cbiAgJHN1YnNjcmlwdC1tYXJnaW4tdG9wOiAwLjVlbSAvICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcbiAgLy8gVGhlIHBhZGRpbmcgYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC13cmFwcGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBzdWJzY3JpcHQsIHNpbmNlIGl0J3NcbiAgLy8gYWJzb2x1dGVseSBwb3NpdGlvbmVkLiBUaGlzIGlzIGEgY29tYmluYXRpb24gb2YgdGhlIHN1YnNjcmlwdCdzIG1hcmdpbiBhbmQgbGluZS1oZWlnaHQsIGJ1dCB3ZVxuICAvLyBuZWVkIHRvIG11bHRpcGx5IGJ5IHRoZSBzdWJzY3JpcHQgZm9udCBzY2FsZSBmYWN0b3Igc2luY2UgdGhlIHdyYXBwZXIgaGFzIGEgbGFyZ2VyIGZvbnQgc2l6ZS5cbiAgJHdyYXBwZXItcGFkZGluZy1ib3R0b206ICgkc3Vic2NyaXB0LW1hcmdpbi10b3AgKyAkbGluZS1oZWlnaHQpICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuXG4gIC5tYXQtZm9ybS1maWVsZCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGlucHV0KTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHdyYXBwZXItcGFkZGluZy1ib3R0b207XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtcHJlZml4LFxuICAubWF0LWZvcm0tZmllbGQtc3VmZml4IHtcbiAgICAvLyBBbGxvdyBpY29ucyBpbiBhIHByZWZpeCBvciBzdWZmaXggdG8gYWRhcHQgdG8gdGhlIGNvcnJlY3Qgc2l6ZS5cbiAgICAubWF0LWljb24ge1xuICAgICAgZm9udC1zaXplOiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2l6ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG4gICAgfVxuXG4gICAgLy8gQWxsb3cgaWNvbiBidXR0b25zIGluIGEgcHJlZml4IG9yIHN1ZmZpeCB0byBhZGFwdCB0byB0aGUgY29ycmVjdCBzaXplLlxuICAgIC5tYXQtaWNvbi1idXR0b24ge1xuICAgICAgaGVpZ2h0OiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2NhbGUgKiAxZW07XG4gICAgICB3aWR0aDogJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNjYWxlICogMWVtO1xuXG4gICAgICAubWF0LWljb24ge1xuICAgICAgICBoZWlnaHQ6ICRsaW5lLWhlaWdodCAqIDFlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIHBhZGRpbmc6ICRpbmZpeC1wYWRkaW5nIDA7XG4gICAgLy8gVGhyb3dzIG9mZiB0aGUgYmFzZWxpbmUgaWYgd2UgZG8gaXQgYXMgYSByZWFsIG1hcmdpbiwgc28gd2UgZG8gaXQgYXMgYSBib3JkZXIgaW5zdGVhZC5cbiAgICBib3JkZXItdG9wOiAkaW5maXgtbWFyZ2luLXRvcCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQge1xuICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICB9XG5cbiAgICAvLyBTZXJ2ZXItc2lkZSByZW5kZXJlZCBtYXRJbnB1dCB3aXRoIGEgbGFiZWwgYXR0cmlidXRlIGJ1dCBsYWJlbCBub3Qgc2hvd25cbiAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgdG9wOiAtJGluZml4LW1hcmdpbi10b3A7XG4gICAgcGFkZGluZy10b3A6ICRpbmZpeC1tYXJnaW4tdG9wO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmc7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICAvLyBXZSB3YW50IHRoZSB1bmRlcmxpbmUgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQuXG4gICAgYm90dG9tOiAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciB7XG4gICAgZm9udC1zaXplOiAkc3Vic2NyaXB0LWZvbnQtc2l6ZTtcbiAgICBtYXJnaW4tdG9wOiAkc3Vic2NyaXB0LW1hcmdpbi10b3A7XG5cbiAgICAvLyBXZSB3YW50IHRoZSBzdWJzY3JpcHQgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQgKGFkanVzdGVkIGZvciB0aGUgc21hbGxlciBmb250IHNpemUpO1xuICAgIHRvcDogY2FsYygxMDAlIC0gI3skd3JhcHBlci1wYWRkaW5nLWJvdHRvbSAvICRzdWJzY3JpcHQtZm9udC1zY2FsZX0pO1xuICB9XG5cbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtbGVnYWN5LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXN0YW5kYXJkLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWZpbGwtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtb3V0bGluZS10eXBvZ3JhcGh5KCRjb25maWcpO1xufVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRkZW5zaXR5LXNjYWxlOiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1mb3JtLWZpZWxkLWxlZ2FjeS1kZW5zaXR5KCRkZW5zaXR5LXNjYWxlKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtZm9ybS1maWVsZC1zdGFuZGFyZC1kZW5zaXR5KCRkZW5zaXR5LXNjYWxlKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtZm9ybS1maWVsZC1maWxsLWRlbnNpdHkoJGRlbnNpdHktc2NhbGUpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1mb3JtLWZpZWxkLW91dGxpbmUtZGVuc2l0eSgkZGVuc2l0eS1zY2FsZSk7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtZm9ybS1maWVsZCcpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG4kbWF0LXRyZWUtbm9kZS1oZWlnaHQ6IDQ4cHggIWRlZmF1bHQ7XG4vLyBNaW5pbXVtIGhlaWdodCBmb3IgdHJlZSBub2RlcyBpbiBoaWdoZXN0IGRlbnNpdHkgaXMgZGlmZmljdWx0IHRvIGRldGVybWluZSBhc1xuLy8gZGV2ZWxvcGVycyBjYW4gZGlzcGxheSBhcmJpdHJhcnkgY29udGVudC4gV2UgdXNlIGEgbWluaW11bSBoZWlnaHQgd2hpY2ggZW5zdXJlc1xuLy8gdGhhdCBjb21tb24gY29udGVudCBwbGFjZWQgaW4gdHJlZSBub2RlcyBkb2VzIG5vdCBleGNlZWQgKGUuZy4gaWNvbnMsIGNoZWNrYm94ZXMpLlxuJG1hdC10cmVlLW5vZGUtbWluaW11bS1oZWlnaHQ6IDI0cHggIWRlZmF1bHQ7XG4kbWF0LXRyZWUtbm9kZS1tYXhpbXVtLWhlaWdodDogJG1hdC10cmVlLW5vZGUtaGVpZ2h0ICFkZWZhdWx0O1xuXG4kbWF0LXRyZWUtZGVuc2l0eS1jb25maWc6IChcbiAgaGVpZ2h0OiAoXG4gICAgZGVmYXVsdDogJG1hdC10cmVlLW5vZGUtaGVpZ2h0LFxuICAgIG1heGltdW06ICRtYXQtdHJlZS1ub2RlLW1heGltdW0taGVpZ2h0LFxuICAgIG1pbmltdW06ICRtYXQtdHJlZS1ub2RlLW1pbmltdW0taGVpZ2h0LFxuICApXG4pICFkZWZhdWx0O1xuXG5cbkBtaXhpbiBtYXQtdHJlZS1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC10cmVlIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdjYXJkJyk7XG4gIH1cblxuICAubWF0LXRyZWUtbm9kZSxcbiAgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRyZWUtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtdHJlZSB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtdHJlZS1ub2RlLFxuICAubWF0LW5lc3RlZC10cmVlLW5vZGUge1xuICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKTtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRyZWUtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRkZW5zaXR5LXNjYWxlOiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkaGVpZ2h0OiBtYXQtcHJpdmF0ZS1kZW5zaXR5LXByb3AtdmFsdWUoJG1hdC10cmVlLWRlbnNpdHktY29uZmlnLCAkZGVuc2l0eS1zY2FsZSwgaGVpZ2h0KTtcblxuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1kZW5zaXR5LWxlZ2FjeS1jb21wYXRpYmlsaXR5KCkge1xuICAgIC5tYXQtdHJlZS1ub2RlIHtcbiAgICAgIG1pbi1oZWlnaHQ6ICRoZWlnaHQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtdHJlZS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtdHJlZScpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC10cmVlLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC10cmVlLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtdHJlZS10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuLy8gSW5jbHVkZXMgYWxsIG9mIHRoZSB0eXBvZ3JhcGhpYyBzdHlsZXMuXG5AbWl4aW4gYW5ndWxhci1tYXRlcmlhbC10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWU6IG51bGwpIHtcbiAgJGNvbmZpZzogaWYobWF0LXByaXZhdGUtaXMtdGhlbWUtb2JqZWN0KCRjb25maWctb3ItdGhlbWUpLFxuICAgICAgbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKSwgJGNvbmZpZy1vci10aGVtZSk7XG5cbiAgLy8gSWYgbm8gYWN0dWFsIGNvbG9yIGNvbmZpZ3VyYXRpb24gaGFzIGJlZW4gc3BlY2lmaWVkLCBjcmVhdGUgYSBkZWZhdWx0IG9uZS5cbiAgQGlmIG5vdCAkY29uZmlnIHtcbiAgICAkY29uZmlnOiBtYXQtdHlwb2dyYXBoeS1jb25maWcoKTtcbiAgfVxuXG4gIC8vIFRPRE86IENPTVAtMzA5OiBEbyBub3QgdXNlIGluZGl2aWR1YWwgbWl4aW5zLiBJbnN0ZWFkLCB1c2UgdGhlIGFsbC10aGVtZSBtaXhpbiBhbmQgb25seVxuICAvLyBzcGVjaWZ5IGEgYHR5cG9ncmFwaHlgIGNvbmZpZyB3aGlsZSBzZXR0aW5nIGBjb2xvcmAgYW5kIGBkZW5zaXR5YCB0byBgbnVsbGAuIFRoaXMgaXMgY3VycmVudGx5XG4gIC8vIG5vdCBwb3NzaWJsZSBhcyBpdCB3b3VsZCBpbnRyb2R1Y2UgYSBjaXJjdWxhciBkZXBlbmRlbmN5IGZvciB0eXBvZ3JhcGh5IGJlY2F1c2UgdGhlIGBtYXQtY29yZWBcbiAgLy8gbWl4aW4gdGhhdCBpcyB0cmFuc2l0aXZlbHkgbG9hZGVkIGJ5IHRoZSBgYWxsLXRoZW1lYCBmaWxlLCBpbXBvcnRzIGBhbGwtdHlwb2dyYXBoeWAgd2hpY2hcbiAgLy8gd291bGQgdGhlbiBsb2FkIGBhbGwtdGhlbWVgIGFnYWluLiBUaGlzIHVsdGltYXRlbHkgcmVzdWx0cyBhIGNpcmN1bGFyIGRlcGVuZGVuY3kuXG5cbiAgQGluY2x1ZGUgbWF0LWJhZGdlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1iYXNlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1hdXRvY29tcGxldGUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWJvdHRvbS1zaGVldC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYnV0dG9uLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1idXR0b24tdG9nZ2xlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1jYXJkLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1jaGVja2JveC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtY2hpcHMtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWRpdmlkZXItdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXRhYmxlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1kYXRlcGlja2VyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1kaWFsb2ctdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWV4cGFuc2lvbi1wYW5lbC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZ3JpZC1saXN0LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1pY29uLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1pbnB1dC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtbWVudS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcGFnaW5hdG9yLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcm9ncmVzcy1iYXItdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByb2dyZXNzLXNwaW5uZXItdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXJhZGlvLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zZWxlY3QtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXNpZGVuYXYtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXNsaWRlLXRvZ2dsZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc2xpZGVyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zdGVwcGVyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zb3J0LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC10YWJzLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC10b29sYmFyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC10b29sdGlwLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1saXN0LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1vcHRpb24tdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LW9wdGdyb3VwLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zbmFjay1iYXItdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXRyZWUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbn1cblxuXG4vLyBNaXhpbiB0aGF0IHJlbmRlcnMgYWxsIG9mIHRoZSBjb3JlIHN0eWxlcyB0aGF0IGFyZSBub3QgdGhlbWUtZGVwZW5kZW50LlxuQG1peGluIG1hdC1jb3JlKCR0eXBvZ3JhcGh5LWNvbmZpZzogbnVsbCkge1xuICBAaW5jbHVkZSBhbmd1bGFyLW1hdGVyaWFsLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHktY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXJpcHBsZSgpO1xuICBAaW5jbHVkZSBjZGstYTExeSgpO1xuICBAaW5jbHVkZSBjZGstb3ZlcmxheSgpO1xuICBAaW5jbHVkZSBjZGstdGV4dC1maWVsZCgpO1xuXG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLXBvc2l0aW9uaW5nKCk7XG4gIEBpbmNsdWRlIF9tYXQtbWRjLWNvcmUoKTtcbn1cblxuQG1peGluIG1hdC1jb3JlLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC8vIFdyYXBwZXIgZWxlbWVudCB0aGF0IHByb3ZpZGVzIHRoZSB0aGVtZSBiYWNrZ3JvdW5kIHdoZW4gdGhlIHVzZXIncyBjb250ZW50IGlzbid0XG4gIC8vIGluc2lkZSBvZiBhIGBtYXQtc2lkZW5hdi1jb250YWluZXJgLiBOb3RlIHRoYXQgd2UgbmVlZCB0byBleGNsdWRlIHRoZSBhbXBlcnNhbmRcbiAgLy8gc2VsZWN0b3IgaW4gY2FzZSB0aGUgbWl4aW4gaXMgaW5jbHVkZWQgYXQgdGhlIHRvcCBsZXZlbC5cbiAgLm1hdC1hcHAtYmFja2dyb3VuZCN7aWYoJiwgJywgJi5tYXQtYXBwLWJhY2tncm91bmQnLCAnJyl9IHtcbiAgICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cblxuICAvLyBQcm92aWRlcyBleHRlcm5hbCBDU1MgY2xhc3NlcyBmb3IgZWFjaCBlbGV2YXRpb24gdmFsdWUuIEVhY2ggQ1NTIGNsYXNzIGlzIGZvcm1hdHRlZCBhc1xuICAvLyBgbWF0LWVsZXZhdGlvbi16JHpWYWx1ZWAgd2hlcmUgYCR6VmFsdWVgIGNvcnJlc3BvbmRzIHRvIHRoZSB6LXNwYWNlIHRvIHdoaWNoIHRoZSBlbGVtZW50IGlzXG4gIC8vIGVsZXZhdGVkLlxuICBAZm9yICR6VmFsdWUgZnJvbSAwIHRocm91Z2ggMjQge1xuICAgIC4jeyRtYXQtZWxldmF0aW9uLXByZWZpeH0jeyR6VmFsdWV9IHtcbiAgICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLWVsZXZhdGlvbigkelZhbHVlLCAkY29uZmlnKTtcbiAgICB9XG4gIH1cblxuICAvLyBNYXJrZXIgdGhhdCBpcyB1c2VkIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSB1c2VyIGhhcyBhZGRlZCBhIHRoZW1lIHRvIHRoZWlyIHBhZ2UuXG4gIEBhdC1yb290IHtcbiAgICAubWF0LXRoZW1lLWxvYWRlZC1tYXJrZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gTWl4aW4gdGhhdCByZW5kZXJzIGFsbCBvZiB0aGUgY29yZSBzdHlsZXMgdGhhdCBkZXBlbmQgb24gdGhlIHRoZW1lLlxuQG1peGluIG1hdC1jb3JlLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAvLyBXcmFwIHRoZSBzdWItdGhlbWUgaW5jbHVkZXMgaW4gdGhlIGR1cGxpY2F0ZSB0aGVtZSBzdHlsZXMgbWl4aW4uIFRoaXMgZW5zdXJlcyB0aGF0XG4gIC8vIHRoZXJlIHdvbid0IGJlIG11bHRpcGxlIHdhcm5pbmdzLiBlLmcuIGlmIGBtYXQtY29yZS10aGVtZWAgcmVwb3J0cyBhIHdhcm5pbmcsIHRoZW5cbiAgLy8gdGhlIGltcG9ydGVkIHRoZW1lcyAoc3VjaCBhcyBgbWF0LXJpcHBsZS10aGVtZWApIHNob3VsZCBub3QgcmVwb3J0IGFnYWluLlxuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1jb3JlJykge1xuICAgIEBpbmNsdWRlIG1hdC1yaXBwbGUtdGhlbWUoJHRoZW1lKTtcbiAgICBAaW5jbHVkZSBtYXQtb3B0aW9uLXRoZW1lKCR0aGVtZSk7XG4gICAgQGluY2x1ZGUgbWF0LW9wdGdyb3VwLXRoZW1lKCR0aGVtZSk7XG4gICAgQGluY2x1ZGUgbWF0LXBzZXVkby1jaGVja2JveC10aGVtZSgkdGhlbWUpO1xuXG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtY29yZS1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBNaXhpbiB0aGF0IHJlbmRlcnMgYWxsIG9mIHRoZSBjb3JlIE1EQyBzdHlsZXMuIFByaXZhdGUgbWl4aW4gaW5jbHVkZWQgd2l0aCBgbWF0LWNvcmVgLlxuQG1peGluIF9tYXQtbWRjLWNvcmUoKSB7XG4gIEBpbmNsdWRlIF9tYXQtbWRjLXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLXBvc2l0aW9uaW5nKCk7XG59XG5cbi8vIE1peGluIHRoYXQgZW5zdXJlcyBmb2N1cyBpbmRpY2F0b3IgaG9zdCBlbGVtZW50cyBhcmUgcG9zaXRpb25lZCBzbyB0aGF0IHRoZSBmb2N1cyBpbmRpY2F0b3Jcbi8vIHBzZXVkbyBlbGVtZW50IHdpdGhpbiBpcyBwb3NpdGlvbmVkIHJlbGF0aXZlIHRvIHRoZSBob3N0LiBQcml2YXRlIG1peGluIGluY2x1ZGVkIHdpdGhpblxuLy8gYF9tYXQtbWRjLWNvcmVgLlxuQG1peGluIF9tYXQtbWRjLXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLXBvc2l0aW9uaW5nKCkge1xuICAubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3Ige1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxufVxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4vLyBDcmVhdGUgYSB0aGVtZS5cbkBtaXhpbiBhbmd1bGFyLW1hdGVyaWFsLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJGRlZHVwZS1rZXk6ICdhbmd1bGFyLW1hdGVyaWFsLXRoZW1lJztcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUtb3ItY29sb3ItY29uZmlnLCAkZGVkdXBlLWtleSkge1xuICAgIEBpbmNsdWRlIG1hdC1jb3JlLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1hdXRvY29tcGxldGUtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LWJhZGdlLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1ib3R0b20tc2hlZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtYnV0dG9uLXRvZ2dsZS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtY2FyZC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtY2hlY2tib3gtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LWNoaXBzLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC10YWJsZS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtZGF0ZXBpY2tlci10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtZGlhbG9nLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1kaXZpZGVyLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1leHBhbnNpb24tcGFuZWwtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LWdyaWQtbGlzdC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtaWNvbi10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtaW5wdXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LWxpc3QtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LW1lbnUtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LXBhZ2luYXRvci10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3MtYmFyLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1wcm9ncmVzcy1zcGlubmVyLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1yYWRpby10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtc2VsZWN0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1zaWRlbmF2LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1zbGlkZS10b2dnbGUtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LXNsaWRlci10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtc3RlcHBlci10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtc29ydC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtdGFicy10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtdG9vbGJhci10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtdG9vbHRpcC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtdHJlZS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtc25hY2stYmFyLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICB9XG59XG5cblxuXG4vLyBJbmNsdWRlcyBhbGwgb2YgdGhlIGNvbG9yIHN0eWxlcy5cbkBtaXhpbiBhbmd1bGFyLW1hdGVyaWFsLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgLy8gSW4gY2FzZSBhIHRoZW1lIG9iamVjdCBoYXMgYmVlbiBwYXNzZWQgaW5zdGVhZCBvZiBhIGNvbmZpZ3VyYXRpb24gZm9yXG4gIC8vIHRoZSBjb2xvciBzeXN0ZW0sIGV4dHJhY3QgdGhlIGNvbG9yIGNvbmZpZyBmcm9tIHRoZSB0aGVtZSBvYmplY3QuXG4gICRjb25maWc6IGlmKG1hdC1wcml2YXRlLWlzLXRoZW1lLW9iamVjdCgkY29uZmlnLW9yLXRoZW1lKSxcbiAgICAgIG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpLCAkY29uZmlnLW9yLXRoZW1lKTtcblxuICBAaWYgJGNvbmZpZyA9PSBudWxsIHtcbiAgICBAZXJyb3IgJ05vIGNvbG9yIGNvbmZpZ3VyYXRpb24gc3BlY2lmaWVkLic7XG4gIH1cblxuICBAaW5jbHVkZSBhbmd1bGFyLW1hdGVyaWFsLXRoZW1lKChcbiAgICBjb2xvcjogJGNvbmZpZyxcbiAgICB0eXBvZ3JhcGh5OiBudWxsLFxuICAgIGRlbnNpdHk6IG51bGwsXG4gICkpO1xufVxuXG5cblxuXG5cblxuXG5cblxuXG4vLyBJbmNsdWRlcyBhbGwgb2YgdGhlIGRlbnNpdHkgc3R5bGVzLlxuQG1peGluIGFuZ3VsYXItbWF0ZXJpYWwtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gIC8vIEluIGNhc2UgYSB0aGVtZSBvYmplY3QgaGFzIGJlZW4gcGFzc2VkIGluc3RlYWQgb2YgYSBjb25maWd1cmF0aW9uIGZvclxuICAvLyB0aGUgZGVuc2l0eSBzeXN0ZW0sIGV4dHJhY3QgdGhlIGRlbnNpdHkgY29uZmlnIGZyb20gdGhlIHRoZW1lIG9iamVjdC5cbiAgJGNvbmZpZzogaWYobWF0LXByaXZhdGUtaXMtdGhlbWUtb2JqZWN0KCRjb25maWctb3ItdGhlbWUpLFxuICAgICAgbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKSwgJGNvbmZpZy1vci10aGVtZSk7XG5cbiAgQGlmICRjb25maWcgPT0gbnVsbCB7XG4gICAgQGVycm9yICdObyBkZW5zaXR5IGNvbmZpZ3VyYXRpb24gc3BlY2lmaWVkLic7XG4gIH1cblxuICAvLyBUT0RPOiBDT01QLTMwOTogRG8gbm90IHVzZSBpbmRpdmlkdWFsIG1peGlucy4gSW5zdGVhZCwgdXNlIHRoZSBhbGwtdGhlbWUgbWl4aW4gYW5kIG9ubHlcbiAgLy8gc3BlY2lmeSBhIGBkZW5zaXR5YCBjb25maWcgd2hpbGUgc2V0dGluZyBgY29sb3JgIGFuZCBgdHlwb2dyYXBoeWAgdG8gYG51bGxgLiBUaGlzIGlzIGN1cnJlbnRseVxuICAvLyBub3QgcG9zc2libGUgYXMgaXQgd291bGQgaW50cm9kdWNlIGEgY2lyY3VsYXIgZGVwZW5kZW5jeSBmb3IgZGVuc2l0eSBiZWNhdXNlIHRoZSBgbWF0LWNvcmVgXG4gIC8vIG1peGluIHRoYXQgaXMgdHJhbnNpdGl2ZWx5IGxvYWRlZCBieSB0aGUgYGFsbC10aGVtZWAgZmlsZSwgaW1wb3J0cyBgYWxsLWRlbnNpdHlgIHdoaWNoXG4gIC8vIHdvdWxkIHRoZW4gbG9hZCBgYWxsLXRoZW1lYCBhZ2Fpbi4gVGhpcyB1bHRpbWF0ZWx5IHJlc3VsdHMgYSBjaXJjdWxhciBkZXBlbmRlbmN5LlxuXG4gIEBpbmNsdWRlIG1hdC1leHBhbnNpb24tcGFuZWwtZGVuc2l0eSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXN0ZXBwZXItZGVuc2l0eSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXRvb2xiYXItZGVuc2l0eSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXRyZWUtZGVuc2l0eSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXBhZ2luYXRvci1kZW5zaXR5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1kZW5zaXR5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYnV0dG9uLXRvZ2dsZS1kZW5zaXR5KCRjb25maWcpO1xufVxuXG5cblxuIiwiLy8gV2Ugd2FudCBvdmVybGF5cyB0byBhbHdheXMgYXBwZWFyIG92ZXIgdXNlciBjb250ZW50LCBzbyBzZXQgYSBiYXNlbGluZVxuLy8gdmVyeSBoaWdoIHotaW5kZXggZm9yIHRoZSBvdmVybGF5IGNvbnRhaW5lciwgd2hpY2ggaXMgd2hlcmUgd2UgY3JlYXRlIHRoZSBuZXdcbi8vIHN0YWNraW5nIGNvbnRleHQgZm9yIGFsbCBvdmVybGF5cy5cbiRjZGstei1pbmRleC1vdmVybGF5LWNvbnRhaW5lcjogMTAwMCAhZGVmYXVsdDtcbiRjZGstei1pbmRleC1vdmVybGF5OiAxMDAwICFkZWZhdWx0O1xuJGNkay16LWluZGV4LW92ZXJsYXktYmFja2Ryb3A6IDEwMDAgIWRlZmF1bHQ7XG5cbi8vIEJhY2tncm91bmQgY29sb3IgZm9yIGFsbCBvZiB0aGUgYmFja2Ryb3BzXG4kY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcC1iYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMzIpICFkZWZhdWx0O1xuXG4vLyBEZWZhdWx0IGJhY2tkcm9wIGFuaW1hdGlvbiBpcyBiYXNlZCBvbiB0aGUgTWF0ZXJpYWwgRGVzaWduIHN3aWZ0LWVhc2Utb3V0LlxuJGJhY2tkcm9wLWFuaW1hdGlvbi1kdXJhdGlvbjogNDAwbXMgIWRlZmF1bHQ7XG4kYmFja2Ryb3AtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSkgIWRlZmF1bHQ7XG5cblxuQG1peGluIGNkay1vdmVybGF5KCkge1xuICAuY2RrLW92ZXJsYXktY29udGFpbmVyLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIge1xuICAgIC8vIERpc2FibGUgZXZlbnRzIGZyb20gYmVpbmcgY2FwdHVyZWQgb24gdGhlIG92ZXJsYXkgY29udGFpbmVyLlxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgLy8gVGhlIGNvbnRhaW5lciBzaG91bGQgYmUgdGhlIHNpemUgb2YgdGhlIHZpZXdwb3J0LlxuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIFRoZSBvdmVybGF5LWNvbnRhaW5lciBpcyBhbiBpbnZpc2libGUgZWxlbWVudCB3aGljaCBjb250YWlucyBhbGwgaW5kaXZpZHVhbCBvdmVybGF5cy5cbiAgLmNkay1vdmVybGF5LWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5LWNvbnRhaW5lcjtcblxuICAgICY6ZW1wdHkge1xuICAgICAgLy8gSGlkZSB0aGUgZWxlbWVudCB3aGVuIGl0IGRvZXNuJ3QgaGF2ZSBhbnkgY2hpbGQgbm9kZXMuIFRoaXMgZG9lc24ndFxuICAgICAgLy8gaW5jbHVkZSBvdmVybGF5cyB0aGF0IGhhdmUgYmVlbiBkZXRhY2hlZCwgcmF0aGVyIHRoYW4gZGlzcG9zZWQuXG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdlIHVzZSBhbiBleHRyYSB3cmFwcGVyIGVsZW1lbnQgaW4gb3JkZXIgdG8gdXNlIG1ha2UgdGhlIG92ZXJsYXkgaXRzZWxmIGEgZmxleCBpdGVtLlxuICAvLyBUaGlzIG1ha2VzIGNlbnRlcmluZyB0aGUgb3ZlcmxheSBlYXN5IHdpdGhvdXQgcnVubmluZyBpbnRvIHRoZSBzdWJwaXhlbCByZW5kZXJpbmdcbiAgLy8gcHJvYmxlbXMgdGllZCB0byB1c2luZyBgdHJhbnNmb3JtYCBhbmQgd2l0aG91dCBpbnRlcmZlcmluZyB3aXRoIHRoZSBvdGhlciBwb3NpdGlvblxuICAvLyBzdHJhdGVnaWVzLlxuICAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5O1xuICB9XG5cbiAgLy8gQSBzaW5nbGUgb3ZlcmxheSBwYW5lLlxuICAuY2RrLW92ZXJsYXktcGFuZSB7XG4gICAgLy8gTm90ZTogaXQncyBpbXBvcnRhbnQgZm9yIHRoaXMgb25lIHRvIHN0YXJ0IG9mZiBgYWJzb2x1dGVgLFxuICAgIC8vIGluIG9yZGVyIGZvciB1cyB0byBiZSBhYmxlIHRvIG1lYXN1cmUgaXQgY29ycmVjdGx5LlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5O1xuXG4gICAgLy8gRm9yIGNvbm5lY3RlZC1wb3NpdGlvbiBvdmVybGF5cywgd2Ugc2V0IGBkaXNwbGF5OiBmbGV4YCBpblxuICAgIC8vIG9yZGVyIHRvIGZvcmNlIGBtYXgtd2lkdGhgIGFuZCBgbWF4LWhlaWdodGAgdG8gdGFrZSBlZmZlY3QuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC5jZGstb3ZlcmxheS1iYWNrZHJvcCB7XG4gICAgLy8gVE9ETyhqZWxib3Vybik6IHJldXNlIHNpZGVuYXYgZnVsbHNjcmVlbiBtaXhpbi5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuXG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXktYmFja2Ryb3A7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRiYWNrZHJvcC1hbmltYXRpb24tZHVyYXRpb24gJGJhY2tkcm9wLWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb247XG4gICAgb3BhY2l0eTogMDtcblxuICAgICYuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyB7XG4gICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAvLyBOb3RlIHRoYXQgd2UgY2FuJ3QgaW1wb3J0IGFuZCB1c2UgdGhlIGBoaWdoLWNvbnRyYXN0YCBtaXhpbiBmcm9tIGBfYTExeS5zY3NzYCwgYmVjYXVzZVxuICAgICAgLy8gdGhpcyBmaWxlIHdpbGwgYmUgY29waWVkIHRvIHRoZSB0b3AtbGV2ZWwgYGNka2AgcGFja2FnZSB3aGVuIHB1dHRpbmcgdG9nZXRoZXIgdGhlIGZpbGVzXG4gICAgICAvLyBmb3IgbnBtLiBBbnkgcmVsYXRpdmUgaW1wb3J0IHBhdGhzIHdlIHVzZSBoZXJlIHdpbGwgYmVjb21lIGludmFsaWQgb25jZSB0aGUgZmlsZSBpcyBjb3BpZWQuXG4gICAgICAuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlICYge1xuICAgICAgICAvLyBJbiBoaWdoIGNvbnRyYXN0IG1vZGUgdGhlIHJnYmEgYmFja2dyb3VuZCB3aWxsIGJlY29tZSBzb2xpZFxuICAgICAgICAvLyBzbyB3ZSBuZWVkIHRvIGZhbGwgYmFjayB0byBtYWtpbmcgaXQgb3BhcXVlIHVzaW5nIGBvcGFjaXR5YC5cbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wIHtcbiAgICBiYWNrZ3JvdW5kOiAkY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcC1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wIHtcbiAgICAvLyBOb3RlOiBhcyBvZiBGaXJlZm94IDU3LCBoYXZpbmcgdGhlIGJhY2tkcm9wIGJlIGBiYWNrZ3JvdW5kOiBub25lYCB3aWxsIHByZXZlbnQgaXQgZnJvbVxuICAgIC8vIGNhcHR1cmluZyB0aGUgdXNlcidzIG1vdXNlIHNjcm9sbCBldmVudHMuIFNpbmNlIHdlIGFsc28gY2FuJ3QgdXNlIHNvbWV0aGluZyBsaWtlXG4gICAgLy8gYHJnYmEoMCwgMCwgMCwgMClgLCB3ZSB3b3JrIGFyb3VuZCB0aGUgaW5jb25zaXN0ZW5jeSBieSBub3Qgc2V0dGluZyB0aGUgYmFja2dyb3VuZCBhdFxuICAgIC8vIGFsbCBhbmQgdXNpbmcgYG9wYWNpdHlgIHRvIG1ha2UgdGhlIGVsZW1lbnQgdHJhbnNwYXJlbnQuXG4gICAgJiwgJi5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gT3ZlcmxheSBwYXJlbnQgZWxlbWVudCB1c2VkIHdpdGggdGhlIGNvbm5lY3RlZCBwb3NpdGlvbiBzdHJhdGVneS4gVXNlZCB0byBjb25zdHJhaW4gdGhlXG4gIC8vIG92ZXJsYXkgZWxlbWVudCdzIHNpemUgdG8gZml0IHdpdGhpbiB0aGUgdmlld3BvcnQuXG4gIC5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXk7XG5cbiAgICAvLyBXZSB1c2UgYGRpc3BsYXk6IGZsZXhgIG9uIHRoaXMgZWxlbWVudCBleGNsdXNpdmVseSBmb3IgY2VudGVyaW5nIGNvbm5lY3RlZCBvdmVybGF5cy5cbiAgICAvLyBXaGVuICpub3QqIGNlbnRlcmluZywgYSB0b3AvbGVmdC9ib3R0b20vcmlnaHQgd2lsbCBiZSBzZXQgd2hpY2ggb3ZlcnJpZGVzIHRoZSBub3JtYWxcbiAgICAvLyBmbGV4IGxheW91dC5cbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgLy8gV2UgdXNlIHRoZSBgY29sdW1uYCBkaXJlY3Rpb24gaGVyZSB0byBhdm9pZCBzb21lIGZsZXhib3ggaXNzdWVzIGluIEVkZ2VcbiAgICAvLyB3aGVuIHVzaW5nIHRoZSBcImdyb3cgYWZ0ZXIgb3BlblwiIG9wdGlvbnMuXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIC8vIEFkZCBzb21lIGRpbWVuc2lvbnMgc28gdGhlIGVsZW1lbnQgaGFzIGFuIGBpbm5lclRleHRgIHdoaWNoIHNvbWUgcGVvcGxlIGRlcGVuZCBvbiBpbiB0ZXN0cy5cbiAgICBtaW4td2lkdGg6IDFweDtcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gIH1cblxuICAvLyBVc2VkIHdoZW4gZGlzYWJsaW5nIGdsb2JhbCBzY3JvbGxpbmcuXG4gIC5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG5cbiAgICAvLyBOZWNlc3NhcnkgZm9yIHRoZSBjb250ZW50IG5vdCB0byBsb3NlIGl0cyB3aWR0aC4gTm90ZSB0aGF0IHdlJ3JlIHVzaW5nIDEwMCUsIGluc3RlYWQgb2ZcbiAgICAvLyAxMDB2dywgYmVjYXVzZSAxMDB2dyBpbmNsdWRlcyB0aGUgd2lkdGggcGx1cyB0aGUgc2Nyb2xsYmFyLCB3aGVyZWFzIDEwMCUgaXMgdGhlIHdpZHRoXG4gICAgLy8gdGhhdCB0aGUgZWxlbWVudCBoYWQgYmVmb3JlIHdlIG1hZGUgaXQgYGZpeGVkYC5cbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC8vIE5vdGU6IHRoaXMgd2lsbCBhbHdheXMgYWRkIGEgc2Nyb2xsYmFyIHRvIHdoYXRldmVyIGVsZW1lbnQgaXQgaXMgb24sIHdoaWNoIGNhblxuICAgIC8vIHBvdGVudGlhbGx5IHJlc3VsdCBpbiBkb3VibGUgc2Nyb2xsYmFycy4gSXQgc2hvdWxkbid0IGJlIGFuIGlzc3VlLCBiZWNhdXNlIHdlIHdvbid0XG4gICAgLy8gYmxvY2sgc2Nyb2xsaW5nIG9uIGEgcGFnZSB0aGF0IGRvZXNuJ3QgaGF2ZSBhIHNjcm9sbGJhciBpbiB0aGUgZmlyc3QgcGxhY2UuXG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICB9XG59XG4iXX0= */
