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