[class^=ant-]::-ms-clear,
[class*= ant-]::-ms-clear,
[class^=ant-] input::-ms-clear,
[class*= ant-] input::-ms-clear,
[class^=ant-] input::-ms-reveal,
[class*= ant-] input::-ms-reveal {
  display: none;
}
[class^=ant-],
[class*= ant-],
[class^=ant-] *,
[class*= ant-] *,
[class^=ant-] *::before,
[class*= ant-] *::before,
[class^=ant-] *::after,
[class*= ant-] *::after {
  box-sizing: border-box;
}
/* stylelint-disable at-rule-no-unknown */
html,
body {
  width: 100%;
  height: 100%;
}
input::-ms-clear,
input::-ms-reveal {
  display: none;
}
*,
*::before,
*::after {
  box-sizing: border-box;
}
html {
  font-family: sans-serif;
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  -ms-overflow-style: scrollbar;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
body {
  margin: 0;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
  font-variant: tabular-nums;
  line-height: 1.5715;
  background-color: #fff;
  font-feature-settings: 'tnum';
}
[tabindex='-1']:focus {
  outline: none !important;
}
hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  margin-top: 0;
  margin-bottom: 0.5em;
  color: rgba(0, 0, 0, 0.85);
  font-weight: 500;
}
p {
  margin-top: 0;
  margin-bottom: 1em;
}
abbr[title],
abbr[data-original-title] {
  text-decoration: underline;
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
  border-bottom: 0;
  cursor: help;
}
address {
  margin-bottom: 1em;
  font-style: normal;
  line-height: inherit;
}
input[type='text'],
input[type='password'],
input[type='number'],
textarea {
  -webkit-appearance: none;
}
ol,
ul,
dl {
  margin-top: 0;
  margin-bottom: 1em;
}
ol ol,
ul ul,
ol ul,
ul ol {
  margin-bottom: 0;
}
dt {
  font-weight: 500;
}
dd {
  margin-bottom: 0.5em;
  margin-left: 0;
}
blockquote {
  margin: 0 0 1em;
}
dfn {
  font-style: italic;
}
b,
strong {
  font-weight: bolder;
}
small {
  font-size: 80%;
}
sub,
sup {
  position: relative;
  font-size: 75%;
  line-height: 0;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
a {
  color: #1890ff;
  text-decoration: none;
  background-color: transparent;
  outline: none;
  cursor: pointer;
  transition: color 0.3s;
  -webkit-text-decoration-skip: objects;
}
a:hover {
  color: #40a9ff;
}
a:active {
  color: #096dd9;
}
a:active,
a:hover {
  text-decoration: none;
  outline: 0;
}
a:focus {
  text-decoration: none;
  outline: 0;
}
a[disabled] {
  color: rgba(0, 0, 0, 0.25);
  cursor: not-allowed;
  pointer-events: none;
}
pre,
code,
kbd,
samp {
  font-size: 1em;
  font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;
}
pre {
  margin-top: 0;
  margin-bottom: 1em;
  overflow: auto;
}
figure {
  margin: 0 0 1em;
}
img {
  vertical-align: middle;
  border-style: none;
}
svg:not(:root) {
  overflow: hidden;
}
a,
area,
button,
[role='button'],
input:not([type='range']),
label,
select,
summary,
textarea {
  touch-action: manipulation;
}
table {
  border-collapse: collapse;
}
caption {
  padding-top: 0.75em;
  padding-bottom: 0.3em;
  color: rgba(0, 0, 0, 0.45);
  text-align: left;
  caption-side: bottom;
}
th {
  text-align: inherit;
}
input,
button,
select,
optgroup,
textarea {
  margin: 0;
  color: inherit;
  font-size: inherit;
  font-family: inherit;
  line-height: inherit;
}
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 {
  padding: 0;
  border-style: none;
}
input[type='radio'],
input[type='checkbox'] {
  box-sizing: border-box;
  padding: 0;
}
input[type='date'],
input[type='time'],
input[type='datetime-local'],
input[type='month'] {
  -webkit-appearance: listbox;
}
textarea {
  overflow: auto;
  resize: vertical;
}
fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
legend {
  display: block;
  width: 100%;
  max-width: 100%;
  margin-bottom: 0.5em;
  padding: 0;
  color: inherit;
  font-size: 1.5em;
  line-height: inherit;
  white-space: normal;
}
progress {
  vertical-align: baseline;
}
[type='number']::-webkit-inner-spin-button,
[type='number']::-webkit-outer-spin-button {
  height: auto;
}
[type='search'] {
  outline-offset: -2px;
  -webkit-appearance: none;
}
[type='search']::-webkit-search-cancel-button,
[type='search']::-webkit-search-decoration {
  -webkit-appearance: none;
}
::-webkit-file-upload-button {
  font: inherit;
  -webkit-appearance: button;
}
output {
  display: inline-block;
}
summary {
  display: list-item;
}
template {
  display: none;
}
[hidden] {
  display: none !important;
}
mark {
  padding: 0.2em;
  background-color: #feffe6;
}
::-moz-selection {
  color: #fff;
  background: #1890ff;
}
::selection {
  color: #fff;
  background: #1890ff;
}
.clearfix::before {
  display: table;
  content: '';
}
.clearfix::after {
  display: table;
  clear: both;
  content: '';
}
.anticon {
  display: inline-block;
  color: inherit;
  font-style: normal;
  line-height: 0;
  text-align: center;
  text-transform: none;
  vertical-align: -0.125em;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.anticon > * {
  line-height: 1;
}
.anticon svg {
  display: inline-block;
}
.anticon::before {
  display: none;
}
.anticon .anticon-icon {
  display: block;
}
.anticon[tabindex] {
  cursor: pointer;
}
.anticon-spin::before {
  display: inline-block;
  -webkit-animation: loadingCircle 1s infinite linear;
          animation: loadingCircle 1s infinite linear;
}
.anticon-spin {
  display: inline-block;
  -webkit-animation: loadingCircle 1s infinite linear;
          animation: loadingCircle 1s infinite linear;
}
.fade-enter,
.fade-appear {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.fade-leave {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.fade-enter.fade-enter-active,
.fade-appear.fade-appear-active {
  -webkit-animation-name: antFadeIn;
          animation-name: antFadeIn;
  -webkit-animation-play-state: running;
          animation-play-state: running;
}
.fade-leave.fade-leave-active {
  -webkit-animation-name: antFadeOut;
          animation-name: antFadeOut;
  -webkit-animation-play-state: running;
          animation-play-state: running;
  pointer-events: none;
}
.fade-enter,
.fade-appear {
  opacity: 0;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear;
}
.fade-leave {
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear;
}
@-webkit-keyframes antFadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes antFadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@-webkit-keyframes antFadeOut {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@keyframes antFadeOut {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
.move-up-enter,
.move-up-appear {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.move-up-leave {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.move-up-enter.move-up-enter-active,
.move-up-appear.move-up-appear-active {
  -webkit-animation-name: antMoveUpIn;
          animation-name: antMoveUpIn;
  -webkit-animation-play-state: running;
          animation-play-state: running;
}
.move-up-leave.move-up-leave-active {
  -webkit-animation-name: antMoveUpOut;
          animation-name: antMoveUpOut;
  -webkit-animation-play-state: running;
          animation-play-state: running;
  pointer-events: none;
}
.move-up-enter,
.move-up-appear {
  opacity: 0;
  -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
          animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
}
.move-up-leave {
  -webkit-animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);
          animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);
}
.move-down-enter,
.move-down-appear {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.move-down-leave {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.move-down-enter.move-down-enter-active,
.move-down-appear.move-down-appear-active {
  -webkit-animation-name: antMoveDownIn;
          animation-name: antMoveDownIn;
  -webkit-animation-play-state: running;
          animation-play-state: running;
}
.move-down-leave.move-down-leave-active {
  -webkit-animation-name: antMoveDownOut;
          animation-name: antMoveDownOut;
  -webkit-animation-play-state: running;
          animation-play-state: running;
  pointer-events: none;
}
.move-down-enter,
.move-down-appear {
  opacity: 0;
  -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
          animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
}
.move-down-leave {
  -webkit-animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);
          animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);
}
.move-left-enter,
.move-left-appear {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.move-left-leave {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.move-left-enter.move-left-enter-active,
.move-left-appear.move-left-appear-active {
  -webkit-animation-name: antMoveLeftIn;
          animation-name: antMoveLeftIn;
  -webkit-animation-play-state: running;
          animation-play-state: running;
}
.move-left-leave.move-left-leave-active {
  -webkit-animation-name: antMoveLeftOut;
          animation-name: antMoveLeftOut;
  -webkit-animation-play-state: running;
          animation-play-state: running;
  pointer-events: none;
}
.move-left-enter,
.move-left-appear {
  opacity: 0;
  -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
          animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
}
.move-left-leave {
  -webkit-animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);
          animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);
}
.move-right-enter,
.move-right-appear {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.move-right-leave {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.move-right-enter.move-right-enter-active,
.move-right-appear.move-right-appear-active {
  -webkit-animation-name: antMoveRightIn;
          animation-name: antMoveRightIn;
  -webkit-animation-play-state: running;
          animation-play-state: running;
}
.move-right-leave.move-right-leave-active {
  -webkit-animation-name: antMoveRightOut;
          animation-name: antMoveRightOut;
  -webkit-animation-play-state: running;
          animation-play-state: running;
  pointer-events: none;
}
.move-right-enter,
.move-right-appear {
  opacity: 0;
  -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
          animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
}
.move-right-leave {
  -webkit-animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);
          animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);
}
@-webkit-keyframes antMoveDownIn {
  0% {
    transform: translateY(100%);
    transform-origin: 0 0;
    opacity: 0;
  }
  100% {
    transform: translateY(0%);
    transform-origin: 0 0;
    opacity: 1;
  }
}
@keyframes antMoveDownIn {
  0% {
    transform: translateY(100%);
    transform-origin: 0 0;
    opacity: 0;
  }
  100% {
    transform: translateY(0%);
    transform-origin: 0 0;
    opacity: 1;
  }
}
@-webkit-keyframes antMoveDownOut {
  0% {
    transform: translateY(0%);
    transform-origin: 0 0;
    opacity: 1;
  }
  100% {
    transform: translateY(100%);
    transform-origin: 0 0;
    opacity: 0;
  }
}
@keyframes antMoveDownOut {
  0% {
    transform: translateY(0%);
    transform-origin: 0 0;
    opacity: 1;
  }
  100% {
    transform: translateY(100%);
    transform-origin: 0 0;
    opacity: 0;
  }
}
@-webkit-keyframes antMoveLeftIn {
  0% {
    transform: translateX(-100%);
    transform-origin: 0 0;
    opacity: 0;
  }
  100% {
    transform: translateX(0%);
    transform-origin: 0 0;
    opacity: 1;
  }
}
@keyframes antMoveLeftIn {
  0% {
    transform: translateX(-100%);
    transform-origin: 0 0;
    opacity: 0;
  }
  100% {
    transform: translateX(0%);
    transform-origin: 0 0;
    opacity: 1;
  }
}
@-webkit-keyframes antMoveLeftOut {
  0% {
    transform: translateX(0%);
    transform-origin: 0 0;
    opacity: 1;
  }
  100% {
    transform: translateX(-100%);
    transform-origin: 0 0;
    opacity: 0;
  }
}
@keyframes antMoveLeftOut {
  0% {
    transform: translateX(0%);
    transform-origin: 0 0;
    opacity: 1;
  }
  100% {
    transform: translateX(-100%);
    transform-origin: 0 0;
    opacity: 0;
  }
}
@-webkit-keyframes antMoveRightIn {
  0% {
    transform: translateX(100%);
    transform-origin: 0 0;
    opacity: 0;
  }
  100% {
    transform: translateX(0%);
    transform-origin: 0 0;
    opacity: 1;
  }
}
@keyframes antMoveRightIn {
  0% {
    transform: translateX(100%);
    transform-origin: 0 0;
    opacity: 0;
  }
  100% {
    transform: translateX(0%);
    transform-origin: 0 0;
    opacity: 1;
  }
}
@-webkit-keyframes antMoveRightOut {
  0% {
    transform: translateX(0%);
    transform-origin: 0 0;
    opacity: 1;
  }
  100% {
    transform: translateX(100%);
    transform-origin: 0 0;
    opacity: 0;
  }
}
@keyframes antMoveRightOut {
  0% {
    transform: translateX(0%);
    transform-origin: 0 0;
    opacity: 1;
  }
  100% {
    transform: translateX(100%);
    transform-origin: 0 0;
    opacity: 0;
  }
}
@-webkit-keyframes antMoveUpIn {
  0% {
    transform: translateY(-100%);
    transform-origin: 0 0;
    opacity: 0;
  }
  100% {
    transform: translateY(0%);
    transform-origin: 0 0;
    opacity: 1;
  }
}
@keyframes antMoveUpIn {
  0% {
    transform: translateY(-100%);
    transform-origin: 0 0;
    opacity: 0;
  }
  100% {
    transform: translateY(0%);
    transform-origin: 0 0;
    opacity: 1;
  }
}
@-webkit-keyframes antMoveUpOut {
  0% {
    transform: translateY(0%);
    transform-origin: 0 0;
    opacity: 1;
  }
  100% {
    transform: translateY(-100%);
    transform-origin: 0 0;
    opacity: 0;
  }
}
@keyframes antMoveUpOut {
  0% {
    transform: translateY(0%);
    transform-origin: 0 0;
    opacity: 1;
  }
  100% {
    transform: translateY(-100%);
    transform-origin: 0 0;
    opacity: 0;
  }
}
@-webkit-keyframes loadingCircle {
  100% {
    transform: rotate(360deg);
  }
}
@keyframes loadingCircle {
  100% {
    transform: rotate(360deg);
  }
}
[ant-click-animating='true'],
[ant-click-animating-without-extra-node='true'] {
  position: relative;
}
html {
  --antd-wave-shadow-color: #1890ff;
  --scroll-bar: 0;
}
[ant-click-animating-without-extra-node='true']::after,
.ant-click-animating-node {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: block;
  border-radius: inherit;
  box-shadow: 0 0 0 0 #1890ff;
  box-shadow: 0 0 0 0 var(--antd-wave-shadow-color);
  opacity: 0.2;
  -webkit-animation: fadeEffect 2s cubic-bezier(0.08, 0.82, 0.17, 1), waveEffect 0.4s cubic-bezier(0.08, 0.82, 0.17, 1);
          animation: fadeEffect 2s cubic-bezier(0.08, 0.82, 0.17, 1), waveEffect 0.4s cubic-bezier(0.08, 0.82, 0.17, 1);
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  content: '';
  pointer-events: none;
}
@-webkit-keyframes waveEffect {
  100% {
    box-shadow: 0 0 0 #1890ff;
    box-shadow: 0 0 0 6px var(--antd-wave-shadow-color);
  }
}
@keyframes waveEffect {
  100% {
    box-shadow: 0 0 0 #1890ff;
    box-shadow: 0 0 0 6px var(--antd-wave-shadow-color);
  }
}
@-webkit-keyframes fadeEffect {
  100% {
    opacity: 0;
  }
}
@keyframes fadeEffect {
  100% {
    opacity: 0;
  }
}
.slide-up-enter,
.slide-up-appear {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.slide-up-leave {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.slide-up-enter.slide-up-enter-active,
.slide-up-appear.slide-up-appear-active {
  -webkit-animation-name: antSlideUpIn;
          animation-name: antSlideUpIn;
  -webkit-animation-play-state: running;
          animation-play-state: running;
}
.slide-up-leave.slide-up-leave-active {
  -webkit-animation-name: antSlideUpOut;
          animation-name: antSlideUpOut;
  -webkit-animation-play-state: running;
          animation-play-state: running;
  pointer-events: none;
}
.slide-up-enter,
.slide-up-appear {
  opacity: 0;
  -webkit-animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);
          animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);
}
.slide-up-leave {
  -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
          animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
}
.slide-down-enter,
.slide-down-appear {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.slide-down-leave {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.slide-down-enter.slide-down-enter-active,
.slide-down-appear.slide-down-appear-active {
  -webkit-animation-name: antSlideDownIn;
          animation-name: antSlideDownIn;
  -webkit-animation-play-state: running;
          animation-play-state: running;
}
.slide-down-leave.slide-down-leave-active {
  -webkit-animation-name: antSlideDownOut;
          animation-name: antSlideDownOut;
  -webkit-animation-play-state: running;
          animation-play-state: running;
  pointer-events: none;
}
.slide-down-enter,
.slide-down-appear {
  opacity: 0;
  -webkit-animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);
          animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);
}
.slide-down-leave {
  -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
          animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
}
.slide-left-enter,
.slide-left-appear {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.slide-left-leave {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.slide-left-enter.slide-left-enter-active,
.slide-left-appear.slide-left-appear-active {
  -webkit-animation-name: antSlideLeftIn;
          animation-name: antSlideLeftIn;
  -webkit-animation-play-state: running;
          animation-play-state: running;
}
.slide-left-leave.slide-left-leave-active {
  -webkit-animation-name: antSlideLeftOut;
          animation-name: antSlideLeftOut;
  -webkit-animation-play-state: running;
          animation-play-state: running;
  pointer-events: none;
}
.slide-left-enter,
.slide-left-appear {
  opacity: 0;
  -webkit-animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);
          animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);
}
.slide-left-leave {
  -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
          animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
}
.slide-right-enter,
.slide-right-appear {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.slide-right-leave {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.slide-right-enter.slide-right-enter-active,
.slide-right-appear.slide-right-appear-active {
  -webkit-animation-name: antSlideRightIn;
          animation-name: antSlideRightIn;
  -webkit-animation-play-state: running;
          animation-play-state: running;
}
.slide-right-leave.slide-right-leave-active {
  -webkit-animation-name: antSlideRightOut;
          animation-name: antSlideRightOut;
  -webkit-animation-play-state: running;
          animation-play-state: running;
  pointer-events: none;
}
.slide-right-enter,
.slide-right-appear {
  opacity: 0;
  -webkit-animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);
          animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);
}
.slide-right-leave {
  -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
          animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
}
@-webkit-keyframes antSlideUpIn {
  0% {
    transform: scaleY(0.8);
    transform-origin: 0% 0%;
    opacity: 0;
  }
  100% {
    transform: scaleY(1);
    transform-origin: 0% 0%;
    opacity: 1;
  }
}
@keyframes antSlideUpIn {
  0% {
    transform: scaleY(0.8);
    transform-origin: 0% 0%;
    opacity: 0;
  }
  100% {
    transform: scaleY(1);
    transform-origin: 0% 0%;
    opacity: 1;
  }
}
@-webkit-keyframes antSlideUpOut {
  0% {
    transform: scaleY(1);
    transform-origin: 0% 0%;
    opacity: 1;
  }
  100% {
    transform: scaleY(0.8);
    transform-origin: 0% 0%;
    opacity: 0;
  }
}
@keyframes antSlideUpOut {
  0% {
    transform: scaleY(1);
    transform-origin: 0% 0%;
    opacity: 1;
  }
  100% {
    transform: scaleY(0.8);
    transform-origin: 0% 0%;
    opacity: 0;
  }
}
@-webkit-keyframes antSlideDownIn {
  0% {
    transform: scaleY(0.8);
    transform-origin: 100% 100%;
    opacity: 0;
  }
  100% {
    transform: scaleY(1);
    transform-origin: 100% 100%;
    opacity: 1;
  }
}
@keyframes antSlideDownIn {
  0% {
    transform: scaleY(0.8);
    transform-origin: 100% 100%;
    opacity: 0;
  }
  100% {
    transform: scaleY(1);
    transform-origin: 100% 100%;
    opacity: 1;
  }
}
@-webkit-keyframes antSlideDownOut {
  0% {
    transform: scaleY(1);
    transform-origin: 100% 100%;
    opacity: 1;
  }
  100% {
    transform: scaleY(0.8);
    transform-origin: 100% 100%;
    opacity: 0;
  }
}
@keyframes antSlideDownOut {
  0% {
    transform: scaleY(1);
    transform-origin: 100% 100%;
    opacity: 1;
  }
  100% {
    transform: scaleY(0.8);
    transform-origin: 100% 100%;
    opacity: 0;
  }
}
@-webkit-keyframes antSlideLeftIn {
  0% {
    transform: scaleX(0.8);
    transform-origin: 0% 0%;
    opacity: 0;
  }
  100% {
    transform: scaleX(1);
    transform-origin: 0% 0%;
    opacity: 1;
  }
}
@keyframes antSlideLeftIn {
  0% {
    transform: scaleX(0.8);
    transform-origin: 0% 0%;
    opacity: 0;
  }
  100% {
    transform: scaleX(1);
    transform-origin: 0% 0%;
    opacity: 1;
  }
}
@-webkit-keyframes antSlideLeftOut {
  0% {
    transform: scaleX(1);
    transform-origin: 0% 0%;
    opacity: 1;
  }
  100% {
    transform: scaleX(0.8);
    transform-origin: 0% 0%;
    opacity: 0;
  }
}
@keyframes antSlideLeftOut {
  0% {
    transform: scaleX(1);
    transform-origin: 0% 0%;
    opacity: 1;
  }
  100% {
    transform: scaleX(0.8);
    transform-origin: 0% 0%;
    opacity: 0;
  }
}
@-webkit-keyframes antSlideRightIn {
  0% {
    transform: scaleX(0.8);
    transform-origin: 100% 0%;
    opacity: 0;
  }
  100% {
    transform: scaleX(1);
    transform-origin: 100% 0%;
    opacity: 1;
  }
}
@keyframes antSlideRightIn {
  0% {
    transform: scaleX(0.8);
    transform-origin: 100% 0%;
    opacity: 0;
  }
  100% {
    transform: scaleX(1);
    transform-origin: 100% 0%;
    opacity: 1;
  }
}
@-webkit-keyframes antSlideRightOut {
  0% {
    transform: scaleX(1);
    transform-origin: 100% 0%;
    opacity: 1;
  }
  100% {
    transform: scaleX(0.8);
    transform-origin: 100% 0%;
    opacity: 0;
  }
}
@keyframes antSlideRightOut {
  0% {
    transform: scaleX(1);
    transform-origin: 100% 0%;
    opacity: 1;
  }
  100% {
    transform: scaleX(0.8);
    transform-origin: 100% 0%;
    opacity: 0;
  }
}
.zoom-enter,
.zoom-appear {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.zoom-leave {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.zoom-enter.zoom-enter-active,
.zoom-appear.zoom-appear-active {
  -webkit-animation-name: antZoomIn;
          animation-name: antZoomIn;
  -webkit-animation-play-state: running;
          animation-play-state: running;
}
.zoom-leave.zoom-leave-active {
  -webkit-animation-name: antZoomOut;
          animation-name: antZoomOut;
  -webkit-animation-play-state: running;
          animation-play-state: running;
  pointer-events: none;
}
.zoom-enter,
.zoom-appear {
  transform: scale(0);
  opacity: 0;
  -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
          animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
}
.zoom-enter-prepare,
.zoom-appear-prepare {
  transform: none;
}
.zoom-leave {
  -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);
          animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);
}
.zoom-big-enter,
.zoom-big-appear {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.zoom-big-leave {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.zoom-big-enter.zoom-big-enter-active,
.zoom-big-appear.zoom-big-appear-active {
  -webkit-animation-name: antZoomBigIn;
          animation-name: antZoomBigIn;
  -webkit-animation-play-state: running;
          animation-play-state: running;
}
.zoom-big-leave.zoom-big-leave-active {
  -webkit-animation-name: antZoomBigOut;
          animation-name: antZoomBigOut;
  -webkit-animation-play-state: running;
          animation-play-state: running;
  pointer-events: none;
}
.zoom-big-enter,
.zoom-big-appear {
  transform: scale(0);
  opacity: 0;
  -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
          animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
}
.zoom-big-enter-prepare,
.zoom-big-appear-prepare {
  transform: none;
}
.zoom-big-leave {
  -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);
          animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);
}
.zoom-big-fast-enter,
.zoom-big-fast-appear {
  -webkit-animation-duration: 0.1s;
          animation-duration: 0.1s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.zoom-big-fast-leave {
  -webkit-animation-duration: 0.1s;
          animation-duration: 0.1s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.zoom-big-fast-enter.zoom-big-fast-enter-active,
.zoom-big-fast-appear.zoom-big-fast-appear-active {
  -webkit-animation-name: antZoomBigIn;
          animation-name: antZoomBigIn;
  -webkit-animation-play-state: running;
          animation-play-state: running;
}
.zoom-big-fast-leave.zoom-big-fast-leave-active {
  -webkit-animation-name: antZoomBigOut;
          animation-name: antZoomBigOut;
  -webkit-animation-play-state: running;
          animation-play-state: running;
  pointer-events: none;
}
.zoom-big-fast-enter,
.zoom-big-fast-appear {
  transform: scale(0);
  opacity: 0;
  -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
          animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
}
.zoom-big-fast-enter-prepare,
.zoom-big-fast-appear-prepare {
  transform: none;
}
.zoom-big-fast-leave {
  -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);
          animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);
}
.zoom-up-enter,
.zoom-up-appear {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.zoom-up-leave {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.zoom-up-enter.zoom-up-enter-active,
.zoom-up-appear.zoom-up-appear-active {
  -webkit-animation-name: antZoomUpIn;
          animation-name: antZoomUpIn;
  -webkit-animation-play-state: running;
          animation-play-state: running;
}
.zoom-up-leave.zoom-up-leave-active {
  -webkit-animation-name: antZoomUpOut;
          animation-name: antZoomUpOut;
  -webkit-animation-play-state: running;
          animation-play-state: running;
  pointer-events: none;
}
.zoom-up-enter,
.zoom-up-appear {
  transform: scale(0);
  opacity: 0;
  -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
          animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
}
.zoom-up-enter-prepare,
.zoom-up-appear-prepare {
  transform: none;
}
.zoom-up-leave {
  -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);
          animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);
}
.zoom-down-enter,
.zoom-down-appear {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.zoom-down-leave {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.zoom-down-enter.zoom-down-enter-active,
.zoom-down-appear.zoom-down-appear-active {
  -webkit-animation-name: antZoomDownIn;
          animation-name: antZoomDownIn;
  -webkit-animation-play-state: running;
          animation-play-state: running;
}
.zoom-down-leave.zoom-down-leave-active {
  -webkit-animation-name: antZoomDownOut;
          animation-name: antZoomDownOut;
  -webkit-animation-play-state: running;
          animation-play-state: running;
  pointer-events: none;
}
.zoom-down-enter,
.zoom-down-appear {
  transform: scale(0);
  opacity: 0;
  -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
          animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
}
.zoom-down-enter-prepare,
.zoom-down-appear-prepare {
  transform: none;
}
.zoom-down-leave {
  -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);
          animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);
}
.zoom-left-enter,
.zoom-left-appear {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.zoom-left-leave {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.zoom-left-enter.zoom-left-enter-active,
.zoom-left-appear.zoom-left-appear-active {
  -webkit-animation-name: antZoomLeftIn;
          animation-name: antZoomLeftIn;
  -webkit-animation-play-state: running;
          animation-play-state: running;
}
.zoom-left-leave.zoom-left-leave-active {
  -webkit-animation-name: antZoomLeftOut;
          animation-name: antZoomLeftOut;
  -webkit-animation-play-state: running;
          animation-play-state: running;
  pointer-events: none;
}
.zoom-left-enter,
.zoom-left-appear {
  transform: scale(0);
  opacity: 0;
  -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
          animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
}
.zoom-left-enter-prepare,
.zoom-left-appear-prepare {
  transform: none;
}
.zoom-left-leave {
  -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);
          animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);
}
.zoom-right-enter,
.zoom-right-appear {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.zoom-right-leave {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.zoom-right-enter.zoom-right-enter-active,
.zoom-right-appear.zoom-right-appear-active {
  -webkit-animation-name: antZoomRightIn;
          animation-name: antZoomRightIn;
  -webkit-animation-play-state: running;
          animation-play-state: running;
}
.zoom-right-leave.zoom-right-leave-active {
  -webkit-animation-name: antZoomRightOut;
          animation-name: antZoomRightOut;
  -webkit-animation-play-state: running;
          animation-play-state: running;
  pointer-events: none;
}
.zoom-right-enter,
.zoom-right-appear {
  transform: scale(0);
  opacity: 0;
  -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
          animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
}
.zoom-right-enter-prepare,
.zoom-right-appear-prepare {
  transform: none;
}
.zoom-right-leave {
  -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);
          animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);
}
@-webkit-keyframes antZoomIn {
  0% {
    transform: scale(0.2);
    opacity: 0;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
@keyframes antZoomIn {
  0% {
    transform: scale(0.2);
    opacity: 0;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
@-webkit-keyframes antZoomOut {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(0.2);
    opacity: 0;
  }
}
@keyframes antZoomOut {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(0.2);
    opacity: 0;
  }
}
@-webkit-keyframes antZoomBigIn {
  0% {
    transform: scale(0.8);
    opacity: 0;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
@keyframes antZoomBigIn {
  0% {
    transform: scale(0.8);
    opacity: 0;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
@-webkit-keyframes antZoomBigOut {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(0.8);
    opacity: 0;
  }
}
@keyframes antZoomBigOut {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(0.8);
    opacity: 0;
  }
}
@-webkit-keyframes antZoomUpIn {
  0% {
    transform: scale(0.8);
    transform-origin: 50% 0%;
    opacity: 0;
  }
  100% {
    transform: scale(1);
    transform-origin: 50% 0%;
  }
}
@keyframes antZoomUpIn {
  0% {
    transform: scale(0.8);
    transform-origin: 50% 0%;
    opacity: 0;
  }
  100% {
    transform: scale(1);
    transform-origin: 50% 0%;
  }
}
@-webkit-keyframes antZoomUpOut {
  0% {
    transform: scale(1);
    transform-origin: 50% 0%;
  }
  100% {
    transform: scale(0.8);
    transform-origin: 50% 0%;
    opacity: 0;
  }
}
@keyframes antZoomUpOut {
  0% {
    transform: scale(1);
    transform-origin: 50% 0%;
  }
  100% {
    transform: scale(0.8);
    transform-origin: 50% 0%;
    opacity: 0;
  }
}
@-webkit-keyframes antZoomLeftIn {
  0% {
    transform: scale(0.8);
    transform-origin: 0% 50%;
    opacity: 0;
  }
  100% {
    transform: scale(1);
    transform-origin: 0% 50%;
  }
}
@keyframes antZoomLeftIn {
  0% {
    transform: scale(0.8);
    transform-origin: 0% 50%;
    opacity: 0;
  }
  100% {
    transform: scale(1);
    transform-origin: 0% 50%;
  }
}
@-webkit-keyframes antZoomLeftOut {
  0% {
    transform: scale(1);
    transform-origin: 0% 50%;
  }
  100% {
    transform: scale(0.8);
    transform-origin: 0% 50%;
    opacity: 0;
  }
}
@keyframes antZoomLeftOut {
  0% {
    transform: scale(1);
    transform-origin: 0% 50%;
  }
  100% {
    transform: scale(0.8);
    transform-origin: 0% 50%;
    opacity: 0;
  }
}
@-webkit-keyframes antZoomRightIn {
  0% {
    transform: scale(0.8);
    transform-origin: 100% 50%;
    opacity: 0;
  }
  100% {
    transform: scale(1);
    transform-origin: 100% 50%;
  }
}
@keyframes antZoomRightIn {
  0% {
    transform: scale(0.8);
    transform-origin: 100% 50%;
    opacity: 0;
  }
  100% {
    transform: scale(1);
    transform-origin: 100% 50%;
  }
}
@-webkit-keyframes antZoomRightOut {
  0% {
    transform: scale(1);
    transform-origin: 100% 50%;
  }
  100% {
    transform: scale(0.8);
    transform-origin: 100% 50%;
    opacity: 0;
  }
}
@keyframes antZoomRightOut {
  0% {
    transform: scale(1);
    transform-origin: 100% 50%;
  }
  100% {
    transform: scale(0.8);
    transform-origin: 100% 50%;
    opacity: 0;
  }
}
@-webkit-keyframes antZoomDownIn {
  0% {
    transform: scale(0.8);
    transform-origin: 50% 100%;
    opacity: 0;
  }
  100% {
    transform: scale(1);
    transform-origin: 50% 100%;
  }
}
@keyframes antZoomDownIn {
  0% {
    transform: scale(0.8);
    transform-origin: 50% 100%;
    opacity: 0;
  }
  100% {
    transform: scale(1);
    transform-origin: 50% 100%;
  }
}
@-webkit-keyframes antZoomDownOut {
  0% {
    transform: scale(1);
    transform-origin: 50% 100%;
  }
  100% {
    transform: scale(0.8);
    transform-origin: 50% 100%;
    opacity: 0;
  }
}
@keyframes antZoomDownOut {
  0% {
    transform: scale(1);
    transform-origin: 50% 100%;
  }
  100% {
    transform: scale(0.8);
    transform-origin: 50% 100%;
    opacity: 0;
  }
}
.ant-motion-collapse-legacy {
  overflow: hidden;
}
.ant-motion-collapse-legacy-active {
  transition: height 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) !important;
}
.ant-motion-collapse {
  overflow: hidden;
  transition: height 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) !important;
}
/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
/* stylelint-disable no-duplicate-selectors */
/* stylelint-disable */
/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
.cdk-overlay-container {
  pointer-events: none;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  position: fixed;
  z-index: 1000;
}
.cdk-visually-hidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  outline: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
}
.cdk-overlay-backdrop {
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  -webkit-tap-highlight-color: transparent;
  transition: opacity 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
  opacity: 0;
  position: absolute;
  pointer-events: auto;
  z-index: 1000;
}
.cdk-overlay-backdrop.ant-modal-mask {
  opacity: 1;
}
.cdk-overlay-pane {
  position: absolute;
  pointer-events: auto;
  z-index: 1000;
}
.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;
}
.cdk-global-scrollblock body {
  overflow-x: visible;
}
.nz-overlay-transparent-backdrop,
.nz-overlay-transparent-backdrop.cdk-overlay-backdrop-showing {
  opacity: 0;
}
.nz-animate-disabled.ant-drawer.ant-drawer-open .ant-drawer-mask {
  -webkit-animation: none;
          animation: none;
  transition: none;
}
.nz-animate-disabled.ant-drawer > * {
  transition: none;
}
.nz-animate-disabled .ant-modal-mask,
.nz-animate-disabled .ant-modal {
  -webkit-animation: none;
          animation: none;
  transition: none;
}
.nz-animate-disabled .ant-modal-mask.zoom-enter,
.nz-animate-disabled .ant-modal.zoom-enter,
.nz-animate-disabled .ant-modal-mask.zoom-leave,
.nz-animate-disabled .ant-modal.zoom-leave,
.nz-animate-disabled .ant-modal-mask.zoom-enter-active,
.nz-animate-disabled .ant-modal.zoom-enter-active,
.nz-animate-disabled .ant-modal-mask.zoom-leave-active,
.nz-animate-disabled .ant-modal.zoom-leave-active {
  -webkit-animation: none;
          animation: none;
  transition: none;
}
.nz-animate-disabled.ant-menu {
  transition: none;
}
.nz-animate-disabled.ant-menu .ant-menu-item,
.nz-animate-disabled.ant-menu .ant-menu-submenu-title {
  transition: none;
}
.nz-animate-disabled.ant-menu .ant-menu-item .anticon,
.nz-animate-disabled.ant-menu .ant-menu-submenu-title .anticon {
  transition: none;
}
.nz-animate-disabled.ant-menu .ant-menu-item .anticon + span,
.nz-animate-disabled.ant-menu .ant-menu-submenu-title .anticon + span {
  transition: none;
}
.nz-animate-disabled.ant-tabs .ant-tabs-top-content.ant-tabs-content-animated,
.nz-animate-disabled.ant-tabs .ant-tabs-bottom-content.ant-tabs-content-animated,
.nz-animate-disabled.ant-tabs .ant-tabs-top-content > .ant-tabs-tabpane,
.nz-animate-disabled.ant-tabs .ant-tabs-bottom-content > .ant-tabs-tabpane,
.nz-animate-disabled.ant-tabs.ant-tabs-left .ant-tabs-ink-bar-animated,
.nz-animate-disabled.ant-tabs.ant-tabs-right .ant-tabs-ink-bar-animated,
.nz-animate-disabled.ant-tabs.ant-tabs-top .ant-tabs-ink-bar-animated,
.nz-animate-disabled.ant-tabs.ant-tabs-bottom .ant-tabs-ink-bar-animated {
  transition: none;
}
.nz-animate-disabled.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow svg {
  transition: none;
}
.ant-btn {
  line-height: 1.5715;
  position: relative;
  display: inline-block;
  font-weight: 400;
  white-space: nowrap;
  text-align: center;
  background-image: none;
  border: 1px solid transparent;
  box-shadow: 0 2px 0 rgba(0, 0, 0, 0.015);
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  touch-action: manipulation;
  height: 32px;
  padding: 4px 15px;
  font-size: 14px;
  border-radius: 2px;
  color: rgba(0, 0, 0, 0.85);
  background: #fff;
  border-color: #d9d9d9;
}
.ant-btn > .anticon {
  line-height: 1;
}
.ant-btn,
.ant-btn:active,
.ant-btn:focus {
  outline: 0;
}
.ant-btn:not([disabled]):hover {
  text-decoration: none;
}
.ant-btn:not([disabled]):active {
  outline: 0;
  box-shadow: none;
}
.ant-btn[disabled] {
  cursor: not-allowed;
}
.ant-btn[disabled] > * {
  pointer-events: none;
}
.ant-btn-lg {
  height: 40px;
  padding: 6.4px 15px;
  font-size: 16px;
  border-radius: 2px;
}
.ant-btn-sm {
  height: 24px;
  padding: 0px 7px;
  font-size: 14px;
  border-radius: 2px;
}
.ant-btn > a:only-child {
  color: currentColor;
}
.ant-btn > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn:hover,
.ant-btn:focus {
  color: #40a9ff;
  background: #fff;
  border-color: #40a9ff;
}
.ant-btn:hover > a:only-child,
.ant-btn:focus > a:only-child {
  color: currentColor;
}
.ant-btn:hover > a:only-child::after,
.ant-btn:focus > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn:active {
  color: #096dd9;
  background: #fff;
  border-color: #096dd9;
}
.ant-btn:active > a:only-child {
  color: currentColor;
}
.ant-btn:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn[disabled],
.ant-btn[disabled]:hover,
.ant-btn[disabled]:focus,
.ant-btn[disabled]:active {
  color: rgba(0, 0, 0, 0.25);
  background: #f5f5f5;
  border-color: #d9d9d9;
  text-shadow: none;
  box-shadow: none;
}
.ant-btn[disabled] > a:only-child,
.ant-btn[disabled]:hover > a:only-child,
.ant-btn[disabled]:focus > a:only-child,
.ant-btn[disabled]:active > a:only-child {
  color: currentColor;
}
.ant-btn[disabled] > a:only-child::after,
.ant-btn[disabled]:hover > a:only-child::after,
.ant-btn[disabled]:focus > a:only-child::after,
.ant-btn[disabled]:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn:hover,
.ant-btn:focus,
.ant-btn:active {
  text-decoration: none;
  background: #fff;
}
.ant-btn > span {
  display: inline-block;
}
.ant-btn-primary {
  color: #fff;
  background: #1890ff;
  border-color: #1890ff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.12);
  box-shadow: 0 2px 0 rgba(0, 0, 0, 0.045);
}
.ant-btn-primary > a:only-child {
  color: currentColor;
}
.ant-btn-primary > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-primary:hover,
.ant-btn-primary:focus {
  color: #fff;
  background: #40a9ff;
  border-color: #40a9ff;
}
.ant-btn-primary:hover > a:only-child,
.ant-btn-primary:focus > a:only-child {
  color: currentColor;
}
.ant-btn-primary:hover > a:only-child::after,
.ant-btn-primary:focus > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-primary:active {
  color: #fff;
  background: #096dd9;
  border-color: #096dd9;
}
.ant-btn-primary:active > a:only-child {
  color: currentColor;
}
.ant-btn-primary:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-primary[disabled],
.ant-btn-primary[disabled]:hover,
.ant-btn-primary[disabled]:focus,
.ant-btn-primary[disabled]:active {
  color: rgba(0, 0, 0, 0.25);
  background: #f5f5f5;
  border-color: #d9d9d9;
  text-shadow: none;
  box-shadow: none;
}
.ant-btn-primary[disabled] > a:only-child,
.ant-btn-primary[disabled]:hover > a:only-child,
.ant-btn-primary[disabled]:focus > a:only-child,
.ant-btn-primary[disabled]:active > a:only-child {
  color: currentColor;
}
.ant-btn-primary[disabled] > a:only-child::after,
.ant-btn-primary[disabled]:hover > a:only-child::after,
.ant-btn-primary[disabled]:focus > a:only-child::after,
.ant-btn-primary[disabled]:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child) {
  border-right-color: #40a9ff;
  border-left-color: #40a9ff;
}
.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child):disabled {
  border-color: #d9d9d9;
}
.ant-btn-group .ant-btn-primary:first-child:not(:last-child) {
  border-right-color: #40a9ff;
}
.ant-btn-group .ant-btn-primary:first-child:not(:last-child)[disabled] {
  border-right-color: #d9d9d9;
}
.ant-btn-group .ant-btn-primary:last-child:not(:first-child),
.ant-btn-group .ant-btn-primary + .ant-btn-primary {
  border-left-color: #40a9ff;
}
.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled],
.ant-btn-group .ant-btn-primary + .ant-btn-primary[disabled] {
  border-left-color: #d9d9d9;
}
.ant-btn-ghost {
  color: rgba(0, 0, 0, 0.85);
  background: transparent;
  border-color: #d9d9d9;
}
.ant-btn-ghost > a:only-child {
  color: currentColor;
}
.ant-btn-ghost > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-ghost:hover,
.ant-btn-ghost:focus {
  color: #40a9ff;
  background: transparent;
  border-color: #40a9ff;
}
.ant-btn-ghost:hover > a:only-child,
.ant-btn-ghost:focus > a:only-child {
  color: currentColor;
}
.ant-btn-ghost:hover > a:only-child::after,
.ant-btn-ghost:focus > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-ghost:active {
  color: #096dd9;
  background: transparent;
  border-color: #096dd9;
}
.ant-btn-ghost:active > a:only-child {
  color: currentColor;
}
.ant-btn-ghost:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-ghost[disabled],
.ant-btn-ghost[disabled]:hover,
.ant-btn-ghost[disabled]:focus,
.ant-btn-ghost[disabled]:active {
  color: rgba(0, 0, 0, 0.25);
  background: #f5f5f5;
  border-color: #d9d9d9;
  text-shadow: none;
  box-shadow: none;
}
.ant-btn-ghost[disabled] > a:only-child,
.ant-btn-ghost[disabled]:hover > a:only-child,
.ant-btn-ghost[disabled]:focus > a:only-child,
.ant-btn-ghost[disabled]:active > a:only-child {
  color: currentColor;
}
.ant-btn-ghost[disabled] > a:only-child::after,
.ant-btn-ghost[disabled]:hover > a:only-child::after,
.ant-btn-ghost[disabled]:focus > a:only-child::after,
.ant-btn-ghost[disabled]:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-dashed {
  color: rgba(0, 0, 0, 0.85);
  background: #fff;
  border-color: #d9d9d9;
  border-style: dashed;
}
.ant-btn-dashed > a:only-child {
  color: currentColor;
}
.ant-btn-dashed > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-dashed:hover,
.ant-btn-dashed:focus {
  color: #40a9ff;
  background: #fff;
  border-color: #40a9ff;
}
.ant-btn-dashed:hover > a:only-child,
.ant-btn-dashed:focus > a:only-child {
  color: currentColor;
}
.ant-btn-dashed:hover > a:only-child::after,
.ant-btn-dashed:focus > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-dashed:active {
  color: #096dd9;
  background: #fff;
  border-color: #096dd9;
}
.ant-btn-dashed:active > a:only-child {
  color: currentColor;
}
.ant-btn-dashed:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-dashed[disabled],
.ant-btn-dashed[disabled]:hover,
.ant-btn-dashed[disabled]:focus,
.ant-btn-dashed[disabled]:active {
  color: rgba(0, 0, 0, 0.25);
  background: #f5f5f5;
  border-color: #d9d9d9;
  text-shadow: none;
  box-shadow: none;
}
.ant-btn-dashed[disabled] > a:only-child,
.ant-btn-dashed[disabled]:hover > a:only-child,
.ant-btn-dashed[disabled]:focus > a:only-child,
.ant-btn-dashed[disabled]:active > a:only-child {
  color: currentColor;
}
.ant-btn-dashed[disabled] > a:only-child::after,
.ant-btn-dashed[disabled]:hover > a:only-child::after,
.ant-btn-dashed[disabled]:focus > a:only-child::after,
.ant-btn-dashed[disabled]:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-danger {
  color: #fff;
  background: #ff4d4f;
  border-color: #ff4d4f;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.12);
  box-shadow: 0 2px 0 rgba(0, 0, 0, 0.045);
}
.ant-btn-danger > a:only-child {
  color: currentColor;
}
.ant-btn-danger > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-danger:hover,
.ant-btn-danger:focus {
  color: #fff;
  background: #ff7875;
  border-color: #ff7875;
}
.ant-btn-danger:hover > a:only-child,
.ant-btn-danger:focus > a:only-child {
  color: currentColor;
}
.ant-btn-danger:hover > a:only-child::after,
.ant-btn-danger:focus > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-danger:active {
  color: #fff;
  background: #d9363e;
  border-color: #d9363e;
}
.ant-btn-danger:active > a:only-child {
  color: currentColor;
}
.ant-btn-danger:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-danger[disabled],
.ant-btn-danger[disabled]:hover,
.ant-btn-danger[disabled]:focus,
.ant-btn-danger[disabled]:active {
  color: rgba(0, 0, 0, 0.25);
  background: #f5f5f5;
  border-color: #d9d9d9;
  text-shadow: none;
  box-shadow: none;
}
.ant-btn-danger[disabled] > a:only-child,
.ant-btn-danger[disabled]:hover > a:only-child,
.ant-btn-danger[disabled]:focus > a:only-child,
.ant-btn-danger[disabled]:active > a:only-child {
  color: currentColor;
}
.ant-btn-danger[disabled] > a:only-child::after,
.ant-btn-danger[disabled]:hover > a:only-child::after,
.ant-btn-danger[disabled]:focus > a:only-child::after,
.ant-btn-danger[disabled]:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-link {
  color: #1890ff;
  background: transparent;
  border-color: transparent;
  box-shadow: none;
}
.ant-btn-link > a:only-child {
  color: currentColor;
}
.ant-btn-link > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-link:hover,
.ant-btn-link:focus {
  color: #40a9ff;
  background: transparent;
  border-color: #40a9ff;
}
.ant-btn-link:hover > a:only-child,
.ant-btn-link:focus > a:only-child {
  color: currentColor;
}
.ant-btn-link:hover > a:only-child::after,
.ant-btn-link:focus > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-link:active {
  color: #096dd9;
  background: transparent;
  border-color: #096dd9;
}
.ant-btn-link:active > a:only-child {
  color: currentColor;
}
.ant-btn-link:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-link[disabled],
.ant-btn-link[disabled]:hover,
.ant-btn-link[disabled]:focus,
.ant-btn-link[disabled]:active {
  color: rgba(0, 0, 0, 0.25);
  background: #f5f5f5;
  border-color: #d9d9d9;
  text-shadow: none;
  box-shadow: none;
}
.ant-btn-link[disabled] > a:only-child,
.ant-btn-link[disabled]:hover > a:only-child,
.ant-btn-link[disabled]:focus > a:only-child,
.ant-btn-link[disabled]:active > a:only-child {
  color: currentColor;
}
.ant-btn-link[disabled] > a:only-child::after,
.ant-btn-link[disabled]:hover > a:only-child::after,
.ant-btn-link[disabled]:focus > a:only-child::after,
.ant-btn-link[disabled]:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-link:hover {
  background: transparent;
}
.ant-btn-link:hover,
.ant-btn-link:focus,
.ant-btn-link:active {
  border-color: transparent;
}
.ant-btn-link[disabled],
.ant-btn-link[disabled]:hover,
.ant-btn-link[disabled]:focus,
.ant-btn-link[disabled]:active {
  color: rgba(0, 0, 0, 0.25);
  background: transparent;
  border-color: transparent;
  text-shadow: none;
  box-shadow: none;
}
.ant-btn-link[disabled] > a:only-child,
.ant-btn-link[disabled]:hover > a:only-child,
.ant-btn-link[disabled]:focus > a:only-child,
.ant-btn-link[disabled]:active > a:only-child {
  color: currentColor;
}
.ant-btn-link[disabled] > a:only-child::after,
.ant-btn-link[disabled]:hover > a:only-child::after,
.ant-btn-link[disabled]:focus > a:only-child::after,
.ant-btn-link[disabled]:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-text {
  color: rgba(0, 0, 0, 0.85);
  background: transparent;
  border-color: transparent;
  box-shadow: none;
}
.ant-btn-text > a:only-child {
  color: currentColor;
}
.ant-btn-text > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-text:hover,
.ant-btn-text:focus {
  color: #40a9ff;
  background: transparent;
  border-color: #40a9ff;
}
.ant-btn-text:hover > a:only-child,
.ant-btn-text:focus > a:only-child {
  color: currentColor;
}
.ant-btn-text:hover > a:only-child::after,
.ant-btn-text:focus > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-text:active {
  color: #096dd9;
  background: transparent;
  border-color: #096dd9;
}
.ant-btn-text:active > a:only-child {
  color: currentColor;
}
.ant-btn-text:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-text[disabled],
.ant-btn-text[disabled]:hover,
.ant-btn-text[disabled]:focus,
.ant-btn-text[disabled]:active {
  color: rgba(0, 0, 0, 0.25);
  background: #f5f5f5;
  border-color: #d9d9d9;
  text-shadow: none;
  box-shadow: none;
}
.ant-btn-text[disabled] > a:only-child,
.ant-btn-text[disabled]:hover > a:only-child,
.ant-btn-text[disabled]:focus > a:only-child,
.ant-btn-text[disabled]:active > a:only-child {
  color: currentColor;
}
.ant-btn-text[disabled] > a:only-child::after,
.ant-btn-text[disabled]:hover > a:only-child::after,
.ant-btn-text[disabled]:focus > a:only-child::after,
.ant-btn-text[disabled]:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-text:hover,
.ant-btn-text:focus {
  color: rgba(0, 0, 0, 0.85);
  background: rgba(0, 0, 0, 0.018);
  border-color: transparent;
}
.ant-btn-text:active {
  color: rgba(0, 0, 0, 0.85);
  background: rgba(0, 0, 0, 0.028);
  border-color: transparent;
}
.ant-btn-text[disabled],
.ant-btn-text[disabled]:hover,
.ant-btn-text[disabled]:focus,
.ant-btn-text[disabled]:active {
  color: rgba(0, 0, 0, 0.25);
  background: transparent;
  border-color: transparent;
  text-shadow: none;
  box-shadow: none;
}
.ant-btn-text[disabled] > a:only-child,
.ant-btn-text[disabled]:hover > a:only-child,
.ant-btn-text[disabled]:focus > a:only-child,
.ant-btn-text[disabled]:active > a:only-child {
  color: currentColor;
}
.ant-btn-text[disabled] > a:only-child::after,
.ant-btn-text[disabled]:hover > a:only-child::after,
.ant-btn-text[disabled]:focus > a:only-child::after,
.ant-btn-text[disabled]:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-dangerous {
  color: #ff4d4f;
  background: #fff;
  border-color: #ff4d4f;
}
.ant-btn-dangerous > a:only-child {
  color: currentColor;
}
.ant-btn-dangerous > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-dangerous:hover,
.ant-btn-dangerous:focus {
  color: #ff7875;
  background: #fff;
  border-color: #ff7875;
}
.ant-btn-dangerous:hover > a:only-child,
.ant-btn-dangerous:focus > a:only-child {
  color: currentColor;
}
.ant-btn-dangerous:hover > a:only-child::after,
.ant-btn-dangerous:focus > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-dangerous:active {
  color: #d9363e;
  background: #fff;
  border-color: #d9363e;
}
.ant-btn-dangerous:active > a:only-child {
  color: currentColor;
}
.ant-btn-dangerous:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-dangerous[disabled],
.ant-btn-dangerous[disabled]:hover,
.ant-btn-dangerous[disabled]:focus,
.ant-btn-dangerous[disabled]:active {
  color: rgba(0, 0, 0, 0.25);
  background: #f5f5f5;
  border-color: #d9d9d9;
  text-shadow: none;
  box-shadow: none;
}
.ant-btn-dangerous[disabled] > a:only-child,
.ant-btn-dangerous[disabled]:hover > a:only-child,
.ant-btn-dangerous[disabled]:focus > a:only-child,
.ant-btn-dangerous[disabled]:active > a:only-child {
  color: currentColor;
}
.ant-btn-dangerous[disabled] > a:only-child::after,
.ant-btn-dangerous[disabled]:hover > a:only-child::after,
.ant-btn-dangerous[disabled]:focus > a:only-child::after,
.ant-btn-dangerous[disabled]:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-dangerous.ant-btn-primary {
  color: #fff;
  background: #ff4d4f;
  border-color: #ff4d4f;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.12);
  box-shadow: 0 2px 0 rgba(0, 0, 0, 0.045);
}
.ant-btn-dangerous.ant-btn-primary > a:only-child {
  color: currentColor;
}
.ant-btn-dangerous.ant-btn-primary > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-dangerous.ant-btn-primary:hover,
.ant-btn-dangerous.ant-btn-primary:focus {
  color: #fff;
  background: #ff7875;
  border-color: #ff7875;
}
.ant-btn-dangerous.ant-btn-primary:hover > a:only-child,
.ant-btn-dangerous.ant-btn-primary:focus > a:only-child {
  color: currentColor;
}
.ant-btn-dangerous.ant-btn-primary:hover > a:only-child::after,
.ant-btn-dangerous.ant-btn-primary:focus > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-dangerous.ant-btn-primary:active {
  color: #fff;
  background: #d9363e;
  border-color: #d9363e;
}
.ant-btn-dangerous.ant-btn-primary:active > a:only-child {
  color: currentColor;
}
.ant-btn-dangerous.ant-btn-primary:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-dangerous.ant-btn-primary[disabled],
.ant-btn-dangerous.ant-btn-primary[disabled]:hover,
.ant-btn-dangerous.ant-btn-primary[disabled]:focus,
.ant-btn-dangerous.ant-btn-primary[disabled]:active {
  color: rgba(0, 0, 0, 0.25);
  background: #f5f5f5;
  border-color: #d9d9d9;
  text-shadow: none;
  box-shadow: none;
}
.ant-btn-dangerous.ant-btn-primary[disabled] > a:only-child,
.ant-btn-dangerous.ant-btn-primary[disabled]:hover > a:only-child,
.ant-btn-dangerous.ant-btn-primary[disabled]:focus > a:only-child,
.ant-btn-dangerous.ant-btn-primary[disabled]:active > a:only-child {
  color: currentColor;
}
.ant-btn-dangerous.ant-btn-primary[disabled] > a:only-child::after,
.ant-btn-dangerous.ant-btn-primary[disabled]:hover > a:only-child::after,
.ant-btn-dangerous.ant-btn-primary[disabled]:focus > a:only-child::after,
.ant-btn-dangerous.ant-btn-primary[disabled]:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-dangerous.ant-btn-link {
  color: #ff4d4f;
  background: transparent;
  border-color: transparent;
  box-shadow: none;
}
.ant-btn-dangerous.ant-btn-link > a:only-child {
  color: currentColor;
}
.ant-btn-dangerous.ant-btn-link > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-dangerous.ant-btn-link:hover,
.ant-btn-dangerous.ant-btn-link:focus {
  color: #40a9ff;
  background: transparent;
  border-color: #40a9ff;
}
.ant-btn-dangerous.ant-btn-link:hover > a:only-child,
.ant-btn-dangerous.ant-btn-link:focus > a:only-child {
  color: currentColor;
}
.ant-btn-dangerous.ant-btn-link:hover > a:only-child::after,
.ant-btn-dangerous.ant-btn-link:focus > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-dangerous.ant-btn-link:active {
  color: #096dd9;
  background: transparent;
  border-color: #096dd9;
}
.ant-btn-dangerous.ant-btn-link:active > a:only-child {
  color: currentColor;
}
.ant-btn-dangerous.ant-btn-link:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-dangerous.ant-btn-link[disabled],
.ant-btn-dangerous.ant-btn-link[disabled]:hover,
.ant-btn-dangerous.ant-btn-link[disabled]:focus,
.ant-btn-dangerous.ant-btn-link[disabled]:active {
  color: rgba(0, 0, 0, 0.25);
  background: #f5f5f5;
  border-color: #d9d9d9;
  text-shadow: none;
  box-shadow: none;
}
.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child,
.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child,
.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child,
.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child {
  color: currentColor;
}
.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child::after,
.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child::after,
.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child::after,
.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-dangerous.ant-btn-link:hover,
.ant-btn-dangerous.ant-btn-link:focus {
  color: #ff7875;
  background: transparent;
  border-color: transparent;
}
.ant-btn-dangerous.ant-btn-link:hover > a:only-child,
.ant-btn-dangerous.ant-btn-link:focus > a:only-child {
  color: currentColor;
}
.ant-btn-dangerous.ant-btn-link:hover > a:only-child::after,
.ant-btn-dangerous.ant-btn-link:focus > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-dangerous.ant-btn-link:active {
  color: #d9363e;
  background: transparent;
  border-color: transparent;
}
.ant-btn-dangerous.ant-btn-link:active > a:only-child {
  color: currentColor;
}
.ant-btn-dangerous.ant-btn-link:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-dangerous.ant-btn-link[disabled],
.ant-btn-dangerous.ant-btn-link[disabled]:hover,
.ant-btn-dangerous.ant-btn-link[disabled]:focus,
.ant-btn-dangerous.ant-btn-link[disabled]:active {
  color: rgba(0, 0, 0, 0.25);
  background: transparent;
  border-color: transparent;
  text-shadow: none;
  box-shadow: none;
}
.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child,
.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child,
.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child,
.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child {
  color: currentColor;
}
.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child::after,
.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child::after,
.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child::after,
.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-dangerous.ant-btn-text {
  color: #ff4d4f;
  background: transparent;
  border-color: transparent;
  box-shadow: none;
}
.ant-btn-dangerous.ant-btn-text > a:only-child {
  color: currentColor;
}
.ant-btn-dangerous.ant-btn-text > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-dangerous.ant-btn-text:hover,
.ant-btn-dangerous.ant-btn-text:focus {
  color: #40a9ff;
  background: transparent;
  border-color: #40a9ff;
}
.ant-btn-dangerous.ant-btn-text:hover > a:only-child,
.ant-btn-dangerous.ant-btn-text:focus > a:only-child {
  color: currentColor;
}
.ant-btn-dangerous.ant-btn-text:hover > a:only-child::after,
.ant-btn-dangerous.ant-btn-text:focus > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-dangerous.ant-btn-text:active {
  color: #096dd9;
  background: transparent;
  border-color: #096dd9;
}
.ant-btn-dangerous.ant-btn-text:active > a:only-child {
  color: currentColor;
}
.ant-btn-dangerous.ant-btn-text:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-dangerous.ant-btn-text[disabled],
.ant-btn-dangerous.ant-btn-text[disabled]:hover,
.ant-btn-dangerous.ant-btn-text[disabled]:focus,
.ant-btn-dangerous.ant-btn-text[disabled]:active {
  color: rgba(0, 0, 0, 0.25);
  background: #f5f5f5;
  border-color: #d9d9d9;
  text-shadow: none;
  box-shadow: none;
}
.ant-btn-dangerous.ant-btn-text[disabled] > a:only-child,
.ant-btn-dangerous.ant-btn-text[disabled]:hover > a:only-child,
.ant-btn-dangerous.ant-btn-text[disabled]:focus > a:only-child,
.ant-btn-dangerous.ant-btn-text[disabled]:active > a:only-child {
  color: currentColor;
}
.ant-btn-dangerous.ant-btn-text[disabled] > a:only-child::after,
.ant-btn-dangerous.ant-btn-text[disabled]:hover > a:only-child::after,
.ant-btn-dangerous.ant-btn-text[disabled]:focus > a:only-child::after,
.ant-btn-dangerous.ant-btn-text[disabled]:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-dangerous.ant-btn-text:hover,
.ant-btn-dangerous.ant-btn-text:focus {
  color: #ff7875;
  background: rgba(0, 0, 0, 0.018);
  border-color: transparent;
}
.ant-btn-dangerous.ant-btn-text:hover > a:only-child,
.ant-btn-dangerous.ant-btn-text:focus > a:only-child {
  color: currentColor;
}
.ant-btn-dangerous.ant-btn-text:hover > a:only-child::after,
.ant-btn-dangerous.ant-btn-text:focus > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-dangerous.ant-btn-text:active {
  color: #d9363e;
  background: rgba(0, 0, 0, 0.028);
  border-color: transparent;
}
.ant-btn-dangerous.ant-btn-text:active > a:only-child {
  color: currentColor;
}
.ant-btn-dangerous.ant-btn-text:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-dangerous.ant-btn-text[disabled],
.ant-btn-dangerous.ant-btn-text[disabled]:hover,
.ant-btn-dangerous.ant-btn-text[disabled]:focus,
.ant-btn-dangerous.ant-btn-text[disabled]:active {
  color: rgba(0, 0, 0, 0.25);
  background: transparent;
  border-color: transparent;
  text-shadow: none;
  box-shadow: none;
}
.ant-btn-dangerous.ant-btn-text[disabled] > a:only-child,
.ant-btn-dangerous.ant-btn-text[disabled]:hover > a:only-child,
.ant-btn-dangerous.ant-btn-text[disabled]:focus > a:only-child,
.ant-btn-dangerous.ant-btn-text[disabled]:active > a:only-child {
  color: currentColor;
}
.ant-btn-dangerous.ant-btn-text[disabled] > a:only-child::after,
.ant-btn-dangerous.ant-btn-text[disabled]:hover > a:only-child::after,
.ant-btn-dangerous.ant-btn-text[disabled]:focus > a:only-child::after,
.ant-btn-dangerous.ant-btn-text[disabled]:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-icon-only {
  width: 32px;
  height: 32px;
  padding: 2.4px 0;
  font-size: 16px;
  border-radius: 2px;
  vertical-align: -1px;
}
.ant-btn-icon-only > * {
  font-size: 16px;
}
.ant-btn-icon-only.ant-btn-lg {
  width: 40px;
  height: 40px;
  padding: 4.9px 0;
  font-size: 18px;
  border-radius: 2px;
}
.ant-btn-icon-only.ant-btn-lg > * {
  font-size: 18px;
}
.ant-btn-icon-only.ant-btn-sm {
  width: 24px;
  height: 24px;
  padding: 0px 0;
  font-size: 14px;
  border-radius: 2px;
}
.ant-btn-icon-only.ant-btn-sm > * {
  font-size: 14px;
}
.ant-btn-round {
  height: 32px;
  padding: 4px 16px;
  font-size: 14px;
  border-radius: 32px;
}
.ant-btn-round.ant-btn-lg {
  height: 40px;
  padding: 6.4px 20px;
  font-size: 16px;
  border-radius: 40px;
}
.ant-btn-round.ant-btn-sm {
  height: 24px;
  padding: 0px 12px;
  font-size: 14px;
  border-radius: 24px;
}
.ant-btn-round.ant-btn-icon-only {
  width: auto;
}
.ant-btn-circle {
  min-width: 32px;
  padding-right: 0;
  padding-left: 0;
  text-align: center;
  border-radius: 50%;
}
.ant-btn-circle.ant-btn-lg {
  min-width: 40px;
  border-radius: 50%;
}
.ant-btn-circle.ant-btn-sm {
  min-width: 24px;
  border-radius: 50%;
}
.ant-btn::before {
  position: absolute;
  top: -1px;
  right: -1px;
  bottom: -1px;
  left: -1px;
  z-index: 1;
  display: none;
  background: #fff;
  border-radius: inherit;
  opacity: 0.35;
  transition: opacity 0.2s;
  content: '';
  pointer-events: none;
}
.ant-btn .anticon {
  transition: margin-left 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
}
.ant-btn .anticon.anticon-plus > svg,
.ant-btn .anticon.anticon-minus > svg {
  shape-rendering: optimizeSpeed;
}
.ant-btn.ant-btn-loading {
  position: relative;
}
.ant-btn.ant-btn-loading:not([disabled]) {
  pointer-events: none;
}
.ant-btn.ant-btn-loading::before {
  display: block;
}
.ant-btn > .ant-btn-loading-icon {
  transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
}
.ant-btn > .ant-btn-loading-icon .anticon {
  padding-right: 8px;
  -webkit-animation: none;
          animation: none;
}
.ant-btn > .ant-btn-loading-icon .anticon svg {
  -webkit-animation: loadingCircle 1s infinite linear;
          animation: loadingCircle 1s infinite linear;
}
.ant-btn > .ant-btn-loading-icon:only-child .anticon {
  padding-right: 0;
}
.ant-btn-group {
  position: relative;
  display: inline-flex;
}
.ant-btn-group > .ant-btn,
.ant-btn-group > span > .ant-btn {
  position: relative;
}
.ant-btn-group > .ant-btn:hover,
.ant-btn-group > span > .ant-btn:hover,
.ant-btn-group > .ant-btn:focus,
.ant-btn-group > span > .ant-btn:focus,
.ant-btn-group > .ant-btn:active,
.ant-btn-group > span > .ant-btn:active {
  z-index: 2;
}
.ant-btn-group > .ant-btn[disabled],
.ant-btn-group > span > .ant-btn[disabled] {
  z-index: 0;
}
.ant-btn-group .ant-btn-icon-only {
  font-size: 14px;
}
.ant-btn-group-lg > .ant-btn,
.ant-btn-group-lg > span > .ant-btn {
  height: 40px;
  padding: 6.4px 15px;
  font-size: 16px;
  border-radius: 0;
}
.ant-btn-group-lg .ant-btn.ant-btn-icon-only {
  width: 40px;
  height: 40px;
  padding-right: 0;
  padding-left: 0;
}
.ant-btn-group-sm > .ant-btn,
.ant-btn-group-sm > span > .ant-btn {
  height: 24px;
  padding: 0px 7px;
  font-size: 14px;
  border-radius: 0;
}
.ant-btn-group-sm > .ant-btn > .anticon,
.ant-btn-group-sm > span > .ant-btn > .anticon {
  font-size: 14px;
}
.ant-btn-group-sm .ant-btn.ant-btn-icon-only {
  width: 24px;
  height: 24px;
  padding-right: 0;
  padding-left: 0;
}
.ant-btn-group .ant-btn + .ant-btn,
.ant-btn + .ant-btn-group,
.ant-btn-group span + .ant-btn,
.ant-btn-group .ant-btn + span,
.ant-btn-group > span + span,
.ant-btn-group + .ant-btn,
.ant-btn-group + .ant-btn-group {
  margin-left: -1px;
}
.ant-btn-group .ant-btn-primary + .ant-btn:not(.ant-btn-primary):not([disabled]) {
  border-left-color: transparent;
}
.ant-btn-group .ant-btn {
  border-radius: 0;
}
.ant-btn-group > .ant-btn:first-child,
.ant-btn-group > span:first-child > .ant-btn {
  margin-left: 0;
}
.ant-btn-group > .ant-btn:only-child {
  border-radius: 2px;
}
.ant-btn-group > span:only-child > .ant-btn {
  border-radius: 2px;
}
.ant-btn-group > .ant-btn:first-child:not(:last-child),
.ant-btn-group > span:first-child:not(:last-child) > .ant-btn {
  border-top-left-radius: 2px;
  border-bottom-left-radius: 2px;
}
.ant-btn-group > .ant-btn:last-child:not(:first-child),
.ant-btn-group > span:last-child:not(:first-child) > .ant-btn {
  border-top-right-radius: 2px;
  border-bottom-right-radius: 2px;
}
.ant-btn-group-sm > .ant-btn:only-child {
  border-radius: 2px;
}
.ant-btn-group-sm > span:only-child > .ant-btn {
  border-radius: 2px;
}
.ant-btn-group-sm > .ant-btn:first-child:not(:last-child),
.ant-btn-group-sm > span:first-child:not(:last-child) > .ant-btn {
  border-top-left-radius: 2px;
  border-bottom-left-radius: 2px;
}
.ant-btn-group-sm > .ant-btn:last-child:not(:first-child),
.ant-btn-group-sm > span:last-child:not(:first-child) > .ant-btn {
  border-top-right-radius: 2px;
  border-bottom-right-radius: 2px;
}
.ant-btn-group > .ant-btn-group {
  float: left;
}
.ant-btn-group > .ant-btn-group:not(:first-child):not(:last-child) > .ant-btn {
  border-radius: 0;
}
.ant-btn-group > .ant-btn-group:first-child:not(:last-child) > .ant-btn:last-child {
  padding-right: 8px;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.ant-btn-group > .ant-btn-group:last-child:not(:first-child) > .ant-btn:first-child {
  padding-left: 8px;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.ant-btn-rtl.ant-btn-group .ant-btn + .ant-btn,
.ant-btn-rtl.ant-btn + .ant-btn-group,
.ant-btn-rtl.ant-btn-group span + .ant-btn,
.ant-btn-rtl.ant-btn-group .ant-btn + span,
.ant-btn-rtl.ant-btn-group > span + span,
.ant-btn-rtl.ant-btn-group + .ant-btn,
.ant-btn-rtl.ant-btn-group + .ant-btn-group,
.ant-btn-group-rtl.ant-btn-group .ant-btn + .ant-btn,
.ant-btn-group-rtl.ant-btn + .ant-btn-group,
.ant-btn-group-rtl.ant-btn-group span + .ant-btn,
.ant-btn-group-rtl.ant-btn-group .ant-btn + span,
.ant-btn-group-rtl.ant-btn-group > span + span,
.ant-btn-group-rtl.ant-btn-group + .ant-btn,
.ant-btn-group-rtl.ant-btn-group + .ant-btn-group {
  margin-right: -1px;
  margin-left: auto;
}
.ant-btn-group.ant-btn-group-rtl {
  direction: rtl;
}
.ant-btn-group-rtl.ant-btn-group > .ant-btn:first-child:not(:last-child),
.ant-btn-group-rtl.ant-btn-group > span:first-child:not(:last-child) > .ant-btn {
  border-top-left-radius: 0;
  border-top-right-radius: 2px;
  border-bottom-right-radius: 2px;
  border-bottom-left-radius: 0;
}
.ant-btn-group-rtl.ant-btn-group > .ant-btn:last-child:not(:first-child),
.ant-btn-group-rtl.ant-btn-group > span:last-child:not(:first-child) > .ant-btn {
  border-top-left-radius: 2px;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 2px;
}
.ant-btn-group-rtl.ant-btn-group-sm > .ant-btn:first-child:not(:last-child),
.ant-btn-group-rtl.ant-btn-group-sm > span:first-child:not(:last-child) > .ant-btn {
  border-top-left-radius: 0;
  border-top-right-radius: 2px;
  border-bottom-right-radius: 2px;
  border-bottom-left-radius: 0;
}
.ant-btn-group-rtl.ant-btn-group-sm > .ant-btn:last-child:not(:first-child),
.ant-btn-group-rtl.ant-btn-group-sm > span:last-child:not(:first-child) > .ant-btn {
  border-top-left-radius: 2px;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 2px;
}
.ant-btn:focus > span,
.ant-btn:active > span {
  position: relative;
}
.ant-btn > .anticon + span,
.ant-btn > span + .anticon {
  margin-left: 8px;
}
.ant-btn-background-ghost {
  color: #fff;
  background: transparent !important;
  border-color: #fff;
}
.ant-btn-background-ghost.ant-btn-primary {
  color: #1890ff;
  background: transparent;
  border-color: #1890ff;
  text-shadow: none;
}
.ant-btn-background-ghost.ant-btn-primary > a:only-child {
  color: currentColor;
}
.ant-btn-background-ghost.ant-btn-primary > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-background-ghost.ant-btn-primary:hover,
.ant-btn-background-ghost.ant-btn-primary:focus {
  color: #40a9ff;
  background: transparent;
  border-color: #40a9ff;
}
.ant-btn-background-ghost.ant-btn-primary:hover > a:only-child,
.ant-btn-background-ghost.ant-btn-primary:focus > a:only-child {
  color: currentColor;
}
.ant-btn-background-ghost.ant-btn-primary:hover > a:only-child::after,
.ant-btn-background-ghost.ant-btn-primary:focus > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-background-ghost.ant-btn-primary:active {
  color: #096dd9;
  background: transparent;
  border-color: #096dd9;
}
.ant-btn-background-ghost.ant-btn-primary:active > a:only-child {
  color: currentColor;
}
.ant-btn-background-ghost.ant-btn-primary:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-background-ghost.ant-btn-primary[disabled],
.ant-btn-background-ghost.ant-btn-primary[disabled]:hover,
.ant-btn-background-ghost.ant-btn-primary[disabled]:focus,
.ant-btn-background-ghost.ant-btn-primary[disabled]:active {
  color: rgba(0, 0, 0, 0.25);
  background: #f5f5f5;
  border-color: #d9d9d9;
  text-shadow: none;
  box-shadow: none;
}
.ant-btn-background-ghost.ant-btn-primary[disabled] > a:only-child,
.ant-btn-background-ghost.ant-btn-primary[disabled]:hover > a:only-child,
.ant-btn-background-ghost.ant-btn-primary[disabled]:focus > a:only-child,
.ant-btn-background-ghost.ant-btn-primary[disabled]:active > a:only-child {
  color: currentColor;
}
.ant-btn-background-ghost.ant-btn-primary[disabled] > a:only-child::after,
.ant-btn-background-ghost.ant-btn-primary[disabled]:hover > a:only-child::after,
.ant-btn-background-ghost.ant-btn-primary[disabled]:focus > a:only-child::after,
.ant-btn-background-ghost.ant-btn-primary[disabled]:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-background-ghost.ant-btn-danger {
  color: #ff4d4f;
  background: transparent;
  border-color: #ff4d4f;
  text-shadow: none;
}
.ant-btn-background-ghost.ant-btn-danger > a:only-child {
  color: currentColor;
}
.ant-btn-background-ghost.ant-btn-danger > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-background-ghost.ant-btn-danger:hover,
.ant-btn-background-ghost.ant-btn-danger:focus {
  color: #ff7875;
  background: transparent;
  border-color: #ff7875;
}
.ant-btn-background-ghost.ant-btn-danger:hover > a:only-child,
.ant-btn-background-ghost.ant-btn-danger:focus > a:only-child {
  color: currentColor;
}
.ant-btn-background-ghost.ant-btn-danger:hover > a:only-child::after,
.ant-btn-background-ghost.ant-btn-danger:focus > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-background-ghost.ant-btn-danger:active {
  color: #d9363e;
  background: transparent;
  border-color: #d9363e;
}
.ant-btn-background-ghost.ant-btn-danger:active > a:only-child {
  color: currentColor;
}
.ant-btn-background-ghost.ant-btn-danger:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-background-ghost.ant-btn-danger[disabled],
.ant-btn-background-ghost.ant-btn-danger[disabled]:hover,
.ant-btn-background-ghost.ant-btn-danger[disabled]:focus,
.ant-btn-background-ghost.ant-btn-danger[disabled]:active {
  color: rgba(0, 0, 0, 0.25);
  background: #f5f5f5;
  border-color: #d9d9d9;
  text-shadow: none;
  box-shadow: none;
}
.ant-btn-background-ghost.ant-btn-danger[disabled] > a:only-child,
.ant-btn-background-ghost.ant-btn-danger[disabled]:hover > a:only-child,
.ant-btn-background-ghost.ant-btn-danger[disabled]:focus > a:only-child,
.ant-btn-background-ghost.ant-btn-danger[disabled]:active > a:only-child {
  color: currentColor;
}
.ant-btn-background-ghost.ant-btn-danger[disabled] > a:only-child::after,
.ant-btn-background-ghost.ant-btn-danger[disabled]:hover > a:only-child::after,
.ant-btn-background-ghost.ant-btn-danger[disabled]:focus > a:only-child::after,
.ant-btn-background-ghost.ant-btn-danger[disabled]:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-background-ghost.ant-btn-dangerous {
  color: #ff4d4f;
  background: transparent;
  border-color: #ff4d4f;
  text-shadow: none;
}
.ant-btn-background-ghost.ant-btn-dangerous > a:only-child {
  color: currentColor;
}
.ant-btn-background-ghost.ant-btn-dangerous > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-background-ghost.ant-btn-dangerous:hover,
.ant-btn-background-ghost.ant-btn-dangerous:focus {
  color: #ff7875;
  background: transparent;
  border-color: #ff7875;
}
.ant-btn-background-ghost.ant-btn-dangerous:hover > a:only-child,
.ant-btn-background-ghost.ant-btn-dangerous:focus > a:only-child {
  color: currentColor;
}
.ant-btn-background-ghost.ant-btn-dangerous:hover > a:only-child::after,
.ant-btn-background-ghost.ant-btn-dangerous:focus > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-background-ghost.ant-btn-dangerous:active {
  color: #d9363e;
  background: transparent;
  border-color: #d9363e;
}
.ant-btn-background-ghost.ant-btn-dangerous:active > a:only-child {
  color: currentColor;
}
.ant-btn-background-ghost.ant-btn-dangerous:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-background-ghost.ant-btn-dangerous[disabled],
.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover,
.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus,
.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active {
  color: rgba(0, 0, 0, 0.25);
  background: #f5f5f5;
  border-color: #d9d9d9;
  text-shadow: none;
  box-shadow: none;
}
.ant-btn-background-ghost.ant-btn-dangerous[disabled] > a:only-child,
.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover > a:only-child,
.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus > a:only-child,
.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active > a:only-child {
  color: currentColor;
}
.ant-btn-background-ghost.ant-btn-dangerous[disabled] > a:only-child::after,
.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover > a:only-child::after,
.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus > a:only-child::after,
.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link {
  color: #ff4d4f;
  background: transparent;
  border-color: transparent;
  text-shadow: none;
}
.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link > a:only-child {
  color: currentColor;
}
.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover,
.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus {
  color: #ff7875;
  background: transparent;
  border-color: transparent;
}
.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover > a:only-child,
.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus > a:only-child {
  color: currentColor;
}
.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover > a:only-child::after,
.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active {
  color: #d9363e;
  background: transparent;
  border-color: transparent;
}
.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active > a:only-child {
  color: currentColor;
}
.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled],
.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover,
.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus,
.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active {
  color: rgba(0, 0, 0, 0.25);
  background: #f5f5f5;
  border-color: #d9d9d9;
  text-shadow: none;
  box-shadow: none;
}
.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child,
.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child,
.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child,
.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child {
  color: currentColor;
}
.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child::after,
.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child::after,
.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child::after,
.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: transparent;
  content: '';
}
.ant-btn-two-chinese-chars::first-letter {
  letter-spacing: 0.34em;
}
.ant-btn-two-chinese-chars > *:not(.anticon) {
  margin-right: -0.34em;
  letter-spacing: 0.34em;
}
.ant-btn-block {
  width: 100%;
}
.ant-btn:empty {
  display: inline-block;
  width: 0;
  visibility: hidden;
  content: '\a0';
}
a.ant-btn {
  padding-top: 0.1px;
  line-height: 30px;
}
a.ant-btn-lg {
  line-height: 38px;
}
a.ant-btn-sm {
  line-height: 22px;
}
.ant-btn-rtl {
  direction: rtl;
}
.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child),
.ant-btn-group-rtl.ant-btn-group .ant-btn-primary + .ant-btn-primary {
  border-right-color: #40a9ff;
  border-left-color: #d9d9d9;
}
.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled],
.ant-btn-group-rtl.ant-btn-group .ant-btn-primary + .ant-btn-primary[disabled] {
  border-right-color: #d9d9d9;
  border-left-color: #40a9ff;
}
.ant-btn-rtl.ant-btn > .ant-btn-loading-icon .anticon {
  padding-right: 0;
  padding-left: 8px;
}
.ant-btn > .ant-btn-loading-icon:only-child .anticon {
  padding-right: 0;
  padding-left: 0;
}
.ant-btn-rtl.ant-btn > .anticon + span,
.ant-btn-rtl.ant-btn > span + .anticon {
  margin-right: 8px;
  margin-left: 0;
}
.ant-spin {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-variant: tabular-nums;
  line-height: 1.5715;
  list-style: none;
  font-feature-settings: 'tnum';
  position: absolute;
  display: none;
  color: #1890ff;
  text-align: center;
  vertical-align: middle;
  opacity: 0;
  transition: transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
}
.ant-spin-spinning {
  position: static;
  display: inline-block;
  opacity: 1;
}
.ant-spin-nested-loading {
  position: relative;
}
.ant-spin-nested-loading > div > .ant-spin {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 4;
  display: block;
  width: 100%;
  height: 100%;
  max-height: 400px;
}
.ant-spin-nested-loading > div > .ant-spin .ant-spin-dot {
  position: absolute;
  top: 50%;
  left: 50%;
  margin: -10px;
}
.ant-spin-nested-loading > div > .ant-spin .ant-spin-text {
  position: absolute;
  top: 50%;
  width: 100%;
  padding-top: 5px;
  text-shadow: 0 1px 2px #fff;
}
.ant-spin-nested-loading > div > .ant-spin.ant-spin-show-text .ant-spin-dot {
  margin-top: -20px;
}
.ant-spin-nested-loading > div > .ant-spin-sm .ant-spin-dot {
  margin: -7px;
}
.ant-spin-nested-loading > div > .ant-spin-sm .ant-spin-text {
  padding-top: 2px;
}
.ant-spin-nested-loading > div > .ant-spin-sm.ant-spin-show-text .ant-spin-dot {
  margin-top: -17px;
}
.ant-spin-nested-loading > div > .ant-spin-lg .ant-spin-dot {
  margin: -16px;
}
.ant-spin-nested-loading > div > .ant-spin-lg .ant-spin-text {
  padding-top: 11px;
}
.ant-spin-nested-loading > div > .ant-spin-lg.ant-spin-show-text .ant-spin-dot {
  margin-top: -26px;
}
.ant-spin-container {
  position: relative;
  transition: opacity 0.3s;
}
.ant-spin-container::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 10;
  display: none \9;
  width: 100%;
  height: 100%;
  background: #fff;
  opacity: 0;
  transition: all 0.3s;
  content: '';
  pointer-events: none;
}
.ant-spin-blur {
  clear: both;
  overflow: hidden;
  opacity: 0.5;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  pointer-events: none;
}
.ant-spin-blur::after {
  opacity: 0.4;
  pointer-events: auto;
}
.ant-spin-tip {
  color: rgba(0, 0, 0, 0.45);
}
.ant-spin-dot {
  position: relative;
  display: inline-block;
  font-size: 20px;
  width: 1em;
  height: 1em;
}
.ant-spin-dot-item {
  position: absolute;
  display: block;
  width: 9px;
  height: 9px;
  background-color: #1890ff;
  border-radius: 100%;
  transform: scale(0.75);
  transform-origin: 50% 50%;
  opacity: 0.3;
  -webkit-animation: antSpinMove 1s infinite linear alternate;
          animation: antSpinMove 1s infinite linear alternate;
}
.ant-spin-dot-item:nth-child(1) {
  top: 0;
  left: 0;
}
.ant-spin-dot-item:nth-child(2) {
  top: 0;
  right: 0;
  -webkit-animation-delay: 0.4s;
          animation-delay: 0.4s;
}
.ant-spin-dot-item:nth-child(3) {
  right: 0;
  bottom: 0;
  -webkit-animation-delay: 0.8s;
          animation-delay: 0.8s;
}
.ant-spin-dot-item:nth-child(4) {
  bottom: 0;
  left: 0;
  -webkit-animation-delay: 1.2s;
          animation-delay: 1.2s;
}
.ant-spin-dot-spin {
  transform: rotate(45deg);
  -webkit-animation: antRotate 1.2s infinite linear;
          animation: antRotate 1.2s infinite linear;
}
.ant-spin-sm .ant-spin-dot {
  font-size: 14px;
}
.ant-spin-sm .ant-spin-dot i {
  width: 6px;
  height: 6px;
}
.ant-spin-lg .ant-spin-dot {
  font-size: 32px;
}
.ant-spin-lg .ant-spin-dot i {
  width: 14px;
  height: 14px;
}
.ant-spin.ant-spin-show-text .ant-spin-text {
  display: block;
}
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
  /* IE10+ */
  .ant-spin-blur {
    background: #fff;
    opacity: 0.5;
  }
}
@-webkit-keyframes antSpinMove {
  to {
    opacity: 1;
  }
}
@keyframes antSpinMove {
  to {
    opacity: 1;
  }
}
@-webkit-keyframes antRotate {
  to {
    transform: rotate(405deg);
  }
}
@keyframes antRotate {
  to {
    transform: rotate(405deg);
  }
}
.ant-spin-rtl {
  direction: rtl;
}
.ant-spin-rtl .ant-spin-dot-spin {
  transform: rotate(-45deg);
  -webkit-animation-name: antRotateRtl;
          animation-name: antRotateRtl;
}
@-webkit-keyframes antRotateRtl {
  to {
    transform: rotate(-405deg);
  }
}
@keyframes antRotateRtl {
  to {
    transform: rotate(-405deg);
  }
}
nz-spin {
  display: block;
}
.ant-input-affix-wrapper {
  position: relative;
  display: inline-block;
  width: 100%;
  min-width: 0;
  padding: 4px 11px;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  line-height: 1.5715;
  background-color: #fff;
  background-image: none;
  border: 1px solid #d9d9d9;
  border-radius: 2px;
  transition: all 0.3s;
  display: inline-flex;
}
.ant-input-affix-wrapper::-moz-placeholder {
  opacity: 1;
}
.ant-input-affix-wrapper::placeholder {
  color: #bfbfbf;
}
.ant-input-affix-wrapper:-moz-placeholder-shown {
  text-overflow: ellipsis;
}
.ant-input-affix-wrapper:placeholder-shown {
  text-overflow: ellipsis;
}
.ant-input-affix-wrapper:hover {
  border-color: #40a9ff;
  border-right-width: 1px !important;
}
.ant-input-rtl .ant-input-affix-wrapper:hover {
  border-right-width: 0;
  border-left-width: 1px !important;
}
.ant-input-affix-wrapper:focus,
.ant-input-affix-wrapper-focused {
  border-color: #40a9ff;
  border-right-width: 1px !important;
  outline: 0;
  box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
}
.ant-input-rtl .ant-input-affix-wrapper:focus,
.ant-input-rtl .ant-input-affix-wrapper-focused {
  border-right-width: 0;
  border-left-width: 1px !important;
}
.ant-input-affix-wrapper-disabled {
  color: rgba(0, 0, 0, 0.25);
  background-color: #f5f5f5;
  cursor: not-allowed;
  opacity: 1;
}
.ant-input-affix-wrapper-disabled:hover {
  border-color: #d9d9d9;
  border-right-width: 1px !important;
}
.ant-input-affix-wrapper[disabled] {
  color: rgba(0, 0, 0, 0.25);
  background-color: #f5f5f5;
  cursor: not-allowed;
  opacity: 1;
}
.ant-input-affix-wrapper[disabled]:hover {
  border-color: #d9d9d9;
  border-right-width: 1px !important;
}
.ant-input-affix-wrapper-borderless,
.ant-input-affix-wrapper-borderless:hover,
.ant-input-affix-wrapper-borderless:focus,
.ant-input-affix-wrapper-borderless-focused,
.ant-input-affix-wrapper-borderless-disabled,
.ant-input-affix-wrapper-borderless[disabled] {
  background-color: transparent;
  border: none;
  box-shadow: none;
}
textarea.ant-input-affix-wrapper {
  max-width: 100%;
  height: auto;
  min-height: 32px;
  line-height: 1.5715;
  vertical-align: bottom;
  transition: all 0.3s, height 0s;
}
.ant-input-affix-wrapper-lg {
  padding: 6.5px 11px;
  font-size: 16px;
}
.ant-input-affix-wrapper-sm {
  padding: 0px 7px;
}
.ant-input-affix-wrapper-rtl {
  direction: rtl;
}
.ant-input-affix-wrapper:hover {
  border-color: #40a9ff;
  border-right-width: 1px !important;
  z-index: 1;
}
.ant-input-rtl .ant-input-affix-wrapper:hover {
  border-right-width: 0;
  border-left-width: 1px !important;
}
.ant-input-search-with-button .ant-input-affix-wrapper:hover {
  z-index: 0;
}
.ant-input-affix-wrapper-focused,
.ant-input-affix-wrapper:focus {
  z-index: 1;
}
.ant-input-affix-wrapper-disabled .ant-input[disabled] {
  background: transparent;
}
.ant-input-affix-wrapper > input.ant-input {
  padding: 0;
  border: none;
  outline: none;
}
.ant-input-affix-wrapper > input.ant-input:focus {
  box-shadow: none;
}
.ant-input-affix-wrapper::before {
  width: 0;
  visibility: hidden;
  content: '\a0';
}
.ant-input-prefix,
.ant-input-suffix {
  display: flex;
  flex: none;
  align-items: center;
}
.ant-input-prefix {
  margin-right: 4px;
}
.ant-input-suffix {
  margin-left: 4px;
}
.ant-input-clear-icon {
  margin: 0 4px;
  color: rgba(0, 0, 0, 0.25);
  font-size: 12px;
  vertical-align: -1px;
  cursor: pointer;
  transition: color 0.3s;
}
.ant-input-clear-icon:hover {
  color: rgba(0, 0, 0, 0.45);
}
.ant-input-clear-icon:active {
  color: rgba(0, 0, 0, 0.85);
}
.ant-input-clear-icon-hidden {
  visibility: hidden;
}
.ant-input-clear-icon:last-child {
  margin-right: 0;
}
.ant-input-affix-wrapper-textarea-with-clear-btn {
  padding: 0 !important;
  border: 0 !important;
}
.ant-input-affix-wrapper-textarea-with-clear-btn .ant-input-clear-icon {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 1;
}
.ant-input {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  font-variant: tabular-nums;
  list-style: none;
  font-feature-settings: 'tnum';
  position: relative;
  display: inline-block;
  width: 100%;
  min-width: 0;
  padding: 4px 11px;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  line-height: 1.5715;
  background-color: #fff;
  background-image: none;
  border: 1px solid #d9d9d9;
  border-radius: 2px;
  transition: all 0.3s;
}
.ant-input::-moz-placeholder {
  opacity: 1;
}
.ant-input::placeholder {
  color: #bfbfbf;
}
.ant-input:-moz-placeholder-shown {
  text-overflow: ellipsis;
}
.ant-input:placeholder-shown {
  text-overflow: ellipsis;
}
.ant-input:hover {
  border-color: #40a9ff;
  border-right-width: 1px !important;
}
.ant-input-rtl .ant-input:hover {
  border-right-width: 0;
  border-left-width: 1px !important;
}
.ant-input:focus,
.ant-input-focused {
  border-color: #40a9ff;
  border-right-width: 1px !important;
  outline: 0;
  box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
}
.ant-input-rtl .ant-input:focus,
.ant-input-rtl .ant-input-focused {
  border-right-width: 0;
  border-left-width: 1px !important;
}
.ant-input-disabled {
  color: rgba(0, 0, 0, 0.25);
  background-color: #f5f5f5;
  cursor: not-allowed;
  opacity: 1;
}
.ant-input-disabled:hover {
  border-color: #d9d9d9;
  border-right-width: 1px !important;
}
.ant-input[disabled] {
  color: rgba(0, 0, 0, 0.25);
  background-color: #f5f5f5;
  cursor: not-allowed;
  opacity: 1;
}
.ant-input[disabled]:hover {
  border-color: #d9d9d9;
  border-right-width: 1px !important;
}
.ant-input-borderless,
.ant-input-borderless:hover,
.ant-input-borderless:focus,
.ant-input-borderless-focused,
.ant-input-borderless-disabled,
.ant-input-borderless[disabled] {
  background-color: transparent;
  border: none;
  box-shadow: none;
}
textarea.ant-input {
  max-width: 100%;
  height: auto;
  min-height: 32px;
  line-height: 1.5715;
  vertical-align: bottom;
  transition: all 0.3s, height 0s;
}
.ant-input-lg {
  padding: 6.5px 11px;
  font-size: 16px;
}
.ant-input-sm {
  padding: 0px 7px;
}
.ant-input-rtl {
  direction: rtl;
}
.ant-input-group {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-variant: tabular-nums;
  line-height: 1.5715;
  list-style: none;
  font-feature-settings: 'tnum';
  position: relative;
  display: table;
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}
.ant-input-group[class*='col-'] {
  float: none;
  padding-right: 0;
  padding-left: 0;
}
.ant-input-group > [class*='col-'] {
  padding-right: 8px;
}
.ant-input-group > [class*='col-']:last-child {
  padding-right: 0;
}
.ant-input-group-addon,
.ant-input-group-wrap,
.ant-input-group > .ant-input {
  display: table-cell;
}
.ant-input-group-addon:not(:first-child):not(:last-child),
.ant-input-group-wrap:not(:first-child):not(:last-child),
.ant-input-group > .ant-input:not(:first-child):not(:last-child) {
  border-radius: 0;
}
.ant-input-group-addon,
.ant-input-group-wrap {
  width: 1px;
  white-space: nowrap;
  vertical-align: middle;
}
.ant-input-group-wrap > * {
  display: block !important;
}
.ant-input-group .ant-input {
  float: left;
  width: 100%;
  margin-bottom: 0;
  text-align: inherit;
}
.ant-input-group .ant-input:focus {
  z-index: 1;
  border-right-width: 1px;
}
.ant-input-group .ant-input:hover {
  z-index: 1;
  border-right-width: 1px;
}
.ant-input-search-with-button .ant-input-group .ant-input:hover {
  z-index: 0;
}
.ant-input-group-addon {
  position: relative;
  padding: 0 11px;
  color: rgba(0, 0, 0, 0.85);
  font-weight: normal;
  font-size: 14px;
  text-align: center;
  background-color: #fafafa;
  border: 1px solid #d9d9d9;
  border-radius: 2px;
  transition: all 0.3s;
}
.ant-input-group-addon .ant-select {
  margin: -5px -11px;
}
.ant-input-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
  background-color: inherit;
  border: 1px solid transparent;
  box-shadow: none;
}
.ant-input-group-addon .ant-select-open .ant-select-selector,
.ant-input-group-addon .ant-select-focused .ant-select-selector {
  color: #1890ff;
}
.ant-input-group > .ant-input:first-child,
.ant-input-group-addon:first-child {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.ant-input-group > .ant-input:first-child .ant-select .ant-select-selector,
.ant-input-group-addon:first-child .ant-select .ant-select-selector {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.ant-input-group > .ant-input-affix-wrapper:not(:first-child) .ant-input {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.ant-input-group > .ant-input-affix-wrapper:not(:last-child) .ant-input {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.ant-input-group-addon:first-child {
  border-right: 0;
}
.ant-input-group-addon:last-child {
  border-left: 0;
}
.ant-input-group > .ant-input:last-child,
.ant-input-group-addon:last-child {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.ant-input-group > .ant-input:last-child .ant-select .ant-select-selector,
.ant-input-group-addon:last-child .ant-select .ant-select-selector {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.ant-input-group-lg .ant-input,
.ant-input-group-lg > .ant-input-group-addon {
  padding: 6.5px 11px;
  font-size: 16px;
}
.ant-input-group-sm .ant-input,
.ant-input-group-sm > .ant-input-group-addon {
  padding: 0px 7px;
}
.ant-input-group-lg .ant-select-single .ant-select-selector {
  height: 40px;
}
.ant-input-group-sm .ant-select-single .ant-select-selector {
  height: 24px;
}
.ant-input-group .ant-input-affix-wrapper:not(:first-child) {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.ant-input-group .ant-input-affix-wrapper:not(:last-child) {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.ant-input-search .ant-input-group .ant-input-affix-wrapper:not(:last-child) {
  border-top-left-radius: 2px;
  border-bottom-left-radius: 2px;
}
.ant-input-group.ant-input-group-compact {
  display: block;
}
.ant-input-group.ant-input-group-compact::before {
  display: table;
  content: '';
}
.ant-input-group.ant-input-group-compact::after {
  display: table;
  clear: both;
  content: '';
}
.ant-input-group.ant-input-group-compact::before {
  display: table;
  content: '';
}
.ant-input-group.ant-input-group-compact::after {
  display: table;
  clear: both;
  content: '';
}
.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child),
.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child),
.ant-input-group.ant-input-group-compact > .ant-input:not(:first-child):not(:last-child) {
  border-right-width: 1px;
}
.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):hover,
.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):hover,
.ant-input-group.ant-input-group-compact > .ant-input:not(:first-child):not(:last-child):hover {
  z-index: 1;
}
.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):focus,
.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):focus,
.ant-input-group.ant-input-group-compact > .ant-input:not(:first-child):not(:last-child):focus {
  z-index: 1;
}
.ant-input-group.ant-input-group-compact > * {
  display: inline-block;
  float: none;
  vertical-align: top;
  border-radius: 0;
}
.ant-input-group.ant-input-group-compact > .ant-input-affix-wrapper {
  display: inline-flex;
}
.ant-input-group.ant-input-group-compact > .ant-picker-range {
  display: inline-flex;
}
.ant-input-group.ant-input-group-compact > *:not(:last-child) {
  margin-right: -1px;
  border-right-width: 1px;
}
.ant-input-group.ant-input-group-compact .ant-input {
  float: none;
}
.ant-input-group.ant-input-group-compact > .ant-select > .ant-select-selector,
.ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input,
.ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input,
.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input {
  border-right-width: 1px;
  border-radius: 0;
}
.ant-input-group.ant-input-group-compact > .ant-select > .ant-select-selector:hover,
.ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input:hover,
.ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input:hover,
.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input:hover {
  z-index: 1;
}
.ant-input-group.ant-input-group-compact > .ant-select > .ant-select-selector:focus,
.ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input:focus,
.ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input:focus,
.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input:focus {
  z-index: 1;
}
.ant-input-group.ant-input-group-compact > .ant-select-focused {
  z-index: 1;
}
.ant-input-group.ant-input-group-compact > .ant-select > .ant-select-arrow {
  z-index: 1;
}
.ant-input-group.ant-input-group-compact > *:first-child,
.ant-input-group.ant-input-group-compact > .ant-select:first-child > .ant-select-selector,
.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:first-child .ant-input,
.ant-input-group.ant-input-group-compact > .ant-cascader-picker:first-child .ant-input {
  border-top-left-radius: 2px;
  border-bottom-left-radius: 2px;
}
.ant-input-group.ant-input-group-compact > *:last-child,
.ant-input-group.ant-input-group-compact > .ant-select:last-child > .ant-select-selector,
.ant-input-group.ant-input-group-compact > .ant-cascader-picker:last-child .ant-input,
.ant-input-group.ant-input-group-compact > .ant-cascader-picker-focused:last-child .ant-input {
  border-right-width: 1px;
  border-top-right-radius: 2px;
  border-bottom-right-radius: 2px;
}
.ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input {
  vertical-align: top;
}
.ant-input-group.ant-input-group-compact .ant-input-group-wrapper + .ant-input-group-wrapper {
  margin-left: -1px;
}
.ant-input-group.ant-input-group-compact .ant-input-group-wrapper + .ant-input-group-wrapper .ant-input-affix-wrapper {
  border-radius: 0;
}
.ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search > .ant-input-group > .ant-input-group-addon > .ant-input-search-button {
  border-radius: 0;
}
.ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search > .ant-input-group > .ant-input {
  border-radius: 2px 0 0 2px;
}
.ant-input-group > .ant-input-rtl:first-child,
.ant-input-group-rtl .ant-input-group-addon:first-child {
  border-radius: 0 2px 2px 0;
}
.ant-input-group-rtl .ant-input-group-addon:first-child {
  border-right: 1px solid #d9d9d9;
  border-left: 0;
}
.ant-input-group-rtl .ant-input-group-addon:last-child {
  border-right: 0;
  border-left: 1px solid #d9d9d9;
}
.ant-input-group-rtl.ant-input-group > .ant-input:last-child,
.ant-input-group-rtl.ant-input-group-addon:last-child {
  border-radius: 2px 0 0 2px;
}
.ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:first-child) {
  border-radius: 2px 0 0 2px;
}
.ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:last-child) {
  border-radius: 0 2px 2px 0;
}
.ant-input-group-rtl.ant-input-group.ant-input-group-compact > *:not(:last-child) {
  margin-right: 0;
  margin-left: -1px;
  border-left-width: 1px;
}
.ant-input-group-rtl.ant-input-group.ant-input-group-compact > *:first-child,
.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select:first-child > .ant-select-selector,
.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:first-child .ant-input,
.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-cascader-picker:first-child .ant-input {
  border-radius: 0 2px 2px 0;
}
.ant-input-group-rtl.ant-input-group.ant-input-group-compact > *:last-child,
.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select:last-child > .ant-select-selector,
.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:last-child .ant-input,
.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-cascader-picker:last-child .ant-input,
.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-cascader-picker-focused:last-child .ant-input {
  border-left-width: 1px;
  border-radius: 2px 0 0 2px;
}
.ant-input-group.ant-input-group-compact .ant-input-group-wrapper-rtl + .ant-input-group-wrapper-rtl {
  margin-right: -1px;
  margin-left: 0;
}
.ant-input-group.ant-input-group-compact .ant-input-group-wrapper-rtl:not(:last-child).ant-input-search > .ant-input-group > .ant-input {
  border-radius: 0 2px 2px 0;
}
.ant-input-group-wrapper {
  display: inline-block;
  width: 100%;
  text-align: start;
  vertical-align: top;
}
.ant-input-password-icon {
  color: rgba(0, 0, 0, 0.45);
  cursor: pointer;
  transition: all 0.3s;
}
.ant-input-password-icon:hover {
  color: rgba(0, 0, 0, 0.85);
}
.ant-input[type='color'] {
  height: 32px;
}
.ant-input[type='color'].ant-input-lg {
  height: 40px;
}
.ant-input[type='color'].ant-input-sm {
  height: 24px;
  padding-top: 3px;
  padding-bottom: 3px;
}
.ant-input-textarea-show-count::after {
  display: block;
  color: rgba(0, 0, 0, 0.45);
  text-align: right;
  content: attr(data-count);
}
.ant-input-search .ant-input:hover,
.ant-input-search .ant-input:focus {
  border-color: #40a9ff;
}
.ant-input-search .ant-input:hover + .ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary),
.ant-input-search .ant-input:focus + .ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary) {
  border-left-color: #40a9ff;
}
.ant-input-search .ant-input-affix-wrapper {
  border-radius: 0;
}
.ant-input-search .ant-input-lg {
  line-height: 1.5713;
}
.ant-input-search > .ant-input-group > .ant-input-group-addon:last-child {
  left: -1px;
  padding: 0;
  border: 0;
}
.ant-input-search > .ant-input-group > .ant-input-group-addon:last-child .ant-input-search-button {
  padding-top: 0;
  padding-bottom: 0;
  border-radius: 0 2px 2px 0;
}
.ant-input-search > .ant-input-group > .ant-input-group-addon:last-child .ant-input-search-button:not(.ant-btn-primary) {
  color: rgba(0, 0, 0, 0.45);
}
.ant-input-search > .ant-input-group > .ant-input-group-addon:last-child .ant-input-search-button:not(.ant-btn-primary).ant-btn-loading::before {
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
.ant-input-search-button {
  height: 32px;
}
.ant-input-search-button:hover,
.ant-input-search-button:focus {
  z-index: 1;
}
.ant-input-search-large .ant-input-search-button {
  height: 40px;
}
.ant-input-search-small .ant-input-search-button {
  height: 24px;
}
.ant-input-group-wrapper-rtl {
  direction: rtl;
}
.ant-input-group-rtl {
  direction: rtl;
}
.ant-input-affix-wrapper.ant-input-affix-wrapper-rtl > input.ant-input {
  border: none;
  outline: none;
}
.ant-input-affix-wrapper-rtl .ant-input-prefix {
  margin: 0 0 0 4px;
}
.ant-input-affix-wrapper-rtl .ant-input-suffix {
  margin: 0 4px 0 0;
}
.ant-input-textarea-rtl {
  direction: rtl;
}
.ant-input-textarea-rtl.ant-input-textarea-show-count::after {
  text-align: left;
}
.ant-input-affix-wrapper-rtl .ant-input-clear-icon:last-child {
  margin-right: 4px;
  margin-left: 0;
}
.ant-input-affix-wrapper-rtl .ant-input-clear-icon {
  right: auto;
  left: 8px;
}
.ant-input-search-rtl {
  direction: rtl;
}
.ant-input-search-rtl .ant-input:hover + .ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary),
.ant-input-search-rtl .ant-input:focus + .ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary) {
  border-right-color: #40a9ff;
  border-left-color: #d9d9d9;
}
.ant-input-search-rtl > .ant-input-group > .ant-input-affix-wrapper:hover,
.ant-input-search-rtl > .ant-input-group > .ant-input-affix-wrapper-focused {
  border-right-color: #40a9ff;
}
.ant-input-search-rtl > .ant-input-group > .ant-input-group-addon {
  right: -1px;
  left: auto;
}
.ant-input-search-rtl > .ant-input-group > .ant-input-group-addon .ant-input-search-button {
  border-radius: 2px 0 0 2px;
}
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .ant-input {
    height: 32px;
  }
  .ant-input-lg {
    height: 40px;
  }
  .ant-input-sm {
    height: 24px;
  }
  .ant-input-affix-wrapper > input.ant-input {
    height: auto;
  }
}
textarea.nz-textarea-autosize-measuring {
  height: auto !important;
  overflow: hidden !important;
  padding: 2px 0 !important;
  box-sizing: content-box !important;
}
.ant-input-search-rtl.ant-input-search-enter-button + .ant-input-group-addon .ant-input-search-button.ant-btn-icon-only,
.ant-input-search-rtl.ant-input-search-enter-button input + .ant-input-group-addon .ant-input-search-button.ant-btn-icon-only {
  width: 32px;
  height: 32px;
}
.ant-input-search-rtl.ant-input-search-enter-button + .ant-input-group-addon .ant-input-search-button.ant-btn-icon-only.ant-btn-sm,
.ant-input-search-rtl.ant-input-search-enter-button input + .ant-input-group-addon .ant-input-search-button.ant-btn-icon-only.ant-btn-sm {
  width: 24px;
  height: 24px;
}
.ant-input-search-rtl.ant-input-search-enter-button + .ant-input-group-addon .ant-input-search-button.ant-btn-icon-only.ant-btn-lg,
.ant-input-search-rtl.ant-input-search-enter-button input + .ant-input-group-addon .ant-input-search-button.ant-btn-icon-only.ant-btn-lg {
  width: 40px;
  height: 40px;
}
@-webkit-keyframes antCheckboxEffect {
  0% {
    transform: scale(1);
    opacity: 0.5;
  }
  100% {
    transform: scale(1.6);
    opacity: 0;
  }
}
@keyframes antCheckboxEffect {
  0% {
    transform: scale(1);
    opacity: 0.5;
  }
  100% {
    transform: scale(1.6);
    opacity: 0;
  }
}
.ant-checkbox {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-variant: tabular-nums;
  line-height: 1.5715;
  list-style: none;
  font-feature-settings: 'tnum';
  position: relative;
  top: -0.09em;
  display: inline-block;
  line-height: 1;
  white-space: nowrap;
  vertical-align: middle;
  outline: none;
  cursor: pointer;
}
.ant-checkbox-wrapper:hover .ant-checkbox-inner,
.ant-checkbox:hover .ant-checkbox-inner,
.ant-checkbox-input:focus + .ant-checkbox-inner {
  border-color: #1890ff;
}
.ant-checkbox-checked::after {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 1px solid #1890ff;
  border-radius: 2px;
  visibility: hidden;
  -webkit-animation: antCheckboxEffect 0.36s ease-in-out;
          animation: antCheckboxEffect 0.36s ease-in-out;
  -webkit-animation-fill-mode: backwards;
          animation-fill-mode: backwards;
  content: '';
}
.ant-checkbox:hover::after,
.ant-checkbox-wrapper:hover .ant-checkbox::after {
  visibility: visible;
}
.ant-checkbox-inner {
  position: relative;
  top: 0;
  left: 0;
  display: block;
  width: 16px;
  height: 16px;
  direction: ltr;
  background-color: #fff;
  border: 1px solid #d9d9d9;
  border-radius: 2px;
  border-collapse: separate;
  transition: all 0.3s;
}
.ant-checkbox-inner::after {
  position: absolute;
  top: 50%;
  left: 22%;
  display: table;
  width: 5.71428571px;
  height: 9.14285714px;
  border: 2px solid #fff;
  border-top: 0;
  border-left: 0;
  transform: rotate(45deg) scale(0) translate(-50%, -50%);
  opacity: 0;
  transition: all 0.1s cubic-bezier(0.71, -0.46, 0.88, 0.6), opacity 0.1s;
  content: ' ';
}
.ant-checkbox-input {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  cursor: pointer;
  opacity: 0;
}
.ant-checkbox-checked .ant-checkbox-inner::after {
  position: absolute;
  display: table;
  border: 2px solid #fff;
  border-top: 0;
  border-left: 0;
  transform: rotate(45deg) scale(1) translate(-50%, -50%);
  opacity: 1;
  transition: all 0.2s cubic-bezier(0.12, 0.4, 0.29, 1.46) 0.1s;
  content: ' ';
}
.ant-checkbox-checked .ant-checkbox-inner {
  background-color: #1890ff;
  border-color: #1890ff;
}
.ant-checkbox-disabled {
  cursor: not-allowed;
}
.ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner::after {
  border-color: rgba(0, 0, 0, 0.25);
  -webkit-animation-name: none;
          animation-name: none;
}
.ant-checkbox-disabled .ant-checkbox-input {
  cursor: not-allowed;
}
.ant-checkbox-disabled .ant-checkbox-inner {
  background-color: #f5f5f5;
  border-color: #d9d9d9 !important;
}
.ant-checkbox-disabled .ant-checkbox-inner::after {
  border-color: #f5f5f5;
  border-collapse: separate;
  -webkit-animation-name: none;
          animation-name: none;
}
.ant-checkbox-disabled + span {
  color: rgba(0, 0, 0, 0.25);
  cursor: not-allowed;
}
.ant-checkbox-disabled:hover::after,
.ant-checkbox-wrapper:hover .ant-checkbox-disabled::after {
  visibility: hidden;
}
.ant-checkbox-wrapper {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-variant: tabular-nums;
  line-height: 1.5715;
  list-style: none;
  font-feature-settings: 'tnum';
  display: inline-block;
  line-height: unset;
  cursor: pointer;
}
.ant-checkbox-wrapper.ant-checkbox-wrapper-disabled {
  cursor: not-allowed;
}
.ant-checkbox-wrapper + .ant-checkbox-wrapper {
  margin-left: 8px;
}
.ant-checkbox + span {
  padding-right: 8px;
  padding-left: 8px;
}
.ant-checkbox-group {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-variant: tabular-nums;
  line-height: 1.5715;
  list-style: none;
  font-feature-settings: 'tnum';
  display: inline-block;
}
.ant-checkbox-group-item {
  display: inline-block;
  margin-right: 8px;
}
.ant-checkbox-group-item:last-child {
  margin-right: 0;
}
.ant-checkbox-group-item + .ant-checkbox-group-item {
  margin-left: 0;
}
.ant-checkbox-indeterminate .ant-checkbox-inner {
  background-color: #fff;
  border-color: #d9d9d9;
}
.ant-checkbox-indeterminate .ant-checkbox-inner::after {
  top: 50%;
  left: 50%;
  width: 8px;
  height: 8px;
  background-color: #1890ff;
  border: 0;
  transform: translate(-50%, -50%) scale(1);
  opacity: 1;
  content: ' ';
}
.ant-checkbox-indeterminate.ant-checkbox-disabled .ant-checkbox-inner::after {
  background-color: rgba(0, 0, 0, 0.25);
  border-color: rgba(0, 0, 0, 0.25);
}
.ant-checkbox-rtl {
  direction: rtl;
}
.ant-checkbox-group-rtl .ant-checkbox-group-item {
  margin-right: 0;
  margin-left: 8px;
}
.ant-checkbox-group-rtl .ant-checkbox-group-item:last-child {
  margin-left: 0 !important;
}
.ant-checkbox-group-rtl .ant-checkbox-group-item + .ant-checkbox-group-item {
  margin-left: 8px;
}
.ant-checkbox + span:empty {
  display: none;
}
.ant-notification {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-variant: tabular-nums;
  line-height: 1.5715;
  list-style: none;
  font-feature-settings: 'tnum';
  position: fixed;
  z-index: 1010;
  margin-right: 24px;
}
.ant-notification-topLeft,
.ant-notification-bottomLeft {
  margin-right: 0;
  margin-left: 24px;
}
.ant-notification-topLeft .ant-notification-fade-enter.ant-notification-fade-enter-active,
.ant-notification-bottomLeft .ant-notification-fade-enter.ant-notification-fade-enter-active,
.ant-notification-topLeft .ant-notification-fade-appear.ant-notification-fade-appear-active,
.ant-notification-bottomLeft .ant-notification-fade-appear.ant-notification-fade-appear-active {
  -webkit-animation-name: NotificationLeftFadeIn;
          animation-name: NotificationLeftFadeIn;
}
.ant-notification-close-icon {
  font-size: 14px;
  cursor: pointer;
}
.ant-notification-hook-holder,
.ant-notification-notice {
  position: relative;
  width: 384px;
  max-width: calc(100vw - 24px * 2);
  margin-bottom: 16px;
  margin-left: auto;
  overflow: hidden;
  word-wrap: break-word;
  background: #fff;
  border-radius: 2px;
  box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
}
.ant-notification-topLeft .ant-notification-hook-holder,
.ant-notification-topLeft .ant-notification-notice,
.ant-notification-bottomLeft .ant-notification-hook-holder,
.ant-notification-bottomLeft .ant-notification-notice {
  margin-right: auto;
  margin-left: 0;
}
.ant-notification-hook-holder > .ant-notification-notice {
  margin-bottom: 0;
  box-shadow: none;
}
.ant-notification-notice {
  padding: 16px 24px;
  line-height: 1.5715;
}
.ant-notification-notice-message {
  margin-bottom: 8px;
  color: rgba(0, 0, 0, 0.85);
  font-size: 16px;
  line-height: 24px;
}
.ant-notification-notice-message-single-line-auto-margin {
  display: block;
  width: calc(384px - 24px * 2 - 24px - 48px - 100%);
  max-width: 4px;
  background-color: transparent;
  pointer-events: none;
}
.ant-notification-notice-message-single-line-auto-margin::before {
  display: block;
  content: '';
}
.ant-notification-notice-description {
  font-size: 14px;
}
.ant-notification-notice-closable .ant-notification-notice-message {
  padding-right: 24px;
}
.ant-notification-notice-with-icon .ant-notification-notice-message {
  margin-bottom: 4px;
  margin-left: 48px;
  font-size: 16px;
}
.ant-notification-notice-with-icon .ant-notification-notice-description {
  margin-left: 48px;
  font-size: 14px;
}
.ant-notification-notice-icon {
  position: absolute;
  margin-left: 4px;
  font-size: 24px;
  line-height: 24px;
}
.anticon.ant-notification-notice-icon-success {
  color: #52c41a;
}
.anticon.ant-notification-notice-icon-info {
  color: #1890ff;
}
.anticon.ant-notification-notice-icon-warning {
  color: #faad14;
}
.anticon.ant-notification-notice-icon-error {
  color: #ff4d4f;
}
.ant-notification-notice-close {
  position: absolute;
  top: 16px;
  right: 22px;
  color: rgba(0, 0, 0, 0.45);
  outline: none;
}
.ant-notification-notice-close:hover {
  color: rgba(0, 0, 0, 0.67);
}
.ant-notification-notice-btn {
  float: right;
  margin-top: 16px;
}
.ant-notification .notification-fade-effect {
  -webkit-animation-duration: 0.24s;
          animation-duration: 0.24s;
  -webkit-animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
          animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
}
.ant-notification-fade-enter,
.ant-notification-fade-appear {
  opacity: 0;
  -webkit-animation-duration: 0.24s;
          animation-duration: 0.24s;
  -webkit-animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
          animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.ant-notification-fade-leave {
  -webkit-animation-duration: 0.24s;
          animation-duration: 0.24s;
  -webkit-animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
          animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.ant-notification-fade-enter.ant-notification-fade-enter-active,
.ant-notification-fade-appear.ant-notification-fade-appear-active {
  -webkit-animation-name: NotificationFadeIn;
          animation-name: NotificationFadeIn;
  -webkit-animation-play-state: running;
          animation-play-state: running;
}
.ant-notification-fade-leave.ant-notification-fade-leave-active {
  -webkit-animation-name: NotificationFadeOut;
          animation-name: NotificationFadeOut;
  -webkit-animation-play-state: running;
          animation-play-state: running;
}
@-webkit-keyframes NotificationFadeIn {
  0% {
    left: 384px;
    opacity: 0;
  }
  100% {
    left: 0;
    opacity: 1;
  }
}
@keyframes NotificationFadeIn {
  0% {
    left: 384px;
    opacity: 0;
  }
  100% {
    left: 0;
    opacity: 1;
  }
}
@-webkit-keyframes NotificationLeftFadeIn {
  0% {
    right: 384px;
    opacity: 0;
  }
  100% {
    right: 0;
    opacity: 1;
  }
}
@keyframes NotificationLeftFadeIn {
  0% {
    right: 384px;
    opacity: 0;
  }
  100% {
    right: 0;
    opacity: 1;
  }
}
@-webkit-keyframes NotificationFadeOut {
  0% {
    max-height: 150px;
    margin-bottom: 16px;
    opacity: 1;
  }
  100% {
    max-height: 0;
    margin-bottom: 0;
    padding-top: 0;
    padding-bottom: 0;
    opacity: 0;
  }
}
@keyframes NotificationFadeOut {
  0% {
    max-height: 150px;
    margin-bottom: 16px;
    opacity: 1;
  }
  100% {
    max-height: 0;
    margin-bottom: 0;
    padding-top: 0;
    padding-bottom: 0;
    opacity: 0;
  }
}
.ant-notification-rtl {
  direction: rtl;
}
.ant-notification-rtl .ant-notification-notice-closable .ant-notification-notice-message {
  padding-right: 0;
  padding-left: 24px;
}
.ant-notification-rtl .ant-notification-notice-with-icon .ant-notification-notice-message {
  margin-right: 48px;
  margin-left: 0;
}
.ant-notification-rtl .ant-notification-notice-with-icon .ant-notification-notice-description {
  margin-right: 48px;
  margin-left: 0;
}
.ant-notification-rtl .ant-notification-notice-icon {
  margin-right: 4px;
  margin-left: 0;
}
.ant-notification-rtl .ant-notification-notice-close {
  right: auto;
  left: 22px;
}
.ant-notification-rtl .ant-notification-notice-btn {
  float: left;
}
.ant-rate {
  box-sizing: border-box;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-variant: tabular-nums;
  line-height: 1.5715;
  font-feature-settings: 'tnum';
  display: inline-block;
  margin: 0;
  padding: 0;
  color: #fadb14;
  font-size: 20px;
  line-height: unset;
  list-style: none;
  outline: none;
}
.ant-rate-disabled .ant-rate-star {
  cursor: default;
}
.ant-rate-disabled .ant-rate-star:hover {
  transform: scale(1);
}
.ant-rate-star {
  position: relative;
  display: inline-block;
  color: inherit;
  cursor: pointer;
  transition: all 0.3s;
}
.ant-rate-star:not(:last-child) {
  margin-right: 8px;
}
.ant-rate-star > div:focus {
  outline: 0;
}
.ant-rate-star > div:hover,
.ant-rate-star > div:focus {
  transform: scale(1.1);
}
.ant-rate-star-first,
.ant-rate-star-second {
  color: #f0f0f0;
  transition: all 0.3s;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.ant-rate-star-first .anticon,
.ant-rate-star-second .anticon {
  vertical-align: middle;
}
.ant-rate-star-first {
  position: absolute;
  top: 0;
  left: 0;
  width: 50%;
  height: 100%;
  overflow: hidden;
  opacity: 0;
}
.ant-rate-star-half .ant-rate-star-first,
.ant-rate-star-half .ant-rate-star-second {
  opacity: 1;
}
.ant-rate-star-half .ant-rate-star-first,
.ant-rate-star-full .ant-rate-star-second {
  color: inherit;
}
.ant-rate-text {
  display: inline-block;
  margin: 0 8px;
  font-size: 14px;
}
.ant-rate-rtl {
  direction: rtl;
}
.ant-rate-rtl .ant-rate-star:not(:last-child) {
  margin-right: 0;
  margin-left: 8px;
}
.ant-rate-rtl .ant-rate-star-first {
  right: 0;
  left: auto;
}
.ant-tooltip {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-variant: tabular-nums;
  line-height: 1.5715;
  list-style: none;
  font-feature-settings: 'tnum';
  position: absolute;
  z-index: 1070;
  display: block;
  max-width: 250px;
  visibility: visible;
}
.ant-tooltip-hidden {
  display: none;
}
.ant-tooltip-placement-top,
.ant-tooltip-placement-topLeft,
.ant-tooltip-placement-topRight {
  padding-bottom: 8px;
}
.ant-tooltip-placement-right,
.ant-tooltip-placement-rightTop,
.ant-tooltip-placement-rightBottom {
  padding-left: 8px;
}
.ant-tooltip-placement-bottom,
.ant-tooltip-placement-bottomLeft,
.ant-tooltip-placement-bottomRight {
  padding-top: 8px;
}
.ant-tooltip-placement-left,
.ant-tooltip-placement-leftTop,
.ant-tooltip-placement-leftBottom {
  padding-right: 8px;
}
.ant-tooltip-inner {
  min-width: 30px;
  min-height: 32px;
  padding: 6px 8px;
  color: #fff;
  text-align: left;
  text-decoration: none;
  word-wrap: break-word;
  background-color: rgba(0, 0, 0, 0.75);
  border-radius: 2px;
  box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
}
.ant-tooltip-arrow {
  position: absolute;
  display: block;
  width: 13.07106781px;
  height: 13.07106781px;
  overflow: hidden;
  background: transparent;
  pointer-events: none;
}
.ant-tooltip-arrow-content {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: block;
  width: 5px;
  height: 5px;
  margin: auto;
  background-color: rgba(0, 0, 0, 0.75);
  content: '';
  pointer-events: auto;
}
.ant-tooltip-placement-top .ant-tooltip-arrow,
.ant-tooltip-placement-topLeft .ant-tooltip-arrow,
.ant-tooltip-placement-topRight .ant-tooltip-arrow {
  bottom: -5.07106781px;
}
.ant-tooltip-placement-top .ant-tooltip-arrow-content,
.ant-tooltip-placement-topLeft .ant-tooltip-arrow-content,
.ant-tooltip-placement-topRight .ant-tooltip-arrow-content {
  box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);
  transform: translateY(-6.53553391px) rotate(45deg);
}
.ant-tooltip-placement-top .ant-tooltip-arrow {
  left: 50%;
  transform: translateX(-50%);
}
.ant-tooltip-placement-topLeft .ant-tooltip-arrow {
  left: 13px;
}
.ant-tooltip-placement-topRight .ant-tooltip-arrow {
  right: 13px;
}
.ant-tooltip-placement-right .ant-tooltip-arrow,
.ant-tooltip-placement-rightTop .ant-tooltip-arrow,
.ant-tooltip-placement-rightBottom .ant-tooltip-arrow {
  left: -5.07106781px;
}
.ant-tooltip-placement-right .ant-tooltip-arrow-content,
.ant-tooltip-placement-rightTop .ant-tooltip-arrow-content,
.ant-tooltip-placement-rightBottom .ant-tooltip-arrow-content {
  box-shadow: -3px 3px 7px rgba(0, 0, 0, 0.07);
  transform: translateX(6.53553391px) rotate(45deg);
}
.ant-tooltip-placement-right .ant-tooltip-arrow {
  top: 50%;
  transform: translateY(-50%);
}
.ant-tooltip-placement-rightTop .ant-tooltip-arrow {
  top: 5px;
}
.ant-tooltip-placement-rightBottom .ant-tooltip-arrow {
  bottom: 5px;
}
.ant-tooltip-placement-left .ant-tooltip-arrow,
.ant-tooltip-placement-leftTop .ant-tooltip-arrow,
.ant-tooltip-placement-leftBottom .ant-tooltip-arrow {
  right: -5.07106781px;
}
.ant-tooltip-placement-left .ant-tooltip-arrow-content,
.ant-tooltip-placement-leftTop .ant-tooltip-arrow-content,
.ant-tooltip-placement-leftBottom .ant-tooltip-arrow-content {
  box-shadow: 3px -3px 7px rgba(0, 0, 0, 0.07);
  transform: translateX(-6.53553391px) rotate(45deg);
}
.ant-tooltip-placement-left .ant-tooltip-arrow {
  top: 50%;
  transform: translateY(-50%);
}
.ant-tooltip-placement-leftTop .ant-tooltip-arrow {
  top: 5px;
}
.ant-tooltip-placement-leftBottom .ant-tooltip-arrow {
  bottom: 5px;
}
.ant-tooltip-placement-bottom .ant-tooltip-arrow,
.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow,
.ant-tooltip-placement-bottomRight .ant-tooltip-arrow {
  top: -5.07106781px;
}
.ant-tooltip-placement-bottom .ant-tooltip-arrow-content,
.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow-content,
.ant-tooltip-placement-bottomRight .ant-tooltip-arrow-content {
  box-shadow: -3px -3px 7px rgba(0, 0, 0, 0.07);
  transform: translateY(6.53553391px) rotate(45deg);
}
.ant-tooltip-placement-bottom .ant-tooltip-arrow {
  left: 50%;
  transform: translateX(-50%);
}
.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow {
  left: 13px;
}
.ant-tooltip-placement-bottomRight .ant-tooltip-arrow {
  right: 13px;
}
.ant-tooltip-pink .ant-tooltip-inner {
  background-color: #eb2f96;
}
.ant-tooltip-pink .ant-tooltip-arrow-content {
  background-color: #eb2f96;
}
.ant-tooltip-magenta .ant-tooltip-inner {
  background-color: #eb2f96;
}
.ant-tooltip-magenta .ant-tooltip-arrow-content {
  background-color: #eb2f96;
}
.ant-tooltip-red .ant-tooltip-inner {
  background-color: #f5222d;
}
.ant-tooltip-red .ant-tooltip-arrow-content {
  background-color: #f5222d;
}
.ant-tooltip-volcano .ant-tooltip-inner {
  background-color: #fa541c;
}
.ant-tooltip-volcano .ant-tooltip-arrow-content {
  background-color: #fa541c;
}
.ant-tooltip-orange .ant-tooltip-inner {
  background-color: #fa8c16;
}
.ant-tooltip-orange .ant-tooltip-arrow-content {
  background-color: #fa8c16;
}
.ant-tooltip-yellow .ant-tooltip-inner {
  background-color: #fadb14;
}
.ant-tooltip-yellow .ant-tooltip-arrow-content {
  background-color: #fadb14;
}
.ant-tooltip-gold .ant-tooltip-inner {
  background-color: #faad14;
}
.ant-tooltip-gold .ant-tooltip-arrow-content {
  background-color: #faad14;
}
.ant-tooltip-cyan .ant-tooltip-inner {
  background-color: #13c2c2;
}
.ant-tooltip-cyan .ant-tooltip-arrow-content {
  background-color: #13c2c2;
}
.ant-tooltip-lime .ant-tooltip-inner {
  background-color: #a0d911;
}
.ant-tooltip-lime .ant-tooltip-arrow-content {
  background-color: #a0d911;
}
.ant-tooltip-green .ant-tooltip-inner {
  background-color: #52c41a;
}
.ant-tooltip-green .ant-tooltip-arrow-content {
  background-color: #52c41a;
}
.ant-tooltip-blue .ant-tooltip-inner {
  background-color: #1890ff;
}
.ant-tooltip-blue .ant-tooltip-arrow-content {
  background-color: #1890ff;
}
.ant-tooltip-geekblue .ant-tooltip-inner {
  background-color: #2f54eb;
}
.ant-tooltip-geekblue .ant-tooltip-arrow-content {
  background-color: #2f54eb;
}
.ant-tooltip-purple .ant-tooltip-inner {
  background-color: #722ed1;
}
.ant-tooltip-purple .ant-tooltip-arrow-content {
  background-color: #722ed1;
}
.ant-tooltip-rtl {
  direction: rtl;
}
.ant-tooltip-rtl .ant-tooltip-inner {
  text-align: right;
}
.ant-tooltip {
  position: relative;
}
.ant-slider {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-variant: tabular-nums;
  line-height: 1.5715;
  list-style: none;
  font-feature-settings: 'tnum';
  position: relative;
  height: 12px;
  margin: 10px 6px 10px;
  padding: 4px 0;
  cursor: pointer;
  touch-action: none;
}
.ant-slider-vertical {
  width: 12px;
  height: 100%;
  margin: 6px 10px;
  padding: 0 4px;
}
.ant-slider-vertical .ant-slider-rail {
  width: 4px;
  height: 100%;
}
.ant-slider-vertical .ant-slider-track {
  width: 4px;
}
.ant-slider-vertical .ant-slider-handle {
  margin-top: -6px;
  margin-left: -5px;
}
.ant-slider-vertical .ant-slider-mark {
  top: 0;
  left: 12px;
  width: 18px;
  height: 100%;
}
.ant-slider-vertical .ant-slider-mark-text {
  left: 4px;
  white-space: nowrap;
}
.ant-slider-vertical .ant-slider-step {
  width: 4px;
  height: 100%;
}
.ant-slider-vertical .ant-slider-dot {
  top: auto;
  left: 2px;
  margin-bottom: -4px;
}
.ant-slider-tooltip .ant-tooltip-inner {
  min-width: unset;
}
.ant-slider-rtl.ant-slider-vertical .ant-slider-handle {
  margin-right: -5px;
  margin-left: 0;
}
.ant-slider-rtl.ant-slider-vertical .ant-slider-mark {
  right: 12px;
  left: auto;
}
.ant-slider-rtl.ant-slider-vertical .ant-slider-mark-text {
  right: 4px;
  left: auto;
}
.ant-slider-rtl.ant-slider-vertical .ant-slider-dot {
  right: 2px;
  left: auto;
}
.ant-slider-with-marks {
  margin-bottom: 28px;
}
.ant-slider-rail {
  position: absolute;
  width: 100%;
  height: 4px;
  background-color: #f5f5f5;
  border-radius: 2px;
  transition: background-color 0.3s;
}
.ant-slider-track {
  position: absolute;
  height: 4px;
  background-color: #91d5ff;
  border-radius: 2px;
  transition: background-color 0.3s;
}
.ant-slider-handle {
  position: absolute;
  width: 14px;
  height: 14px;
  margin-top: -5px;
  background-color: #fff;
  border: solid 2px #91d5ff;
  border-radius: 50%;
  box-shadow: 0;
  cursor: pointer;
  transition: border-color 0.3s, box-shadow 0.6s, transform 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28);
}
.ant-slider-handle-dragging.ant-slider-handle-dragging.ant-slider-handle-dragging {
  border-color: #46a6ff;
  box-shadow: 0 0 0 5px rgba(24, 144, 255, 0.12);
}
.ant-slider-handle:focus {
  border-color: #46a6ff;
  outline: none;
  box-shadow: 0 0 0 5px rgba(24, 144, 255, 0.12);
}
.ant-slider-handle.ant-tooltip-open {
  border-color: #1890ff;
}
.ant-slider:hover .ant-slider-rail {
  background-color: #e1e1e1;
}
.ant-slider:hover .ant-slider-track {
  background-color: #69c0ff;
}
.ant-slider:hover .ant-slider-handle:not(.ant-tooltip-open) {
  border-color: #69c0ff;
}
.ant-slider-mark {
  position: absolute;
  top: 14px;
  left: 0;
  width: 100%;
  font-size: 14px;
}
.ant-slider-mark-text {
  position: absolute;
  display: inline-block;
  color: rgba(0, 0, 0, 0.45);
  text-align: center;
  word-break: keep-all;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.ant-slider-mark-text-active {
  color: rgba(0, 0, 0, 0.85);
}
.ant-slider-step {
  position: absolute;
  width: 100%;
  height: 4px;
  background: transparent;
}
.ant-slider-dot {
  position: absolute;
  top: -2px;
  width: 8px;
  height: 8px;
  margin-left: -4px;
  background-color: #fff;
  border: 2px solid #f0f0f0;
  border-radius: 50%;
  cursor: pointer;
}
.ant-slider-dot:first-child {
  margin-left: -4px;
}
.ant-slider-dot:last-child {
  margin-left: -4px;
}
.ant-slider-dot-active {
  border-color: #8cc8ff;
}
.ant-slider-disabled {
  cursor: not-allowed;
}
.ant-slider-disabled .ant-slider-track {
  background-color: rgba(0, 0, 0, 0.25) !important;
}
.ant-slider-disabled .ant-slider-handle,
.ant-slider-disabled .ant-slider-dot {
  background-color: #fff;
  border-color: rgba(0, 0, 0, 0.25) !important;
  box-shadow: none;
  cursor: not-allowed;
}
.ant-slider-disabled .ant-slider-mark-text,
.ant-slider-disabled .ant-slider-dot {
  cursor: not-allowed !important;
}
.ant-slider-rtl {
  direction: rtl;
}
.ant-slider-rtl .ant-slider-mark {
  right: 0;
  left: auto;
}
.ant-slider-rtl .ant-slider-dot {
  margin-right: -4px;
  margin-left: 0;
}
.ant-slider-rtl .ant-slider-dot:first-child {
  margin-right: -4px;
  margin-left: 0;
}
.ant-slider-rtl .ant-slider-dot:last-child {
  margin-right: -4px;
  margin-left: 0;
}
.ant-modal {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-variant: tabular-nums;
  line-height: 1.5715;
  list-style: none;
  font-feature-settings: 'tnum';
  pointer-events: none;
  position: relative;
  top: 100px;
  width: auto;
  max-width: calc(100vw - 32px);
  margin: 0 auto;
  padding-bottom: 24px;
}
.ant-modal.zoom-enter,
.ant-modal.zoom-appear {
  transform: none;
  opacity: 0;
  -webkit-animation-duration: 0.3s;
          animation-duration: 0.3s;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.ant-modal-mask {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1000;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.45);
}
.ant-modal-mask-hidden {
  display: none;
}
.ant-modal-wrap {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  overflow: auto;
  outline: 0;
  -webkit-overflow-scrolling: touch;
}
.ant-modal-wrap {
  z-index: 1000;
}
.ant-modal-title {
  margin: 0;
  color: rgba(0, 0, 0, 0.85);
  font-weight: 500;
  font-size: 16px;
  line-height: 22px;
  word-wrap: break-word;
}
.ant-modal-content {
  position: relative;
  background-color: #fff;
  background-clip: padding-box;
  border: 0;
  border-radius: 2px;
  box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
  pointer-events: auto;
}
.ant-modal-close {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 10;
  padding: 0;
  color: rgba(0, 0, 0, 0.45);
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  background: transparent;
  border: 0;
  outline: 0;
  cursor: pointer;
  transition: color 0.3s;
}
.ant-modal-close-x {
  display: block;
  width: 56px;
  height: 56px;
  font-size: 16px;
  font-style: normal;
  line-height: 56px;
  text-align: center;
  text-transform: none;
  text-rendering: auto;
}
.ant-modal-close:focus,
.ant-modal-close:hover {
  color: rgba(0, 0, 0, 0.75);
  text-decoration: none;
}
.ant-modal-header {
  padding: 16px 24px;
  color: rgba(0, 0, 0, 0.85);
  background: #fff;
  border-bottom: 1px solid #f0f0f0;
  border-radius: 2px 2px 0 0;
}
.ant-modal-body {
  padding: 24px;
  font-size: 14px;
  line-height: 1.5715;
  word-wrap: break-word;
}
.ant-modal-footer {
  padding: 10px 16px;
  text-align: right;
  background: transparent;
  border-top: 1px solid #f0f0f0;
  border-radius: 0 0 2px 2px;
}
.ant-modal-footer button + button {
  margin-bottom: 0;
  margin-left: 8px;
}
.ant-modal-open {
  overflow: hidden;
}
.ant-modal-centered {
  text-align: center;
}
.ant-modal-centered::before {
  display: inline-block;
  width: 0;
  height: 100%;
  vertical-align: middle;
  content: '';
}
.ant-modal-centered .ant-modal {
  top: 0;
  display: inline-block;
  text-align: left;
  vertical-align: middle;
}
@media (max-width: 767px) {
  .ant-modal {
    max-width: calc(100vw - 16px);
    margin: 8px auto;
  }
  .ant-modal-centered .ant-modal {
    flex: 1;
  }
}
.ant-modal-confirm .ant-modal-header {
  display: none;
}
.ant-modal-confirm .ant-modal-body {
  padding: 32px 32px 24px;
}
.ant-modal-confirm-body-wrapper::before {
  display: table;
  content: '';
}
.ant-modal-confirm-body-wrapper::after {
  display: table;
  clear: both;
  content: '';
}
.ant-modal-confirm-body-wrapper::before {
  display: table;
  content: '';
}
.ant-modal-confirm-body-wrapper::after {
  display: table;
  clear: both;
  content: '';
}
.ant-modal-confirm-body .ant-modal-confirm-title {
  display: block;
  overflow: hidden;
  color: rgba(0, 0, 0, 0.85);
  font-weight: 500;
  font-size: 16px;
  line-height: 1.4;
}
.ant-modal-confirm-body .ant-modal-confirm-content {
  margin-top: 8px;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
}
.ant-modal-confirm-body > .anticon {
  float: left;
  margin-right: 16px;
  font-size: 22px;
}
.ant-modal-confirm-body > .anticon + .ant-modal-confirm-title + .ant-modal-confirm-content {
  margin-left: 38px;
}
.ant-modal-confirm .ant-modal-confirm-btns {
  float: right;
  margin-top: 24px;
}
.ant-modal-confirm .ant-modal-confirm-btns button + button {
  margin-bottom: 0;
  margin-left: 8px;
}
.ant-modal-confirm-error .ant-modal-confirm-body > .anticon {
  color: #ff4d4f;
}
.ant-modal-confirm-warning .ant-modal-confirm-body > .anticon,
.ant-modal-confirm-confirm .ant-modal-confirm-body > .anticon {
  color: #faad14;
}
.ant-modal-confirm-info .ant-modal-confirm-body > .anticon {
  color: #1890ff;
}
.ant-modal-confirm-success .ant-modal-confirm-body > .anticon {
  color: #52c41a;
}
.ant-modal-wrap-rtl {
  direction: rtl;
}
.ant-modal-wrap-rtl .ant-modal-close {
  right: initial;
  left: 0;
}
.ant-modal-wrap-rtl .ant-modal-footer {
  text-align: left;
}
.ant-modal-wrap-rtl .ant-modal-footer button + button {
  margin-right: 8px;
  margin-left: 0;
}
.ant-modal-wrap-rtl .ant-modal-confirm-body {
  direction: rtl;
}
.ant-modal-wrap-rtl .ant-modal-confirm-body > .anticon {
  float: right;
  margin-right: 0;
  margin-left: 16px;
}
.ant-modal-wrap-rtl .ant-modal-confirm-body > .anticon + .ant-modal-confirm-title + .ant-modal-confirm-content {
  margin-right: 38px;
  margin-left: 0;
}
.ant-modal-wrap-rtl .ant-modal-confirm-btns {
  float: left;
}
.ant-modal-wrap-rtl .ant-modal-confirm-btns button + button {
  margin-right: 8px;
  margin-left: 0;
}
.ant-modal-wrap-rtl.ant-modal-centered .ant-modal {
  text-align: right;
}
.ant-select-single .ant-select-selector {
  display: flex;
}
.ant-select-single .ant-select-selector .ant-select-selection-search {
  position: absolute;
  top: 0;
  right: 11px;
  bottom: 0;
  left: 11px;
}
.ant-select-single .ant-select-selector .ant-select-selection-search-input {
  width: 100%;
}
.ant-select-single .ant-select-selector .ant-select-selection-item,
.ant-select-single .ant-select-selector .ant-select-selection-placeholder {
  padding: 0;
  line-height: 30px;
  transition: all 0.3s;
}
@supports (-moz-appearance: meterbar) {
  .ant-select-single .ant-select-selector .ant-select-selection-item,
  .ant-select-single .ant-select-selector .ant-select-selection-placeholder {
    line-height: 30px;
  }
}
.ant-select-single .ant-select-selector .ant-select-selection-item {
  position: relative;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.ant-select-single .ant-select-selector .ant-select-selection-placeholder {
  pointer-events: none;
}
.ant-select-single .ant-select-selector::after,
.ant-select-single .ant-select-selector .ant-select-selection-item::after,
.ant-select-single .ant-select-selector .ant-select-selection-placeholder::after {
  display: inline-block;
  width: 0;
  visibility: hidden;
  content: '\a0';
}
.ant-select-single.ant-select-show-arrow .ant-select-selection-search {
  right: 25px;
}
.ant-select-single.ant-select-show-arrow .ant-select-selection-item,
.ant-select-single.ant-select-show-arrow .ant-select-selection-placeholder {
  padding-right: 18px;
}
.ant-select-single.ant-select-open .ant-select-selection-item {
  color: #bfbfbf;
}
.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
  width: 100%;
  height: 32px;
  padding: 0 11px;
}
.ant-select-single:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input {
  height: 30px;
}
.ant-select-single:not(.ant-select-customize-input) .ant-select-selector::after {
  line-height: 30px;
}
.ant-select-single.ant-select-customize-input .ant-select-selector::after {
  display: none;
}
.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-search {
  position: static;
  width: 100%;
}
.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder {
  position: absolute;
  right: 0;
  left: 0;
  padding: 0 11px;
}
.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder::after {
  display: none;
}
.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector {
  height: 40px;
}
.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector::after,
.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-item,
.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-placeholder {
  line-height: 38px;
}
.ant-select-single.ant-select-lg:not(.ant-select-customize-input):not(.ant-select-customize-input) .ant-select-selection-search-input {
  height: 38px;
}
.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector {
  height: 24px;
}
.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector::after,
.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-item,
.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-placeholder {
  line-height: 22px;
}
.ant-select-single.ant-select-sm:not(.ant-select-customize-input):not(.ant-select-customize-input) .ant-select-selection-search-input {
  height: 22px;
}
.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selection-search {
  right: 7px;
  left: 7px;
}
.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector {
  padding: 0 7px;
}
.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-search {
  right: 28px;
}
.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-item,
.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-placeholder {
  padding-right: 21px;
}
.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector {
  padding: 0 11px;
}
/**
 * Do not merge `height` & `line-height` under style with `selection` & `search`,
 * since chrome may update to redesign with its align logic.
 */
.ant-select-selection-overflow {
  position: relative;
  display: flex;
  flex: auto;
  flex-wrap: wrap;
  max-width: 100%;
}
.ant-select-selection-overflow-item {
  flex: none;
  max-width: 100%;
}
.ant-select-multiple .ant-select-selector {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  padding: 1px 4px;
}
.ant-select-show-search.ant-select-multiple .ant-select-selector {
  cursor: text;
}
.ant-select-disabled.ant-select-multiple .ant-select-selector {
  background: #f5f5f5;
  cursor: not-allowed;
}
.ant-select-multiple .ant-select-selector::after {
  display: inline-block;
  width: 0;
  margin: 2px 0;
  line-height: 24px;
  content: '\a0';
}
.ant-select-multiple.ant-select-show-arrow .ant-select-selector,
.ant-select-multiple.ant-select-allow-clear .ant-select-selector {
  padding-right: 24px;
}
.ant-select-multiple .ant-select-selection-item {
  position: relative;
  display: flex;
  flex: none;
  box-sizing: border-box;
  max-width: 100%;
  height: 24px;
  margin-top: 2px;
  -webkit-margin-end: 4px;
          margin-inline-end: 4px;
  margin-bottom: 2px;
  -webkit-padding-start: 8px;
          padding-inline-start: 8px;
  -webkit-padding-end: 4px;
          padding-inline-end: 4px;
  line-height: 22px;
  background: #f5f5f5;
  border: 1px solid #f0f0f0;
  border-radius: 2px;
  cursor: default;
  transition: font-size 0.3s, line-height 0.3s, height 0.3s;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.ant-select-disabled.ant-select-multiple .ant-select-selection-item {
  color: #bfbfbf;
  border-color: #d9d9d9;
  cursor: not-allowed;
}
.ant-select-multiple .ant-select-selection-item-content {
  display: inline-block;
  margin-right: 4px;
  overflow: hidden;
  white-space: pre;
  text-overflow: ellipsis;
}
.ant-select-multiple .ant-select-selection-item-remove {
  color: inherit;
  font-style: normal;
  line-height: 0;
  text-align: center;
  text-transform: none;
  vertical-align: -0.125em;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  display: inline-block;
  color: rgba(0, 0, 0, 0.45);
  font-weight: bold;
  font-size: 10px;
  line-height: inherit;
  cursor: pointer;
}
.ant-select-multiple .ant-select-selection-item-remove > * {
  line-height: 1;
}
.ant-select-multiple .ant-select-selection-item-remove svg {
  display: inline-block;
}
.ant-select-multiple .ant-select-selection-item-remove::before {
  display: none;
}
.ant-select-multiple .ant-select-selection-item-remove .ant-select-multiple .ant-select-selection-item-remove-icon {
  display: block;
}
.ant-select-multiple .ant-select-selection-item-remove > .anticon {
  vertical-align: -0.2em;
}
.ant-select-multiple .ant-select-selection-item-remove:hover {
  color: rgba(0, 0, 0, 0.75);
}
.ant-select-multiple .ant-select-selection-overflow-item + .ant-select-selection-overflow-item .ant-select-selection-search {
  -webkit-margin-start: 0;
          margin-inline-start: 0;
}
.ant-select-multiple .ant-select-selection-search {
  position: relative;
  max-width: 100%;
  margin-top: 2px;
  margin-bottom: 2px;
  -webkit-margin-start: 7px;
          margin-inline-start: 7px;
}
.ant-select-multiple .ant-select-selection-search-input,
.ant-select-multiple .ant-select-selection-search-mirror {
  height: 24px;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
  line-height: 24px;
  transition: all 0.3s;
}
.ant-select-multiple .ant-select-selection-search-input {
  width: 100%;
  min-width: 4.1px;
}
.ant-select-multiple .ant-select-selection-search-mirror {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 999;
  white-space: pre;
  visibility: hidden;
}
.ant-select-multiple .ant-select-selection-placeholder {
  position: absolute;
  top: 50%;
  right: 11px;
  left: 11px;
  transform: translateY(-50%);
  transition: all 0.3s;
}
.ant-select-multiple.ant-select-lg .ant-select-selector::after {
  line-height: 32px;
}
.ant-select-multiple.ant-select-lg .ant-select-selection-item {
  height: 32px;
  line-height: 30px;
}
.ant-select-multiple.ant-select-lg .ant-select-selection-search {
  height: 33px;
  line-height: 33px;
}
.ant-select-multiple.ant-select-lg .ant-select-selection-search-input,
.ant-select-multiple.ant-select-lg .ant-select-selection-search-mirror {
  height: 32px;
  line-height: 30px;
}
.ant-select-multiple.ant-select-sm .ant-select-selector::after {
  line-height: 16px;
}
.ant-select-multiple.ant-select-sm .ant-select-selection-item {
  height: 16px;
  line-height: 14px;
}
.ant-select-multiple.ant-select-sm .ant-select-selection-search {
  height: 17px;
  line-height: 17px;
}
.ant-select-multiple.ant-select-sm .ant-select-selection-search-input,
.ant-select-multiple.ant-select-sm .ant-select-selection-search-mirror {
  height: 16px;
  line-height: 14px;
}
.ant-select-multiple.ant-select-sm .ant-select-selection-placeholder {
  left: 7px;
}
.ant-select-multiple.ant-select-sm .ant-select-selection-search:first-child .ant-select-selection-search-input {
  margin-left: 3px;
}
.ant-select-multiple.ant-select-lg .ant-select-selection-item {
  height: 32px;
  line-height: 32px;
}
.ant-select-disabled .ant-select-selection-item-remove {
  display: none;
}
/* Reset search input style */
.ant-select {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-variant: tabular-nums;
  line-height: 1.5715;
  list-style: none;
  font-feature-settings: 'tnum';
  position: relative;
  display: inline-block;
  cursor: pointer;
}
.ant-select:not(.ant-select-customize-input) .ant-select-selector {
  position: relative;
  background-color: #fff;
  border: 1px solid #d9d9d9;
  border-radius: 2px;
  transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
}
.ant-select:not(.ant-select-customize-input) .ant-select-selector input {
  cursor: pointer;
}
.ant-select-show-search.ant-select:not(.ant-select-customize-input) .ant-select-selector {
  cursor: text;
}
.ant-select-show-search.ant-select:not(.ant-select-customize-input) .ant-select-selector input {
  cursor: auto;
}
.ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector {
  border-color: #40a9ff;
  border-right-width: 1px !important;
  outline: 0;
  box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
}
.ant-input-rtl .ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector {
  border-right-width: 0;
  border-left-width: 1px !important;
}
.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector {
  color: rgba(0, 0, 0, 0.25);
  background: #f5f5f5;
  cursor: not-allowed;
}
.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector input {
  cursor: not-allowed;
}
.ant-select:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input {
  margin: 0;
  padding: 0;
  background: transparent;
  border: none;
  outline: none;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
.ant-select:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input::-webkit-search-cancel-button {
  display: none;
  -webkit-appearance: none;
}
.ant-select:not(.ant-select-disabled):hover .ant-select-selector {
  border-color: #40a9ff;
  border-right-width: 1px !important;
}
.ant-input-rtl .ant-select:not(.ant-select-disabled):hover .ant-select-selector {
  border-right-width: 0;
  border-left-width: 1px !important;
}
.ant-select-selection-item {
  flex: 1;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
@media all and (-ms-high-contrast: none) {
  .ant-select-selection-item *::-ms-backdrop,
  .ant-select-selection-item {
    flex: auto;
  }
}
.ant-select-selection-placeholder {
  flex: 1;
  overflow: hidden;
  color: #bfbfbf;
  white-space: nowrap;
  text-overflow: ellipsis;
  pointer-events: none;
}
@media all and (-ms-high-contrast: none) {
  .ant-select-selection-placeholder *::-ms-backdrop,
  .ant-select-selection-placeholder {
    flex: auto;
  }
}
.ant-select-arrow {
  display: inline-block;
  color: inherit;
  font-style: normal;
  line-height: 0;
  text-transform: none;
  vertical-align: -0.125em;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  position: absolute;
  top: 53%;
  right: 11px;
  width: 12px;
  height: 12px;
  margin-top: -6px;
  color: rgba(0, 0, 0, 0.25);
  font-size: 12px;
  line-height: 1;
  text-align: center;
  pointer-events: none;
}
.ant-select-arrow > * {
  line-height: 1;
}
.ant-select-arrow svg {
  display: inline-block;
}
.ant-select-arrow::before {
  display: none;
}
.ant-select-arrow .ant-select-arrow-icon {
  display: block;
}
.ant-select-arrow .anticon {
  vertical-align: top;
  transition: transform 0.3s;
}
.ant-select-arrow .anticon > svg {
  vertical-align: top;
}
.ant-select-arrow .anticon:not(.ant-select-suffix) {
  pointer-events: auto;
}
.ant-select-disabled .ant-select-arrow {
  cursor: not-allowed;
}
.ant-select-clear {
  position: absolute;
  top: 50%;
  right: 11px;
  z-index: 1;
  display: inline-block;
  width: 12px;
  height: 12px;
  margin-top: -6px;
  color: rgba(0, 0, 0, 0.25);
  font-size: 12px;
  font-style: normal;
  line-height: 1;
  text-align: center;
  text-transform: none;
  background: #fff;
  cursor: pointer;
  opacity: 0;
  transition: color 0.3s ease, opacity 0.15s ease;
  text-rendering: auto;
}
.ant-select-clear::before {
  display: block;
}
.ant-select-clear:hover {
  color: rgba(0, 0, 0, 0.45);
}
.ant-select:hover .ant-select-clear {
  opacity: 1;
}
.ant-select-dropdown {
  margin: 0;
  padding: 0;
  color: rgba(0, 0, 0, 0.85);
  font-variant: tabular-nums;
  line-height: 1.5715;
  list-style: none;
  font-feature-settings: 'tnum';
  position: absolute;
  top: -9999px;
  left: -9999px;
  z-index: 1050;
  box-sizing: border-box;
  padding: 4px 0;
  overflow: hidden;
  font-size: 14px;
  font-variant: initial;
  background-color: #fff;
  border-radius: 2px;
  outline: none;
  box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
}
.ant-select-dropdown.slide-up-enter.slide-up-enter-active.ant-select-dropdown-placement-bottomLeft,
.ant-select-dropdown.slide-up-appear.slide-up-appear-active.ant-select-dropdown-placement-bottomLeft {
  -webkit-animation-name: antSlideUpIn;
          animation-name: antSlideUpIn;
}
.ant-select-dropdown.slide-up-enter.slide-up-enter-active.ant-select-dropdown-placement-topLeft,
.ant-select-dropdown.slide-up-appear.slide-up-appear-active.ant-select-dropdown-placement-topLeft {
  -webkit-animation-name: antSlideDownIn;
          animation-name: antSlideDownIn;
}
.ant-select-dropdown.slide-up-leave.slide-up-leave-active.ant-select-dropdown-placement-bottomLeft {
  -webkit-animation-name: antSlideUpOut;
          animation-name: antSlideUpOut;
}
.ant-select-dropdown.slide-up-leave.slide-up-leave-active.ant-select-dropdown-placement-topLeft {
  -webkit-animation-name: antSlideDownOut;
          animation-name: antSlideDownOut;
}
.ant-select-dropdown-hidden {
  display: none;
}
.ant-select-dropdown-empty {
  color: rgba(0, 0, 0, 0.25);
}
.ant-select-item-empty {
  position: relative;
  display: block;
  min-height: 32px;
  padding: 5px 12px;
  color: rgba(0, 0, 0, 0.85);
  font-weight: normal;
  font-size: 14px;
  line-height: 22px;
  color: rgba(0, 0, 0, 0.25);
}
.ant-select-item {
  position: relative;
  display: block;
  min-height: 32px;
  padding: 5px 12px;
  color: rgba(0, 0, 0, 0.85);
  font-weight: normal;
  font-size: 14px;
  line-height: 22px;
  cursor: pointer;
  transition: background 0.3s ease;
}
.ant-select-item-group {
  color: rgba(0, 0, 0, 0.45);
  font-size: 12px;
  cursor: default;
}
.ant-select-item-option {
  display: flex;
}
.ant-select-item-option-content {
  flex: auto;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.ant-select-item-option-state {
  flex: none;
}
.ant-select-item-option-active:not(.ant-select-item-option-disabled) {
  background-color: #f5f5f5;
}
.ant-select-item-option-selected:not(.ant-select-item-option-disabled) {
  color: rgba(0, 0, 0, 0.85);
  font-weight: 600;
  background-color: #e6f7ff;
}
.ant-select-item-option-selected:not(.ant-select-item-option-disabled) .ant-select-item-option-state {
  color: #1890ff;
}
.ant-select-item-option-disabled {
  color: rgba(0, 0, 0, 0.25);
  cursor: not-allowed;
}
.ant-select-item-option-grouped {
  padding-left: 24px;
}
.ant-select-lg {
  font-size: 16px;
}
.ant-select-borderless .ant-select-selector {
  background-color: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}
.ant-select-rtl {
  direction: rtl;
}
.ant-select-rtl .ant-select-arrow {
  right: initial;
  left: 11px;
}
.ant-select-rtl .ant-select-clear {
  right: initial;
  left: 11px;
}
.ant-select-dropdown-rtl {
  direction: rtl;
}
.ant-select-dropdown-rtl .ant-select-item-option-grouped {
  padding-right: 24px;
  padding-left: 12px;
}
.ant-select-rtl.ant-select-multiple.ant-select-show-arrow .ant-select-selector,
.ant-select-rtl.ant-select-multiple.ant-select-allow-clear .ant-select-selector {
  padding-right: 4px;
  padding-left: 24px;
}
.ant-select-rtl.ant-select-multiple .ant-select-selection-item {
  text-align: right;
}
.ant-select-rtl.ant-select-multiple .ant-select-selection-item-content {
  margin-right: 0;
  margin-left: 4px;
  text-align: right;
}
.ant-select-rtl.ant-select-multiple .ant-select-selection-search-mirror {
  right: 0;
  left: auto;
}
.ant-select-rtl.ant-select-multiple .ant-select-selection-search:first-child > .ant-select-selection-search-input {
  margin-right: 5px !important;
  margin-left: 0 !important;
}
.ant-select-rtl.ant-select-multiple .ant-select-selection-placeholder {
  right: 11px;
  left: auto;
}
.ant-select-rtl.ant-select-multiple.ant-select-sm .ant-select-selection-placeholder {
  right: 7px;
}
.ant-select-rtl.ant-select-single .ant-select-selector .ant-select-selection-item,
.ant-select-rtl.ant-select-single .ant-select-selector .ant-select-selection-placeholder {
  right: 0;
  left: 9px;
  text-align: right;
}
.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-search {
  right: 11px;
  left: 25px;
}
.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-item,
.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-placeholder {
  padding-right: 0;
  padding-left: 18px;
}
.ant-select-rtl.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
  padding: 0 11px;
}
.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-search {
  right: 0;
}
.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-item,
.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-placeholder {
  padding-right: 0;
  padding-left: 21px;
}
.ant-empty {
  margin: 0 8px;
  font-size: 14px;
  line-height: 1.5715;
  text-align: center;
}
.ant-empty-image {
  height: 100px;
  margin-bottom: 8px;
}
.ant-empty-image img {
  height: 100%;
}
.ant-empty-image svg {
  height: 100%;
  margin: auto;
}
.ant-empty-footer {
  margin-top: 16px;
}
.ant-empty-normal {
  margin: 32px 0;
  color: rgba(0, 0, 0, 0.25);
}
.ant-empty-normal .ant-empty-image {
  height: 40px;
}
.ant-empty-small {
  margin: 8px 0;
  color: rgba(0, 0, 0, 0.25);
}
.ant-empty-small .ant-empty-image {
  height: 35px;
}
.ant-empty-img-default-ellipse {
  fill-opacity: 0.8;
  fill: #f5f5f5;
}
.ant-empty-img-default-path-1 {
  fill: #aeb8c2;
}
.ant-empty-img-default-path-2 {
  fill: url(#linearGradient-1);
}
.ant-empty-img-default-path-3 {
  fill: #f5f5f7;
}
.ant-empty-img-default-path-4 {
  fill: #dce0e6;
}
.ant-empty-img-default-path-5 {
  fill: #dce0e6;
}
.ant-empty-img-default-g {
  fill: #fff;
}
.ant-empty-img-simple-ellipse {
  fill: #f5f5f5;
}
.ant-empty-img-simple-g {
  stroke: #d9d9d9;
}
.ant-empty-img-simple-path {
  fill: #fafafa;
}
.ant-empty-rtl {
  direction: rtl;
}
nz-empty {
  display: block;
}
.ant-select-dropdown {
  top: 100%;
  left: 0;
  position: relative;
  width: 100%;
  margin-top: 4px;
  margin-bottom: 4px;
  display: block;
}
.ant-select-dropdown .cdk-virtual-scroll-content-wrapper {
  right: 0;
}
.ant-select-dropdown .full-width {
  contain: initial;
}
.ant-select-dropdown .full-width .cdk-virtual-scroll-content-wrapper {
  position: static;
}
.ant-alert {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-variant: tabular-nums;
  line-height: 1.5715;
  list-style: none;
  font-feature-settings: 'tnum';
  position: relative;
  display: flex;
  align-items: center;
  padding: 8px 15px;
  word-wrap: break-word;
  border-radius: 2px;
}
.ant-alert-content {
  flex: 1;
  min-width: 0;
}
.ant-alert-icon {
  margin-right: 8px;
}
.ant-alert-description {
  display: none;
  font-size: 14px;
  line-height: 22px;
}
.ant-alert-success {
  background-color: #f6ffed;
  border: 1px solid #b7eb8f;
}
.ant-alert-success .ant-alert-icon {
  color: #52c41a;
}
.ant-alert-info {
  background-color: #e6f7ff;
  border: 1px solid #91d5ff;
}
.ant-alert-info .ant-alert-icon {
  color: #1890ff;
}
.ant-alert-warning {
  background-color: #fffbe6;
  border: 1px solid #ffe58f;
}
.ant-alert-warning .ant-alert-icon {
  color: #faad14;
}
.ant-alert-error {
  background-color: #fff2f0;
  border: 1px solid #ffccc7;
}
.ant-alert-error .ant-alert-icon {
  color: #ff4d4f;
}
.ant-alert-error .ant-alert-description > pre {
  margin: 0;
  padding: 0;
}
.ant-alert-action {
  margin-left: 8px;
}
.ant-alert-close-icon {
  margin-left: 8px;
  padding: 0;
  overflow: hidden;
  font-size: 12px;
  line-height: 12px;
  background-color: transparent;
  border: none;
  outline: none;
  cursor: pointer;
}
.ant-alert-close-icon .anticon-close {
  color: rgba(0, 0, 0, 0.45);
  transition: color 0.3s;
}
.ant-alert-close-icon .anticon-close:hover {
  color: rgba(0, 0, 0, 0.75);
}
.ant-alert-close-text {
  color: rgba(0, 0, 0, 0.45);
  transition: color 0.3s;
}
.ant-alert-close-text:hover {
  color: rgba(0, 0, 0, 0.75);
}
.ant-alert-with-description {
  align-items: flex-start;
  padding: 15px 15px 15px 24px;
}
.ant-alert-with-description.ant-alert-no-icon {
  padding: 15px 15px;
}
.ant-alert-with-description .ant-alert-icon {
  margin-right: 15px;
  font-size: 24px;
}
.ant-alert-with-description .ant-alert-message {
  display: block;
  margin-bottom: 4px;
  color: rgba(0, 0, 0, 0.85);
  font-size: 16px;
}
.ant-alert-message {
  color: rgba(0, 0, 0, 0.85);
}
.ant-alert-with-description .ant-alert-description {
  display: block;
}
.ant-alert.ant-alert-motion-leave {
  overflow: hidden;
  opacity: 1;
  transition: max-height 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86), opacity 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86), padding-top 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86), padding-bottom 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86), margin-bottom 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
}
.ant-alert.ant-alert-motion-leave-active {
  max-height: 0;
  margin-bottom: 0 !important;
  padding-top: 0;
  padding-bottom: 0;
  opacity: 0;
}
.ant-alert-banner {
  margin-bottom: 0;
  border: 0;
  border-radius: 0;
}
.ant-alert.ant-alert-rtl {
  direction: rtl;
}
.ant-alert-rtl.ant-alert.ant-alert-no-icon {
  padding: 8px 15px;
}
.ant-alert-rtl .ant-alert-icon {
  margin-right: auto;
  margin-left: 8px;
}
.ant-alert-rtl .ant-alert-action {
  margin-right: 8px;
  margin-left: auto;
}
.ant-alert-rtl .ant-alert-close-icon {
  margin-right: 8px;
  margin-left: auto;
}
.ant-alert-rtl.ant-alert-with-description .ant-alert-icon {
  margin-right: auto;
  margin-left: 15px;
}
nz-alert {
  display: block;
}
.ant-carousel {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-variant: tabular-nums;
  line-height: 1.5715;
  list-style: none;
  font-feature-settings: 'tnum';
}
.ant-carousel .slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-touch-callout: none;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}
.ant-carousel .slick-list {
  position: relative;
  display: block;
  margin: 0;
  padding: 0;
  overflow: hidden;
}
.ant-carousel .slick-list:focus {
  outline: none;
}
.ant-carousel .slick-list.dragging {
  cursor: pointer;
}
.ant-carousel .slick-list .slick-slide {
  pointer-events: none;
}
.ant-carousel .slick-list .slick-slide input.ant-radio-input,
.ant-carousel .slick-list .slick-slide input.ant-checkbox-input {
  visibility: hidden;
}
.ant-carousel .slick-list .slick-slide.slick-active {
  pointer-events: auto;
}
.ant-carousel .slick-list .slick-slide.slick-active input.ant-radio-input,
.ant-carousel .slick-list .slick-slide.slick-active input.ant-checkbox-input {
  visibility: visible;
}
.ant-carousel .slick-list .slick-slide > div > div {
  vertical-align: bottom;
}
.ant-carousel .slick-slider .slick-track,
.ant-carousel .slick-slider .slick-list {
  transform: translate3d(0, 0, 0);
  touch-action: pan-y;
}
.ant-carousel .slick-track {
  position: relative;
  top: 0;
  left: 0;
  display: block;
}
.ant-carousel .slick-track::before,
.ant-carousel .slick-track::after {
  display: table;
  content: '';
}
.ant-carousel .slick-track::after {
  clear: both;
}
.slick-loading .ant-carousel .slick-track {
  visibility: hidden;
}
.ant-carousel .slick-slide {
  display: none;
  float: left;
  height: 100%;
  min-height: 1px;
}
.ant-carousel .slick-slide img {
  display: block;
}
.ant-carousel .slick-slide.slick-loading img {
  display: none;
}
.ant-carousel .slick-slide.dragging img {
  pointer-events: none;
}
.ant-carousel .slick-initialized .slick-slide {
  display: block;
}
.ant-carousel .slick-loading .slick-slide {
  visibility: hidden;
}
.ant-carousel .slick-vertical .slick-slide {
  display: block;
  height: auto;
}
.ant-carousel .slick-arrow.slick-hidden {
  display: none;
}
.ant-carousel .slick-prev,
.ant-carousel .slick-next {
  position: absolute;
  top: 50%;
  display: block;
  width: 20px;
  height: 20px;
  margin-top: -10px;
  padding: 0;
  color: transparent;
  font-size: 0;
  line-height: 0;
  background: transparent;
  border: 0;
  outline: none;
  cursor: pointer;
}
.ant-carousel .slick-prev:hover,
.ant-carousel .slick-next:hover,
.ant-carousel .slick-prev:focus,
.ant-carousel .slick-next:focus {
  color: transparent;
  background: transparent;
  outline: none;
}
.ant-carousel .slick-prev:hover::before,
.ant-carousel .slick-next:hover::before,
.ant-carousel .slick-prev:focus::before,
.ant-carousel .slick-next:focus::before {
  opacity: 1;
}
.ant-carousel .slick-prev.slick-disabled::before,
.ant-carousel .slick-next.slick-disabled::before {
  opacity: 0.25;
}
.ant-carousel .slick-prev {
  left: -25px;
}
.ant-carousel .slick-prev::before {
  content: '←';
}
.ant-carousel .slick-next {
  right: -25px;
}
.ant-carousel .slick-next::before {
  content: '→';
}
.ant-carousel .slick-dots {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 15;
  display: flex !important;
  justify-content: center;
  margin-right: 15%;
  margin-left: 15%;
  padding-left: 0;
  list-style: none;
}
.ant-carousel .slick-dots-bottom {
  bottom: 12px;
}
.ant-carousel .slick-dots-top {
  top: 12px;
}
.ant-carousel .slick-dots li {
  position: relative;
  display: inline-block;
  flex: 0 1 auto;
  box-sizing: content-box;
  width: 16px;
  height: 3px;
  margin: 0 2px;
  margin-right: 3px;
  margin-left: 3px;
  padding: 0;
  text-align: center;
  text-indent: -999px;
  vertical-align: top;
  transition: all 0.5s;
}
.ant-carousel .slick-dots li button {
  display: block;
  width: 100%;
  height: 3px;
  padding: 0;
  color: transparent;
  font-size: 0;
  background: #fff;
  border: 0;
  border-radius: 1px;
  outline: none;
  cursor: pointer;
  opacity: 0.3;
  transition: all 0.5s;
}
.ant-carousel .slick-dots li button:hover,
.ant-carousel .slick-dots li button:focus {
  opacity: 0.75;
}
.ant-carousel .slick-dots li.slick-active {
  width: 24px;
}
.ant-carousel .slick-dots li.slick-active button {
  background: #fff;
  opacity: 1;
}
.ant-carousel .slick-dots li.slick-active:hover,
.ant-carousel .slick-dots li.slick-active:focus {
  opacity: 1;
}
.ant-carousel-vertical .slick-dots {
  top: 50%;
  bottom: auto;
  flex-direction: column;
  width: 3px;
  height: auto;
  margin: 0;
  transform: translateY(-50%);
}
.ant-carousel-vertical .slick-dots-left {
  right: auto;
  left: 12px;
}
.ant-carousel-vertical .slick-dots-right {
  right: 12px;
  left: auto;
}
.ant-carousel-vertical .slick-dots li {
  width: 3px;
  height: 16px;
  margin: 4px 2px;
  vertical-align: baseline;
}
.ant-carousel-vertical .slick-dots li button {
  width: 3px;
  height: 16px;
}
.ant-carousel-vertical .slick-dots li.slick-active {
  width: 3px;
  height: 24px;
}
.ant-carousel-vertical .slick-dots li.slick-active button {
  width: 3px;
  height: 24px;
}
.ant-carousel-rtl {
  direction: rtl;
}
.ant-carousel-rtl .ant-carousel .slick-track {
  right: 0;
  left: auto;
}
.ant-carousel-rtl .ant-carousel .slick-prev {
  right: -25px;
  left: auto;
}
.ant-carousel-rtl .ant-carousel .slick-prev::before {
  content: '→';
}
.ant-carousel-rtl .ant-carousel .slick-next {
  right: auto;
  left: -25px;
}
.ant-carousel-rtl .ant-carousel .slick-next::before {
  content: '←';
}
.ant-carousel-rtl.ant-carousel .slick-dots {
  flex-direction: row-reverse;
}
.ant-carousel-rtl.ant-carousel-vertical .slick-dots {
  flex-direction: column;
}
nz-carousel {
  display: block;
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.slick-dots {
  display: block;
}
.slick-track {
  opacity: 1;
}
.slick-list {
  direction: ltr;
}
.ant-popover {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
  font-variant: tabular-nums;
  line-height: 1.5715;
  list-style: none;
  font-feature-settings: 'tnum';
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1030;
  font-weight: normal;
  white-space: normal;
  text-align: left;
  cursor: auto;
  -webkit-user-select: text;
     -moz-user-select: text;
          user-select: text;
}
.ant-popover::after {
  position: absolute;
  background: rgba(255, 255, 255, 0.01);
  content: '';
}
.ant-popover-hidden {
  display: none;
}
.ant-popover-placement-top,
.ant-popover-placement-topLeft,
.ant-popover-placement-topRight {
  padding-bottom: 10px;
}
.ant-popover-placement-right,
.ant-popover-placement-rightTop,
.ant-popover-placement-rightBottom {
  padding-left: 10px;
}
.ant-popover-placement-bottom,
.ant-popover-placement-bottomLeft,
.ant-popover-placement-bottomRight {
  padding-top: 10px;
}
.ant-popover-placement-left,
.ant-popover-placement-leftTop,
.ant-popover-placement-leftBottom {
  padding-right: 10px;
}
.ant-popover-inner {
  background-color: #fff;
  background-clip: padding-box;
  border-radius: 2px;
  box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.15) \9;
}
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .ant-popover {
    /* IE10+ */
  }
  .ant-popover-inner {
    box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
  }
}
.ant-popover-title {
  min-width: 177px;
  min-height: 32px;
  margin: 0;
  padding: 5px 16px 4px;
  color: rgba(0, 0, 0, 0.85);
  font-weight: 500;
  border-bottom: 1px solid #f0f0f0;
}
.ant-popover-inner-content {
  padding: 12px 16px;
  color: rgba(0, 0, 0, 0.85);
}
.ant-popover-message {
  position: relative;
  padding: 4px 0 12px;
  color: rgba(0, 0, 0, 0.85);
  font-size: 14px;
}
.ant-popover-message > .anticon {
  position: absolute;
  top: 8.0005px;
  color: #faad14;
  font-size: 14px;
}
.ant-popover-message-title {
  padding-left: 22px;
}
.ant-popover-buttons {
  margin-bottom: 4px;
  text-align: right;
}
.ant-popover-buttons button {
  margin-left: 8px;
}
.ant-popover-arrow {
  position: absolute;
  display: block;
  width: 8.48528137px;
  height: 8.48528137px;
  background: transparent;
  border-style: solid;
  border-width: 4.24264069px;
  transform: rotate(45deg);
}
.ant-popover-placement-top > .ant-popover-content > .ant-popover-arrow,
.ant-popover-placement-topLeft > .ant-popover-content > .ant-popover-arrow,
.ant-popover-placement-topRight > .ant-popover-content > .ant-popover-arrow {
  bottom: 6.2px;
  border-top-color: transparent;
  border-right-color: #fff;
  border-bottom-color: #fff;
  border-left-color: transparent;
  box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);
}
.ant-popover-placement-top > .ant-popover-content > .ant-popover-arrow {
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
}
.ant-popover-placement-topLeft > .ant-popover-content > .ant-popover-arrow {
  left: 16px;
}
.ant-popover-placement-topRight > .ant-popover-content > .ant-popover-arrow {
  right: 16px;
}
.ant-popover-placement-right > .ant-popover-content > .ant-popover-arrow,
.ant-popover-placement-rightTop > .ant-popover-content > .ant-popover-arrow,
.ant-popover-placement-rightBottom > .ant-popover-content > .ant-popover-arrow {
  left: 6px;
  border-top-color: transparent;
  border-right-color: transparent;
  border-bottom-color: #fff;
  border-left-color: #fff;
  box-shadow: -3px 3px 7px rgba(0, 0, 0, 0.07);
}
.ant-popover-placement-right > .ant-popover-content > .ant-popover-arrow {
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
}
.ant-popover-placement-rightTop > .ant-popover-content > .ant-popover-arrow {
  top: 12px;
}
.ant-popover-placement-rightBottom > .ant-popover-content > .ant-popover-arrow {
  bottom: 12px;
}
.ant-popover-placement-bottom > .ant-popover-content > .ant-popover-arrow,
.ant-popover-placement-bottomLeft > .ant-popover-content > .ant-popover-arrow,
.ant-popover-placement-bottomRight > .ant-popover-content > .ant-popover-arrow {
  top: 6px;
  border-top-color: #fff;
  border-right-color: transparent;
  border-bottom-color: transparent;
  border-left-color: #fff;
  box-shadow: -2px -2px 5px rgba(0, 0, 0, 0.06);
}
.ant-popover-placement-bottom > .ant-popover-content > .ant-popover-arrow {
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
}
.ant-popover-placement-bottomLeft > .ant-popover-content > .ant-popover-arrow {
  left: 16px;
}
.ant-popover-placement-bottomRight > .ant-popover-content > .ant-popover-arrow {
  right: 16px;
}
.ant-popover-placement-left > .ant-popover-content > .ant-popover-arrow,
.ant-popover-placement-leftTop > .ant-popover-content > .ant-popover-arrow,
.ant-popover-placement-leftBottom > .ant-popover-content > .ant-popover-arrow {
  right: 6px;
  border-top-color: #fff;
  border-right-color: #fff;
  border-bottom-color: transparent;
  border-left-color: transparent;
  box-shadow: 3px -3px 7px rgba(0, 0, 0, 0.07);
}
.ant-popover-placement-left > .ant-popover-content > .ant-popover-arrow {
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
}
.ant-popover-placement-leftTop > .ant-popover-content > .ant-popover-arrow {
  top: 12px;
}
.ant-popover-placement-leftBottom > .ant-popover-content > .ant-popover-arrow {
  bottom: 12px;
}
.ant-popover-rtl {
  direction: rtl;
  text-align: right;
}
.ant-popover-rtl .ant-popover-message-title {
  padding-right: 22px;
  padding-left: 16px;
}
.ant-popover-rtl .ant-popover-buttons {
  text-align: left;
}
.ant-popover-rtl .ant-popover-buttons button {
  margin-right: 8px;
  margin-left: 0;
}
.ant-popover {
  position: relative;
}
/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
/* stylelint-disable no-duplicate-selectors */
/* stylelint-disable */
/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
.uni--blockquote {
  border-left: 5px solid var(--uni-blue-100);
}
.uni--buttonold {
  width: 100%;
  --background: var(--uni-color-blue-dark);
  color: white;
}
.uni--buttonold__outline {
  margin-top: 2rem;
  border: var(--uni-color-blue-dark);
  --background: white;
  color: var(--uni-color-blue-dark);
  border: 1px solid var(--uni-color-blue-dark);
  border-radius: 4px;
}
.uni-link-button {
  outline: none;
  border: 1px solid #FFFFFF;
  min-height: 3rem;
  height: 3rem;
  border-radius: 1.5rem;
  background: transparent;
  color: #FFFFFF;
  opacity: 0.65;
  padding-left: 3rem;
  padding-right: 3rem;
}
.uni-link-button:hover,
.uni-link-button:focus,
.uni-link-button:active {
  color: #FFFFFF;
}
.uni--button {
  outline: none;
  border: none;
  min-height: 3rem;
  height: 3rem;
  border-radius: 37px;
  background-color: var(--uni-blue-100);
  padding-left: 3rem;
  padding-right: 3rem;
}
.uni--button:hover {
  box-shadow: 0 3px 6px #0000003B;
}
.uni--button:focus,
.uni--button:active {
  background-color: var(--uni-primary-800);
}
.uni--button__free-courses {
  background-color: var(--uni-free-course-primary);
  border: 1px solid var(--uni-free-course-dark);
}
.uni--button__free-courses:hover,
.uni--button__free-courses:focus,
.uni--button__free-courses:active {
  background-color: var(--uni-free-course-secondary);
}
.uni--button__small {
  min-height: 2rem;
  height: 2rem;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
textarea:-webkit-autofill:hover textarea:-webkit-autofill:focus,
select:-webkit-autofill,
select:-webkit-autofill:hover,
select:-webkit-autofill:focus {
  -webkit-text-fill-color: white !important;
  -webkit-transition: background-color 5000s ease-in-out 0s;
  transition: background-color 5000s ease-in-out 0s;
}
.uni--new-button {
  transition: ease-in 0.3s;
  min-height: 3rem;
  height: 3rem;
  border-radius: 37px;
  border: none;
  background-color: transparent;
  text-transform: uppercase;
  color: var(--uni-blue-200);
  font-weight: bold;
  padding-left: 3rem;
  padding-right: 3rem;
}
.uni--new-button:hover,
.uni--new-button:focus,
.uni--new-button:active {
  background-color: var(--uni-primary-800);
}
.uni--new-button__free-courses {
  background-color: var(--uni-free-course-primary);
  border: none;
}
.uni--new-button__free-courses:hover,
.uni--new-button__free-courses:focus,
.uni--new-button__free-courses:active {
  background-color: var(--uni-free-course-secondary);
}
.uni--new-button__small {
  min-height: 2rem;
  height: 2rem;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.uni--new-button-news:hover,
.uni--new-button-news:active,
.uni--new-button-news:focus {
  color: var(--uni-blue-200) !important;
  background-color: var(--uni-black-400) !important;
  box-shadow: none !important;
}
button {
  cursor: pointer !important;
}
.uni--primary-button {
  transition: ease-in 0.3s;
  color: var(--uni-grey-100);
  background-color: var(--uni-blue-100);
  border-radius: 25px;
  border: none;
  text-align: center;
  font-size: 0.9rem;
  min-width: 12rem;
  width: 12rem;
  min-height: 2.5rem;
  height: 3rem;
}
.uni--primary-button:hover {
  box-shadow: 0 0 10px 1px rgba(1, 169, 240, 0.44);
}
.uni--primary-button:active {
  box-shadow: none;
  background-color: var(--uni-blue-400);
  transition: none;
}
.uni--primary-button:disabled {
  background-color: var(--uni-grey-100);
  color: var(--uni-grey-300);
}
.uni--primary-button:disabled:hover {
  box-shadow: none;
}
.uni--secondary-button {
  transition: ease-in 0.3s;
  color: var(--uni-blue-100);
  background-color: transparent;
  border-radius: 25px;
  border: 1px solid var(--uni-blue-100);
  margin: 10px;
  text-align: center;
  font-size: 0.9rem;
  min-width: 8rem;
  width: 9rem;
  min-height: 2.7rem;
  height: 3rem;
}
.uni--secondary-button:hover {
  color: var(--uni-grey-100);
  border: 1px solid var(--uni-blue-400);
}
.uni--secondary-button:active {
  box-shadow: none;
  background-color: var(--uni-blue-400);
  color: var(--uni-grey-100);
  transition: none;
}
.uni--secondary-button:disabled {
  border: 1px solid var(--uni-grey-100);
  color: var(--uni-grey-100);
}
.uni--secondary-button:disabled:hover {
  box-shadow: none;
}
.ant-carousel .slick-dots li {
  background: #FFF;
}
.ant-carousel .slick-dots li.slick-active button {
  background: var(--uni-blue-100);
}
.uni--input {
  background-color: var(--uni-light-400);
  min-height: 3.5rem;
  height: 3.5rem;
  position: relative;
  padding: 1rem 1.5rem;
  border-radius: 37px;
  box-shadow: 0px 3px 6px #00000029;
  border: none;
  transition: none !important;
}
.uni--input .ant-input-affix-wrapper,
.uni--input .ant-input {
  transition: none !important;
}
.uni--input input {
  font-family: 'Segoe UI';
  font-size: 1rem;
  padding: 0;
  border: none;
}
.uni--input input::-moz-placeholder {
  -webkit-text-fill-color: var(--uni-contrast-300) !important;
  color: var(--uni-contrast-300) !important;
  background-color: var(--uni-light-400) !important;
  -webkit-box-shadow: 0 0 0 30px var(--uni-light-400) inset !important;
}
.uni--input input::placeholder {
  -webkit-text-fill-color: var(--uni-contrast-300) !important;
  color: var(--uni-contrast-300) !important;
  background-color: var(--uni-light-400) !important;
  -webkit-box-shadow: 0 0 0 30px var(--uni-light-400) inset !important;
}
.uni--input input,
.uni--input input:-internal-autofill-selected,
.uni--input input:-webkit-autofill,
.uni--input input:-webkit-autofill:hover,
.uni--input input:-webkit-autofill:focus,
.uni--input input:-webkit-autofill:active {
  -webkit-text-fill-color: var(--uni-contrast-500) !important;
  color: var(--uni-contrast-500) !important;
  background-color: var(--uni-light-400) !important;
  -webkit-box-shadow: 0 0 0 30px var(--uni-light-400) inset !important;
}
.uni--input input[type="text"]:hover,
.uni--input input[type="text"]:focus {
  outline: none !important;
}
.uni--input input:-moz-read-only {
  opacity: 0.6;
}
.uni--input input:disabled,
.uni--input input:read-only {
  opacity: 0.6;
}
.uni--input nz-spin {
  position: absolute;
  display: flex;
  justify-content: center;
  align-items: center;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 10;
}
.uni--input .ant-input-prefix {
  margin-right: 0.5rem;
}
.uni--input .ant-input-group-addon {
  background-color: transparent;
  border: none;
}
.uni--input .ant-input-group-addon > * {
  margin-right: -2.2rem;
  margin-top: -1rem;
}
.uni--new-input {
  background-color: transparent;
  margin-bottom: 20px;
  min-height: 3.5rem;
  height: 3.5rem;
  position: relative;
  padding: 1rem 1.5rem;
  border-radius: 37px;
  box-shadow: 0px 3px 6px #00000029;
  border: 1px solid var(--uni-grey-100);
  transition: none !important;
}
.uni--new-input .ant-input-affix-wrapper,
.uni--new-input .ant-input {
  transition: none !important;
}
.uni--new-input input {
  font-size: 1rem;
  background-color: transparent;
  padding: 0;
  border: none;
}
.uni--new-input input::-moz-placeholder {
  -webkit-text-fill-color: var(--uni-contrast-300) !important;
  color: var(--uni-grey-100) !important;
  background-color: transparent !important;
}
.uni--new-input input::placeholder {
  -webkit-text-fill-color: var(--uni-contrast-300) !important;
  color: var(--uni-grey-100) !important;
  background-color: transparent !important;
}
.uni--new-input input,
.uni--new-input input:-internal-autofill-selected,
.uni--new-input input:-webkit-autofill,
.uni--new-input input:-webkit-autofill:hover,
.uni--new-input input:-webkit-autofill:focus,
.uni--new-input input:-webkit-autofill:active {
  -webkit-text-fill-color: var(--uni-contrast-500) !important;
  color: var(--uni-grey-300) !important;
  background-color: transparent !important;
}
.uni--new-input input[type="text"]:hover,
.uni--new-input input[type="text"]:focus {
  outline: none !important;
}
.uni--new-input input:-moz-read-only {
  opacity: 0.6;
}
.uni--new-input input:disabled,
.uni--new-input input:read-only {
  opacity: 0.6;
}
.uni--new-input nz-spin {
  position: absolute;
  display: flex;
  justify-content: center;
  align-items: center;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 10;
}
.uni--new-input .ant-input-prefix {
  margin-right: 0.5rem;
}
.uni--new-input .ant-input-group-addon {
  background-color: transparent;
  border: none;
}
.uni--new-input .ant-input-group-addon > * {
  margin-right: -2.2rem;
  margin-top: -1rem;
}
.uni--box-label-float {
  position: relative;
  padding-top: 13px;
  width: var(--uni-input-width, 330px);
  display: flex;
  align-items: flex-end;
}
.uni--box-label-float .uni--input-text,
.uni--box-label-float .login--input-password {
  width: var(--uni-input-width, 330px);
  border: 0;
  border-bottom: 1px solid var(--uni-grey-300);
  background-color: transparent;
  outline: none;
  font-size: 15px;
  padding-left: 1rem;
  margin-top: 20px;
  transition: all 0.3s cubic-bezier(0.64, 0.09, 0.08, 1);
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  min-height: 2.5rem;
  height: 2.5rem;
}
.uni--box-label-float .uni--input-text:-webkit-autofill,
.uni--box-label-float .login--input-password:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 50px transparent inset;
  -webkit-text-fill-color: var(--uni-grey-300);
  /* Cor do texto */
}
.uni--box-label-float .uni--input-text:focus,
.uni--box-label-float .login--input-password:focus {
  border-bottom: 1px solid var(--uni-blue-200) !important;
}
.uni--box-label-float .uni--input-text::-moz-placeholder, .uni--box-label-float .login--input-password::-moz-placeholder {
  color: transparent;
}
.uni--box-label-float .uni--input-text::placeholder,
.uni--box-label-float .login--input-password::placeholder {
  color: transparent;
}
.uni--box-label-float .uni--label {
  position: absolute;
  top: 20px;
  left: 10px;
  margin-top: 20px;
  font-weight: lighter;
  font-size: 15px;
  transition: all 0.1s ease-out;
  -webkit-transition: all 0.1s ease-out;
  -moz-transition: all 0.1s ease-out;
}
.uni--box-label-float .uni--input-text:required:invalid + .uni--label {
  color: var(--uni-grey-300);
}
.uni--box-label-float .uni--input-text:focus:required:invalid {
  border-bottom: 1px solid var(--uni-grey-300);
}
.uni--box-label-float .uni--input-text:required:invalid + .uni--label {
  content: '*';
}
.uni--box-label-float .uni--input-text:-webkit-autofill + .uni--label,
.uni--box-label-float .uni--input-text:focus + .uni--label,
.uni--box-label-float .uni--input-text:not(:placeholder-shown) + .uni--label {
  font-size: 12px;
  margin-top: 0;
  color: var(--uni-grey-300);
}
.password-input {
  padding-right: 2.8rem;
}
label[nz-checkbox] {
  color: var(--uni-contrast-500);
  font-weight: normal;
}
label[nz-checkbox] span,
label[nz-checkbox] .ant-checkbox-checked::after {
  border-radius: 4px;
}
.uni--checkbox-container {
  width: 330px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  margin-top: 40px;
}
.uni--checkbox-container .uni--checkbox-label {
  display: block;
  align-items: center;
  position: relative;
  padding-left: 25px;
  font-size: 14px;
  font-weight: lighter;
  color: var(--uni-grey-100);
}
.uni--checkbox-container .uni--checkbox-label .uni--checkbox {
  position: absolute;
  opacity: 0;
  height: 0;
  width: 0;
}
.uni--checkbox-container .uni--checkbox-label .uni--checkbox:checked ~ .checkmark {
  background-color: var(--uni-blue-200);
  border: none;
  opacity: 1;
  -webkit-animation: fadeOpacity 1s ease-in-out;
  animation: fadeOpacity 1s ease-in-out;
}
.uni--checkbox-container .uni--checkbox-label .uni--checkbox:disabled ~ .checkmark {
  background-color: var(--uni-grey-200);
  border: none;
}
.uni--checkbox-container .uni--checkbox-label .uni--checkbox:checked ~ .checkmark::after {
  display: block;
}
.uni--checkbox-container .uni--checkbox-label .checkmark::after {
  content: '';
  left: 6px;
  top: 0;
  width: 8px;
  height: 17px;
  transform: rotate(45deg);
  border-right: 3px solid #fff;
  border-bottom: 3px solid #fff;
}
.uni--checkbox-container .uni--checkbox-label .checkmark {
  position: absolute;
  top: 0;
  left: 0;
  height: 20px;
  width: 20px;
  background-color: transparent;
  border: 1px solid var(--uni-grey-100);
  border-radius: 2px;
}
.uni--checkbox-container .uni--checkbox-label .checkmark::after {
  display: none;
  content: '';
  position: absolute;
}
@-webkit-keyframes fadeOpacity {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes fadeOpacity {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.uni--primary-500 {
  color: var(--uni-blue-100);
}
.uni--fieldset {
  padding-bottom: 0.5rem;
}
.uni--fieldset legend {
  border-color: var(--uni-blue-100);
}
.uni--fieldset ul {
  padding-left: 0;
  list-style: none;
}
.uni--fieldset li {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.uni--fieldset .subscription-period {
  font-size: 0.85rem;
}
.uni--fieldset p,
.uni--fieldset label {
  font-weight: normal;
  margin-top: 0.25rem;
  margin-bottom: 0.25rem;
}
.uni--fieldset p {
  margin-left: 0.25rem;
}
.uni--fieldset label {
  margin-right: 0.25rem;
}
.uni--fieldset h4 {
  margin: 0;
}
.uni--form--item {
  width: 100%;
  margin-bottom: 1.5rem;
}
.uni--form--item small {
  display: inline-block;
  margin-top: 1rem;
  text-align: center;
}
.uni--form--item nz-select {
  width: 100%;
}
.uni--form .uni--input input.ng-touched.ng-invalid {
  -webkit-text-fill-color: red !important;
  color: red !important;
}
.uni--profile--header {
  display: flex;
  align-items: center;
  margin-bottom: 1.5rem;
}
.uni--profile--header h2 {
  font-size: 1.2rem;
  line-height: 1.8rem;
  font-family: 'Segoe UI';
  margin-bottom: 0;
}
.uni--profile--header h2 span {
  font-weight: bold;
  font-family: 'Segoe UI';
  font-size: 1.5rem;
}
.uni--profile--header hr {
  flex: 1;
  border-radius: 8px;
  height: 0.25rem;
  margin-left: 1.5rem;
  border: none;
  background-color: var(--uni-blue-100);
}
.uni--profile--header a {
  border-radius: 50%;
  background-color: var(--uni-light-100);
  min-height: 2rem;
  height: 2rem;
  min-width: 2rem;
  width: 2rem;
  margin-left: 1.5rem;
  display: flex;
  justify-content: center;
  align-items: center;
}
.uni--profile--header a.uni--header--a__invert-margin {
  margin-left: 0;
  margin-right: 1.5rem;
}
.uni--profile--header a i {
  font-size: 1.25rem;
}
.uni--hr {
  width: 100%;
  height: 1px;
  background-color: var(--uni-blue-100);
  margin: 0.75rem 0;
  border: none;
}
.fix-inner-html iframe {
  max-width: 100%;
}
.fix-inner-html p,
.fix-inner-html span,
.fix-inner-html label,
.fix-inner-html h1,
.fix-inner-html h2,
.fix-inner-html h3,
.fix-inner-html h4,
.fix-inner-html h4,
.fix-inner-html h5,
.fix-inner-html h6 {
  color: var(--uni-contrast-500) !important;
  background: none !important;
  word-break: break-word;
}
.fix-inner-html a {
  color: var(--uni-primary-400) !important;
  background: none !important;
  word-break: break-word;
}
a[href] {
  color: var(--uni-blue-100);
}
a[href]:visited {
  color: var(--uni-contrast-500);
  font-weight: bold;
  text-decoration: underline;
}
.uni--modal--no-content .ant-modal-content {
  background-color: transparent;
  box-shadow: none;
}
.uni--modal--default .ant-modal-content {
  border-radius: 20px;
  padding: 1.5rem;
}
.create-note-modal .ant-modal-content {
  background-color: var(--uni-black-500);
  border-radius: 16px;
  padding: 23px 37px;
}
.create-note-modal .ant-modal-close-x {
  font-weight: 900;
  color: var(--uni-blue-100);
}
.uni--modal--default .ant-modal-content {
  background: radial-gradient(at top, #212429 10%, #101010 50%);
}
.uni--nav {
  padding-right: 1.5rem;
  padding-bottom: 2rem;
  font-family: "Open Sans", sans-serif;
}
.uni--nav ul {
  display: flex;
  list-style: none;
  padding-left: 0;
  margin: 0;
}
.uni--nav li {
  padding-right: 2rem;
}
.uni--nav a {
  font-size: 1rem;
  color: var(--uni-grey-300);
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: transparent;
}
.uni--nav__selected {
  color: var(--uni-contrast-500) !important;
}
.background--domestika {
  background-color: #F02D00 !important;
}
.progress-bar {
  position: absolute;
  height: 100%;
  width: 33%;
  background: linear-gradient(0deg, var(--uni-color-orange) 0%, var(--uni-color-orange-dark) 100%);
  border-radius: 10px;
  left: 0;
  z-index: 3;
}
.hide-scrollbar {
  -ms-overflow-style: none;
  scrollbar-width: none;
  scrollbar-height: none;
}
.hide-scrollbar::-webkit-scrollbar {
  width: 0;
  height: 0;
  background: transparent;
}
.uni--scrollbar {
  --thumb-color: var(--scrollbar-thumb-color, var(--uni-blue-100));
  --thumb-background: var(--scrollbar-thumb-background, var(--uni-light-200));
}
.uni--scrollbar::-webkit-scrollbar-track {
  -webkit-box-shadow: inset 0 0 4px var(--thumb-background);
  border-radius: 0.6rem;
  background-color: var(--thumb-background);
}
.uni--scrollbar::-webkit-scrollbar {
  width: 0.4rem;
  border-radius: 0.6rem;
  background-color: var(--thumb-background);
}
.uni--scrollbar::-webkit-scrollbar-thumb {
  border-radius: 0.4rem;
  -webkit-box-shadow: inset 0 0 4px var(--thumb-color);
  background-color: var(--thumb-color);
}
* {
  scrollbar-width: thin;
  scrollbar-color: var(--uni-blue-200) var(--uni-black-200);
}
/* Works on Chrome, Edge, and Safari */
*::-webkit-scrollbar {
  width: 3px;
  height: 5px;
}
*::-webkit-scrollbar-track {
  background: var(--uni-black-100);
}
*::-webkit-scrollbar-thumb {
  background-color: var(--uni-blue-200);
  border-radius: 20px;
}
.uni--select {
  background-color: transparent;
  color: var(--uni-contrast-500);
  border-radius: 2rem;
  border: 1px solid var(--uni-contrast-500);
  min-height: 3.5rem;
  height: 3.5rem;
  position: relative;
  padding: 1rem 1.5rem;
  box-shadow: 0 3px 6px #00000029;
  font-size: 1rem;
}
.uni--select nz-select-placeholder {
  color: var(--uni-grey-300);
}
.uni--select nz-select-top-control {
  border: none !important;
  box-shadow: none !important;
  background-color: transparent !important;
  padding-left: 0 !important;
}
.uni--select nz-select-search {
  left: 0 !important;
}
.uni--select nz-select-item,
.uni--select nz-select-placeholder {
  line-height: 1.5rem !important;
}
.uni--select nz-select-arrow {
  right: 24px;
  color: var(--uni-contrast-500);
  font-size: 1rem;
  vertical-align: 0;
  top: calc(50% - 0.5rem);
  height: 1rem;
  width: 1rem;
  margin-top: 0;
}
.uni--new-select {
  position: relative;
  width: 250px;
  margin-right: 1rem;
  margin-top: 30px;
  font-size: 0.9rem;
}
.uni--new-select[open] {
  z-index: 1;
}
.uni--new-select summary {
  padding: 1rem;
  cursor: pointer;
  border-radius: 5px;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-color: var(--uni-black-400);
  color: var(--uni-grey-200);
  min-height: 2.5rem;
  height: 2.5rem;
  border-radius: 37px;
  border: 1px solid var(--uni-grey-100);
}
.uni--new-select summary::-webkit-details-marker {
  display: none;
}
.uni--new-select[open] summary:before {
  content: '';
  display: block;
  width: 100vw;
  height: 100vh;
  background: transparent;
  position: fixed;
  top: 0;
  left: 0;
}
.uni--new-select summary:after {
  content: '';
  display: inline-block;
  width: 0.5rem;
  height: 0.5rem;
  border-bottom: 2px solid currentColor;
  border-left: 2px solid currentColor;
  border-bottom-left-radius: 2px;
  transform-origin: center center;
  transition: transform ease-in-out 100ms;
  transform: rotate(-45deg) translate(0%, 0%);
}
.uni--new-select summary:focus {
  outline: none;
}
.uni--new-select[open] summary:after {
  transform: rotate(135deg) translate(50%, 0%);
  color: var(--uni-blue-200);
}
.uni--new-select ul {
  width: 100%;
  background: var(--uni-black-100);
  color: var(--uni-grey-300);
  position: absolute;
  top: calc(100% + 0.5rem);
  left: 0;
  margin: 0;
  box-sizing: border-box;
  border-radius: 10px;
  max-height: 200px;
  overflow-y: auto;
  list-style: none;
  padding: 0;
  z-index: 2;
}
.uni--new-select li {
  margin: 0;
  height: 3rem;
  padding: 10px 20px;
}
.uni--new-select li:hover {
  background-color: var(--uni-grey-400);
  color: var(--uni-grey-100);
}
.uni--new-select li:active {
  background-color: var(--uni-blue-200);
  color: var(--uni-grey-100);
}
.nowrap {
  max-width: 100%;
  overflow-x: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ngx-ui-tour_backdrop {
  pointer-events: none;
}
.switch__container {
  margin: 30px auto;
}
.switch__container .switch {
  visibility: hidden;
  position: absolute;
  margin-left: -9999px;
}
.switch__container .switch + label {
  display: block;
  position: relative;
  cursor: pointer;
  outline: none;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.switch__container .switch--shadow:checked + label:before {
  color: var(--uni-grey-100);
}
.switch__container .switch--shadow:checked + label:after {
  transform: translateX(60px);
}
.switch__container .switch--shadow + label {
  padding: 2px;
  width: 120px;
  height: 60px;
  background-color: #dddddd;
  border-radius: 60px;
}
.switch__container .switch--shadow + label:before,
.switch__container .switch--shadow + label :after {
  display: block;
  position: absolute;
  top: 1px;
  left: 1px;
  bottom: 1px;
  content: "";
}
.switch__container .switch--shadow + label:before {
  right: 1px;
  border-radius: 60px;
  transition: background 0.4s;
}
.switch__container .switch--shadow + label:after {
  width: 62px;
  background-color: #fff;
  border-radius: 100%;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
  transition: all 0.4s;
}
.switch--flat + label {
  padding: 2px;
  width: 200px;
  height: 50px;
  border-radius: 60px;
  transition: background 0.4s;
  font-weight: lighter;
}
.switch--flat + label:before,
.switch--flat + label:after {
  display: block;
  position: absolute;
  content: "";
}
.switch--flat + label:before {
  top: 2px;
  left: 2px;
  bottom: 2px;
  right: 2px;
  background-color: var(--uni-black-400);
  border-radius: 60px;
  transition: background 0.4s;
  display: flex;
  justify-content: space-between;
}
.switch--flat + label:after {
  top: 4px;
  left: 4px;
  bottom: 4px;
  width: 100px;
  background-color: var(--uni-blue-200);
  border-radius: 52px;
  transition: margin 0.4s, background 0.4s;
  content: "Entrar";
  color: var(--uni-grey-100);
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.switch--flat:checked + label:after {
  margin-left: 92px;
  background-color: var(--uni-blue-200);
  content: "Registrar";
  color: var(--uni-grey-100);
  display: flex;
  align-items: center;
  justify-content: center;
}
.switch__container label .can-toggle__switch:before {
  left: 100px;
  top: 6px;
  font-size: 12px;
  line-height: 36px;
  width: 100px;
  padding: 0 12px;
}
.switch__container label .can-toggle__switch:after {
  top: 2px;
  left: 2px;
  border-radius: 2px;
  width: 65px;
  line-height: 32px;
  font-size: 14px;
}
.switch__container label .can-toggle__switch:before {
  content: attr(data-checked);
  position: absolute;
  top: 7px;
  text-align: center;
  font-size: 14px;
}
.switch__container label .can-toggle__switch:after {
  content: attr(data-unchecked);
  position: absolute;
  top: 10px;
  left: 20px;
  text-align: center;
  transform: translate3d(0, 0, 0);
}
.tooltip {
  position: relative;
  display: inline-block;
  border-radius: 50%;
  cursor: pointer;
  opacity: 100;
  margin-top: 80px;
}
.tooltip svg {
  width: 20px;
  fill: var(--uni-grey-100);
  margin-left: 50px;
}
.tooltip svg:hover {
  fill: var(--uni-blue-200);
}
.tooltip .tooltiptext {
  visibility: hidden;
  background-color: var(--uni-black-100);
  color: var(--uni-grey-100);
  text-align: left;
  padding: 20px;
  border-radius: 6px;
  min-width: 110px;
  position: absolute;
  z-index: 1;
  bottom: 200%;
  left: 0%;
  opacity: 0;
  transition: opacity 0.3s;
}
.tooltip .tooltiptext::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -5px;
  border-width: 10px;
  border-style: solid;
  border-color: var(--uni-black-100) transparent transparent transparent;
}
.tooltip:hover .tooltiptext {
  visibility: visible;
  opacity: 1;
}
.tag {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #212429;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  min-width: 7rem;
  border-radius: 10px;
  padding: 0.5rem 1rem;
  height: 2.5rem;
  box-shadow: 0 0 20px 2px rgba(0, 0, 0, 0.2);
  margin: 1rem 0;
}
@media (max-width: 900px) {
  .tag {
    margin: 0.2rem 0;
  }
}
.tag--bullet {
  display: block;
  background: #de4242;
  border-radius: 100%;
  margin: 0 1rem 0 0;
  height: 0.5rem;
  width: 0.5rem;
}
.tag--live {
  background: #de4242;
}
.tag--online {
  background: #027BC5;
}
.tag--presential {
  background: #0D0D0D;
}
.tag--title {
  padding: 0;
  margin: 0;
  font-size: small;
}
.tag--title--time {
  padding: 0 1rem;
  margin: 0;
}
.tag--star {
  font-size: small;
}
.ant-rate-star-full path:first-child {
  fill: var(--uni-yellow-100) !important;
}
.ant-rate-star-full path:last-child {
  fill: var(--uni-yellow-100) !important;
}
.ant-rate-star-first path:first-child {
  fill: var(--uni-yellow-100) !important;
}
.ant-rate-star-half path:last-child {
  fill: var(--uni-yellow-100) !important;
}
.ant-rate-star-zero path:first-child {
  display: none !important;
}
.ant-rate-star-zero path:nth-child(2) {
  fill: white !important;
}
.category-icon {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  padding: 0.5rem;
  border-radius: 9px;
  background: transparent linear-gradient(227deg, #F15754 0%, #B7302E 100%) 0% 0% no-repeat padding-box;
}
.category-icon-white {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  padding: 0.5rem;
  border-radius: 9px;
  background: transparent linear-gradient(227deg, var(--uni-grey-200) 0%, var(--uni-grey-300) 100%) 0% 0% no-repeat padding-box;
}
.category-icon-white img {
  filter: invert(50%) brightness(80%);
}
.category-icon-blue {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  padding: 0.5rem;
  border-radius: 9px;
  background: transparent linear-gradient(216deg, #01A9F0 0%, #0357A5 100%) 0% 0% no-repeat padding-box;
}
.category-icon-green {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  padding: 0.5rem;
  border-radius: 9px;
  background: transparent linear-gradient(227deg, #44C18A 0%, #1C704C 100%) 0% 0% no-repeat padding-box;
}
.category-icon-yellow {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  padding: 0.5rem;
  border-radius: 9px;
  background: transparent linear-gradient(227deg, #F9C057 0%, #DB9537 100%) 0% 0% no-repeat padding-box;
}
.category-icon-red {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  padding: 0.5rem;
  border-radius: 9px;
  background: transparent linear-gradient(227deg, #F15754 0%, #B7302E 100%) 0% 0% no-repeat padding-box;
}
.category-icon-purple {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  padding: 0.5rem;
  border-radius: 9px;
  background: transparent linear-gradient(227deg, #BC00F4 0%, #8400AB 100%) 0% 0% no-repeat padding-box;
}
.dropdown {
  position: relative;
  display: inline-block;
  background-color: var(--uni-black-100);
  top: 0;
}
.dropdown button {
  background-color: transparent;
  border: none;
  width: 75px;
  height: 60px;
  padding-top: 5px;
}
.dropdown button .icon--notifications {
  width: 20px;
}
.dropdown button .icon--arrow {
  width: 10px;
}
.dropdown button .user--avatar {
  width: 35px;
  margin-right: 10px;
  border-radius: 50%;
  -o-object-fit: cover;
     object-fit: cover;
}
@media (max-width: 426px) {
  .dropdown button {
    height: 50px;
    width: 50px;
  }
}
.dropdown--notifications {
  border-bottom-left-radius: 20px;
}
.dropdown--notifications button {
  width: 60px;
}
.dropdown--profile {
  border-bottom-right-radius: 20px;
  border-left: 0.5px solid var(--uni-grey-400);
}
.dropdown--icons {
  width: 20px;
  margin-right: 20px;
}
.dropdown-content {
  border-radius: 20px;
  position: absolute;
  right: 0;
  top: 62px;
  background-color: var(--uni-black-100);
  min-width: 200px;
  box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.2);
  z-index: 1;
  -webkit-animation: fadeIn 0.3s linear;
          animation: fadeIn 0.3s linear;
}
.dropdown-content a,
.dropdown-content a img {
  opacity: 1 !important;
}
.dropdown-content-notifications {
  padding: 20px;
  min-width: 500px;
  background: #15161a;
  background: linear-gradient(90deg, #15161a 0%, #212429 50%, #15161a 100%);
}
.dropdown-content-notifications--header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}
.dropdown-content-notifications--header span {
  font-size: 14px;
}
.dropdown-content-notifications--footer {
  width: 100%;
  text-align: center;
  opacity: 75%;
}
.dropdown-content-notifications--footer span {
  font-size: 14px;
}
.dropdown-content a {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
  opacity: 80%;
  transition: background 0.3s;
  transition-timing-function: linear;
}
.dropdown-content a img {
  opacity: 50%;
}
.dropdown-content a:last-child {
  border-top: 1px solid var(--uni-grey-400);
}
.dropdown-content a:first-child {
  border-radius: 20px 20px 0 0;
}
.dropdown-content a:last-child {
  border-radius: 0 0 20px 20px;
}
.dropdown-content a:hover {
  background-color: var(--uni-grey-400);
  opacity: 90%;
}
.dropdown-content a:hover img {
  opacity: 90%;
}
.dropdown-content a:hover:first-child {
  border-radius: 20px 20px 0 0;
}
.dropdown-content a:hover:last-child {
  border-radius: 0 0 20px 20px;
}
.dropdown:hover .dropbtn {
  background-color: #3e8e41;
}
.uni-notification {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px;
  margin-bottom: 8px;
  border-radius: 8px;
}
.uni-notification--content {
  display: flex;
  align-items: center;
}
.uni-notification--content--icon {
  width: 20px;
  margin-right: 20px;
}
.uni-notification--content--text {
  font-size: 17px;
  font-weight: bold;
}
.uni-notification--content--text span {
  font-size: 15px;
  font-weight: normal;
  color: var(--uni-grey-200) !important;
}
.uni-notification--icon {
  width: 30px;
  opacity: 70%;
  cursor: pointer;
}
.uni-notification-type-notification {
  border: 0.5px solid var(--uni-blue-100);
  background: #1d4252;
  background: linear-gradient(90deg, #1d4252 0%, #1f2227 51%, #15161a 100%);
}
.uni-notification-type-notification h3 {
  color: var(--uni-blue-200);
}
.uni-notification-type-success {
  border: 0.5px solid var(--uni-green-100);
  background: #1d523a;
  background: linear-gradient(90deg, #1d523a 0%, #1f2227 51%, #15161a 100%);
}
.uni-notification-type-success h3 {
  color: var(--uni-green-200);
}
.uni-notification-type-error {
  border: 0.5px solid var(--uni-red-100);
  background: #521d1c;
  background: linear-gradient(90deg, #521d1c 0%, #1f2227 51%, #15161a 100%);
}
.uni-notification-type-error h3 {
  color: var(--uni-red-200);
}
.uni-notification-type-warning {
  border: 0.5px solid var(--uni-yellow-100);
  background: #513f1d;
  background: linear-gradient(90deg, #513f1d 0%, #1f2227 51%, #15161a 100%);
}
.uni-notification-type-warning h3 {
  color: var(--uni-yellow-200);
}
:root {
  --uni-light-100: #FFFFFF;
  --uni-light-150: #91949b;
  --uni-light-200: #A7A6A7;
  --uni-light-250: #f6f8fa;
  --uni-light-400: #004479;
  --uni-light-500: #FFF;
  --uni-light-600: #0060ac;
  --uni-light-700: #f6f8fa;
  --uni-light-750: #eeeeef;
  --uni-light-800: #eeeeef;
  --uni-contrast-300: #4c5975;
  --uni-contrast-500: #242424;
  --uni-primary-contrast-500: #FFFFFF;
  --uni-primary-400: #01a8ec;
  --uni-primary-500: #469EC3;
  --uni-primary-800: #004479;
  --uni-primary-900: #033A65;
  --uni-black: #212429;
  --uni-grey-400: #495057;
  --uni-grey-300: #ACB5BD;
  --uni-grey-200: #DDE2E5;
  --uni-grey-100: #F8F9FA;
  --uni-blue: #0357A5;
  --uni-light-blue: #01A9F0;
  --uni-yellow: #DB7D00;
  --uni-light-yellow: #F9A200;
  --uni-purple: #8400AB;
  --uni-light-purple: #BC00F4;
  --uni-green: #017040;
  --uni-light-green: #00C16D;
  --uni-red: #B72A28;
  --uni-light-red: #F15B59;
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL25vZGVfbW9kdWxlcy9uZy16b3Jyby1hbnRkL3N0eWxlL2NvcmUvYmFzZS5sZXNzIiwiZGVmYXVsdC5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25nLXpvcnJvLWFudGQvc3R5bGUvY29sb3IvdGlueUNvbG9yLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbmctem9ycm8tYW50ZC9zdHlsZS9taXhpbnMvc2l6ZS5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25nLXpvcnJvLWFudGQvc3R5bGUvY29yZS9nbG9iYWwubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9uZy16b3Jyby1hbnRkL3N0eWxlL21peGlucy9jbGVhcmZpeC5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25nLXpvcnJvLWFudGQvc3R5bGUvbWl4aW5zL2ljb25mb250Lmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbmctem9ycm8tYW50ZC9zdHlsZS9jb3JlL2ljb25mb250Lmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbmctem9ycm8tYW50ZC9zdHlsZS9taXhpbnMvbW90aW9uLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbmctem9ycm8tYW50ZC9zdHlsZS9jb3JlL21vdGlvbi9mYWRlLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbmctem9ycm8tYW50ZC9zdHlsZS9jb3JlL21vdGlvbi9tb3ZlLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbmctem9ycm8tYW50ZC9zdHlsZS9jb3JlL21vdGlvbi9vdGhlci5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25nLXpvcnJvLWFudGQvc3R5bGUvY29yZS9tb3Rpb24vc2xpZGUubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9uZy16b3Jyby1hbnRkL3N0eWxlL2NvcmUvbW90aW9uL3pvb20ubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9uZy16b3Jyby1hbnRkL3N0eWxlL2NvcmUvbW90aW9uLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbmctem9ycm8tYW50ZC9zdHlsZS9wYXRjaC5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25nLXpvcnJvLWFudGQvYnV0dG9uL3N0eWxlL2luZGV4Lmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbmctem9ycm8tYW50ZC9idXR0b24vc3R5bGUvbWl4aW4ubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9uZy16b3Jyby1hbnRkL2J1dHRvbi9zdHlsZS9ydGwubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9uZy16b3Jyby1hbnRkL3N0eWxlL21peGlucy9yZXNldC5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25nLXpvcnJvLWFudGQvc3Bpbi9zdHlsZS9pbmRleC5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25nLXpvcnJvLWFudGQvc3Bpbi9zdHlsZS9ydGwubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9uZy16b3Jyby1hbnRkL3NwaW4vc3R5bGUvcGF0Y2gubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9uZy16b3Jyby1hbnRkL2lucHV0L3N0eWxlL2FmZml4Lmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbmctem9ycm8tYW50ZC9pbnB1dC9zdHlsZS9taXhpbi5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25nLXpvcnJvLWFudGQvc3R5bGUvbWl4aW5zL2NvbXBhdGliaWxpdHkubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9uZy16b3Jyby1hbnRkL2lucHV0L3N0eWxlL3J0bC5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25nLXpvcnJvLWFudGQvaW5wdXQvc3R5bGUvYWxsb3ctY2xlYXIubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9uZy16b3Jyby1hbnRkL2lucHV0L3N0eWxlL2luZGV4Lmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbmctem9ycm8tYW50ZC9pbnB1dC9zdHlsZS9zZWFyY2gtaW5wdXQubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9uZy16b3Jyby1hbnRkL2lucHV0L3N0eWxlL0lFMTEubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9uZy16b3Jyby1hbnRkL2lucHV0L3N0eWxlL3BhdGNoLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbmctem9ycm8tYW50ZC9jaGVja2JveC9zdHlsZS9taXhpbi5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25nLXpvcnJvLWFudGQvY2hlY2tib3gvc3R5bGUvcnRsLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbmctem9ycm8tYW50ZC9jaGVja2JveC9zdHlsZS9wYXRjaC5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25nLXpvcnJvLWFudGQvbm90aWZpY2F0aW9uL3N0eWxlL2luZGV4Lmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbmctem9ycm8tYW50ZC9ub3RpZmljYXRpb24vc3R5bGUvcnRsLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbmctem9ycm8tYW50ZC9yYXRlL3N0eWxlL2luZGV4Lmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbmctem9ycm8tYW50ZC9yYXRlL3N0eWxlL3J0bC5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25nLXpvcnJvLWFudGQvdG9vbHRpcC9zdHlsZS9pbmRleC5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25nLXpvcnJvLWFudGQvdG9vbHRpcC9zdHlsZS9ydGwubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9uZy16b3Jyby1hbnRkL3Rvb2x0aXAvc3R5bGUvcGF0Y2gubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9uZy16b3Jyby1hbnRkL3NsaWRlci9zdHlsZS9pbmRleC5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25nLXpvcnJvLWFudGQvc2xpZGVyL3N0eWxlL3J0bC5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25nLXpvcnJvLWFudGQvc3R5bGUvbWl4aW5zL21vZGFsLW1hc2subGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9uZy16b3Jyby1hbnRkL21vZGFsL3N0eWxlL21vZGFsLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbmctem9ycm8tYW50ZC9zdHlsZS9taXhpbnMvYm94Lmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbmctem9ycm8tYW50ZC9tb2RhbC9zdHlsZS9jb25maXJtLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbmctem9ycm8tYW50ZC9tb2RhbC9zdHlsZS9ydGwubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9uZy16b3Jyby1hbnRkL3NlbGVjdC9zdHlsZS9zaW5nbGUubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9uZy16b3Jyby1hbnRkL3NlbGVjdC9zdHlsZS9tdWx0aXBsZS5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25nLXpvcnJvLWFudGQvc2VsZWN0L3N0eWxlL2luZGV4Lmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbmctem9ycm8tYW50ZC9zZWxlY3Qvc3R5bGUvcnRsLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbmctem9ycm8tYW50ZC9lbXB0eS9zdHlsZS9pbmRleC5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25nLXpvcnJvLWFudGQvZW1wdHkvc3R5bGUvcnRsLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbmctem9ycm8tYW50ZC9lbXB0eS9zdHlsZS9wYXRjaC5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25nLXpvcnJvLWFudGQvc2VsZWN0L3N0eWxlL3BhdGNoLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbmctem9ycm8tYW50ZC9hbGVydC9zdHlsZS9pbmRleC5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25nLXpvcnJvLWFudGQvYWxlcnQvc3R5bGUvcnRsLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbmctem9ycm8tYW50ZC9hbGVydC9zdHlsZS9wYXRjaC5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25nLXpvcnJvLWFudGQvY2Fyb3VzZWwvc3R5bGUvaW5kZXgubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9uZy16b3Jyby1hbnRkL2Nhcm91c2VsL3N0eWxlL3J0bC5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25nLXpvcnJvLWFudGQvY2Fyb3VzZWwvc3R5bGUvcGF0Y2gubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9uZy16b3Jyby1hbnRkL3BvcG92ZXIvc3R5bGUvaW5kZXgubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9uZy16b3Jyby1hbnRkL3BvcG92ZXIvc3R5bGUvcnRsLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbmctem9ycm8tYW50ZC9wb3BvdmVyL3N0eWxlL3BhdGNoLmxlc3MiLCJjb21wb25lbnRzL2Jsb2NrcXVvdGUubGVzcyIsImNvbXBvbmVudHMvYnV0dG9ucy5sZXNzIiwiY29tcG9uZW50cy9uZXctYnV0dG9ucy5sZXNzIiwiY29tcG9uZW50cy9jYXJvdXNlbC5sZXNzIiwiY29tcG9uZW50cy9pbnB1dC5sZXNzIiwiY29tcG9uZW50cy9uZXctaW5wdXRzLmxlc3MiLCJjb21wb25lbnRzL2NoZWNrYm94Lmxlc3MiLCJjb21wb25lbnRzL25ldy1jaGVja2JveC5sZXNzIiwiY29tcG9uZW50cy9jb2xvcnMubGVzcyIsImNvbXBvbmVudHMvZmllbGRzZXQubGVzcyIsImNvbXBvbmVudHMvZm9ybS5sZXNzIiwiY29tcG9uZW50cy9oZWFkZXIubGVzcyIsImNvbXBvbmVudHMvaHIubGVzcyIsImNvbXBvbmVudHMvaW5uZXItaHRtbC5sZXNzIiwiY29tcG9uZW50cy9saW5rLmxlc3MiLCJjb21wb25lbnRzL21vZGFsLmxlc3MiLCJjb21wb25lbnRzL25hdi5sZXNzIiwiY29tcG9uZW50cy9wcm9ncmVzcy5sZXNzIiwiY29tcG9uZW50cy9zY3JvbGwubGVzcyIsImNvbXBvbmVudHMvc2VsZWN0Lmxlc3MiLCJjb21wb25lbnRzL25ldy1zZWxlY3QubGVzcyIsImNvbXBvbmVudHMvdGV4dC5sZXNzIiwiY29tcG9uZW50cy90b3VyLmxlc3MiLCJjb21wb25lbnRzL3RvZ2dsZS5sZXNzIiwiY29tcG9uZW50cy90b29sdGlwLmxlc3MiLCJjb21wb25lbnRzL3RhZy5sZXNzIiwiY29tcG9uZW50cy9jYXRlZ29yeS1pY29uLmxlc3MiLCJjb21wb25lbnRzL2Ryb3Bkb3duLmxlc3MiLCJjb21wb25lbnRzL25vdGlmaWNhdGlvbi5sZXNzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlFOzs7Ozs7RUFHRSxhQUFBO0FDQUo7QURHRTs7Ozs7Ozs7RUFJRSxzQkFBQTtBQ0dKO0FBQ0EseUNBQXlDO0FDbEJ4Qzs7RUNHQyxXQUFBO0VBQ0EsWUFBQTtBRm1CRjtBR1BBOztFQUVFLGFBQUE7QUhTRjtBR0lBOzs7RUFHRSxzQkFBQTtBSEZGO0FDaENDO0VFc0NDLHVCQUFBO0VBQ0EsaUJBQUE7RUFDQSw4QkFBQTtFQUNBLDBCQUFBO0VBQ0EsNkJBQUE7RUFDQSw2Q0FBQTtBSEhGO0FHZ0JBO0VBQ0UsU0FBQTtFQUNBLDBCQUFBO0VBQ0EsZUFBQTtFQUNBLGtNQUFBO0VBQ0EsMEJBQUE7RUFDQSxtQkFBQTtFQUNBLHNCQUFBO0VBQ0EsNkJBQUE7QUhYRjtBR21CQTtFQUNFLHdCQUFBO0FIakJGO0FHeUJBO0VBQ0UsdUJBQUE7RUFDQSxTQUFBO0VBQ0EsaUJBQUE7QUh2QkY7QUdrQ0E7Ozs7OztFQU1FLGFBQUE7RUFDQSxvQkFBQTtFQUNBLDBCQUFBO0VBQ0EsZ0JBQUE7QUhoQ0Y7QUd1Q0E7RUFDRSxhQUFBO0VBQ0Esa0JBQUE7QUhyQ0Y7QUcrQ0E7O0VBR0UsMEJBQUE7RUFDQSx5Q0FBQTtVQUFBLGlDQUFBO0VBQ0EsZ0JBQUE7RUFDQSxZQUFBO0FIOUNGO0FHaURBO0VBQ0Usa0JBQUE7RUFDQSxrQkFBQTtFQUNBLG9CQUFBO0FIL0NGO0FHa0RBOzs7O0VBSUUsd0JBQUE7QUhoREY7QUdtREE7OztFQUdFLGFBQUE7RUFDQSxrQkFBQTtBSGpERjtBR29EQTs7OztFQUlFLGdCQUFBO0FIbERGO0FHcURBO0VBQ0UsZ0JBQUE7QUhuREY7QUdzREE7RUFDRSxvQkFBQTtFQUNB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O0lBQ0EsVUFBQTtFVHlmRjtBQUNGO0FTdGZBO0VBQ0U7SUFDRSx5QkFBQTtJQUNBLHFCQUFBO0lBQ0EsVUFBQTtFVHdmRjtFU3RmQTtJQUNFLDRCQUFBO0lBQ0EscUJBQUE7SUFDQSxVQUFBO0VUd2ZGO0FBQ0Y7QVNsZ0JBO0VBQ0U7SUFDRSx5QkFBQTtJQUNBLHFCQUFBO0lBQ0EsVUFBQTtFVHdmRjtFU3RmQTtJQUNFLDRCQUFBO0lBQ0EscUJBQUE7SUFDQSxVQUFBO0VUd2ZGO0FBQ0Y7QVNyZkE7RUFDRTtJQUNFLDJCQUFBO0lBQ0EscUJBQUE7SUFDQSxVQUFBO0VUdWZGO0VTcmZBO0lBQ0UseUJBQUE7SUFDQSxxQkFBQTtJQUNBLFVBQUE7RVR1ZkY7QUFDRjtBU2pnQkE7RUFDRTtJQUNFLDJCQUFBO0lBQ0EscUJBQUE7SUFDQSxVQUFBO0VUdWZGO0VTcmZBO0lBQ0UseUJBQUE7SUFDQSxxQkFBQTtJQUNBLFVBQUE7RVR1ZkY7QUFDRjtBU3BmQTtFQUNFO0lBQ0UseUJBQUE7SUFDQSxxQkFBQTtJQUNBLFVBQUE7RVRzZkY7RVNwZkE7SUFDRSwyQkFBQTtJQUNBLHFCQUFBO0lBQ0EsVUFBQTtFVHNmRjtBQUNGO0FTaGdCQTtFQUNFO0lBQ0UseUJBQUE7SUFDQSxxQkFBQTtJQUNBLFVBQUE7RVRzZkY7RVNwZkE7SUFDRSwyQkFBQTtJQUNBLHFCQUFBO0lBQ0EsVUFBQTtFVHNmRjtBQUNGO0FTbmZBO0VBQ0U7SUFDRSw0QkFBQTtJQUNBLHFCQUFBO0lBQ0EsVUFBQTtFVHFmRjtFU25mQTtJQUNFLHlCQUFBO0lBQ0EscUJBQUE7SUFDQSxVQUFBO0VUcWZGO0FBQ0Y7QVMvZkE7RUFDRTtJQUNFLDRCQUFBO0lBQ0EscUJBQUE7SUFDQSxVQUFBO0VUcWZGO0VTbmZBO0lBQ0UseUJBQUE7SUFDQSxxQkFBQTtJQUNBLFVBQUE7RVRxZkY7QUFDRjtBU2xmQTtFQUNFO0lBQ0UseUJBQUE7SUFDQSxxQkFBQTtJQUNBLFVBQUE7RVRvZkY7RVNsZkE7SUFDRSw0QkFBQTtJQUNBLHFCQUFBO0lBQ0EsVUFBQTtFVG9mRjtBQUNGO0FTOWZBO0VBQ0U7SUFDRSx5QkFBQTtJQUNBLHFCQUFBO0lBQ0EsVUFBQTtFVG9mRjtFU2xmQTtJQUNFLDRCQUFBO0lBQ0EscUJBQUE7SUFDQSxVQUFBO0VUb2ZGO0FBQ0Y7QVUxbUJBO0VBQ0U7SUFDRSx5QkFBQTtFVjRtQkY7QUFDRjtBVS9tQkE7RUFDRTtJQUNFLHlCQUFBO0VWNG1CRjtBQUNGO0FDL21CQzs7RVNXQyxrQkFBQTtBVndtQkY7QVVybUJBO0VBQ0UsaUNBQUE7RUFDQSxlQUFBO0FWdW1CRjtBQ3ZuQkM7O0VTdUJDLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsT0FBQTtFQUNBLGNBQUE7RUFDQSxzQkFBQTtFQUNBLDJCQUFBO0VBQ0EsaURBQUE7RUFDQSxZQUFBO0VBQ0EscUhBQUE7VUFBQSw2R0FBQTtFQUNBLHFDQUFBO1VBQUEsNkJBQUE7RUFDQSxXQUFBO0VBQ0Esb0JBQUE7QVZvbUJGO0FVam1CQTtFQUNFO0lBQ0UseUJBQUE7SUFDQSxtREFBQTtFVm1tQkY7QUFDRjtBVXZtQkE7RUFDRTtJQUNFLHlCQUFBO0lBQ0EsbURBQUE7RVZtbUJGO0FBQ0Y7QVVobUJBO0VBQ0U7SUFDRSxVQUFBO0VWa21CRjtBQUNGO0FVcm1CQTtFQUNFO0lBQ0UsVUFBQTtFVmttQkY7QUFDRjtBQ25wQkM7O0VNR0MsZ0NBQUE7VUFBQSx3QkFBQTtFQUNBLGlDQUFBO1VBQUEseUJBQUE7RUFhRSxvQ0FBQTtVQUFBLDRCQUFBO0FQd29CSjtBQ3pwQkM7RU1RQyxnQ0FBQTtVQUFBLHdCQUFBO0VBQ0EsaUNBQUE7VUFBQSx5QkFBQTtFQWFFLG9DQUFBO1VBQUEsNEJBQUE7QVB3b0JKO0FDOXBCQzs7RU0wQkcsb0NBQUE7VUFBQSw0QkFBQTtFQUNBLHFDQUFBO1VBQUEsNkJBQUE7QVB3b0JKO0FDbnFCQztFTThCRyxxQ0FBQTtVQUFBLDZCQUFBO0VBQ0EscUNBQUE7VUFBQSw2QkFBQTtFQUNBLG9CQUFBO0FQd29CSjtBQ3hxQkM7O0VVSUcsVUFBQTtFQUNBLGlFQUFBO1VBQUEseURBQUE7QVh3cUJKO0FDN3FCQztFVVFHLHlFQUFBO1VBQUEsaUVBQUE7QVh3cUJKO0FDaHJCQzs7RU1HQyxnQ0FBQTtVQUFBLHdCQUFBO0VBQ0EsaUNBQUE7VUFBQSx5QkFBQTtFQWFFLG9DQUFBO1VBQUEsNEJBQUE7QVBxcUJKO0FDdHJCQztFTVFDLGdDQUFBO1VBQUEsd0JBQUE7RUFDQSxpQ0FBQTtVQUFBLHlCQUFBO0VBYUUsb0NBQUE7VUFBQSw0QkFBQTtBUHFxQko7QUMzckJDOztFTTBCRyxzQ0FBQTtVQUFBLDhCQUFBO0VBQ0EscUNBQUE7VUFBQSw2QkFBQTtBUHFxQko7QUNoc0JDO0VNOEJHLHVDQUFBO1VBQUEsK0JBQUE7RUFDQSxxQ0FBQTtVQUFBLDZCQUFBO0VBQ0Esb0JBQUE7QVBxcUJKO0FDcnNCQzs7RVVJRyxVQUFBO0VBQ0EsaUVBQUE7VUFBQSx5REFBQTtBWHFzQko7QUMxc0JDO0VVUUcseUVBQUE7VUFBQSxpRUFBQTtBWHFzQko7QUM3c0JDOztFTUdDLGdDQUFBO1VBQUEsd0JBQUE7RUFDQSxpQ0FBQTtVQUFBLHlCQUFBO0VBYUUsb0NBQUE7VUFBQSw0QkFBQTtBUGtzQko7QUNudEJDO0VNUUMsZ0NBQUE7VUFBQSx3QkFBQTtFQUNBLGlDQUFBO1VBQUEseUJBQUE7RUFhRSxvQ0FBQTtVQUFBLDRCQUFBO0FQa3NCSjtBQ3h0QkM7O0VNMEJHLHNDQUFBO1VBQUEsOEJBQUE7RUFDQSxxQ0FBQTtVQUFBLDZCQUFBO0FQa3NCSjtBQzd0QkM7RU04QkcsdUNBQUE7VUFBQSwrQkFBQTtFQUNBLHFDQUFBO1VBQUEsNkJBQUE7RUFDQSxvQkFBQTtBUGtzQko7QUNsdUJDOztFVUlHLFVBQUE7RUFDQSxpRUFBQTtVQUFBLHlEQUFBO0FYa3VCSjtBQ3Z1QkM7RVVRRyx5RUFBQTtVQUFBLGlFQUFBO0FYa3VCSjtBQzF1QkM7O0VNR0MsZ0NBQUE7VUFBQSx3QkFBQTtFQUNBLGlDQUFBO1VBQUEseUJBQUE7RUFhRSxvQ0FBQTtVQUFBLDRCQUFBO0FQK3RCSjtBQ2h2QkM7RU1RQyxnQ0FBQTtVQUFBLHdCQUFBO0VBQ0EsaUNBQUE7VUFBQSx5QkFBQTtFQWFFLG9DQUFBO1VBQUEsNEJBQUE7QVArdEJKO0FDcnZCQzs7RU0wQkcsdUNBQUE7VUFBQSwrQkFBQTtFQUNBLHFDQUFBO1VBQUEsNkJBQUE7QVArdEJKO0FDMXZCQztFTThCRyx3Q0FBQTtVQUFBLGdDQUFBO0VBQ0EscUNBQUE7VUFBQSw2QkFBQTtFQUNBLG9CQUFBO0FQK3RCSjtBQy92QkM7O0VVSUcsVUFBQTtFQUNBLGlFQUFBO1VBQUEseURBQUE7QVgrdkJKO0FDcHdCQztFVVFHLHlFQUFBO1VBQUEsaUVBQUE7QVgrdkJKO0FXdHZCQTtFQUNFO0lBQ0Usc0JBQUE7SUFDQSx1QkFBQTtJQUNBLFVBQUE7RVh3dkJGO0VXdHZCQTtJQUNFLG9CQUFBO0lBQ0EsdUJBQUE7SUFDQSxVQUFBO0VYd3ZCRjtBQUNGO0FXbHdCQTtFQUNFO0lBQ0Usc0JBQUE7SUFDQSx1QkFBQTtJQUNBLFVBQUE7RVh3dkJGO0VXdHZCQTtJQUNFLG9CQUFBO0lBQ0EsdUJBQUE7SUFDQSxVQUFBO0VYd3ZCRjtBQUNGO0FXcnZCQTtFQUNFO0lBQ0Usb0JBQUE7SUFDQSx1QkFBQTtJQUNBLFVBQUE7RVh1dkJGO0VXcnZCQTtJQUNFLHNCQUFBO0lBQ0EsdUJBQUE7SUFDQSxVQUFBO0VYdXZCRjtBQUNGO0FXandCQTtFQUNFO0lBQ0Usb0JBQUE7SUFDQSx1QkFBQTtJQUNBLFVBQUE7RVh1dkJGO0VXcnZCQTtJQUNFLHNCQUFBO0lBQ0EsdUJBQUE7SUFDQSxVQUFBO0VYdXZCRjtBQUNGO0FXcHZCQTtFQUNFO0lBQ0Usc0JBQUE7SUFDQSwyQkFBQTtJQUNBLFVBQUE7RVhzdkJGO0VXcHZCQTtJQUNFLG9CQUFBO0lBQ0EsMkJBQUE7SUFDQSxVQUFBO0VYc3ZCRjtBQUNGO0FXaHdCQTtFQUNFO0lBQ0Usc0JBQUE7SUFDQSwyQkFBQTtJQUNBLFVBQUE7RVhzdkJGO0VXcHZCQTtJQUNFLG9CQUFBO0lBQ0EsMkJBQUE7SUFDQSxVQUFBO0VYc3ZCRjtBQUNGO0FXbnZCQTtFQUNFO0lBQ0Usb0JBQUE7SUFDQSwyQkFBQTtJQUNBLFVBQUE7RVhxdkJGO0VXbnZCQTtJQUNFLHNCQUFBO0lBQ0EsMkJBQUE7SUFDQSxVQUFBO0VYcXZCRjtBQUNGO0FXL3ZCQTtFQUNFO0lBQ0Usb0JBQUE7SUFDQSwyQkFBQTtJQUNBLFVBQUE7RVhxdkJGO0VXbnZCQTtJQUNFLHNCQUFBO0lBQ0EsMkJBQUE7SUFDQSxVQUFBO0VYcXZCRjtBQUNGO0FXbHZCQTtFQUNFO0lBQ0Usc0JBQUE7SUFDQSx1QkFBQTtJQUNBLFVBQUE7RVhvdkJGO0VXbHZCQTtJQUNFLG9CQUFBO0lBQ0EsdUJBQUE7SUFDQSxVQUFBO0VYb3ZCRjtBQUNGO0FXOXZCQTtFQUNFO0lBQ0Usc0JBQUE7SUFDQSx1QkFBQTtJQUNBLFVBQUE7RVhvdkJGO0VXbHZCQTtJQUNFLG9CQUFBO0lBQ0EsdUJBQUE7SUFDQSxVQUFBO0VYb3ZCRjtBQUNGO0FXanZCQTtFQUNFO0lBQ0Usb0JBQUE7SUFDQSx1QkFBQTtJQUNBLFVBQUE7RVhtdkJGO0VXanZCQTtJQUNFLHNCQUFBO0lBQ0EsdUJBQUE7SUFDQSxVQUFBO0VYbXZCRjtBQUNGO0FXN3ZCQTtFQUNFO0lBQ0Usb0JBQUE7SUFDQSx1QkFBQTtJQUNBLFVBQUE7RVhtdkJGO0VXanZCQTtJQUNFLHNCQUFBO0lBQ0EsdUJBQUE7SUFDQSxVQUFBO0VYbXZCRjtBQUNGO0FXaHZCQTtFQUNFO0lBQ0Usc0JBQUE7SUFDQSx5QkFBQTtJQUNBLFVBQUE7RVhrdkJGO0VXaHZCQTtJQUNFLG9CQUFBO0lBQ0EseUJBQUE7SUFDQSxVQUFBO0VYa3ZCRjtBQUNGO0FXNXZCQTtFQUNFO0lBQ0Usc0JBQUE7SUFDQSx5QkFBQTtJQUNBLFVBQUE7RVhrdkJGO0VXaHZCQTtJQUNFLG9CQUFBO0lBQ0EseUJBQUE7SUFDQSxVQUFBO0VYa3ZCRjtBQUNGO0FXL3VCQTtFQUNFO0lBQ0Usb0JBQUE7SUFDQSx5QkFBQTtJQUNBLFVBQUE7RVhpdkJGO0VXL3VCQTtJQUNFLHNCQUFBO0lBQ0EseUJBQUE7SUFDQSxVQUFBO0VYaXZCRjtBQUNGO0FXM3ZCQTtFQUNFO0lBQ0Usb0JBQUE7SUFDQSx5QkFBQTtJQUNBLFVBQUE7RVhpdkJGO0VXL3VCQTtJQUNFLHNCQUFBO0lBQ0EseUJBQUE7SUFDQSxVQUFBO0VYaXZCRjtBQUNGO0FDdjJCQzs7RU1HQyxnQ0FBQTtVQUFBLHdCQUFBO0VBQ0EsaUNBQUE7VUFBQSx5QkFBQTtFQWFFLG9DQUFBO1VBQUEsNEJBQUE7QVA0MUJKO0FDNzJCQztFTVFDLGdDQUFBO1VBQUEsd0JBQUE7RUFDQSxpQ0FBQTtVQUFBLHlCQUFBO0VBYUUsb0NBQUE7VUFBQSw0QkFBQTtBUDQxQko7QUNsM0JDOztFTTBCRyxpQ0FBQTtVQUFBLHlCQUFBO0VBQ0EscUNBQUE7VUFBQSw2QkFBQTtBUDQxQko7QUN2M0JDO0VNOEJHLGtDQUFBO1VBQUEsMEJBQUE7RUFDQSxxQ0FBQTtVQUFBLDZCQUFBO0VBQ0Esb0JBQUE7QVA0MUJKO0FDNTNCQzs7RVdJRyxtQkFBQTtFQUNBLFVBQUE7RUFDQSxvRUFBQTtVQUFBLDREQUFBO0FaNDNCSjtBWTEzQkk7O0VBQ0UsZUFBQTtBWjYzQk47QUN0NEJDO0VXYUcsdUVBQUE7VUFBQSwrREFBQTtBWjQzQko7QUN6NEJDOztFTUdDLGdDQUFBO1VBQUEsd0JBQUE7RUFDQSxpQ0FBQTtVQUFBLHlCQUFBO0VBYUUsb0NBQUE7VUFBQSw0QkFBQTtBUDgzQko7QUMvNEJDO0VNUUMsZ0NBQUE7VUFBQSx3QkFBQTtFQUNBLGlDQUFBO1VBQUEseUJBQUE7RUFhRSxvQ0FBQTtVQUFBLDRCQUFBO0FQODNCSjtBQ3A1QkM7O0VNMEJHLG9DQUFBO1VBQUEsNEJBQUE7RUFDQSxxQ0FBQTtVQUFBLDZCQUFBO0FQODNCSjtBQ3o1QkM7RU04QkcscUNBQUE7VUFBQSw2QkFBQTtFQUNBLHFDQUFBO1VBQUEsNkJBQUE7RUFDQSxvQkFBQTtBUDgzQko7QUM5NUJDOztFV0lHLG1CQUFBO0VBQ0EsVUFBQTtFQUNBLG9FQUFBO1VBQUEsNERBQUE7QVo4NUJKO0FZNTVCSTs7RUFDRSxlQUFBO0FaKzVCTjtBQ3g2QkM7RVdhRyx1RUFBQTtVQUFBLCtEQUFBO0FaODVCSjtBQzM2QkM7O0VNR0MsZ0NBQUE7VUFBQSx3QkFBQTtFQUNBLGlDQUFBO1VBQUEseUJBQUE7RUFhRSxvQ0FBQTtVQUFBLDRCQUFBO0FQZzZCSjtBQ2o3QkM7RU1RQyxnQ0FBQTtVQUFBLHdCQUFBO0VBQ0EsaUNBQUE7VUFBQSx5QkFBQTtFQWFFLG9DQUFBO1VBQUEsNEJBQUE7QVBnNkJKO0FDdDdCQzs7RU0wQkcsb0NBQUE7VUFBQSw0QkFBQTtFQUNBLHFDQUFBO1VBQUEsNkJBQUE7QVBnNkJKO0FDMzdCQztFTThCRyxxQ0FBQTtVQUFBLDZCQUFBO0VBQ0EscUNBQUE7VUFBQSw2QkFBQTtFQUNBLG9CQUFBO0FQZzZCSjtBQ2g4QkM7O0VXSUcsbUJBQUE7RUFDQSxVQUFBO0VBQ0Esb0VBQUE7VUFBQSw0REFBQTtBWmc4Qko7QVk5N0JJOztFQUNFLGVBQUE7QVppOEJOO0FDMThCQztFV2FHLHVFQUFBO1VBQUEsK0RBQUE7QVpnOEJKO0FDNzhCQzs7RU1HQyxnQ0FBQTtVQUFBLHdCQUFBO0VBQ0EsaUNBQUE7VUFBQSx5QkFBQTtFQWFFLG9DQUFBO1VBQUEsNEJBQUE7QVBrOEJKO0FDbjlCQztFTVFDLGdDQUFBO1VBQUEsd0JBQUE7RUFDQSxpQ0FBQTtVQUFBLHlCQUFBO0VBYUUsb0NBQUE7VUFBQSw0QkFBQTtBUGs4Qko7QUN4OUJDOztFTTBCRyxtQ0FBQTtVQUFBLDJCQUFBO0VBQ0EscUNBQUE7VUFBQSw2QkFBQTtBUGs4Qko7QUM3OUJDO0VNOEJHLG9DQUFBO1VBQUEsNEJBQUE7RUFDQSxxQ0FBQTtVQUFBLDZCQUFBO0VBQ0Esb0JBQUE7QVBrOEJKO0FDbCtCQzs7RVdJRyxtQkFBQTtFQUNBLFVBQUE7RUFDQSxvRUFBQTtVQUFBLDREQUFBO0FaaytCSjtBWWgrQkk7O0VBQ0UsZUFBQTtBWm0rQk47QUM1K0JDO0VXYUcsdUVBQUE7VUFBQSwrREFBQTtBWmsrQko7QUMvK0JDOztFTUdDLGdDQUFBO1VBQUEsd0JBQUE7RUFDQSxpQ0FBQTtVQUFBLHlCQUFBO0VBYUUsb0NBQUE7VUFBQSw0QkFBQTtBUG8rQko7QUNyL0JDO0VNUUMsZ0NBQUE7VUFBQSx3QkFBQTtFQUNBLGlDQUFBO1VBQUEseUJBQUE7RUFhRSxvQ0FBQTtVQUFBLDRCQUFBO0FQbytCSjtBQzEvQkM7O0VNMEJHLHFDQUFBO1VBQUEsNkJBQUE7RUFDQSxxQ0FBQTtVQUFBLDZCQUFBO0FQbytCSjtBQy8vQkM7RU04Qkcsc0NBQUE7VUFBQSw4QkFBQTtFQUNBLHFDQUFBO1VBQUEsNkJBQUE7RUFDQSxvQkFBQTtBUG8rQko7QUNwZ0NDOztFV0lHLG1CQUFBO0VBQ0EsVUFBQTtFQUNBLG9FQUFBO1VBQUEsNERBQUE7QVpvZ0NKO0FZbGdDSTs7RUFDRSxlQUFBO0FacWdDTjtBQzlnQ0M7RVdhRyx1RUFBQTtVQUFBLCtEQUFBO0Fab2dDSjtBQ2poQ0M7O0VNR0MsZ0NBQUE7VUFBQSx3QkFBQTtFQUNBLGlDQUFBO1VBQUEseUJBQUE7RUFhRSxvQ0FBQTtVQUFBLDRCQUFBO0FQc2dDSjtBQ3ZoQ0M7RU1RQyxnQ0FBQTtVQUFBLHdCQUFBO0VBQ0EsaUNBQUE7VUFBQSx5QkFBQTtFQWFFLG9DQUFBO1VBQUEsNEJBQUE7QVBzZ0NKO0FDNWhDQzs7RU0wQkcscUNBQUE7VUFBQSw2QkFBQTtFQUNBLHFDQUFBO1VBQUEsNkJBQUE7QVBzZ0NKO0FDamlDQztFTThCRyxzQ0FBQTtVQUFBLDhCQUFBO0VBQ0EscUNBQUE7VUFBQSw2QkFBQTtFQUNBLG9CQUFBO0FQc2dDSjtBQ3RpQ0M7O0VXSUcsbUJBQUE7RUFDQSxVQUFBO0VBQ0Esb0VBQUE7VUFBQSw0REFBQTtBWnNpQ0o7QVlwaUNJOztFQUNFLGVBQUE7QVp1aUNOO0FDaGpDQztFV2FHLHVFQUFBO1VBQUEsK0RBQUE7QVpzaUNKO0FDbmpDQzs7RU1HQyxnQ0FBQTtVQUFBLHdCQUFBO0VBQ0EsaUNBQUE7VUFBQSx5QkFBQTtFQWFFLG9DQUFBO1VBQUEsNEJBQUE7QVB3aUNKO0FDempDQztFTVFDLGdDQUFBO1VBQUEsd0JBQUE7RUFDQSxpQ0FBQTtVQUFBLHlCQUFBO0VBYUUsb0NBQUE7VUFBQSw0QkFBQTtBUHdpQ0o7QUM5akNDOztFTTBCRyxzQ0FBQTtVQUFBLDhCQUFBO0VBQ0EscUNBQUE7VUFBQSw2QkFBQTtBUHdpQ0o7QUNua0NDO0VNOEJHLHVDQUFBO1VBQUEsK0JBQUE7RUFDQSxxQ0FBQTtVQUFBLDZCQUFBO0VBQ0Esb0JBQUE7QVB3aUNKO0FDeGtDQzs7RVdJRyxtQkFBQTtFQUNBLFVBQUE7RUFDQSxvRUFBQTtVQUFBLDREQUFBO0Fad2tDSjtBWXRrQ0k7O0VBQ0UsZUFBQTtBWnlrQ047QUNsbENDO0VXYUcsdUVBQUE7VUFBQSwrREFBQTtBWndrQ0o7QVl4akNBO0VBQ0U7SUFDRSxxQkFBQTtJQUNBLFVBQUE7RVowakNGO0VZeGpDQTtJQUNFLG1CQUFBO0lBQ0EsVUFBQTtFWjBqQ0Y7QUFDRjtBWWxrQ0E7RUFDRTtJQUNFLHFCQUFBO0lBQ0EsVUFBQTtFWjBqQ0Y7RVl4akNBO0lBQ0UsbUJBQUE7SUFDQSxVQUFBO0VaMGpDRjtBQUNGO0FZdmpDQTtFQUNFO0lBQ0UsbUJBQUE7RVp5akNGO0VZdmpDQTtJQUNFLHFCQUFBO0lBQ0EsVUFBQTtFWnlqQ0Y7QUFDRjtBWWhrQ0E7RUFDRTtJQUNFLG1CQUFBO0VaeWpDRjtFWXZqQ0E7SUFDRSxxQkFBQTtJQUNBLFVBQUE7RVp5akNGO0FBQ0Y7QVl0akNBO0VBQ0U7SUFDRSxxQkFBQTtJQUNBLFVBQUE7RVp3akNGO0VZdGpDQTtJQUNFLG1CQUFBO0lBQ0EsVUFBQTtFWndqQ0Y7QUFDRjtBWWhrQ0E7RUFDRTtJQUNFLHFCQUFBO0lBQ0EsVUFBQTtFWndqQ0Y7RVl0akNBO0lBQ0UsbUJBQUE7SUFDQSxVQUFBO0Vad2pDRjtBQUNGO0FZcmpDQTtFQUNFO0lBQ0UsbUJBQUE7RVp1akNGO0VZcmpDQTtJQUNFLHFCQUFBO0lBQ0EsVUFBQTtFWnVqQ0Y7QUFDRjtBWTlqQ0E7RUFDRTtJQUNFLG1CQUFBO0VadWpDRjtFWXJqQ0E7SUFDRSxxQkFBQTtJQUNBLFVBQUE7RVp1akNGO0FBQ0Y7QVlwakNBO0VBQ0U7SUFDRSxxQkFBQTtJQUNBLHdCQUFBO0lBQ0EsVUFBQTtFWnNqQ0Y7RVlwakNBO0lBQ0UsbUJBQUE7SUFDQSx3QkFBQTtFWnNqQ0Y7QUFDRjtBWS9qQ0E7RUFDRTtJQUNFLHFCQUFBO0lBQ0Esd0JBQUE7SUFDQSxVQUFBO0Vac2pDRjtFWXBqQ0E7SUFDRSxtQkFBQTtJQUNBLHdCQUFBO0Vac2pDRjtBQUNGO0FZbmpDQTtFQUNFO0lBQ0UsbUJBQUE7SUFDQSx3QkFBQTtFWnFqQ0Y7RVluakNBO0lBQ0UscUJBQUE7SUFDQSx3QkFBQTtJQUNBLFVBQUE7RVpxakNGO0FBQ0Y7QVk5akNBO0VBQ0U7SUFDRSxtQkFBQTtJQUNBLHdCQUFBO0VacWpDRjtFWW5qQ0E7SUFDRSxxQkFBQTtJQUNBLHdCQUFBO0lBQ0EsVUFBQTtFWnFqQ0Y7QUFDRjtBWWxqQ0E7RUFDRTtJQUNFLHFCQUFBO0lBQ0Esd0JBQUE7SUFDQSxVQUFBO0Vab2pDRjtFWWxqQ0E7SUFDRSxtQkFBQTtJQUNBLHdCQUFBO0Vab2pDRjtBQUNGO0FZN2pDQTtFQUNFO0lBQ0UscUJBQUE7SUFDQSx3QkFBQTtJQUNBLFVBQUE7RVpvakNGO0VZbGpDQTtJQUNFLG1CQUFBO0lBQ0Esd0JBQUE7RVpvakNGO0FBQ0Y7QVlqakNBO0VBQ0U7SUFDRSxtQkFBQTtJQUNBLHdCQUFBO0VabWpDRjtFWWpqQ0E7SUFDRSxxQkFBQTtJQUNBLHdCQUFBO0lBQ0EsVUFBQTtFWm1qQ0Y7QUFDRjtBWTVqQ0E7RUFDRTtJQUNFLG1CQUFBO0lBQ0Esd0JBQUE7RVptakNGO0VZampDQTtJQUNFLHFCQUFBO0lBQ0Esd0JBQUE7SUFDQSxVQUFBO0VabWpDRjtBQUNGO0FZaGpDQTtFQUNFO0lBQ0UscUJBQUE7SUFDQSwwQkFBQTtJQUNBLFVBQUE7RVprakNGO0VZaGpDQTtJQUNFLG1CQUFBO0lBQ0EsMEJBQUE7RVprakNGO0FBQ0Y7QVkzakNBO0VBQ0U7SUFDRSxxQkFBQTtJQUNBLDBCQUFBO0lBQ0EsVUFBQTtFWmtqQ0Y7RVloakNBO0lBQ0UsbUJBQUE7SUFDQSwwQkFBQTtFWmtqQ0Y7QUFDRjtB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QTtBZnk4RU47QWVyOEVFO0VBQ0UseURBQUE7QWZ1OEVKO0FleDhFRTtFQUlJLGtCQUFBO0VBQ0EsdUJBQUE7VUFBQSxlQUFBO0FmdThFTjtBZTU4RUU7RUFRTSxtREFBQTtVQUFBLDJDQUFBO0FmdThFUjtBZW44RUk7RUFFSSxnQkFBQTtBZm84RVI7QWUvN0VFO0VDaEJBLGtCQUFBO0VBQ0Esb0JBQUE7QWhCazlFRjtBZW44RUU7O0VDWkUsa0JBQUE7QWhCbTlFSjtBZ0JsOUVJOzs7Ozs7RUFHRSxVQUFBO0FoQnU5RU47QWdCcjlFSTs7RUFDRSxVQUFBO0FoQnc5RU47QWVuOUVFO0VDREUsZUFBQTtBaEJ1OUVKO0FDdG9GQzs7RWVPQyxZQUFBO0VBQ0EsbUJBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7QWhCbW9GRjtBQzdvRkM7RUNHQyxXQUFBO0VBQ0EsWUFBQTtFY29MRSxnQkFBQTtFQUNBLGVBQUE7QWhCMDlFSjtBQ25wRkM7O0VlT0MsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0FoQmdwRkY7QUMxcEZDOztFZStMSyxlQUFBO0FoQis5RU47QUM5cEZDO0VDR0MsV0FBQTtFQUNBLFlBQUE7RWNnTUUsZ0JBQUE7RUFDQSxlQUFBO0FoQis5RUo7QWVwL0VFOzs7Ozs7O0VDcVJFLGlCQUFBO0FoQnd1RUo7QWU3L0VFO0VDd1JFLDhCQUFBO0FoQnd1RUo7QWVoZ0ZFO0VDMlJFLGdCQUFBO0FoQnd1RUo7QWVuZ0ZFOztFQytSRSxjQUFBO0FoQnd1RUo7QWV2Z0ZFO0VDa1NFLGtCQUFBO0FoQnd1RUo7QWUxZ0ZFO0VDcVNFLGtCQUFBO0FoQnd1RUo7QWU3Z0ZFOztFQ3lTRSwyQkFBQTtFQUNBLDhCQUFBO0FoQnd1RUo7QWVsaEZFOztFQzhTRSw0QkFBQTtFQUNBLCtCQUFBO0FoQnd1RUo7QWdCdHVFRTtFQUVJLGtCQUFBO0FoQnV1RU47QWdCenVFRTtFQUtJLGtCQUFBO0FoQnV1RU47QWdCNXVFRTs7RUFTSSwyQkFBQTtFQUNBLDhCQUFBO0FoQnV1RU47QWdCanZFRTs7RUFjSSw0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dkJvL0dSO0F1QmwvR1E7OztFQUNFLFVBQUE7QXZCcy9HVjtBdUJuL0dROzs7RUFDRSxVQUFBO0F2QnUvR1Y7QXVCbC9HSTtFQUNFLHFCQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7QXZCby9HTjtBQzl5SEM7RXNCOFRLLG9CQUFBO0F2Qm0vR047QUNqekhDO0VzQmtVSyxvQkFBQTtBdkJrL0dOO0F1Qi8rR0k7RUFDRSxrQkFBQTtFQUNBLHVCQUFBO0F2QmkvR047QXVCdGhIRTtFQTBDSSxXQUFBO0F2QisrR047QUMzekhDOzs7O0VzQm9WSyx1QkFBQTtFQUNBLGdCQUFBO0F2QjYrR047QXVCMytHTTs7OztFQUNFLFVBQUE7QXZCZy9HUjtBdUI3K0dNOzs7O0VBQ0UsVUFBQTtBdkJrL0dSO0FDOTBIQztFc0JpV0ssVUFBQTtBdkJnL0dOO0FDajFIQztFc0JzV0ssVUFBQTtBdkI4K0dOO0FDcDFIQzs7OztFc0I2V0ssMkJBQUE7RUFDQSw4QkFBQTtBdkI2K0dOO0FDMzFIQzs7OztFc0JxWEssdUJBQUE7RUFDQSw0QkFBQTtFQUNBLCtCQUFBO0F2QjQrR047QUNuMkhDO0VzQjRYSyxtQkFBQTtBdkIwK0dOO0F1QnBrSEU7RUE4RkksaUJBQUE7QXZCeStHTjtBdUJ2a0hFO0VBZ0dNLGdCQUFBO0F2QjArR1I7QUM1MkhDO0VzQnlZUyxnQkFBQTtBdkJzK0dWO0FDLzJIQztFc0I2WVMsMEJBQUE7QXZCcStHVjtBMkJ0MkhFOztFRjZFRSwwQkFBQTtBekI2eEhKO0FDdDNIQztFd0I4RkssK0JBQUE7RUFDQSxjQUFBO0F6QjJ4SE47QUMxM0hDO0V3QnFHSyxlQUFBO0VBQ0EsOEJBQUE7QXpCd3hITjtBQzkzSEM7O0V3QjZHSywwQkFBQTtBekJxeEhOO0FDbDRIQztFd0JvSE8sMEJBQUE7QXpCaXhIUjtBQ3I0SEM7RXdCMEhPLDBCQUFBO0F6Qjh3SFI7QUN4NEhDO0V3QmtJTyxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxzQkFBQTtBekJ5d0hSO0FDNzRIQzs7OztFd0I2SU8sMEJBQUE7QXpCc3dI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Q2xpSkU7RUFDRSxXQUFBO0F0Q29pSko7QUM1dEpDO0VxQ2tNSyx5QkFBQTtBdEM2aEpOO0FzQzFoSk07RUFDRSx5QkFBQTtBdEM0aEpSO0FDbHVKQztFcUNrTUsseUJBQUE7QXRDbWlKTjtBc0NoaUpNO0VBQ0UseUJBQUE7QXRDa2lKUjtBQ3h1SkM7RXFDa01LLHlCQUFBO0F0Q3lpSk47QXNDdGlKTTtFQUNFLHlCQUFBO0F0Q3dpSlI7QUM5dUpDO0VxQ2tNSyx5QkFBQTtBdEMraUpOO0FzQzVpSk07RUFDRSx5QkFBQTtBdEM4aUpSO0FDcHZKQztFcUNrTUsseUJBQUE7QXRDcWpKTjtBc0NsakpNO0VBQ0UseUJBQUE7QXRDb2pKUjtBQzF2SkM7RXFDa01LLHlCQUFBO0F0QzJqSk47QXNDeGpKTTtFQUNFLHlCQUFBO0F0QzBqSlI7QUNod0pDO0VxQ2tNSyx5QkFBQTtBdENpa0pOO0FzQzlqSk07RUFDRSx5QkFBQTtBdENna0pSO0FDdHdKQztFcUNrTUsseUJBQUE7QXRDdWtKTjtBc0Nwa0pNO0VBQ0UseUJBQUE7QXRDc2tKUjtBQzV3SkM7RXFDa01LLHlCQUFBO0F0QzZrSk47QXNDMWtKTTtFQUNFLHlCQUFBO0F0QzRrSlI7QUNseEpDO0VxQ2tNSyx5QkFBQTtBdENtbEpOO0FzQ2hsSk07RUFDRSx5QkFBQTtBdENrbEpSO0FDeHhKQztFcUNrTUsseUJBQUE7QXRDeWxKTjtBc0N0bEpNO0VBQ0UseUJBQUE7QXRDd2xKUjtBQzl4SkM7RXFDa01LLHlCQUFBO0F0QytsSk47QXNDNWxKTTtFQUNFLHlCQUFBO0F0QzhsSlI7QUNweUpDO0VxQ2tNSyx5QkFBQTtBdENxbUpOO0FzQ2xtSk07RUFDRSx5QkFBQTtBdENvbUpSO0F1Q3R5SkU7RUFDRSxjQUFBO0F2Q3d5Sko7QUM3eUpDO0VzQ1VLLGlCQUFBO0F2Q3N5Sk47QXdDaHpKQTtFQUNFLGtCQUFBO0F4Q2t6SkY7QUNuekpDO0VpQkdDLHNCQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7RUFDQSwwQkFBQTtFQUNBLGVBQUE7RUFDQSwwQkFBQTtFQUNBLG1CQUFB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QTdGbzBQTjtBNkZoMFBFO0VBQ0Usc0NBQUE7RUFDQSxtQkFBQTtFQUNBLHlFQUFBO0E3RmswUEo7QTZGcjBQRTtFQU1JLHlCQUFBO0E3RmswUE47QTZGOXpQRTtFQUNFLHlDQUFBO0VBQ0EsbUJBQUE7RUFDQSx5RUFBQTtBN0ZnMFBKO0E2Rm4wUEU7RUFNSSw0QkFBQTtBN0ZnMFBOO0FBcjNQQTtFQUNFLHdCQUFBO0VBQ0Esd0JBQUE7RUFDQSx3QkFBQTtFQUNBLHdCQUFBO0VBQ0Esd0JBQUE7RUFDQSxxQkFBQTtFQUNBLHdCQUFBO0VBQ0Esd0JBQUE7RUFDQSx3QkFBQTtFQUNBLHdCQUFBO0VBRUEsMkJBQUE7RUFDQSwyQkFBQTtFQUNBLG1DQUFBO0VBRUEsMEJBQUE7RUFDQSwwQkFBQTtFQUNBLDBCQUFBO0VBQ0EsMEJBQUE7RUFFQSxvQkFBQTtFQUNBLHVCQUFBO0VBQ0EsdUJBQUE7RUFDQSx1QkFBQTtFQUNBLHVCQUFBO0VBQ0EsbUJBQUE7RUFDQSx5QkFBQTtFQUNBLHFCQUFBO0VBQ0EsMkJBQUE7RUFDQSxxQkFBQTtFQUNBLDJCQUFBO0VBQ0Esb0JBQUE7RUFDQSwwQkFBQTtFQUNBLGtCQUFBO0VBQ0Esd0JBQUE7QUFvM1BGIiwiZmlsZSI6ImRlZmF1bHQubGVzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvbmZpZyBnbG9iYWwgbGVzcyB1bmRlciBhbnRkXG5bY2xhc3NePX4nQHthbnQtcHJlZml4fS0nXSxcbltjbGFzcyo9ficgQHthbnQtcHJlZml4fS0nXSB7XG4gIC8vIHJlbW92ZSB0aGUgY2xlYXIgYnV0dG9uIG9mIGEgdGV4dCBpbnB1dCBjb250cm9sIGluIElFMTArXG4gICY6Oi1tcy1jbGVhcixcbiAgaW5wdXQ6Oi1tcy1jbGVhcixcbiAgaW5wdXQ6Oi1tcy1yZXZlYWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmLFxuICAqLFxuICAqOjpiZWZvcmUsXG4gICo6OmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvLyAxXG4gIH1cbn1cbiIsIkBpbXBvcnQgXCJ+bm9kZV9tb2R1bGVzL25nLXpvcnJvLWFudGQvc3R5bGUvZW50cnlcIjtcbkBpbXBvcnQgXCJ+bm9kZV9tb2R1bGVzL25nLXpvcnJvLWFudGQvYnV0dG9uL3N0eWxlL2VudHJ5XCI7XG5AaW1wb3J0IFwifm5vZGVfbW9kdWxlcy9uZy16b3Jyby1hbnRkL3NwaW4vc3R5bGUvZW50cnlcIjtcbkBpbXBvcnQgXCJ+bm9kZV9tb2R1bGVzL25nLXpvcnJvLWFudGQvaW5wdXQvc3R5bGUvZW50cnlcIjtcbkBpbXBvcnQgXCJ+bm9kZV9tb2R1bGVzL25nLXpvcnJvLWFudGQvaWNvbi9zdHlsZS9lbnRyeVwiO1xuQGltcG9ydCBcIn5ub2RlX21vZHVsZXMvbmctem9ycm8tYW50ZC9jaGVja2JveC9zdHlsZS9lbnRyeVwiO1xuQGltcG9ydCBcIn5ub2RlX21vZHVsZXMvbmctem9ycm8tYW50ZC9ub3RpZmljYXRpb24vc3R5bGUvZW50cnlcIjtcbkBpbXBvcnQgXCJ+bm9kZV9tb2R1bGVzL25nLXpvcnJvLWFudGQvcmF0ZS9zdHlsZS9lbnRyeVwiO1xuQGltcG9ydCBcIn5ub2RlX21vZHVsZXMvbmctem9ycm8tYW50ZC9zbGlkZXIvc3R5bGUvZW50cnlcIjtcbkBpbXBvcnQgXCJ+bm9kZV9tb2R1bGVzL25nLXpvcnJvLWFudGQvbW9kYWwvc3R5bGUvZW50cnlcIjtcbkBpbXBvcnQgXCJ+bm9kZV9tb2R1bGVzL25nLXpvcnJvLWFudGQvc2VsZWN0L3N0eWxlL2VudHJ5XCI7XG5AaW1wb3J0IFwifm5vZGVfbW9kdWxlcy9uZy16b3Jyby1hbnRkL2FsZXJ0L3N0eWxlL2VudHJ5XCI7XG5AaW1wb3J0IFwifm5vZGVfbW9kdWxlcy9uZy16b3Jyby1hbnRkL2Nhcm91c2VsL3N0eWxlL2VudHJ5XCI7XG5AaW1wb3J0IFwifm5vZGVfbW9kdWxlcy9uZy16b3Jyby1hbnRkL3BvcG92ZXIvc3R5bGUvZW50cnlcIjtcbkBpbXBvcnQgXCIuL3RoZW1lcy9kZWZhdWx0XCI7XG5cbkBpbXBvcnQgXCJjb21wb25lbnRzL2luZGV4XCI7XG5cbjpyb290IHtcbiAgLS11bmktbGlnaHQtMTAwOiAjRkZGRkZGO1xuICAtLXVuaS1saWdodC0xNTA6ICM5MTk0OWI7XG4gIC0tdW5pLWxpZ2h0LTIwMDogI0E3QTZBNztcbiAgLS11bmktbGlnaHQtMjUwOiAjZjZmOGZhO1xuICAtLXVuaS1saWdodC00MDA6ICMwMDQ0Nzk7XG4gIC0tdW5pLWxpZ2h0LTUwMDogI0ZGRjtcbiAgLS11bmktbGlnaHQtNjAwOiAjMDA2MGFjO1xuICAtLXVuaS1saWdodC03MDA6ICNmNmY4ZmE7XG4gIC0tdW5pLWxpZ2h0LTc1MDogI2VlZWVlZjtcbiAgLS11bmktbGlnaHQtODAwOiAjZWVlZWVmO1xuXG4gIC0tdW5pLWNvbnRyYXN0LTMwMDogIzRjNTk3NTtcbiAgLS11bmktY29udHJhc3QtNTAwOiAjMjQyNDI0O1xuICAtLXVuaS1wcmltYXJ5LWNvbnRyYXN0LTUwMDogI0ZGRkZGRjtcblxuICAtLXVuaS1wcmltYXJ5LTQwMDogIzAxYThlYztcbiAgLS11bmktcHJpbWFyeS01MDA6ICM0NjlFQzM7XG4gIC0tdW5pLXByaW1hcnktODAwOiAjMDA0NDc5O1xuICAtLXVuaS1wcmltYXJ5LTkwMDogIzAzM0E2NTtcblxuICAtLXVuaS1ibGFjazogIzIxMjQyOTtcbiAgLS11bmktZ3JleS00MDA6ICM0OTUwNTc7XG4gIC0tdW5pLWdyZXktMzAwOiAjQUNCNUJEO1xuICAtLXVuaS1ncmV5LTIwMDogI0RERTJFNTtcbiAgLS11bmktZ3JleS0xMDA6ICNGOEY5RkE7XG4gIC0tdW5pLWJsdWU6ICMwMzU3QTU7XG4gIC0tdW5pLWxpZ2h0LWJsdWU6ICMwMUE5RjA7XG4gIC0tdW5pLXllbGxvdzogI0RCN0QwMDtcbiAgLS11bmktbGlnaHQteWVsbG93OiAjRjlBMjAwO1xuICAtLXVuaS1wdXJwbGU6ICM4NDAwQUI7XG4gIC0tdW5pLWxpZ2h0LXB1cnBsZTogI0JDMDBGNDtcbiAgLS11bmktZ3JlZW46ICMwMTcwNDA7XG4gIC0tdW5pLWxpZ2h0LWdyZWVuOiAjMDBDMTZEO1xuICAtLXVuaS1yZWQ6ICNCNzJBMjg7XG4gIC0tdW5pLWxpZ2h0LXJlZDogI0YxNUI1OTtcbn1cbiIsIi8qIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLWJhbmctc3BhY2UtYmVmb3JlLG5vLWR1cGxpY2F0ZS1zZWxlY3RvcnMsc3RyaW5nLW5vLW5ld2xpbmUgKi9cbi50aW55Q29sb3JNaXhpbigpIHtcbkBmdW5jdGlvbnM6IH5gKGZ1bmN0aW9uKCkge1xuLy8gVGlueUNvbG9yIHYxLjQuMVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2Jncmlucy9UaW55Q29sb3Jcbi8vIDIwMTYtMDctMDcsIEJyaWFuIEdyaW5zdGVhZCwgTUlUIExpY2Vuc2VcbnZhciB0cmltTGVmdCA9IC9eXFxzKy8sXG4gICAgdHJpbVJpZ2h0ID0gL1xccyskLyxcbiAgICB0aW55Q291bnRlciA9IDAsXG4gICAgbWF0aFJvdW5kID0gTWF0aC5yb3VuZCxcbiAgICBtYXRoTWluID0gTWF0aC5taW4sXG4gICAgbWF0aE1heCA9IE1hdGgubWF4LFxuICAgIG1hdGhSYW5kb20gPSBNYXRoLnJhbmRvbTtcblxuZnVuY3Rpb24gdGlueWNvbG9yIChjb2xvciwgb3B0cykge1xuXG4gICAgY29sb3IgPSAoY29sb3IpID8gY29sb3IgOiAnJztcbiAgICBvcHRzID0gb3B0cyB8fCB7IH07XG5cbiAgICAvLyBJZiBpbnB1dCBpcyBhbHJlYWR5IGEgdGlueWNvbG9yLCByZXR1cm4gaXRzZWxmXG4gICAgaWYgKGNvbG9yIGluc3RhbmNlb2YgdGlueWNvbG9yKSB7XG4gICAgICAgcmV0dXJuIGNvbG9yO1xuICAgIH1cbiAgICAvLyBJZiB3ZSBhcmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24sIGNhbGwgdXNpbmcgbmV3IGluc3RlYWRcbiAgICBpZiAoISh0aGlzIGluc3RhbmNlb2YgdGlueWNvbG9yKSkge1xuICAgICAgICByZXR1cm4gbmV3IHRpbnljb2xvcihjb2xvciwgb3B0cyk7XG4gICAgfVxuXG4gICAgdmFyIHJnYiA9IGlucHV0VG9SR0IoY29sb3IpO1xuICAgIHRoaXMuX29yaWdpbmFsSW5wdXQgPSBjb2xvcixcbiAgICB0aGlzLl9yID0gcmdiLnIsXG4gICAgdGhpcy5fZyA9IHJnYi5nLFxuICAgIHRoaXMuX2IgPSByZ2IuYixcbiAgICB0aGlzLl9hID0gcmdiLmEsXG4gICAgdGhpcy5fcm91bmRBID0gbWF0aFJvdW5kKDEwMCp0aGlzLl9hKSAvIDEwMCxcbiAgICB0aGlzLl9mb3JtYXQgPSBvcHRzLmZvcm1hdCB8fCByZ2IuZm9ybWF0O1xuICAgIHRoaXMuX2dyYWRpZW50VHlwZSA9IG9wdHMuZ3JhZGllbnRUeXBlO1xuXG4gICAgLy8gRG9uJ3QgbGV0IHRoZSByYW5nZSBvZiBbMCwyNTVdIGNvbWUgYmFjayBpbiBbMCwxXS5cbiAgICAvLyBQb3RlbnRpYWxseSBsb3NlIGEgbGl0dGxlIGJpdCBvZiBwcmVjaXNpb24gaGVyZSwgYnV0IHdpbGwgZml4IGlzc3VlcyB3aGVyZVxuICAgIC8vIC41IGdldHMgaW50ZXJwcmV0ZWQgYXMgaGFsZiBvZiB0aGUgdG90YWwsIGluc3RlYWQgb2YgaGFsZiBvZiAxXG4gICAgLy8gSWYgaXQgd2FzIHN1cHBvc2VkIHRvIGJlIDEyOCwgdGhpcyB3YXMgYWxyZWFkeSB0YWtlbiBjYXJlIG9mIGJ5IGlucHV0VG9SZ2JcbiAgICBpZiAodGhpcy5fciA8IDEpIHsgdGhpcy5fciA9IG1hdGhSb3VuZCh0aGlzLl9yKTsgfVxuICAgIGlmICh0aGlzLl9nIDwgMSkgeyB0aGlzLl9nID0gbWF0aFJvdW5kKHRoaXMuX2cpOyB9XG4gICAgaWYgKHRoaXMuX2IgPCAxKSB7IHRoaXMuX2IgPSBtYXRoUm91bmQodGhpcy5fYik7IH1cblxuICAgIHRoaXMuX29rID0gcmdiLm9rO1xuICAgIHRoaXMuX3RjX2lkID0gdGlueUNvdW50ZXIrKztcbn1cblxudGlueWNvbG9yLnByb3RvdHlwZSA9IHtcbiAgICBpc0Rhcms6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRCcmlnaHRuZXNzKCkgPCAxMjg7XG4gICAgfSxcbiAgICBpc0xpZ2h0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmlzRGFyaygpO1xuICAgIH0sXG4gICAgaXNWYWxpZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vaztcbiAgICB9LFxuICAgIGdldE9yaWdpbmFsSW5wdXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuX29yaWdpbmFsSW5wdXQ7XG4gICAgfSxcbiAgICBnZXRGb3JtYXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybWF0O1xuICAgIH0sXG4gICAgZ2V0QWxwaGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYTtcbiAgICB9LFxuICAgIGdldEJyaWdodG5lc3M6IGZ1bmN0aW9uKCkge1xuICAgICAgICAvL2h0dHA6Ly93d3cudzMub3JnL1RSL0FFUlQjY29sb3ItY29udHJhc3RcbiAgICAgICAgdmFyIHJnYiA9IHRoaXMudG9SZ2IoKTtcbiAgICAgICAgcmV0dXJuIChyZ2IuciAqIDI5OSArIHJnYi5nICogNTg3ICsgcmdiLmIgKiAxMTQpIC8gMTAwMDtcbiAgICB9LFxuICAgIGdldEx1bWluYW5jZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIC8vaHR0cDovL3d3dy53My5vcmcvVFIvMjAwOC9SRUMtV0NBRzIwLTIwMDgxMjExLyNyZWxhdGl2ZWx1bWluYW5jZWRlZlxuICAgICAgICB2YXIgcmdiID0gdGhpcy50b1JnYigpO1xuICAgICAgICB2YXIgUnNSR0IsIEdzUkdCLCBCc1JHQiwgUiwgRywgQjtcbiAgICAgICAgUnNSR0IgPSByZ2Iuci8yNTU7XG4gICAgICAgIEdzUkdCID0gcmdiLmcvMjU1O1xuICAgICAgICBCc1JHQiA9IHJnYi5iLzI1NTtcblxuICAgICAgICBpZiAoUnNSR0IgPD0gMC4wMzkyOCkge1IgPSBSc1JHQiAvIDEyLjkyO30gZWxzZSB7UiA9IE1hdGgucG93KCgoUnNSR0IgKyAwLjA1NSkgLyAxLjA1NSksIDIuNCk7fVxuICAgICAgICBpZiAoR3NSR0IgPD0gMC4wMzkyOCkge0cgPSBHc1JHQiAvIDEyLjkyO30gZWxzZSB7RyA9IE1hdGgucG93KCgoR3NSR0IgKyAwLjA1NSkgLyAxLjA1NSksIDIuNCk7fVxuICAgICAgICBpZiAoQnNSR0IgPD0gMC4wMzkyOCkge0IgPSBCc1JHQiAvIDEyLjkyO30gZWxzZSB7QiA9IE1hdGgucG93KCgoQnNSR0IgKyAwLjA1NSkgLyAxLjA1NSksIDIuNCk7fVxuICAgICAgICByZXR1cm4gKDAuMjEyNiAqIFIpICsgKDAuNzE1MiAqIEcpICsgKDAuMDcyMiAqIEIpO1xuICAgIH0sXG4gICAgc2V0QWxwaGE6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX2EgPSBib3VuZEFscGhhKHZhbHVlKTtcbiAgICAgICAgdGhpcy5fcm91bmRBID0gbWF0aFJvdW5kKDEwMCp0aGlzLl9hKSAvIDEwMDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcbiAgICB0b0hzdjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBoc3YgPSByZ2JUb0hzdih0aGlzLl9yLCB0aGlzLl9nLCB0aGlzLl9iKTtcbiAgICAgICAgcmV0dXJuIHsgaDogaHN2LmggKiAzNjAsIHM6IGhzdi5zLCB2OiBoc3YudiwgYTogdGhpcy5fYSB9O1xuICAgIH0sXG4gICAgdG9Ic3ZTdHJpbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgaHN2ID0gcmdiVG9Ic3YodGhpcy5fciwgdGhpcy5fZywgdGhpcy5fYik7XG4gICAgICAgIHZhciBoID0gbWF0aFJvdW5kKGhzdi5oICogMzYwKSwgcyA9IG1hdGhSb3VuZChoc3YucyAqIDEwMCksIHYgPSBtYXRoUm91bmQoaHN2LnYgKiAxMDApO1xuICAgICAgICByZXR1cm4gKHRoaXMuX2EgPT0gMSkgP1xuICAgICAgICAgIFwiaHN2KFwiICArIGggKyBcIiwgXCIgKyBzICsgXCIlLCBcIiArIHYgKyBcIiUpXCIgOlxuICAgICAgICAgIFwiaHN2YShcIiArIGggKyBcIiwgXCIgKyBzICsgXCIlLCBcIiArIHYgKyBcIiUsIFwiKyB0aGlzLl9yb3VuZEEgKyBcIilcIjtcbiAgICB9LFxuICAgIHRvSHNsOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGhzbCA9IHJnYlRvSHNsKHRoaXMuX3IsIHRoaXMuX2csIHRoaXMuX2IpO1xuICAgICAgICByZXR1cm4geyBoOiBoc2wuaCAqIDM2MCwgczogaHNsLnMsIGw6IGhzbC5sLCBhOiB0aGlzLl9hIH07XG4gICAgfSxcbiAgICB0b0hzbFN0cmluZzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBoc2wgPSByZ2JUb0hzbCh0aGlzLl9yLCB0aGlzLl9nLCB0aGlzLl9iKTtcbiAgICAgICAgdmFyIGggPSBtYXRoUm91bmQoaHNsLmggKiAzNjApLCBzID0gbWF0aFJvdW5kKGhzbC5zICogMTAwKSwgbCA9IG1hdGhSb3VuZChoc2wubCAqIDEwMCk7XG4gICAgICAgIHJldHVybiAodGhpcy5fYSA9PSAxKSA/XG4gICAgICAgICAgXCJoc2woXCIgICsgaCArIFwiLCBcIiArIHMgKyBcIiUsIFwiICsgbCArIFwiJSlcIiA6XG4gICAgICAgICAgXCJoc2xhKFwiICsgaCArIFwiLCBcIiArIHMgKyBcIiUsIFwiICsgbCArIFwiJSwgXCIrIHRoaXMuX3JvdW5kQSArIFwiKVwiO1xuICAgIH0sXG4gICAgdG9IZXg6IGZ1bmN0aW9uKGFsbG93M0NoYXIpIHtcbiAgICAgICAgcmV0dXJuIHJnYlRvSGV4KHRoaXMuX3IsIHRoaXMuX2csIHRoaXMuX2IsIGFsbG93M0NoYXIpO1xuICAgIH0sXG4gICAgdG9IZXhTdHJpbmc6IGZ1bmN0aW9uKGFsbG93M0NoYXIpIHtcbiAgICAgICAgcmV0dXJuICcjJyArIHRoaXMudG9IZXgoYWxsb3czQ2hhcik7XG4gICAgfSxcbiAgICB0b0hleDg6IGZ1bmN0aW9uKGFsbG93NENoYXIpIHtcbiAgICAgICAgcmV0dXJuIHJnYmFUb0hleCh0aGlzLl9yLCB0aGlzLl9nLCB0aGlzLl9iLCB0aGlzLl9hLCBhbGxvdzRDaGFyKTtcbiAgICB9LFxuICAgIHRvSGV4OFN0cmluZzogZnVuY3Rpb24oYWxsb3c0Q2hhcikge1xuICAgICAgICByZXR1cm4gJyMnICsgdGhpcy50b0hleDgoYWxsb3c0Q2hhcik7XG4gICAgfSxcbiAgICB0b1JnYjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB7IHI6IG1hdGhSb3VuZCh0aGlzLl9yKSwgZzogbWF0aFJvdW5kKHRoaXMuX2cpLCBiOiBtYXRoUm91bmQodGhpcy5fYiksIGE6IHRoaXMuX2EgfTtcbiAgICB9LFxuICAgIHRvUmdiU3RyaW5nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLl9hID09IDEpID9cbiAgICAgICAgICBcInJnYihcIiAgKyBtYXRoUm91bmQodGhpcy5fcikgKyBcIiwgXCIgKyBtYXRoUm91bmQodGhpcy5fZykgKyBcIiwgXCIgKyBtYXRoUm91bmQodGhpcy5fYikgKyBcIilcIiA6XG4gICAgICAgICAgXCJyZ2JhKFwiICsgbWF0aFJvdW5kKHRoaXMuX3IpICsgXCIsIFwiICsgbWF0aFJvdW5kKHRoaXMuX2cpICsgXCIsIFwiICsgbWF0aFJvdW5kKHRoaXMuX2IpICsgXCIsIFwiICsgdGhpcy5fcm91bmRBICsgXCIpXCI7XG4gICAgfSxcbiAgICB0b1BlcmNlbnRhZ2VSZ2I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4geyByOiBtYXRoUm91bmQoYm91bmQwMSh0aGlzLl9yLCAyNTUpICogMTAwKSArIFwiJVwiLCBnOiBtYXRoUm91bmQoYm91bmQwMSh0aGlzLl9nLCAyNTUpICogMTAwKSArIFwiJVwiLCBiOiBtYXRoUm91bmQoYm91bmQwMSh0aGlzLl9iLCAyNTUpICogMTAwKSArIFwiJVwiLCBhOiB0aGlzLl9hIH07XG4gICAgfSxcbiAgICB0b1BlcmNlbnRhZ2VSZ2JTdHJpbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gKHRoaXMuX2EgPT0gMSkgP1xuICAgICAgICAgIFwicmdiKFwiICArIG1hdGhSb3VuZChib3VuZDAxKHRoaXMuX3IsIDI1NSkgKiAxMDApICsgXCIlLCBcIiArIG1hdGhSb3VuZChib3VuZDAxKHRoaXMuX2csIDI1NSkgKiAxMDApICsgXCIlLCBcIiArIG1hdGhSb3VuZChib3VuZDAxKHRoaXMuX2IsIDI1NSkgKiAxMDApICsgXCIlKVwiIDpcbiAgICAgICAgICBcInJnYmEoXCIgKyBtYXRoUm91bmQoYm91bmQwMSh0aGlzLl9yLCAyNTUpICogMTAwKSArIFwiJSwgXCIgKyBtYXRoUm91bmQoYm91bmQwMSh0aGlzLl9nLCAyNTUpICogMTAwKSArIFwiJSwgXCIgKyBtYXRoUm91bmQoYm91bmQwMSh0aGlzLl9iLCAyNTUpICogMTAwKSArIFwiJSwgXCIgKyB0aGlzLl9yb3VuZEEgKyBcIilcIjtcbiAgICB9LFxuICAgIHRvTmFtZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLl9hID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJ0cmFuc3BhcmVudFwiO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2EgPCAxKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaGV4TmFtZXNbcmdiVG9IZXgodGhpcy5fciwgdGhpcy5fZywgdGhpcy5fYiwgdHJ1ZSldIHx8IGZhbHNlO1xuICAgIH0sXG4gICAgdG9GaWx0ZXI6IGZ1bmN0aW9uKHNlY29uZENvbG9yKSB7XG4gICAgICAgIHZhciBoZXg4U3RyaW5nID0gJyMnICsgcmdiYVRvQXJnYkhleCh0aGlzLl9yLCB0aGlzLl9nLCB0aGlzLl9iLCB0aGlzLl9hKTtcbiAgICAgICAgdmFyIHNlY29uZEhleDhTdHJpbmcgPSBoZXg4U3RyaW5nO1xuICAgICAgICB2YXIgZ3JhZGllbnRUeXBlID0gdGhpcy5fZ3JhZGllbnRUeXBlID8gXCJHcmFkaWVudFR5cGUgPSAxLCBcIiA6IFwiXCI7XG5cbiAgICAgICAgaWYgKHNlY29uZENvbG9yKSB7XG4gICAgICAgICAgICB2YXIgcyA9IHRpbnljb2xvcihzZWNvbmRDb2xvcik7XG4gICAgICAgICAgICBzZWNvbmRIZXg4U3RyaW5nID0gJyMnICsgcmdiYVRvQXJnYkhleChzLl9yLCBzLl9nLCBzLl9iLCBzLl9hKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChcIitncmFkaWVudFR5cGUrXCJzdGFydENvbG9yc3RyPVwiK2hleDhTdHJpbmcrXCIsZW5kQ29sb3JzdHI9XCIrc2Vjb25kSGV4OFN0cmluZytcIilcIjtcbiAgICB9LFxuICAgIHRvU3RyaW5nOiBmdW5jdGlvbihmb3JtYXQpIHtcbiAgICAgICAgdmFyIGZvcm1hdFNldCA9ICEhZm9ybWF0O1xuICAgICAgICBmb3JtYXQgPSBmb3JtYXQgfHwgdGhpcy5fZm9ybWF0O1xuXG4gICAgICAgIHZhciBmb3JtYXR0ZWRTdHJpbmcgPSBmYWxzZTtcbiAgICAgICAgdmFyIGhhc0FscGhhID0gdGhpcy5fYSA8IDEgJiYgdGhpcy5fYSA+PSAwO1xuICAgICAgICB2YXIgbmVlZHNBbHBoYUZvcm1hdCA9ICFmb3JtYXRTZXQgJiYgaGFzQWxwaGEgJiYgKGZvcm1hdCA9PT0gXCJoZXhcIiB8fCBmb3JtYXQgPT09IFwiaGV4NlwiIHx8IGZvcm1hdCA9PT0gXCJoZXgzXCIgfHwgZm9ybWF0ID09PSBcImhleDRcIiB8fCBmb3JtYXQgPT09IFwiaGV4OFwiIHx8IGZvcm1hdCA9PT0gXCJuYW1lXCIpO1xuXG4gICAgICAgIGlmIChuZWVkc0FscGhhRm9ybWF0KSB7XG4gICAgICAgICAgICAvLyBTcGVjaWFsIGNhc2UgZm9yIFwidHJhbnNwYXJlbnRcIiwgYWxsIG90aGVyIG5vbi1hbHBoYSBmb3JtYXRzXG4gICAgICAgICAgICAvLyB3aWxsIHJldHVybiByZ2JhIHdoZW4gdGhlcmUgaXMgdHJhbnNwYXJlbmN5LlxuICAgICAgICAgICAgaWYgKGZvcm1hdCA9PT0gXCJuYW1lXCIgJiYgdGhpcy5fYSA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRvTmFtZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudG9SZ2JTdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZm9ybWF0ID09PSBcInJnYlwiKSB7XG4gICAgICAgICAgICBmb3JtYXR0ZWRTdHJpbmcgPSB0aGlzLnRvUmdiU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gXCJwcmdiXCIpIHtcbiAgICAgICAgICAgIGZvcm1hdHRlZFN0cmluZyA9IHRoaXMudG9QZXJjZW50YWdlUmdiU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gXCJoZXhcIiB8fCBmb3JtYXQgPT09IFwiaGV4NlwiKSB7XG4gICAgICAgICAgICBmb3JtYXR0ZWRTdHJpbmcgPSB0aGlzLnRvSGV4U3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gXCJoZXgzXCIpIHtcbiAgICAgICAgICAgIGZvcm1hdHRlZFN0cmluZyA9IHRoaXMudG9IZXhTdHJpbmcodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gXCJoZXg0XCIpIHtcbiAgICAgICAgICAgIGZvcm1hdHRlZFN0cmluZyA9IHRoaXMudG9IZXg4U3RyaW5nKHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmb3JtYXQgPT09IFwiaGV4OFwiKSB7XG4gICAgICAgICAgICBmb3JtYXR0ZWRTdHJpbmcgPSB0aGlzLnRvSGV4OFN0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmb3JtYXQgPT09IFwibmFtZVwiKSB7XG4gICAgICAgICAgICBmb3JtYXR0ZWRTdHJpbmcgPSB0aGlzLnRvTmFtZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmb3JtYXQgPT09IFwiaHNsXCIpIHtcbiAgICAgICAgICAgIGZvcm1hdHRlZFN0cmluZyA9IHRoaXMudG9Ic2xTdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZm9ybWF0ID09PSBcImhzdlwiKSB7XG4gICAgICAgICAgICBmb3JtYXR0ZWRTdHJpbmcgPSB0aGlzLnRvSHN2U3RyaW5nKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZm9ybWF0dGVkU3RyaW5nIHx8IHRoaXMudG9IZXhTdHJpbmcoKTtcbiAgICB9LFxuICAgIGNsb25lOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRpbnljb2xvcih0aGlzLnRvU3RyaW5nKCkpO1xuICAgIH0sXG5cbiAgICBfYXBwbHlNb2RpZmljYXRpb246IGZ1bmN0aW9uKGZuLCBhcmdzKSB7XG4gICAgICAgIHZhciBjb2xvciA9IGZuLmFwcGx5KG51bGwsIFt0aGlzXS5jb25jYXQoW10uc2xpY2UuY2FsbChhcmdzKSkpO1xuICAgICAgICB0aGlzLl9yID0gY29sb3IuX3I7XG4gICAgICAgIHRoaXMuX2cgPSBjb2xvci5fZztcbiAgICAgICAgdGhpcy5fYiA9IGNvbG9yLl9iO1xuICAgICAgICB0aGlzLnNldEFscGhhKGNvbG9yLl9hKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcbiAgICBsaWdodGVuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGx5TW9kaWZpY2F0aW9uKGxpZ2h0ZW4sIGFyZ3VtZW50cyk7XG4gICAgfSxcbiAgICBicmlnaHRlbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihicmlnaHRlbiwgYXJndW1lbnRzKTtcbiAgICB9LFxuICAgIGRhcmtlbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihkYXJrZW4sIGFyZ3VtZW50cyk7XG4gICAgfSxcbiAgICBkZXNhdHVyYXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGx5TW9kaWZpY2F0aW9uKGRlc2F0dXJhdGUsIGFyZ3VtZW50cyk7XG4gICAgfSxcbiAgICBzYXR1cmF0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihzYXR1cmF0ZSwgYXJndW1lbnRzKTtcbiAgICB9LFxuICAgIGdyZXlzY2FsZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihncmV5c2NhbGUsIGFyZ3VtZW50cyk7XG4gICAgfSxcbiAgICBzcGluOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGx5TW9kaWZpY2F0aW9uKHNwaW4sIGFyZ3VtZW50cyk7XG4gICAgfSxcblxuICAgIF9hcHBseUNvbWJpbmF0aW9uOiBmdW5jdGlvbihmbiwgYXJncykge1xuICAgICAgICByZXR1cm4gZm4uYXBwbHkobnVsbCwgW3RoaXNdLmNvbmNhdChbXS5zbGljZS5jYWxsKGFyZ3MpKSk7XG4gICAgfSxcbiAgICBhbmFsb2dvdXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBwbHlDb21iaW5hdGlvbihhbmFsb2dvdXMsIGFyZ3VtZW50cyk7XG4gICAgfSxcbiAgICBjb21wbGVtZW50OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGx5Q29tYmluYXRpb24oY29tcGxlbWVudCwgYXJndW1lbnRzKTtcbiAgICB9LFxuICAgIG1vbm9jaHJvbWF0aWM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBwbHlDb21iaW5hdGlvbihtb25vY2hyb21hdGljLCBhcmd1bWVudHMpO1xuICAgIH0sXG4gICAgc3BsaXRjb21wbGVtZW50OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGx5Q29tYmluYXRpb24oc3BsaXRjb21wbGVtZW50LCBhcmd1bWVudHMpO1xuICAgIH0sXG4gICAgdHJpYWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBwbHlDb21iaW5hdGlvbih0cmlhZCwgYXJndW1lbnRzKTtcbiAgICB9LFxuICAgIHRldHJhZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcHBseUNvbWJpbmF0aW9uKHRldHJhZCwgYXJndW1lbnRzKTtcbiAgICB9XG59O1xuXG4vLyBJZiBpbnB1dCBpcyBhbiBvYmplY3QsIGZvcmNlIDEgaW50byBcIjEuMFwiIHRvIGhhbmRsZSByYXRpb3MgcHJvcGVybHlcbi8vIFN0cmluZyBpbnB1dCByZXF1aXJlcyBcIjEuMFwiIGFzIGlucHV0LCBzbyAxIHdpbGwgYmUgdHJlYXRlZCBhcyAxXG50aW55Y29sb3IuZnJvbVJhdGlvID0gZnVuY3Rpb24oY29sb3IsIG9wdHMpIHtcbiAgICBpZiAodHlwZW9mIGNvbG9yID09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgdmFyIG5ld0NvbG9yID0ge307XG4gICAgICAgIGZvciAodmFyIGkgaW4gY29sb3IpIHtcbiAgICAgICAgICAgIGlmIChjb2xvci5oYXNPd25Qcm9wZXJ0eShpKSkge1xuICAgICAgICAgICAgICAgIGlmIChpID09PSBcImFcIikge1xuICAgICAgICAgICAgICAgICAgICBuZXdDb2xvcltpXSA9IGNvbG9yW2ldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3Q29sb3JbaV0gPSBjb252ZXJ0VG9QZXJjZW50YWdlKGNvbG9yW2ldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29sb3IgPSBuZXdDb2xvcjtcbiAgICB9XG5cbiAgICByZXR1cm4gdGlueWNvbG9yKGNvbG9yLCBvcHRzKTtcbn07XG5cbi8vIEdpdmVuIGEgc3RyaW5nIG9yIG9iamVjdCwgY29udmVydCB0aGF0IGlucHV0IHRvIFJHQlxuLy8gUG9zc2libGUgc3RyaW5nIGlucHV0czpcbi8vXG4vLyAgICAgXCJyZWRcIlxuLy8gICAgIFwiI2YwMFwiIG9yIFwiZjAwXCJcbi8vICAgICBcIiNmZjAwMDBcIiBvciBcImZmMDAwMFwiXG4vLyAgICAgXCIjZmYwMDAwMDBcIiBvciBcImZmMDAwMDAwXCJcbi8vICAgICBcInJnYiAyNTUgMCAwXCIgb3IgXCJyZ2IgKDI1NSwgMCwgMClcIlxuLy8gICAgIFwicmdiIDEuMCAwIDBcIiBvciBcInJnYiAoMSwgMCwgMClcIlxuLy8gICAgIFwicmdiYSAoMjU1LCAwLCAwLCAxKVwiIG9yIFwicmdiYSAyNTUsIDAsIDAsIDFcIlxuLy8gICAgIFwicmdiYSAoMS4wLCAwLCAwLCAxKVwiIG9yIFwicmdiYSAxLjAsIDAsIDAsIDFcIlxuLy8gICAgIFwiaHNsKDAsIDEwMCUsIDUwJSlcIiBvciBcImhzbCAwIDEwMCUgNTAlXCJcbi8vICAgICBcImhzbGEoMCwgMTAwJSwgNTAlLCAxKVwiIG9yIFwiaHNsYSAwIDEwMCUgNTAlLCAxXCJcbi8vICAgICBcImhzdigwLCAxMDAlLCAxMDAlKVwiIG9yIFwiaHN2IDAgMTAwJSAxMDAlXCJcbi8vXG5mdW5jdGlvbiBpbnB1dFRvUkdCKGNvbG9yKSB7XG5cbiAgICB2YXIgcmdiID0geyByOiAwLCBnOiAwLCBiOiAwIH07XG4gICAgdmFyIGEgPSAxO1xuICAgIHZhciBzID0gbnVsbDtcbiAgICB2YXIgdiA9IG51bGw7XG4gICAgdmFyIGwgPSBudWxsO1xuICAgIHZhciBvayA9IGZhbHNlO1xuICAgIHZhciBmb3JtYXQgPSBmYWxzZTtcblxuICAgIGlmICh0eXBlb2YgY29sb3IgPT0gXCJzdHJpbmdcIikge1xuICAgICAgICBjb2xvciA9IHN0cmluZ0lucHV0VG9PYmplY3QoY29sb3IpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgY29sb3IgPT0gXCJvYmplY3RcIikge1xuICAgICAgICBpZiAoaXNWYWxpZENTU1VuaXQoY29sb3IucikgJiYgaXNWYWxpZENTU1VuaXQoY29sb3IuZykgJiYgaXNWYWxpZENTU1VuaXQoY29sb3IuYikpIHtcbiAgICAgICAgICAgIHJnYiA9IHJnYlRvUmdiKGNvbG9yLnIsIGNvbG9yLmcsIGNvbG9yLmIpO1xuICAgICAgICAgICAgb2sgPSB0cnVlO1xuICAgICAgICAgICAgZm9ybWF0ID0gU3RyaW5nKGNvbG9yLnIpLnN1YnN0cigtMSkgPT09IFwiJVwiID8gXCJwcmdiXCIgOiBcInJnYlwiO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzVmFsaWRDU1NVbml0KGNvbG9yLmgpICYmIGlzVmFsaWRDU1NVbml0KGNvbG9yLnMpICYmIGlzVmFsaWRDU1NVbml0KGNvbG9yLnYpKSB7XG4gICAgICAgICAgICBzID0gY29udmVydFRvUGVyY2VudGFnZShjb2xvci5zKTtcbiAgICAgICAgICAgIHYgPSBjb252ZXJ0VG9QZXJjZW50YWdlKGNvbG9yLnYpO1xuICAgICAgICAgICAgcmdiID0gaHN2VG9SZ2IoY29sb3IuaCwgcywgdik7XG4gICAgICAgICAgICBvayA9IHRydWU7XG4gICAgICAgICAgICBmb3JtYXQgPSBcImhzdlwiO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzVmFsaWRDU1NVbml0KGNvbG9yLmgpICYmIGlzVmFsaWRDU1NVbml0KGNvbG9yLnMpICYmIGlzVmFsaWRDU1NVbml0KGNvbG9yLmwpKSB7XG4gICAgICAgICAgICBzID0gY29udmVydFRvUGVyY2VudGFnZShjb2xvci5zKTtcbiAgICAgICAgICAgIGwgPSBjb252ZXJ0VG9QZXJjZW50YWdlKGNvbG9yLmwpO1xuICAgICAgICAgICAgcmdiID0gaHNsVG9SZ2IoY29sb3IuaCwgcywgbCk7XG4gICAgICAgICAgICBvayA9IHRydWU7XG4gICAgICAgICAgICBmb3JtYXQgPSBcImhzbFwiO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbG9yLmhhc093blByb3BlcnR5KFwiYVwiKSkge1xuICAgICAgICAgICAgYSA9IGNvbG9yLmE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhID0gYm91bmRBbHBoYShhKTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIG9rOiBvayxcbiAgICAgICAgZm9ybWF0OiBjb2xvci5mb3JtYXQgfHwgZm9ybWF0LFxuICAgICAgICByOiBtYXRoTWluKDI1NSwgbWF0aE1heChyZ2IuciwgMCkpLFxuICAgICAgICBnOiBtYXRoTWluKDI1NSwgbWF0aE1heChyZ2IuZywgMCkpLFxuICAgICAgICBiOiBtYXRoTWluKDI1NSwgbWF0aE1heChyZ2IuYiwgMCkpLFxuICAgICAgICBhOiBhXG4gICAgfTtcbn1cblxuLy8gQ29udmVyc2lvbiBGdW5jdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIHJnYlRvSHNsLCByZ2JUb0hzdiwgaHNsVG9SZ2IsIGhzdlRvUmdiIG1vZGlmaWVkIGZyb206XG4vLyA8aHR0cDovL21qaWphY2tzb24uY29tLzIwMDgvMDIvcmdiLXRvLWhzbC1hbmQtcmdiLXRvLWhzdi1jb2xvci1tb2RlbC1jb252ZXJzaW9uLWFsZ29yaXRobXMtaW4tamF2YXNjcmlwdD5cblxuLy8gcmdiVG9SZ2Jcbi8vIEhhbmRsZSBib3VuZHMgLyBwZXJjZW50YWdlIGNoZWNraW5nIHRvIGNvbmZvcm0gdG8gQ1NTIGNvbG9yIHNwZWNcbi8vIDxodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWNvbG9yLz5cbi8vICpBc3N1bWVzOiogciwgZywgYiBpbiBbMCwgMjU1XSBvciBbMCwgMV1cbi8vICpSZXR1cm5zOiogeyByLCBnLCBiIH0gaW4gWzAsIDI1NV1cbmZ1bmN0aW9uIHJnYlRvUmdiKHIsIGcsIGIpe1xuICAgIHJldHVybiB7XG4gICAgICAgIHI6IGJvdW5kMDEociwgMjU1KSAqIDI1NSxcbiAgICAgICAgZzogYm91bmQwMShnLCAyNTUpICogMjU1LFxuICAgICAgICBiOiBib3VuZDAxKGIsIDI1NSkgKiAyNTVcbiAgICB9O1xufVxuXG4vLyByZ2JUb0hzbFxuLy8gQ29udmVydHMgYW4gUkdCIGNvbG9yIHZhbHVlIHRvIEhTTC5cbi8vICpBc3N1bWVzOiogciwgZywgYW5kIGIgYXJlIGNvbnRhaW5lZCBpbiBbMCwgMjU1XSBvciBbMCwgMV1cbi8vICpSZXR1cm5zOiogeyBoLCBzLCBsIH0gaW4gWzAsMV1cbmZ1bmN0aW9uIHJnYlRvSHNsKHIsIGcsIGIpIHtcblxuICAgIHIgPSBib3VuZDAxKHIsIDI1NSk7XG4gICAgZyA9IGJvdW5kMDEoZywgMjU1KTtcbiAgICBiID0gYm91bmQwMShiLCAyNTUpO1xuXG4gICAgdmFyIG1heCA9IG1hdGhNYXgociwgZywgYiksIG1pbiA9IG1hdGhNaW4ociwgZywgYik7XG4gICAgdmFyIGgsIHMsIGwgPSAobWF4ICsgbWluKSAvIDI7XG5cbiAgICBpZihtYXggPT0gbWluKSB7XG4gICAgICAgIGggPSBzID0gMDsgLy8gYWNocm9tYXRpY1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdmFyIGQgPSBtYXggLSBtaW47XG4gICAgICAgIHMgPSBsID4gMC41ID8gZCAvICgyIC0gbWF4IC0gbWluKSA6IGQgLyAobWF4ICsgbWluKTtcbiAgICAgICAgc3dpdGNoKG1heCkge1xuICAgICAgICAgICAgY2FzZSByOiBoID0gKGcgLSBiKSAvIGQgKyAoZyA8IGIgPyA2IDogMCk7IGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBnOiBoID0gKGIgLSByKSAvIGQgKyAyOyBicmVhaztcbiAgICAgICAgICAgIGNhc2UgYjogaCA9IChyIC0gZykgLyBkICsgNDsgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBoIC89IDY7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgaDogaCwgczogcywgbDogbCB9O1xufVxuXG4vLyBoc2xUb1JnYlxuLy8gQ29udmVydHMgYW4gSFNMIGNvbG9yIHZhbHVlIHRvIFJHQi5cbi8vICpBc3N1bWVzOiogaCBpcyBjb250YWluZWQgaW4gWzAsIDFdIG9yIFswLCAzNjBdIGFuZCBzIGFuZCBsIGFyZSBjb250YWluZWQgWzAsIDFdIG9yIFswLCAxMDBdXG4vLyAqUmV0dXJuczoqIHsgciwgZywgYiB9IGluIHRoZSBzZXQgWzAsIDI1NV1cbmZ1bmN0aW9uIGhzbFRvUmdiKGgsIHMsIGwpIHtcbiAgICB2YXIgciwgZywgYjtcblxuICAgIGggPSBib3VuZDAxKGgsIDM2MCk7XG4gICAgcyA9IGJvdW5kMDEocywgMTAwKTtcbiAgICBsID0gYm91bmQwMShsLCAxMDApO1xuXG4gICAgZnVuY3Rpb24gaHVlMnJnYihwLCBxLCB0KSB7XG4gICAgICAgIGlmKHQgPCAwKSB0ICs9IDE7XG4gICAgICAgIGlmKHQgPiAxKSB0IC09IDE7XG4gICAgICAgIGlmKHQgPCAxLzYpIHJldHVybiBwICsgKHEgLSBwKSAqIDYgKiB0O1xuICAgICAgICBpZih0IDwgMS8yKSByZXR1cm4gcTtcbiAgICAgICAgaWYodCA8IDIvMykgcmV0dXJuIHAgKyAocSAtIHApICogKDIvMyAtIHQpICogNjtcbiAgICAgICAgcmV0dXJuIHA7XG4gICAgfVxuXG4gICAgaWYocyA9PT0gMCkge1xuICAgICAgICByID0gZyA9IGIgPSBsOyAvLyBhY2hyb21hdGljXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB2YXIgcSA9IGwgPCAwLjUgPyBsICogKDEgKyBzKSA6IGwgKyBzIC0gbCAqIHM7XG4gICAgICAgIHZhciBwID0gMiAqIGwgLSBxO1xuICAgICAgICByID0gaHVlMnJnYihwLCBxLCBoICsgMS8zKTtcbiAgICAgICAgZyA9IGh1ZTJyZ2IocCwgcSwgaCk7XG4gICAgICAgIGIgPSBodWUycmdiKHAsIHEsIGggLSAxLzMpO1xuICAgIH1cblxuICAgIHJldHVybiB7IHI6IHIgKiAyNTUsIGc6IGcgKiAyNTUsIGI6IGIgKiAyNTUgfTtcbn1cblxuLy8gcmdiVG9Ic3Zcbi8vIENvbnZlcnRzIGFuIFJHQiBjb2xvciB2YWx1ZSB0byBIU1Zcbi8vICpBc3N1bWVzOiogciwgZywgYW5kIGIgYXJlIGNvbnRhaW5lZCBpbiB0aGUgc2V0IFswLCAyNTVdIG9yIFswLCAxXVxuLy8gKlJldHVybnM6KiB7IGgsIHMsIHYgfSBpbiBbMCwxXVxuZnVuY3Rpb24gcmdiVG9Ic3YociwgZywgYikge1xuXG4gICAgciA9IGJvdW5kMDEociwgMjU1KTtcbiAgICBnID0gYm91bmQwMShnLCAyNTUpO1xuICAgIGIgPSBib3VuZDAxKGIsIDI1NSk7XG5cbiAgICB2YXIgbWF4ID0gbWF0aE1heChyLCBnLCBiKSwgbWluID0gbWF0aE1pbihyLCBnLCBiKTtcbiAgICB2YXIgaCwgcywgdiA9IG1heDtcblxuICAgIHZhciBkID0gbWF4IC0gbWluO1xuICAgIHMgPSBtYXggPT09IDAgPyAwIDogZCAvIG1heDtcblxuICAgIGlmKG1heCA9PSBtaW4pIHtcbiAgICAgICAgaCA9IDA7IC8vIGFjaHJvbWF0aWNcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHN3aXRjaChtYXgpIHtcbiAgICAgICAgICAgIGNhc2UgcjogaCA9IChnIC0gYikgLyBkICsgKGcgPCBiID8gNiA6IDApOyBicmVhaztcbiAgICAgICAgICAgIGNhc2UgZzogaCA9IChiIC0gcikgLyBkICsgMjsgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIGI6IGggPSAociAtIGcpIC8gZCArIDQ7IGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGggLz0gNjtcbiAgICB9XG4gICAgcmV0dXJuIHsgaDogaCwgczogcywgdjogdiB9O1xufVxuXG4vLyBoc3ZUb1JnYlxuLy8gQ29udmVydHMgYW4gSFNWIGNvbG9yIHZhbHVlIHRvIFJHQi5cbi8vICpBc3N1bWVzOiogaCBpcyBjb250YWluZWQgaW4gWzAsIDFdIG9yIFswLCAzNjBdIGFuZCBzIGFuZCB2IGFyZSBjb250YWluZWQgaW4gWzAsIDFdIG9yIFswLCAxMDBdXG4vLyAqUmV0dXJuczoqIHsgciwgZywgYiB9IGluIHRoZSBzZXQgWzAsIDI1NV1cbiBmdW5jdGlvbiBoc3ZUb1JnYihoLCBzLCB2KSB7XG5cbiAgICBoID0gYm91bmQwMShoLCAzNjApICogNjtcbiAgICBzID0gYm91bmQwMShzLCAxMDApO1xuICAgIHYgPSBib3VuZDAxKHYsIDEwMCk7XG5cbiAgICB2YXIgaSA9IE1hdGguZmxvb3IoaCksXG4gICAgICAgIGYgPSBoIC0gaSxcbiAgICAgICAgcCA9IHYgKiAoMSAtIHMpLFxuICAgICAgICBxID0gdiAqICgxIC0gZiAqIHMpLFxuICAgICAgICB0ID0gdiAqICgxIC0gKDEgLSBmKSAqIHMpLFxuICAgICAgICBtb2QgPSBpICUgNixcbiAgICAgICAgciA9IFt2LCBxLCBwLCBwLCB0LCB2XVttb2RdLFxuICAgICAgICBnID0gW3QsIHYsIHYsIHEsIHAsIHBdW21vZF0sXG4gICAgICAgIGIgPSBbcCwgcCwgdCwgdiwgdiwgcV1bbW9kXTtcblxuICAgIHJldHVybiB7IHI6IHIgKiAyNTUsIGc6IGcgKiAyNTUsIGI6IGIgKiAyNTUgfTtcbn1cblxuLy8gcmdiVG9IZXhcbi8vIENvbnZlcnRzIGFuIFJHQiBjb2xvciB0byBoZXhcbi8vIEFzc3VtZXMgciwgZywgYW5kIGIgYXJlIGNvbnRhaW5lZCBpbiB0aGUgc2V0IFswLCAyNTVdXG4vLyBSZXR1cm5zIGEgMyBvciA2IGNoYXJhY3RlciBoZXhcbmZ1bmN0aW9uIHJnYlRvSGV4KHIsIGcsIGIsIGFsbG93M0NoYXIpIHtcblxuICAgIHZhciBoZXggPSBbXG4gICAgICAgIHBhZDIobWF0aFJvdW5kKHIpLnRvU3RyaW5nKDE2KSksXG4gICAgICAgIHBhZDIobWF0aFJvdW5kKGcpLnRvU3RyaW5nKDE2KSksXG4gICAgICAgIHBhZDIobWF0aFJvdW5kKGIpLnRvU3RyaW5nKDE2KSlcbiAgICBdO1xuXG4gICAgLy8gUmV0dXJuIGEgMyBjaGFyYWN0ZXIgaGV4IGlmIHBvc3NpYmxlXG4gICAgaWYgKGFsbG93M0NoYXIgJiYgaGV4WzBdLmNoYXJBdCgwKSA9PSBoZXhbMF0uY2hhckF0KDEpICYmIGhleFsxXS5jaGFyQXQoMCkgPT0gaGV4WzFdLmNoYXJBdCgxKSAmJiBoZXhbMl0uY2hhckF0KDApID09IGhleFsyXS5jaGFyQXQoMSkpIHtcbiAgICAgICAgcmV0dXJuIGhleFswXS5jaGFyQXQoMCkgKyBoZXhbMV0uY2hhckF0KDApICsgaGV4WzJdLmNoYXJBdCgwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaGV4LmpvaW4oXCJcIik7XG59XG5cbi8vIHJnYmFUb0hleFxuLy8gQ29udmVydHMgYW4gUkdCQSBjb2xvciBwbHVzIGFscGhhIHRyYW5zcGFyZW5jeSB0byBoZXhcbi8vIEFzc3VtZXMgciwgZywgYiBhcmUgY29udGFpbmVkIGluIHRoZSBzZXQgWzAsIDI1NV0gYW5kXG4vLyBhIGluIFswLCAxXS4gUmV0dXJucyBhIDQgb3IgOCBjaGFyYWN0ZXIgcmdiYSBoZXhcbmZ1bmN0aW9uIHJnYmFUb0hleChyLCBnLCBiLCBhLCBhbGxvdzRDaGFyKSB7XG5cbiAgICB2YXIgaGV4ID0gW1xuICAgICAgICBwYWQyKG1hdGhSb3VuZChyKS50b1N0cmluZygxNikpLFxuICAgICAgICBwYWQyKG1hdGhSb3VuZChnKS50b1N0cmluZygxNikpLFxuICAgICAgICBwYWQyKG1hdGhSb3VuZChiKS50b1N0cmluZygxNikpLFxuICAgICAgICBwYWQyKGNvbnZlcnREZWNpbWFsVG9IZXgoYSkpXG4gICAgXTtcblxuICAgIC8vIFJldHVybiBhIDQgY2hhcmFjdGVyIGhleCBpZiBwb3NzaWJsZVxuICAgIGlmIChhbGxvdzRDaGFyICYmIGhleFswXS5jaGFyQXQoMCkgPT0gaGV4WzBdLmNoYXJBdCgxKSAmJiBoZXhbMV0uY2hhckF0KDApID09IGhleFsxXS5jaGFyQXQoMSkgJiYgaGV4WzJdLmNoYXJBdCgwKSA9PSBoZXhbMl0uY2hhckF0KDEpICYmIGhleFszXS5jaGFyQXQoMCkgPT0gaGV4WzNdLmNoYXJBdCgxKSkge1xuICAgICAgICByZXR1cm4gaGV4WzBdLmNoYXJBdCgwKSArIGhleFsxXS5jaGFyQXQoMCkgKyBoZXhbMl0uY2hhckF0KDApICsgaGV4WzNdLmNoYXJBdCgwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaGV4LmpvaW4oXCJcIik7XG59XG5cbi8vIHJnYmFUb0FyZ2JIZXhcbi8vIENvbnZlcnRzIGFuIFJHQkEgY29sb3IgdG8gYW4gQVJHQiBIZXg4IHN0cmluZ1xuLy8gUmFyZWx5IHVzZWQsIGJ1dCByZXF1aXJlZCBmb3IgXCJ0b0ZpbHRlcigpXCJcbmZ1bmN0aW9uIHJnYmFUb0FyZ2JIZXgociwgZywgYiwgYSkge1xuXG4gICAgdmFyIGhleCA9IFtcbiAgICAgICAgcGFkMihjb252ZXJ0RGVjaW1hbFRvSGV4KGEpKSxcbiAgICAgICAgcGFkMihtYXRoUm91bmQocikudG9TdHJpbmcoMTYpKSxcbiAgICAgICAgcGFkMihtYXRoUm91bmQoZykudG9TdHJpbmcoMTYpKSxcbiAgICAgICAgcGFkMihtYXRoUm91bmQoYikudG9TdHJpbmcoMTYpKVxuICAgIF07XG5cbiAgICByZXR1cm4gaGV4LmpvaW4oXCJcIik7XG59XG5cbi8vIGVxdWFsc1xuLy8gQ2FuIGJlIGNhbGxlZCB3aXRoIGFueSB0aW55Y29sb3IgaW5wdXRcbnRpbnljb2xvci5lcXVhbHMgPSBmdW5jdGlvbiAoY29sb3IxLCBjb2xvcjIpIHtcbiAgICBpZiAoIWNvbG9yMSB8fCAhY29sb3IyKSB7IHJldHVybiBmYWxzZTsgfVxuICAgIHJldHVybiB0aW55Y29sb3IoY29sb3IxKS50b1JnYlN0cmluZygpID09IHRpbnljb2xvcihjb2xvcjIpLnRvUmdiU3RyaW5nKCk7XG59O1xuXG50aW55Y29sb3IucmFuZG9tID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRpbnljb2xvci5mcm9tUmF0aW8oe1xuICAgICAgICByOiBtYXRoUmFuZG9tKCksXG4gICAgICAgIGc6IG1hdGhSYW5kb20oKSxcbiAgICAgICAgYjogbWF0aFJhbmRvbSgpXG4gICAgfSk7XG59O1xuXG4vLyBNb2RpZmljYXRpb24gRnVuY3Rpb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaGFua3MgdG8gbGVzcy5qcyBmb3Igc29tZSBvZiB0aGUgYmFzaWNzIGhlcmVcbi8vIDxodHRwczovL2dpdGh1Yi5jb20vY2xvdWRoZWFkL2xlc3MuanMvYmxvYi9tYXN0ZXIvbGliL2xlc3MvZnVuY3Rpb25zLmpzPlxuXG5mdW5jdGlvbiBkZXNhdHVyYXRlKGNvbG9yLCBhbW91bnQpIHtcbiAgICBhbW91bnQgPSAoYW1vdW50ID09PSAwKSA/IDAgOiAoYW1vdW50IHx8IDEwKTtcbiAgICB2YXIgaHNsID0gdGlueWNvbG9yKGNvbG9yKS50b0hzbCgpO1xuICAgIGhzbC5zIC09IGFtb3VudCAvIDEwMDtcbiAgICBoc2wucyA9IGNsYW1wMDEoaHNsLnMpO1xuICAgIHJldHVybiB0aW55Y29sb3IoaHNsKTtcbn1cblxuZnVuY3Rpb24gc2F0dXJhdGUoY29sb3IsIGFtb3VudCkge1xuICAgIGFtb3VudCA9IChhbW91bnQgPT09IDApID8gMCA6IChhbW91bnQgfHwgMTApO1xuICAgIHZhciBoc2wgPSB0aW55Y29sb3IoY29sb3IpLnRvSHNsKCk7XG4gICAgaHNsLnMgKz0gYW1vdW50IC8gMTAwO1xuICAgIGhzbC5zID0gY2xhbXAwMShoc2wucyk7XG4gICAgcmV0dXJuIHRpbnljb2xvcihoc2wpO1xufVxuXG5mdW5jdGlvbiBncmV5c2NhbGUoY29sb3IpIHtcbiAgICByZXR1cm4gdGlueWNvbG9yKGNvbG9yKS5kZXNhdHVyYXRlKDEwMCk7XG59XG5cbmZ1bmN0aW9uIGxpZ2h0ZW4gKGNvbG9yLCBhbW91bnQpIHtcbiAgICBhbW91bnQgPSAoYW1vdW50ID09PSAwKSA/IDAgOiAoYW1vdW50IHx8IDEwKTtcbiAgICB2YXIgaHNsID0gdGlueWNvbG9yKGNvbG9yKS50b0hzbCgpO1xuICAgIGhzbC5sICs9IGFtb3VudCAvIDEwMDtcbiAgICBoc2wubCA9IGNsYW1wMDEoaHNsLmwpO1xuICAgIHJldHVybiB0aW55Y29sb3IoaHNsKTtcbn1cblxuZnVuY3Rpb24gYnJpZ2h0ZW4oY29sb3IsIGFtb3VudCkge1xuICAgIGFtb3VudCA9IChhbW91bnQgPT09IDApID8gMCA6IChhbW91bnQgfHwgMTApO1xuICAgIHZhciByZ2IgPSB0aW55Y29sb3IoY29sb3IpLnRvUmdiKCk7XG4gICAgcmdiLnIgPSBtYXRoTWF4KDAsIG1hdGhNaW4oMjU1LCByZ2IuciAtIG1hdGhSb3VuZCgyNTUgKiAtIChhbW91bnQgLyAxMDApKSkpO1xuICAgIHJnYi5nID0gbWF0aE1heCgwLCBtYXRoTWluKDI1NSwgcmdiLmcgLSBtYXRoUm91bmQoMjU1ICogLSAoYW1vdW50IC8gMTAwKSkpKTtcbiAgICByZ2IuYiA9IG1hdGhNYXgoMCwgbWF0aE1pbigyNTUsIHJnYi5iIC0gbWF0aFJvdW5kKDI1NSAqIC0gKGFtb3VudCAvIDEwMCkpKSk7XG4gICAgcmV0dXJuIHRpbnljb2xvcihyZ2IpO1xufVxuXG5mdW5jdGlvbiBkYXJrZW4gKGNvbG9yLCBhbW91bnQpIHtcbiAgICBhbW91bnQgPSAoYW1vdW50ID09PSAwKSA/IDAgOiAoYW1vdW50IHx8IDEwKTtcbiAgICB2YXIgaHNsID0gdGlueWNvbG9yKGNvbG9yKS50b0hzbCgpO1xuICAgIGhzbC5sIC09IGFtb3VudCAvIDEwMDtcbiAgICBoc2wubCA9IGNsYW1wMDEoaHNsLmwpO1xuICAgIHJldHVybiB0aW55Y29sb3IoaHNsKTtcbn1cblxuLy8gU3BpbiB0YWtlcyBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGFtb3VudCB3aXRoaW4gWy0zNjAsIDM2MF0gaW5kaWNhdGluZyB0aGUgY2hhbmdlIG9mIGh1ZS5cbi8vIFZhbHVlcyBvdXRzaWRlIG9mIHRoaXMgcmFuZ2Ugd2lsbCBiZSB3cmFwcGVkIGludG8gdGhpcyByYW5nZS5cbmZ1bmN0aW9uIHNwaW4oY29sb3IsIGFtb3VudCkge1xuICAgIHZhciBoc2wgPSB0aW55Y29sb3IoY29sb3IpLnRvSHNsKCk7XG4gICAgdmFyIGh1ZSA9IChoc2wuaCArIGFtb3VudCkgJSAzNjA7XG4gICAgaHNsLmggPSBodWUgPCAwID8gMzYwICsgaHVlIDogaHVlO1xuICAgIHJldHVybiB0aW55Y29sb3IoaHNsKTtcbn1cblxuLy8gQ29tYmluYXRpb24gRnVuY3Rpb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRoYW5rcyB0byBqUXVlcnkgeENvbG9yIGZvciBzb21lIG9mIHRoZSBpZGVhcyBiZWhpbmQgdGhlc2Vcbi8vIDxodHRwczovL2dpdGh1Yi5jb20vaW5mdXNpb24valF1ZXJ5LXhjb2xvci9ibG9iL21hc3Rlci9qcXVlcnkueGNvbG9yLmpzPlxuXG5mdW5jdGlvbiBjb21wbGVtZW50KGNvbG9yKSB7XG4gICAgdmFyIGhzbCA9IHRpbnljb2xvcihjb2xvcikudG9Ic2woKTtcbiAgICBoc2wuaCA9IChoc2wuaCArIDE4MCkgJSAzNjA7XG4gICAgcmV0dXJuIHRpbnljb2xvcihoc2wpO1xufVxuXG5mdW5jdGlvbiB0cmlhZChjb2xvcikge1xuICAgIHZhciBoc2wgPSB0aW55Y29sb3IoY29sb3IpLnRvSHNsKCk7XG4gICAgdmFyIGggPSBoc2wuaDtcbiAgICByZXR1cm4gW1xuICAgICAgICB0aW55Y29sb3IoY29sb3IpLFxuICAgICAgICB0aW55Y29sb3IoeyBoOiAoaCArIDEyMCkgJSAzNjAsIHM6IGhzbC5zLCBsOiBoc2wubCB9KSxcbiAgICAgICAgdGlueWNvbG9yKHsgaDogKGggKyAyNDApICUgMzYwLCBzOiBoc2wucywgbDogaHNsLmwgfSlcbiAgICBdO1xufVxuXG5mdW5jdGlvbiB0ZXRyYWQoY29sb3IpIHtcbiAgICB2YXIgaHNsID0gdGlueWNvbG9yKGNvbG9yKS50b0hzbCgpO1xuICAgIHZhciBoID0gaHNsLmg7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgdGlueWNvbG9yKGNvbG9yKSxcbiAgICAgICAgdGlueWNvbG9yKHsgaDogKGggKyA5MCkgJSAzNjAsIHM6IGhzbC5zLCBsOiBoc2wubCB9KSxcbiAgICAgICAgdGlueWNvbG9yKHsgaDogKGggKyAxODApICUgMzYwLCBzOiBoc2wucywgbDogaHNsLmwgfSksXG4gICAgICAgIHRpbnljb2xvcih7IGg6IChoICsgMjcwKSAlIDM2MCwgczogaHNsLnMsIGw6IGhzbC5sIH0pXG4gICAgXTtcbn1cblxuZnVuY3Rpb24gc3BsaXRjb21wbGVtZW50KGNvbG9yKSB7XG4gICAgdmFyIGhzbCA9IHRpbnljb2xvcihjb2xvcikudG9Ic2woKTtcbiAgICB2YXIgaCA9IGhzbC5oO1xuICAgIHJldHVybiBbXG4gICAgICAgIHRpbnljb2xvcihjb2xvciksXG4gICAgICAgIHRpbnljb2xvcih7IGg6IChoICsgNzIpICUgMzYwLCBzOiBoc2wucywgbDogaHNsLmx9KSxcbiAgICAgICAgdGlueWNvbG9yKHsgaDogKGggKyAyMTYpICUgMzYwLCBzOiBoc2wucywgbDogaHNsLmx9KVxuICAgIF07XG59XG5cbmZ1bmN0aW9uIGFuYWxvZ291cyhjb2xvciwgcmVzdWx0cywgc2xpY2VzKSB7XG4gICAgcmVzdWx0cyA9IHJlc3VsdHMgfHwgNjtcbiAgICBzbGljZXMgPSBzbGljZXMgfHwgMzA7XG5cbiAgICB2YXIgaHNsID0gdGlueWNvbG9yKGNvbG9yKS50b0hzbCgpO1xuICAgIHZhciBwYXJ0ID0gMzYwIC8gc2xpY2VzO1xuICAgIHZhciByZXQgPSBbdGlueWNvbG9yKGNvbG9yKV07XG5cbiAgICBmb3IgKGhzbC5oID0gKChoc2wuaCAtIChwYXJ0ICogcmVzdWx0cyA+PiAxKSkgKyA3MjApICUgMzYwOyAtLXJlc3VsdHM7ICkge1xuICAgICAgICBoc2wuaCA9IChoc2wuaCArIHBhcnQpICUgMzYwO1xuICAgICAgICByZXQucHVzaCh0aW55Y29sb3IoaHNsKSk7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIG1vbm9jaHJvbWF0aWMoY29sb3IsIHJlc3VsdHMpIHtcbiAgICByZXN1bHRzID0gcmVzdWx0cyB8fCA2O1xuICAgIHZhciBoc3YgPSB0aW55Y29sb3IoY29sb3IpLnRvSHN2KCk7XG4gICAgdmFyIGggPSBoc3YuaCwgcyA9IGhzdi5zLCB2ID0gaHN2LnY7XG4gICAgdmFyIHJldCA9IFtdO1xuICAgIHZhciBtb2RpZmljYXRpb24gPSAxIC8gcmVzdWx0cztcblxuICAgIHdoaWxlIChyZXN1bHRzLS0pIHtcbiAgICAgICAgcmV0LnB1c2godGlueWNvbG9yKHsgaDogaCwgczogcywgdjogdn0pKTtcbiAgICAgICAgdiA9ICh2ICsgbW9kaWZpY2F0aW9uKSAlIDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldDtcbn1cblxuLy8gVXRpbGl0eSBGdW5jdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG50aW55Y29sb3IubWl4ID0gZnVuY3Rpb24oY29sb3IxLCBjb2xvcjIsIGFtb3VudCkge1xuICAgIGFtb3VudCA9IChhbW91bnQgPT09IDApID8gMCA6IChhbW91bnQgfHwgNTApO1xuXG4gICAgdmFyIHJnYjEgPSB0aW55Y29sb3IoY29sb3IxKS50b1JnYigpO1xuICAgIHZhciByZ2IyID0gdGlueWNvbG9yKGNvbG9yMikudG9SZ2IoKTtcblxuICAgIHZhciBwID0gYW1vdW50IC8gMTAwO1xuXG4gICAgdmFyIHJnYmEgPSB7XG4gICAgICAgIHI6ICgocmdiMi5yIC0gcmdiMS5yKSAqIHApICsgcmdiMS5yLFxuICAgICAgICBnOiAoKHJnYjIuZyAtIHJnYjEuZykgKiBwKSArIHJnYjEuZyxcbiAgICAgICAgYjogKChyZ2IyLmIgLSByZ2IxLmIpICogcCkgKyByZ2IxLmIsXG4gICAgICAgIGE6ICgocmdiMi5hIC0gcmdiMS5hKSAqIHApICsgcmdiMS5hXG4gICAgfTtcblxuICAgIHJldHVybiB0aW55Y29sb3IocmdiYSk7XG59O1xuXG4vLyBSZWFkYWJpbGl0eSBGdW5jdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gPGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDgvUkVDLVdDQUcyMC0yMDA4MTIxMS8jY29udHJhc3QtcmF0aW9kZWYgKFdDQUcgVmVyc2lvbiAyKVxuXG4vLyBjb250cmFzdFxuLy8gQW5hbHl6ZSB0aGUgMiBjb2xvcnMgYW5kIHJldHVybnMgdGhlIGNvbG9yIGNvbnRyYXN0IGRlZmluZWQgYnkgKFdDQUcgVmVyc2lvbiAyKVxudGlueWNvbG9yLnJlYWRhYmlsaXR5ID0gZnVuY3Rpb24oY29sb3IxLCBjb2xvcjIpIHtcbiAgICB2YXIgYzEgPSB0aW55Y29sb3IoY29sb3IxKTtcbiAgICB2YXIgYzIgPSB0aW55Y29sb3IoY29sb3IyKTtcbiAgICByZXR1cm4gKE1hdGgubWF4KGMxLmdldEx1bWluYW5jZSgpLGMyLmdldEx1bWluYW5jZSgpKSswLjA1KSAvIChNYXRoLm1pbihjMS5nZXRMdW1pbmFuY2UoKSxjMi5nZXRMdW1pbmFuY2UoKSkrMC4wNSk7XG59O1xuXG4vLyBpc1JlYWRhYmxlXG4vLyBFbnN1cmUgdGhhdCBmb3JlZ3JvdW5kIGFuZCBiYWNrZ3JvdW5kIGNvbG9yIGNvbWJpbmF0aW9ucyBtZWV0IFdDQUcyIGd1aWRlbGluZXMuXG4vLyBUaGUgdGhpcmQgYXJndW1lbnQgaXMgYW4gb3B0aW9uYWwgT2JqZWN0LlxuLy8gICAgICB0aGUgJ2xldmVsJyBwcm9wZXJ0eSBzdGF0ZXMgJ0FBJyBvciAnQUFBJyAtIGlmIG1pc3Npbmcgb3IgaW52YWxpZCwgaXQgZGVmYXVsdHMgdG8gJ0FBJztcbi8vICAgICAgdGhlICdzaXplJyBwcm9wZXJ0eSBzdGF0ZXMgJ2xhcmdlJyBvciAnc21hbGwnIC0gaWYgbWlzc2luZyBvciBpbnZhbGlkLCBpdCBkZWZhdWx0cyB0byAnc21hbGwnLlxuLy8gSWYgdGhlIGVudGlyZSBvYmplY3QgaXMgYWJzZW50LCBpc1JlYWRhYmxlIGRlZmF1bHRzIHRvIHtsZXZlbDpcIkFBXCIsc2l6ZTpcInNtYWxsXCJ9LlxuXG4vLyAqRXhhbXBsZSpcbi8vICAgIHRpbnljb2xvci5pc1JlYWRhYmxlKFwiIzAwMFwiLCBcIiMxMTFcIikgPT4gZmFsc2Vcbi8vICAgIHRpbnljb2xvci5pc1JlYWRhYmxlKFwiIzAwMFwiLCBcIiMxMTFcIix7bGV2ZWw6XCJBQVwiLHNpemU6XCJsYXJnZVwifSkgPT4gZmFsc2VcbnRpbnljb2xvci5pc1JlYWRhYmxlID0gZnVuY3Rpb24oY29sb3IxLCBjb2xvcjIsIHdjYWcyKSB7XG4gICAgdmFyIHJlYWRhYmlsaXR5ID0gdGlueWNvbG9yLnJlYWRhYmlsaXR5KGNvbG9yMSwgY29sb3IyKTtcbiAgICB2YXIgd2NhZzJQYXJtcywgb3V0O1xuXG4gICAgb3V0ID0gZmFsc2U7XG5cbiAgICB3Y2FnMlBhcm1zID0gdmFsaWRhdGVXQ0FHMlBhcm1zKHdjYWcyKTtcbiAgICBzd2l0Y2ggKHdjYWcyUGFybXMubGV2ZWwgKyB3Y2FnMlBhcm1zLnNpemUpIHtcbiAgICAgICAgY2FzZSBcIkFBc21hbGxcIjpcbiAgICAgICAgY2FzZSBcIkFBQWxhcmdlXCI6XG4gICAgICAgICAgICBvdXQgPSByZWFkYWJpbGl0eSA+PSA0LjU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIkFBbGFyZ2VcIjpcbiAgICAgICAgICAgIG91dCA9IHJlYWRhYmlsaXR5ID49IDM7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIkFBQXNtYWxsXCI6XG4gICAgICAgICAgICBvdXQgPSByZWFkYWJpbGl0eSA+PSA3O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiBvdXQ7XG5cbn07XG5cbi8vIG1vc3RSZWFkYWJsZVxuLy8gR2l2ZW4gYSBiYXNlIGNvbG9yIGFuZCBhIGxpc3Qgb2YgcG9zc2libGUgZm9yZWdyb3VuZCBvciBiYWNrZ3JvdW5kXG4vLyBjb2xvcnMgZm9yIHRoYXQgYmFzZSwgcmV0dXJucyB0aGUgbW9zdCByZWFkYWJsZSBjb2xvci5cbi8vIE9wdGlvbmFsbHkgcmV0dXJucyBCbGFjayBvciBXaGl0ZSBpZiB0aGUgbW9zdCByZWFkYWJsZSBjb2xvciBpcyB1bnJlYWRhYmxlLlxuLy8gKkV4YW1wbGUqXG4vLyAgICB0aW55Y29sb3IubW9zdFJlYWRhYmxlKHRpbnljb2xvci5tb3N0UmVhZGFibGUoXCIjMTIzXCIsIFtcIiMxMjRcIiwgXCIjMTI1XCJdLHtpbmNsdWRlRmFsbGJhY2tDb2xvcnM6ZmFsc2V9KS50b0hleFN0cmluZygpOyAvLyBcIiMxMTIyNTVcIlxuLy8gICAgdGlueWNvbG9yLm1vc3RSZWFkYWJsZSh0aW55Y29sb3IubW9zdFJlYWRhYmxlKFwiIzEyM1wiLCBbXCIjMTI0XCIsIFwiIzEyNVwiXSx7aW5jbHVkZUZhbGxiYWNrQ29sb3JzOnRydWV9KS50b0hleFN0cmluZygpOyAgLy8gXCIjZmZmZmZmXCJcbi8vICAgIHRpbnljb2xvci5tb3N0UmVhZGFibGUoXCIjYTgwMTVhXCIsIFtcIiNmYWYzZjNcIl0se2luY2x1ZGVGYWxsYmFja0NvbG9yczp0cnVlLGxldmVsOlwiQUFBXCIsc2l6ZTpcImxhcmdlXCJ9KS50b0hleFN0cmluZygpOyAvLyBcIiNmYWYzZjNcIlxuLy8gICAgdGlueWNvbG9yLm1vc3RSZWFkYWJsZShcIiNhODAxNWFcIiwgW1wiI2ZhZjNmM1wiXSx7aW5jbHVkZUZhbGxiYWNrQ29sb3JzOnRydWUsbGV2ZWw6XCJBQUFcIixzaXplOlwic21hbGxcIn0pLnRvSGV4U3RyaW5nKCk7IC8vIFwiI2ZmZmZmZlwiXG50aW55Y29sb3IubW9zdFJlYWRhYmxlID0gZnVuY3Rpb24oYmFzZUNvbG9yLCBjb2xvckxpc3QsIGFyZ3MpIHtcbiAgICB2YXIgYmVzdENvbG9yID0gbnVsbDtcbiAgICB2YXIgYmVzdFNjb3JlID0gMDtcbiAgICB2YXIgcmVhZGFiaWxpdHk7XG4gICAgdmFyIGluY2x1ZGVGYWxsYmFja0NvbG9ycywgbGV2ZWwsIHNpemUgO1xuICAgIGFyZ3MgPSBhcmdzIHx8IHt9O1xuICAgIGluY2x1ZGVGYWxsYmFja0NvbG9ycyA9IGFyZ3MuaW5jbHVkZUZhbGxiYWNrQ29sb3JzIDtcbiAgICBsZXZlbCA9IGFyZ3MubGV2ZWw7XG4gICAgc2l6ZSA9IGFyZ3Muc2l6ZTtcblxuICAgIGZvciAodmFyIGk9IDA7IGkgPCBjb2xvckxpc3QubGVuZ3RoIDsgaSsrKSB7XG4gICAgICAgIHJlYWRhYmlsaXR5ID0gdGlueWNvbG9yLnJlYWRhYmlsaXR5KGJhc2VDb2xvciwgY29sb3JMaXN0W2ldKTtcbiAgICAgICAgaWYgKHJlYWRhYmlsaXR5ID4gYmVzdFNjb3JlKSB7XG4gICAgICAgICAgICBiZXN0U2NvcmUgPSByZWFkYWJpbGl0eTtcbiAgICAgICAgICAgIGJlc3RDb2xvciA9IHRpbnljb2xvcihjb2xvckxpc3RbaV0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRpbnljb2xvci5pc1JlYWRhYmxlKGJhc2VDb2xvciwgYmVzdENvbG9yLCB7XCJsZXZlbFwiOmxldmVsLFwic2l6ZVwiOnNpemV9KSB8fCAhaW5jbHVkZUZhbGxiYWNrQ29sb3JzKSB7XG4gICAgICAgIHJldHVybiBiZXN0Q29sb3I7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBhcmdzLmluY2x1ZGVGYWxsYmFja0NvbG9ycz1mYWxzZTtcbiAgICAgICAgcmV0dXJuIHRpbnljb2xvci5tb3N0UmVhZGFibGUoYmFzZUNvbG9yLFtcIiNmZmZcIiwgXCIjMDAwXCJdLGFyZ3MpO1xuICAgIH1cbn07XG5cbi8vIEJpZyBMaXN0IG9mIENvbG9yc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyA8aHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1jb2xvci8jc3ZnLWNvbG9yPlxudmFyIG5hbWVzID0gdGlueWNvbG9yLm5hbWVzID0ge1xuICAgIGFsaWNlYmx1ZTogXCJmMGY4ZmZcIixcbiAgICBhbnRpcXVld2hpdGU6IFwiZmFlYmQ3XCIsXG4gICAgYXF1YTogXCIwZmZcIixcbiAgICBhcXVhbWFyaW5lOiBcIjdmZmZkNFwiLFxuICAgIGF6dXJlOiBcImYwZmZmZlwiLFxuICAgIGJlaWdlOiBcImY1ZjVkY1wiLFxuICAgIGJpc3F1ZTogXCJmZmU0YzRcIixcbiAgICBibGFjazogXCIwMDBcIixcbiAgICBibGFuY2hlZGFsbW9uZDogXCJmZmViY2RcIixcbiAgICBibHVlOiBcIjAwZlwiLFxuICAgIGJsdWV2aW9sZXQ6IFwiOGEyYmUyXCIsXG4gICAgYnJvd246IFwiYTUyYTJhXCIsXG4gICAgYnVybHl3b29kOiBcImRlYjg4N1wiLFxuICAgIGJ1cm50c2llbm5hOiBcImVhN2U1ZFwiLFxuICAgIGNhZGV0Ymx1ZTogXCI1ZjllYTBcIixcbiAgICBjaGFydHJldXNlOiBcIjdmZmYwMFwiLFxuICAgIGNob2NvbGF0ZTogXCJkMjY5MWVcIixcbiAgICBjb3JhbDogXCJmZjdmNTBcIixcbiAgICBjb3JuZmxvd2VyYmx1ZTogXCI2NDk1ZWRcIixcbiAgICBjb3Juc2lsazogXCJmZmY4ZGNcIixcbiAgICBjcmltc29uOiBcImRjMTQzY1wiLFxuICAgIGN5YW46IFwiMGZmXCIsXG4gICAgZGFya2JsdWU6IFwiMDAwMDhiXCIsXG4gICAgZGFya2N5YW46IFwiMDA4YjhiXCIsXG4gICAgZGFya2dvbGRlbnJvZDogXCJiODg2MGJcIixcbiAgICBkYXJrZ3JheTogXCJhOWE5YTlcIixcbiAgICBkYXJrZ3JlZW46IFwiMDA2NDAwXCIsXG4gICAgZGFya2dyZXk6IFwiYTlhOWE5XCIsXG4gICAgZGFya2toYWtpOiBcImJkYjc2YlwiLFxuICAgIGRhcmttYWdlbnRhOiBcIjhiMDA4YlwiLFxuICAgIGRhcmtvbGl2ZWdyZWVuOiBcIjU1NmIyZlwiLFxuICAgIGRhcmtvcmFuZ2U6IFwiZmY4YzAwXCIsXG4gICAgZGFya29yY2hpZDogXCI5OTMyY2NcIixcbiAgICBkYXJrcmVkOiBcIjhiMDAwMFwiLFxuICAgIGRhcmtzYWxtb246IFwiZTk5NjdhXCIsXG4gICAgZGFya3NlYWdyZWVuOiBcIjhmYmM4ZlwiLFxuICAgIGRhcmtzbGF0ZWJsdWU6IFwiNDgzZDhiXCIsXG4gICAgZGFya3NsYXRlZ3JheTogXCIyZjRmNGZcIixcbiAgICBkYXJrc2xhdGVncmV5OiBcIjJmNGY0ZlwiLFxuICAgIGRhcmt0dXJxdW9pc2U6IFwiMDBjZWQxXCIsXG4gICAgZGFya3Zpb2xldDogXCI5NDAwZDNcIixcbiAgICBkZWVwcGluazogXCJmZjE0OTNcIixcbiAgICBkZWVwc2t5Ymx1ZTogXCIwMGJmZmZcIixcbiAgICBkaW1ncmF5OiBcIjY5Njk2OVwiLFxuICAgIGRpbWdyZXk6IFwiNjk2OTY5XCIsXG4gICAgZG9kZ2VyYmx1ZTogXCIxZTkwZmZcIixcbiAgICBmaXJlYnJpY2s6IFwiYjIyMjIyXCIsXG4gICAgZmxvcmFsd2hpdGU6IFwiZmZmYWYwXCIsXG4gICAgZm9yZXN0Z3JlZW46IFwiMjI4YjIyXCIsXG4gICAgZnVjaHNpYTogXCJmMGZcIixcbiAgICBnYWluc2Jvcm86IFwiZGNkY2RjXCIsXG4gICAgZ2hvc3R3aGl0ZTogXCJmOGY4ZmZcIixcbiAgICBnb2xkOiBcImZmZDcwMFwiLFxuICAgIGdvbGRlbnJvZDogXCJkYWE1MjBcIixcbiAgICBncmF5OiBcIjgwODA4MFwiLFxuICAgIGdyZWVuOiBcIjAwODAwMFwiLFxuICAgIGdyZWVueWVsbG93OiBcImFkZmYyZlwiLFxuICAgIGdyZXk6IFwiODA4MDgwXCIsXG4gICAgaG9uZXlkZXc6IFwiZjBmZmYwXCIsXG4gICAgaG90cGluazogXCJmZjY5YjRcIixcbiAgICBpbmRpYW5yZWQ6IFwiY2Q1YzVjXCIsXG4gICAgaW5kaWdvOiBcIjRiMDA4MlwiLFxuICAgIGl2b3J5OiBcImZmZmZmMFwiLFxuICAgIGtoYWtpOiBcImYwZTY4Y1wiLFxuICAgIGxhdmVuZGVyOiBcImU2ZTZmYVwiLFxuICAgIGxhdmVuZGVyYmx1c2g6IFwiZmZmMGY1XCIsXG4gICAgbGF3bmdyZWVuOiBcIjdjZmMwMFwiLFxuICAgIGxlbW9uY2hpZmZvbjogXCJmZmZhY2RcIixcbiAgICBsaWdodGJsdWU6IFwiYWRkOGU2XCIsXG4gICAgbGlnaHRjb3JhbDogXCJmMDgwODBcIixcbiAgICBsaWdodGN5YW46IFwiZTBmZmZmXCIsXG4gICAgbGlnaHRnb2xkZW5yb2R5ZWxsb3c6IFwiZmFmYWQyXCIsXG4gICAgbGlnaHRncmF5OiBcImQzZDNkM1wiLFxuICAgIGxpZ2h0Z3JlZW46IFwiOTBlZTkwXCIsXG4gICAgbGlnaHRncmV5OiBcImQzZDNkM1wiLFxuICAgIGxpZ2h0cGluazogXCJmZmI2YzFcIixcbiAgICBsaWdodHNhbG1vbjogXCJmZmEwN2FcIixcbiAgICBsaWdodHNlYWdyZWVuOiBcIjIwYjJhYVwiLFxuICAgIGxpZ2h0c2t5Ymx1ZTogXCI4N2NlZmFcIixcbiAgICBsaWdodHNsYXRlZ3JheTogXCI3ODlcIixcbiAgICBsaWdodHNsYXRlZ3JleTogXCI3ODlcIixcbiAgICBsaWdodHN0ZWVsYmx1ZTogXCJiMGM0ZGVcIixcbiAgICBsaWdodHllbGxvdzogXCJmZmZmZTBcIixcbiAgICBsaW1lOiBcIjBmMFwiLFxuICAgIGxpbWVncmVlbjogXCIzMmNkMzJcIixcbiAgICBsaW5lbjogXCJmYWYwZTZcIixcbiAgICBtYWdlbnRhOiBcImYwZlwiLFxuICAgIG1hcm9vbjogXCI4MDAwMDBcIixcbiAgICBtZWRpdW1hcXVhbWFyaW5lOiBcIjY2Y2RhYVwiLFxuICAgIG1lZGl1bWJsdWU6IFwiMDAwMGNkXCIsXG4gICAgbWVkaXVtb3JjaGlkOiBcImJhNTVkM1wiLFxuICAgIG1lZGl1bXB1cnBsZTogXCI5MzcwZGJcIixcbiAgICBtZWRpdW1zZWFncmVlbjogXCIzY2IzNzFcIixcbiAgICBtZWRpdW1zbGF0ZWJsdWU6IFwiN2I2OGVlXCIsXG4gICAgbWVkaXVtc3ByaW5nZ3JlZW46IFwiMDBmYTlhXCIsXG4gICAgbWVkaXVtdHVycXVvaXNlOiBcIjQ4ZDFjY1wiLFxuICAgIG1lZGl1bXZpb2xldHJlZDogXCJjNzE1ODVcIixcbiAgICBtaWRuaWdodGJsdWU6IFwiMTkxOTcwXCIsXG4gICAgbWludGNyZWFtOiBcImY1ZmZmYVwiLFxuICAgIG1pc3R5cm9zZTogXCJmZmU0ZTFcIixcbiAgICBtb2NjYXNpbjogXCJmZmU0YjVcIixcbiAgICBuYXZham93aGl0ZTogXCJmZmRlYWRcIixcbiAgICBuYXZ5OiBcIjAwMDA4MFwiLFxuICAgIG9sZGxhY2U6IFwiZmRmNWU2XCIsXG4gICAgb2xpdmU6IFwiODA4MDAwXCIsXG4gICAgb2xpdmVkcmFiOiBcIjZiOGUyM1wiLFxuICAgIG9yYW5nZTogXCJmZmE1MDBcIixcbiAgICBvcmFuZ2VyZWQ6IFwiZmY0NTAwXCIsXG4gICAgb3JjaGlkOiBcImRhNzBkNlwiLFxuICAgIHBhbGVnb2xkZW5yb2Q6IFwiZWVlOGFhXCIsXG4gICAgcGFsZWdyZWVuOiBcIjk4ZmI5OFwiLFxuICAgIHBhbGV0dXJxdW9pc2U6IFwiYWZlZWVlXCIsXG4gICAgcGFsZXZpb2xldHJlZDogXCJkYjcwOTNcIixcbiAgICBwYXBheWF3aGlwOiBcImZmZWZkNVwiLFxuICAgIHBlYWNocHVmZjogXCJmZmRhYjlcIixcbiAgICBwZXJ1OiBcImNkODUzZlwiLFxuICAgIHBpbms6IFwiZmZjMGNiXCIsXG4gICAgcGx1bTogXCJkZGEwZGRcIixcbiAgICBwb3dkZXJibHVlOiBcImIwZTBlNlwiLFxuICAgIHB1cnBsZTogXCI4MDAwODBcIixcbiAgICByZWJlY2NhcHVycGxlOiBcIjY2MzM5OVwiLFxuICAgIHJlZDogXCJmMDBcIixcbiAgICByb3N5YnJvd246IFwiYmM4ZjhmXCIsXG4gICAgcm95YWxibHVlOiBcIjQxNjllMVwiLFxuICAgIHNhZGRsZWJyb3duOiBcIjhiNDUxM1wiLFxuICAgIHNhbG1vbjogXCJmYTgwNzJcIixcbiAgICBzYW5keWJyb3duOiBcImY0YTQ2MFwiLFxuICAgIHNlYWdyZWVuOiBcIjJlOGI1N1wiLFxuICAgIHNlYXNoZWxsOiBcImZmZjVlZVwiLFxuICAgIHNpZW5uYTogXCJhMDUyMmRcIixcbiAgICBzaWx2ZXI6IFwiYzBjMGMwXCIsXG4gICAgc2t5Ymx1ZTogXCI4N2NlZWJcIixcbiAgICBzbGF0ZWJsdWU6IFwiNmE1YWNkXCIsXG4gICAgc2xhdGVncmF5OiBcIjcwODA5MFwiLFxuICAgIHNsYXRlZ3JleTogXCI3MDgwOTBcIixcbiAgICBzbm93OiBcImZmZmFmYVwiLFxuICAgIHNwcmluZ2dyZWVuOiBcIjAwZmY3ZlwiLFxuICAgIHN0ZWVsYmx1ZTogXCI0NjgyYjRcIixcbiAgICB0YW46IFwiZDJiNDhjXCIsXG4gICAgdGVhbDogXCIwMDgwODBcIixcbiAgICB0aGlzdGxlOiBcImQ4YmZkOFwiLFxuICAgIHRvbWF0bzogXCJmZjYzNDdcIixcbiAgICB0dXJxdW9pc2U6IFwiNDBlMGQwXCIsXG4gICAgdmlvbGV0OiBcImVlODJlZVwiLFxuICAgIHdoZWF0OiBcImY1ZGViM1wiLFxuICAgIHdoaXRlOiBcImZmZlwiLFxuICAgIHdoaXRlc21va2U6IFwiZjVmNWY1XCIsXG4gICAgeWVsbG93OiBcImZmMFwiLFxuICAgIHllbGxvd2dyZWVuOiBcIjlhY2QzMlwiXG59O1xuXG4vLyBNYWtlIGl0IGVhc3kgdG8gYWNjZXNzIGNvbG9ycyB2aWEgaGV4TmFtZXNbaGV4XVxudmFyIGhleE5hbWVzID0gdGlueWNvbG9yLmhleE5hbWVzID0gZmxpcChuYW1lcyk7XG5cbi8vIFV0aWxpdGllc1xuLy8gLS0tLS0tLS0tXG5cbi8vIHsgJ25hbWUxJzogJ3ZhbDEnIH0gYmVjb21lcyB7ICd2YWwxJzogJ25hbWUxJyB9XG5mdW5jdGlvbiBmbGlwKG8pIHtcbiAgICB2YXIgZmxpcHBlZCA9IHsgfTtcbiAgICBmb3IgKHZhciBpIGluIG8pIHtcbiAgICAgICAgaWYgKG8uaGFzT3duUHJvcGVydHkoaSkpIHtcbiAgICAgICAgICAgIGZsaXBwZWRbb1tpXV0gPSBpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmbGlwcGVkO1xufVxuXG4vLyBSZXR1cm4gYSB2YWxpZCBhbHBoYSB2YWx1ZSBbMCwxXSB3aXRoIGFsbCBpbnZhbGlkIHZhbHVlcyBiZWluZyBzZXQgdG8gMVxuZnVuY3Rpb24gYm91bmRBbHBoYShhKSB7XG4gICAgYSA9IHBhcnNlRmxvYXQoYSk7XG5cbiAgICBpZiAoaXNOYU4oYSkgfHwgYSA8IDAgfHwgYSA+IDEpIHtcbiAgICAgICAgYSA9IDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIGE7XG59XG5cbi8vIFRha2UgaW5wdXQgZnJvbSBbMCwgbl0gYW5kIHJldHVybiBpdCBhcyBbMCwgMV1cbmZ1bmN0aW9uIGJvdW5kMDEobiwgbWF4KSB7XG4gICAgaWYgKGlzT25lUG9pbnRaZXJvKG4pKSB7IG4gPSBcIjEwMCVcIjsgfVxuXG4gICAgdmFyIHByb2Nlc3NQZXJjZW50ID0gaXNQZXJjZW50YWdlKG4pO1xuICAgIG4gPSBtYXRoTWluKG1heCwgbWF0aE1heCgwLCBwYXJzZUZsb2F0KG4pKSk7XG5cbiAgICAvLyBBdXRvbWF0aWNhbGx5IGNvbnZlcnQgcGVyY2VudGFnZSBpbnRvIG51bWJlclxuICAgIGlmIChwcm9jZXNzUGVyY2VudCkge1xuICAgICAgICBuID0gcGFyc2VJbnQobiAqIG1heCwgMTApIC8gMTAwO1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSBmbG9hdGluZyBwb2ludCByb3VuZGluZyBlcnJvcnNcbiAgICBpZiAoKE1hdGguYWJzKG4gLSBtYXgpIDwgMC4wMDAwMDEpKSB7XG4gICAgICAgIHJldHVybiAxO1xuICAgIH1cblxuICAgIC8vIENvbnZlcnQgaW50byBbMCwgMV0gcmFuZ2UgaWYgaXQgaXNuJ3QgYWxyZWFkeVxuICAgIHJldHVybiAobiAlIG1heCkgLyBwYXJzZUZsb2F0KG1heCk7XG59XG5cbi8vIEZvcmNlIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgMVxuZnVuY3Rpb24gY2xhbXAwMSh2YWwpIHtcbiAgICByZXR1cm4gbWF0aE1pbigxLCBtYXRoTWF4KDAsIHZhbCkpO1xufVxuXG4vLyBQYXJzZSBhIGJhc2UtMTYgaGV4IHZhbHVlIGludG8gYSBiYXNlLTEwIGludGVnZXJcbmZ1bmN0aW9uIHBhcnNlSW50RnJvbUhleCh2YWwpIHtcbiAgICByZXR1cm4gcGFyc2VJbnQodmFsLCAxNik7XG59XG5cbi8vIE5lZWQgdG8gaGFuZGxlIDEuMCBhcyAxMDAlLCBzaW5jZSBvbmNlIGl0IGlzIGEgbnVtYmVyLCB0aGVyZSBpcyBubyBkaWZmZXJlbmNlIGJldHdlZW4gaXQgYW5kIDFcbi8vIDxodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc0MjIwNzIvamF2YXNjcmlwdC1ob3ctdG8tZGV0ZWN0LW51bWJlci1hcy1hLWRlY2ltYWwtaW5jbHVkaW5nLTEtMD5cbmZ1bmN0aW9uIGlzT25lUG9pbnRaZXJvKG4pIHtcbiAgICByZXR1cm4gdHlwZW9mIG4gPT0gXCJzdHJpbmdcIiAmJiBuLmluZGV4T2YoJy4nKSAhPSAtMSAmJiBwYXJzZUZsb2F0KG4pID09PSAxO1xufVxuXG4vLyBDaGVjayB0byBzZWUgaWYgc3RyaW5nIHBhc3NlZCBpbiBpcyBhIHBlcmNlbnRhZ2VcbmZ1bmN0aW9uIGlzUGVyY2VudGFnZShuKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBuID09PSBcInN0cmluZ1wiICYmIG4uaW5kZXhPZignJScpICE9IC0xO1xufVxuXG4vLyBGb3JjZSBhIGhleCB2YWx1ZSB0byBoYXZlIDIgY2hhcmFjdGVyc1xuZnVuY3Rpb24gcGFkMihjKSB7XG4gICAgcmV0dXJuIGMubGVuZ3RoID09IDEgPyAnMCcgKyBjIDogJycgKyBjO1xufVxuXG4vLyBSZXBsYWNlIGEgZGVjaW1hbCB3aXRoIGl0J3MgcGVyY2VudGFnZSB2YWx1ZVxuZnVuY3Rpb24gY29udmVydFRvUGVyY2VudGFnZShuKSB7XG4gICAgaWYgKG4gPD0gMSkge1xuICAgICAgICBuID0gKG4gKiAxMDApICsgXCIlXCI7XG4gICAgfVxuXG4gICAgcmV0dXJuIG47XG59XG5cbi8vIENvbnZlcnRzIGEgZGVjaW1hbCB0byBhIGhleCB2YWx1ZVxuZnVuY3Rpb24gY29udmVydERlY2ltYWxUb0hleChkKSB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQocGFyc2VGbG9hdChkKSAqIDI1NSkudG9TdHJpbmcoMTYpO1xufVxuLy8gQ29udmVydHMgYSBoZXggdmFsdWUgdG8gYSBkZWNpbWFsXG5mdW5jdGlvbiBjb252ZXJ0SGV4VG9EZWNpbWFsKGgpIHtcbiAgICByZXR1cm4gKHBhcnNlSW50RnJvbUhleChoKSAvIDI1NSk7XG59XG5cbnZhciBtYXRjaGVycyA9IChmdW5jdGlvbigpIHtcblxuICAgIC8vIDxodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLXZhbHVlcy8jaW50ZWdlcnM+XG4gICAgdmFyIENTU19JTlRFR0VSID0gXCJbLVxcXFwrXT9cXFxcZCslP1wiO1xuXG4gICAgLy8gPGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtdmFsdWVzLyNudW1iZXItdmFsdWU+XG4gICAgdmFyIENTU19OVU1CRVIgPSBcIlstXFxcXCtdP1xcXFxkKlxcXFwuXFxcXGQrJT9cIjtcblxuICAgIC8vIEFsbG93IHBvc2l0aXZlL25lZ2F0aXZlIGludGVnZXIvbnVtYmVyLiAgRG9uJ3QgY2FwdHVyZSB0aGUgZWl0aGVyL29yLCBqdXN0IHRoZSBlbnRpcmUgb3V0Y29tZS5cbiAgICB2YXIgQ1NTX1VOSVQgPSBcIig/OlwiICsgQ1NTX05VTUJFUiArIFwiKXwoPzpcIiArIENTU19JTlRFR0VSICsgXCIpXCI7XG5cbiAgICAvLyBBY3R1YWwgbWF0Y2hpbmcuXG4gICAgLy8gUGFyZW50aGVzZXMgYW5kIGNvbW1hcyBhcmUgb3B0aW9uYWwsIGJ1dCBub3QgcmVxdWlyZWQuXG4gICAgLy8gV2hpdGVzcGFjZSBjYW4gdGFrZSB0aGUgcGxhY2Ugb2YgY29tbWFzIG9yIG9wZW5pbmcgcGFyZW5cbiAgICB2YXIgUEVSTUlTU0lWRV9NQVRDSDMgPSBcIltcXFxcc3xcXFxcKF0rKFwiICsgQ1NTX1VOSVQgKyBcIilbLHxcXFxcc10rKFwiICsgQ1NTX1VOSVQgKyBcIilbLHxcXFxcc10rKFwiICsgQ1NTX1VOSVQgKyBcIilcXFxccypcXFxcKT9cIjtcbiAgICB2YXIgUEVSTUlTU0lWRV9NQVRDSDQgPSBcIltcXFxcc3xcXFxcKF0rKFwiICsgQ1NTX1VOSVQgKyBcIilbLHxcXFxcc10rKFwiICsgQ1NTX1VOSVQgKyBcIilbLHxcXFxcc10rKFwiICsgQ1NTX1VOSVQgKyBcIilbLHxcXFxcc10rKFwiICsgQ1NTX1VOSVQgKyBcIilcXFxccypcXFxcKT9cIjtcblxuICAgIHJldHVybiB7XG4gICAgICAgIENTU19VTklUOiBuZXcgUmVnRXhwKENTU19VTklUKSxcbiAgICAgICAgcmdiOiBuZXcgUmVnRXhwKFwicmdiXCIgKyBQRVJNSVNTSVZFX01BVENIMyksXG4gICAgICAgIHJnYmE6IG5ldyBSZWdFeHAoXCJyZ2JhXCIgKyBQRVJNSVNTSVZFX01BVENINCksXG4gICAgICAgIGhzbDogbmV3IFJlZ0V4cChcImhzbFwiICsgUEVSTUlTU0lWRV9NQVRDSDMpLFxuICAgICAgICBoc2xhOiBuZXcgUmVnRXhwKFwiaHNsYVwiICsgUEVSTUlTU0lWRV9NQVRDSDQpLFxuICAgICAgICBoc3Y6IG5ldyBSZWdFeHAoXCJoc3ZcIiArIFBFUk1JU1NJVkVfTUFUQ0gzKSxcbiAgICAgICAgaHN2YTogbmV3IFJlZ0V4cChcImhzdmFcIiArIFBFUk1JU1NJVkVfTUFUQ0g0KSxcbiAgICAgICAgaGV4MzogL14jPyhbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KSQvLFxuICAgICAgICBoZXg2OiAvXiM/KFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pJC8sXG4gICAgICAgIGhleDQ6IC9eIz8oWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pJC8sXG4gICAgICAgIGhleDg6IC9eIz8oWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pJC9cbiAgICB9O1xufSkoKTtcblxuLy8gaXNWYWxpZENTU1VuaXRcbi8vIFRha2UgaW4gYSBzaW5nbGUgc3RyaW5nIC8gbnVtYmVyIGFuZCBjaGVjayB0byBzZWUgaWYgaXQgbG9va3MgbGlrZSBhIENTUyB1bml0XG4vLyAoc2VlIG1hdGNoZXJzIGFib3ZlIGZvciBkZWZpbml0aW9uKS5cbmZ1bmN0aW9uIGlzVmFsaWRDU1NVbml0KGNvbG9yKSB7XG4gICAgcmV0dXJuICEhbWF0Y2hlcnMuQ1NTX1VOSVQuZXhlYyhjb2xvcik7XG59XG5cbi8vIHN0cmluZ0lucHV0VG9PYmplY3Rcbi8vIFBlcm1pc3NpdmUgc3RyaW5nIHBhcnNpbmcuICBUYWtlIGluIGEgbnVtYmVyIG9mIGZvcm1hdHMsIGFuZCBvdXRwdXQgYW4gb2JqZWN0XG4vLyBiYXNlZCBvbiBkZXRlY3RlZCBmb3JtYXQuICBSZXR1cm5zIHsgciwgZywgYiB9IG9yIHsgaCwgcywgbCB9IG9yIHsgaCwgcywgdn1cbmZ1bmN0aW9uIHN0cmluZ0lucHV0VG9PYmplY3QoY29sb3IpIHtcblxuICAgIGNvbG9yID0gY29sb3IucmVwbGFjZSh0cmltTGVmdCwgJycpLnJlcGxhY2UodHJpbVJpZ2h0LCAnJykudG9Mb3dlckNhc2UoKTtcbiAgICB2YXIgbmFtZWQgPSBmYWxzZTtcbiAgICBpZiAobmFtZXNbY29sb3JdKSB7XG4gICAgICAgIGNvbG9yID0gbmFtZXNbY29sb3JdO1xuICAgICAgICBuYW1lZCA9IHRydWU7XG4gICAgfVxuICAgIGVsc2UgaWYgKGNvbG9yID09ICd0cmFuc3BhcmVudCcpIHtcbiAgICAgICAgcmV0dXJuIHsgcjogMCwgZzogMCwgYjogMCwgYTogMCwgZm9ybWF0OiBcIm5hbWVcIiB9O1xuICAgIH1cblxuICAgIC8vIFRyeSB0byBtYXRjaCBzdHJpbmcgaW5wdXQgdXNpbmcgcmVndWxhciBleHByZXNzaW9ucy5cbiAgICAvLyBLZWVwIG1vc3Qgb2YgdGhlIG51bWJlciBib3VuZGluZyBvdXQgb2YgdGhpcyBmdW5jdGlvbiAtIGRvbid0IHdvcnJ5IGFib3V0IFswLDFdIG9yIFswLDEwMF0gb3IgWzAsMzYwXVxuICAgIC8vIEp1c3QgcmV0dXJuIGFuIG9iamVjdCBhbmQgbGV0IHRoZSBjb252ZXJzaW9uIGZ1bmN0aW9ucyBoYW5kbGUgdGhhdC5cbiAgICAvLyBUaGlzIHdheSB0aGUgcmVzdWx0IHdpbGwgYmUgdGhlIHNhbWUgd2hldGhlciB0aGUgdGlueWNvbG9yIGlzIGluaXRpYWxpemVkIHdpdGggc3RyaW5nIG9yIG9iamVjdC5cbiAgICB2YXIgbWF0Y2g7XG4gICAgaWYgKChtYXRjaCA9IG1hdGNoZXJzLnJnYi5leGVjKGNvbG9yKSkpIHtcbiAgICAgICAgcmV0dXJuIHsgcjogbWF0Y2hbMV0sIGc6IG1hdGNoWzJdLCBiOiBtYXRjaFszXSB9O1xuICAgIH1cbiAgICBpZiAoKG1hdGNoID0gbWF0Y2hlcnMucmdiYS5leGVjKGNvbG9yKSkpIHtcbiAgICAgICAgcmV0dXJuIHsgcjogbWF0Y2hbMV0sIGc6IG1hdGNoWzJdLCBiOiBtYXRjaFszXSwgYTogbWF0Y2hbNF0gfTtcbiAgICB9XG4gICAgaWYgKChtYXRjaCA9IG1hdGNoZXJzLmhzbC5leGVjKGNvbG9yKSkpIHtcbiAgICAgICAgcmV0dXJuIHsgaDogbWF0Y2hbMV0sIHM6IG1hdGNoWzJdLCBsOiBtYXRjaFszXSB9O1xuICAgIH1cbiAgICBpZiAoKG1hdGNoID0gbWF0Y2hlcnMuaHNsYS5leGVjKGNvbG9yKSkpIHtcbiAgICAgICAgcmV0dXJuIHsgaDogbWF0Y2hbMV0sIHM6IG1hdGNoWzJdLCBsOiBtYXRjaFszXSwgYTogbWF0Y2hbNF0gfTtcbiAgICB9XG4gICAgaWYgKChtYXRjaCA9IG1hdGNoZXJzLmhzdi5leGVjKGNvbG9yKSkpIHtcbiAgICAgICAgcmV0dXJuIHsgaDogbWF0Y2hbMV0sIHM6IG1hdGNoWzJdLCB2OiBtYXRjaFszXSB9O1xuICAgIH1cbiAgICBpZiAoKG1hdGNoID0gbWF0Y2hlcnMuaHN2YS5leGVjKGNvbG9yKSkpIHtcbiAgICAgICAgcmV0dXJuIHsgaDogbWF0Y2hbMV0sIHM6IG1hdGNoWzJdLCB2OiBtYXRjaFszXSwgYTogbWF0Y2hbNF0gfTtcbiAgICB9XG4gICAgaWYgKChtYXRjaCA9IG1hdGNoZXJzLmhleDguZXhlYyhjb2xvcikpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByOiBwYXJzZUludEZyb21IZXgobWF0Y2hbMV0pLFxuICAgICAgICAgICAgZzogcGFyc2VJbnRGcm9tSGV4KG1hdGNoWzJdKSxcbiAgICAgICAgICAgIGI6IHBhcnNlSW50RnJvbUhleChtYXRjaFszXSksXG4gICAgICAgICAgICBhOiBjb252ZXJ0SGV4VG9EZWNpbWFsKG1hdGNoWzRdKSxcbiAgICAgICAgICAgIGZvcm1hdDogbmFtZWQgPyBcIm5hbWVcIiA6IFwiaGV4OFwiXG4gICAgICAgIH07XG4gICAgfVxuICAgIGlmICgobWF0Y2ggPSBtYXRjaGVycy5oZXg2LmV4ZWMoY29sb3IpKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcjogcGFyc2VJbnRGcm9tSGV4KG1hdGNoWzFdKSxcbiAgICAgICAgICAgIGc6IHBhcnNlSW50RnJvbUhleChtYXRjaFsyXSksXG4gICAgICAgICAgICBiOiBwYXJzZUludEZyb21IZXgobWF0Y2hbM10pLFxuICAgICAgICAgICAgZm9ybWF0OiBuYW1lZCA/IFwibmFtZVwiIDogXCJoZXhcIlxuICAgICAgICB9O1xuICAgIH1cbiAgICBpZiAoKG1hdGNoID0gbWF0Y2hlcnMuaGV4NC5leGVjKGNvbG9yKSkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHI6IHBhcnNlSW50RnJvbUhleChtYXRjaFsxXSArICcnICsgbWF0Y2hbMV0pLFxuICAgICAgICAgICAgZzogcGFyc2VJbnRGcm9tSGV4KG1hdGNoWzJdICsgJycgKyBtYXRjaFsyXSksXG4gICAgICAgICAgICBiOiBwYXJzZUludEZyb21IZXgobWF0Y2hbM10gKyAnJyArIG1hdGNoWzNdKSxcbiAgICAgICAgICAgIGE6IGNvbnZlcnRIZXhUb0RlY2ltYWwobWF0Y2hbNF0gKyAnJyArIG1hdGNoWzRdKSxcbiAgICAgICAgICAgIGZvcm1hdDogbmFtZWQgPyBcIm5hbWVcIiA6IFwiaGV4OFwiXG4gICAgICAgIH07XG4gICAgfVxuICAgIGlmICgobWF0Y2ggPSBtYXRjaGVycy5oZXgzLmV4ZWMoY29sb3IpKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcjogcGFyc2VJbnRGcm9tSGV4KG1hdGNoWzFdICsgJycgKyBtYXRjaFsxXSksXG4gICAgICAgICAgICBnOiBwYXJzZUludEZyb21IZXgobWF0Y2hbMl0gKyAnJyArIG1hdGNoWzJdKSxcbiAgICAgICAgICAgIGI6IHBhcnNlSW50RnJvbUhleChtYXRjaFszXSArICcnICsgbWF0Y2hbM10pLFxuICAgICAgICAgICAgZm9ybWF0OiBuYW1lZCA/IFwibmFtZVwiIDogXCJoZXhcIlxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVXQ0FHMlBhcm1zKHBhcm1zKSB7XG4gICAgLy8gcmV0dXJuIHZhbGlkIFdDQUcyIHBhcm1zIGZvciBpc1JlYWRhYmxlLlxuICAgIC8vIElmIGlucHV0IHBhcm1zIGFyZSBpbnZhbGlkLCByZXR1cm4ge1wibGV2ZWxcIjpcIkFBXCIsIFwic2l6ZVwiOlwic21hbGxcIn1cbiAgICB2YXIgbGV2ZWwsIHNpemU7XG4gICAgcGFybXMgPSBwYXJtcyB8fCB7XCJsZXZlbFwiOlwiQUFcIiwgXCJzaXplXCI6XCJzbWFsbFwifTtcbiAgICBsZXZlbCA9IChwYXJtcy5sZXZlbCB8fCBcIkFBXCIpLnRvVXBwZXJDYXNlKCk7XG4gICAgc2l6ZSA9IChwYXJtcy5zaXplIHx8IFwic21hbGxcIikudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAobGV2ZWwgIT09IFwiQUFcIiAmJiBsZXZlbCAhPT0gXCJBQUFcIikge1xuICAgICAgICBsZXZlbCA9IFwiQUFcIjtcbiAgICB9XG4gICAgaWYgKHNpemUgIT09IFwic21hbGxcIiAmJiBzaXplICE9PSBcImxhcmdlXCIpIHtcbiAgICAgICAgc2l6ZSA9IFwic21hbGxcIjtcbiAgICB9XG4gICAgcmV0dXJuIHtcImxldmVsXCI6bGV2ZWwsIFwic2l6ZVwiOnNpemV9O1xufVxuXG50aGlzLnRpbnljb2xvciA9IHRpbnljb2xvcjtcblxufSkoKWA7XG59XG4vLyBJdCBpcyBoYWNreSB3YXkgdG8gbWFrZSB0aGlzIGZ1bmN0aW9uIHdpbGwgYmUgY29tcGlsZWQgcHJlZmVyZW50aWFsbHkgYnkgbGVzc1xuLy8gcmVzb2x2ZSBlcnJvcjogYFJlZmVyZW5jZUVycm9yOiBjb2xvclBhbGV0dGUgaXMgbm90IGRlZmluZWRgXG4vLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtbW90aW9uL2lzc3Vlcy80NFxuLnRpbnlDb2xvck1peGluKCk7XG4iLCIvLyBTaXppbmcgc2hvcnRjdXRzXG5cbi5zaXplKEB3aWR0aDsgQGhlaWdodCkge1xuICB3aWR0aDogQHdpZHRoO1xuICBoZWlnaHQ6IEBoZWlnaHQ7XG59XG5cbi5zcXVhcmUoQHNpemUpIHtcbiAgLnNpemUoQHNpemU7IEBzaXplKTtcbn1cbiIsIi8qIHN0eWxlbGludC1kaXNhYmxlIGF0LXJ1bGUtbm8tdW5rbm93biAqL1xuXG4vLyBSZWJvb3Rcbi8vXG4vLyBOb3JtYWxpemF0aW9uIG9mIEhUTUwgZWxlbWVudHMsIG1hbnVhbGx5IGZvcmtlZCBmcm9tIE5vcm1hbGl6ZS5jc3MgdG8gcmVtb3ZlXG4vLyBzdHlsZXMgdGFyZ2V0aW5nIGlycmVsZXZhbnQgYnJvd3NlcnMgd2hpbGUgYXBwbHlpbmcgbmV3IHN0eWxlcy5cbi8vXG4vLyBOb3JtYWxpemUgaXMgbGljZW5zZWQgTUlULiBodHRwczovL2dpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzXG5cbi8vIEhUTUwgJiBCb2R5IHJlc2V0XG5Ae2h0bWwtc2VsZWN0b3J9LFxuYm9keSB7XG4gIC5zcXVhcmUoMTAwJSk7XG59XG5cbi8vIHJlbW92ZSB0aGUgY2xlYXIgYnV0dG9uIG9mIGEgdGV4dCBpbnB1dCBjb250cm9sIGluIElFMTArXG5pbnB1dDo6LW1zLWNsZWFyLFxuaW5wdXQ6Oi1tcy1yZXZlYWwge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vLyBEb2N1bWVudFxuLy9cbi8vIDEuIENoYW5nZSBmcm9tIGBib3gtc2l6aW5nOiBjb250ZW50LWJveGAgc28gdGhhdCBgd2lkdGhgIGlzIG5vdCBhZmZlY3RlZCBieSBgcGFkZGluZ2Agb3IgYGJvcmRlcmAuXG4vLyAyLiBDaGFuZ2UgdGhlIGRlZmF1bHQgZm9udCBmYW1pbHkgaW4gYWxsIGJyb3dzZXJzLlxuLy8gMy4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuLy8gNC4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBJRSBvbiBXaW5kb3dzIFBob25lIGFuZCBpbiBpT1MuXG4vLyA1LiBTZXR0aW5nIEB2aWV3cG9ydCBjYXVzZXMgc2Nyb2xsYmFycyB0byBvdmVybGFwIGNvbnRlbnQgaW4gSUUxMSBhbmQgRWRnZSwgc29cbi8vICAgIHdlIGZvcmNlIGEgbm9uLW92ZXJsYXBwaW5nLCBub24tYXV0by1oaWRpbmcgc2Nyb2xsYmFyIHRvIGNvdW50ZXJhY3QuXG4vLyA2LiBDaGFuZ2UgdGhlIGRlZmF1bHQgdGFwIGhpZ2hsaWdodCB0byBiZSBjb21wbGV0ZWx5IHRyYW5zcGFyZW50IGluIGlPUy5cblxuKixcbio6OmJlZm9yZSxcbio6OmFmdGVyIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gMVxufVxuXG5Ae2h0bWwtc2VsZWN0b3J9IHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8vIDJcbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8vIDNcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvLyA0XG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvLyA0XG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogc2Nyb2xsYmFyOyAvLyA1XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogZmFkZShAYmxhY2ssIDAlKTsgLy8gNlxufVxuXG4vLyBJRTEwKyBkb2Vzbid0IGhvbm9yIGA8bWV0YSBuYW1lPVwidmlld3BvcnRcIj5gIGluIHNvbWUgY2FzZXMuXG5ALW1zLXZpZXdwb3J0IHtcbiAgd2lkdGg6IGRldmljZS13aWR0aDtcbn1cblxuLy8gQm9keVxuLy9cbi8vIDEuIHJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cbi8vIDIuIEFzIGEgYmVzdCBwcmFjdGljZSwgYXBwbHkgYSBkZWZhdWx0IGBib2R5LWJhY2tncm91bmRgLlxuXG5ib2R5IHtcbiAgbWFyZ2luOiAwOyAvLyAxXG4gIGNvbG9yOiBAdGV4dC1jb2xvcjtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplLWJhc2U7XG4gIGZvbnQtZmFtaWx5OiBAZm9udC1mYW1pbHk7XG4gIGZvbnQtdmFyaWFudDogQGZvbnQtdmFyaWFudC1iYXNlO1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG4gIGJhY2tncm91bmQtY29sb3I6IEBib2R5LWJhY2tncm91bmQ7IC8vIDJcbiAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBAZm9udC1mZWF0dXJlLXNldHRpbmdzLWJhc2U7XG59XG5cbi8vIFN1cHByZXNzIHRoZSBmb2N1cyBvdXRsaW5lIG9uIGVsZW1lbnRzIHRoYXQgY2Fubm90IGJlIGFjY2Vzc2VkIHZpYSBrZXlib2FyZC5cbi8vIFRoaXMgcHJldmVudHMgYW4gdW53YW50ZWQgZm9jdXMgb3V0bGluZSBmcm9tIGFwcGVhcmluZyBhcm91bmQgZWxlbWVudHMgdGhhdFxuLy8gbWlnaHQgc3RpbGwgcmVzcG9uZCB0byBwb2ludGVyIGV2ZW50cy5cbi8vXG4vLyBDcmVkaXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9zdWl0Y3NzL2Jhc2Vcblt0YWJpbmRleD0nLTEnXTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLy8gQ29udGVudCBncm91cGluZ1xuLy9cbi8vIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4vLyAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLy8gMVxuICBoZWlnaHQ6IDA7IC8vIDFcbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8vIDJcbn1cblxuLy9cbi8vIFR5cG9ncmFwaHlcbi8vXG5cbi8vIHJlbW92ZSB0b3AgbWFyZ2lucyBmcm9tIGhlYWRpbmdzXG4vL1xuLy8gQnkgZGVmYXVsdCwgYDxoMT5gLWA8aDY+YCBhbGwgcmVjZWl2ZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zLiBXZSBudWtlIHRoZSB0b3Bcbi8vIG1hcmdpbiBmb3IgZWFzaWVyIGNvbnRyb2wgd2l0aGluIHR5cGUgc2NhbGVzIGFzIGl0IGF2b2lkcyBtYXJnaW4gY29sbGFwc2luZy5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNWVtO1xuICBjb2xvcjogQGhlYWRpbmctY29sb3I7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi8vIFJlc2V0IG1hcmdpbnMgb24gcGFyYWdyYXBoc1xuLy9cbi8vIFNpbWlsYXJseSwgdGhlIHRvcCBtYXJnaW4gb24gYDxwPmBzIGdldCByZXNldC4gSG93ZXZlciwgd2UgYWxzbyByZXNldCB0aGVcbi8vIGJvdHRvbSBtYXJnaW4gdG8gdXNlIGBlbWAgdW5pdHMgaW5zdGVhZCBvZiBgZW1gLlxucCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cblxuLy8gQWJicmV2aWF0aW9uc1xuLy9cbi8vIDEuIHJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBGaXJlZm94IDM5LS5cbi8vIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4vLyAzLiBBZGQgZXhwbGljaXQgY3Vyc29yIHRvIGluZGljYXRlIGNoYW5nZWQgYmVoYXZpb3IuXG4vLyA0LiBEdXBsaWNhdGUgYmVoYXZpb3IgdG8gdGhlIGRhdGEtKiBhdHRyaWJ1dGUgZm9yIG91ciB0b29sdGlwIHBsdWdpblxuXG5hYmJyW3RpdGxlXSxcbmFiYnJbZGF0YS1vcmlnaW5hbC10aXRsZV0ge1xuICAvLyA0XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvLyAyXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLy8gMlxuICBib3JkZXItYm90dG9tOiAwOyAvLyAxXG4gIGN1cnNvcjogaGVscDsgLy8gM1xufVxuXG5hZGRyZXNzIHtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG5pbnB1dFt0eXBlPSd0ZXh0J10sXG5pbnB1dFt0eXBlPSdwYXNzd29yZCddLFxuaW5wdXRbdHlwZT0nbnVtYmVyJ10sXG50ZXh0YXJlYSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxub2wsXG51bCxcbmRsIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuXG5vbCBvbCxcbnVsIHVsLFxub2wgdWwsXG51bCBvbCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbmR0IHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuZGQge1xuICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcbiAgbWFyZ2luLWxlZnQ6IDA7IC8vIFVuZG8gYnJvd3NlciBkZWZhdWx0XG59XG5cbmJsb2NrcXVvdGUge1xuICBtYXJnaW46IDAgMCAxZW07XG59XG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgLy8gQWRkIHRoZSBjb3JyZWN0IGZvbnQgc3R5bGUgaW4gQW5kcm9pZCA0LjMtXG59XG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyOyAvLyBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpXG59XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7IC8vIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzXG59XG5cbi8vXG4vLyBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbi8vIGFsbCBicm93c2Vycy5cbi8vXG5cbnN1YixcbnN1cCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG4vL1xuLy8gTGlua3Ncbi8vXG5cbmEge1xuICBjb2xvcjogQGxpbmstY29sb3I7XG4gIHRleHQtZGVjb3JhdGlvbjogQGxpbmstZGVjb3JhdGlvbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8vIHJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAgb3V0bGluZTogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzO1xuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBvYmplY3RzOyAvLyByZW1vdmUgZ2FwcyBpbiBsaW5rcyB1bmRlcmxpbmUgaW4gaU9TIDgrIGFuZCBTYWZhcmkgOCsuXG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6IEBsaW5rLWhvdmVyLWNvbG9yO1xuICB9XG5cbiAgJjphY3RpdmUge1xuICAgIGNvbG9yOiBAbGluay1hY3RpdmUtY29sb3I7XG4gIH1cblxuICAmOmFjdGl2ZSxcbiAgJjpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBAbGluay1ob3Zlci1kZWNvcmF0aW9uO1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy8yMjUwM1xuICAmOmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IEBsaW5rLWZvY3VzLWRlY29yYXRpb247XG4gICAgb3V0bGluZTogQGxpbmstZm9jdXMtb3V0bGluZTtcbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcbiAgICBjb2xvcjogQGRpc2FibGVkLWNvbG9yO1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbn1cblxuLy9cbi8vIENvZGVcbi8vXG5cbnByZSxcbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1zaXplOiAxZW07IC8vIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAgZm9udC1mYW1pbHk6IEBjb2RlLWZhbWlseTtcbn1cblxucHJlIHtcbiAgLy8gcmVtb3ZlIGJyb3dzZXIgZGVmYXVsdCB0b3AgbWFyZ2luXG4gIG1hcmdpbi10b3A6IDA7XG4gIC8vIFJlc2V0IGJyb3dzZXIgZGVmYXVsdCBvZiBgMWVtYCB0byB1c2UgYGVtYHNcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAvLyBEb24ndCBhbGxvdyBjb250ZW50IHRvIGJyZWFrIG91dHNpZGVcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8vXG4vLyBGaWd1cmVzXG4vL1xuZmlndXJlIHtcbiAgLy8gQXBwbHkgYSBjb25zaXN0ZW50IG1hcmdpbiBzdHJhdGVneSAobWF0Y2hlcyBvdXIgdHlwZSBzdHlsZXMpLlxuICBtYXJnaW46IDAgMCAxZW07XG59XG5cbi8vXG4vLyBJbWFnZXMgYW5kIGNvbnRlbnRcbi8vXG5cbmltZyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJvcmRlci1zdHlsZTogbm9uZTsgLy8gcmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC0uXG59XG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgLy8gSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUVcbn1cblxuLy8gQXZvaWQgMzAwbXMgY2xpY2sgZGVsYXkgb24gdG91Y2ggZGV2aWNlcyB0aGF0IHN1cHBvcnQgdGhlIGB0b3VjaC1hY3Rpb25gIENTUyBwcm9wZXJ0eS5cbi8vXG4vLyBJbiBwYXJ0aWN1bGFyLCB1bmxpa2UgbW9zdCBvdGhlciBicm93c2VycywgSUUxMStFZGdlIG9uIFdpbmRvd3MgMTAgb24gdG91Y2ggZGV2aWNlcyBhbmQgSUUgTW9iaWxlIDEwLTExXG4vLyBET04nVCByZW1vdmUgdGhlIGNsaWNrIGRlbGF5IHdoZW4gYDxtZXRhIG5hbWU9XCJ2aWV3cG9ydFwiIGNvbnRlbnQ9XCJ3aWR0aD1kZXZpY2Utd2lkdGhcIj5gIGlzIHByZXNlbnQuXG4vLyBIb3dldmVyLCB0aGV5IERPIHN1cHBvcnQgZW1vdmluZyB0aGUgY2xpY2sgZGVsYXkgdmlhIGB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbmAuXG4vLyBTZWU6XG4vLyAqIGh0dHBzOi8vZ2V0Ym9vdHN0cmFwLmNvbS9kb2NzLzQuMC9jb250ZW50L3JlYm9vdC8jY2xpY2stZGVsYXktb3B0aW1pemF0aW9uLWZvci10b3VjaFxuLy8gKiBodHRwOi8vY2FuaXVzZS5jb20vI2ZlYXQ9Y3NzLXRvdWNoLWFjdGlvblxuLy8gKiBodHRwczovL3BhdHJpY2tobGF1a2UuZ2l0aHViLmlvL3RvdWNoL3Rlc3RzL3Jlc3VsdHMvI3N1cHByZXNzaW5nLTMwMG1zLWRlbGF5XG5cbmEsXG5hcmVhLFxuYnV0dG9uLFxuW3JvbGU9J2J1dHRvbiddLFxuaW5wdXQ6bm90KFt0eXBlPSdyYW5nZSddKSxcbmxhYmVsLFxuc2VsZWN0LFxuc3VtbWFyeSxcbnRleHRhcmVhIHtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG59XG5cbi8vXG4vLyBUYWJsZXNcbi8vXG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgLy8gUHJldmVudCBkb3VibGUgYm9yZGVyc1xufVxuXG5jYXB0aW9uIHtcbiAgcGFkZGluZy10b3A6IDAuNzVlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuM2VtO1xuICBjb2xvcjogQHRleHQtY29sb3Itc2Vjb25kYXJ5O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjYXB0aW9uLXNpZGU6IGJvdHRvbTtcbn1cblxudGgge1xuICAvLyBNYXRjaGVzIGRlZmF1bHQgYDx0ZD5gIGFsaWdubWVudCBieSBpbmhlcml0aW5nIGZyb20gdGhlIGA8Ym9keT5gLCBvciB0aGVcbiAgLy8gY2xvc2VzdCBwYXJlbnQgd2l0aCBhIHNldCBgdGV4dC1hbGlnbmAuXG4gIHRleHQtYWxpZ246IGluaGVyaXQ7XG59XG5cbi8vXG4vLyBGb3Jtc1xuLy9cblxuaW5wdXQsXG5idXR0b24sXG5zZWxlY3QsXG5vcHRncm91cCxcbnRleHRhcmVhIHtcbiAgbWFyZ2luOiAwOyAvLyByZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmlcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG5idXR0b24sXG5pbnB1dCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyAvLyBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlXG59XG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyAvLyByZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3hcbn1cblxuLy8gMS4gUHJldmVudCBhIFdlYktpdCBidWcgd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gXG4vLyAgICBjb250cm9scyBpbiBBbmRyb2lkIDQuXG4vLyAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuYnV0dG9uLFxuQHtodG1sLXNlbGVjdG9yfSBbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8vIDJcbn1cblxuLy8gcmVtb3ZlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBmcm9tIEZpcmVmb3gsIGJ1dCBkb24ndCByZXN0b3JlIHRoZSBvdXRsaW5lIGxpa2UgTm9ybWFsaXplLlxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9J2J1dHRvbiddOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9J3Jlc2V0J106Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT0nc3VibWl0J106Oi1tb3otZm9jdXMtaW5uZXIge1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbmlucHV0W3R5cGU9J3JhZGlvJ10sXG5pbnB1dFt0eXBlPSdjaGVja2JveCddIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAtXG4gIHBhZGRpbmc6IDA7IC8vIDIuIHJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC1cbn1cblxuaW5wdXRbdHlwZT0nZGF0ZSddLFxuaW5wdXRbdHlwZT0ndGltZSddLFxuaW5wdXRbdHlwZT0nZGF0ZXRpbWUtbG9jYWwnXSxcbmlucHV0W3R5cGU9J21vbnRoJ10ge1xuICAvLyByZW1vdmUgdGhlIGRlZmF1bHQgYXBwZWFyYW5jZSBvZiB0ZW1wb3JhbCBpbnB1dHMgdG8gYXZvaWQgYSBNb2JpbGUgU2FmYXJpXG4gIC8vIGJ1ZyB3aGVyZSBzZXR0aW5nIGEgY3VzdG9tIGxpbmUtaGVpZ2h0IHByZXZlbnRzIHRleHQgZnJvbSBiZWluZyB2ZXJ0aWNhbGx5XG4gIC8vIGNlbnRlcmVkIHdpdGhpbiB0aGUgaW5wdXQuXG4gIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5ODQ4XG4gIC8vIGFuZCBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzExMjY2XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbGlzdGJveDtcbn1cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bzsgLy8gcmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRS5cbiAgLy8gVGV4dGFyZWFzIHNob3VsZCByZWFsbHkgb25seSByZXNpemUgdmVydGljYWxseSBzbyB0aGV5IGRvbid0IGJyZWFrIHRoZWlyIChob3Jpem9udGFsKSBjb250YWluZXJzLlxuICByZXNpemU6IHZlcnRpY2FsO1xufVxuXG5maWVsZHNldCB7XG4gIC8vIEJyb3dzZXJzIHNldCBhIGRlZmF1bHQgYG1pbi13aWR0aDogbWluLWNvbnRlbnQ7YCBvbiBmaWVsZHNldHMsXG4gIC8vIHVubGlrZSBlLmcuIGA8ZGl2PmBzLCB3aGljaCBoYXZlIGBtaW4td2lkdGg6IDA7YCBieSBkZWZhdWx0LlxuICAvLyBTbyB3ZSByZXNldCB0aGF0IHRvIGVuc3VyZSBmaWVsZHNldHMgYmVoYXZlIG1vcmUgbGlrZSBhIHN0YW5kYXJkIGJsb2NrIGVsZW1lbnQuXG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzEyMzU5XG4gIC8vIGFuZCBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS8jdGhlLWZpZWxkc2V0LWFuZC1sZWdlbmQtZWxlbWVudHNcbiAgbWluLXdpZHRoOiAwO1xuICBtYXJnaW46IDA7XG4gIC8vIFJlc2V0IHRoZSBkZWZhdWx0IG91dGxpbmUgYmVoYXZpb3Igb2YgZmllbGRzZXRzIHNvIHRoZXkgZG9uJ3QgYWZmZWN0IHBhZ2UgbGF5b3V0LlxuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG59XG5cbi8vIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4vLyAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG5sZWdlbmQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTsgLy8gMVxuICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcbiAgcGFkZGluZzogMDtcbiAgY29sb3I6IGluaGVyaXQ7IC8vIDJcbiAgZm9udC1zaXplOiAxLjVlbTtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8vIDFcbn1cblxucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8vIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG59XG5cbi8vIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNlbWVudCBhbmQgZGVjZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG5bdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cblt0eXBlPSdzZWFyY2gnXSB7XG4gIC8vIFRoaXMgb3ZlcnJpZGVzIHRoZSBleHRyYSByb3VuZGVkIGNvcm5lcnMgb24gc2VhcmNoIGlucHV0cyBpbiBpT1Mgc28gdGhhdCBvdXJcbiAgLy8gYC5mb3JtLWNvbnRyb2xgIGNsYXNzIGNhbiBwcm9wZXJseSBzdHlsZSB0aGVtLiBOb3RlIHRoYXQgdGhpcyBjYW5ub3Qgc2ltcGx5XG4gIC8vIGJlIGFkZGVkIHRvIGAuZm9ybS1jb250cm9sYCBhcyBpdCdzIG5vdCBzcGVjaWZpYyBlbm91Z2guIEZvciBkZXRhaWxzLCBzZWVcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMTU4Ni5cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8vIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8vXG4vLyByZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgYW5kIGNhbmNlbCBidXR0b25zIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuLy9cblxuW3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuW3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vL1xuLy8gMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbi8vIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbi8vXG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICBmb250OiBpbmhlcml0OyAvLyAyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvLyAxXG59XG5cbi8vXG4vLyBDb3JyZWN0IGVsZW1lbnQgZGlzcGxheXNcbi8vXG5cbm91dHB1dCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTsgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzXG59XG5cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTsgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUVcbn1cblxuLy8gQWx3YXlzIGhpZGUgYW4gZWxlbWVudCB3aXRoIHRoZSBgaGlkZGVuYCBIVE1MIGF0dHJpYnV0ZSAoZnJvbSBQdXJlQ1NTKS5cbi8vIE5lZWRlZCBmb3IgcHJvcGVyIGRpc3BsYXkgaW4gSUUgMTAtLlxuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbm1hcmsge1xuICBwYWRkaW5nOiAwLjJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHllbGxvdy0xO1xufVxuXG46OnNlbGVjdGlvbiB7XG4gIGNvbG9yOiBAdGV4dC1jb2xvci1pbnZlcnNlO1xuICBiYWNrZ3JvdW5kOiBAdGV4dC1zZWxlY3Rpb24tYmc7XG59XG5cbi8vIFV0aWxpdHkgY2xhc3Nlc1xuLmNsZWFyZml4IHtcbiAgLmNsZWFyZml4KCk7XG59XG4iLCIvLyBtaXhpbnMgZm9yIGNsZWFyZml4XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5jbGVhcmZpeCgpIHtcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvMjEzMDEjaXNzdWVjb21tZW50LTU4Mzk1NTIyOVxuICAmOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcnO1xuICB9XG4gICY6OmFmdGVyIHtcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy8yMTg2NFxuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6ICcnO1xuICB9XG59XG4iLCIuaWNvbmZvbnQtbWl4aW4oKSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29sb3I6IEBpY29uLWNvbG9yO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogLTAuMTI1ZW07IC8vIGZvciBTVkcgaWNvbiwgc2VlIGh0dHBzOi8vYmxvZy5wcm90b3R5cHIuaW8vYWxpZ24tc3ZnLWljb25zLXRvLXRleHQtYW5kLXNheS1nb29kYnllLXRvLWZvbnQtaWNvbnMtZDQ0YjNkN2IyNmI0XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXG4gID4gKiB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cblxuICBzdmcge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogbm9uZTsgLy8gZG9udCBkaXNwbGF5IG9sZCBpY29uLlxuICB9XG5cbiAgJiAmLWljb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4iLCJAaW1wb3J0ICcuLi90aGVtZXMvaW5kZXgnO1xuQGltcG9ydCAnLi4vbWl4aW5zL2ljb25mb250JztcblxuLkB7aWNvbmZvbnQtY3NzLXByZWZpeH0ge1xuICAuaWNvbmZvbnQtbWl4aW4oKTtcblxuICAmW3RhYmluZGV4XSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG5cbi5Ae2ljb25mb250LWNzcy1wcmVmaXh9LXNwaW46OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYW5pbWF0aW9uOiBsb2FkaW5nQ2lyY2xlIDFzIGluZmluaXRlIGxpbmVhcjtcbn1cbi5Ae2ljb25mb250LWNzcy1wcmVmaXh9LXNwaW4ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGFuaW1hdGlvbjogbG9hZGluZ0NpcmNsZSAxcyBpbmZpbml0ZSBsaW5lYXI7XG59XG4iLCJAaW1wb3J0ICcuLi90aGVtZXMvaW5kZXgnO1xuXG4ubW90aW9uLWNvbW1vbihAZHVyYXRpb246IEBhbmltYXRpb24tZHVyYXRpb24tYmFzZSkge1xuICBhbmltYXRpb24tZHVyYXRpb246IEBkdXJhdGlvbjtcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbn1cblxuLm1vdGlvbi1jb21tb24tbGVhdmUoQGR1cmF0aW9uOiBAYW5pbWF0aW9uLWR1cmF0aW9uLWJhc2UpIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiBAZHVyYXRpb247XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG59XG5cbi5tYWtlLW1vdGlvbihAY2xhc3NOYW1lLCBAa2V5ZnJhbWVOYW1lLCBAZHVyYXRpb246IEBhbmltYXRpb24tZHVyYXRpb24tYmFzZSkge1xuICAuQHtjbGFzc05hbWV9LWVudGVyLFxuICAuQHtjbGFzc05hbWV9LWFwcGVhciB7XG4gICAgLm1vdGlvbi1jb21tb24oQGR1cmF0aW9uKTtcblxuICAgIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBwYXVzZWQ7XG4gIH1cbiAgLkB7Y2xhc3NOYW1lfS1sZWF2ZSB7XG4gICAgLm1vdGlvbi1jb21tb24tbGVhdmUoQGR1cmF0aW9uKTtcblxuICAgIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBwYXVzZWQ7XG4gIH1cbiAgLkB7Y2xhc3NOYW1lfS1lbnRlci5Ae2NsYXNzTmFtZX0tZW50ZXItYWN0aXZlLFxuICAuQHtjbGFzc05hbWV9LWFwcGVhci5Ae2NsYXNzTmFtZX0tYXBwZWFyLWFjdGl2ZSB7XG4gICAgYW5pbWF0aW9uLW5hbWU6IH4nQHtrZXlmcmFtZU5hbWV9SW4nO1xuICAgIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nO1xuICB9XG4gIC5Ae2NsYXNzTmFtZX0tbGVhdmUuQHtjbGFzc05hbWV9LWxlYXZlLWFjdGl2ZSB7XG4gICAgYW5pbWF0aW9uLW5hbWU6IH4nQHtrZXlmcmFtZU5hbWV9T3V0JztcbiAgICBhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxufVxuIiwiLmZhZGUtbW90aW9uKEBjbGFzc05hbWUsIEBrZXlmcmFtZU5hbWUpIHtcbiAgLm1ha2UtbW90aW9uKEBjbGFzc05hbWUsIEBrZXlmcmFtZU5hbWUpO1xuICAuQHtjbGFzc05hbWV9LWVudGVyLFxuICAuQHtjbGFzc05hbWV9LWFwcGVhciB7XG4gICAgb3BhY2l0eTogMDtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIH1cbiAgLkB7Y2xhc3NOYW1lfS1sZWF2ZSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB9XG59XG5cbi5mYWRlLW1vdGlvbihmYWRlLCBhbnRGYWRlKTtcblxuQGtleWZyYW1lcyBhbnRGYWRlSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYW50RmFkZU91dCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbiIsIi5tb3ZlLW1vdGlvbihAY2xhc3NOYW1lLCBAa2V5ZnJhbWVOYW1lKSB7XG4gIC5tYWtlLW1vdGlvbihAY2xhc3NOYW1lLCBAa2V5ZnJhbWVOYW1lKTtcbiAgLkB7Y2xhc3NOYW1lfS1lbnRlcixcbiAgLkB7Y2xhc3NOYW1lfS1hcHBlYXIge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogQGVhc2Utb3V0LWNpcmM7XG4gIH1cbiAgLkB7Y2xhc3NOYW1lfS1sZWF2ZSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogQGVhc2UtaW4tY2lyYztcbiAgfVxufVxuXG4ubW92ZS1tb3Rpb24obW92ZS11cCwgYW50TW92ZVVwKTtcbi5tb3ZlLW1vdGlvbihtb3ZlLWRvd24sIGFudE1vdmVEb3duKTtcbi5tb3ZlLW1vdGlvbihtb3ZlLWxlZnQsIGFudE1vdmVMZWZ0KTtcbi5tb3ZlLW1vdGlvbihtb3ZlLXJpZ2h0LCBhbnRNb3ZlUmlnaHQpO1xuXG5Aa2V5ZnJhbWVzIGFudE1vdmVEb3duSW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBhbnRNb3ZlRG93bk91dCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGFudE1vdmVMZWZ0SW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYW50TW92ZUxlZnRPdXQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYW50TW92ZVJpZ2h0SW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBhbnRNb3ZlUmlnaHRPdXQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBhbnRNb3ZlVXBJbiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBhbnRNb3ZlVXBPdXQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG4iLCJAa2V5ZnJhbWVzIGxvYWRpbmdDaXJjbGUge1xuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5cbkBjbGljay1hbmltYXRpbmctdHJ1ZTogflwiW0B7YW50LXByZWZpeH0tY2xpY2stYW5pbWF0aW5nPSd0cnVlJ11cIjtcbkBjbGljay1hbmltYXRpbmctd2l0aC1leHRyYS1ub2RlLXRydWU6IH5cIltAe2FudC1wcmVmaXh9LWNsaWNrLWFuaW1hdGluZy13aXRob3V0LWV4dHJhLW5vZGU9J3RydWUnXVwiO1xuXG5Ae2NsaWNrLWFuaW1hdGluZy10cnVlfSxcbkB7Y2xpY2stYW5pbWF0aW5nLXdpdGgtZXh0cmEtbm9kZS10cnVlfSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuaHRtbCB7XG4gIC0tYW50ZC13YXZlLXNoYWRvdy1jb2xvcjogQHByaW1hcnktY29sb3I7XG4gIC0tc2Nyb2xsLWJhcjogMDtcbn1cblxuQGNsaWNrLWFuaW1hdGluZy13aXRoLWV4dHJhLW5vZGUtdHJ1ZS1hZnRlcjogfidAe2NsaWNrLWFuaW1hdGluZy13aXRoLWV4dHJhLW5vZGUtdHJ1ZX06OmFmdGVyJztcblxuQHtjbGljay1hbmltYXRpbmctd2l0aC1leHRyYS1ub2RlLXRydWUtYWZ0ZXJ9LFxuLkB7YW50LXByZWZpeH0tY2xpY2stYW5pbWF0aW5nLW5vZGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAgQHByaW1hcnktY29sb3I7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAgdmFyKC0tYW50ZC13YXZlLXNoYWRvdy1jb2xvcik7XG4gIG9wYWNpdHk6IDAuMjtcbiAgYW5pbWF0aW9uOiBmYWRlRWZmZWN0IDJzIEBlYXNlLW91dC1jaXJjLCB3YXZlRWZmZWN0IDAuNHMgQGVhc2Utb3V0LWNpcmM7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzO1xuICBjb250ZW50OiAnJztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbkBrZXlmcmFtZXMgd2F2ZUVmZmVjdCB7XG4gIDEwMCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIEBwcmltYXJ5LWNvbG9yO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIEB3YXZlLWFuaW1hdGlvbi13aWR0aCB2YXIoLS1hbnRkLXdhdmUtc2hhZG93LWNvbG9yKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVFZmZlY3Qge1xuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG4iLCIuc2xpZGUtbW90aW9uKEBjbGFzc05hbWUsIEBrZXlmcmFtZU5hbWUpIHtcbiAgLm1ha2UtbW90aW9uKEBjbGFzc05hbWUsIEBrZXlmcmFtZU5hbWUpO1xuICAuQHtjbGFzc05hbWV9LWVudGVyLFxuICAuQHtjbGFzc05hbWV9LWFwcGVhciB7XG4gICAgb3BhY2l0eTogMDtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBAZWFzZS1vdXQtcXVpbnQ7XG4gIH1cbiAgLkB7Y2xhc3NOYW1lfS1sZWF2ZSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogQGVhc2UtaW4tcXVpbnQ7XG4gIH1cbn1cblxuLnNsaWRlLW1vdGlvbihzbGlkZS11cCwgYW50U2xpZGVVcCk7XG4uc2xpZGUtbW90aW9uKHNsaWRlLWRvd24sIGFudFNsaWRlRG93bik7XG4uc2xpZGUtbW90aW9uKHNsaWRlLWxlZnQsIGFudFNsaWRlTGVmdCk7XG4uc2xpZGUtbW90aW9uKHNsaWRlLXJpZ2h0LCBhbnRTbGlkZVJpZ2h0KTtcblxuQGtleWZyYW1lcyBhbnRTbGlkZVVwSW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVkoMC44KTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwJSAwJTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKDEpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAlIDAlO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBhbnRTbGlkZVVwT3V0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKDEpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAlIDAlO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVkoMC44KTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwJSAwJTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYW50U2xpZGVEb3duSW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVkoMC44KTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgxKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGFudFNsaWRlRG93bk91dCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgxKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgwLjgpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYW50U2xpZGVMZWZ0SW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC44KTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwJSAwJTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAlIDAlO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBhbnRTbGlkZUxlZnRPdXQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCUgMCU7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjgpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAlIDAlO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBhbnRTbGlkZVJpZ2h0SW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC44KTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDAlO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAwJTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYW50U2xpZGVSaWdodE91dCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDAlO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC44KTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDAlO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbiIsIi56b29tLW1vdGlvbihAY2xhc3NOYW1lLCBAa2V5ZnJhbWVOYW1lLCBAZHVyYXRpb246IEBhbmltYXRpb24tZHVyYXRpb24tYmFzZSkge1xuICAubWFrZS1tb3Rpb24oQGNsYXNzTmFtZSwgQGtleWZyYW1lTmFtZSwgQGR1cmF0aW9uKTtcbiAgLkB7Y2xhc3NOYW1lfS1lbnRlcixcbiAgLkB7Y2xhc3NOYW1lfS1hcHBlYXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7IC8vIG5lZWQgdGhpcyBieSB5aW1pbmdoZVxuICAgIG9wYWNpdHk6IDA7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogQGVhc2Utb3V0LWNpcmM7XG5cbiAgICAmLXByZXBhcmUge1xuICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgIH1cbiAgfVxuICAuQHtjbGFzc05hbWV9LWxlYXZlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBAZWFzZS1pbi1vdXQtY2lyYztcbiAgfVxufVxuXG4vLyBGb3IgTW9kYWwsIFNlbGVjdCBjaG9vc2VuIGl0ZW1cbi56b29tLW1vdGlvbih6b29tLCBhbnRab29tKTtcbi8vIEZvciBQb3BvdmVyLCBQb3Bjb25maXJtLCBEcm9wZG93blxuLnpvb20tbW90aW9uKHpvb20tYmlnLCBhbnRab29tQmlnKTtcbi8vIEZvciBUb29sdGlwXG4uem9vbS1tb3Rpb24oem9vbS1iaWctZmFzdCwgYW50Wm9vbUJpZywgQGFuaW1hdGlvbi1kdXJhdGlvbi1mYXN0KTtcblxuLnpvb20tbW90aW9uKHpvb20tdXAsIGFudFpvb21VcCk7XG4uem9vbS1tb3Rpb24oem9vbS1kb3duLCBhbnRab29tRG93bik7XG4uem9vbS1tb3Rpb24oem9vbS1sZWZ0LCBhbnRab29tTGVmdCk7XG4uem9vbS1tb3Rpb24oem9vbS1yaWdodCwgYW50Wm9vbVJpZ2h0KTtcblxuQGtleWZyYW1lcyBhbnRab29tSW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjIpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYW50Wm9vbU91dCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC4yKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYW50Wm9vbUJpZ0luIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC44KTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGFudFpvb21CaWdPdXQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGFudFpvb21VcEluIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC44KTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMCU7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAwJTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGFudFpvb21VcE91dCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAwJTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDAlO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBhbnRab29tTGVmdEluIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC44KTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwJSA1MCU7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAlIDUwJTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGFudFpvb21MZWZ0T3V0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCUgNTAlO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC44KTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwJSA1MCU7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGFudFpvb21SaWdodEluIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC44KTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDUwJTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSA1MCU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBhbnRab29tUmlnaHRPdXQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDUwJTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSA1MCU7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGFudFpvb21Eb3duSW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAxMDAlO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMTAwJTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGFudFpvb21Eb3duT3V0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDEwMCU7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAxMDAlO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbiIsIkBpbXBvcnQgJy4uL21peGlucy9tb3Rpb24nO1xuQGltcG9ydCAnbW90aW9uL2ZhZGUnO1xuQGltcG9ydCAnbW90aW9uL21vdmUnO1xuQGltcG9ydCAnbW90aW9uL290aGVyJztcbkBpbXBvcnQgJ21vdGlvbi9zbGlkZSc7XG5AaW1wb3J0ICdtb3Rpb24vem9vbSc7XG5cbi8vIEZvciBjb21tb24vb3BlbkFuaW1hdGlvblxuLmFudC1tb3Rpb24tY29sbGFwc2UtbGVnYWN5IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgJi1hY3RpdmUge1xuICAgIHRyYW5zaXRpb246IGhlaWdodCBAYW5pbWF0aW9uLWR1cmF0aW9uLWJhc2UgQGVhc2UtaW4tb3V0LFxuICAgICAgb3BhY2l0eSBAYW5pbWF0aW9uLWR1cmF0aW9uLWJhc2UgQGVhc2UtaW4tb3V0ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLmFudC1tb3Rpb24tY29sbGFwc2Uge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgQGFuaW1hdGlvbi1kdXJhdGlvbi1iYXNlIEBlYXNlLWluLW91dCxcbiAgICBvcGFjaXR5IEBhbmltYXRpb24tZHVyYXRpb24tYmFzZSBAZWFzZS1pbi1vdXQgIWltcG9ydGFudDtcbn1cbiIsIkBpbXBvcnQgJy4vdGhlbWVzL2RlZmF1bHQubGVzcyc7XG5cbi8vIGNkayBvdmVybGF5XG4uY2RrLW92ZXJsYXktY29udGFpbmVyIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAxMDAwO1xufVxuXG4uY2RrLXZpc3VhbGx5LWhpZGRlbiB7XG4gIGJvcmRlcjogMDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBvdXRsaW5lOiAwO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLmNkay1vdmVybGF5LWJhY2tkcm9wIHtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC40cyBjdWJpYy1iZXppZXIoLjI1LCAuOCwgLjI1LCAxKTtcbiAgb3BhY2l0eTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgei1pbmRleDogMTAwMDtcblxuICAmLmFudC1tb2RhbC1tYXNrIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5jZGstb3ZlcmxheS1wYW5lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgei1pbmRleDogMTAwMDsgLy8gR2l2ZSBhbiBvcHBvcnR1bml0eSB0byB0aGUgY29udGVudCBvd24gdG8gbWFuYWdlIHRoZWlyIHotaW5kZXggc3VjaCBhcyBNb2RhbFxufVxuXG4uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTAwMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLXdpZHRoOiAxcHg7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbn1cblxuLy8gVXNlZCB3aGVuIGRpc2FibGluZyBnbG9iYWwgc2Nyb2xsaW5nLlxuLmNkay1nbG9iYWwtc2Nyb2xsYmxvY2sge1xuICBwb3NpdGlvbjogZml4ZWQ7XG5cbiAgLy8gTmVjZXNzYXJ5IGZvciB0aGUgY29udGVudCBub3QgdG8gbG9zZSBpdHMgd2lkdGguIE5vdGUgdGhhdCB3ZSdyZSB1c2luZyAxMDAlLCBpbnN0ZWFkIG9mXG4gIC8vIDEwMHZ3LCBiZWNhdXNlIDEwMHZ3IGluY2x1ZGVzIHRoZSB3aWR0aCBwbHVzIHRoZSBzY3JvbGxiYXIsIHdoZXJlYXMgMTAwJSBpcyB0aGUgd2lkdGhcbiAgLy8gdGhhdCB0aGUgZWxlbWVudCBoYWQgYmVmb3JlIHdlIG1hZGUgaXQgYGZpeGVkYC5cbiAgd2lkdGg6IDEwMCU7XG5cbiAgLy8gTm90ZTogdGhpcyB3aWxsIGFsd2F5cyBhZGQgYSBzY3JvbGxiYXIgdG8gd2hhdGV2ZXIgZWxlbWVudCBpdCBpcyBvbiwgd2hpY2ggY2FuXG4gIC8vIHBvdGVudGlhbGx5IHJlc3VsdCBpbiBkb3VibGUgc2Nyb2xsYmFycy4gSXQgc2hvdWxkbid0IGJlIGFuIGlzc3VlLCBiZWNhdXNlIHdlIHdvbid0XG4gIC8vIGJsb2NrIHNjcm9sbGluZyBvbiBhIHBhZ2UgdGhhdCBkb2Vzbid0IGhhdmUgYSBzY3JvbGxiYXIgaW4gdGhlIGZpcnN0IHBsYWNlLlxuICBvdmVyZmxvdy15OiBzY3JvbGw7XG5cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvbWF0ZXJpYWwyL2lzc3Vlcy8xNTA1MVxuICBib2R5IHtcbiAgICBvdmVyZmxvdy14OiB2aXNpYmxlO1xuICB9XG59XG5cbi5uei1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wIHtcbiAgJiwgJi5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5uei1hbmltYXRlLWRpc2FibGVkIHtcbiAgLy8gZHJhd2VyXG4gICYuYW50LWRyYXdlciB7XG4gICAgJi5hbnQtZHJhd2VyLW9wZW4gLmFudC1kcmF3ZXItbWFzayB7XG4gICAgICBhbmltYXRpb246IG5vbmU7XG4gICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cblxuICAgICYgPiAqIHtcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLy8gbW9kYWxcbiAgLmFudC1tb2RhbC1tYXNrLCAuYW50LW1vZGFsIHtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcblxuICAgICYuem9vbS1lbnRlciwgJi56b29tLWxlYXZlLFxuICAgICYuem9vbS1lbnRlci1hY3RpdmUsICYuem9vbS1sZWF2ZS1hY3RpdmUge1xuICAgICAgYW5pbWF0aW9uOiBub25lO1xuICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBtZW51XG4gICYuYW50LW1lbnUge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG5cbiAgICAuYW50LW1lbnUtaXRlbSwgLmFudC1tZW51LXN1Ym1lbnUtdGl0bGUge1xuICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICAuYW50LW1lbnUtaXRlbSAuYW50aWNvbiwgLmFudC1tZW51LXN1Ym1lbnUtdGl0bGUgLmFudGljb24ge1xuICAgICAgdHJhbnNpdGlvbjogbm9uZTtcblxuICAgICAgJiArIHNwYW4ge1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIHRhYnNcbiAgJi5hbnQtdGFicyB7XG4gICAgLmFudC10YWJzLXRvcC1jb250ZW50LmFudC10YWJzLWNvbnRlbnQtYW5pbWF0ZWQsXG4gICAgLmFudC10YWJzLWJvdHRvbS1jb250ZW50LmFudC10YWJzLWNvbnRlbnQtYW5pbWF0ZWQsXG4gICAgLmFudC10YWJzLXRvcC1jb250ZW50ID4gLmFudC10YWJzLXRhYnBhbmUsXG4gICAgLmFudC10YWJzLWJvdHRvbS1jb250ZW50ID4gLmFudC10YWJzLXRhYnBhbmUsXG4gICAgJi5hbnQtdGFicy1sZWZ0IC5hbnQtdGFicy1pbmstYmFyLWFuaW1hdGVkLFxuICAgICYuYW50LXRhYnMtcmlnaHQgLmFudC10YWJzLWluay1iYXItYW5pbWF0ZWQsXG4gICAgJi5hbnQtdGFicy10b3AgLmFudC10YWJzLWluay1iYXItYW5pbWF0ZWQsXG4gICAgJi5hbnQtdGFicy1ib3R0b20gLmFudC10YWJzLWluay1iYXItYW5pbWF0ZWQge1xuICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBjb2xsYXBzZVxuICAmLmFudC1jb2xsYXBzZSA+IC5hbnQtY29sbGFwc2UtaXRlbSA+IC5hbnQtY29sbGFwc2UtaGVhZGVyIC5hbnQtY29sbGFwc2UtYXJyb3cgc3ZnIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG59XG4iLCJAaW1wb3J0ICcuLi8uLi9zdHlsZS90aGVtZXMvaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vc3R5bGUvbWl4aW5zL2luZGV4JztcbkBpbXBvcnQgJy4vbWl4aW4nO1xuXG5AYnRuLXByZWZpeC1jbHM6IH4nQHthbnQtcHJlZml4fS1idG4nO1xuXG4vLyBmb3IgY29tcGF0aWJsZVxuQGJ0bi1naG9zdC1jb2xvcjogQHRleHQtY29sb3I7XG5AYnRuLWdob3N0LWJnOiB0cmFuc3BhcmVudDtcbkBidG4tZ2hvc3QtYm9yZGVyOiBAYm9yZGVyLWNvbG9yLWJhc2U7XG5cbi8vIEJ1dHRvbiBzdHlsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uQHtidG4tcHJlZml4LWNsc30ge1xuICAvLyBGaXhpbmcgaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvMTI5NzhcbiAgLy8gRml4aW5nIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzIwMDU4XG4gIC8vIEZpeGluZyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy8xOTk3MlxuICAvLyBGaXhpbmcgaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvMTgxMDdcbiAgLy8gRml4aW5nIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzEzMjE0XG4gIC8vIEl0IGlzIGEgcmVuZGVyIHByb2JsZW0gb2YgY2hyb21lLCB3aGljaCBpcyBvbmx5IGhhcHBlbmVkIGluIHRoZSBjb2Rlc2FuZGJveCBkZW1vXG4gIC8vIDAuMDAxcHggc29sdXRpb24gd29ya3MgYW5kIEkgZG9uJ3Qgd2h5XG4gIGxpbmUtaGVpZ2h0OiBAYnRuLWxpbmUtaGVpZ2h0O1xuICAuYnRuKCk7XG4gIC5idG4tZGVmYXVsdCgpO1xuXG4gIC8vIEZpeCBsb2FkaW5nIGJ1dHRvbiBhbmltYXRpb25cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvMjQzMjNcbiAgPiBzcGFuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cblxuICAmLXByaW1hcnkge1xuICAgIC5idG4tcHJpbWFyeSgpO1xuXG4gICAgLkB7YnRuLXByZWZpeC1jbHN9LWdyb3VwICY6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICBib3JkZXItcmlnaHQtY29sb3I6IEBidG4tZ3JvdXAtYm9yZGVyO1xuICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IEBidG4tZ3JvdXAtYm9yZGVyO1xuXG4gICAgICAmOmRpc2FibGVkIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBAYnRuLWRlZmF1bHQtYm9yZGVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5Ae2J0bi1wcmVmaXgtY2xzfS1ncm91cCAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogQGJ0bi1ncm91cC1ib3JkZXI7XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogQGJ0bi1kZWZhdWx0LWJvcmRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5Ae2J0bi1wcmVmaXgtY2xzfS1ncm91cCAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCksXG4gICAgLkB7YnRuLXByZWZpeC1jbHN9LWdyb3VwICYgKyAmIHtcbiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBAYnRuLWdyb3VwLWJvcmRlcjtcblxuICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogQGJ0bi1kZWZhdWx0LWJvcmRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLWdob3N0IHtcbiAgICAuYnRuLWdob3N0KCk7XG4gIH1cblxuICAmLWRhc2hlZCB7XG4gICAgLmJ0bi1kYXNoZWQoKTtcbiAgfVxuXG4gIC8vIHR5cGU9XCJkYW5nZXJcIiB3aWxsIGRlcHJlY2F0ZWRcbiAgLy8gdXNlIGRhbmdlciBpbnN0ZWFkXG4gICYtZGFuZ2VyIHtcbiAgICAuYnRuLWRhbmdlcigpO1xuICB9XG5cbiAgJi1saW5rIHtcbiAgICAuYnRuLWxpbmsoKTtcbiAgfVxuXG4gICYtdGV4dCB7XG4gICAgLmJ0bi10ZXh0KCk7XG4gIH1cblxuICAmLWRhbmdlcm91cyB7XG4gICAgLmJ0bi1kYW5nZXItZGVmYXVsdCgpO1xuICB9XG5cbiAgJi1kYW5nZXJvdXMmLXByaW1hcnkge1xuICAgIC5idG4tZGFuZ2VyKCk7XG4gIH1cblxuICAmLWRhbmdlcm91cyYtbGluayB7XG4gICAgLmJ0bi1kYW5nZXItbGluaygpO1xuICB9XG5cbiAgJi1kYW5nZXJvdXMmLXRleHQge1xuICAgIC5idG4tZGFuZ2VyLXRleHQoKTtcbiAgfVxuXG4gICYtaWNvbi1vbmx5IHtcbiAgICAuYnRuLXNxdWFyZShAYnRuLXByZWZpeC1jbHMpO1xuICAgIHZlcnRpY2FsLWFsaWduOiAtMXB4O1xuICB9XG5cbiAgJi1yb3VuZCB7XG4gICAgLmJ0bi1yb3VuZChAYnRuLXByZWZpeC1jbHMpO1xuICAgICYuQHtidG4tcHJlZml4LWNsc30taWNvbi1vbmx5IHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gICYtY2lyY2xlIHtcbiAgICAuYnRuLWNpcmNsZShAYnRuLXByZWZpeC1jbHMpO1xuICB9XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtQGJ0bi1ib3JkZXItd2lkdGg7XG4gICAgcmlnaHQ6IC1AYnRuLWJvcmRlci13aWR0aDtcbiAgICBib3R0b206IC1AYnRuLWJvcmRlci13aWR0aDtcbiAgICBsZWZ0OiAtQGJ0bi1ib3JkZXItd2lkdGg7XG4gICAgei1pbmRleDogMTtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGJhY2tncm91bmQ6IEBjb21wb25lbnQtYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICAgIG9wYWNpdHk6IDAuMzU7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG5cbiAgLkB7aWNvbmZvbnQtY3NzLXByZWZpeH0ge1xuICAgIHRyYW5zaXRpb246IG1hcmdpbi1sZWZ0IDAuM3MgQGVhc2UtaW4tb3V0O1xuXG4gICAgLy8gRm9sbG93IGljb24gYmx1ciB1bmRlciB3aW5kb3dzLiBDaGFuZ2UgdGhlIHJlbmRlci5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy8xMzkyNFxuICAgICYuQHtpY29uZm9udC1jc3MtcHJlZml4fS1wbHVzLFxuICAgICYuQHtpY29uZm9udC1jc3MtcHJlZml4fS1taW51cyB7XG4gICAgICA+IHN2ZyB7XG4gICAgICAgIHNoYXBlLXJlbmRlcmluZzogb3B0aW1pemVTcGVlZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmJi1sb2FkaW5nIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgJjpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuXG4gICYgPiAmLWxvYWRpbmctaWNvbiB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgQGVhc2UtaW4tb3V0O1xuXG4gICAgLkB7aWNvbmZvbnQtY3NzLXByZWZpeH0ge1xuICAgICAgcGFkZGluZy1yaWdodDogQHBhZGRpbmcteHM7XG4gICAgICBhbmltYXRpb246IG5vbmU7XG4gICAgICAvLyBmb3Igc21vb3RoIGJ1dHRvbiBwYWRkaW5nIHRyYW5zaXRpb25cbiAgICAgIHN2ZyB7XG4gICAgICAgIGFuaW1hdGlvbjogbG9hZGluZ0NpcmNsZSAxcyBpbmZpbml0ZSBsaW5lYXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpvbmx5LWNoaWxkIHtcbiAgICAgIC5Ae2ljb25mb250LWNzcy1wcmVmaXh9IHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLWdyb3VwIHtcbiAgICAuYnRuLWdyb3VwKEBidG4tcHJlZml4LWNscyk7XG4gIH1cblxuICAvLyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8yMTI4MTU1NC8zMDQwNjA1XG4gICY6Zm9jdXMgPiBzcGFuLFxuICAmOmFjdGl2ZSA+IHNwYW4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC8vIFRvIGVuc3VyZSB0aGF0IGEgc3BhY2Ugd2lsbCBiZSBwbGFjZWQgYmV0d2VlbiBjaGFyYWN0ZXIgYW5kIGBJY29uYC5cbiAgPiAuQHtpY29uZm9udC1jc3MtcHJlZml4fSArIHNwYW4sXG4gID4gc3BhbiArIC5Ae2ljb25mb250LWNzcy1wcmVmaXh9IHtcbiAgICBtYXJnaW4tbGVmdDogQG1hcmdpbi14cztcbiAgfVxuXG4gICYtYmFja2dyb3VuZC1naG9zdCB7XG4gICAgY29sb3I6IEBidG4tZGVmYXVsdC1naG9zdC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kOiBAYnRuLWRlZmF1bHQtZ2hvc3QtYmcgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IEBidG4tZGVmYXVsdC1naG9zdC1ib3JkZXI7XG4gIH1cblxuICAmLWJhY2tncm91bmQtZ2hvc3QmLXByaW1hcnkge1xuICAgIC5idXR0b24tdmFyaWFudC1naG9zdChAYnRuLXByaW1hcnktYmcpO1xuICB9XG5cbiAgJi1iYWNrZ3JvdW5kLWdob3N0Ji1kYW5nZXIge1xuICAgIC5idXR0b24tdmFyaWFudC1naG9zdChAYnRuLWRhbmdlci1ib3JkZXIpO1xuICB9XG5cbiAgJi1iYWNrZ3JvdW5kLWdob3N0Ji1kYW5nZXJvdXMge1xuICAgIC5idXR0b24tdmFyaWFudC1naG9zdChAYnRuLWRhbmdlci1ib3JkZXIpO1xuICB9XG5cbiAgJi1iYWNrZ3JvdW5kLWdob3N0Ji1kYW5nZXJvdXMmLWxpbmsge1xuICAgIC5idXR0b24tdmFyaWFudC1naG9zdChAYnRuLWRhbmdlci1ib3JkZXIsIHRyYW5zcGFyZW50KTtcbiAgfVxuXG4gICYtdHdvLWNoaW5lc2UtY2hhcnM6OmZpcnN0LWxldHRlciB7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMzRlbTtcbiAgfVxuXG4gICYtdHdvLWNoaW5lc2UtY2hhcnMgPiAqOm5vdCguQHtpY29uZm9udC1jc3MtcHJlZml4fSkge1xuICAgIG1hcmdpbi1yaWdodDogLTAuMzRlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4zNGVtO1xuICB9XG5cbiAgJi1ibG9jayB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy8xMjY4MVxuICAvLyBzYW1lIG1ldGhvZCBhcyBTZWxlY3RcbiAgJjplbXB0eSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBjb250ZW50OiAnXFxhMCc7XG4gIH1cbn1cblxuYS5Ae2J0bi1wcmVmaXgtY2xzfSB7XG4gIC8vIEZpeGluZyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy8xMjk3OFxuICAvLyBJdCBpcyBhIHJlbmRlciBwcm9ibGVtIG9mIGNocm9tZSwgd2hpY2ggaXMgb25seSBoYXBwZW5lZCBpbiB0aGUgY29kZXNhbmRib3ggZGVtb1xuICAvLyAwLjFweCBmb3IgcGFkZGluZy10b3Agc29sdXRpb24gd29ya3MgYW5kIEkgZG9uJ3Qgd2h5XG4gIHBhZGRpbmctdG9wOiAwLjFweDtcbiAgbGluZS1oZWlnaHQ6IEBidG4taGVpZ2h0LWJhc2UgLSAycHg7XG5cbiAgJi1sZyB7XG4gICAgbGluZS1oZWlnaHQ6IEBidG4taGVpZ2h0LWxnIC0gMnB4O1xuICB9XG4gICYtc20ge1xuICAgIGxpbmUtaGVpZ2h0OiBAYnRuLWhlaWdodC1zbSAtIDJweDtcbiAgfVxufVxuXG5AaW1wb3J0ICcuL3J0bCc7XG4iLCIvLyBtaXhpbnMgZm9yIGJ1dHRvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uYnV0dG9uLXNpemUoQGhlaWdodDsgQHBhZGRpbmctaG9yaXpvbnRhbDsgQGZvbnQtc2l6ZTsgQGJvcmRlci1yYWRpdXMpIHtcbiAgQHBhZGRpbmctdmVydGljYWw6IG1heChcbiAgICAocm91bmQoKChAaGVpZ2h0IC0gQGZvbnQtc2l6ZSAqIEBsaW5lLWhlaWdodC1iYXNlKSAvIDIpICogMTApIC8gMTApIC0gQGJvcmRlci13aWR0aC1iYXNlLFxuICAgIDBcbiAgKTtcbiAgaGVpZ2h0OiBAaGVpZ2h0O1xuICBwYWRkaW5nOiBAcGFkZGluZy12ZXJ0aWNhbCBAcGFkZGluZy1ob3Jpem9udGFsO1xuICBmb250LXNpemU6IEBmb250LXNpemU7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzO1xufVxuXG4uYnV0dG9uLWRpc2FibGVkKEBjb2xvcjogQGJ0bi1kaXNhYmxlLWNvbG9yOyBAYmFja2dyb3VuZDogQGJ0bi1kaXNhYmxlLWJnOyBAYm9yZGVyOiBAYnRuLWRpc2FibGUtYm9yZGVyKSB7XG4gICZbZGlzYWJsZWRdIHtcbiAgICAmLFxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAuYnV0dG9uLWNvbG9yKEBjb2xvcjsgQGJhY2tncm91bmQ7IEBib3JkZXIpO1xuXG4gICAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi5idXR0b24tdmFyaWFudC1wcmltYXJ5KEBjb2xvcjsgQGJhY2tncm91bmQpIHtcbiAgLmJ1dHRvbi1jb2xvcihAY29sb3I7IEBiYWNrZ3JvdW5kOyBAYmFja2dyb3VuZCk7XG5cbiAgdGV4dC1zaGFkb3c6IEBidG4tdGV4dC1zaGFkb3c7XG4gIGJveC1zaGFkb3c6IEBidG4tcHJpbWFyeS1zaGFkb3c7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgJiB3aGVuIChAdGhlbWUgPSBkYXJrKSB7XG4gICAgICAuYnV0dG9uLWNvbG9yKFxuICAgICAgICBAY29sb3I7IH5gY29sb3JQYWxldHRlKCdAe2JhY2tncm91bmR9JywgNykgYDsgfmBjb2xvclBhbGV0dGUoJ0B7YmFja2dyb3VuZH0nLCA3KSBgXG4gICAgICApO1xuICAgIH1cbiAgICAmIHdoZW4gbm90IChAdGhlbWUgPSBkYXJrKSB7XG4gICAgICAuYnV0dG9uLWNvbG9yKFxuICAgICAgICBAY29sb3I7IH5gY29sb3JQYWxldHRlKCdAe2JhY2tncm91bmR9JywgNSkgYDsgfmBjb2xvclBhbGV0dGUoJ0B7YmFja2dyb3VuZH0nLCA1KSBgXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlIHtcbiAgICAmIHdoZW4gKEB0aGVtZSA9IGRhcmspIHtcbiAgICAgIC5idXR0b24tY29sb3IoXG4gICAgICAgIEBjb2xvcjsgfmBjb2xvclBhbGV0dGUoJ0B7YmFja2dyb3VuZH0nLCA1KSBgOyB+YGNvbG9yUGFsZXR0ZSgnQHtiYWNrZ3JvdW5kfScsIDUpIGBcbiAgICAgICk7XG4gICAgfVxuICAgICYgd2hlbiBub3QgKEB0aGVtZSA9IGRhcmspIHtcbiAgICAgIC5idXR0b24tY29sb3IoXG4gICAgICAgIEBjb2xvcjsgfmBjb2xvclBhbGV0dGUoJ0B7YmFja2dyb3VuZH0nLCA3KSBgOyB+YGNvbG9yUGFsZXR0ZSgnQHtiYWNrZ3JvdW5kfScsIDcpIGBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLmJ1dHRvbi1kaXNhYmxlZCgpO1xufVxuXG4uYnV0dG9uLXZhcmlhbnQtb3RoZXIoQGNvbG9yOyBAYmFja2dyb3VuZDsgQGJvcmRlcikge1xuICAuYnV0dG9uLWNvbG9yKEBjb2xvcjsgQGJhY2tncm91bmQ7IEBib3JkZXIpO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgICYgd2hlbiAoQHRoZW1lID0gZGFyaykge1xuICAgICAgLmJ1dHRvbi1jb2xvcihAcHJpbWFyeS01OyBAYmFja2dyb3VuZDsgQHByaW1hcnktNSk7XG4gICAgfVxuICAgICYgd2hlbiBub3QgKEB0aGVtZSA9IGRhcmspIHtcbiAgICAgIC5idXR0b24tY29sb3IoXG4gICAgICAgIH5gY29sb3JQYWxldHRlKCdAe2J0bi1wcmltYXJ5LWJnfScsIDUpIGA7IEBiYWNrZ3JvdW5kO1xuICAgICAgICAgIH5gY29sb3JQYWxldHRlKCdAe2J0bi1wcmltYXJ5LWJnfScsIDUpIGBcbiAgICAgICk7XG4gICAgfVxuICB9XG4gICY6YWN0aXZlIHtcbiAgICAmIHdoZW4gKEB0aGVtZSA9IGRhcmspIHtcbiAgICAgIC5idXR0b24tY29sb3IoQHByaW1hcnktNzsgQGJhY2tncm91bmQ7IEBwcmltYXJ5LTcpO1xuICAgIH1cbiAgICAmIHdoZW4gbm90IChAdGhlbWUgPSBkYXJrKSB7XG4gICAgICAuYnV0dG9uLWNvbG9yKFxuICAgICAgICB+YGNvbG9yUGFsZXR0ZSgnQHtidG4tcHJpbWFyeS1iZ30nLCA3KSBgOyBAYmFja2dyb3VuZDtcbiAgICAgICAgICB+YGNvbG9yUGFsZXR0ZSgnQHtidG4tcHJpbWFyeS1iZ30nLCA3KSBgXG4gICAgICApO1xuICAgIH1cbiAgfVxuICAuYnV0dG9uLWRpc2FibGVkKCk7XG59XG4uYnV0dG9uLXZhcmlhbnQtZ2hvc3QoQGNvbG9yOyBAYm9yZGVyOiBAY29sb3IpIHtcbiAgLmJ1dHRvbi1jb2xvcihAY29sb3I7IHRyYW5zcGFyZW50OyBAYm9yZGVyKTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgICYgd2hlbiAoQGJvcmRlciA9IHRyYW5zcGFyZW50KSB7XG4gICAgICAmIHdoZW4gKEB0aGVtZSA9IGRhcmspIHtcbiAgICAgICAgLmJ1dHRvbi1jb2xvcih+YGNvbG9yUGFsZXR0ZSgnQHtjb2xvcn0nLCA3KSBgOyB0cmFuc3BhcmVudDsgdHJhbnNwYXJlbnQpO1xuICAgICAgfVxuICAgICAgJiB3aGVuIG5vdCAoQHRoZW1lID0gZGFyaykge1xuICAgICAgICAuYnV0dG9uLWNvbG9yKH5gY29sb3JQYWxldHRlKCdAe2NvbG9yfScsIDUpIGA7IHRyYW5zcGFyZW50OyB0cmFuc3BhcmVudCk7XG4gICAgICB9XG4gICAgfVxuICAgICYgd2hlbiBub3QgKEBib3JkZXIgPSB0cmFuc3BhcmVudCkge1xuICAgICAgJiB3aGVuIChAdGhlbWUgPSBkYXJrKSB7XG4gICAgICAgIC5idXR0b24tY29sb3IoXG4gICAgICAgICAgfmBjb2xvclBhbGV0dGUoJ0B7Y29sb3J9JywgNykgYDsgdHJhbnNwYXJlbnQ7IH5gY29sb3JQYWxldHRlKCdAe2NvbG9yfScsIDcpIGBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgICYgd2hlbiBub3QgKEB0aGVtZSA9IGRhcmspIHtcbiAgICAgICAgLmJ1dHRvbi1jb2xvcihcbiAgICAgICAgICB+YGNvbG9yUGFsZXR0ZSgnQHtjb2xvcn0nLCA1KSBgOyB0cmFuc3BhcmVudDsgfmBjb2xvclBhbGV0dGUoJ0B7Y29sb3J9JywgNSkgYFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAmOmFjdGl2ZSB7XG4gICAgJiB3aGVuIChAYm9yZGVyID0gdHJhbnNwYXJlbnQpIHtcbiAgICAgICYgd2hlbiAoQHRoZW1lID0gZGFyaykge1xuICAgICAgICAuYnV0dG9uLWNvbG9yKH5gY29sb3JQYWxldHRlKCdAe2NvbG9yfScsIDUpIGA7IHRyYW5zcGFyZW50OyB0cmFuc3BhcmVudCk7XG4gICAgICB9XG4gICAgICAmIHdoZW4gbm90IChAdGhlbWUgPSBkYXJrKSB7XG4gICAgICAgIC5idXR0b24tY29sb3IofmBjb2xvclBhbGV0dGUoJ0B7Y29sb3J9JywgNykgYDsgdHJhbnNwYXJlbnQ7IHRyYW5zcGFyZW50KTtcbiAgICAgIH1cbiAgICB9XG4gICAgJiB3aGVuIG5vdChAYm9yZGVyID0gdHJhbnNwYXJlbnQpIHtcbiAgICAgICYgd2hlbiAoQHRoZW1lID0gZGFyaykge1xuICAgICAgICAuYnV0dG9uLWNvbG9yKFxuICAgICAgICAgIH5gY29sb3JQYWxldHRlKCdAe2NvbG9yfScsIDUpIGA7IHRyYW5zcGFyZW50OyB+YGNvbG9yUGFsZXR0ZSgnQHtjb2xvcn0nLCA1KSBgXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICAmIHdoZW4gbm90IChAdGhlbWUgPSBkYXJrKSB7XG4gICAgICAgIC5idXR0b24tY29sb3IoXG4gICAgICAgICAgfmBjb2xvclBhbGV0dGUoJ0B7Y29sb3J9JywgNykgYDsgdHJhbnNwYXJlbnQ7IH5gY29sb3JQYWxldHRlKCdAe2NvbG9yfScsIDcpIGBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLmJ1dHRvbi1kaXNhYmxlZCgpO1xufVxuLmJ1dHRvbi1jb2xvcihAY29sb3I7IEBiYWNrZ3JvdW5kOyBAYm9yZGVyKSB7XG4gIGNvbG9yOiBAY29sb3I7XG4gIGJhY2tncm91bmQ6IEBiYWNrZ3JvdW5kO1xuICBib3JkZXItY29sb3I6IEBib3JkZXI7IC8vIGEgaW5zaWRlIEJ1dHRvbiB3aGljaCBvbmx5IHdvcmsgaW4gQ2hyb21lXG4gIC8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzE3MjUzNDU3XG4gID4gYTpvbmx5LWNoaWxkIHtcbiAgICBjb2xvcjogY3VycmVudENvbG9yO1xuICAgICY6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgY29udGVudDogJyc7XG4gICAgfVxuICB9XG59XG4uYnV0dG9uLWdyb3VwLWJhc2UoQGJ0bkNsYXNzTmFtZSkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICA+IC5Ae2J0bkNsYXNzTmFtZX0sXG4gID4gc3BhbiA+IC5Ae2J0bkNsYXNzTmFtZX0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUge1xuICAgICAgei1pbmRleDogMjtcbiAgICB9XG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgei1pbmRleDogMDtcbiAgICB9XG4gIH1cbiAgLkB7YnRuQ2xhc3NOYW1lfS1pY29uLW9ubHkge1xuICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1iYXNlO1xuICB9XG4gIC8vIHNpemVcbiAgJi1sZyA+IC5Ae2J0bkNsYXNzTmFtZX0sXG4gICYtbGcgPiBzcGFuID4gLkB7YnRuQ2xhc3NOYW1lfSB7XG4gICAgLmJ1dHRvbi1zaXplKEBidG4taGVpZ2h0LWxnOyBAYnRuLXBhZGRpbmctaG9yaXpvbnRhbC1sZzsgQGJ0bi1mb250LXNpemUtbGc7IDApO1xuICB9XG4gICYtbGcgLkB7YnRuQ2xhc3NOYW1lfS5Ae2J0bkNsYXNzTmFtZX0taWNvbi1vbmx5IHtcbiAgICAuc3F1YXJlKEBidG4taGVpZ2h0LWxnKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuICAmLXNtID4gLkB7YnRuQ2xhc3NOYW1lfSxcbiAgJi1zbSA+IHNwYW4gPiAuQHtidG5DbGFzc05hbWV9IHtcbiAgICAuYnV0dG9uLXNpemUoQGJ0bi1oZWlnaHQtc207IEBidG4tcGFkZGluZy1ob3Jpem9udGFsLXNtOyBAZm9udC1zaXplLWJhc2U7IDApO1xuICAgID4gLkB7aWNvbmZvbnQtY3NzLXByZWZpeH0ge1xuICAgICAgZm9udC1zaXplOiBAZm9udC1zaXplLWJhc2U7XG4gICAgfVxuICB9XG4gICYtc20gLkB7YnRuQ2xhc3NOYW1lfS5Ae2J0bkNsYXNzTmFtZX0taWNvbi1vbmx5IHtcbiAgICAuc3F1YXJlKEBidG4taGVpZ2h0LXNtKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxufVxuLy8gQmFzZSBzdHlsZXMgb2YgYnV0dG9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5idG4oKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXdlaWdodDogQGJ0bi1mb250LXdlaWdodDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3JkZXI6IEBidG4tYm9yZGVyLXdpZHRoIEBidG4tYm9yZGVyLXN0eWxlIHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiBAYnRuLXNoYWRvdztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBAZWFzZS1pbi1vdXQ7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgLmJ1dHRvbi1zaXplKFxuICAgIEBidG4taGVpZ2h0LWJhc2U7IEBidG4tcGFkZGluZy1ob3Jpem9udGFsLWJhc2U7IEBmb250LXNpemUtYmFzZTsgQGJ0bi1ib3JkZXItcmFkaXVzLWJhc2VcbiAgKTtcbiAgPiAuQHtpY29uZm9udC1jc3MtcHJlZml4fSB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cbiAgJixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbiAgJjpub3QoW2Rpc2FibGVkXSk6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuICAmOm5vdChbZGlzYWJsZWRdKTphY3RpdmUge1xuICAgIG91dGxpbmU6IDA7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICA+ICoge1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICB9XG4gICYtbGcge1xuICAgIC5idXR0b24tc2l6ZShcbiAgICAgIEBidG4taGVpZ2h0LWxnOyBAYnRuLXBhZGRpbmctaG9yaXpvbnRhbC1sZzsgQGJ0bi1mb250LXNpemUtbGc7IEBidG4tYm9yZGVyLXJhZGl1cy1iYXNlXG4gICAgKTtcbiAgfVxuICAmLXNtIHtcbiAgICAuYnV0dG9uLXNpemUoXG4gICAgICBAYnRuLWhlaWdodC1zbTsgQGJ0bi1wYWRkaW5nLWhvcml6b250YWwtc207IEBidG4tZm9udC1zaXplLXNtOyBAYnRuLWJvcmRlci1yYWRpdXMtc21cbiAgICApO1xuICB9XG59XG4vLyBwcmltYXJ5IGJ1dHRvbiBzdHlsZVxuLmJ0bi1wcmltYXJ5KCkge1xuICAuYnV0dG9uLXZhcmlhbnQtcHJpbWFyeShAYnRuLXByaW1hcnktY29sb3I7IEBidG4tcHJpbWFyeS1iZyk7XG59XG4vLyBkZWZhdWx0IGJ1dHRvbiBzdHlsZVxuLmJ0bi1kZWZhdWx0KCkge1xuICAuYnV0dG9uLXZhcmlhbnQtb3RoZXIoQGJ0bi1kZWZhdWx0LWNvbG9yOyBAYnRuLWRlZmF1bHQtYmc7IEBidG4tZGVmYXVsdC1ib3JkZXIpO1xuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJhY2tncm91bmQ6IEBidG4tZGVmYXVsdC1iZztcbiAgfVxufVxuLy8gZ2hvc3QgYnV0dG9uIHN0eWxlXG4uYnRuLWdob3N0KCkge1xuICAuYnV0dG9uLXZhcmlhbnQtb3RoZXIoQGJ0bi1naG9zdC1jb2xvciwgQGJ0bi1naG9zdC1iZywgQGJ0bi1naG9zdC1ib3JkZXIpO1xufVxuLy8gZGFzaGVkIGJ1dHRvbiBzdHlsZVxuLmJ0bi1kYXNoZWQoKSB7XG4gIC5idXR0b24tdmFyaWFudC1vdGhlcihAYnRuLWRlZmF1bHQtY29sb3IsIEBidG4tZGVmYXVsdC1iZywgQGJ0bi1kZWZhdWx0LWJvcmRlcik7XG4gIGJvcmRlci1zdHlsZTogZGFzaGVkO1xufVxuLy8gZGFuZ2VyIGJ1dHRvbiBzdHlsZVxuLmJ0bi1kYW5nZXIoKSB7XG4gIC5idXR0b24tdmFyaWFudC1wcmltYXJ5KEBidG4tZGFuZ2VyLWNvbG9yLCBAYnRuLWRhbmdlci1iZyk7XG59XG4vLyBkYW5nZXIgZGVmYXVsdCBidXR0b24gc3R5bGVcbi5idG4tZGFuZ2VyLWRlZmF1bHQoKSB7XG4gIC5idXR0b24tY29sb3IoQGVycm9yLWNvbG9yLCBAYnRuLWRlZmF1bHQtYmcsIEBlcnJvci1jb2xvcik7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgICYgd2hlbiAoQHRoZW1lID0gZGFyaykge1xuICAgICAgLmJ1dHRvbi1jb2xvcihcbiAgICAgICAgfmBjb2xvclBhbGV0dGUoJ0B7ZXJyb3ItY29sb3J9JywgNykgYDsgQGJ0bi1kZWZhdWx0LWJnOyB+YGNvbG9yUGFsZXR0ZSgnQHtlcnJvci1jb2xvcn0nLCA3KVxuICAgICAgICAgIGBcbiAgICAgICk7XG4gICAgfVxuICAgICYgd2hlbiBub3QgKEB0aGVtZSA9IGRhcmspIHtcbiAgICAgIC5idXR0b24tY29sb3IoXG4gICAgICAgIH5gY29sb3JQYWxldHRlKCdAe2Vycm9yLWNvbG9yfScsIDUpIGA7IEBidG4tZGVmYXVsdC1iZzsgfmBjb2xvclBhbGV0dGUoJ0B7ZXJyb3ItY29sb3J9JywgNSlcbiAgICAgICAgICBgXG4gICAgICApO1xuICAgIH1cbiAgfVxuICAmOmFjdGl2ZSB7XG4gICAgJiB3aGVuIChAdGhlbWUgPSBkYXJrKSB7XG4gICAgICAuYnV0dG9uLWNvbG9yKFxuICAgICAgICB+YGNvbG9yUGFsZXR0ZSgnQHtlcnJvci1jb2xvcn0nLCA1KSBgOyBAYnRuLWRlZmF1bHQtYmc7IH5gY29sb3JQYWxldHRlKCdAe2Vycm9yLWNvbG9yfScsIDUpXG4gICAgICAgICAgYFxuICAgICAgKTtcbiAgICB9XG4gICAgJiB3aGVuIG5vdCAoQHRoZW1lID0gZGFyaykge1xuICAgICAgLmJ1dHRvbi1jb2xvcihcbiAgICAgICAgfmBjb2xvclBhbGV0dGUoJ0B7ZXJyb3ItY29sb3J9JywgNykgYDsgQGJ0bi1kZWZhdWx0LWJnOyB+YGNvbG9yUGFsZXR0ZSgnQHtlcnJvci1jb2xvcn0nLCA3KVxuICAgICAgICAgIGBcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIC5idXR0b24tZGlzYWJsZWQoKTtcbn1cbi8vIGRhbmdlciBsaW5rIGJ1dHRvbiBzdHlsZVxuLmJ0bi1kYW5nZXItbGluaygpIHtcbiAgLmJ1dHRvbi12YXJpYW50LW90aGVyKEBlcnJvci1jb2xvciwgdHJhbnNwYXJlbnQsIHRyYW5zcGFyZW50KTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgJiB3aGVuIChAdGhlbWUgPSBkYXJrKSB7XG4gICAgICAuYnV0dG9uLWNvbG9yKH5gY29sb3JQYWxldHRlKCdAe2Vycm9yLWNvbG9yfScsIDcpIGA7IHRyYW5zcGFyZW50OyB0cmFuc3BhcmVudCk7XG4gICAgfVxuICAgICYgd2hlbiBub3QgKEB0aGVtZSA9IGRhcmspIHtcbiAgICAgIC5idXR0b24tY29sb3IofmBjb2xvclBhbGV0dGUoJ0B7ZXJyb3ItY29sb3J9JywgNSkgYDsgdHJhbnNwYXJlbnQ7IHRyYW5zcGFyZW50KTtcbiAgICB9XG4gIH1cbiAgJjphY3RpdmUge1xuICAgICYgd2hlbiAoQHRoZW1lID0gZGFyaykge1xuICAgICAgLmJ1dHRvbi1jb2xvcih+YGNvbG9yUGFsZXR0ZSgnQHtlcnJvci1jb2xvcn0nLCA1KSBgOyB0cmFuc3BhcmVudDsgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgICAmIHdoZW4gbm90IChAdGhlbWUgPSBkYXJrKSB7XG4gICAgICAuYnV0dG9uLWNvbG9yKH5gY29sb3JQYWxldHRlKCdAe2Vycm9yLWNvbG9yfScsIDcpIGA7IHRyYW5zcGFyZW50OyB0cmFuc3BhcmVudCk7XG4gICAgfVxuICB9XG4gIC5idXR0b24tZGlzYWJsZWQoQGRpc2FibGVkLWNvbG9yOyB0cmFuc3BhcmVudDsgdHJhbnNwYXJlbnQpO1xufVxuLy8gbGluayBidXR0b24gc3R5bGVcbi5idG4tbGluaygpIHtcbiAgLmJ1dHRvbi12YXJpYW50LW90aGVyKEBsaW5rLWNvbG9yLCB0cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQpO1xuICBib3gtc2hhZG93OiBub25lO1xuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBAYnRuLWxpbmstaG92ZXItYmc7XG4gIH1cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbiAgLmJ1dHRvbi1kaXNhYmxlZChAZGlzYWJsZWQtY29sb3I7IHRyYW5zcGFyZW50OyB0cmFuc3BhcmVudCk7XG59XG4vLyB0ZXh0IGJ1dHRvbiBzdHlsZVxuLmJ0bi10ZXh0KCkge1xuICAuYnV0dG9uLXZhcmlhbnQtb3RoZXIoQHRleHQtY29sb3IsIHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiBAdGV4dC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kOiBAYnRuLXRleHQtaG92ZXItYmc7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gICY6YWN0aXZlIHtcbiAgICBjb2xvcjogQHRleHQtY29sb3I7XG4gICAgYmFja2dyb3VuZDogZmFkZWluKEBidG4tdGV4dC1ob3Zlci1iZywgMSUpO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAuYnV0dG9uLWRpc2FibGVkKEBkaXNhYmxlZC1jb2xvcjsgdHJhbnNwYXJlbnQ7IHRyYW5zcGFyZW50KTtcbn1cbi5idG4tZGFuZ2VyLXRleHQoKSB7XG4gIC5idXR0b24tdmFyaWFudC1vdGhlcihAZXJyb3ItY29sb3IsIHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgICYgd2hlbiAoQHRoZW1lID0gZGFyaykge1xuICAgICAgLmJ1dHRvbi1jb2xvcih+YGNvbG9yUGFsZXR0ZSgnQHtlcnJvci1jb2xvcn0nLCA3KSBgOyBAYnRuLXRleHQtaG92ZXItYmc7IHRyYW5zcGFyZW50KTtcbiAgICB9XG4gICAgJiB3aGVuIG5vdCAoQHRoZW1lID0gZGFyaykge1xuICAgICAgLmJ1dHRvbi1jb2xvcih+YGNvbG9yUGFsZXR0ZSgnQHtlcnJvci1jb2xvcn0nLCA1KSBgOyBAYnRuLXRleHQtaG92ZXItYmc7IHRyYW5zcGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZSB7XG4gICAgJiB3aGVuIChAdGhlbWUgPSBkYXJrKSB7XG4gICAgICAuYnV0dG9uLWNvbG9yKH5gY29sb3JQYWxldHRlKCdAe2Vycm9yLWNvbG9yfScsIDUpIGA7IGZhZGVpbihAYnRuLXRleHQtaG92ZXItYmcsIDElKTsgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgICAmIHdoZW4gbm90IChAdGhlbWUgPSBkYXJrKSB7XG4gICAgICAuYnV0dG9uLWNvbG9yKH5gY29sb3JQYWxldHRlKCdAe2Vycm9yLWNvbG9yfScsIDcpIGA7IGZhZGVpbihAYnRuLXRleHQtaG92ZXItYmcsIDElKTsgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuICAuYnV0dG9uLWRpc2FibGVkKEBkaXNhYmxlZC1jb2xvcjsgdHJhbnNwYXJlbnQ7IHRyYW5zcGFyZW50KTtcbn1cbi8vIHJvdW5kIGJ1dHRvblxuLmJ0bi1yb3VuZChAYnRuQ2xhc3NOYW1lOiBidG4pIHtcbiAgLmJ1dHRvbi1zaXplKEBidG4tY2lyY2xlLXNpemU7IChAYnRuLWNpcmNsZS1zaXplIC8gMik7IEBmb250LXNpemUtYmFzZTsgQGJ0bi1jaXJjbGUtc2l6ZSk7XG4gICYuQHtidG5DbGFzc05hbWV9LWxnIHtcbiAgICAuYnV0dG9uLXNpemUoXG4gICAgICBAYnRuLWNpcmNsZS1zaXplLWxnOyAoQGJ0bi1jaXJjbGUtc2l6ZS1sZyAvIDIpOyBAYnRuLWZvbnQtc2l6ZS1sZzsgQGJ0bi1jaXJjbGUtc2l6ZS1sZ1xuICAgICk7XG4gIH1cbiAgJi5Ae2J0bkNsYXNzTmFtZX0tc20ge1xuICAgIC5idXR0b24tc2l6ZShcbiAgICAgIEBidG4tY2lyY2xlLXNpemUtc207IChAYnRuLWNpcmNsZS1zaXplLXNtIC8gMik7IEBmb250LXNpemUtYmFzZTsgQGJ0bi1jaXJjbGUtc2l6ZS1zbVxuICAgICk7XG4gIH1cbn1cbi8vIHNxdWFyZSBidXR0b246IHRoZSBjb250ZW50IG9ubHkgY29udGFpbnMgaWNvblxuLmJ0bi1zcXVhcmUoQGJ0bkNsYXNzTmFtZTogYnRuKSB7XG4gIC5zcXVhcmUoQGJ0bi1zcXVhcmUtc2l6ZSk7XG4gIC5idXR0b24tc2l6ZShAYnRuLXNxdWFyZS1zaXplOyAwOyBAYnRuLXNxdWFyZS1vbmx5LWljb24tc2l6ZTsgQGJ0bi1ib3JkZXItcmFkaXVzLWJhc2UpO1xuICAmID4gKiB7XG4gICAgZm9udC1zaXplOiBAYnRuLXNxdWFyZS1vbmx5LWljb24tc2l6ZTtcbiAgfVxuICAmLkB7YnRuQ2xhc3NOYW1lfS1sZyB7XG4gICAgLnNxdWFyZShAYnRuLXNxdWFyZS1zaXplLWxnKTtcbiAgICAuYnV0dG9uLXNpemUoQGJ0bi1zcXVhcmUtc2l6ZS1sZzsgMDsgQGJ0bi1zcXVhcmUtb25seS1pY29uLXNpemUtbGc7IEBidG4tYm9yZGVyLXJhZGl1cy1iYXNlKTtcbiAgICAmID4gKiB7XG4gICAgICBmb250LXNpemU6IEBidG4tc3F1YXJlLW9ubHktaWNvbi1zaXplLWxnO1xuICAgIH1cbiAgfVxuICAmLkB7YnRuQ2xhc3NOYW1lfS1zbSB7XG4gICAgLnNxdWFyZShAYnRuLXNxdWFyZS1zaXplLXNtKTtcbiAgICAuYnV0dG9uLXNpemUoQGJ0bi1zcXVhcmUtc2l6ZS1zbTsgMDsgQGJ0bi1zcXVhcmUtb25seS1pY29uLXNpemUtc207IEBidG4tYm9yZGVyLXJhZGl1cy1iYXNlKTtcbiAgICAmID4gKiB7XG4gICAgICBmb250LXNpemU6IEBidG4tc3F1YXJlLW9ubHktaWNvbi1zaXplLXNtO1xuICAgIH1cbiAgfVxufVxuLy8gY2lyY2xlIGJ1dHRvbjogdGhlIGNvbnRlbnQgb25seSBjb250YWlucyBpY29uXG4uYnRuLWNpcmNsZShAYnRuQ2xhc3NOYW1lOiBidG4pIHtcbiAgbWluLXdpZHRoOiBAYnRuLWhlaWdodC1iYXNlO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAmLkB7YnRuQ2xhc3NOYW1lfS1sZyB7XG4gICAgbWluLXdpZHRoOiBAYnRuLWhlaWdodC1sZztcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIH1cbiAgJi5Ae2J0bkNsYXNzTmFtZX0tc20ge1xuICAgIG1pbi13aWR0aDogQGJ0bi1oZWlnaHQtc207XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB9XG59XG4vLyBIb3Jpem9udGFsIGJ1dHRvbiBncm91cHMgc3R5bGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uYnRuLWdyb3VwKEBidG5DbGFzc05hbWU6IGJ0bikge1xuICAuYnV0dG9uLWdyb3VwLWJhc2UoQGJ0bkNsYXNzTmFtZSk7XG4gIC5Ae2J0bkNsYXNzTmFtZX0gKyAuQHtidG5DbGFzc05hbWV9LFxuICAuQHtidG5DbGFzc05hbWV9ICsgJixcbiAgc3BhbiArIC5Ae2J0bkNsYXNzTmFtZX0sXG4gIC5Ae2J0bkNsYXNzTmFtZX0gKyBzcGFuLFxuICA+IHNwYW4gKyBzcGFuLFxuICAmICsgLkB7YnRuQ2xhc3NOYW1lfSxcbiAgJiArICYge1xuICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICB9XG4gIC5Ae2J0bkNsYXNzTmFtZX0tcHJpbWFyeSArIC5Ae2J0bkNsYXNzTmFtZX06bm90KC5Ae2J0bkNsYXNzTmFtZX0tcHJpbWFyeSk6bm90KFtkaXNhYmxlZF0pIHtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbiAgLkB7YnRuQ2xhc3NOYW1lfSB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxuICA+IC5Ae2J0bkNsYXNzTmFtZX06Zmlyc3QtY2hpbGQsXG4gID4gc3BhbjpmaXJzdC1jaGlsZCA+IC5Ae2J0bkNsYXNzTmFtZX0ge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gID4gLkB7YnRuQ2xhc3NOYW1lfTpvbmx5LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiBAYnRuLWJvcmRlci1yYWRpdXMtYmFzZTtcbiAgfVxuICA+IHNwYW46b25seS1jaGlsZCA+IC5Ae2J0bkNsYXNzTmFtZX0ge1xuICAgIGJvcmRlci1yYWRpdXM6IEBidG4tYm9yZGVyLXJhZGl1cy1iYXNlO1xuICB9XG4gID4gLkB7YnRuQ2xhc3NOYW1lfTpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpLFxuICA+IHNwYW46Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSA+IC5Ae2J0bkNsYXNzTmFtZX0ge1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IEBidG4tYm9yZGVyLXJhZGl1cy1iYXNlO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IEBidG4tYm9yZGVyLXJhZGl1cy1iYXNlO1xuICB9XG4gID4gLkB7YnRuQ2xhc3NOYW1lfTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpLFxuICA+IHNwYW46bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSA+IC5Ae2J0bkNsYXNzTmFtZX0ge1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBAYnRuLWJvcmRlci1yYWRpdXMtYmFzZTtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogQGJ0bi1ib3JkZXItcmFkaXVzLWJhc2U7XG4gIH1cbiAgJi1zbSB7XG4gICAgPiAuQHtidG5DbGFzc05hbWV9Om9ubHktY2hpbGQge1xuICAgICAgYm9yZGVyLXJhZGl1czogQGJ0bi1ib3JkZXItcmFkaXVzLXNtO1xuICAgIH1cbiAgICA+IHNwYW46b25seS1jaGlsZCA+IC5Ae2J0bkNsYXNzTmFtZX0ge1xuICAgICAgYm9yZGVyLXJhZGl1czogQGJ0bi1ib3JkZXItcmFkaXVzLXNtO1xuICAgIH1cbiAgICA+IC5Ae2J0bkNsYXNzTmFtZX06Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSxcbiAgICA+IHNwYW46Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSA+IC5Ae2J0bkNsYXNzTmFtZX0ge1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogQGJ0bi1ib3JkZXItcmFkaXVzLXNtO1xuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogQGJ0bi1ib3JkZXItcmFkaXVzLXNtO1xuICAgIH1cbiAgICA+IC5Ae2J0bkNsYXNzTmFtZX06bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSxcbiAgICA+IHNwYW46bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSA+IC5Ae2J0bkNsYXNzTmFtZX0ge1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IEBidG4tYm9yZGVyLXJhZGl1cy1zbTtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiBAYnRuLWJvcmRlci1yYWRpdXMtc207XG4gICAgfVxuICB9XG4gICYgPiAmIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAmID4gJjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpID4gLkB7YnRuQ2xhc3NOYW1lfSB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxuICAmID4gJjpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICA+IC5Ae2J0bkNsYXNzTmFtZX06bGFzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICAgIH1cbiAgfVxuICAmID4gJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpID4gLkB7YnRuQ2xhc3NOYW1lfTpmaXJzdC1jaGlsZCB7XG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICB9XG59XG4iLCIuQHtidG4tcHJlZml4LWNsc30ge1xuICAmLXJ0bCB7XG4gICAgZGlyZWN0aW9uOiBydGw7XG4gIH1cblxuICAmLXByaW1hcnkge1xuICAgIC5Ae2J0bi1wcmVmaXgtY2xzfS1ncm91cCAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCksXG4gICAgLkB7YnRuLXByZWZpeC1jbHN9LWdyb3VwICYgKyAmIHtcbiAgICAgIC5Ae2J0bi1wcmVmaXgtY2xzfS1ncm91cC1ydGwmIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiBAYnRuLWdyb3VwLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IEBidG4tZGVmYXVsdC1ib3JkZXI7XG4gICAgICB9XG4gICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgIC5Ae2J0bi1wcmVmaXgtY2xzfS1ncm91cC1ydGwmIHtcbiAgICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6IEBidG4tZGVmYXVsdC1ib3JkZXI7XG4gICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IEBidG4tZ3JvdXAtYm9yZGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJiA+ICYtbG9hZGluZy1pY29uIHtcbiAgICAuQHtpY29uZm9udC1jc3MtcHJlZml4fSB7XG4gICAgICAuQHtidG4tcHJlZml4LWNsc30tcnRsJiB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogQG1hcmdpbi14cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm9ubHktY2hpbGQge1xuICAgICAgLkB7aWNvbmZvbnQtY3NzLXByZWZpeH0ge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgPiAuQHtpY29uZm9udC1jc3MtcHJlZml4fSArIHNwYW4sXG4gID4gc3BhbiArIC5Ae2ljb25mb250LWNzcy1wcmVmaXh9IHtcbiAgICAuQHtidG4tcHJlZml4LWNsc30tcnRsJiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxufVxuXG4vLyBtaXhpblxuLmJ0bi1ncm91cChAYnRuQ2xhc3NOYW1lOiBidG4pIHtcbiAgLkB7YnRuQ2xhc3NOYW1lfSArIC5Ae2J0bkNsYXNzTmFtZX0sXG4gIC5Ae2J0bkNsYXNzTmFtZX0gKyAmLFxuICBzcGFuICsgLkB7YnRuQ2xhc3NOYW1lfSxcbiAgLkB7YnRuQ2xhc3NOYW1lfSArIHNwYW4sXG4gID4gc3BhbiArIHNwYW4sXG4gICYgKyAuQHtidG5DbGFzc05hbWV9LFxuICAmICsgJiB7XG4gICAgLkB7YnRuQ2xhc3NOYW1lfS1ydGwmLFxuICAgIC5Ae2J0bkNsYXNzTmFtZX0tZ3JvdXAtcnRsJiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0xcHg7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG4gIH1cblxuICAmLkB7YnRuQ2xhc3NOYW1lfS1ncm91cC1ydGwge1xuICAgIGRpcmVjdGlvbjogcnRsO1xuICB9XG5cbiAgPiAuQHtidG5DbGFzc05hbWV9OmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCksXG4gID4gc3BhbjpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpID4gLkB7YnRuQ2xhc3NOYW1lfSB7XG4gICAgLkB7YnRuQ2xhc3NOYW1lfS1ncm91cC1ydGwmIHtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogQGJ0bi1ib3JkZXItcmFkaXVzLWJhc2U7XG4gICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogQGJ0bi1ib3JkZXItcmFkaXVzLWJhc2U7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICAgIH1cbiAgfVxuXG4gID4gLkB7YnRuQ2xhc3NOYW1lfTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpLFxuICA+IHNwYW46bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSA+IC5Ae2J0bkNsYXNzTmFtZX0ge1xuICAgIC5Ae2J0bkNsYXNzTmFtZX0tZ3JvdXAtcnRsJiB7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBAYnRuLWJvcmRlci1yYWRpdXMtYmFzZTtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBAYnRuLWJvcmRlci1yYWRpdXMtYmFzZTtcbiAgICB9XG4gIH1cblxuICAmLXNtIHtcbiAgICA+IC5Ae2J0bkNsYXNzTmFtZX06Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSxcbiAgICA+IHNwYW46Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSA+IC5Ae2J0bkNsYXNzTmFtZX0ge1xuICAgICAgLkB7YnRuQ2xhc3NOYW1lfS1ncm91cC1ydGwmIHtcbiAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IEBidG4tYm9yZGVyLXJhZGl1cy1zbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IEBidG4tYm9yZGVyLXJhZGl1cy1zbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IC5Ae2J0bkNsYXNzTmFtZX06bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSxcbiAgICA+IHNwYW46bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSA+IC5Ae2J0bkNsYXNzTmFtZX0ge1xuICAgICAgLkB7YnRuQ2xhc3NOYW1lfS1ncm91cC1ydGwmIHtcbiAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogQGJ0bi1ib3JkZXItcmFkaXVzLXNtO1xuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IEBidG4tYm9yZGVyLXJhZGl1cy1zbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgJy4uL3RoZW1lcy9pbmRleCc7XG5cbi5yZXNldC1jb21wb25lbnQoKSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgY29sb3I6IEB0ZXh0LWNvbG9yO1xuICBmb250LXNpemU6IEBmb250LXNpemUtYmFzZTtcbiAgZm9udC12YXJpYW50OiBAZm9udC12YXJpYW50LWJhc2U7XG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBAZm9udC1mZWF0dXJlLXNldHRpbmdzLWJhc2U7XG59XG4iLCJAaW1wb3J0ICcuLi8uLi9zdHlsZS90aGVtZXMvaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vc3R5bGUvbWl4aW5zL2luZGV4JztcblxuQHNwaW4tcHJlZml4LWNsczogfidAe2FudC1wcmVmaXh9LXNwaW4nO1xuQHNwaW4tZG90LWRlZmF1bHQ6IEB0ZXh0LWNvbG9yLXNlY29uZGFyeTtcblxuLkB7c3Bpbi1wcmVmaXgtY2xzfSB7XG4gIC5yZXNldC1jb21wb25lbnQoKTtcblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGNvbG9yOiBAcHJpbWFyeS1jb2xvcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBAZWFzZS1pbi1vdXQtY2lyYztcblxuICAmLXNwaW5uaW5nIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgJi1uZXN0ZWQtbG9hZGluZyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgID4gZGl2ID4gLkB7c3Bpbi1wcmVmaXgtY2xzfSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgei1pbmRleDogNDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBtYXgtaGVpZ2h0OiA0MDBweDtcbiAgICAgIC5Ae3NwaW4tcHJlZml4LWNsc30tZG90IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICBtYXJnaW46IC0oQHNwaW4tZG90LXNpemUgLyAyKTtcbiAgICAgIH1cbiAgICAgIC5Ae3NwaW4tcHJlZml4LWNsc30tdGV4dCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLXRvcDogKChAc3Bpbi1kb3Qtc2l6ZSAtIEBmb250LXNpemUtYmFzZSkgLyAyKSArIDJweDtcbiAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDJweCBAc2hhZG93LWNvbG9yLWludmVyc2U7XG4gICAgICB9XG4gICAgICAmLkB7c3Bpbi1wcmVmaXgtY2xzfS1zaG93LXRleHQgLkB7c3Bpbi1wcmVmaXgtY2xzfS1kb3Qge1xuICAgICAgICBtYXJnaW4tdG9wOiAtKEBzcGluLWRvdC1zaXplIC8gMikgLSAxMHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgID4gZGl2ID4gLkB7c3Bpbi1wcmVmaXgtY2xzfS1zbSB7XG4gICAgICAuQHtzcGluLXByZWZpeC1jbHN9LWRvdCB7XG4gICAgICAgIG1hcmdpbjogLShAc3Bpbi1kb3Qtc2l6ZS1zbSAvIDIpO1xuICAgICAgfVxuICAgICAgLkB7c3Bpbi1wcmVmaXgtY2xzfS10ZXh0IHtcbiAgICAgICAgcGFkZGluZy10b3A6ICgoQHNwaW4tZG90LXNpemUtc20gLSBAZm9udC1zaXplLWJhc2UpIC8gMikgKyAycHg7XG4gICAgICB9XG4gICAgICAmLkB7c3Bpbi1wcmVmaXgtY2xzfS1zaG93LXRleHQgLkB7c3Bpbi1wcmVmaXgtY2xzfS1kb3Qge1xuICAgICAgICBtYXJnaW4tdG9wOiAtKEBzcGluLWRvdC1zaXplLXNtIC8gMikgLSAxMHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgID4gZGl2ID4gLkB7c3Bpbi1wcmVmaXgtY2xzfS1sZyB7XG4gICAgICAuQHtzcGluLXByZWZpeC1jbHN9LWRvdCB7XG4gICAgICAgIG1hcmdpbjogLShAc3Bpbi1kb3Qtc2l6ZS1sZyAvIDIpO1xuICAgICAgfVxuICAgICAgLkB7c3Bpbi1wcmVmaXgtY2xzfS10ZXh0IHtcbiAgICAgICAgcGFkZGluZy10b3A6ICgoQHNwaW4tZG90LXNpemUtbGcgLSBAZm9udC1zaXplLWJhc2UpIC8gMikgKyAycHg7XG4gICAgICB9XG4gICAgICAmLkB7c3Bpbi1wcmVmaXgtY2xzfS1zaG93LXRleHQgLkB7c3Bpbi1wcmVmaXgtY2xzfS1kb3Qge1xuICAgICAgICBtYXJnaW4tdG9wOiAtKEBzcGluLWRvdC1zaXplLWxnIC8gMikgLSAxMHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYtY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgei1pbmRleDogMTA7XG4gICAgICBkaXNwbGF5OiB+J25vbmUgXFw5JztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogQGNvbXBvbmVudC1iYWNrZ3JvdW5kO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmLWJsdXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgb3BhY2l0eTogMC41O1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgLy8gdGlwXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmLXRpcCB7XG4gICAgY29sb3I6IEBzcGluLWRvdC1kZWZhdWx0O1xuICB9XG5cbiAgLy8gZG90c1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAmLWRvdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IEBzcGluLWRvdC1zaXplO1xuXG4gICAgLnNxdWFyZSgxZW0pO1xuXG4gICAgJi1pdGVtIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDlweDtcbiAgICAgIGhlaWdodDogOXB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQHByaW1hcnktY29sb3I7XG4gICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjc1KTtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgICBvcGFjaXR5OiAwLjM7XG4gICAgICBhbmltYXRpb246IGFudFNwaW5Nb3ZlIDFzIGluZmluaXRlIGxpbmVhciBhbHRlcm5hdGU7XG5cbiAgICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfVxuICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDAuNHM7XG4gICAgICB9XG4gICAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogMC44cztcbiAgICAgIH1cbiAgICAgICY6bnRoLWNoaWxkKDQpIHtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDEuMnM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi1zcGluIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgIGFuaW1hdGlvbjogYW50Um90YXRlIDEuMnMgaW5maW5pdGUgbGluZWFyO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNpemVzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8vIHNtYWxsXG4gICYtc20gJi1kb3Qge1xuICAgIGZvbnQtc2l6ZTogQHNwaW4tZG90LXNpemUtc207XG5cbiAgICBpIHtcbiAgICAgIHdpZHRoOiA2cHg7XG4gICAgICBoZWlnaHQ6IDZweDtcbiAgICB9XG4gIH1cblxuICAvLyBsYXJnZVxuICAmLWxnICYtZG90IHtcbiAgICBmb250LXNpemU6IEBzcGluLWRvdC1zaXplLWxnO1xuXG4gICAgaSB7XG4gICAgICB3aWR0aDogMTRweDtcbiAgICAgIGhlaWdodDogMTRweDtcbiAgICB9XG4gIH1cblxuICAmJi1zaG93LXRleHQgJi10ZXh0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG5AbWVkaWEgYWxsIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IG5vbmUpLCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAvKiBJRTEwKyAqL1xuICAuQHtzcGluLXByZWZpeC1jbHN9LWJsdXIge1xuICAgIGJhY2tncm91bmQ6IEBjb21wb25lbnQtYmFja2dyb3VuZDtcbiAgICBvcGFjaXR5OiAwLjU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBhbnRTcGluTW92ZSB7XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYW50Um90YXRlIHtcbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQwNWRlZyk7XG4gIH1cbn1cblxuQGltcG9ydCAnLi9ydGwnO1xuIiwiLkB7c3Bpbi1wcmVmaXgtY2xzfSB7XG4gICYtcnRsIHtcbiAgICBkaXJlY3Rpb246IHJ0bDtcbiAgfVxuXG4gICYtZG90IHtcbiAgICAmLXNwaW4ge1xuICAgICAgLkB7c3Bpbi1wcmVmaXgtY2xzfS1ydGwgJiB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgICAgIGFuaW1hdGlvbi1uYW1lOiBhbnRSb3RhdGVSdGw7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBrZXlmcmFtZXMgYW50Um90YXRlUnRsIHtcbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC00MDVkZWcpO1xuICB9XG59XG4iLCJuei1zcGluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4iLCJAaW1wb3J0ICcuL2luZGV4JztcbkBpbXBvcnQgJy4vbWl4aW4nO1xuXG5AaW5wdXQtYWZmaXgtbWFyZ2luOiA0cHg7XG5cbi5Ae2FudC1wcmVmaXh9LWlucHV0IHtcbiAgJi1hZmZpeC13cmFwcGVyIHtcbiAgICAuaW5wdXQoKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcblxuICAgICY6aG92ZXIge1xuICAgICAgLmhvdmVyKCk7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgLkB7YW50LXByZWZpeH0taW5wdXQtc2VhcmNoLXdpdGgtYnV0dG9uICYge1xuICAgICAgICB6LWluZGV4OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICYtZm9jdXNlZCxcbiAgICAmOmZvY3VzIHtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuXG4gICAgJi1kaXNhYmxlZCB7XG4gICAgICAuQHthbnQtcHJlZml4fS1pbnB1dFtkaXNhYmxlZF0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGlucHV0LkB7YW50LXByZWZpeH0taW5wdXQge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIGNvbnRlbnQ6ICdcXGEwJztcbiAgICB9XG4gIH1cblxuICAmLXByZWZpeCxcbiAgJi1zdWZmaXgge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogbm9uZTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgJi1wcmVmaXgge1xuICAgIG1hcmdpbi1yaWdodDogQGlucHV0LWFmZml4LW1hcmdpbjtcbiAgfVxuXG4gICYtc3VmZml4IHtcbiAgICBtYXJnaW4tbGVmdDogQGlucHV0LWFmZml4LW1hcmdpbjtcbiAgfVxufVxuIiwiQGltcG9ydCAnLi4vLi4vc3R5bGUvdGhlbWVzL2luZGV4JztcbkBpbXBvcnQgJy4uLy4uL3N0eWxlL21peGlucy9pbmRleCc7XG5cbkBpbnB1dC1hZmZpeC13aXRoLWNsZWFyLWJ0bi13aWR0aDogMzhweDtcblxuLy8gc2l6ZSBtaXhpbnMgZm9yIGlucHV0XG4uaW5wdXQtbGcoKSB7XG4gIHBhZGRpbmc6IEBpbnB1dC1wYWRkaW5nLXZlcnRpY2FsLWxnIEBpbnB1dC1wYWRkaW5nLWhvcml6b250YWwtbGc7XG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1sZztcbn1cblxuLmlucHV0LXNtKCkge1xuICBwYWRkaW5nOiBAaW5wdXQtcGFkZGluZy12ZXJ0aWNhbC1zbSBAaW5wdXQtcGFkZGluZy1ob3Jpem9udGFsLXNtO1xufVxuXG4vLyBpbnB1dCBzdGF0dXNcbi8vID09IHdoZW4gZm9jdXMgb3IgYWN0aXZlZFxuLmFjdGl2ZShAY29sb3I6IEBvdXRsaW5lLWNvbG9yKSB7XG4gICYgd2hlbiAoQHRoZW1lID0gZGFyaykge1xuICAgIGJvcmRlci1jb2xvcjogQGNvbG9yO1xuICB9XG4gICYgd2hlbiBub3QgKEB0aGVtZSA9IGRhcmspIHtcbiAgICBib3JkZXItY29sb3I6IH5gY29sb3JQYWxldHRlKCdAe2NvbG9yfScsIDUpIGA7XG4gIH1cbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiBAYm9yZGVyLXdpZHRoLWJhc2UgIWltcG9ydGFudDtcbiAgb3V0bGluZTogMDtcbiAgYm94LXNoYWRvdzogQGlucHV0LW91dGxpbmUtb2Zmc2V0IEBvdXRsaW5lLWJsdXItc2l6ZSBAb3V0bGluZS13aWR0aCBmYWRlKEBjb2xvciwgQG91dGxpbmUtZmFkZSk7XG59XG5cbi8vID09IHdoZW4gaG92ZXJkXG4uaG92ZXIoQGNvbG9yOiBAaW5wdXQtaG92ZXItYm9yZGVyLWNvbG9yKSB7XG4gIGJvcmRlci1jb2xvcjogQGNvbG9yO1xuICBib3JkZXItcmlnaHQtd2lkdGg6IEBib3JkZXItd2lkdGgtYmFzZSAhaW1wb3J0YW50O1xufVxuXG4uZGlzYWJsZWQoKSB7XG4gIGNvbG9yOiBAaW5wdXQtZGlzYWJsZWQtY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6IEBpbnB1dC1kaXNhYmxlZC1iZztcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgb3BhY2l0eTogMTtcblxuICAmOmhvdmVyIHtcbiAgICAuaG92ZXIoQGlucHV0LWJvcmRlci1jb2xvcik7XG4gIH1cbn1cblxuLy8gQmFzaWMgc3R5bGUgZm9yIGlucHV0XG4uaW5wdXQoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgbWluLXdpZHRoOiAwO1xuICBwYWRkaW5nOiBAaW5wdXQtcGFkZGluZy12ZXJ0aWNhbC1iYXNlIEBpbnB1dC1wYWRkaW5nLWhvcml6b250YWwtYmFzZTtcbiAgY29sb3I6IEBpbnB1dC1jb2xvcjtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplLWJhc2U7XG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGlucHV0LWJnO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3JkZXI6IEBib3JkZXItd2lkdGgtYmFzZSBAYm9yZGVyLXN0eWxlLWJhc2UgQGlucHV0LWJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtYmFzZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG4gIC5wbGFjZWhvbGRlcigpOyAvLyBSZXNldCBwbGFjZWhvbGRlclxuXG4gICY6aG92ZXIge1xuICAgIC5ob3ZlcigpO1xuICB9XG5cbiAgJjpmb2N1cyxcbiAgJi1mb2N1c2VkIHtcbiAgICAuYWN0aXZlKCk7XG4gIH1cblxuICAmLWRpc2FibGVkIHtcbiAgICAuZGlzYWJsZWQoKTtcbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcbiAgICAuZGlzYWJsZWQoKTtcbiAgfVxuXG4gICYtYm9yZGVybGVzcyB7XG4gICAgJixcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJi1mb2N1c2VkLFxuICAgICYtZGlzYWJsZWQsXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IGhlaWdodCBmb3IgYHRleHRhcmVhYHNcbiAgdGV4dGFyZWEmIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IC8vIHByZXZlbnQgdGV4dGVhcmVhIHJlc2l6ZSBmcm9tIGNvbWluZyBvdXQgb2YgaXRzIGNvbnRhaW5lclxuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LWJhc2U7XG4gICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MsIGhlaWdodCAwcztcbiAgfVxuXG4gIC8vIFNpemVcbiAgJi1sZyB7XG4gICAgLmlucHV0LWxnKCk7XG4gIH1cblxuICAmLXNtIHtcbiAgICAuaW5wdXQtc20oKTtcbiAgfVxufVxuXG4vLyBsYWJlbCBpbnB1dFxuLmlucHV0LWdyb3VwKEBpbnB1dENsYXNzKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogdGFibGU7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xuICBib3JkZXItc3BhY2luZzogMDtcblxuICAvLyBVbmRvIHBhZGRpbmcgYW5kIGZsb2F0IG9mIGdyaWQgY2xhc3Nlc1xuICAmW2NsYXNzKj0nY29sLSddIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuXG4gID4gW2NsYXNzKj0nY29sLSddIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG4gIH1cblxuICAmLWFkZG9uLFxuICAmLXdyYXAsXG4gID4gLkB7aW5wdXRDbGFzc30ge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cbiAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICB9XG4gIH1cblxuICAmLWFkZG9uLFxuICAmLXdyYXAge1xuICAgIHdpZHRoOiAxcHg7IC8vIFRvIG1ha2UgYWRkb24vd3JhcCBhcyBzbWFsbCBhcyBwb3NzaWJsZVxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuXG4gICYtd3JhcCA+ICoge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuQHtpbnB1dENsYXNzfSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICB6LWluZGV4OiAxOyAvLyBGaXggaHR0cHM6Ly9ndy5hbGlwYXlvYmplY3RzLmNvbS96b3Mvcm1zcG9ydGFsL0RITnBvcWZNWFNmclNubFp2aHNKLnBuZ1xuICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gICAgICAuQHthbnQtcHJlZml4fS1pbnB1dC1zZWFyY2gtd2l0aC1idXR0b24gJiB7XG4gICAgICAgIHotaW5kZXg6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi1hZGRvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDAgQGlucHV0LXBhZGRpbmctaG9yaXpvbnRhbC1iYXNlO1xuICAgIGNvbG9yOiBAaW5wdXQtY29sb3I7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXNpemU6IEBmb250LXNpemUtYmFzZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGlucHV0LWFkZG9uLWJnO1xuICAgIGJvcmRlcjogQGJvcmRlci13aWR0aC1iYXNlIEBib3JkZXItc3R5bGUtYmFzZSBAaW5wdXQtYm9yZGVyLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2U7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG5cbiAgICAvLyBSZXNldCBTZWxlY3QncyBzdHlsZSBpbiBhZGRvblxuICAgIC5Ae2FudC1wcmVmaXh9LXNlbGVjdCB7XG4gICAgICBtYXJnaW46IC0oQGlucHV0LXBhZGRpbmctdmVydGljYWwtYmFzZSArIDFweCkgKC1AaW5wdXQtcGFkZGluZy1ob3Jpem9udGFsLWJhc2UpO1xuXG4gICAgICAmLkB7YW50LXByZWZpeH0tc2VsZWN0LXNpbmdsZTpub3QoLkB7YW50LXByZWZpeH0tc2VsZWN0LWN1c3RvbWl6ZS1pbnB1dClcbiAgICAgICAgLkB7YW50LXByZWZpeH0tc2VsZWN0LXNlbGVjdG9yIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgICAgICAgYm9yZGVyOiBAYm9yZGVyLXdpZHRoLWJhc2UgQGJvcmRlci1zdHlsZS1iYXNlIHRyYW5zcGFyZW50O1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgfVxuXG4gICAgICAmLW9wZW4sXG4gICAgICAmLWZvY3VzZWQge1xuICAgICAgICAuQHthbnQtcHJlZml4fS1zZWxlY3Qtc2VsZWN0b3Ige1xuICAgICAgICAgIGNvbG9yOiBAcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IHJvdW5kZWQgY29ybmVyc1xuICA+IC5Ae2lucHV0Q2xhc3N9OmZpcnN0LWNoaWxkLFxuICAmLWFkZG9uOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblxuICAgIC8vIFJlc2V0IFNlbGVjdCdzIHN0eWxlIGluIGFkZG9uXG4gICAgLkB7YW50LXByZWZpeH0tc2VsZWN0IC5Ae2FudC1wcmVmaXh9LXNlbGVjdC1zZWxlY3RvciB7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICAgIH1cbiAgfVxuXG4gID4gLkB7aW5wdXRDbGFzc30tYWZmaXgtd3JhcHBlciB7XG4gICAgJjpub3QoOmZpcnN0LWNoaWxkKSAuQHtpbnB1dENsYXNzfSB7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICB9XG5cbiAgICAmOm5vdCg6bGFzdC1jaGlsZCkgLkB7aW5wdXRDbGFzc30ge1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgICB9XG4gIH1cblxuICAmLWFkZG9uOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gIH1cblxuICAmLWFkZG9uOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICB9XG5cbiAgPiAuQHtpbnB1dENsYXNzfTpsYXN0LWNoaWxkLFxuICAmLWFkZG9uOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblxuICAgIC8vIFJlc2V0IFNlbGVjdCdzIHN0eWxlIGluIGFkZG9uXG4gICAgLkB7YW50LXByZWZpeH0tc2VsZWN0IC5Ae2FudC1wcmVmaXh9LXNlbGVjdC1zZWxlY3RvciB7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICB9XG4gIH1cblxuICAvLyBTaXppbmcgb3B0aW9uc1xuICAmLWxnIC5Ae2lucHV0Q2xhc3N9LFxuICAmLWxnID4gJi1hZGRvbiB7XG4gICAgLmlucHV0LWxnKCk7XG4gIH1cblxuICAmLXNtIC5Ae2lucHV0Q2xhc3N9LFxuICAmLXNtID4gJi1hZGRvbiB7XG4gICAgLmlucHV0LXNtKCk7XG4gIH1cblxuICAvLyBGaXggaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvNTc1NFxuICAmLWxnIC5Ae2FudC1wcmVmaXh9LXNlbGVjdC1zaW5nbGUgLkB7YW50LXByZWZpeH0tc2VsZWN0LXNlbGVjdG9yIHtcbiAgICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQtbGc7XG4gIH1cblxuICAmLXNtIC5Ae2FudC1wcmVmaXh9LXNlbGVjdC1zaW5nbGUgLkB7YW50LXByZWZpeH0tc2VsZWN0LXNlbGVjdG9yIHtcbiAgICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQtc207XG4gIH1cblxuICAuQHtpbnB1dENsYXNzfS1hZmZpeC13cmFwcGVyIHtcbiAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICAgIH1cblxuICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgLkB7YW50LXByZWZpeH0taW5wdXQtc2VhcmNoICYge1xuICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlO1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYmLWNvbXBhY3Qge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIC5jbGVhcmZpeCgpO1xuXG4gICAgJi1hZGRvbixcbiAgICAmLXdyYXAsXG4gICAgPiAuQHtpbnB1dENsYXNzfSB7XG4gICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IEBib3JkZXItd2lkdGgtYmFzZTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYgPiAqIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi1wcm8vaXNzdWVzLzEzOVxuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICB9XG5cbiAgICAmID4gLkB7aW5wdXRDbGFzc30tYWZmaXgtd3JhcHBlciB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICB9XG5cbiAgICAmID4gLkB7YW50LXByZWZpeH0tcGlja2VyLXJhbmdlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIH1cblxuICAgICYgPiAqOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtQGJvcmRlci13aWR0aC1iYXNlO1xuICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiBAYm9yZGVyLXdpZHRoLWJhc2U7XG4gICAgfVxuXG4gICAgLy8gVW5kbyBmbG9hdCBmb3IgLmFudC1pbnB1dC1ncm91cCAuYW50LWlucHV0XG4gICAgLkB7aW5wdXRDbGFzc30ge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gcmVzZXQgYm9yZGVyIGZvciBTZWxlY3QsIERhdGVQaWNrZXIsIEF1dG9Db21wbGV0ZSwgQ2FzY2FkZXIsIE1lbnRpb24sIFRpbWVQaWNrZXIsIElucHV0XG4gICAgJiA+IC5Ae2FudC1wcmVmaXh9LXNlbGVjdCA+IC5Ae2FudC1wcmVmaXh9LXNlbGVjdC1zZWxlY3RvcixcbiAgICAmID4gLkB7YW50LXByZWZpeH0tc2VsZWN0LWF1dG8tY29tcGxldGUgLkB7YW50LXByZWZpeH0taW5wdXQsXG4gICAgJiA+IC5Ae2FudC1wcmVmaXh9LWNhc2NhZGVyLXBpY2tlciAuQHthbnQtcHJlZml4fS1pbnB1dCxcbiAgICAmID4gLkB7YW50LXByZWZpeH0taW5wdXQtZ3JvdXAtd3JhcHBlciAuQHthbnQtcHJlZml4fS1pbnB1dCB7XG4gICAgICBib3JkZXItcmlnaHQtd2lkdGg6IEBib3JkZXItd2lkdGgtYmFzZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgfVxuXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmID4gLkB7YW50LXByZWZpeH0tc2VsZWN0LWZvY3VzZWQge1xuICAgICAgei1pbmRleDogMTtcbiAgICB9XG5cbiAgICAvLyB1cGRhdGUgei1pbmRleCBmb3IgYXJyb3cgaWNvblxuICAgICYgPiAuQHthbnQtcHJlZml4fS1zZWxlY3QgPiAuQHthbnQtcHJlZml4fS1zZWxlY3QtYXJyb3cge1xuICAgICAgei1pbmRleDogMTsgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvMjAzNzFcbiAgICB9XG5cbiAgICAmID4gKjpmaXJzdC1jaGlsZCxcbiAgICAmID4gLkB7YW50LXByZWZpeH0tc2VsZWN0OmZpcnN0LWNoaWxkID4gLkB7YW50LXByZWZpeH0tc2VsZWN0LXNlbGVjdG9yLFxuICAgICYgPiAuQHthbnQtcHJlZml4fS1zZWxlY3QtYXV0by1jb21wbGV0ZTpmaXJzdC1jaGlsZCAuQHthbnQtcHJlZml4fS1pbnB1dCxcbiAgICAmID4gLkB7YW50LXByZWZpeH0tY2FzY2FkZXItcGlja2VyOmZpcnN0LWNoaWxkIC5Ae2FudC1wcmVmaXh9LWlucHV0IHtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2U7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlO1xuICAgIH1cblxuICAgICYgPiAqOmxhc3QtY2hpbGQsXG4gICAgJiA+IC5Ae2FudC1wcmVmaXh9LXNlbGVjdDpsYXN0LWNoaWxkID4gLkB7YW50LXByZWZpeH0tc2VsZWN0LXNlbGVjdG9yLFxuICAgICYgPiAuQHthbnQtcHJlZml4fS1jYXNjYWRlci1waWNrZXI6bGFzdC1jaGlsZCAuQHthbnQtcHJlZml4fS1pbnB1dCxcbiAgICAmID4gLkB7YW50LXByZWZpeH0tY2FzY2FkZXItcGlja2VyLWZvY3VzZWQ6bGFzdC1jaGlsZCAuQHthbnQtcHJlZml4fS1pbnB1dCB7XG4gICAgICBib3JkZXItcmlnaHQtd2lkdGg6IEBib3JkZXItd2lkdGgtYmFzZTtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlO1xuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2U7XG4gICAgfVxuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvMTI0OTNcbiAgICAmID4gLkB7YW50LXByZWZpeH0tc2VsZWN0LWF1dG8tY29tcGxldGUgLkB7YW50LXByZWZpeH0taW5wdXQge1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICB9XG5cbiAgICAuQHthbnQtcHJlZml4fS1pbnB1dC1ncm91cC13cmFwcGVyICsgLkB7YW50LXByZWZpeH0taW5wdXQtZ3JvdXAtd3JhcHBlciB7XG4gICAgICBtYXJnaW4tbGVmdDogLTFweDtcbiAgICAgIC5Ae2FudC1wcmVmaXh9LWlucHV0LWFmZml4LXdyYXBwZXIge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5Ae2FudC1wcmVmaXh9LWlucHV0LWdyb3VwLXdyYXBwZXI6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAmLkB7YW50LXByZWZpeH0taW5wdXQtc2VhcmNoID4gLkB7YW50LXByZWZpeH0taW5wdXQtZ3JvdXAge1xuICAgICAgICAmID4gLkB7YW50LXByZWZpeH0taW5wdXQtZ3JvdXAtYWRkb24gPiAuQHthbnQtcHJlZml4fS1pbnB1dC1zZWFyY2gtYnV0dG9uIHtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJiA+IC5Ae2FudC1wcmVmaXh9LWlucHV0IHtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlIDAgMCBAYm9yZGVyLXJhZGl1cy1iYXNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBDb21wYXRpYmlsaXR5IGZvciBicm93c2Vycy5cblxuLy8gUGxhY2Vob2xkZXIgdGV4dFxuLnBsYWNlaG9sZGVyKEBjb2xvcjogQGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yKSB7XG4gIC8vIEZpcmVmb3hcbiAgJjo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgb3BhY2l0eTogMTsgLy8gT3ZlcnJpZGUgRmlyZWZveCdzIHVudXN1YWwgZGVmYXVsdCBvcGFjaXR5OyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL3B1bGwvMTE1MjZcbiAgfVxuXG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogQGNvbG9yO1xuICB9XG5cbiAgJjpwbGFjZWhvbGRlci1zaG93biB7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIH1cbn1cbiIsIkBpbXBvcnQgJy4uLy4uL3N0eWxlL3RoZW1lcy9pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi9zdHlsZS9taXhpbnMvaW5kZXgnO1xuXG4vLz09IFN0eWxlIGZvciBpbnB1dC1ncm91cDogaW5wdXQgd2l0aCBsYWJlbCwgd2l0aCBidXR0b24gb3IgZHJvcGRvd24uLi5cbi5Ae2FudC1wcmVmaXh9LWlucHV0LWdyb3VwIHtcbiAgJi13cmFwcGVyIHtcbiAgICAmLXJ0bCB7XG4gICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICB9XG4gIH1cbiAgJi1ydGwge1xuICAgIGRpcmVjdGlvbjogcnRsO1xuICB9XG59XG5cbi8vIGFmZml4XG5AaW5wdXQtYWZmaXgtbWFyZ2luOiA0cHg7XG5cbi5Ae2FudC1wcmVmaXh9LWlucHV0IHtcbiAgJi1hZmZpeC13cmFwcGVyJi1hZmZpeC13cmFwcGVyLXJ0bCB7XG4gICAgPiBpbnB1dC5Ae2FudC1wcmVmaXh9LWlucHV0IHtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJi1hZmZpeC13cmFwcGVyLXJ0bCB7XG4gICAgLkB7YW50LXByZWZpeH0taW5wdXQtcHJlZml4IHtcbiAgICAgIG1hcmdpbjogMCAwIDAgQGlucHV0LWFmZml4LW1hcmdpbjtcbiAgICB9XG5cbiAgICAuQHthbnQtcHJlZml4fS1pbnB1dC1zdWZmaXgge1xuICAgICAgbWFyZ2luOiAwIEBpbnB1dC1hZmZpeC1tYXJnaW4gMCAwO1xuICAgIH1cbiAgfVxuXG4gICYtdGV4dGFyZWEge1xuICAgICYtcnRsIHtcbiAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgIH1cblxuICAgICYtcnRsJi1zaG93LWNvdW50OjphZnRlciB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbiAgfVxufVxuXG4vLyBhbGxvdy1jbGVhclxuLkB7YW50LXByZWZpeH0taW5wdXQtY2xlYXItaWNvbiB7XG4gICY6bGFzdC1jaGlsZCB7XG4gICAgLkB7YW50LXByZWZpeH0taW5wdXQtYWZmaXgtd3JhcHBlci1ydGwgJiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IEBpbnB1dC1hZmZpeC1tYXJnaW47XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cblxuICAuQHthbnQtcHJlZml4fS1pbnB1dC1hZmZpeC13cmFwcGVyLXJ0bCAmIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiA4cHg7XG4gIH1cbn1cblxuLy8gbWl4aW5cbkBpbnB1dC1ydGwtY2xzOiB+J0B7YW50LXByZWZpeH0taW5wdXQtcnRsJztcblxuLmFjdGl2ZSgpIHtcbiAgLkB7aW5wdXQtcnRsLWNsc30gJiB7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiBAYm9yZGVyLXdpZHRoLWJhc2UgIWltcG9ydGFudDtcbiAgfVxufVxuXG4uaG92ZXIoKSB7XG4gIC5Ae2lucHV0LXJ0bC1jbHN9ICYge1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC13aWR0aDogQGJvcmRlci13aWR0aC1iYXNlICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLmlucHV0KCkge1xuICAmLXJ0bCB7XG4gICAgZGlyZWN0aW9uOiBydGw7XG4gIH1cbn1cblxuLy8gbGFiZWwgaW5wdXRcbi5pbnB1dC1ncm91cChAaW5wdXRDbGFzcykge1xuICA+IC5Ae2lucHV0Q2xhc3N9LXJ0bDpmaXJzdC1jaGlsZCxcbiAgJi1ydGwgJi1hZGRvbjpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogMCBAYm9yZGVyLXJhZGl1cy1iYXNlIEBib3JkZXItcmFkaXVzLWJhc2UgMDtcbiAgfVxuXG4gICYtYWRkb246Zmlyc3QtY2hpbGQge1xuICAgIC5Ae2lucHV0Q2xhc3N9LWdyb3VwLXJ0bCAmIHtcbiAgICAgIGJvcmRlci1yaWdodDogQGJvcmRlci13aWR0aC1iYXNlIEBib3JkZXItc3R5bGUtYmFzZSBAaW5wdXQtYm9yZGVyLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgfVxuICB9XG5cbiAgJi1hZGRvbjpsYXN0LWNoaWxkIHtcbiAgICAuQHtpbnB1dENsYXNzfS1ncm91cC1ydGwgJiB7XG4gICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICBib3JkZXItbGVmdDogQGJvcmRlci13aWR0aC1iYXNlIEBib3JkZXItc3R5bGUtYmFzZSBAaW5wdXQtYm9yZGVyLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gID4gLkB7aW5wdXRDbGFzc306bGFzdC1jaGlsZCxcbiAgJi1hZGRvbjpsYXN0LWNoaWxkIHtcbiAgICAuQHtpbnB1dENsYXNzfS1ncm91cC1ydGwmIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2UgMCAwIEBib3JkZXItcmFkaXVzLWJhc2U7XG4gICAgfVxuICB9XG5cbiAgLkB7aW5wdXRDbGFzc30tYWZmaXgtd3JhcHBlciB7XG4gICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAuQHtpbnB1dENsYXNzfS1ncm91cC1ydGwmIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtYmFzZSAwIDAgQGJvcmRlci1yYWRpdXMtYmFzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgLkB7aW5wdXRDbGFzc30tZ3JvdXAtcnRsJiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgQGJvcmRlci1yYWRpdXMtYmFzZSBAYm9yZGVyLXJhZGl1cy1iYXNlIDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJiYtY29tcGFjdCB7XG4gICAgJiA+ICo6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAuQHtpbnB1dENsYXNzfS1ncm91cC1ydGwmIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogLUBib3JkZXItd2lkdGgtYmFzZTtcbiAgICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IEBib3JkZXItd2lkdGgtYmFzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmID4gKjpmaXJzdC1jaGlsZCxcbiAgICAmID4gLkB7YW50LXByZWZpeH0tc2VsZWN0OmZpcnN0LWNoaWxkID4gLkB7YW50LXByZWZpeH0tc2VsZWN0LXNlbGVjdG9yLFxuICAgICYgPiAuQHthbnQtcHJlZml4fS1zZWxlY3QtYXV0by1jb21wbGV0ZTpmaXJzdC1jaGlsZCAuQHthbnQtcHJlZml4fS1pbnB1dCxcbiAgICAmID4gLkB7YW50LXByZWZpeH0tY2FzY2FkZXItcGlja2VyOmZpcnN0LWNoaWxkIC5Ae2FudC1wcmVmaXh9LWlucHV0IHtcbiAgICAgIC5Ae2lucHV0Q2xhc3N9LWdyb3VwLXJ0bCYge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwIEBib3JkZXItcmFkaXVzLWJhc2UgQGJvcmRlci1yYWRpdXMtYmFzZSAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICYgPiAqOmxhc3QtY2hpbGQsXG4gICAgJiA+IC5Ae2FudC1wcmVmaXh9LXNlbGVjdDpsYXN0LWNoaWxkID4gLkB7YW50LXByZWZpeH0tc2VsZWN0LXNlbGVjdG9yLFxuICAgICYgPiAuQHthbnQtcHJlZml4fS1zZWxlY3QtYXV0by1jb21wbGV0ZTpsYXN0LWNoaWxkIC5Ae2FudC1wcmVmaXh9LWlucHV0LFxuICAgICYgPiAuQHthbnQtcHJlZml4fS1jYXNjYWRlci1waWNrZXI6bGFzdC1jaGlsZCAuQHthbnQtcHJlZml4fS1pbnB1dCxcbiAgICAmID4gLkB7YW50LXByZWZpeH0tY2FzY2FkZXItcGlja2VyLWZvY3VzZWQ6bGFzdC1jaGlsZCAuQHthbnQtcHJlZml4fS1pbnB1dCB7XG4gICAgICAuQHtpbnB1dENsYXNzfS1ncm91cC1ydGwmIHtcbiAgICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IEBib3JkZXItd2lkdGgtYmFzZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtYmFzZSAwIDAgQGJvcmRlci1yYWRpdXMtYmFzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuQHthbnQtcHJlZml4fS1pbnB1dC1ncm91cC13cmFwcGVyLXJ0bCArIC5Ae2FudC1wcmVmaXh9LWlucHV0LWdyb3VwLXdyYXBwZXItcnRsIHtcbiAgICAgIG1hcmdpbi1yaWdodDogLTFweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cblxuICAgIC5Ae2FudC1wcmVmaXh9LWlucHV0LWdyb3VwLXdyYXBwZXItcnRsOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgJi5Ae2FudC1wcmVmaXh9LWlucHV0LXNlYXJjaCA+IC5Ae2FudC1wcmVmaXh9LWlucHV0LWdyb3VwIHtcbiAgICAgICAgJiA+IC5Ae2FudC1wcmVmaXh9LWlucHV0IHtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIEBib3JkZXItcmFkaXVzLWJhc2UgQGJvcmRlci1yYWRpdXMtYmFzZSAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIHNlYXJjaC1pbnB1dFxuQHNlYXJjaC1wcmVmaXg6IH4nQHthbnQtcHJlZml4fS1pbnB1dC1zZWFyY2gnO1xuQHNlYXJjaC1ydGwtY2xzOiB+J0B7c2VhcmNoLXByZWZpeH0tcnRsJztcblxuLkB7c2VhcmNoLXByZWZpeH0tcnRsIHtcbiAgZGlyZWN0aW9uOiBydGw7XG5cbiAgLkB7YW50LXByZWZpeH0taW5wdXQge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICArIC5Ae2FudC1wcmVmaXh9LWlucHV0LWdyb3VwLWFkZG9uIC5Ae3NlYXJjaC1wcmVmaXh9LWJ1dHRvbjpub3QoLkB7YW50LXByZWZpeH0tYnRuLXByaW1hcnkpIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiBAaW5wdXQtaG92ZXItYm9yZGVyLWNvbG9yO1xuICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogQGJvcmRlci1jb2xvci1iYXNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gID4gLkB7YW50LXByZWZpeH0taW5wdXQtZ3JvdXAge1xuICAgID4gLkB7YW50LXByZWZpeH0taW5wdXQtYWZmaXgtd3JhcHBlciB7XG4gICAgICAmOmhvdmVyLFxuICAgICAgJi1mb2N1c2VkIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiBAaW5wdXQtaG92ZXItYm9yZGVyLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gLkB7YW50LXByZWZpeH0taW5wdXQtZ3JvdXAtYWRkb24ge1xuICAgICAgcmlnaHQ6IC0xcHg7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgLkB7c2VhcmNoLXByZWZpeH0tYnV0dG9uIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtYmFzZSAwIDAgQGJvcmRlci1yYWRpdXMtYmFzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgJy4vaW5kZXgnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09IElucHV0ID09PT09PT09PT09PT09PT09PT09PT09PT1cbi5Ae2FudC1wcmVmaXh9LWlucHV0LWNsZWFyLWljb24ge1xuICBtYXJnaW46IDAgQGlucHV0LWFmZml4LW1hcmdpbjtcbiAgY29sb3I6IEBkaXNhYmxlZC1jb2xvcjtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplLXNtO1xuICB2ZXJ0aWNhbC1hbGlnbjogLTFweDtcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9wdWxsLzE4MTUxXG4gIC8vIGh0dHBzOi8vY29kZXNhbmRib3guaW8vcy93aXphcmRseS1zdW4tdTEwYnJcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzO1xuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiBAdGV4dC1jb2xvci1zZWNvbmRhcnk7XG4gIH1cblxuICAmOmFjdGl2ZSB7XG4gICAgY29sb3I6IEB0ZXh0LWNvbG9yO1xuICB9XG5cbiAgJi1oaWRkZW4ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09IFRleHRBcmVhID09PT09PT09PT09PT09PT09PT09PT09PVxuLkB7YW50LXByZWZpeH0taW5wdXQtYWZmaXgtd3JhcHBlci10ZXh0YXJlYS13aXRoLWNsZWFyLWJ0biB7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG5cbiAgLkB7YW50LXByZWZpeH0taW5wdXQtY2xlYXItaWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogOHB4O1xuICAgIHJpZ2h0OiA4cHg7XG4gICAgei1pbmRleDogMTtcbiAgfVxufVxuIiwiQGltcG9ydCAnLi4vLi4vc3R5bGUvdGhlbWVzL2luZGV4JztcbkBpbXBvcnQgJy4uLy4uL3N0eWxlL21peGlucy9pbmRleCc7XG5AaW1wb3J0ICcuL21peGluJztcbkBpbXBvcnQgJy4vYWZmaXgnO1xuQGltcG9ydCAnLi9hbGxvdy1jbGVhcic7XG5cbi8vIElucHV0IHN0eWxlc1xuLkB7YW50LXByZWZpeH0taW5wdXQge1xuICAucmVzZXQtY29tcG9uZW50KCk7XG4gIC5pbnB1dCgpO1xuXG4gIC8vPT0gU3R5bGUgZm9yIGlucHV0LWdyb3VwOiBpbnB1dCB3aXRoIGxhYmVsLCB3aXRoIGJ1dHRvbiBvciBkcm9wZG93bi4uLlxuICAmLWdyb3VwIHtcbiAgICAucmVzZXQtY29tcG9uZW50KCk7XG4gICAgLmlucHV0LWdyb3VwKH4nQHthbnQtcHJlZml4fS1pbnB1dCcpO1xuICAgICYtd3JhcHBlciB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvNjQwM1xuICAgIH1cbiAgfVxuXG4gICYtcGFzc3dvcmQtaWNvbiB7XG4gICAgY29sb3I6IEB0ZXh0LWNvbG9yLXNlY29uZGFyeTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiBAaW5wdXQtaWNvbi1ob3Zlci1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAmW3R5cGU9J2NvbG9yJ10ge1xuICAgIGhlaWdodDogQGlucHV0LWhlaWdodC1iYXNlO1xuXG4gICAgJi5Ae2FudC1wcmVmaXh9LWlucHV0LWxnIHtcbiAgICAgIGhlaWdodDogQGlucHV0LWhlaWdodC1sZztcbiAgICB9XG4gICAgJi5Ae2FudC1wcmVmaXh9LWlucHV0LXNtIHtcbiAgICAgIGhlaWdodDogQGlucHV0LWhlaWdodC1zbTtcbiAgICAgIHBhZGRpbmctdG9wOiAzcHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogM3B4O1xuICAgIH1cbiAgfVxuXG4gICYtdGV4dGFyZWEge1xuICAgICYtc2hvdy1jb3VudDo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBjb2xvcjogQHRleHQtY29sb3Itc2Vjb25kYXJ5O1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICBjb250ZW50OiBhdHRyKGRhdGEtY291bnQpO1xuICAgIH1cbiAgfVxufVxuXG5AaW1wb3J0ICcuL3NlYXJjaC1pbnB1dCc7XG5AaW1wb3J0ICcuL3J0bCc7XG5AaW1wb3J0ICcuL0lFMTEnO1xuIiwiQGltcG9ydCAnLi4vLi4vc3R5bGUvdGhlbWVzL2luZGV4JztcbkBpbXBvcnQgJy4uLy4uL3N0eWxlL21peGlucy9pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi9idXR0b24vc3R5bGUvbWl4aW4nO1xuQGltcG9ydCAnLi9taXhpbic7XG5cbkBzZWFyY2gtcHJlZml4OiB+J0B7YW50LXByZWZpeH0taW5wdXQtc2VhcmNoJztcblxuLkB7c2VhcmNoLXByZWZpeH0ge1xuICAuQHthbnQtcHJlZml4fS1pbnB1dCB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJvcmRlci1jb2xvcjogQGlucHV0LWhvdmVyLWJvcmRlci1jb2xvcjtcblxuICAgICAgKyAuQHthbnQtcHJlZml4fS1pbnB1dC1ncm91cC1hZGRvbiAuQHtzZWFyY2gtcHJlZml4fS1idXR0b246bm90KC5Ae2FudC1wcmVmaXh9LWJ0bi1wcmltYXJ5KSB7XG4gICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBAaW5wdXQtaG92ZXItYm9yZGVyLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5Ae2FudC1wcmVmaXh9LWlucHV0LWFmZml4LXdyYXBwZXIge1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIH1cblxuICAvLyBmaXggc2xpZ2h0IGhlaWdodCBkaWZmIGluIEZpcmVmb3g6XG4gIC8vIGh0dHBzOi8vYW50LmRlc2lnbi9jb21wb25lbnRzL2F1dG8tY29tcGxldGUtY24vI2NvbXBvbmVudHMtYXV0by1jb21wbGV0ZS1kZW1vLWNlcnRhaW4tY2F0ZWdvcnlcbiAgLkB7YW50LXByZWZpeH0taW5wdXQtbGcge1xuICAgIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZSAtIDAuMDAwMjtcbiAgfVxuXG4gID4gLkB7YW50LXByZWZpeH0taW5wdXQtZ3JvdXAge1xuICAgID4gLkB7YW50LXByZWZpeH0taW5wdXQtZ3JvdXAtYWRkb246bGFzdC1jaGlsZCB7XG4gICAgICBsZWZ0OiAtMXB4O1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGJvcmRlcjogMDtcblxuICAgICAgLkB7c2VhcmNoLXByZWZpeH0tYnV0dG9uIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwIEBib3JkZXItcmFkaXVzLWJhc2UgQGJvcmRlci1yYWRpdXMtYmFzZSAwO1xuICAgICAgfVxuXG4gICAgICAuQHtzZWFyY2gtcHJlZml4fS1idXR0b246bm90KC5Ae2FudC1wcmVmaXh9LWJ0bi1wcmltYXJ5KSB7XG4gICAgICAgIGNvbG9yOiBAdGV4dC1jb2xvci1zZWNvbmRhcnk7XG5cbiAgICAgICAgJi5Ae2FudC1wcmVmaXh9LWJ0bi1sb2FkaW5nOjpiZWZvcmUge1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYtYnV0dG9uIHtcbiAgICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQtYmFzZTtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICB6LWluZGV4OiAxO1xuICAgIH1cbiAgfVxuXG4gICYtbGFyZ2UgJi1idXR0b24ge1xuICAgIGhlaWdodDogQGlucHV0LWhlaWdodC1sZztcbiAgfVxuXG4gICYtc21hbGwgJi1idXR0b24ge1xuICAgIGhlaWdodDogQGlucHV0LWhlaWdodC1zbTtcbiAgfVxufVxuIiwiLy8gRml4IElucHV0IGNvbXBvbmVudCBoZWlnaHQgaXNzdWUgaW4gSUUxMVxuQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLCAoLW1zLWhpZ2gtY29udHJhc3Q6IG5vbmUpIHtcbiAgLkB7YW50LXByZWZpeH0taW5wdXQge1xuICAgIGhlaWdodDogQGlucHV0LWhlaWdodC1iYXNlO1xuXG4gICAgJi1sZyB7XG4gICAgICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQtbGc7XG4gICAgfVxuXG4gICAgJi1zbSB7XG4gICAgICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQtc207XG4gICAgfVxuXG4gICAgJi1hZmZpeC13cmFwcGVyIHtcbiAgICAgID4gaW5wdXQuQHthbnQtcHJlZml4fS1pbnB1dCB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsInRleHRhcmVhLm56LXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZyB7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIC8vIEhhdmluZyAycHggdG9wIGFuZCBib3R0b20gcGFkZGluZyBzZWVtcyB0byBmaXggYSBidWcgd2hlcmUgQ2hyb21lIGdldHMgYW4gaW5jb3JyZWN0XG4gIC8vIG1lYXN1cmVtZW50LiBXZSBqdXN0IGhhdmUgdG8gYWNjb3VudCBmb3IgaXQgbGF0ZXIgYW5kIHN1YnRyYWN0IGl0IG9mZiB0aGUgZmluYWwgcmVzdWx0LlxuICBwYWRkaW5nOiAycHggMCAhaW1wb3J0YW50O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveCAhaW1wb3J0YW50O1xufVxuXG4uQHtzZWFyY2gtcHJlZml4fSB7XG4gICYtZW50ZXItYnV0dG9uIHtcbiAgICAmICsgLkB7YW50LXByZWZpeH0taW5wdXQtZ3JvdXAtYWRkb24sXG4gICAgaW5wdXQgKyAuQHthbnQtcHJlZml4fS1pbnB1dC1ncm91cC1hZGRvbiB7XG4gICAgICAuQHtzZWFyY2gtcnRsLWNsc30mIHtcbiAgICAgICAgLkB7c2VhcmNoLXByZWZpeH0tYnV0dG9uLkB7YW50LXByZWZpeH0tYnRuLWljb24tb25seSB7XG4gICAgICAgICAgLnNxdWFyZShAYnRuLWhlaWdodC1iYXNlKTtcblxuICAgICAgICAgICYuQHthbnQtcHJlZml4fS1idG4tc217XG4gICAgICAgICAgICAuc3F1YXJlKEBidG4taGVpZ2h0LXNtKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgJi5Ae2FudC1wcmVmaXh9LWJ0bi1sZ3tcbiAgICAgICAgICAgIC5zcXVhcmUoQGJ0bi1oZWlnaHQtbGcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGltcG9ydCAnLi4vLi4vc3R5bGUvbWl4aW5zL2luZGV4JztcblxuLmFudENoZWNrYm94Rm4oQGNoZWNrYm94LXByZWZpeC1jbHM6IH4nQHthbnQtcHJlZml4fS1jaGVja2JveCcpIHtcbiAgQGNoZWNrYm94LWlubmVyLXByZWZpeC1jbHM6IH4nQHtjaGVja2JveC1wcmVmaXgtY2xzfS1pbm5lcic7XG4gIC8vIOS4gOiIrOeKtuaAgVxuICAuQHtjaGVja2JveC1wcmVmaXgtY2xzfSB7XG4gICAgLnJlc2V0LWNvbXBvbmVudCgpO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTAuMDllbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgLkB7Y2hlY2tib3gtcHJlZml4LWNsc30td3JhcHBlcjpob3ZlciAmLWlubmVyLFxuICAgICY6aG92ZXIgJi1pbm5lcixcbiAgICAmLWlucHV0OmZvY3VzICsgJi1pbm5lciB7XG4gICAgICBib3JkZXItY29sb3I6IEBjaGVja2JveC1jb2xvcjtcbiAgICB9XG5cbiAgICAmLWNoZWNrZWQ6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIEBjaGVja2JveC1jb2xvcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2U7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICBhbmltYXRpb246IGFudENoZWNrYm94RWZmZWN0IDAuMzZzIGVhc2UtaW4tb3V0O1xuICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYmFja3dhcmRzO1xuICAgICAgY29udGVudDogJyc7XG4gICAgfVxuXG4gICAgJjpob3Zlcjo6YWZ0ZXIsXG4gICAgLkB7Y2hlY2tib3gtcHJlZml4LWNsc30td3JhcHBlcjpob3ZlciAmOjphZnRlciB7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cblxuICAgICYtaW5uZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IEBjaGVja2JveC1zaXplO1xuICAgICAgaGVpZ2h0OiBAY2hlY2tib3gtc2l6ZTtcbiAgICAgIGRpcmVjdGlvbjogbHRyO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGNoZWNrYm94LWNoZWNrLWJnO1xuICAgICAgYm9yZGVyOiBAY2hlY2tib3gtYm9yZGVyLXdpZHRoIEBib3JkZXItc3R5bGUtYmFzZSBAYm9yZGVyLWNvbG9yLWJhc2U7XG4gICAgICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlO1xuICAgICAgLy8gRml4IElFIGNoZWNrZWQgc3R5bGVcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzEyNTk3XG4gICAgICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgQGNoZWNrLXdpZHRoOiAoQGNoZWNrYm94LXNpemUgLyAxNCkgKiA1cHg7XG4gICAgICAgIEBjaGVjay1oZWlnaHQ6IChAY2hlY2tib3gtc2l6ZSAvIDE0KSAqIDhweDtcblxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiAyMiU7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICB3aWR0aDogQGNoZWNrLXdpZHRoO1xuICAgICAgICBoZWlnaHQ6IEBjaGVjay1oZWlnaHQ7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIEBjaGVja2JveC1jaGVjay1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSBzY2FsZSgwKSB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjFzIEBlYXNlLWluLWJhY2ssIG9wYWNpdHkgMC4xcztcbiAgICAgICAgY29udGVudDogJyAnO1xuICAgICAgfVxuICAgIH1cblxuICAgICYtaW5wdXQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cblxuICAvLyDpgInkuK3nirbmgIFcbiAgLkB7Y2hlY2tib3gtcHJlZml4LWNsc30tY2hlY2tlZCAuQHtjaGVja2JveC1pbm5lci1wcmVmaXgtY2xzfTo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCBAY2hlY2tib3gtY2hlY2stY29sb3I7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgc2NhbGUoMSkgdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgQGVhc2Utb3V0LWJhY2sgMC4xcztcbiAgICBjb250ZW50OiAnICc7XG4gIH1cblxuICAuQHtjaGVja2JveC1wcmVmaXgtY2xzfS1jaGVja2VkIHtcbiAgICAuQHtjaGVja2JveC1pbm5lci1wcmVmaXgtY2xzfSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAY2hlY2tib3gtY29sb3I7XG4gICAgICBib3JkZXItY29sb3I6IEBjaGVja2JveC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAuQHtjaGVja2JveC1wcmVmaXgtY2xzfS1kaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICYuQHtjaGVja2JveC1wcmVmaXgtY2xzfS1jaGVja2VkIHtcbiAgICAgIC5Ae2NoZWNrYm94LWlubmVyLXByZWZpeC1jbHN9OjphZnRlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogQGRpc2FibGVkLWNvbG9yO1xuICAgICAgICBhbmltYXRpb24tbmFtZTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuQHtjaGVja2JveC1wcmVmaXgtY2xzfS1pbnB1dCB7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cblxuICAgIC5Ae2NoZWNrYm94LWlubmVyLXByZWZpeC1jbHN9IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbnB1dC1kaXNhYmxlZC1iZztcbiAgICAgIGJvcmRlci1jb2xvcjogQGJvcmRlci1jb2xvci1iYXNlICFpbXBvcnRhbnQ7XG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogQGlucHV0LWRpc2FibGVkLWJnO1xuICAgICAgICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xuICAgICAgICBhbmltYXRpb24tbmFtZTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmICsgc3BhbiB7XG4gICAgICBjb2xvcjogQGRpc2FibGVkLWNvbG9yO1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG5cbiAgICAvLyBOb3Qgc2hvdyBoaWdobGlnaHQgYm9yZGVyIG9mIGNoZWNrYm94IHdoZW4gZGlzYWJsZWRcbiAgICAmOmhvdmVyOjphZnRlcixcbiAgICAuQHtjaGVja2JveC1wcmVmaXgtY2xzfS13cmFwcGVyOmhvdmVyICY6OmFmdGVyIHtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICAuQHtjaGVja2JveC1wcmVmaXgtY2xzfS13cmFwcGVyIHtcbiAgICAucmVzZXQtY29tcG9uZW50KCk7XG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6IHVuc2V0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAmLkB7Y2hlY2tib3gtcHJlZml4LWNsc30td3JhcHBlci1kaXNhYmxlZCB7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbiAgICAmICsgJiB7XG4gICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgIH1cbiAgfVxuXG4gIC5Ae2NoZWNrYm94LXByZWZpeC1jbHN9ICsgc3BhbiB7XG4gICAgcGFkZGluZy1yaWdodDogOHB4O1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xuICB9XG5cbiAgLkB7Y2hlY2tib3gtcHJlZml4LWNsc30tZ3JvdXAge1xuICAgIC5yZXNldC1jb21wb25lbnQoKTtcblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAmLWl0ZW0ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBAY2hlY2tib3gtZ3JvdXAtaXRlbS1tYXJnaW4tcmlnaHQ7XG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuICAgICYtaXRlbSArICYtaXRlbSB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cblxuICAvLyDljYrpgInnirbmgIFcbiAgLkB7Y2hlY2tib3gtcHJlZml4LWNsc30taW5kZXRlcm1pbmF0ZSB7XG4gICAgLkB7Y2hlY2tib3gtaW5uZXItcHJlZml4LWNsc30ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGNoZWNrYm94LWNoZWNrLWJnO1xuICAgICAgYm9yZGVyLWNvbG9yOiBAYm9yZGVyLWNvbG9yLWJhc2U7XG4gICAgfVxuICAgIC5Ae2NoZWNrYm94LWlubmVyLXByZWZpeC1jbHN9OjphZnRlciB7XG4gICAgICBAaW5kZXRlcm1pbmF0ZS13aWR0aDogQGNoZWNrYm94LXNpemUgLSA4cHg7XG4gICAgICBAaW5kZXRlcm1pbmF0ZS1oZWlnaHQ6IEBjaGVja2JveC1zaXplIC0gOHB4O1xuXG4gICAgICB0b3A6IDUwJTtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHdpZHRoOiBAaW5kZXRlcm1pbmF0ZS13aWR0aDtcbiAgICAgIGhlaWdodDogQGluZGV0ZXJtaW5hdGUtaGVpZ2h0O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGNoZWNrYm94LWNvbG9yO1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMSk7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgY29udGVudDogJyAnO1xuICAgIH1cblxuICAgICYuQHtjaGVja2JveC1wcmVmaXgtY2xzfS1kaXNhYmxlZCAuQHtjaGVja2JveC1pbm5lci1wcmVmaXgtY2xzfTo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGRpc2FibGVkLWNvbG9yO1xuICAgICAgYm9yZGVyLWNvbG9yOiBAZGlzYWJsZWQtY29sb3I7XG4gICAgfVxuICB9XG59XG5cbkBrZXlmcmFtZXMgYW50Q2hlY2tib3hFZmZlY3Qge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBvcGFjaXR5OiAwLjU7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjYpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbiIsIkBpbXBvcnQgJy4uLy4uL3N0eWxlL21peGlucy9pbmRleCc7XG5cbi5hbnRDaGVja2JveEZuKEBjaGVja2JveC1wcmVmaXgtY2xzOiB+J0B7YW50LXByZWZpeH0tY2hlY2tib3gnKSB7XG4gIC5Ae2NoZWNrYm94LXByZWZpeC1jbHN9LXJ0bCB7XG4gICAgZGlyZWN0aW9uOiBydGw7XG4gIH1cblxuICAuQHtjaGVja2JveC1wcmVmaXgtY2xzfS1ncm91cCB7XG4gICAgJi1pdGVtIHtcbiAgICAgIC5Ae2NoZWNrYm94LXByZWZpeC1jbHN9LWdyb3VwLXJ0bCAmIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogQGNoZWNrYm94LWdyb3VwLWl0ZW0tbWFyZ2luLXJpZ2h0O1xuICAgICAgfVxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgLkB7Y2hlY2tib3gtcHJlZml4LWNsc30tZ3JvdXAtcnRsICYge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi1pdGVtICsgJi1pdGVtIHtcbiAgICAgIC5Ae2NoZWNrYm94LXByZWZpeC1jbHN9LWdyb3VwLXJ0bCAmIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IEBjaGVja2JveC1ncm91cC1pdGVtLW1hcmdpbi1yaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5hbnQtY2hlY2tib3ggKyBzcGFuIHtcbiAgJjplbXB0eSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiQGltcG9ydCAnLi4vLi4vc3R5bGUvdGhlbWVzL2luZGV4JztcbkBpbXBvcnQgJy4uLy4uL3N0eWxlL21peGlucy9pbmRleCc7XG5AaW1wb3J0ICcuL2N1c3RvbWl6ZS5sZXNzJztcblxuQG5vdGlmaWNhdGlvbi1wcmVmaXgtY2xzOiB+J0B7YW50LXByZWZpeH0tbm90aWZpY2F0aW9uJztcbkBub3RpZmljYXRpb24td2lkdGg6IDM4NHB4O1xuQG5vdGlmaWNhdGlvbi1wYWRkaW5nOiBAbm90aWZpY2F0aW9uLXBhZGRpbmctdmVydGljYWwgQG5vdGlmaWNhdGlvbi1wYWRkaW5nLWhvcml6b250YWw7XG5Abm90aWZpY2F0aW9uLW1hcmdpbi1ib3R0b206IDE2cHg7XG5Abm90aWZpY2F0aW9uLW1hcmdpbi1lZGdlOiAyNHB4O1xuXG4uQHtub3RpZmljYXRpb24tcHJlZml4LWNsc30ge1xuICAucmVzZXQtY29tcG9uZW50KCk7XG5cbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiBAemluZGV4LW5vdGlmaWNhdGlvbjtcbiAgbWFyZ2luLXJpZ2h0OiBAbm90aWZpY2F0aW9uLW1hcmdpbi1lZGdlO1xuXG4gICYtdG9wTGVmdCxcbiAgJi1ib3R0b21MZWZ0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IEBub3RpZmljYXRpb24tbWFyZ2luLWVkZ2U7XG5cbiAgICAuQHtub3RpZmljYXRpb24tcHJlZml4LWNsc30tZmFkZS1lbnRlci5Ae25vdGlmaWNhdGlvbi1wcmVmaXgtY2xzfS1mYWRlLWVudGVyLWFjdGl2ZSxcbiAgICAuQHtub3RpZmljYXRpb24tcHJlZml4LWNsc30tZmFkZS1hcHBlYXIuQHtub3RpZmljYXRpb24tcHJlZml4LWNsc30tZmFkZS1hcHBlYXItYWN0aXZlIHtcbiAgICAgIGFuaW1hdGlvbi1uYW1lOiBOb3RpZmljYXRpb25MZWZ0RmFkZUluO1xuICAgIH1cbiAgfVxuXG4gICYtY2xvc2UtaWNvbiB7XG4gICAgZm9udC1zaXplOiBAZm9udC1zaXplLWJhc2U7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJi1ob29rLWhvbGRlcixcbiAgJi1ub3RpY2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogQG5vdGlmaWNhdGlvbi13aWR0aDtcbiAgICBtYXgtd2lkdGg6IH4nY2FsYygxMDB2dyAtIEB7bm90aWZpY2F0aW9uLW1hcmdpbi1lZGdlfSAqIDIpJztcbiAgICBtYXJnaW4tYm90dG9tOiBAbm90aWZpY2F0aW9uLW1hcmdpbi1ib3R0b207XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgYmFja2dyb3VuZDogQG5vdGlmaWNhdGlvbi1iZztcbiAgICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlO1xuICAgIGJveC1zaGFkb3c6IEBzaGFkb3ctMjtcblxuICAgIC5Ae25vdGlmaWNhdGlvbi1wcmVmaXgtY2xzfS10b3BMZWZ0ICYsXG4gICAgLkB7bm90aWZpY2F0aW9uLXByZWZpeC1jbHN9LWJvdHRvbUxlZnQgJiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cblxuICAmLWhvb2staG9sZGVyID4gJi1ub3RpY2Uge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuXG4gICYtbm90aWNlIHtcbiAgICBwYWRkaW5nOiBAbm90aWZpY2F0aW9uLXBhZGRpbmc7XG4gICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuXG4gICAgJi1tZXNzYWdlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICAgIGNvbG9yOiBAaGVhZGluZy1jb2xvcjtcbiAgICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1sZztcbiAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy81ODQ2I2lzc3VlY29tbWVudC0yOTYyNDQxNDBcbiAgICAgICYtc2luZ2xlLWxpbmUtYXV0by1tYXJnaW4ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IH4nY2FsYyhAe25vdGlmaWNhdGlvbi13aWR0aH0gLSBAe25vdGlmaWNhdGlvbi1wYWRkaW5nLWhvcml6b250YWx9ICogMiAtIDI0cHggLSA0OHB4IC0gMTAwJSknO1xuICAgICAgICBtYXgtd2lkdGg6IDRweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi1kZXNjcmlwdGlvbiB7XG4gICAgICBmb250LXNpemU6IEBmb250LXNpemUtYmFzZTtcbiAgICB9XG5cbiAgICAmLWNsb3NhYmxlICYtbWVzc2FnZSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICAgIH1cblxuICAgICYtd2l0aC1pY29uICYtbWVzc2FnZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgICBtYXJnaW4tbGVmdDogNDhweDtcbiAgICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1sZztcbiAgICB9XG5cbiAgICAmLXdpdGgtaWNvbiAmLWRlc2NyaXB0aW9uIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA0OHB4O1xuICAgICAgZm9udC1zaXplOiBAZm9udC1zaXplLWJhc2U7XG4gICAgfVxuXG4gICAgLy8gSWNvbiAmIGNvbG9yIHN0eWxlIGluIGRpZmZlcmVudCBzZWxlY3RvciBsZXZlbFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzE2NTAzXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvMTU1MTJcbiAgICAmLWljb24ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIH1cblxuICAgIC5Ae2ljb25mb250LWNzcy1wcmVmaXh9Ji1pY29uIHtcbiAgICAgICYtc3VjY2VzcyB7XG4gICAgICAgIGNvbG9yOiBAc3VjY2Vzcy1jb2xvcjtcbiAgICAgIH1cbiAgICAgICYtaW5mbyB7XG4gICAgICAgIGNvbG9yOiBAaW5mby1jb2xvcjtcbiAgICAgIH1cbiAgICAgICYtd2FybmluZyB7XG4gICAgICAgIGNvbG9yOiBAd2FybmluZy1jb2xvcjtcbiAgICAgIH1cbiAgICAgICYtZXJyb3Ige1xuICAgICAgICBjb2xvcjogQGVycm9yLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgICYtY2xvc2Uge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAxNnB4O1xuICAgICAgcmlnaHQ6IDIycHg7XG4gICAgICBjb2xvcjogQHRleHQtY29sb3Itc2Vjb25kYXJ5O1xuICAgICAgb3V0bGluZTogbm9uZTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgICYgd2hlbiAoQHRoZW1lID0gZGFyaykge1xuICAgICAgICAgIGNvbG9yOiBmYWRlKEB3aGl0ZSwgODUlKTtcbiAgICAgICAgfVxuICAgICAgICAmIHdoZW4gbm90IChAdGhlbWUgPSBkYXJrKSB7XG4gICAgICAgICAgY29sb3I6IHNoYWRlKEB0ZXh0LWNvbG9yLXNlY29uZGFyeSwgNDAlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYtYnRuIHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgfVxuICB9XG5cbiAgLm5vdGlmaWNhdGlvbi1mYWRlLWVmZmVjdCB7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjI0cztcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBAZWFzZS1pbi1vdXQ7XG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgfVxuXG4gICYtZmFkZS1lbnRlcixcbiAgJi1mYWRlLWFwcGVhciB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAubm90aWZpY2F0aW9uLWZhZGUtZWZmZWN0KCk7XG5cbiAgICBhbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkO1xuICB9XG5cbiAgJi1mYWRlLWxlYXZlIHtcbiAgICAubm90aWZpY2F0aW9uLWZhZGUtZWZmZWN0KCk7XG5cbiAgICBhbmltYXRpb24tZHVyYXRpb246IDAuMnM7XG4gICAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHBhdXNlZDtcbiAgfVxuXG4gICYtZmFkZS1lbnRlciYtZmFkZS1lbnRlci1hY3RpdmUsXG4gICYtZmFkZS1hcHBlYXImLWZhZGUtYXBwZWFyLWFjdGl2ZSB7XG4gICAgYW5pbWF0aW9uLW5hbWU6IE5vdGlmaWNhdGlvbkZhZGVJbjtcbiAgICBhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZztcbiAgfVxuXG4gICYtZmFkZS1sZWF2ZSYtZmFkZS1sZWF2ZS1hY3RpdmUge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBOb3RpZmljYXRpb25GYWRlT3V0O1xuICAgIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgTm90aWZpY2F0aW9uRmFkZUluIHtcbiAgMCUge1xuICAgIGxlZnQ6IEBub3RpZmljYXRpb24td2lkdGg7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAxMDAlIHtcbiAgICBsZWZ0OiAwO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBOb3RpZmljYXRpb25MZWZ0RmFkZUluIHtcbiAgMCUge1xuICAgIHJpZ2h0OiBAbm90aWZpY2F0aW9uLXdpZHRoO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgMTAwJSB7XG4gICAgcmlnaHQ6IDA7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIE5vdGlmaWNhdGlvbkZhZGVPdXQge1xuICAwJSB7XG4gICAgbWF4LWhlaWdodDogMTUwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogQG5vdGlmaWNhdGlvbi1tYXJnaW4tYm90dG9tO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgMTAwJSB7XG4gICAgbWF4LWhlaWdodDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGltcG9ydCAnLi9ydGwnO1xuIiwiQGltcG9ydCAnLi4vLi4vc3R5bGUvdGhlbWVzL2luZGV4JztcbkBpbXBvcnQgJy4uLy4uL3N0eWxlL21peGlucy9pbmRleCc7XG5cbkBub3RpZmljYXRpb24tcHJlZml4LWNsczogfidAe2FudC1wcmVmaXh9LW5vdGlmaWNhdGlvbic7XG5cbi5Ae25vdGlmaWNhdGlvbi1wcmVmaXgtY2xzfSB7XG4gICYtcnRsIHtcbiAgICBkaXJlY3Rpb246IHJ0bDtcbiAgfVxuXG4gICYtbm90aWNlIHtcbiAgICAmLWNsb3NhYmxlICYtbWVzc2FnZSB7XG4gICAgICAuQHtub3RpZmljYXRpb24tcHJlZml4LWNsc30tcnRsICYge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi13aXRoLWljb24gJi1tZXNzYWdlIHtcbiAgICAgIC5Ae25vdGlmaWNhdGlvbi1wcmVmaXgtY2xzfS1ydGwgJiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNDhweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi13aXRoLWljb24gJi1kZXNjcmlwdGlvbiB7XG4gICAgICAuQHtub3RpZmljYXRpb24tcHJlZml4LWNsc30tcnRsICYge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDQ4cHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICYtaWNvbiB7XG4gICAgICAuQHtub3RpZmljYXRpb24tcHJlZml4LWNsc30tcnRsICYge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi1jbG9zZSB7XG4gICAgICAuQHtub3RpZmljYXRpb24tcHJlZml4LWNsc30tcnRsICYge1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgbGVmdDogMjJweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLWJ0biB7XG4gICAgICAuQHtub3RpZmljYXRpb24tcHJlZml4LWNsc30tcnRsICYge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgJy4uLy4uL3N0eWxlL3RoZW1lcy9pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi9zdHlsZS9taXhpbnMvaW5kZXgnO1xuXG5AcmF0ZS1wcmVmaXgtY2xzOiB+J0B7YW50LXByZWZpeH0tcmF0ZSc7XG5cbi5Ae3JhdGUtcHJlZml4LWNsc30ge1xuICAucmVzZXQtY29tcG9uZW50KCk7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGNvbG9yOiBAcmF0ZS1zdGFyLWNvbG9yO1xuICBmb250LXNpemU6IEByYXRlLXN0YXItc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IHVuc2V0O1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuXG4gICYtZGlzYWJsZWQgJi1zdGFyIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgJjpob3ZlciB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIH1cbiAgfVxuXG4gICYtc3RhciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG5cbiAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgfVxuXG4gICAgPiBkaXYge1xuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IDA7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgdHJhbnNmb3JtOiBAcmF0ZS1zdGFyLWhvdmVyLXNjYWxlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYtZmlyc3QsXG4gICAgJi1zZWNvbmQge1xuICAgICAgY29sb3I6IEByYXRlLXN0YXItYmc7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgLkB7aWNvbmZvbnQtY3NzLXByZWZpeH0ge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYtZmlyc3Qge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICAmLWhhbGYgJi1maXJzdCxcbiAgICAmLWhhbGYgJi1zZWNvbmQge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmLWhhbGYgJi1maXJzdCxcbiAgICAmLWZ1bGwgJi1zZWNvbmQge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICB9XG5cbiAgJi10ZXh0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwIDhweDtcbiAgICBmb250LXNpemU6IEBmb250LXNpemUtYmFzZTtcbiAgfVxufVxuXG5AaW1wb3J0ICcuL3J0bCc7XG4iLCIuQHtyYXRlLXByZWZpeC1jbHN9IHtcbiAgJi1ydGwge1xuICAgIGRpcmVjdGlvbjogcnRsO1xuICB9XG5cbiAgJi1zdGFyIHtcbiAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgLkB7cmF0ZS1wcmVmaXgtY2xzfS1ydGwgJiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLWZpcnN0IHtcbiAgICAgIC5Ae3JhdGUtcHJlZml4LWNsc30tcnRsICYge1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgJy4uLy4uL3N0eWxlL3RoZW1lcy9pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi9zdHlsZS9taXhpbnMvaW5kZXgnO1xuXG5AdG9vbHRpcC1wcmVmaXgtY2xzOiB+J0B7YW50LXByZWZpeH0tdG9vbHRpcCc7XG5cbkB0b29sdGlwLWFycm93LXNoYWRvdy13aWR0aDogM3B4O1xuXG5AdG9vbHRpcC1hcnJvdy1yb3RhdGUtd2lkdGg6IHNxcnQoQHRvb2x0aXAtYXJyb3ctd2lkdGggKiBAdG9vbHRpcC1hcnJvdy13aWR0aCAqIDIpICtcbiAgQHRvb2x0aXAtYXJyb3ctc2hhZG93LXdpZHRoICogMjtcblxuQHRvb2x0aXAtYXJyb3ctb2Zmc2V0LXZlcnRpY2FsOiA1cHg7IC8vIDggLSAzcHhcbkB0b29sdGlwLWFycm93LW9mZnNldC1ob3Jpem9udGFsOiAxM3B4OyAvLyAxNiAtIDNweFxuXG4vLyBCYXNlIGNsYXNzXG4uQHt0b29sdGlwLXByZWZpeC1jbHN9IHtcbiAgLnJlc2V0LWNvbXBvbmVudCgpO1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogQHppbmRleC10b29sdGlwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiBAdG9vbHRpcC1tYXgtd2lkdGg7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG5cbiAgJi1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmLXBsYWNlbWVudC10b3AsXG4gICYtcGxhY2VtZW50LXRvcExlZnQsXG4gICYtcGxhY2VtZW50LXRvcFJpZ2h0IHtcbiAgICBwYWRkaW5nLWJvdHRvbTogQHRvb2x0aXAtZGlzdGFuY2U7XG4gIH1cblxuICAmLXBsYWNlbWVudC1yaWdodCxcbiAgJi1wbGFjZW1lbnQtcmlnaHRUb3AsXG4gICYtcGxhY2VtZW50LXJpZ2h0Qm90dG9tIHtcbiAgICBwYWRkaW5nLWxlZnQ6IEB0b29sdGlwLWRpc3RhbmNlO1xuICB9XG5cbiAgJi1wbGFjZW1lbnQtYm90dG9tLFxuICAmLXBsYWNlbWVudC1ib3R0b21MZWZ0LFxuICAmLXBsYWNlbWVudC1ib3R0b21SaWdodCB7XG4gICAgcGFkZGluZy10b3A6IEB0b29sdGlwLWRpc3RhbmNlO1xuICB9XG5cbiAgJi1wbGFjZW1lbnQtbGVmdCxcbiAgJi1wbGFjZW1lbnQtbGVmdFRvcCxcbiAgJi1wbGFjZW1lbnQtbGVmdEJvdHRvbSB7XG4gICAgcGFkZGluZy1yaWdodDogQHRvb2x0aXAtZGlzdGFuY2U7XG4gIH1cblxuICAvLyBXcmFwcGVyIGZvciB0aGUgdG9vbHRpcCBjb250ZW50XG4gICYtaW5uZXIge1xuICAgIG1pbi13aWR0aDogMzBweDtcbiAgICBtaW4taGVpZ2h0OiAzMnB4O1xuICAgIHBhZGRpbmc6IDZweCA4cHg7XG4gICAgY29sb3I6IEB0b29sdGlwLWNvbG9yO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAdG9vbHRpcC1iZztcbiAgICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlO1xuICAgIGJveC1zaGFkb3c6IEBib3gtc2hhZG93LWJhc2U7XG4gIH1cblxuICAvLyBBcnJvd3NcbiAgJi1hcnJvdyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiBAdG9vbHRpcC1hcnJvdy1yb3RhdGUtd2lkdGg7XG4gICAgaGVpZ2h0OiBAdG9vbHRpcC1hcnJvdy1yb3RhdGUtd2lkdGg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICYtY29udGVudCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiBAdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICAgIGhlaWdodDogQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgICBtYXJnaW46IGF1dG87XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAdG9vbHRpcC1iZztcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgJi1wbGFjZW1lbnQtdG9wICYtYXJyb3csXG4gICYtcGxhY2VtZW50LXRvcExlZnQgJi1hcnJvdyxcbiAgJi1wbGFjZW1lbnQtdG9wUmlnaHQgJi1hcnJvdyB7XG4gICAgYm90dG9tOiBAdG9vbHRpcC1kaXN0YW5jZSAtIEB0b29sdGlwLWFycm93LXJvdGF0ZS13aWR0aDtcblxuICAgICYtY29udGVudCB7XG4gICAgICBib3gtc2hhZG93OiBAdG9vbHRpcC1hcnJvdy1zaGFkb3ctd2lkdGggQHRvb2x0aXAtYXJyb3ctc2hhZG93LXdpZHRoIDdweCBmYWRlKEBibGFjaywgNyUpO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCgtQHRvb2x0aXAtYXJyb3ctcm90YXRlLXdpZHRoIC8gMikpIHJvdGF0ZSg0NWRlZyk7XG4gICAgfVxuICB9XG5cbiAgJi1wbGFjZW1lbnQtdG9wICYtYXJyb3cge1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIH1cblxuICAmLXBsYWNlbWVudC10b3BMZWZ0ICYtYXJyb3cge1xuICAgIGxlZnQ6IEB0b29sdGlwLWFycm93LW9mZnNldC1ob3Jpem9udGFsO1xuICB9XG5cbiAgJi1wbGFjZW1lbnQtdG9wUmlnaHQgJi1hcnJvdyB7XG4gICAgcmlnaHQ6IEB0b29sdGlwLWFycm93LW9mZnNldC1ob3Jpem9udGFsO1xuICB9XG5cbiAgJi1wbGFjZW1lbnQtcmlnaHQgJi1hcnJvdyxcbiAgJi1wbGFjZW1lbnQtcmlnaHRUb3AgJi1hcnJvdyxcbiAgJi1wbGFjZW1lbnQtcmlnaHRCb3R0b20gJi1hcnJvdyB7XG4gICAgbGVmdDogQHRvb2x0aXAtZGlzdGFuY2UgLSBAdG9vbHRpcC1hcnJvdy1yb3RhdGUtd2lkdGg7XG5cbiAgICAmLWNvbnRlbnQge1xuICAgICAgYm94LXNoYWRvdzogLUB0b29sdGlwLWFycm93LXNoYWRvdy13aWR0aCBAdG9vbHRpcC1hcnJvdy1zaGFkb3ctd2lkdGggN3B4IGZhZGUoQGJsYWNrLCA3JSk7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoKEB0b29sdGlwLWFycm93LXJvdGF0ZS13aWR0aCAvIDIpKSByb3RhdGUoNDVkZWcpO1xuICAgIH1cbiAgfVxuXG4gICYtcGxhY2VtZW50LXJpZ2h0ICYtYXJyb3cge1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgfVxuXG4gICYtcGxhY2VtZW50LXJpZ2h0VG9wICYtYXJyb3cge1xuICAgIHRvcDogQHRvb2x0aXAtYXJyb3ctb2Zmc2V0LXZlcnRpY2FsO1xuICB9XG5cbiAgJi1wbGFjZW1lbnQtcmlnaHRCb3R0b20gJi1hcnJvdyB7XG4gICAgYm90dG9tOiBAdG9vbHRpcC1hcnJvdy1vZmZzZXQtdmVydGljYWw7XG4gIH1cblxuICAmLXBsYWNlbWVudC1sZWZ0ICYtYXJyb3csXG4gICYtcGxhY2VtZW50LWxlZnRUb3AgJi1hcnJvdyxcbiAgJi1wbGFjZW1lbnQtbGVmdEJvdHRvbSAmLWFycm93IHtcbiAgICByaWdodDogQHRvb2x0aXAtZGlzdGFuY2UgLSBAdG9vbHRpcC1hcnJvdy1yb3RhdGUtd2lkdGg7XG5cbiAgICAmLWNvbnRlbnQge1xuICAgICAgYm94LXNoYWRvdzogQHRvb2x0aXAtYXJyb3ctc2hhZG93LXdpZHRoIC1AdG9vbHRpcC1hcnJvdy1zaGFkb3ctd2lkdGggN3B4IGZhZGUoQGJsYWNrLCA3JSk7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoKC1AdG9vbHRpcC1hcnJvdy1yb3RhdGUtd2lkdGggLyAyKSkgcm90YXRlKDQ1ZGVnKTtcbiAgICB9XG4gIH1cblxuICAmLXBsYWNlbWVudC1sZWZ0ICYtYXJyb3cge1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgfVxuXG4gICYtcGxhY2VtZW50LWxlZnRUb3AgJi1hcnJvdyB7XG4gICAgdG9wOiBAdG9vbHRpcC1hcnJvdy1vZmZzZXQtdmVydGljYWw7XG4gIH1cblxuICAmLXBsYWNlbWVudC1sZWZ0Qm90dG9tICYtYXJyb3cge1xuICAgIGJvdHRvbTogQHRvb2x0aXAtYXJyb3ctb2Zmc2V0LXZlcnRpY2FsO1xuICB9XG5cbiAgJi1wbGFjZW1lbnQtYm90dG9tICYtYXJyb3csXG4gICYtcGxhY2VtZW50LWJvdHRvbUxlZnQgJi1hcnJvdyxcbiAgJi1wbGFjZW1lbnQtYm90dG9tUmlnaHQgJi1hcnJvdyB7XG4gICAgdG9wOiBAdG9vbHRpcC1kaXN0YW5jZSAtIEB0b29sdGlwLWFycm93LXJvdGF0ZS13aWR0aDtcblxuICAgICYtY29udGVudCB7XG4gICAgICBib3gtc2hhZG93OiAtQHRvb2x0aXAtYXJyb3ctc2hhZG93LXdpZHRoIC1AdG9vbHRpcC1hcnJvdy1zaGFkb3ctd2lkdGggN3B4IGZhZGUoQGJsYWNrLCA3JSk7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoKEB0b29sdGlwLWFycm93LXJvdGF0ZS13aWR0aCAvIDIpKSByb3RhdGUoNDVkZWcpO1xuICAgIH1cbiAgfVxuXG4gICYtcGxhY2VtZW50LWJvdHRvbSAmLWFycm93IHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB9XG5cbiAgJi1wbGFjZW1lbnQtYm90dG9tTGVmdCAmLWFycm93IHtcbiAgICBsZWZ0OiBAdG9vbHRpcC1hcnJvdy1vZmZzZXQtaG9yaXpvbnRhbDtcbiAgfVxuXG4gICYtcGxhY2VtZW50LWJvdHRvbVJpZ2h0ICYtYXJyb3cge1xuICAgIHJpZ2h0OiBAdG9vbHRpcC1hcnJvdy1vZmZzZXQtaG9yaXpvbnRhbDtcbiAgfVxufVxuXG4uZ2VuZXJhdG9yLXRvb2x0aXAtcHJlc2V0LWNvbG9yKEBpOiBsZW5ndGgoQHByZXNldC1jb2xvcnMpKSB3aGVuIChAaSA+IDApIHtcbiAgLmdlbmVyYXRvci10b29sdGlwLXByZXNldC1jb2xvcihAaSAtIDEpO1xuICBAY29sb3I6IGV4dHJhY3QoQHByZXNldC1jb2xvcnMsIEBpKTtcbiAgQGxpZ2h0Q29sb3I6ICdAe2NvbG9yfS02JztcbiAgLkB7dG9vbHRpcC1wcmVmaXgtY2xzfS1Ae2NvbG9yfSB7XG4gICAgLkB7dG9vbHRpcC1wcmVmaXgtY2xzfS1pbm5lciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAQGxpZ2h0Q29sb3I7XG4gICAgfVxuICAgIC5Ae3Rvb2x0aXAtcHJlZml4LWNsc30tYXJyb3cge1xuICAgICAgJi1jb250ZW50IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQEBsaWdodENvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLmdlbmVyYXRvci10b29sdGlwLXByZXNldC1jb2xvcigpO1xuXG5AaW1wb3J0ICcuL3J0bCc7XG4iLCJAdG9vbHRpcC1wcmVmaXgtY2xzOiB+J0B7YW50LXByZWZpeH0tdG9vbHRpcCc7XG5cbi8vIEJhc2UgY2xhc3Ncbi5Ae3Rvb2x0aXAtcHJlZml4LWNsc30ge1xuICAmLXJ0bCB7XG4gICAgZGlyZWN0aW9uOiBydGw7XG4gIH1cbiAgLy8gV3JhcHBlciBmb3IgdGhlIHRvb2x0aXAgY29udGVudFxuICAmLWlubmVyIHtcbiAgICAuQHt0b29sdGlwLXByZWZpeC1jbHN9LXJ0bCAmIHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxufVxuIiwiLmFudC10b29sdGlwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuIiwiQGltcG9ydCAnLi4vLi4vc3R5bGUvdGhlbWVzL2luZGV4JztcbkBpbXBvcnQgJy4uLy4uL3N0eWxlL21peGlucy9pbmRleCc7XG5cbkBzbGlkZXItcHJlZml4LWNsczogfidAe2FudC1wcmVmaXh9LXNsaWRlcic7XG5cbi5Ae3NsaWRlci1wcmVmaXgtY2xzfSB7XG4gIC5yZXNldC1jb21wb25lbnQoKTtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMTJweDtcbiAgbWFyZ2luOiBAc2xpZGVyLW1hcmdpbjtcbiAgcGFkZGluZzogNHB4IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdG91Y2gtYWN0aW9uOiBub25lO1xuXG4gIC52ZXJ0aWNhbCgpO1xuXG4gICYtd2l0aC1tYXJrcyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjhweDtcbiAgfVxuXG4gICYtcmFpbCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBzbGlkZXItcmFpbC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2U7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzO1xuICB9XG5cbiAgJi10cmFjayB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogNHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBzbGlkZXItdHJhY2stYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcztcbiAgfVxuXG4gICYtaGFuZGxlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IEBzbGlkZXItaGFuZGxlLXNpemU7XG4gICAgaGVpZ2h0OiBAc2xpZGVyLWhhbmRsZS1zaXplO1xuICAgIG1hcmdpbi10b3A6IEBzbGlkZXItaGFuZGxlLW1hcmdpbi10b3A7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXI6IHNvbGlkIEBzbGlkZXItaGFuZGxlLWJvcmRlci13aWR0aCBAc2xpZGVyLWhhbmRsZS1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm94LXNoYWRvdzogQHNsaWRlci1oYW5kbGUtc2hhZG93O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4zcywgYm94LXNoYWRvdyAwLjZzLFxuICAgICAgdHJhbnNmb3JtIDAuM3MgY3ViaWMtYmV6aWVyKDAuMTgsIDAuODksIDAuMzIsIDEuMjgpO1xuXG4gICAgJi1kcmFnZ2luZyYtZHJhZ2dpbmcmLWRyYWdnaW5nIHtcbiAgICAgIGJvcmRlci1jb2xvcjogQHNsaWRlci1oYW5kbGUtY29sb3ItZm9jdXM7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCA1cHggQHNsaWRlci1oYW5kbGUtY29sb3ItZm9jdXMtc2hhZG93O1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiBAc2xpZGVyLWhhbmRsZS1jb2xvci1mb2N1cztcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCA1cHggQHNsaWRlci1oYW5kbGUtY29sb3ItZm9jdXMtc2hhZG93O1xuICAgIH1cblxuICAgICYuQHthbnQtcHJlZml4fS10b29sdGlwLW9wZW4ge1xuICAgICAgYm9yZGVyLWNvbG9yOiBAc2xpZGVyLWhhbmRsZS1jb2xvci10b29sdGlwLW9wZW47XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgLkB7c2xpZGVyLXByZWZpeC1jbHN9LXJhaWwge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQHNsaWRlci1yYWlsLWJhY2tncm91bmQtY29sb3ItaG92ZXI7XG4gICAgfVxuICAgIC5Ae3NsaWRlci1wcmVmaXgtY2xzfS10cmFjayB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAc2xpZGVyLXRyYWNrLWJhY2tncm91bmQtY29sb3ItaG92ZXI7XG4gICAgfVxuICAgIC5Ae3NsaWRlci1wcmVmaXgtY2xzfS1oYW5kbGU6bm90KC5Ae2FudC1wcmVmaXh9LXRvb2x0aXAtb3Blbikge1xuICAgICAgYm9yZGVyLWNvbG9yOiBAc2xpZGVyLWhhbmRsZS1jb2xvci1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICAmLW1hcmsge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDE0cHg7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmb250LXNpemU6IEBmb250LXNpemUtYmFzZTtcbiAgfVxuXG4gICYtbWFyay10ZXh0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGNvbG9yOiBAdGV4dC1jb2xvci1zZWNvbmRhcnk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdvcmQtYnJlYWs6IGtlZXAtYWxsO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICYtYWN0aXZlIHtcbiAgICAgIGNvbG9yOiBAdGV4dC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAmLXN0ZXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gICYtZG90IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtMnB4O1xuICAgIHdpZHRoOiA4cHg7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgbWFyZ2luLWxlZnQ6IC00cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGNvbXBvbmVudC1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIEBzbGlkZXItZG90LWJvcmRlci1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tbGVmdDogLTRweDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtNHB4O1xuICAgIH1cbiAgICAmLWFjdGl2ZSB7XG4gICAgICBib3JkZXItY29sb3I6IEBzbGlkZXItZG90LWJvcmRlci1jb2xvci1hY3RpdmU7XG4gICAgfVxuICB9XG5cbiAgJi1kaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgIC5Ae3NsaWRlci1wcmVmaXgtY2xzfS10cmFjayB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAc2xpZGVyLWRpc2FibGVkLWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLkB7c2xpZGVyLXByZWZpeC1jbHN9LWhhbmRsZSxcbiAgICAuQHtzbGlkZXItcHJlZml4LWNsc30tZG90IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBjb21wb25lbnQtYmFja2dyb3VuZDtcbiAgICAgIGJvcmRlci1jb2xvcjogQHNsaWRlci1kaXNhYmxlZC1jb2xvciAhaW1wb3J0YW50O1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuXG4gICAgLkB7c2xpZGVyLXByZWZpeC1jbHN9LW1hcmstdGV4dCxcbiAgICAuQHtzbGlkZXItcHJlZml4LWNsc30tZG90IHtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuLnZlcnRpY2FsKCkge1xuICAmLXZlcnRpY2FsIHtcbiAgICB3aWR0aDogMTJweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWFyZ2luOiA2cHggMTBweDtcbiAgICBwYWRkaW5nOiAwIDRweDtcblxuICAgIC5Ae3NsaWRlci1wcmVmaXgtY2xzfS1yYWlsIHtcbiAgICAgIHdpZHRoOiA0cHg7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgLkB7c2xpZGVyLXByZWZpeC1jbHN9LXRyYWNrIHtcbiAgICAgIHdpZHRoOiA0cHg7XG4gICAgfVxuXG4gICAgLkB7c2xpZGVyLXByZWZpeC1jbHN9LWhhbmRsZSB7XG4gICAgICBtYXJnaW4tdG9wOiAtNnB4OyAvLyB3ZSBjaG91bGQgY29uc2lkZXIgYm9yZGVyIHdpZHRoIGFzIHdlbGw6ICgxMCArIDIgKSAvIDJcbiAgICAgIG1hcmdpbi1sZWZ0OiAtNXB4O1xuICAgIH1cblxuICAgIC5Ae3NsaWRlci1wcmVmaXgtY2xzfS1tYXJrIHtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDEycHg7XG4gICAgICB3aWR0aDogMThweDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICAuQHtzbGlkZXItcHJlZml4LWNsc30tbWFyay10ZXh0IHtcbiAgICAgIGxlZnQ6IDRweDtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgLkB7c2xpZGVyLXByZWZpeC1jbHN9LXN0ZXAge1xuICAgICAgd2lkdGg6IDRweDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICAuQHtzbGlkZXItcHJlZml4LWNsc30tZG90IHtcbiAgICAgIHRvcDogYXV0bztcbiAgICAgIGxlZnQ6IDJweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IC00cHg7XG4gICAgfVxuICB9XG5cbiAgJi10b29sdGlwIHtcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy8yMDAxNFxuICAgIC5Ae2FudC1wcmVmaXh9LXRvb2x0aXAtaW5uZXIge1xuICAgICAgbWluLXdpZHRoOiB1bnNldDtcbiAgICB9XG4gIH1cbn1cblxuQGltcG9ydCAnLi9ydGwnO1xuIiwiQGltcG9ydCAnLi4vLi4vc3R5bGUvdGhlbWVzL2luZGV4JztcbkBpbXBvcnQgJy4uLy4uL3N0eWxlL21peGlucy9pbmRleCc7XG5cbkBzbGlkZXItcHJlZml4LWNsczogfidAe2FudC1wcmVmaXh9LXNsaWRlcic7XG5cbi5Ae3NsaWRlci1wcmVmaXgtY2xzfSB7XG4gICYtcnRsIHtcbiAgICBkaXJlY3Rpb246IHJ0bDtcbiAgfVxuXG4gICYtbWFyayB7XG4gICAgLkB7c2xpZGVyLXByZWZpeC1jbHN9LXJ0bCAmIHtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgbGVmdDogYXV0bztcbiAgICB9XG4gIH1cblxuICAmLWRvdCB7XG4gICAgLkB7c2xpZGVyLXByZWZpeC1jbHN9LXJ0bCAmIHtcbiAgICAgIG1hcmdpbi1yaWdodDogLTRweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgLkB7c2xpZGVyLXByZWZpeC1jbHN9LXJ0bCAmIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNHB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgLkB7c2xpZGVyLXByZWZpeC1jbHN9LXJ0bCAmIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNHB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnZlcnRpY2FsKCkge1xuICAmLXZlcnRpY2FsIHtcbiAgICAuQHtzbGlkZXItcHJlZml4LWNsc30taGFuZGxlIHtcbiAgICAgIC5Ae3NsaWRlci1wcmVmaXgtY2xzfS1ydGwmIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNXB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuQHtzbGlkZXItcHJlZml4LWNsc30tbWFyayB7XG4gICAgICAuQHtzbGlkZXItcHJlZml4LWNsc30tcnRsJiB7XG4gICAgICAgIHJpZ2h0OiAxMnB4O1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5Ae3NsaWRlci1wcmVmaXgtY2xzfS1tYXJrLXRleHQge1xuICAgICAgLkB7c2xpZGVyLXByZWZpeC1jbHN9LXJ0bCYge1xuICAgICAgICByaWdodDogNHB4O1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5Ae3NsaWRlci1wcmVmaXgtY2xzfS1kb3Qge1xuICAgICAgLkB7c2xpZGVyLXByZWZpeC1jbHN9LXJ0bCYge1xuICAgICAgICByaWdodDogMnB4O1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGltcG9ydCAnYm94JztcblxuLm1vZGFsLW1hc2soKSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICYuem9vbS1lbnRlcixcbiAgJi56b29tLWFwcGVhciB7XG4gICAgdHJhbnNmb3JtOiBub25lOyAvLyByZXNldCBzY2FsZSBhdm9pZCBtb3VzZVBvc2l0aW9uIGJ1Z1xuICAgIG9wYWNpdHk6IDA7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiBAYW5pbWF0aW9uLWR1cmF0aW9uLXNsb3c7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzExNzc3XG4gIH1cblxuICAmLW1hc2sge1xuICAgIC5ib3goZml4ZWQpO1xuICAgIHotaW5kZXg6IEB6aW5kZXgtbW9kYWwtbWFzaztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQG1vZGFsLW1hc2stYmc7XG5cbiAgICAmLWhpZGRlbiB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gICYtd3JhcCB7XG4gICAgLmJveChmaXhlZCk7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgb3V0bGluZTogMDtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIH1cbn1cbiIsIkBkaWFsb2ctcHJlZml4LWNsczogfidAe2FudC1wcmVmaXh9LW1vZGFsJztcbkB0YWJsZS1wcmVmaXgtY2xzOiB+J0B7YW50LXByZWZpeH0tdGFibGUnO1xuXG4uQHtkaWFsb2ctcHJlZml4LWNsc30ge1xuICAucmVzZXQtY29tcG9uZW50KCk7XG4gIC5tb2RhbC1tYXNrKCk7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDEwMHB4O1xuICB3aWR0aDogYXV0bztcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMzJweCk7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nLWJvdHRvbTogMjRweDtcblxuICAmLXdyYXAge1xuICAgIHotaW5kZXg6IEB6aW5kZXgtbW9kYWw7XG4gIH1cblxuICAmLXRpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6IEBtb2RhbC1oZWFkaW5nLWNvbG9yO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zaXplOiBAbW9kYWwtaGVhZGVyLXRpdGxlLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogQG1vZGFsLWhlYWRlci10aXRsZS1saW5lLWhlaWdodDtcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIH1cblxuICAmLWNvbnRlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbW9kYWwtY29udGVudC1iZztcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlO1xuICAgIGJveC1zaGFkb3c6IEBzaGFkb3ctMjtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgfVxuXG4gICYtY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgei1pbmRleDogQHppbmRleC1wb3B1cC1jbG9zZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGNvbG9yOiBAbW9kYWwtY2xvc2UtY29sb3I7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAwO1xuICAgIG91dGxpbmU6IDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuM3M7XG5cbiAgICAmLXgge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogQG1vZGFsLWhlYWRlci1jbG9zZS1zaXplO1xuICAgICAgaGVpZ2h0OiBAbW9kYWwtaGVhZGVyLWNsb3NlLXNpemU7XG4gICAgICBmb250LXNpemU6IEBmb250LXNpemUtbGc7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBsaW5lLWhlaWdodDogQG1vZGFsLWhlYWRlci1jbG9zZS1zaXplO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICB0ZXh0LXJlbmRlcmluZzogYXV0bztcbiAgICB9XG5cbiAgICAmOmZvY3VzLFxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IEBpY29uLWNvbG9yLWhvdmVyO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICYtaGVhZGVyIHtcbiAgICBwYWRkaW5nOiBAbW9kYWwtaGVhZGVyLXBhZGRpbmc7XG4gICAgY29sb3I6IEB0ZXh0LWNvbG9yO1xuICAgIGJhY2tncm91bmQ6IEBtb2RhbC1oZWFkZXItYmc7XG4gICAgYm9yZGVyLWJvdHRvbTogQG1vZGFsLWhlYWRlci1ib3JkZXItd2lkdGggQG1vZGFsLWhlYWRlci1ib3JkZXItc3R5bGVcbiAgICAgIEBtb2RhbC1oZWFkZXItYm9yZGVyLWNvbG9yLXNwbGl0O1xuICAgIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2UgQGJvcmRlci1yYWRpdXMtYmFzZSAwIDA7XG4gIH1cblxuICAmLWJvZHkge1xuICAgIHBhZGRpbmc6IEBtb2RhbC1ib2R5LXBhZGRpbmc7XG4gICAgZm9udC1zaXplOiBAZm9udC1zaXplLWJhc2U7XG4gICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgfVxuXG4gICYtZm9vdGVyIHtcbiAgICBwYWRkaW5nOiBAbW9kYWwtZm9vdGVyLXBhZGRpbmctdmVydGljYWwgQG1vZGFsLWZvb3Rlci1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgYmFja2dyb3VuZDogQG1vZGFsLWZvb3Rlci1iZztcbiAgICBib3JkZXItdG9wOiBAbW9kYWwtZm9vdGVyLWJvcmRlci13aWR0aCBAbW9kYWwtZm9vdGVyLWJvcmRlci1zdHlsZVxuICAgICAgQG1vZGFsLWZvb3Rlci1ib3JkZXItY29sb3Itc3BsaXQ7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwIEBib3JkZXItcmFkaXVzLWJhc2UgQGJvcmRlci1yYWRpdXMtYmFzZTtcblxuICAgIGJ1dHRvbiArIGJ1dHRvbiB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICB9XG4gIH1cblxuICAmLW9wZW4ge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbn1cblxuLkB7ZGlhbG9nLXByZWZpeC1jbHN9LWNlbnRlcmVkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAmOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBjb250ZW50OiAnJztcbiAgfVxuICAuQHtkaWFsb2ctcHJlZml4LWNsc30ge1xuICAgIHRvcDogMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiBAc2NyZWVuLXNtLW1heCkge1xuICAuQHtkaWFsb2ctcHJlZml4LWNsc30ge1xuICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDE2cHgpO1xuICAgIG1hcmdpbjogOHB4IGF1dG87XG4gIH1cbiAgLkB7ZGlhbG9nLXByZWZpeC1jbHN9LWNlbnRlcmVkIHtcbiAgICAuQHtkaWFsb2ctcHJlZml4LWNsc30ge1xuICAgICAgZmxleDogMTtcbiAgICB9XG4gIH1cbn1cbiIsIi5ib3goQHBvc2l0aW9uOiBhYnNvbHV0ZSkge1xuICBwb3NpdGlvbjogQHBvc2l0aW9uO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG59XG4iLCJAaW1wb3J0ICcuLi8uLi9zdHlsZS9taXhpbnMvaW5kZXgnO1xuXG5AY29uZmlybS1wcmVmaXgtY2xzOiB+J0B7YW50LXByZWZpeH0tbW9kYWwtY29uZmlybSc7XG5cbi5Ae2NvbmZpcm0tcHJlZml4LWNsc30ge1xuICAuQHthbnQtcHJlZml4fS1tb2RhbC1oZWFkZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuQHthbnQtcHJlZml4fS1tb2RhbC1ib2R5IHtcbiAgICBwYWRkaW5nOiBAbW9kYWwtY29uZmlybS1ib2R5LXBhZGRpbmc7XG4gIH1cblxuICAmLWJvZHktd3JhcHBlciB7XG4gICAgLmNsZWFyZml4KCk7XG4gIH1cblxuICAmLWJvZHkge1xuICAgIC5Ae2NvbmZpcm0tcHJlZml4LWNsc30tdGl0bGUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAvLyBjcmVhdGUgQkZDIHRvIGF2b2lkXG4gICAgICAvLyBodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS81MDc2MTUvMzc3MDI1MTAtYmE4NDRlMDYtMmQyZC0xMWU4LTliNjctOGUxOWJlNTdmNDQ1LnBuZ1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIGNvbG9yOiBAaGVhZGluZy1jb2xvcjtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBmb250LXNpemU6IEBmb250LXNpemUtbGc7XG4gICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIH1cblxuICAgIC5Ae2NvbmZpcm0tcHJlZml4LWNsc30tY29udGVudCB7XG4gICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgICBjb2xvcjogQHRleHQtY29sb3I7XG4gICAgICBmb250LXNpemU6IEBmb250LXNpemUtYmFzZTtcbiAgICB9XG5cbiAgICA+IC5Ae2ljb25mb250LWNzcy1wcmVmaXh9IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuICAgICAgZm9udC1zaXplOiAyMnB4O1xuXG4gICAgICAvLyBgY29udGVudGAgYWZ0ZXIgYGljb25gIHNob3VsZCBzZXQgbWFyZ2luTGVmdFxuICAgICAgKyAuQHtjb25maXJtLXByZWZpeC1jbHN9LXRpdGxlICsgLkB7Y29uZmlybS1wcmVmaXgtY2xzfS1jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDM4cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLkB7Y29uZmlybS1wcmVmaXgtY2xzfS1idG5zIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLXRvcDogMjRweDtcblxuICAgIGJ1dHRvbiArIGJ1dHRvbiB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICB9XG4gIH1cblxuICAmLWVycm9yICYtYm9keSA+IC5Ae2ljb25mb250LWNzcy1wcmVmaXh9IHtcbiAgICBjb2xvcjogQGVycm9yLWNvbG9yO1xuICB9XG5cbiAgJi13YXJuaW5nICYtYm9keSA+IC5Ae2ljb25mb250LWNzcy1wcmVmaXh9LFxuICAmLWNvbmZpcm0gJi1ib2R5ID4gLkB7aWNvbmZvbnQtY3NzLXByZWZpeH0ge1xuICAgIGNvbG9yOiBAd2FybmluZy1jb2xvcjtcbiAgfVxuXG4gICYtaW5mbyAmLWJvZHkgPiAuQHtpY29uZm9udC1jc3MtcHJlZml4fSB7XG4gICAgY29sb3I6IEBpbmZvLWNvbG9yO1xuICB9XG5cbiAgJi1zdWNjZXNzICYtYm9keSA+IC5Ae2ljb25mb250LWNzcy1wcmVmaXh9IHtcbiAgICBjb2xvcjogQHN1Y2Nlc3MtY29sb3I7XG4gIH1cbn1cbiIsIkBpbXBvcnQgJy4uLy4uL3N0eWxlL3RoZW1lcy9pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi9zdHlsZS9taXhpbnMvaW5kZXgnO1xuXG5AZGlhbG9nLXByZWZpeC1jbHM6IH4nQHthbnQtcHJlZml4fS1tb2RhbCc7XG5AY29uZmlybS1wcmVmaXgtY2xzOiB+J0B7YW50LXByZWZpeH0tbW9kYWwtY29uZmlybSc7XG5AZGlhbG9nLXdyYXAtcnRsLWNsczogfidAe2RpYWxvZy1wcmVmaXgtY2xzfS13cmFwLXJ0bCc7XG5cbi5Ae2RpYWxvZy1wcmVmaXgtY2xzfSB7XG4gICYtd3JhcCB7XG4gICAgJi1ydGwge1xuICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgfVxuICB9XG5cbiAgJi1jbG9zZSB7XG4gICAgLkB7ZGlhbG9nLXdyYXAtcnRsLWNsc30gJiB7XG4gICAgICByaWdodDogaW5pdGlhbDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICB9XG5cbiAgJi1mb290ZXIge1xuICAgIC5Ae2RpYWxvZy13cmFwLXJ0bC1jbHN9ICYge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG4gICAgYnV0dG9uICsgYnV0dG9uIHtcbiAgICAgIC5Ae2RpYWxvZy13cmFwLXJ0bC1jbHN9ICYge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi1jb25maXJtIHtcbiAgICAmLWJvZHkge1xuICAgICAgLkB7ZGlhbG9nLXdyYXAtcnRsLWNsc30gJiB7XG4gICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgfVxuICAgICAgPiAuQHtpY29uZm9udC1jc3MtcHJlZml4fSB7XG4gICAgICAgIC5Ae2RpYWxvZy13cmFwLXJ0bC1jbHN9ICYge1xuICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gICAgICAgIH1cbiAgICAgICAgKyAuQHtjb25maXJtLXByZWZpeC1jbHN9LXRpdGxlICsgLkB7Y29uZmlybS1wcmVmaXgtY2xzfS1jb250ZW50IHtcbiAgICAgICAgICAuQHtkaWFsb2ctd3JhcC1ydGwtY2xzfSAmIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMzhweDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAmLWJ0bnMge1xuICAgICAgLkB7ZGlhbG9nLXdyYXAtcnRsLWNsc30gJiB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgfVxuICAgICAgYnV0dG9uICsgYnV0dG9uIHtcbiAgICAgICAgLkB7ZGlhbG9nLXdyYXAtcnRsLWNsc30gJiB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLkB7ZGlhbG9nLXByZWZpeC1jbHN9LWNlbnRlcmVkIHtcbiAgLkB7ZGlhbG9nLXByZWZpeC1jbHN9IHtcbiAgICAuQHtkaWFsb2ctd3JhcC1ydGwtY2xzfSYge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0ICcuL2luZGV4JztcblxuQHNlbGVjdGlvbi1pdGVtLXBhZGRpbmc6IGNlaWwoQGZvbnQtc2l6ZS1iYXNlICogMS4yNSk7XG5cbi5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1zaW5nbGUge1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09IFNlbGVjdG9yID09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLkB7c2VsZWN0LXByZWZpeC1jbHN9LXNlbGVjdG9yIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgLkB7c2VsZWN0LXByZWZpeC1jbHN9LXNlbGVjdGlvbi1zZWFyY2gge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IEBpbnB1dC1wYWRkaW5nLWhvcml6b250YWwtYmFzZTtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IEBpbnB1dC1wYWRkaW5nLWhvcml6b250YWwtYmFzZTtcblxuICAgICAgJi1pbnB1dCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1zZWxlY3Rpb24taXRlbSxcbiAgICAuQHtzZWxlY3QtcHJlZml4LWNsc30tc2VsZWN0aW9uLXBsYWNlaG9sZGVyIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBsaW5lLWhlaWdodDogQHNlbGVjdC1oZWlnaHQtd2l0aG91dC1ib3JkZXI7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcblxuICAgICAgLy8gRmlyZWZveCBpbmxpbmUtYmxvY2sgcG9zaXRpb24gY2FsY3VsYXRpb24gaXMgbm90IHNhbWUgYXMgQ2hyb21lICYgU2FmYXJpLiBQYXRjaCB0aGlzOlxuICAgICAgQHN1cHBvcnRzICgtbW96LWFwcGVhcmFuY2U6IG1ldGVyYmFyKSB7XG4gICAgICAgICYge1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiBAc2VsZWN0LWhlaWdodC13aXRob3V0LWJvcmRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1zZWxlY3Rpb24taXRlbSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB9XG5cbiAgICAuQHtzZWxlY3QtcHJlZml4LWNsc30tc2VsZWN0aW9uLXBsYWNlaG9sZGVyIHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgIC8vIEZvciBjb21tb24gYmFzZWxpbmUgYWxpZ25cbiAgICAmOjphZnRlcixcbiAgICAvLyBGb3IgJycgdmFsdWUgYmFzZWxpbmUgYWxpZ25cbiAgICAuQHtzZWxlY3QtcHJlZml4LWNsc30tc2VsZWN0aW9uLWl0ZW06OmFmdGVyLFxuICAgIC8vIEZvciB1bmRlZmluZWQgdmFsdWUgYmFzZWxpbmUgYWxpZ25cbiAgICAuQHtzZWxlY3QtcHJlZml4LWNsc30tc2VsZWN0aW9uLXBsYWNlaG9sZGVyOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIGNvbnRlbnQ6ICdcXGEwJztcbiAgICB9XG4gIH1cblxuICAvLyBXaXRoIGFycm93IHNob3VsZCBwcm92aWRlcyBgcGFkZGluZy1yaWdodGAgdG8gc2hvdyB0aGUgYXJyb3dcbiAgJi5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1zaG93LWFycm93IC5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1zZWxlY3Rpb24tc2VhcmNoIHtcbiAgICByaWdodDogQGlucHV0LXBhZGRpbmctaG9yaXpvbnRhbC1iYXNlICsgQGZvbnQtc2l6ZS1iYXNlO1xuICB9XG5cbiAgJi5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1zaG93LWFycm93IC5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1zZWxlY3Rpb24taXRlbSxcbiAgJi5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1zaG93LWFycm93IC5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1zZWxlY3Rpb24tcGxhY2Vob2xkZXIge1xuICAgIHBhZGRpbmctcmlnaHQ6IEBzZWxlY3Rpb24taXRlbS1wYWRkaW5nO1xuICB9XG5cbiAgLy8gT3BhY2l0eSBzZWxlY3Rpb24gaWYgb3BlblxuICAmLkB7c2VsZWN0LXByZWZpeC1jbHN9LW9wZW4gLkB7c2VsZWN0LXByZWZpeC1jbHN9LXNlbGVjdGlvbi1pdGVtIHtcbiAgICBjb2xvcjogQGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT0gSW5wdXQgPT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gV2Ugb25seSBjaGFuZ2UgdGhlIHN0eWxlIG9mIG5vbi1jdXN0b21pemUgaW5wdXQgd2hpY2ggaXMgb25seSBzdXBwb3J0IGJ5IGBjb21ib2JveGAgbW9kZS5cblxuICAvLyBOb3QgY3VzdG9taXplXG4gICY6bm90KC5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1jdXN0b21pemUtaW5wdXQpIHtcbiAgICAuQHtzZWxlY3QtcHJlZml4LWNsc30tc2VsZWN0b3Ige1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQtYmFzZTtcbiAgICAgIHBhZGRpbmc6IDAgQGlucHV0LXBhZGRpbmctaG9yaXpvbnRhbC1iYXNlO1xuXG4gICAgICAuQHtzZWxlY3QtcHJlZml4LWNsc30tc2VsZWN0aW9uLXNlYXJjaC1pbnB1dCB7XG4gICAgICAgIGhlaWdodDogQHNlbGVjdC1oZWlnaHQtd2l0aG91dC1ib3JkZXI7XG4gICAgICB9XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IEBzZWxlY3QtaGVpZ2h0LXdpdGhvdXQtYm9yZGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYuQHtzZWxlY3QtcHJlZml4LWNsc30tY3VzdG9taXplLWlucHV0IHtcbiAgICAuQHtzZWxlY3QtcHJlZml4LWNsc30tc2VsZWN0b3Ige1xuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICAuQHtzZWxlY3QtcHJlZml4LWNsc30tc2VsZWN0aW9uLXNlYXJjaCB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAuQHtzZWxlY3QtcHJlZml4LWNsc30tc2VsZWN0aW9uLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcGFkZGluZzogMCBAaW5wdXQtcGFkZGluZy1ob3Jpem9udGFsLWJhc2U7XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gPT0gICAgICAgICAgICAgICAgICAgICAgICAgIFNpemUgICAgICAgICAgICAgICAgICAgICAgICAgID09XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAuc2VsZWN0LXNpemUoQHN1ZmZpeCwgQGlucHV0LWhlaWdodCkge1xuICAgIEBtZXJnZWQtY2xzOiB+J0B7c2VsZWN0LXByZWZpeC1jbHN9LUB7c3VmZml4fSc7XG5cbiAgICAmLkB7bWVyZ2VkLWNsc306bm90KC5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1jdXN0b21pemUtaW5wdXQpIHtcbiAgICAgIC5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1zZWxlY3RvciB7XG4gICAgICAgIGhlaWdodDogQGlucHV0LWhlaWdodDtcblxuICAgICAgICAmOjphZnRlcixcbiAgICAgICAgLkB7c2VsZWN0LXByZWZpeC1jbHN9LXNlbGVjdGlvbi1pdGVtLFxuICAgICAgICAuQHtzZWxlY3QtcHJlZml4LWNsc30tc2VsZWN0aW9uLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICBsaW5lLWhlaWdodDogQGlucHV0LWhlaWdodCAtIDIgKiBAYm9yZGVyLXdpZHRoLWJhc2U7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gTm90IGN1c3RvbWl6ZVxuICAgICAgJjpub3QoLkB7c2VsZWN0LXByZWZpeC1jbHN9LWN1c3RvbWl6ZS1pbnB1dCkge1xuICAgICAgICAuQHtzZWxlY3QtcHJlZml4LWNsc30tc2VsZWN0aW9uLXNlYXJjaC1pbnB1dCB7XG4gICAgICAgICAgaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0IC0gMiAqIEBib3JkZXItd2lkdGgtYmFzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5zZWxlY3Qtc2l6ZSgnbGcnLCBAc2VsZWN0LXNpbmdsZS1pdGVtLWhlaWdodC1sZyk7XG4gIC5zZWxlY3Qtc2l6ZSgnc20nLCBAaW5wdXQtaGVpZ2h0LXNtKTtcblxuICAvLyBTaXplIHNtYWxsIG5lZWQgYWRkaXRpb25hbCBzZXQgcGFkZGluZ1xuICAmLkB7c2VsZWN0LXByZWZpeC1jbHN9LXNtIHtcbiAgICAmOm5vdCguQHtzZWxlY3QtcHJlZml4LWNsc30tY3VzdG9taXplLWlucHV0KSB7XG4gICAgICAuQHtzZWxlY3QtcHJlZml4LWNsc30tc2VsZWN0aW9uLXNlYXJjaCB7XG4gICAgICAgIHJpZ2h0OiBAaW5wdXQtcGFkZGluZy1ob3Jpem9udGFsLXNtO1xuICAgICAgICBsZWZ0OiBAaW5wdXQtcGFkZGluZy1ob3Jpem9udGFsLXNtO1xuICAgICAgfVxuXG4gICAgICAuQHtzZWxlY3QtcHJlZml4LWNsc30tc2VsZWN0b3Ige1xuICAgICAgICBwYWRkaW5nOiAwIEBpbnB1dC1wYWRkaW5nLWhvcml6b250YWwtc207XG4gICAgICB9XG5cbiAgICAgIC8vIFdpdGggYXJyb3cgc2hvdWxkIHByb3ZpZGVzIGBwYWRkaW5nLXJpZ2h0YCB0byBzaG93IHRoZSBhcnJvd1xuICAgICAgJi5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1zaG93LWFycm93IC5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1zZWxlY3Rpb24tc2VhcmNoIHtcbiAgICAgICAgcmlnaHQ6IEBpbnB1dC1wYWRkaW5nLWhvcml6b250YWwtc20gKyBAZm9udC1zaXplLWJhc2UgKiAxLjU7XG4gICAgICB9XG5cbiAgICAgICYuQHtzZWxlY3QtcHJlZml4LWNsc30tc2hvdy1hcnJvdyAuQHtzZWxlY3QtcHJlZml4LWNsc30tc2VsZWN0aW9uLWl0ZW0sXG4gICAgICAmLkB7c2VsZWN0LXByZWZpeC1jbHN9LXNob3ctYXJyb3cgLkB7c2VsZWN0LXByZWZpeC1jbHN9LXNlbGVjdGlvbi1wbGFjZWhvbGRlciB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IEBmb250LXNpemUtYmFzZSAqIDEuNTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLkB7c2VsZWN0LXByZWZpeC1jbHN9LWxnIHtcbiAgICAmOm5vdCguQHtzZWxlY3QtcHJlZml4LWNsc30tY3VzdG9taXplLWlucHV0KSB7XG4gICAgICAuQHtzZWxlY3QtcHJlZml4LWNsc30tc2VsZWN0b3Ige1xuICAgICAgICBwYWRkaW5nOiAwIEBpbnB1dC1wYWRkaW5nLWhvcml6b250YWwtbGc7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0ICcuL2luZGV4JztcblxuQHNlbGVjdC1vdmVyZmxvdy1wcmVmaXgtY2xzOiB+J0B7c2VsZWN0LXByZWZpeC1jbHN9LXNlbGVjdGlvbi1vdmVyZmxvdyc7XG5Ac2VsZWN0LW11bHRpcGxlLWl0ZW0tYm9yZGVyLXdpZHRoOiAxcHg7XG5cbkBzZWxlY3QtbXVsdGlwbGUtcGFkZGluZzogbWF4KFxuICBAaW5wdXQtcGFkZGluZy12ZXJ0aWNhbC1iYXNlIC0gQHNlbGVjdC1tdWx0aXBsZS1pdGVtLWJvcmRlci13aWR0aCAtXG4gICAgQHNlbGVjdC1tdWx0aXBsZS1pdGVtLXNwYWNpbmctaGFsZixcbiAgMFxuKTtcblxuLyoqXG4gKiBEbyBub3QgbWVyZ2UgYGhlaWdodGAgJiBgbGluZS1oZWlnaHRgIHVuZGVyIHN0eWxlIHdpdGggYHNlbGVjdGlvbmAgJiBgc2VhcmNoYCxcbiAqIHNpbmNlIGNocm9tZSBtYXkgdXBkYXRlIHRvIHJlZGVzaWduIHdpdGggaXRzIGFsaWduIGxvZ2ljLlxuICovXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PSBPdmVyZmxvdyA9PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi5Ae3NlbGVjdC1vdmVyZmxvdy1wcmVmaXgtY2xzfSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogYXV0bztcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgJi1pdGVtIHtcbiAgICBmbGV4OiBub25lO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxufVxuXG4uQHtzZWxlY3QtcHJlZml4LWNsc30ge1xuICAmLW11bHRpcGxlIHtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09IFNlbGVjdG9yID09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAuQHtzZWxlY3QtcHJlZml4LWNsc30tc2VsZWN0b3Ige1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAvLyBNdWx0aXBsZSBpcyBsaXR0bGUgZGlmZmVyZW50IHRoYXQgaG9yaXpvbnRhbCBpcyBmb2xsb3cgdGhlIHZlcnRpY2FsXG4gICAgICBwYWRkaW5nOiBAc2VsZWN0LW11bHRpcGxlLXBhZGRpbmcgQGlucHV0LXBhZGRpbmctdmVydGljYWwtYmFzZTtcblxuICAgICAgLkB7c2VsZWN0LXByZWZpeC1jbHN9LXNob3ctc2VhcmNoJiB7XG4gICAgICAgIGN1cnNvcjogdGV4dDtcbiAgICAgIH1cblxuICAgICAgLkB7c2VsZWN0LXByZWZpeC1jbHN9LWRpc2FibGVkJiB7XG4gICAgICAgIGJhY2tncm91bmQ6IEBzZWxlY3QtbXVsdGlwbGUtZGlzYWJsZWQtYmFja2dyb3VuZDtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgIH1cblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBtYXJnaW46IEBzZWxlY3QtbXVsdGlwbGUtaXRlbS1zcGFjaW5nLWhhbGYgMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IEBzZWxlY3QtbXVsdGlwbGUtaXRlbS1oZWlnaHQ7XG4gICAgICAgIGNvbnRlbnQ6ICdcXGEwJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLkB7c2VsZWN0LXByZWZpeC1jbHN9LXNob3ctYXJyb3cgLkB7c2VsZWN0LXByZWZpeC1jbHN9LXNlbGVjdG9yLFxuICAgICYuQHtzZWxlY3QtcHJlZml4LWNsc30tYWxsb3ctY2xlYXIgLkB7c2VsZWN0LXByZWZpeC1jbHN9LXNlbGVjdG9yIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IEBmb250LXNpemUtc20gKyBAY29udHJvbC1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgfVxuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09IFNlbGVjdGlvbnMgPT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLkB7c2VsZWN0LXByZWZpeC1jbHN9LXNlbGVjdGlvbi1pdGVtIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4OiBub25lO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgaGVpZ2h0OiBAc2VsZWN0LW11bHRpcGxlLWl0ZW0taGVpZ2h0O1xuICAgICAgbWFyZ2luLXRvcDogQHNlbGVjdC1tdWx0aXBsZS1pdGVtLXNwYWNpbmctaGFsZjtcbiAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiBAaW5wdXQtcGFkZGluZy12ZXJ0aWNhbC1iYXNlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogQHNlbGVjdC1tdWx0aXBsZS1pdGVtLXNwYWNpbmctaGFsZjtcbiAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiBAcGFkZGluZy14cztcbiAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogKEBwYWRkaW5nLXhzIC8gMik7XG4gICAgICBsaW5lLWhlaWdodDogQHNlbGVjdC1tdWx0aXBsZS1pdGVtLWhlaWdodCAtIEBzZWxlY3QtbXVsdGlwbGUtaXRlbS1ib3JkZXItd2lkdGggKiAyO1xuICAgICAgYmFja2dyb3VuZDogQHNlbGVjdC1zZWxlY3Rpb24taXRlbS1iZztcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIEBzZWxlY3Qtc2VsZWN0aW9uLWl0ZW0tYm9yZGVyLWNvbG9yO1xuICAgICAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtYmFzZTtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIHRyYW5zaXRpb246IGZvbnQtc2l6ZSAwLjNzLCBsaW5lLWhlaWdodCAwLjNzLCBoZWlnaHQgMC4zcztcbiAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAuQHtzZWxlY3QtcHJlZml4LWNsc30tZGlzYWJsZWQmIHtcbiAgICAgICAgY29sb3I6IEBzZWxlY3QtbXVsdGlwbGUtaXRlbS1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBAc2VsZWN0LW11bHRpcGxlLWl0ZW0tZGlzYWJsZWQtYm9yZGVyLWNvbG9yO1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgfVxuXG4gICAgICAvLyBJdCdzIG9rIG5vdCB0byBkbyB0aGlzLCBidXQgMjRweCBtYWtlcyBib3R0b20gbmFycm93IGluIHZpZXcgc2hvdWxkIGFkanVzdFxuICAgICAgJi1jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IChAcGFkZGluZy14cyAvIDIpO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlOyAvLyBmaXggd2hpdGVzcGFjZSB3cmFwcGluZy4gY3VzdG9tIHRhZ3MgZGlzcGxheSBhbGwgd2hpdGVzcGFjZSB3aXRoaW4uXG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgfVxuXG4gICAgICAmLXJlbW92ZSB7XG4gICAgICAgIC5pY29uZm9udC1taXhpbigpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGNvbG9yOiBAdGV4dC1jb2xvci1zZWNvbmRhcnk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgPiAuQHtpY29uZm9udC1jc3MtcHJlZml4fSB7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IC0wLjJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiBAaWNvbi1jb2xvci1ob3ZlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09IElucHV0ID09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLkB7c2VsZWN0LW92ZXJmbG93LXByZWZpeC1jbHN9LWl0ZW0gKyAuQHtzZWxlY3Qtb3ZlcmZsb3ctcHJlZml4LWNsc30taXRlbSB7XG4gICAgICAuQHtzZWxlY3QtcHJlZml4LWNsc30tc2VsZWN0aW9uLXNlYXJjaCB7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLkB7c2VsZWN0LXByZWZpeC1jbHN9LXNlbGVjdGlvbi1zZWFyY2gge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLXRvcDogQHNlbGVjdC1tdWx0aXBsZS1pdGVtLXNwYWNpbmctaGFsZjtcbiAgICAgIG1hcmdpbi1ib3R0b206IEBzZWxlY3QtbXVsdGlwbGUtaXRlbS1zcGFjaW5nLWhhbGY7XG4gICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBAaW5wdXQtcGFkZGluZy1ob3Jpem9udGFsLWJhc2UgLSBAaW5wdXQtcGFkZGluZy12ZXJ0aWNhbC1iYXNlO1xuXG4gICAgICAmLWlucHV0LFxuICAgICAgJi1taXJyb3Ige1xuICAgICAgICBoZWlnaHQ6IEBzZWxlY3QtbXVsdGlwbGUtaXRlbS1oZWlnaHQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBAZm9udC1mYW1pbHk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBAc2VsZWN0LW11bHRpcGxlLWl0ZW0taGVpZ2h0O1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICAgIH1cblxuICAgICAgJi1pbnB1dCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4td2lkdGg6IDQuMXB4OyAvLyBmaXggc2VhcmNoIGN1cnNvciBtaXNzaW5nXG4gICAgICB9XG5cbiAgICAgICYtbWlycm9yIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDk5OTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IHByZTsgLy8gZml4IHdoaXRlc3BhY2Ugd3JhcHBpbmcgY2F1c2VkIHdpZHRoIGNhbGN1bGF0aW9uIGJ1Z1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT0gUGxhY2Vob2xkZXIgPT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAuQHtzZWxlY3QtcHJlZml4LWNsc30tc2VsZWN0aW9uLXBsYWNlaG9sZGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgcmlnaHQ6IEBpbnB1dC1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgICBsZWZ0OiBAaW5wdXQtcGFkZGluZy1ob3Jpem9udGFsO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG4gICAgfVxuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gPT0gICAgICAgICAgICAgICAgICAgICAgICAgIFNpemUgICAgICAgICAgICAgICAgICAgICAgICAgID09XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLnNlbGVjdC1zaXplKEBzdWZmaXgsIEBpbnB1dC1oZWlnaHQpIHtcbiAgICAgIEBtZXJnZWQtY2xzOiB+J0B7c2VsZWN0LXByZWZpeC1jbHN9LUB7c3VmZml4fSc7XG4gICAgICAmLkB7bWVyZ2VkLWNsc30ge1xuICAgICAgICBAc2VsZWN0LXNlbGVjdGlvbi1oZWlnaHQ6IEBpbnB1dC1oZWlnaHQgLSBAaW5wdXQtcGFkZGluZy12ZXJ0aWNhbC1iYXNlICogMjtcbiAgICAgICAgQHNlbGVjdC1oZWlnaHQtd2l0aG91dC1ib3JkZXI6IEBpbnB1dC1oZWlnaHQgLSBAYm9yZGVyLXdpZHRoLWJhc2UgKiAyO1xuXG4gICAgICAgIC5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1zZWxlY3Rvcjo6YWZ0ZXIge1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiBAc2VsZWN0LXNlbGVjdGlvbi1oZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAuQHtzZWxlY3QtcHJlZml4LWNsc30tc2VsZWN0aW9uLWl0ZW0ge1xuICAgICAgICAgIGhlaWdodDogQHNlbGVjdC1zZWxlY3Rpb24taGVpZ2h0O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiBAc2VsZWN0LXNlbGVjdGlvbi1oZWlnaHQgLSBAYm9yZGVyLXdpZHRoLWJhc2UgKiAyO1xuICAgICAgICB9XG5cbiAgICAgICAgLkB7c2VsZWN0LXByZWZpeC1jbHN9LXNlbGVjdGlvbi1zZWFyY2gge1xuICAgICAgICAgIGhlaWdodDogQHNlbGVjdC1zZWxlY3Rpb24taGVpZ2h0ICsgQHNlbGVjdC1tdWx0aXBsZS1wYWRkaW5nO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiBAc2VsZWN0LXNlbGVjdGlvbi1oZWlnaHQgKyBAc2VsZWN0LW11bHRpcGxlLXBhZGRpbmc7XG5cbiAgICAgICAgICAmLWlucHV0LFxuICAgICAgICAgICYtbWlycm9yIHtcbiAgICAgICAgICAgIGhlaWdodDogQHNlbGVjdC1zZWxlY3Rpb24taGVpZ2h0O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IEBzZWxlY3Qtc2VsZWN0aW9uLWhlaWdodCAtIEBib3JkZXItd2lkdGgtYmFzZSAqIDI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnNlbGVjdC1zaXplKCdsZycsIEBpbnB1dC1oZWlnaHQtbGcpO1xuICAgIC5zZWxlY3Qtc2l6ZSgnc20nLCBAaW5wdXQtaGVpZ2h0LXNtKTtcblxuICAgIC8vIFNpemUgc21hbGwgbmVlZCBhZGRpdGlvbmFsIHNldCBwYWRkaW5nXG4gICAgJi5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1zbSB7XG4gICAgICAuQHtzZWxlY3QtcHJlZml4LWNsc30tc2VsZWN0aW9uLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgbGVmdDogQGlucHV0LXBhZGRpbmctaG9yaXpvbnRhbC1zbTtcbiAgICAgIH1cbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzIyOTA2XG4gICAgICAuQHtzZWxlY3QtcHJlZml4LWNsc30tc2VsZWN0aW9uLXNlYXJjaDpmaXJzdC1jaGlsZFxuICAgICAgICAuQHtzZWxlY3QtcHJlZml4LWNsc30tc2VsZWN0aW9uLXNlYXJjaC1pbnB1dCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG4gICAgICB9XG4gICAgfVxuICAgICYuQHtzZWxlY3QtcHJlZml4LWNsc30tbGcge1xuICAgICAgLkB7c2VsZWN0LXByZWZpeC1jbHN9LXNlbGVjdGlvbi1pdGVtIHtcbiAgICAgICAgaGVpZ2h0OiBAc2VsZWN0LW11bHRpcGxlLWl0ZW0taGVpZ2h0LWxnO1xuICAgICAgICBsaW5lLWhlaWdodDogQHNlbGVjdC1tdWx0aXBsZS1pdGVtLWhlaWdodC1sZztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLWRpc2FibGVkIC5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1zZWxlY3Rpb24taXRlbS1yZW1vdmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIkBpbXBvcnQgJy4uLy4uL3N0eWxlL3RoZW1lcy9pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi9zdHlsZS9taXhpbnMvaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vaW5wdXQvc3R5bGUvbWl4aW4nO1xuXG5AaW1wb3J0ICcuL3NpbmdsZSc7XG5AaW1wb3J0ICcuL211bHRpcGxlJztcblxuQHNlbGVjdC1wcmVmaXgtY2xzOiB+J0B7YW50LXByZWZpeH0tc2VsZWN0JztcbkBzZWxlY3QtaGVpZ2h0LXdpdGhvdXQtYm9yZGVyOiBAaW5wdXQtaGVpZ2h0LWJhc2UgLSAyICogQGJvcmRlci13aWR0aC1iYXNlO1xuQHNlbGVjdC1kcm9wZG93bi1lZGdlLWNoaWxkLXZlcnRpY2FsLXBhZGRpbmc6IEBkcm9wZG93bi1lZGdlLWNoaWxkLXZlcnRpY2FsLXBhZGRpbmc7XG5cbi5zZWxlY3Qtc2VsZWN0b3IoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHNlbGVjdC1iYWNrZ3JvdW5kO1xuICBib3JkZXI6IEBib3JkZXItd2lkdGgtYmFzZSBAYm9yZGVyLXN0eWxlLWJhc2UgQHNlbGVjdC1ib3JkZXItY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2U7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIEBlYXNlLWluLW91dDtcblxuICBpbnB1dCB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgLkB7c2VsZWN0LXByZWZpeC1jbHN9LXNob3ctc2VhcmNoJiB7XG4gICAgY3Vyc29yOiB0ZXh0O1xuXG4gICAgaW5wdXQge1xuICAgICAgY3Vyc29yOiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIC5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1mb2N1c2VkOm5vdCguQHtzZWxlY3QtcHJlZml4LWNsc30tZGlzYWJsZWQpJiB7XG4gICAgLmFjdGl2ZSgpO1xuICB9XG5cbiAgLkB7c2VsZWN0LXByZWZpeC1jbHN9LWRpc2FibGVkJiB7XG4gICAgY29sb3I6IEBkaXNhYmxlZC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kOiBAaW5wdXQtZGlzYWJsZWQtYmc7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgIGlucHV0IHtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuICB9XG59XG5cbi8qIFJlc2V0IHNlYXJjaCBpbnB1dCBzdHlsZSAqL1xuLnNlbGVjdC1zZWFyY2gtaW5wdXQtd2l0aG91dC1ib3JkZXIoKSB7XG4gIC5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1zZWxlY3Rpb24tc2VhcmNoLWlucHV0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4uQHtzZWxlY3QtcHJlZml4LWNsc30ge1xuICAucmVzZXQtY29tcG9uZW50KCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpub3QoJi1jdXN0b21pemUtaW5wdXQpICYtc2VsZWN0b3Ige1xuICAgIC5zZWxlY3Qtc2VsZWN0b3IoKTtcbiAgICAuc2VsZWN0LXNlYXJjaC1pbnB1dC13aXRob3V0LWJvcmRlcigpO1xuICB9XG5cbiAgJjpub3QoJi1kaXNhYmxlZCk6aG92ZXIgJi1zZWxlY3RvciB7XG4gICAgLmhvdmVyKCk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT0gU2VsZWN0aW9uID09PT09PT09PT09PT09PT09PT09PT09PVxuICAmLXNlbGVjdGlvbi1pdGVtIHtcbiAgICBmbGV4OiAxO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblxuICAgIC8vIElFMTEgY3NzIGhhY2suIGAqOjotbXMtYmFja2Ryb3AsYCBpcyBhIG11c3QgaGF2ZVxuICAgIEBtZWRpYSBhbGwgYW5kICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSkge1xuICAgICAgKjo6LW1zLWJhY2tkcm9wLFxuICAgICAgJiB7XG4gICAgICAgIGZsZXg6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT0gUGxhY2Vob2xkZXIgPT09PT09PT09PT09PT09PT09PT09PT1cbiAgJi1zZWxlY3Rpb24tcGxhY2Vob2xkZXIge1xuICAgIGZsZXg6IDE7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBjb2xvcjogQGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAvLyBJRTExIGNzcyBoYWNrLiBgKjo6LW1zLWJhY2tkcm9wLGAgaXMgYSBtdXN0IGhhdmVcbiAgICBAbWVkaWEgYWxsIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IG5vbmUpIHtcbiAgICAgICo6Oi1tcy1iYWNrZHJvcCxcbiAgICAgICYge1xuICAgICAgICBmbGV4OiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09IEFycm93ID09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICYtYXJyb3cge1xuICAgIC5pY29uZm9udC1taXhpbigpO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUzJTtcbiAgICByaWdodDogQGNvbnRyb2wtcGFkZGluZy1ob3Jpem9udGFsIC0gMXB4O1xuICAgIHdpZHRoOiBAZm9udC1zaXplLXNtO1xuICAgIGhlaWdodDogQGZvbnQtc2l6ZS1zbTtcbiAgICBtYXJnaW4tdG9wOiAoLUBmb250LXNpemUtc20gLyAyKTtcbiAgICBjb2xvcjogQGRpc2FibGVkLWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1zbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAuQHtpY29uZm9udC1jc3MtcHJlZml4fSB7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7XG5cbiAgICAgID4gc3ZnIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgIH1cblxuICAgICAgJjpub3QoLkB7c2VsZWN0LXByZWZpeC1jbHN9LXN1ZmZpeCkge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuQHtzZWxlY3QtcHJlZml4LWNsc30tZGlzYWJsZWQgJiB7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09IENsZWFyID09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICYtY2xlYXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogQGNvbnRyb2wtcGFkZGluZy1ob3Jpem9udGFsIC0gMXB4O1xuICAgIHotaW5kZXg6IDE7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBAZm9udC1zaXplLXNtO1xuICAgIGhlaWdodDogQGZvbnQtc2l6ZS1zbTtcbiAgICBtYXJnaW4tdG9wOiAoLUBmb250LXNpemUtc20gLyAyKTtcbiAgICBjb2xvcjogQGRpc2FibGVkLWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1zbTtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGJhY2tncm91bmQ6IEBzZWxlY3QtY2xlYXItYmFja2dyb3VuZDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2UsIG9wYWNpdHkgMC4xNXMgZWFzZTtcbiAgICB0ZXh0LXJlbmRlcmluZzogYXV0bztcbiAgICAmOjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IEB0ZXh0LWNvbG9yLXNlY29uZGFyeTtcbiAgICB9XG5cbiAgICAuQHtzZWxlY3QtcHJlZml4LWNsc306aG92ZXIgJiB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09IFBvcHVwID09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICYtZHJvcGRvd24ge1xuICAgIC5yZXNldC1jb21wb25lbnQoKTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtOTk5OXB4O1xuICAgIGxlZnQ6IC05OTk5cHg7XG4gICAgei1pbmRleDogQHppbmRleC1kcm9wZG93bjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IEBzZWxlY3QtZHJvcGRvd24tZWRnZS1jaGlsZC12ZXJ0aWNhbC1wYWRkaW5nIDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBmb250LXNpemU6IEBmb250LXNpemUtYmFzZTtcbiAgICAvLyBGaXggc2VsZWN0IHJlbmRlciBsYWcgb2YgbG9uZyB0ZXh0IGluIGNocm9tZVxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzExNDU2XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvMTE4NDNcbiAgICBmb250LXZhcmlhbnQ6IGluaXRpYWw7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQHNlbGVjdC1kcm9wZG93bi1iZztcbiAgICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogQGJveC1zaGFkb3ctYmFzZTtcblxuICAgICYuc2xpZGUtdXAtZW50ZXIuc2xpZGUtdXAtZW50ZXItYWN0aXZlJi1wbGFjZW1lbnQtYm90dG9tTGVmdCxcbiAgICAmLnNsaWRlLXVwLWFwcGVhci5zbGlkZS11cC1hcHBlYXItYWN0aXZlJi1wbGFjZW1lbnQtYm90dG9tTGVmdCB7XG4gICAgICBhbmltYXRpb24tbmFtZTogYW50U2xpZGVVcEluO1xuICAgIH1cblxuICAgICYuc2xpZGUtdXAtZW50ZXIuc2xpZGUtdXAtZW50ZXItYWN0aXZlJi1wbGFjZW1lbnQtdG9wTGVmdCxcbiAgICAmLnNsaWRlLXVwLWFwcGVhci5zbGlkZS11cC1hcHBlYXItYWN0aXZlJi1wbGFjZW1lbnQtdG9wTGVmdCB7XG4gICAgICBhbmltYXRpb24tbmFtZTogYW50U2xpZGVEb3duSW47XG4gICAgfVxuXG4gICAgJi5zbGlkZS11cC1sZWF2ZS5zbGlkZS11cC1sZWF2ZS1hY3RpdmUmLXBsYWNlbWVudC1ib3R0b21MZWZ0IHtcbiAgICAgIGFuaW1hdGlvbi1uYW1lOiBhbnRTbGlkZVVwT3V0O1xuICAgIH1cblxuICAgICYuc2xpZGUtdXAtbGVhdmUuc2xpZGUtdXAtbGVhdmUtYWN0aXZlJi1wbGFjZW1lbnQtdG9wTGVmdCB7XG4gICAgICBhbmltYXRpb24tbmFtZTogYW50U2xpZGVEb3duT3V0O1xuICAgIH1cblxuICAgICYtaGlkZGVuIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJi1lbXB0eSB7XG4gICAgICBjb2xvcjogQGRpc2FibGVkLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT0gT3B0aW9ucyA9PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC5pdGVtKCkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtaW4taGVpZ2h0OiBAc2VsZWN0LWRyb3Bkb3duLWhlaWdodDtcbiAgICBwYWRkaW5nOiBAc2VsZWN0LWRyb3Bkb3duLXZlcnRpY2FsLXBhZGRpbmcgQGNvbnRyb2wtcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIGNvbG9yOiBAdGV4dC1jb2xvcjtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogQHNlbGVjdC1kcm9wZG93bi1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IEBzZWxlY3QtZHJvcGRvd24tbGluZS1oZWlnaHQ7XG4gIH1cblxuICAmLWl0ZW0tZW1wdHkge1xuICAgIC5pdGVtKCk7XG4gICAgY29sb3I6IEBkaXNhYmxlZC1jb2xvcjtcbiAgfVxuXG4gICYtaXRlbSB7XG4gICAgLml0ZW0oKTtcblxuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuM3MgZWFzZTtcblxuICAgIC8vID09PT09PT09PT09IEdyb3VwID09PT09PT09PT09PVxuICAgICYtZ3JvdXAge1xuICAgICAgY29sb3I6IEB0ZXh0LWNvbG9yLXNlY29uZGFyeTtcbiAgICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1zbTtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG5cbiAgICAvLyA9PT09PT09PT09PSBPcHRpb24gPT09PT09PT09PT1cbiAgICAmLW9wdGlvbiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAmLWNvbnRlbnQge1xuICAgICAgICBmbGV4OiBhdXRvO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIH1cblxuICAgICAgJi1zdGF0ZSB7XG4gICAgICAgIGZsZXg6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgICYtYWN0aXZlOm5vdCgmLWRpc2FibGVkKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBzZWxlY3QtaXRlbS1hY3RpdmUtYmc7XG4gICAgICB9XG5cbiAgICAgICYtc2VsZWN0ZWQ6bm90KCYtZGlzYWJsZWQpIHtcbiAgICAgICAgY29sb3I6IEBzZWxlY3QtaXRlbS1zZWxlY3RlZC1jb2xvcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IEBzZWxlY3QtaXRlbS1zZWxlY3RlZC1mb250LXdlaWdodDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQHNlbGVjdC1pdGVtLXNlbGVjdGVkLWJnO1xuXG4gICAgICAgIC5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1pdGVtLW9wdGlvbi1zdGF0ZSB7XG4gICAgICAgICAgY29sb3I6IEBwcmltYXJ5LWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYtZGlzYWJsZWQge1xuICAgICAgICBjb2xvcjogQGRpc2FibGVkLWNvbG9yO1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgfVxuXG4gICAgICAmLWdyb3VwZWQge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IEBjb250cm9sLXBhZGRpbmctaG9yaXpvbnRhbCAqIDI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vID09ICAgICAgICAgICAgICAgICAgICAgICAgICBTaXplICAgICAgICAgICAgICAgICAgICAgICAgICA9PVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgJi1sZyB7XG4gICAgZm9udC1zaXplOiBAZm9udC1zaXplLWxnO1xuICB9XG5cbiAgLy8gbm8gYm9yZGVyIHN0eWxlXG4gICYtYm9yZGVybGVzcyAmLXNlbGVjdG9yIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQGltcG9ydCAnLi9ydGwnO1xuIiwiQGltcG9ydCAnLi4vLi4vc3R5bGUvdGhlbWVzL2luZGV4JztcbkBpbXBvcnQgJy4uLy4uL3N0eWxlL21peGlucy9pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi9pbnB1dC9zdHlsZS9taXhpbic7XG5cbkBzZWxlY3QtcHJlZml4LWNsczogfidAe2FudC1wcmVmaXh9LXNlbGVjdCc7XG5cbi5Ae3NlbGVjdC1wcmVmaXgtY2xzfSB7XG4gICYtcnRsIHtcbiAgICBkaXJlY3Rpb246IHJ0bDtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09IEFycm93ID09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICYtYXJyb3cge1xuICAgIC5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1ydGwgJiB7XG4gICAgICByaWdodDogaW5pdGlhbDtcbiAgICAgIGxlZnQ6IEBjb250cm9sLXBhZGRpbmctaG9yaXpvbnRhbCAtIDFweDtcbiAgICB9XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PSBDbGVhciA9PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAmLWNsZWFyIHtcbiAgICAuQHtzZWxlY3QtcHJlZml4LWNsc30tcnRsICYge1xuICAgICAgcmlnaHQ6IGluaXRpYWw7XG4gICAgICBsZWZ0OiBAY29udHJvbC1wYWRkaW5nLWhvcml6b250YWwgLSAxcHg7XG4gICAgfVxuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT0gUG9wdXAgPT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgJi1kcm9wZG93biB7XG4gICAgJi1ydGwge1xuICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgfVxuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PSBPcHRpb25zID09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgJi1pdGVtIHtcbiAgICAmLW9wdGlvbiB7XG4gICAgICAmLWdyb3VwZWQge1xuICAgICAgICAuQHtzZWxlY3QtcHJlZml4LWNsc30tZHJvcGRvd24tcnRsICYge1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IEBjb250cm9sLXBhZGRpbmctaG9yaXpvbnRhbCAqIDI7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiBAY29udHJvbC1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gbXVsdGlwbGVcbkBzZWxlY3QtbXVsdGlwbGUtaXRlbS1ib3JkZXItd2lkdGg6IDFweDtcbkBzZWxlY3QtbXVsdGlwbGUtaXRlbS1zcGFjaW5nLWhhbGY6IGNlaWwoKEBpbnB1dC1wYWRkaW5nLXZlcnRpY2FsLWJhc2UgLyAyKSk7XG5Ac2VsZWN0LW11bHRpcGxlLXBhZGRpbmc6IG1heChcbiAgQGlucHV0LXBhZGRpbmctdmVydGljYWwtYmFzZSAtIEBzZWxlY3QtbXVsdGlwbGUtaXRlbS1ib3JkZXItd2lkdGggLVxuICAgIEBzZWxlY3QtbXVsdGlwbGUtaXRlbS1zcGFjaW5nLWhhbGYsXG4gIDBcbik7XG5cbi5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1tdWx0aXBsZSB7XG4gICYuQHtzZWxlY3QtcHJlZml4LWNsc30tc2hvdy1hcnJvdyAuQHtzZWxlY3QtcHJlZml4LWNsc30tc2VsZWN0b3IsXG4gICYuQHtzZWxlY3QtcHJlZml4LWNsc30tYWxsb3ctY2xlYXIgLkB7c2VsZWN0LXByZWZpeC1jbHN9LXNlbGVjdG9yIHtcbiAgICAuQHtzZWxlY3QtcHJlZml4LWNsc30tcnRsJiB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBAaW5wdXQtcGFkZGluZy12ZXJ0aWNhbC1iYXNlO1xuICAgICAgcGFkZGluZy1sZWZ0OiBAZm9udC1zaXplLXNtICsgQGNvbnRyb2wtcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIH1cbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PSBTZWxlY3Rpb25zID09PT09PT09PT09PT09PT09PT09PT09PVxuICAuQHtzZWxlY3QtcHJlZml4LWNsc30tc2VsZWN0aW9uLWl0ZW0ge1xuICAgIC5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1ydGwmIHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgICAvLyBJdCdzIG9rIG5vdCB0byBkbyB0aGlzLCBidXQgMjRweCBtYWtlcyBib3R0b20gbmFycm93IGluIHZpZXcgc2hvdWxkIGFkanVzdFxuICAgICYtY29udGVudCB7XG4gICAgICAuQHtzZWxlY3QtcHJlZml4LWNsc30tcnRsJiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IChAcGFkZGluZy14cyAvIDIpO1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PSBJbnB1dCA9PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAuQHtzZWxlY3QtcHJlZml4LWNsc30tc2VsZWN0aW9uLXNlYXJjaCB7XG4gICAgJi1taXJyb3Ige1xuICAgICAgLkB7c2VsZWN0LXByZWZpeC1jbHN9LXJ0bCYge1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmZpcnN0LWNoaWxkID4gLkB7c2VsZWN0LXByZWZpeC1jbHN9LXNlbGVjdGlvbi1zZWFyY2gtaW5wdXQge1xuICAgICAgLkB7c2VsZWN0LXByZWZpeC1jbHN9LXJ0bCYge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09IFBsYWNlaG9sZGVyID09PT09PT09PT09PT09PT09PT09PT09XG4gIC5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1zZWxlY3Rpb24tcGxhY2Vob2xkZXIge1xuICAgIC5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1ydGwmIHtcbiAgICAgIHJpZ2h0OiBAaW5wdXQtcGFkZGluZy1ob3Jpem9udGFsO1xuICAgICAgbGVmdDogYXV0bztcbiAgICB9XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gPT0gICAgICAgICAgICAgICAgICAgICAgICAgIFNpemUgICAgICAgICAgICAgICAgICAgICAgICAgID09XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIFNpemUgc21hbGwgbmVlZCBhZGRpdGlvbmFsIHNldCBwYWRkaW5nXG4gICYuQHtzZWxlY3QtcHJlZml4LWNsc30tc20ge1xuICAgIC5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1zZWxlY3Rpb24tcGxhY2Vob2xkZXIge1xuICAgICAgLkB7c2VsZWN0LXByZWZpeC1jbHN9LXJ0bCYge1xuICAgICAgICByaWdodDogQGlucHV0LXBhZGRpbmctaG9yaXpvbnRhbC1zbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gc2luZ2xlXG5Ac2VsZWN0aW9uLWl0ZW0tcGFkZGluZzogY2VpbChAZm9udC1zaXplLWJhc2UgKiAxLjI1KTtcblxuLkB7c2VsZWN0LXByZWZpeC1jbHN9LXNpbmdsZSB7XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT0gU2VsZWN0b3IgPT09PT09PT09PT09PT09PT09PT09PT09PVxuICAuQHtzZWxlY3QtcHJlZml4LWNsc30tc2VsZWN0b3Ige1xuICAgIC5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1zZWxlY3Rpb24taXRlbSxcbiAgICAuQHtzZWxlY3QtcHJlZml4LWNsc30tc2VsZWN0aW9uLXBsYWNlaG9sZGVyIHtcbiAgICAgIC5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1ydGwmIHtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGxlZnQ6IDlweDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gV2l0aCBhcnJvdyBzaG91bGQgcHJvdmlkZXMgYHBhZGRpbmctcmlnaHRgIHRvIHNob3cgdGhlIGFycm93XG4gICYuQHtzZWxlY3QtcHJlZml4LWNsc30tc2hvdy1hcnJvdyAuQHtzZWxlY3QtcHJlZml4LWNsc30tc2VsZWN0aW9uLXNlYXJjaCB7XG4gICAgLkB7c2VsZWN0LXByZWZpeC1jbHN9LXJ0bCYge1xuICAgICAgcmlnaHQ6IEBpbnB1dC1wYWRkaW5nLWhvcml6b250YWwtYmFzZTtcbiAgICAgIGxlZnQ6IEBpbnB1dC1wYWRkaW5nLWhvcml6b250YWwtYmFzZSArIEBmb250LXNpemUtYmFzZTtcbiAgICB9XG4gIH1cblxuICAmLkB7c2VsZWN0LXByZWZpeC1jbHN9LXNob3ctYXJyb3cgLkB7c2VsZWN0LXByZWZpeC1jbHN9LXNlbGVjdGlvbi1pdGVtLFxuICAmLkB7c2VsZWN0LXByZWZpeC1jbHN9LXNob3ctYXJyb3cgLkB7c2VsZWN0LXByZWZpeC1jbHN9LXNlbGVjdGlvbi1wbGFjZWhvbGRlciB7XG4gICAgLkB7c2VsZWN0LXByZWZpeC1jbHN9LXJ0bCYge1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIHBhZGRpbmctbGVmdDogQHNlbGVjdGlvbi1pdGVtLXBhZGRpbmc7XG4gICAgfVxuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT0gSW5wdXQgPT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gV2Ugb25seSBjaGFuZ2UgdGhlIHN0eWxlIG9mIG5vbi1jdXN0b21pemUgaW5wdXQgd2hpY2ggaXMgb25seSBzdXBwb3J0IGJ5IGBjb21ib2JveGAgbW9kZS5cblxuICAvLyBOb3QgY3VzdG9taXplXG4gICY6bm90KC5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1jdXN0b21pemUtaW5wdXQpIHtcbiAgICAuQHtzZWxlY3QtcHJlZml4LWNsc30tc2VsZWN0b3Ige1xuICAgICAgLkB7c2VsZWN0LXByZWZpeC1jbHN9LXJ0bCYge1xuICAgICAgICBwYWRkaW5nOiAwIEBpbnB1dC1wYWRkaW5nLWhvcml6b250YWwtYmFzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gPT0gICAgICAgICAgICAgICAgICAgICAgICAgIFNpemUgICAgICAgICAgICAgICAgICAgICAgICAgID09XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIFNpemUgc21hbGwgbmVlZCBhZGRpdGlvbmFsIHNldCBwYWRkaW5nXG4gICYuQHtzZWxlY3QtcHJlZml4LWNsc30tc20ge1xuICAgICY6bm90KC5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1jdXN0b21pemUtaW5wdXQpIHtcbiAgICAgIC8vIFdpdGggYXJyb3cgc2hvdWxkIHByb3ZpZGVzIGBwYWRkaW5nLXJpZ2h0YCB0byBzaG93IHRoZSBhcnJvd1xuICAgICAgJi5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1zaG93LWFycm93IC5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1zZWxlY3Rpb24tc2VhcmNoIHtcbiAgICAgICAgLkB7c2VsZWN0LXByZWZpeC1jbHN9LXJ0bCYge1xuICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuQHtzZWxlY3QtcHJlZml4LWNsc30tc2hvdy1hcnJvdyAuQHtzZWxlY3QtcHJlZml4LWNsc30tc2VsZWN0aW9uLWl0ZW0sXG4gICAgICAmLkB7c2VsZWN0LXByZWZpeC1jbHN9LXNob3ctYXJyb3cgLkB7c2VsZWN0LXByZWZpeC1jbHN9LXNlbGVjdGlvbi1wbGFjZWhvbGRlciB7XG4gICAgICAgIC5Ae3NlbGVjdC1wcmVmaXgtY2xzfS1ydGwmIHtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogQGZvbnQtc2l6ZS1iYXNlICogMS41O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0ICcuLi8uLi9zdHlsZS90aGVtZXMvaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vc3R5bGUvbWl4aW5zL2luZGV4JztcblxuQGVtcHR5LXByZWZpeC1jbHM6IH4nQHthbnQtcHJlZml4fS1lbXB0eSc7XG5AZW1wdHktaW1nLXByZWZpeC1jbHM6IH4nQHthbnQtcHJlZml4fS1lbXB0eS1pbWcnO1xuXG4uQHtlbXB0eS1wcmVmaXgtY2xzfSB7XG4gIG1hcmdpbjogMCA4cHg7XG4gIGZvbnQtc2l6ZTogQGVtcHR5LWZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgJi1pbWFnZSB7XG4gICAgaGVpZ2h0OiAxMDBweDtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG5cbiAgICBpbWcge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIHN2ZyB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBtYXJnaW46IGF1dG87XG4gICAgfVxuICB9XG5cbiAgJi1mb290ZXIge1xuICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gIH1cblxuICAvLyBhbnRkIGludGVybmFsIGVtcHR5IHN0eWxlXG4gICYtbm9ybWFsIHtcbiAgICBtYXJnaW46IDMycHggMDtcbiAgICBjb2xvcjogQGRpc2FibGVkLWNvbG9yO1xuXG4gICAgLkB7ZW1wdHktcHJlZml4LWNsc30taW1hZ2Uge1xuICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgIH1cbiAgfVxuXG4gICYtc21hbGwge1xuICAgIG1hcmdpbjogOHB4IDA7XG4gICAgY29sb3I6IEBkaXNhYmxlZC1jb2xvcjtcblxuICAgIC5Ae2VtcHR5LXByZWZpeC1jbHN9LWltYWdlIHtcbiAgICAgIGhlaWdodDogMzVweDtcbiAgICB9XG4gIH1cbn1cblxuLkB7ZW1wdHktaW1nLXByZWZpeC1jbHN9LWRlZmF1bHQge1xuICAvLyBub3Qgc3VwcG9ydCB0aGUgZGVmaW5pdGlvbiBiZWNhdXNlIHRoZSBsZXNzIHZhcmlhYmxlcyBoYXZlIG5vIG1lYW5pbmdcbiAgJiB3aGVuIChAdGhlbWUgPSBkYXJrKSB7XG4gICAgJi1lbGxpcHNlIHtcbiAgICAgIGZpbGwtb3BhY2l0eTogMC4wODtcbiAgICAgIGZpbGw6IEB3aGl0ZTtcbiAgICB9XG4gICAgJi1wYXRoIHtcbiAgICAgICYtMSB7XG4gICAgICAgIGZpbGw6ICMyNjI2MjY7XG4gICAgICB9XG4gICAgICAmLTIge1xuICAgICAgICBmaWxsOiB1cmwoI2xpbmVhckdyYWRpZW50LTEpO1xuICAgICAgfVxuICAgICAgJi0zIHtcbiAgICAgICAgZmlsbDogIzU5NTk1OTtcbiAgICAgIH1cbiAgICAgICYtNCB7XG4gICAgICAgIGZpbGw6ICM0MzQzNDM7XG4gICAgICB9XG4gICAgICAmLTUge1xuICAgICAgICBmaWxsOiAjNTk1OTU5O1xuICAgICAgfVxuICAgIH1cbiAgICAmLWcge1xuICAgICAgZmlsbDogIzQzNDM0MztcbiAgICB9XG4gIH1cbiAgJiB3aGVuIG5vdCAoQHRoZW1lID0gZGFyaykge1xuICAgICYtZWxsaXBzZSB7XG4gICAgICBmaWxsLW9wYWNpdHk6IDAuODtcbiAgICAgIGZpbGw6ICNmNWY1ZjU7XG4gICAgfVxuICAgICYtcGF0aCB7XG4gICAgICAmLTEge1xuICAgICAgICBmaWxsOiAjYWViOGMyO1xuICAgICAgfVxuICAgICAgJi0yIHtcbiAgICAgICAgZmlsbDogdXJsKCNsaW5lYXJHcmFkaWVudC0xKTtcbiAgICAgIH1cbiAgICAgICYtMyB7XG4gICAgICAgIGZpbGw6ICNmNWY1Zjc7XG4gICAgICB9XG4gICAgICAmLTQge1xuICAgICAgICBmaWxsOiAjZGNlMGU2O1xuICAgICAgfVxuICAgICAgJi01IHtcbiAgICAgICAgZmlsbDogI2RjZTBlNjtcbiAgICAgIH1cbiAgICB9XG4gICAgJi1nIHtcbiAgICAgIGZpbGw6IEB3aGl0ZTtcbiAgICB9XG4gIH1cbn1cblxuLkB7ZW1wdHktaW1nLXByZWZpeC1jbHN9LXNpbXBsZSB7XG4gIC8vIG5vdCBzdXBwb3J0IHRoZSBkZWZpbml0aW9uIGJlY2F1c2UgdGhlIGxlc3MgdmFyaWFibGVzIGhhdmUgbm8gbWVhbmluZ1xuICAmIHdoZW4gKEB0aGVtZSA9IGRhcmspIHtcbiAgICAmLWVsbGlwc2Uge1xuICAgICAgZmlsbDogQHdoaXRlO1xuICAgICAgZmlsbC1vcGFjaXR5OiAwLjA4O1xuICAgIH1cbiAgICAmLWcge1xuICAgICAgc3Ryb2tlOiAjNDM0MzQzO1xuICAgIH1cbiAgICAmLXBhdGgge1xuICAgICAgZmlsbDogIzI2MjYyNjtcbiAgICAgIHN0cm9rZTogIzQzNDM0MztcbiAgICB9XG4gIH1cbiAgJiB3aGVuIG5vdCAoQHRoZW1lID0gZGFyaykge1xuICAgICYtZWxsaXBzZSB7XG4gICAgICBmaWxsOiAjZjVmNWY1O1xuICAgIH1cbiAgICAmLWcge1xuICAgICAgc3Ryb2tlOiAjZDlkOWQ5O1xuICAgIH1cbiAgICAmLXBhdGgge1xuICAgICAgZmlsbDogI2ZhZmFmYTtcbiAgICB9XG4gIH1cbn1cblxuQGltcG9ydCAnLi9ydGwnO1xuIiwiQGltcG9ydCAnLi4vLi4vc3R5bGUvdGhlbWVzL2luZGV4JztcbkBpbXBvcnQgJy4uLy4uL3N0eWxlL21peGlucy9pbmRleCc7XG5cbkBlbXB0eS1wcmVmaXgtY2xzOiB+J0B7YW50LXByZWZpeH0tZW1wdHknO1xuXG4uQHtlbXB0eS1wcmVmaXgtY2xzfSB7XG4gICYtcnRsIHtcbiAgICBkaXJlY3Rpb246IHJ0bDtcbiAgfVxufVxuIiwibnotZW1wdHkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbiIsIi5hbnQtc2VsZWN0LWRyb3Bkb3duIHtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiA0cHg7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXIge1xuICAgIHJpZ2h0OiAwO1xuICB9XG4gIC5mdWxsLXdpZHRoIHtcbiAgICBjb250YWluOiBpbml0aWFsO1xuICAgIC5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyIHtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0ICcuLi8uLi9zdHlsZS90aGVtZXMvaW5kZXgnO1xuQGltcG9ydCAnLi4vLi4vc3R5bGUvbWl4aW5zL2luZGV4JztcblxuQGFsZXJ0LXByZWZpeC1jbHM6IH4nQHthbnQtcHJlZml4fS1hbGVydCc7XG5cbi5Ae2FsZXJ0LXByZWZpeC1jbHN9IHtcbiAgLnJlc2V0LWNvbXBvbmVudCgpO1xuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogOHB4IDE1cHg7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtYmFzZTtcblxuICAmLWNvbnRlbnQge1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgJi1pY29uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IEBtYXJnaW4teHM7XG4gIH1cblxuICAmLWRlc2NyaXB0aW9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1iYXNlO1xuICAgIGxpbmUtaGVpZ2h0OiBAZm9udC1zaXplLWJhc2UgKyA4cHg7XG4gIH1cblxuICAmLXN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBhbGVydC1zdWNjZXNzLWJnLWNvbG9yO1xuICAgIGJvcmRlcjogQGJvcmRlci13aWR0aC1iYXNlIEBib3JkZXItc3R5bGUtYmFzZSBAYWxlcnQtc3VjY2Vzcy1ib3JkZXItY29sb3I7XG4gICAgLkB7YWxlcnQtcHJlZml4LWNsc30taWNvbiB7XG4gICAgICBjb2xvcjogQGFsZXJ0LXN1Y2Nlc3MtaWNvbi1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAmLWluZm8ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBhbGVydC1pbmZvLWJnLWNvbG9yO1xuICAgIGJvcmRlcjogQGJvcmRlci13aWR0aC1iYXNlIEBib3JkZXItc3R5bGUtYmFzZSBAYWxlcnQtaW5mby1ib3JkZXItY29sb3I7XG4gICAgLkB7YWxlcnQtcHJlZml4LWNsc30taWNvbiB7XG4gICAgICBjb2xvcjogQGFsZXJ0LWluZm8taWNvbi1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAmLXdhcm5pbmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBhbGVydC13YXJuaW5nLWJnLWNvbG9yO1xuICAgIGJvcmRlcjogQGJvcmRlci13aWR0aC1iYXNlIEBib3JkZXItc3R5bGUtYmFzZSBAYWxlcnQtd2FybmluZy1ib3JkZXItY29sb3I7XG4gICAgLkB7YWxlcnQtcHJlZml4LWNsc30taWNvbiB7XG4gICAgICBjb2xvcjogQGFsZXJ0LXdhcm5pbmctaWNvbi1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAmLWVycm9yIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAYWxlcnQtZXJyb3ItYmctY29sb3I7XG4gICAgYm9yZGVyOiBAYm9yZGVyLXdpZHRoLWJhc2UgQGJvcmRlci1zdHlsZS1iYXNlIEBhbGVydC1lcnJvci1ib3JkZXItY29sb3I7XG5cbiAgICAuQHthbGVydC1wcmVmaXgtY2xzfS1pY29uIHtcbiAgICAgIGNvbG9yOiBAYWxlcnQtZXJyb3ItaWNvbi1jb2xvcjtcbiAgICB9XG5cbiAgICAuQHthbGVydC1wcmVmaXgtY2xzfS1kZXNjcmlwdGlvbiA+IHByZSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgfVxuXG4gICYtYWN0aW9uIHtcbiAgICBtYXJnaW4tbGVmdDogQG1hcmdpbi14cztcbiAgfVxuXG4gICYtY2xvc2UtaWNvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IEBtYXJnaW4teHM7XG4gICAgcGFkZGluZzogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1zbTtcbiAgICBsaW5lLWhlaWdodDogQGZvbnQtc2l6ZS1zbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAuQHtpY29uZm9udC1jc3MtcHJlZml4fS1jbG9zZSB7XG4gICAgICBjb2xvcjogQGFsZXJ0LWNsb3NlLWNvbG9yO1xuICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4zcztcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogQGFsZXJ0LWNsb3NlLWhvdmVyLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYtY2xvc2UtdGV4dCB7XG4gICAgY29sb3I6IEBhbGVydC1jbG9zZS1jb2xvcjtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzO1xuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IEBhbGVydC1jbG9zZS1ob3Zlci1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAmLXdpdGgtZGVzY3JpcHRpb24ge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIHBhZGRpbmc6IEBhbGVydC13aXRoLWRlc2NyaXB0aW9uLXBhZGRpbmc7XG4gIH1cblxuICAmLXdpdGgtZGVzY3JpcHRpb24mLW5vLWljb24ge1xuICAgIHBhZGRpbmc6IEBhbGVydC13aXRoLWRlc2NyaXB0aW9uLW5vLWljb24tcGFkZGluZy12ZXJ0aWNhbCAxNXB4O1xuICB9XG5cbiAgJi13aXRoLWRlc2NyaXB0aW9uICYtaWNvbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiBAYWxlcnQtd2l0aC1kZXNjcmlwdGlvbi1wYWRkaW5nLXZlcnRpY2FsO1xuICAgIGZvbnQtc2l6ZTogQGFsZXJ0LXdpdGgtZGVzY3JpcHRpb24taWNvbi1zaXplO1xuICB9XG4gICYtd2l0aC1kZXNjcmlwdGlvbiAmLW1lc3NhZ2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICBjb2xvcjogQGFsZXJ0LW1lc3NhZ2UtY29sb3I7XG4gICAgZm9udC1zaXplOiBAZm9udC1zaXplLWxnO1xuICB9XG5cbiAgJi1tZXNzYWdlIHtcbiAgICBjb2xvcjogQGFsZXJ0LW1lc3NhZ2UtY29sb3I7XG4gIH1cblxuICAmLXdpdGgtZGVzY3JpcHRpb24gJi1kZXNjcmlwdGlvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAmJi1tb3Rpb24tbGVhdmUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuM3MgQGVhc2UtaW4tb3V0LWNpcmMsIG9wYWNpdHkgMC4zcyBAZWFzZS1pbi1vdXQtY2lyYyxcbiAgICAgIHBhZGRpbmctdG9wIDAuM3MgQGVhc2UtaW4tb3V0LWNpcmMsIHBhZGRpbmctYm90dG9tIDAuM3MgQGVhc2UtaW4tb3V0LWNpcmMsXG4gICAgICBtYXJnaW4tYm90dG9tIDAuM3MgQGVhc2UtaW4tb3V0LWNpcmM7XG4gIH1cblxuICAmJi1tb3Rpb24tbGVhdmUtYWN0aXZlIHtcbiAgICBtYXgtaGVpZ2h0OiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgJi1iYW5uZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIH1cbn1cblxuQGltcG9ydCAnLi9ydGwnO1xuIiwiLkB7YWxlcnQtcHJlZml4LWNsc30ge1xuICAmJi1ydGwge1xuICAgIGRpcmVjdGlvbjogcnRsO1xuICB9XG5cbiAgJiYtbm8taWNvbiB7XG4gICAgLkB7YWxlcnQtcHJlZml4LWNsc30tcnRsJiB7XG4gICAgICBwYWRkaW5nOiBAYWxlcnQtbm8taWNvbi1wYWRkaW5nLXZlcnRpY2FsIDE1cHg7XG4gICAgfVxuICB9XG5cbiAgJi1pY29uIHtcbiAgICAuQHthbGVydC1wcmVmaXgtY2xzfS1ydGwgJiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW4tbGVmdDogQG1hcmdpbi14cztcbiAgICB9XG4gIH1cblxuICAmLWFjdGlvbiB7XG4gICAgLkB7YWxlcnQtcHJlZml4LWNsc30tcnRsICYge1xuICAgICAgbWFyZ2luLXJpZ2h0OiBAbWFyZ2luLXhzO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgJi1jbG9zZS1pY29uIHtcbiAgICAuQHthbGVydC1wcmVmaXgtY2xzfS1ydGwgJiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IEBtYXJnaW4teHM7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG4gIH1cblxuICAmLXdpdGgtZGVzY3JpcHRpb24gJi1pY29uIHtcbiAgICAuQHthbGVydC1wcmVmaXgtY2xzfS1ydGwmIHtcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIG1hcmdpbi1sZWZ0OiBAYWxlcnQtd2l0aC1kZXNjcmlwdGlvbi1wYWRkaW5nLXZlcnRpY2FsO1xuICAgIH1cbiAgfVxufVxuIiwibnotYWxlcnQge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbiIsIkBpbXBvcnQgJy4uLy4uL3N0eWxlL3RoZW1lcy9pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi9zdHlsZS9taXhpbnMvaW5kZXgnO1xuXG5AY2Fyb3VzZWwtcHJlZml4LWNsczogfidAe2FudC1wcmVmaXh9LWNhcm91c2VsJztcblxuLkB7Y2Fyb3VzZWwtcHJlZml4LWNsc30ge1xuICAucmVzZXQtY29tcG9uZW50KCk7XG5cbiAgLnNsaWNrLXNsaWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAgIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xuICAgIHRvdWNoLWFjdGlvbjogcGFuLXk7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC5zbGljay1saXN0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAmLmRyYWdnaW5nIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAuc2xpY2stc2xpZGUge1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzIzMjk0XG4gICAgICBpbnB1dC5Ae2FudC1wcmVmaXh9LXJhZGlvLWlucHV0LFxuICAgICAgaW5wdXQuQHthbnQtcHJlZml4fS1jaGVja2JveC1pbnB1dCB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIH1cblxuICAgICAgJi5zbGljay1hY3RpdmUge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcblxuICAgICAgICBpbnB1dC5Ae2FudC1wcmVmaXh9LXJhZGlvLWlucHV0LFxuICAgICAgICBpbnB1dC5Ae2FudC1wcmVmaXh9LWNoZWNrYm94LWlucHV0IHtcbiAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIGZpeCBDYXJvdXNlbCBjb250ZW50IGhlaWdodCBub3QgbWF0Y2ggcGFyZW50IG5vZGVcbiAgICAgIC8vIHdoZW4gY2hpbGRyZW4gaXMgZW1wdHkgbm9kZVxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvMjU4NzhcbiAgICAgID4gZGl2ID4gZGl2IHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuc2xpY2stc2xpZGVyIC5zbGljay10cmFjayxcbiAgLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0b3VjaC1hY3Rpb246IHBhbi15O1xuICB9XG5cbiAgLnNsaWNrLXRyYWNrIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICBjb250ZW50OiAnJztcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG5cbiAgICAuc2xpY2stbG9hZGluZyAmIHtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICAuc2xpY2stc2xpZGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcblxuICAgIGltZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmLnNsaWNrLWxvYWRpbmcgaW1nIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5kcmFnZ2luZyBpbWcge1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLnNsaWNrLWluaXRpYWxpemVkIC5zbGljay1zbGlkZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAuc2xpY2stbG9hZGluZyAuc2xpY2stc2xpZGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIC5zbGljay12ZXJ0aWNhbCAuc2xpY2stc2xpZGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuICAuc2xpY2stYXJyb3cuc2xpY2staGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gQXJyb3dzXG4gIC5zbGljay1wcmV2LFxuICAuc2xpY2stbmV4dCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBtYXJnaW4tdG9wOiAtMTBweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBmb250LXNpemU6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAwO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIH1cbiAgICAmLnNsaWNrLWRpc2FibGVkOjpiZWZvcmUge1xuICAgICAgb3BhY2l0eTogMC4yNTtcbiAgICB9XG4gIH1cblxuICAuc2xpY2stcHJldiB7XG4gICAgbGVmdDogLTI1cHg7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ+KGkCc7XG4gICAgfVxuICB9XG5cbiAgLnNsaWNrLW5leHQge1xuICAgIHJpZ2h0OiAtMjVweDtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ+KGkic7XG4gICAgfVxuICB9XG5cbiAgLy8gRG90c1xuICAuc2xpY2stZG90cyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDE1O1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtYXJnaW4tcmlnaHQ6IDE1JTtcbiAgICBtYXJnaW4tbGVmdDogMTUlO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICAgJi1ib3R0b20ge1xuICAgICAgYm90dG9tOiAxMnB4O1xuICAgIH1cbiAgICAmLXRvcCB7XG4gICAgICB0b3A6IDEycHg7XG4gICAgfVxuICAgIGxpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgICB3aWR0aDogQGNhcm91c2VsLWRvdC13aWR0aDtcbiAgICAgIGhlaWdodDogQGNhcm91c2VsLWRvdC1oZWlnaHQ7XG4gICAgICBtYXJnaW46IDAgMnB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gICAgICBtYXJnaW4tbGVmdDogM3B4O1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHRleHQtaW5kZW50OiAtOTk5cHg7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNXM7XG4gICAgICBidXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogQGNhcm91c2VsLWRvdC1oZWlnaHQ7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgZm9udC1zaXplOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiBAY29tcG9uZW50LWJhY2tncm91bmQ7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXB4O1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG9wYWNpdHk6IDAuMztcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNXM7XG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgIG9wYWNpdHk6IDAuNzU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuc2xpY2stYWN0aXZlIHtcbiAgICAgICAgd2lkdGg6IEBjYXJvdXNlbC1kb3QtYWN0aXZlLXdpZHRoO1xuICAgICAgICAmIGJ1dHRvbiB7XG4gICAgICAgICAgYmFja2dyb3VuZDogQGNvbXBvbmVudC1iYWNrZ3JvdW5kO1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uQHthbnQtcHJlZml4fS1jYXJvdXNlbC12ZXJ0aWNhbCB7XG4gIC5zbGljay1kb3RzIHtcbiAgICB0b3A6IDUwJTtcbiAgICBib3R0b206IGF1dG87XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB3aWR0aDogQGNhcm91c2VsLWRvdC1oZWlnaHQ7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cbiAgICAmLWxlZnQge1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICBsZWZ0OiAxMnB4O1xuICAgIH1cbiAgICAmLXJpZ2h0IHtcbiAgICAgIHJpZ2h0OiAxMnB4O1xuICAgICAgbGVmdDogYXV0bztcbiAgICB9XG4gICAgbGkge1xuICAgICAgd2lkdGg6IEBjYXJvdXNlbC1kb3QtaGVpZ2h0O1xuICAgICAgaGVpZ2h0OiBAY2Fyb3VzZWwtZG90LXdpZHRoO1xuICAgICAgbWFyZ2luOiA0cHggMnB4O1xuICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgICAgYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IEBjYXJvdXNlbC1kb3QtaGVpZ2h0O1xuICAgICAgICBoZWlnaHQ6IEBjYXJvdXNlbC1kb3Qtd2lkdGg7XG4gICAgICB9XG4gICAgICAmLnNsaWNrLWFjdGl2ZSB7XG4gICAgICAgIHdpZHRoOiBAY2Fyb3VzZWwtZG90LWhlaWdodDtcbiAgICAgICAgaGVpZ2h0OiBAY2Fyb3VzZWwtZG90LWFjdGl2ZS13aWR0aDtcblxuICAgICAgICBidXR0b24ge1xuICAgICAgICAgIHdpZHRoOiBAY2Fyb3VzZWwtZG90LWhlaWdodDtcbiAgICAgICAgICBoZWlnaHQ6IEBjYXJvdXNlbC1kb3QtYWN0aXZlLXdpZHRoO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBpbXBvcnQgJy4vcnRsJztcbiIsIkBpbXBvcnQgJy4uLy4uL3N0eWxlL3RoZW1lcy9pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi9zdHlsZS9taXhpbnMvaW5kZXgnO1xuXG5AY2Fyb3VzZWwtcHJlZml4LWNsczogfidAe2FudC1wcmVmaXh9LWNhcm91c2VsJztcblxuLkB7Y2Fyb3VzZWwtcHJlZml4LWNsc30ge1xuICAmLXJ0bCB7XG4gICAgZGlyZWN0aW9uOiBydGw7XG4gIH1cblxuICAuc2xpY2stdHJhY2sge1xuICAgIC5Ae2Nhcm91c2VsLXByZWZpeC1jbHN9LXJ0bCAmIHtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgbGVmdDogYXV0bztcbiAgICB9XG4gIH1cblxuICAuc2xpY2stcHJldiB7XG4gICAgLkB7Y2Fyb3VzZWwtcHJlZml4LWNsc30tcnRsICYge1xuICAgICAgcmlnaHQ6IC0yNXB4O1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICfihpInO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5zbGljay1uZXh0IHtcbiAgICAuQHtjYXJvdXNlbC1wcmVmaXgtY2xzfS1ydGwgJiB7XG4gICAgICByaWdodDogYXV0bztcbiAgICAgIGxlZnQ6IC0yNXB4O1xuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJ+KGkCc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gRG90c1xuICAuc2xpY2stZG90cyB7XG4gICAgLkB7Y2Fyb3VzZWwtcHJlZml4LWNsc30tcnRsJiB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgfVxuICB9XG59XG5cbi5Ae2FudC1wcmVmaXh9LWNhcm91c2VsLXZlcnRpY2FsIHtcbiAgLnNsaWNrLWRvdHMge1xuICAgIC5Ae2Nhcm91c2VsLXByZWZpeC1jbHN9LXJ0bCYge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG4gIH1cbn1cbiIsIm56LWNhcm91c2VsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLnNsaWNrLWRvdHMge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnNsaWNrLXRyYWNrIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLnNsaWNrLWxpc3Qge1xuICBkaXJlY3Rpb246IGx0cjtcbn1cbiIsIkBpbXBvcnQgJy4uLy4uL3N0eWxlL3RoZW1lcy9pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi9zdHlsZS9taXhpbnMvaW5kZXgnO1xuXG5AcG9wb3Zlci1wcmVmaXgtY2xzOiB+J0B7YW50LXByZWZpeH0tcG9wb3Zlcic7XG5cbi5Ae3BvcG92ZXItcHJlZml4LWNsc30ge1xuICAucmVzZXQtY29tcG9uZW50KCk7XG5cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IEB6aW5kZXgtcG9wb3ZlcjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY3Vyc29yOiBhdXRvO1xuICB1c2VyLXNlbGVjdDogdGV4dDtcblxuICAmOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQ6IGZhZGUoQHdoaXRlLCAxJSk7XG4gICAgY29udGVudDogJyc7XG4gIH1cblxuICAmLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIE9mZnNldCB0aGUgcG9wb3ZlciB0byBhY2NvdW50IGZvciB0aGUgcG9wb3ZlciBhcnJvd1xuICAmLXBsYWNlbWVudC10b3AsXG4gICYtcGxhY2VtZW50LXRvcExlZnQsXG4gICYtcGxhY2VtZW50LXRvcFJpZ2h0IHtcbiAgICBwYWRkaW5nLWJvdHRvbTogQHBvcG92ZXItZGlzdGFuY2U7XG4gIH1cblxuICAmLXBsYWNlbWVudC1yaWdodCxcbiAgJi1wbGFjZW1lbnQtcmlnaHRUb3AsXG4gICYtcGxhY2VtZW50LXJpZ2h0Qm90dG9tIHtcbiAgICBwYWRkaW5nLWxlZnQ6IEBwb3BvdmVyLWRpc3RhbmNlO1xuICB9XG5cbiAgJi1wbGFjZW1lbnQtYm90dG9tLFxuICAmLXBsYWNlbWVudC1ib3R0b21MZWZ0LFxuICAmLXBsYWNlbWVudC1ib3R0b21SaWdodCB7XG4gICAgcGFkZGluZy10b3A6IEBwb3BvdmVyLWRpc3RhbmNlO1xuICB9XG5cbiAgJi1wbGFjZW1lbnQtbGVmdCxcbiAgJi1wbGFjZW1lbnQtbGVmdFRvcCxcbiAgJi1wbGFjZW1lbnQtbGVmdEJvdHRvbSB7XG4gICAgcGFkZGluZy1yaWdodDogQHBvcG92ZXItZGlzdGFuY2U7XG4gIH1cblxuICAmLWlubmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAcG9wb3Zlci1iZztcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2U7XG4gICAgYm94LXNoYWRvdzogQGJveC1zaGFkb3ctYmFzZTtcbiAgICBib3gtc2hhZG93OiB+JzAgMCA4cHggQHtzaGFkb3ctY29sb3J9IFxcOSc7XG4gIH1cblxuICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSkge1xuICAgIC8qIElFMTArICovXG4gICAgJi1pbm5lciB7XG4gICAgICBib3gtc2hhZG93OiBAYm94LXNoYWRvdy1iYXNlO1xuICAgIH1cbiAgfVxuXG4gICYtdGl0bGUge1xuICAgIG1pbi13aWR0aDogQHBvcG92ZXItbWluLXdpZHRoO1xuICAgIG1pbi1oZWlnaHQ6IEBwb3BvdmVyLW1pbi1oZWlnaHQ7XG4gICAgbWFyZ2luOiAwOyAvLyByZXNldCBoZWFkaW5nIG1hcmdpblxuICAgIHBhZGRpbmc6IDVweCBAcG9wb3Zlci1wYWRkaW5nLWhvcml6b250YWwgNHB4O1xuICAgIGNvbG9yOiBAaGVhZGluZy1jb2xvcjtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAYm9yZGVyLWNvbG9yLXNwbGl0O1xuICB9XG5cbiAgJi1pbm5lci1jb250ZW50IHtcbiAgICBwYWRkaW5nOiBAcGFkZGluZy1zbSBAcG9wb3Zlci1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgY29sb3I6IEBwb3BvdmVyLWNvbG9yO1xuICB9XG5cbiAgJi1tZXNzYWdlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogNHB4IDAgMTJweDtcbiAgICBjb2xvcjogQHBvcG92ZXItY29sb3I7XG4gICAgZm9udC1zaXplOiBAZm9udC1zaXplLWJhc2U7XG4gICAgPiAuQHtpY29uZm9udC1jc3MtcHJlZml4fSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IChcbiAgICAgICAgNHB4ICsgKChAbGluZS1oZWlnaHQtYmFzZSAqIEBmb250LXNpemUtYmFzZSAtIEBmb250LXNpemUtYmFzZSkgLyAyKVxuICAgICAgKTsgLy8gNHB4IGZvciBwYWRkaW5nLXRvcCwgNHB4IGZvciB2ZXJ0aWNhbCBtaWRkbGVcbiAgICAgIGNvbG9yOiBAd2FybmluZy1jb2xvcjtcbiAgICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1iYXNlO1xuICAgIH1cbiAgICAmLXRpdGxlIHtcbiAgICAgIHBhZGRpbmctbGVmdDogQGZvbnQtc2l6ZS1iYXNlICsgOHB4O1xuICAgIH1cbiAgfVxuXG4gICYtYnV0dG9ucyB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgYnV0dG9uIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgfVxuICB9XG5cbiAgLy8gQXJyb3dzXG4gIC8vIC5wb3BvdmVyLWFycm93IGlzIG91dGVyLCAucG9wb3Zlci1hcnJvdzphZnRlciBpcyBpbm5lclxuXG4gICYtYXJyb3cge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogc3FydChAcG9wb3Zlci1hcnJvdy13aWR0aCAqIEBwb3BvdmVyLWFycm93LXdpZHRoICogMik7XG4gICAgaGVpZ2h0OiBzcXJ0KEBwb3BvdmVyLWFycm93LXdpZHRoICogQHBvcG92ZXItYXJyb3ctd2lkdGggKiAyKTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogKHNxcnQoQHBvcG92ZXItYXJyb3ctd2lkdGggKiBAcG9wb3Zlci1hcnJvdy13aWR0aCAqIDIpIC8gMik7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICB9XG5cbiAgJi1wbGFjZW1lbnQtdG9wID4gJi1jb250ZW50ID4gJi1hcnJvdyxcbiAgJi1wbGFjZW1lbnQtdG9wTGVmdCA+ICYtY29udGVudCA+ICYtYXJyb3csXG4gICYtcGxhY2VtZW50LXRvcFJpZ2h0ID4gJi1jb250ZW50ID4gJi1hcnJvdyB7XG4gICAgYm90dG9tOiBAcG9wb3Zlci1kaXN0YW5jZSAtIEBwb3BvdmVyLWFycm93LXdpZHRoICsgMi4ycHg7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiBAcG9wb3Zlci1iZztcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBAcG9wb3Zlci1iZztcbiAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm94LXNoYWRvdzogM3B4IDNweCA3cHggZmFkZShAYmxhY2ssIDclKTtcbiAgfVxuICAmLXBsYWNlbWVudC10b3AgPiAmLWNvbnRlbnQgPiAmLWFycm93IHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gIH1cbiAgJi1wbGFjZW1lbnQtdG9wTGVmdCA+ICYtY29udGVudCA+ICYtYXJyb3cge1xuICAgIGxlZnQ6IDE2cHg7XG4gIH1cbiAgJi1wbGFjZW1lbnQtdG9wUmlnaHQgPiAmLWNvbnRlbnQgPiAmLWFycm93IHtcbiAgICByaWdodDogMTZweDtcbiAgfVxuXG4gICYtcGxhY2VtZW50LXJpZ2h0ID4gJi1jb250ZW50ID4gJi1hcnJvdyxcbiAgJi1wbGFjZW1lbnQtcmlnaHRUb3AgPiAmLWNvbnRlbnQgPiAmLWFycm93LFxuICAmLXBsYWNlbWVudC1yaWdodEJvdHRvbSA+ICYtY29udGVudCA+ICYtYXJyb3cge1xuICAgIGxlZnQ6IEBwb3BvdmVyLWRpc3RhbmNlIC0gQHBvcG92ZXItYXJyb3ctd2lkdGggKyAycHg7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBAcG9wb3Zlci1iZztcbiAgICBib3JkZXItbGVmdC1jb2xvcjogQHBvcG92ZXItYmc7XG4gICAgYm94LXNoYWRvdzogLTNweCAzcHggN3B4IGZhZGUoQGJsYWNrLCA3JSk7XG4gIH1cbiAgJi1wbGFjZW1lbnQtcmlnaHQgPiAmLWNvbnRlbnQgPiAmLWFycm93IHtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgfVxuICAmLXBsYWNlbWVudC1yaWdodFRvcCA+ICYtY29udGVudCA+ICYtYXJyb3cge1xuICAgIHRvcDogMTJweDtcbiAgfVxuICAmLXBsYWNlbWVudC1yaWdodEJvdHRvbSA+ICYtY29udGVudCA+ICYtYXJyb3cge1xuICAgIGJvdHRvbTogMTJweDtcbiAgfVxuXG4gICYtcGxhY2VtZW50LWJvdHRvbSA+ICYtY29udGVudCA+ICYtYXJyb3csXG4gICYtcGxhY2VtZW50LWJvdHRvbUxlZnQgPiAmLWNvbnRlbnQgPiAmLWFycm93LFxuICAmLXBsYWNlbWVudC1ib3R0b21SaWdodCA+ICYtY29udGVudCA+ICYtYXJyb3cge1xuICAgIHRvcDogQHBvcG92ZXItZGlzdGFuY2UgLSBAcG9wb3Zlci1hcnJvdy13aWR0aCArIDJweDtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBAcG9wb3Zlci1iZztcbiAgICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBAcG9wb3Zlci1iZztcbiAgICBib3gtc2hhZG93OiAtMnB4IC0ycHggNXB4IGZhZGUoQGJsYWNrLCA2JSk7XG4gIH1cbiAgJi1wbGFjZW1lbnQtYm90dG9tID4gJi1jb250ZW50ID4gJi1hcnJvdyB7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICB9XG4gICYtcGxhY2VtZW50LWJvdHRvbUxlZnQgPiAmLWNvbnRlbnQgPiAmLWFycm93IHtcbiAgICBsZWZ0OiAxNnB4O1xuICB9XG4gICYtcGxhY2VtZW50LWJvdHRvbVJpZ2h0ID4gJi1jb250ZW50ID4gJi1hcnJvdyB7XG4gICAgcmlnaHQ6IDE2cHg7XG4gIH1cblxuICAmLXBsYWNlbWVudC1sZWZ0ID4gJi1jb250ZW50ID4gJi1hcnJvdyxcbiAgJi1wbGFjZW1lbnQtbGVmdFRvcCA+ICYtY29udGVudCA+ICYtYXJyb3csXG4gICYtcGxhY2VtZW50LWxlZnRCb3R0b20gPiAmLWNvbnRlbnQgPiAmLWFycm93IHtcbiAgICByaWdodDogQHBvcG92ZXItZGlzdGFuY2UgLSBAcG9wb3Zlci1hcnJvdy13aWR0aCArIDJweDtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBAcG9wb3Zlci1iZztcbiAgICBib3JkZXItcmlnaHQtY29sb3I6IEBwb3BvdmVyLWJnO1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3gtc2hhZG93OiAzcHggLTNweCA3cHggZmFkZShAYmxhY2ssIDclKTtcbiAgfVxuICAmLXBsYWNlbWVudC1sZWZ0ID4gJi1jb250ZW50ID4gJi1hcnJvdyB7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gIH1cbiAgJi1wbGFjZW1lbnQtbGVmdFRvcCA+ICYtY29udGVudCA+ICYtYXJyb3cge1xuICAgIHRvcDogMTJweDtcbiAgfVxuICAmLXBsYWNlbWVudC1sZWZ0Qm90dG9tID4gJi1jb250ZW50ID4gJi1hcnJvdyB7XG4gICAgYm90dG9tOiAxMnB4O1xuICB9XG59XG5cbkBpbXBvcnQgJy4vcnRsJztcbiIsIkBpbXBvcnQgJy4uLy4uL3N0eWxlL3RoZW1lcy9pbmRleCc7XG5AaW1wb3J0ICcuLi8uLi9zdHlsZS9taXhpbnMvaW5kZXgnO1xuXG5AcG9wb3Zlci1wcmVmaXgtY2xzOiB+J0B7YW50LXByZWZpeH0tcG9wb3Zlcic7XG5cbi5Ae3BvcG92ZXItcHJlZml4LWNsc30ge1xuICAmLXJ0bCB7XG4gICAgZGlyZWN0aW9uOiBydGw7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cblxuICAmLW1lc3NhZ2Uge1xuICAgICYtdGl0bGUge1xuICAgICAgLkB7cG9wb3Zlci1wcmVmaXgtY2xzfS1ydGwgJiB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IEBmb250LXNpemUtYmFzZSArIDhweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiBAcGFkZGluZy1tZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLWJ1dHRvbnMge1xuICAgIC5Ae3BvcG92ZXItcHJlZml4LWNsc30tcnRsICYge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG5cbiAgICBidXR0b24ge1xuICAgICAgLkB7cG9wb3Zlci1wcmVmaXgtY2xzfS1ydGwgJiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5hbnQtcG9wb3ZlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbiIsIi51bmktLWJsb2NrcXVvdGUge1xuICBib3JkZXItbGVmdDogNXB4IHNvbGlkIHZhcigtLXVuaS1ibHVlLTEwMCk7XG59XG4iLCIudW5pLS1idXR0b25vbGQge1xuICB3aWR0aDogMTAwJTtcbiAgLS1iYWNrZ3JvdW5kOiB2YXIoLS11bmktY29sb3ItYmx1ZS1kYXJrKTtcbiAgY29sb3I6IHdoaXRlO1xuXG4gICZfX291dGxpbmUge1xuICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgYm9yZGVyOiB2YXIoLS11bmktY29sb3ItYmx1ZS1kYXJrKTtcbiAgICAtLWJhY2tncm91bmQ6IHdoaXRlO1xuICAgIGNvbG9yOiB2YXIoLS11bmktY29sb3ItYmx1ZS1kYXJrKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS11bmktY29sb3ItYmx1ZS1kYXJrKTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIH1cbn1cblxuLnVuaS1saW5rLWJ1dHRvbiB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNGRkZGRkY7XG5cbiAgbWluLWhlaWdodDogM3JlbTtcbiAgaGVpZ2h0OiAzcmVtO1xuXG4gIGJvcmRlci1yYWRpdXM6IDEuNXJlbTtcblxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIG9wYWNpdHk6IC42NTtcblxuICBwYWRkaW5nLWxlZnQ6IDNyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDNyZW07XG5cbiAgJjpob3ZlciwgJjpmb2N1cywgJjphY3RpdmUge1xuICAgIGNvbG9yOiAjRkZGRkZGO1xuICB9XG59XG5cbi51bmktLWJ1dHRvbiB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcblxuICBtaW4taGVpZ2h0OiAzcmVtO1xuICBoZWlnaHQ6IDNyZW07XG5cbiAgYm9yZGVyLXJhZGl1czogMzdweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdW5pLWJsdWUtMTAwKTtcblxuICAmOmhvdmVyIHtcbiAgICBib3gtc2hhZG93OiAwIDNweCA2cHggIzAwMDAwMDNCO1xuICB9XG5cbiAgJjpmb2N1cywgJjphY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXVuaS1wcmltYXJ5LTgwMCk7XG4gIH1cblxuICBwYWRkaW5nLWxlZnQ6IDNyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDNyZW07XG5cbiAgJl9fZnJlZS1jb3Vyc2VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS11bmktZnJlZS1jb3Vyc2UtcHJpbWFyeSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdW5pLWZyZWUtY291cnNlLWRhcmspO1xuXG4gICAgJjpob3ZlciwgJjpmb2N1cywgJjphY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdW5pLWZyZWUtY291cnNlLXNlY29uZGFyeSk7XG4gICAgfVxuICB9XG5cbiAgJl9fc21hbGwge1xuICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgaGVpZ2h0OiAycmVtO1xuXG4gICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICB9XG59XG5cbmlucHV0Oi13ZWJraXQtYXV0b2ZpbGwsXG5pbnB1dDotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbDpmb2N1cyxcbnRleHRhcmVhOi13ZWJraXQtYXV0b2ZpbGwsXG50ZXh0YXJlYTotd2Via2l0LWF1dG9maWxsOmhvdmVyXG50ZXh0YXJlYTotd2Via2l0LWF1dG9maWxsOmZvY3VzLFxuc2VsZWN0Oi13ZWJraXQtYXV0b2ZpbGwsXG5zZWxlY3Q6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbnNlbGVjdDotd2Via2l0LWF1dG9maWxsOmZvY3VzIHtcbiAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgNTAwMHMgZWFzZS1pbi1vdXQgMHM7XG59XG5cbiIsIi51bmktLW5ldy1idXR0b24ge1xuICB0cmFuc2l0aW9uOiBlYXNlLWluIDAuM3M7XG5cbiAgbWluLWhlaWdodDogM3JlbTtcbiAgaGVpZ2h0OiAzcmVtO1xuXG4gIGJvcmRlci1yYWRpdXM6IDM3cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHZhcigtLXVuaS1ibHVlLTIwMCk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICY6aG92ZXIsICY6Zm9jdXMsICY6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS11bmktcHJpbWFyeS04MDApO1xuICB9XG5cbiAgcGFkZGluZy1sZWZ0OiAzcmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAzcmVtO1xuXG4gICZfX2ZyZWUtY291cnNlcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdW5pLWZyZWUtY291cnNlLXByaW1hcnkpO1xuICAgIGJvcmRlcjogbm9uZTtcblxuICAgICY6aG92ZXIsICY6Zm9jdXMsICY6YWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXVuaS1mcmVlLWNvdXJzZS1zZWNvbmRhcnkpO1xuICAgIH1cbiAgfVxuXG4gICZfX3NtYWxsIHtcbiAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgIGhlaWdodDogMnJlbTtcblxuICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgfVxuXG4gICYtbmV3cyB7XG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiB2YXIoLS11bmktYmx1ZS0yMDApICFpbXBvcnRhbnQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS11bmktYmxhY2stNDAwKSAhaW1wb3J0YW50O1xuICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5idXR0b24ge1xuICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbn1cblxuLnVuaS0tcHJpbWFyeS1idXR0b24ge1xuICB0cmFuc2l0aW9uOiBlYXNlLWluIDAuM3M7XG5cbiAgY29sb3I6IHZhcigtLXVuaS1ncmV5LTEwMCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXVuaS1ibHVlLTEwMCk7XG4gIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gIGJvcmRlcjogbm9uZTtcblxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuXG4gIG1pbi13aWR0aDogMTJyZW07XG4gIHdpZHRoOiAxMnJlbTtcbiAgbWluLWhlaWdodDogMi41cmVtO1xuICBoZWlnaHQ6IDNyZW07XG5cbiAgJjpob3ZlciB7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMTBweCAxcHggcmdiYSgxLCAxNjksIDI0MCwgMC40NCk7XG4gICAgYm94LXNoYWRvdzogMCAwIDEwcHggMXB4IHJnYmEoMSwgMTY5LCAyNDAsIDAuNDQpO1xuICB9XG5cbiAgJjphY3RpdmUge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdW5pLWJsdWUtNDAwKTtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdW5pLWdyZXktMTAwKTtcbiAgICBjb2xvcjogdmFyKC0tdW5pLWdyZXktMzAwKTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLnVuaS0tc2Vjb25kYXJ5LWJ1dHRvbiB7XG4gIHRyYW5zaXRpb246IGVhc2UtaW4gMC4zcztcblxuICBjb2xvcjogdmFyKC0tdW5pLWJsdWUtMTAwKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXVuaS1ibHVlLTEwMCk7XG4gIG1hcmdpbjogMTBweDtcblxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuXG4gIG1pbi13aWR0aDogOHJlbTtcbiAgd2lkdGg6IDlyZW07XG4gIG1pbi1oZWlnaHQ6IDIuN3JlbTtcbiAgaGVpZ2h0OiAzcmVtO1xuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS11bmktZ3JleS0xMDApO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXVuaS1ibHVlLTQwMCk7XG4gIH1cblxuICAmOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS11bmktYmx1ZS00MDApO1xuICAgIGNvbG9yOiB2YXIoLS11bmktZ3JleS0xMDApO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS11bmktZ3JleS0xMDApO1xuICAgIGNvbG9yOiB2YXIoLS11bmktZ3JleS0xMDApO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLmFudC1jYXJvdXNlbCAuc2xpY2stZG90cyBsaSB7XG4gIGJhY2tncm91bmQ6ICNGRkY7XG59XG5cbi5hbnQtY2Fyb3VzZWwgLnNsaWNrLWRvdHMgbGkuc2xpY2stYWN0aXZlIGJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXVuaS1ibHVlLTEwMCk7XG59XG4iLCIudW5pLS1pbnB1dCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXVuaS1saWdodC00MDApO1xuXG4gIG1pbi1oZWlnaHQ6IDMuNXJlbTtcbiAgaGVpZ2h0OiAzLjVyZW07XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIHBhZGRpbmc6IDFyZW0gMS41cmVtO1xuICBib3JkZXItcmFkaXVzOiAzN3B4O1xuICBib3gtc2hhZG93OiAwcHggM3B4IDZweCAjMDAwMDAwMjk7XG4gIGJvcmRlcjogbm9uZTtcblxuICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG5cbiAgLmFudC1pbnB1dC1hZmZpeC13cmFwcGVyLCAuYW50LWlucHV0IHtcbiAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICBpbnB1dCB7XG4gICAgZm9udC1mYW1pbHk6ICdTZWdvZSBVSSc7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuXG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IG5vbmU7XG5cbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdmFyKC0tdW5pLWNvbnRyYXN0LTMwMCkgIWltcG9ydGFudDtcbiAgICAgIGNvbG9yOiB2YXIoLS11bmktY29udHJhc3QtMzAwKSAhaW1wb3J0YW50O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdW5pLWxpZ2h0LTQwMCkgIWltcG9ydGFudDtcbiAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMzBweCB2YXIoLS11bmktbGlnaHQtNDAwKSBpbnNldCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICYsXG4gICAgJjotaW50ZXJuYWwtYXV0b2ZpbGwtc2VsZWN0ZWQsXG4gICAgJjotd2Via2l0LWF1dG9maWxsLFxuICAgICY6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbiAgICAmOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG4gICAgJjotd2Via2l0LWF1dG9maWxsOmFjdGl2ZSB7XG4gICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdmFyKC0tdW5pLWNvbnRyYXN0LTUwMCkgIWltcG9ydGFudDtcbiAgICAgIGNvbG9yOiB2YXIoLS11bmktY29udHJhc3QtNTAwKSAhaW1wb3J0YW50O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdW5pLWxpZ2h0LTQwMCkgIWltcG9ydGFudDtcbiAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMzBweCB2YXIoLS11bmktbGlnaHQtNDAwKSBpbnNldCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICZbdHlwZT1cInRleHRcIl06aG92ZXIsICZbdHlwZT1cInRleHRcIl06Zm9jdXMge1xuICAgICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6ZGlzYWJsZWQsICY6cmVhZC1vbmx5IHtcbiAgICAgIG9wYWNpdHk6IC42O1xuICAgIH1cbiAgfVxuXG4gIG56LXNwaW4ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgei1pbmRleDogMTA7XG4gIH1cblxuICAuYW50LWlucHV0LXByZWZpeCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAuNXJlbTtcbiAgfVxuXG4gIC5hbnQtaW5wdXQtZ3JvdXAtYWRkb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogbm9uZTtcblxuICAgICYgPiAqIHtcbiAgICAgIG1hcmdpbi1yaWdodDogLTIuMnJlbTtcbiAgICAgIG1hcmdpbi10b3A6IC0xcmVtO1xuICAgIH1cbiAgfVxufVxuIiwiLnVuaS0tbmV3LWlucHV0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG5cbiAgbWluLWhlaWdodDogMy41cmVtO1xuICBoZWlnaHQ6IDMuNXJlbTtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgcGFkZGluZzogMXJlbSAxLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDM3cHg7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNnB4ICMwMDAwMDAyOTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdW5pLWdyZXktMTAwKTtcblxuICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG5cbiAgLmFudC1pbnB1dC1hZmZpeC13cmFwcGVyLCAuYW50LWlucHV0IHtcbiAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICBpbnB1dCB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IG5vbmU7XG5cbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdmFyKC0tdW5pLWNvbnRyYXN0LTMwMCkgIWltcG9ydGFudDtcbiAgICAgIGNvbG9yOiB2YXIoLS11bmktZ3JleS0xMDApICFpbXBvcnRhbnQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICYsXG4gICAgJjotaW50ZXJuYWwtYXV0b2ZpbGwtc2VsZWN0ZWQsXG4gICAgJjotd2Via2l0LWF1dG9maWxsLFxuICAgICY6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbiAgICAmOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG4gICAgJjotd2Via2l0LWF1dG9maWxsOmFjdGl2ZSB7XG4gICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdmFyKC0tdW5pLWNvbnRyYXN0LTUwMCkgIWltcG9ydGFudDtcbiAgICAgIGNvbG9yOiB2YXIoLS11bmktZ3JleS0zMDApICFpbXBvcnRhbnQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICZbdHlwZT1cInRleHRcIl06aG92ZXIsICZbdHlwZT1cInRleHRcIl06Zm9jdXMge1xuICAgICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6ZGlzYWJsZWQsICY6cmVhZC1vbmx5IHtcbiAgICAgIG9wYWNpdHk6IC42O1xuICAgIH1cbiAgfVxuXG4gIG56LXNwaW4ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgei1pbmRleDogMTA7XG4gIH1cblxuICAuYW50LWlucHV0LXByZWZpeCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAuNXJlbTtcbiAgfVxuXG4gIC5hbnQtaW5wdXQtZ3JvdXAtYWRkb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogbm9uZTtcblxuICAgICYgPiAqIHtcbiAgICAgIG1hcmdpbi1yaWdodDogLTIuMnJlbTtcbiAgICAgIG1hcmdpbi10b3A6IC0xcmVtO1xuICAgIH1cbiAgfVxufVxuXG4udW5pLS1ib3gtbGFiZWwtZmxvYXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctdG9wOiAxM3B4O1xuICB3aWR0aDogdmFyKC0tdW5pLWlucHV0LXdpZHRoLCAzMzBweCk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuXG4gIC51bmktLWlucHV0LXRleHQsIC5sb2dpbi0taW5wdXQtcGFzc3dvcmQge1xuICAgIHdpZHRoOiB2YXIoLS11bmktaW5wdXQtd2lkdGgsIDMzMHB4KTtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXVuaS1ncmV5LTMwMCk7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTtcblxuICAgIG1hcmdpbi10b3A6IDIwcHg7XG5cbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjY0LCAwLjA5LCAwLjA4LCAxKTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC42NCwgMC4wOSwgMC4wOCwgMSk7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICBtaW4taGVpZ2h0OiAyLjVyZW07XG4gICAgaGVpZ2h0OiAyLjVyZW07XG5cbiAgICAmOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMCA1MHB4IHRyYW5zcGFyZW50IGluc2V0OyAvLyBDb3IgZG8gZnVuZG9cbiAgICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB2YXIoLS11bmktZ3JleS0zMDApOyAvKiBDb3IgZG8gdGV4dG8gKi9cbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS11bmktYmx1ZS0yMDApICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxuXG4gIC51bmktLWxhYmVsIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyMHB4O1xuICAgIGxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBmb250LXdlaWdodDogbGlnaHRlcjtcbiAgICBmb250LXNpemU6IDE1cHg7XG5cbiAgICB0cmFuc2l0aW9uOiBhbGwgLjFzIGVhc2Utb3V0O1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIC4xcyBlYXNlLW91dDtcbiAgICAtbW96LXRyYW5zaXRpb246IGFsbCAuMXMgZWFzZS1vdXQ7XG4gIH1cblxuICAudW5pLS1pbnB1dC10ZXh0OnJlcXVpcmVkOmludmFsaWQgKyAudW5pLS1sYWJlbCB7XG4gICAgY29sb3I6IHZhcigtLXVuaS1ncmV5LTMwMCk7XG4gIH1cblxuICAudW5pLS1pbnB1dC10ZXh0OmZvY3VzOnJlcXVpcmVkOmludmFsaWQge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS11bmktZ3JleS0zMDApO1xuICB9XG5cbiAgLnVuaS0taW5wdXQtdGV4dDpyZXF1aXJlZDppbnZhbGlkICsgLnVuaS0tbGFiZWwge1xuICAgIGNvbnRlbnQ6ICcqJztcbiAgfVxuXG4gIC51bmktLWlucHV0LXRleHQ6LXdlYmtpdC1hdXRvZmlsbCArIC51bmktLWxhYmVsLFxuICAudW5pLS1pbnB1dC10ZXh0OmZvY3VzICsgLnVuaS0tbGFiZWwsXG4gIC51bmktLWlucHV0LXRleHQ6bm90KDpwbGFjZWhvbGRlci1zaG93bikgKyAudW5pLS1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgY29sb3I6IHZhcigtLXVuaS1ncmV5LTMwMCk7XG4gIH1cbn1cblxuLnBhc3N3b3JkLWlucHV0IHtcbiAgcGFkZGluZy1yaWdodDogMi44cmVtO1xufVxuIiwibGFiZWxbbnotY2hlY2tib3hdIHtcbiAgY29sb3I6IHZhcigtLXVuaS1jb250cmFzdC01MDApO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuXG4gIHNwYW4sXG4gIC5hbnQtY2hlY2tib3gtY2hlY2tlZDo6YWZ0ZXIge1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgfVxufVxuIiwiLnVuaS0tY2hlY2tib3gtY29udGFpbmVyIHtcbiAgd2lkdGg6IDMzMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIG1hcmdpbi10b3A6IDQwcHg7XG5cbiAgLnVuaS0tY2hlY2tib3gtbGFiZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctbGVmdDogMjVweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IGxpZ2h0ZXI7XG4gICAgY29sb3I6IHZhcigtLXVuaS1ncmV5LTEwMCk7XG5cbiAgICAudW5pLS1jaGVja2JveCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgd2lkdGg6IDA7XG5cbiAgICAgICY6Y2hlY2tlZCB+IC5jaGVja21hcmsge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS11bmktYmx1ZS0yMDApO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIG9wYWNpdHk6IDE7XG5cbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IGZhZGVPcGFjaXR5IDFzIGVhc2UtaW4tb3V0O1xuICAgICAgICAtbW96LWFuaW1hdGlvbjogZmFkZU9wYWNpdHkgMXMgZWFzZS1pbi1vdXQ7XG4gICAgICAgIC1vLWFuaW1hdGlvbjogZmFkZU9wYWNpdHkgMXMgZWFzZS1pbi1vdXQ7XG4gICAgICAgIGFuaW1hdGlvbjogZmFkZU9wYWNpdHkgMXMgZWFzZS1pbi1vdXQ7XG4gICAgICB9XG5cbiAgICAgICY6ZGlzYWJsZWQgfiAuY2hlY2ttYXJrIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdW5pLWdyZXktMjAwKTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgfVxuXG4gICAgICAmOmNoZWNrZWQgfiAuY2hlY2ttYXJrOjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5jaGVja21hcms6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgbGVmdDogNnB4O1xuICAgICAgdG9wOiAwO1xuICAgICAgd2lkdGg6IDhweDtcbiAgICAgIGhlaWdodDogMTdweDtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgIGJvcmRlci1yaWdodDogM3B4IHNvbGlkICNmZmY7XG4gICAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgI2ZmZjtcbiAgICB9XG5cbiAgICAuY2hlY2ttYXJrIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICB3aWR0aDogMjBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdW5pLWdyZXktMTAwKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPcGFjaXR5IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4iLCIudW5pLS1wcmltYXJ5LTUwMCB7XG4gIGNvbG9yOiB2YXIoLS11bmktYmx1ZS0xMDApO1xufVxuIiwiLnVuaS0tZmllbGRzZXQge1xuICBwYWRkaW5nLWJvdHRvbTogLjVyZW07XG5cbiAgbGVnZW5kIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXVuaS1ibHVlLTEwMCk7XG4gIH1cblxuICB1bCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgfVxuXG4gIGxpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgLnN1YnNjcmlwdGlvbi1wZXJpb2Qge1xuICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgfVxuXG4gIHAsIGxhYmVsIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIG1hcmdpbi10b3A6IC4yNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAuMjVyZW07XG4gIH1cblxuICBwIHtcbiAgICBtYXJnaW4tbGVmdDogLjI1cmVtO1xuICB9XG5cbiAgbGFiZWwge1xuICAgIG1hcmdpbi1yaWdodDogLjI1cmVtO1xuICB9XG5cbiAgaDQge1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuIiwiLnVuaS0tZm9ybSB7XG4gICYtLWl0ZW0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcblxuICAgIHNtYWxsIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgbWFyZ2luLXRvcDogMXJlbTtcblxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIG56LXNlbGVjdCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAudW5pLS1pbnB1dCB7XG4gICAgaW5wdXQge1xuICAgICAgJi5uZy10b3VjaGVkLm5nLWludmFsaWQge1xuICAgICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogcmVkICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiByZWQgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi51bmktLXByb2ZpbGUtLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuXG4gIGgyIHtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBsaW5lLWhlaWdodDogMS44cmVtO1xuICAgIGZvbnQtZmFtaWx5OiAnU2Vnb2UgVUknO1xuXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgIHNwYW4ge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBmb250LWZhbWlseTogJ1NlZ29lIFVJJztcblxuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgfVxuICB9XG5cbiAgaHIge1xuICAgIGZsZXg6IDE7XG5cbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG5cbiAgICBoZWlnaHQ6IC4yNXJlbTtcblxuICAgIG1hcmdpbi1sZWZ0OiAxLjVyZW07XG5cbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdW5pLWJsdWUtMTAwKTtcbiAgfVxuXG4gIGEge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS11bmktbGlnaHQtMTAwKTtcblxuICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgaGVpZ2h0OiAycmVtO1xuICAgIG1pbi13aWR0aDogMnJlbTtcbiAgICB3aWR0aDogMnJlbTtcblxuICAgIG1hcmdpbi1sZWZ0OiAxLjVyZW07XG5cbiAgICAmLnVuaS0taGVhZGVyLS1hX19pbnZlcnQtbWFyZ2luIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW07XG4gICAgfVxuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgaSB7XG4gICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgfVxuICB9XG59XG4iLCIudW5pLS1ociB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDFweDtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS11bmktYmx1ZS0xMDApO1xuICBtYXJnaW46IC43NXJlbSAwO1xuXG4gIGJvcmRlcjogbm9uZTtcbn1cbiIsIi5maXgtaW5uZXItaHRtbCB7XG4gIGlmcmFtZSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgcCwgc3BhbiwgbGFiZWwsIGgxLCBoMiwgaDMsIGg0LCBoNCwgaDUsIGg2IHtcbiAgICBjb2xvcjogdmFyKC0tdW5pLWNvbnRyYXN0LTUwMCkgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgfVxuXG4gIGEge1xuICAgIGNvbG9yOiB2YXIoLS11bmktcHJpbWFyeS00MDApICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIH1cbn1cbiIsImFbaHJlZl0ge1xuICBjb2xvcjogdmFyKC0tdW5pLWJsdWUtMTAwKTtcblxuICAmOnZpc2l0ZWQge1xuICAgIGNvbG9yOiB2YXIoLS11bmktY29udHJhc3QtNTAwKTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgfVxufVxuIiwiLnVuaS0tbW9kYWwtLW5vLWNvbnRlbnQge1xuICAuYW50LW1vZGFsLWNvbnRlbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbn1cblxuLnVuaS0tbW9kYWwtLWRlZmF1bHQge1xuICAuYW50LW1vZGFsLWNvbnRlbnQge1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgcGFkZGluZzogMS41cmVtO1xuICB9XG59XG5cbi5jcmVhdGUtbm90ZS1tb2RhbHtcbiAgLmFudC1tb2RhbC1jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS11bmktYmxhY2stNTAwKTtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIHBhZGRpbmc6IDIzcHggMzdweDtcbiAgfVxuXG4gIC5hbnQtbW9kYWwtY2xvc2UteHtcbiAgICBmb250LXdlaWdodDogOTAwO1xuICAgIGNvbG9yOiB2YXIoLS11bmktYmx1ZS0xMDApO1xuICB9XG59XG5cbi51bmktLW1vZGFsLS1kZWZhdWx0IC5hbnQtbW9kYWwtY29udGVudCB7XG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChhdCB0b3AsIzIxMjQyOSAxMCUsIzEwMTAxMCA1MCUpO1xufVxuIiwiLnVuaS0tbmF2IHtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgZm9udC1mYW1pbHk6IFwiT3BlbiBTYW5zXCIsIHNhbnMtc2VyaWY7XG5cbiAgdWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIG1hcmdpbjogMDtcblxuICB9XG5cbiAgbGkge1xuICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07XG4gIH1cblxuICBhIHtcbiAgICBmb250LXNpemU6IDFyZW07XG5cbiAgICBjb2xvcjogdmFyKC0tdW5pLWdyZXktMzAwKTtcblxuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDJweDtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gICZfX3NlbGVjdGVke1xuICAgIGNvbG9yOiB2YXIoLS11bmktY29udHJhc3QtNTAwKSAhaW1wb3J0YW50O1xuICB9XG59XG5cblxuLmJhY2tncm91bmQtLWRvbWVzdGlrYXtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YwMkQwMCAhaW1wb3J0YW50O1xufVxuIiwiLnByb2dyZXNzLWJhciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMzMlO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgdmFyKC0tdW5pLWNvbG9yLW9yYW5nZSkgMCUsIHZhcigtLXVuaS1jb2xvci1vcmFuZ2UtZGFyaykgMTAwJSk7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDM7XG59XG4iLCIuaGlkZS1zY3JvbGxiYXIge1xuICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lO1xuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG4gIHNjcm9sbGJhci1oZWlnaHQ6IG5vbmU7XG59XG5cbi51bmktLXNjcm9sbGJhciB7XG4gIC0tdGh1bWItY29sb3I6IHZhcigtLXNjcm9sbGJhci10aHVtYi1jb2xvciwgdmFyKC0tdW5pLWJsdWUtMTAwKSk7XG4gIC0tdGh1bWItYmFja2dyb3VuZDogdmFyKC0tc2Nyb2xsYmFyLXRodW1iLWJhY2tncm91bmQsIHZhcigtLXVuaS1saWdodC0yMDApKTtcblxuICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNHB4IHZhcigtLXRodW1iLWJhY2tncm91bmQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuNnJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aHVtYi1iYWNrZ3JvdW5kKTtcbiAgfVxuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogMC40cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuNnJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aHVtYi1iYWNrZ3JvdW5kKTtcbiAgfVxuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNHB4IHZhcigtLXRodW1iLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aHVtYi1jb2xvcik7XG4gIH1cbn1cblxuKiB7XG4gIHNjcm9sbGJhci13aWR0aDogdGhpbjtcbiAgc2Nyb2xsYmFyLWNvbG9yOiB2YXIoLS11bmktYmx1ZS0yMDApIHZhcigtLXVuaS1ibGFjay0yMDApO1xufVxuXG4vKiBXb3JrcyBvbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkgKi9cbio6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDNweDtcbiAgaGVpZ2h0OiA1cHg7XG59XG5cbio6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tdW5pLWJsYWNrLTEwMCk7XG59XG5cbio6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdW5pLWJsdWUtMjAwKTtcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbn1cbiIsIi51bmktLXNlbGVjdCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gIGNvbG9yOiB2YXIoLS11bmktY29udHJhc3QtNTAwKTtcbiAgYm9yZGVyLXJhZGl1czogMnJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdW5pLWNvbnRyYXN0LTUwMCk7XG5cbiAgbWluLWhlaWdodDogMy41cmVtO1xuICBoZWlnaHQ6IDMuNXJlbTtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgcGFkZGluZzogMXJlbSAxLjVyZW07XG4gIGJveC1zaGFkb3c6IDAgM3B4IDZweCAjMDAwMDAwMjk7XG5cbiAgZm9udC1zaXplOiAxcmVtO1xuXG4gIG56LXNlbGVjdC1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IHZhcigtLXVuaS1ncmV5LTMwMCk7XG4gIH1cblxuICBuei1zZWxlY3QtdG9wLWNvbnRyb2wge1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuXG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIH1cblxuICBuei1zZWxlY3Qtc2VhcmNoIHtcbiAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIH1cblxuICBuei1zZWxlY3QtaXRlbSwgbnotc2VsZWN0LXBsYWNlaG9sZGVyIHtcbiAgICBsaW5lLWhlaWdodDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cblxuICBuei1zZWxlY3QtYXJyb3cge1xuICAgIHJpZ2h0OiAyNHB4O1xuICAgIGNvbG9yOiB2YXIoLS11bmktY29udHJhc3QtNTAwKTtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgdmVydGljYWwtYWxpZ246IDA7XG4gICAgdG9wOiBjYWxjKDUwJSAtIC41cmVtKTtcblxuICAgIGhlaWdodDogMXJlbTtcbiAgICB3aWR0aDogMXJlbTtcblxuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbn1cbiIsIi51bmktLW5ldy1zZWxlY3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHdpZHRoOiAyNTBweDtcblx0bWFyZ2luLXJpZ2h0OiAxcmVtO1xuICBtYXJnaW4tdG9wOiAzMHB4O1xuXG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuXG4gICZbb3Blbl0ge1xuICAgIHotaW5kZXg6IDE7XG4gIH1cblxuICBzdW1tYXJ5IHtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS11bmktYmxhY2stNDAwKTtcbiAgICBjb2xvcjogdmFyKC0tdW5pLWdyZXktMjAwKTtcbiAgICBtaW4taGVpZ2h0OiAyLjVyZW07XG4gICAgaGVpZ2h0OiAyLjVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMzdweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS11bmktZ3JleS0xMDApO1xuICB9XG5cbiAgc3VtbWFyeTo6LXdlYmtpdC1kZXRhaWxzLW1hcmtlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICZbb3Blbl0gc3VtbWFyeTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDB2dztcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgfVxuXG4gIHN1bW1hcnk6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogLjVyZW07XG4gICAgaGVpZ2h0OiAuNXJlbTtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgY3VycmVudENvbG9yO1xuICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgY3VycmVudENvbG9yO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDJweDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSBlYXNlLWluLW91dCAxMDBtcztcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZSgwJSwgMCUpO1xuICB9XG5cbiAgc3VtbWFyeTpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gICZbb3Blbl0gc3VtbWFyeTphZnRlciB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKSB0cmFuc2xhdGUoNTAlLCAwJSk7XG4gICAgY29sb3I6IHZhcigtLXVuaS1ibHVlLTIwMCk7XG4gIH1cblxuICB1bCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdW5pLWJsYWNrLTEwMCk7XG4gICAgY29sb3I6IHZhcigtLXVuaS1ncmV5LTMwMCk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogY2FsYygxMDAlICsgLjVyZW0pO1xuICAgIGxlZnQ6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICB6LWluZGV4OiAyO1xuICB9XG5cbiAgbGkge1xuICAgIG1hcmdpbjogMDtcbiAgICBoZWlnaHQ6IDNyZW07XG4gICAgcGFkZGluZzogMTBweCAyMHB4O1xuXG4gICAgJjpob3ZlcntcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXVuaS1ncmV5LTQwMCk7XG4gICAgICBjb2xvcjogdmFyKC0tdW5pLWdyZXktMTAwKTtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZXtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXVuaS1ibHVlLTIwMCk7XG4gICAgICBjb2xvcjogdmFyKC0tdW5pLWdyZXktMTAwKTtcbiAgICB9XG4gIH1cblxufVxuIiwiLm5vd3JhcCB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiIsIi5uZ3gtdWktdG91cl9iYWNrZHJvcCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuIiwiLnN3aXRjaF9fY29udGFpbmVyIHtcbiAgbWFyZ2luOiAzMHB4IGF1dG87XG5cbiAgLnN3aXRjaCB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBtYXJnaW4tbGVmdDogLTk5OTlweDtcblxuICAgICYrbGFiZWwge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLnN3aXRjaC0tc2hhZG93OmNoZWNrZWQrbGFiZWw6YmVmb3JlIHtcbiAgICBjb2xvcjogdmFyKC0tdW5pLWdyZXktMTAwKTtcbiAgfVxuXG4gIC5zd2l0Y2gtLXNoYWRvdzpjaGVja2VkK2xhYmVsOmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNjBweCk7XG4gIH1cblxuICAuc3dpdGNoLS1zaGFkb3crbGFiZWwge1xuICAgIHBhZGRpbmc6IDJweDtcbiAgICB3aWR0aDogMTIwcHg7XG4gICAgaGVpZ2h0OiA2MHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkZGRkZGQ7XG4gICAgYm9yZGVyLXJhZGl1czogNjBweDtcblxuICAgICY6YmVmb3JlLFxuICAgIDphZnRlciB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMXB4O1xuICAgICAgbGVmdDogMXB4O1xuICAgICAgYm90dG9tOiAxcHg7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgIHJpZ2h0OiAxcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA2MHB4O1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjRzO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgd2lkdGg6IDYycHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC40cztcbiAgICB9XG4gIH1cbn1cblxuLnN3aXRjaC0tZmxhdCtsYWJlbCB7XG4gIHBhZGRpbmc6IDJweDtcbiAgd2lkdGg6IDIwMHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDYwcHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC40cztcbiAgZm9udC13ZWlnaHQ6IGxpZ2h0ZXI7XG59XG5cbi5zd2l0Y2gtLWZsYXQrbGFiZWw6YmVmb3JlLFxuLnN3aXRjaC0tZmxhdCtsYWJlbDphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6IFwiXCI7XG59XG5cbi5zd2l0Y2gtLWZsYXQrbGFiZWw6YmVmb3JlIHtcbiAgdG9wOiAycHg7XG4gIGxlZnQ6IDJweDtcbiAgYm90dG9tOiAycHg7XG4gIHJpZ2h0OiAycHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXVuaS1ibGFjay00MDApO1xuICBib3JkZXItcmFkaXVzOiA2MHB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuNHM7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLnN3aXRjaC0tZmxhdCtsYWJlbDphZnRlciB7XG4gIHRvcDogNHB4O1xuICBsZWZ0OiA0cHg7XG4gIGJvdHRvbTogNHB4O1xuICB3aWR0aDogMTAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXVuaS1ibHVlLTIwMCk7XG4gIGJvcmRlci1yYWRpdXM6IDUycHg7XG4gIHRyYW5zaXRpb246IG1hcmdpbiAwLjRzLCBiYWNrZ3JvdW5kIDAuNHM7XG4gIGNvbnRlbnQ6IFwiRW50cmFyXCI7XG4gIGNvbG9yOiB2YXIoLS11bmktZ3JleS0xMDApO1xuICBmb250LXNpemU6IDE0cHg7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5zd2l0Y2gtLWZsYXQ6Y2hlY2tlZCtsYWJlbDphZnRlciB7XG4gIG1hcmdpbi1sZWZ0OiA5MnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS11bmktYmx1ZS0yMDApO1xuICBjb250ZW50OiBcIlJlZ2lzdHJhclwiO1xuICBjb2xvcjogdmFyKC0tdW5pLWdyZXktMTAwKTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLnN3aXRjaF9fY29udGFpbmVyIGxhYmVsIC5jYW4tdG9nZ2xlX19zd2l0Y2g6YmVmb3JlIHtcbiAgbGVmdDogMTAwcHg7XG4gIHRvcDogNnB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICB3aWR0aDogMTAwcHg7XG4gIHBhZGRpbmc6IDAgMTJweDtcbn1cblxuLnN3aXRjaF9fY29udGFpbmVyIGxhYmVsIC5jYW4tdG9nZ2xlX19zd2l0Y2g6YWZ0ZXIge1xuICB0b3A6IDJweDtcbiAgbGVmdDogMnB4O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIHdpZHRoOiA2NXB4O1xuICBsaW5lLWhlaWdodDogMzJweDtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4uc3dpdGNoX19jb250YWluZXIgbGFiZWwgLmNhbi10b2dnbGVfX3N3aXRjaDpiZWZvcmUge1xuICBjb250ZW50OiBhdHRyKGRhdGEtY2hlY2tlZCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA3cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4uc3dpdGNoX19jb250YWluZXIgbGFiZWwgLmNhbi10b2dnbGVfX3N3aXRjaDphZnRlciB7XG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS11bmNoZWNrZWQpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTBweDtcbiAgbGVmdDogMjBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuIiwiLnRvb2x0aXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBvcGFjaXR5OiAxMDA7XG4gICAgbWFyZ2luLXRvcDogODBweDtcblxuICAgIHN2Z3tcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGZpbGw6IHZhcigtLXVuaS1ncmV5LTEwMCk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xuXG4gICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICBmaWxsOiB2YXIoLS11bmktYmx1ZS0yMDApO1xuICAgICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnRvb2x0aXAgLnRvb2x0aXB0ZXh0IHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdW5pLWJsYWNrLTEwMCk7XG4gICAgY29sb3I6IHZhcigtLXVuaS1ncmV5LTEwMCk7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBtaW4td2lkdGg6IDExMHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIGJvdHRvbTogMjAwJTtcbiAgICBsZWZ0OiAwJTtcblxuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuICB9XG5cbiAgLnRvb2x0aXAgLnRvb2x0aXB0ZXh0OjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLTVweDtcbiAgICBib3JkZXItd2lkdGg6IDEwcHg7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXVuaS1ibGFjay0xMDApIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuXG4gIH1cblxuICAudG9vbHRpcDpob3ZlciAudG9vbHRpcHRleHQge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuIiwiLnRhZyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiAjMjEyNDI5O1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gIG1pbi13aWR0aDogN3JlbTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gIGhlaWdodDogMi41cmVtO1xuICBib3gtc2hhZG93OiAwIDAgMjBweCAycHggcmdiYSgwLDAsMCwwLjIpO1xuICBtYXJnaW46IDFyZW0gMDtcblxuICBAbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgICBtYXJnaW46IDAuMnJlbSAwO1xuICB9XG5cbiAgJi0tYnVsbGV0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kOiAjZGU0MjQyO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgbWFyZ2luOiAwIDFyZW0gMCAwO1xuICAgIGhlaWdodDogMC41cmVtO1xuICAgIHdpZHRoOiAwLjVyZW07XG4gIH1cblxuICAmLS1saXZlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZGU0MjQyO1xuICB9XG5cbiAgJi0tb25saW5lIHtcbiAgICBiYWNrZ3JvdW5kOiAjMDI3QkM1O1xuICB9XG5cbiAgJi0tcHJlc2VudGlhbCB7XG4gICAgYmFja2dyb3VuZDogIzBEMEQwRDtcbiAgfVxuXG4gICYtLXRpdGxlIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IHNtYWxsO1xuXG4gICAgJi0tdGltZSB7XG4gICAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG5cbiAgJi0tc3RhciB7XG4gICAgZm9udC1zaXplOiBzbWFsbDtcbiAgfVxufVxuXG4vLyBtdWRhciBjb3IgcHJlZW5jaGltZW50byBlc3RyZWxhXG4uYW50LXJhdGUtc3Rhci1mdWxsIHBhdGg6Zmlyc3QtY2hpbGR7XG4gIGZpbGw6IHZhcigtLXVuaS15ZWxsb3ctMTAwKSAhaW1wb3J0YW50O1xufVxuXG4uYW50LXJhdGUtc3Rhci1mdWxsIHBhdGg6bGFzdC1jaGlsZHtcbiAgZmlsbDogdmFyKC0tdW5pLXllbGxvdy0xMDApICFpbXBvcnRhbnQ7XG59XG5cbi5hbnQtcmF0ZS1zdGFyLWZpcnN0IHBhdGg6Zmlyc3QtY2hpbGR7XG4gIGZpbGw6IHZhcigtLXVuaS15ZWxsb3ctMTAwKSAhaW1wb3J0YW50O1xufVxuXG4uYW50LXJhdGUtc3Rhci1oYWxmIHBhdGg6bGFzdC1jaGlsZHtcbiAgZmlsbDogdmFyKC0tdW5pLXllbGxvdy0xMDApICFpbXBvcnRhbnQ7XG59XG5cbi8vIHJldGlyYXIgcHJlZW5jaGltZW50byBkYSBlc3RyZWxhXG4uYW50LXJhdGUtc3Rhci16ZXJve1xuICBwYXRoOmZpcnN0LWNoaWxkIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLy8gbXVkYXIgY29yIGRhIGVzdHJlbGEgc2VtIHByZWVuY2hpbWVudG9cbiAgcGF0aDpudGgtY2hpbGQoMil7XG4gICAgZmlsbDogd2hpdGUgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiLmNhdGVnb3J5LWljb257XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbiAgcGFkZGluZzogMC41cmVtO1xuICBib3JkZXItcmFkaXVzOiA5cHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IGxpbmVhci1ncmFkaWVudCgyMjdkZWcsICNGMTU3NTQgMCUsICNCNzMwMkUgMTAwJSkgMCUgMCUgbm8tcmVwZWF0IHBhZGRpbmctYm94O1xuXG4gICYtd2hpdGV7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA5cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgbGluZWFyLWdyYWRpZW50KDIyN2RlZywgdmFyKC0tdW5pLWdyZXktMjAwKSAwJSwgdmFyKC0tdW5pLWdyZXktMzAwKSAxMDAlKSAwJSAwJSBuby1yZXBlYXQgcGFkZGluZy1ib3g7XG5cbiAgICBpbWd7XG4gICAgICBmaWx0ZXI6IGludmVydCg1MCUpIGJyaWdodG5lc3MoODAlKTtcbiAgICB9XG4gIH1cblxuICAmLWJsdWV7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA5cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgbGluZWFyLWdyYWRpZW50KDIxNmRlZywgIzAxQTlGMCAwJSwgIzAzNTdBNSAxMDAlKSAwJSAwJSBuby1yZXBlYXQgcGFkZGluZy1ib3g7XG4gIH1cblxuICAmLWdyZWVue1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogOXB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IGxpbmVhci1ncmFkaWVudCgyMjdkZWcsICM0NEMxOEEgMCUsICMxQzcwNEMgMTAwJSkgMCUgMCUgbm8tcmVwZWF0IHBhZGRpbmctYm94O1xuICB9XG5cbiAgJi15ZWxsb3d7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA5cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgbGluZWFyLWdyYWRpZW50KDIyN2RlZywgI0Y5QzA1NyAwJSwgI0RCOTUzNyAxMDAlKSAwJSAwJSBuby1yZXBlYXQgcGFkZGluZy1ib3g7XG4gIH1cblxuICAmLXJlZHtcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgcGFkZGluZzogMC41cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDlweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCBsaW5lYXItZ3JhZGllbnQoMjI3ZGVnLCAjRjE1NzU0IDAlLCAjQjczMDJFIDEwMCUpIDAlIDAlIG5vLXJlcGVhdCBwYWRkaW5nLWJveDtcbiAgfVxuXG4gICYtcHVycGxle1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogOXB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IGxpbmVhci1ncmFkaWVudCgyMjdkZWcsICNCQzAwRjQgMCUsICM4NDAwQUIgMTAwJSkgMCUgMCUgbm8tcmVwZWF0IHBhZGRpbmctYm94O1xuICB9XG59XG4iLCIuZHJvcGRvd24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdW5pLWJsYWNrLTEwMCk7XG4gIHRvcDogMDtcblxuICBidXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICB3aWR0aDogNzVweDtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgcGFkZGluZy10b3A6IDVweDtcblxuICAgIC5pY29uLS1ub3RpZmljYXRpb25zIHtcbiAgICAgIHdpZHRoOiAyMHB4O1xuICAgIH1cblxuICAgIC5pY29uLS1hcnJvdyB7XG4gICAgICB3aWR0aDogMTBweDtcbiAgICB9XG5cbiAgICAudXNlci0tYXZhdGFyIHtcbiAgICAgIHdpZHRoOiAzNXB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICB9XG5cbiAgICBAbWVkaWEobWF4LXdpZHRoOiA0MjZweCkge1xuICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgd2lkdGg6IDUwcHg7XG4gICAgfVxuICB9XG5cbiAgJi0tbm90aWZpY2F0aW9ucyB7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMjBweDtcblxuICAgIGJ1dHRvbiB7XG4gICAgICB3aWR0aDogNjBweDtcbiAgICB9XG4gIH1cblxuICAmLS1wcm9maWxlIHtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMjBweDtcbiAgICBib3JkZXItbGVmdDogMC41cHggc29saWQgdmFyKC0tdW5pLWdyZXktNDAwKTtcbiAgfVxuXG4gICYtLWljb25zIHtcbiAgICB3aWR0aDogMjBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIH1cbn1cblxuLmRyb3Bkb3duLWNvbnRlbnQge1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDYycHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXVuaS1ibGFjay0xMDApO1xuICBtaW4td2lkdGg6IDIwMHB4O1xuICBib3gtc2hhZG93OiAwIDhweCAxNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpO1xuICB6LWluZGV4OiAxO1xuICBhbmltYXRpb246IGZhZGVJbiAwLjNzIGxpbmVhcjtcblxuICBhLCBhIGltZyB7XG4gICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICB9XG5cbiAgJi1ub3RpZmljYXRpb25zIHtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIG1pbi13aWR0aDogNTAwcHg7XG4gICAgYmFja2dyb3VuZDogcmdiKDIxLCAyMiwgMjYpO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgyMSwgMjIsIDI2LCAxKSAwJSwgcmdiYSgzMywgMzYsIDQxLCAxKSA1MCUsIHJnYmEoMjEsIDIyLCAyNiwgMSkgMTAwJSk7XG5cbiAgICAmLS1oZWFkZXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuXG4gICAgICBzcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgICYtLWZvb3RlciB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG9wYWNpdHk6IDc1JTtcblxuICAgICAgc3BhbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmRyb3Bkb3duLWNvbnRlbnQgYSB7XG4gIGNvbG9yOiBibGFjaztcbiAgcGFkZGluZzogMTJweCAxNnB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvcGFjaXR5OiA4MCU7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcblxuICBpbWcge1xuICAgIG9wYWNpdHk6IDUwJTtcbiAgfVxuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXVuaS1ncmV5LTQwMCk7XG4gIH1cbiAgXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHggMjBweCAwIDA7XG4gIH1cblxuICAmOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAyMHB4IDIwcHg7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS11bmktZ3JleS00MDApO1xuICAgIG9wYWNpdHk6IDkwJTtcblxuICAgIGltZyB7XG4gICAgICBvcGFjaXR5OiA5MCU7XG4gICAgfVxuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmFkaXVzOiAyMHB4IDIwcHggMCAwO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmFkaXVzOiAwIDAgMjBweCAyMHB4O1xuICAgIH1cbiAgfVxufVxuXG4uZHJvcGRvd246aG92ZXIgLmRyb3BidG4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2U4ZTQxO1xufVxuIiwiLnVuaS1ub3RpZmljYXRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuXG4gICYtLWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICYtLWljb24ge1xuICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgfVxuXG4gICAgJi0tdGV4dCB7XG4gICAgICBmb250LXNpemU6IDE3cHg7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcblxuICAgICAgc3BhbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgY29sb3I6IHZhcigtLXVuaS1ncmV5LTIwMCkgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLS1pY29uIHtcbiAgICB3aWR0aDogMzBweDtcbiAgICBvcGFjaXR5OiA3MCU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJi10eXBlLW5vdGlmaWNhdGlvbiB7XG4gICAgYm9yZGVyOiAwLjVweCBzb2xpZCB2YXIoLS11bmktYmx1ZS0xMDApO1xuICAgIGJhY2tncm91bmQ6IHJnYigyOSwgNjYsIDgyKTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjksIDY2LCA4MiwgMSkgMCUsIHJnYmEoMzEsIDM0LCAzOSwgMSkgNTElLCByZ2JhKDIxLCAyMiwgMjYsIDEpIDEwMCUpO1xuXG4gICAgaDMge1xuICAgICAgY29sb3I6IHZhcigtLXVuaS1ibHVlLTIwMCk7XG4gICAgfVxuICB9XG5cbiAgJi10eXBlLXN1Y2Nlc3Mge1xuICAgIGJvcmRlcjogMC41cHggc29saWQgdmFyKC0tdW5pLWdyZWVuLTEwMCk7XG4gICAgYmFja2dyb3VuZDogcmdiKDI5LCA4MiwgNTgpO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgyOSwgODIsIDU4LCAxKSAwJSwgcmdiYSgzMSwgMzQsIDM5LCAxKSA1MSUsIHJnYmEoMjEsIDIyLCAyNiwgMSkgMTAwJSk7XG5cbiAgICBoMyB7XG4gICAgICBjb2xvcjogdmFyKC0tdW5pLWdyZWVuLTIwMCk7XG4gICAgfVxuICB9XG5cbiAgJi10eXBlLWVycm9yIHtcbiAgICBib3JkZXI6IDAuNXB4IHNvbGlkIHZhcigtLXVuaS1yZWQtMTAwKTtcbiAgICBiYWNrZ3JvdW5kOiByZ2IoODIsIDI5LCAyOCk7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDgyLCAyOSwgMjgsIDEpIDAlLCByZ2JhKDMxLCAzNCwgMzksIDEpIDUxJSwgcmdiYSgyMSwgMjIsIDI2LCAxKSAxMDAlKTtcblxuICAgIGgzIHtcbiAgICAgIGNvbG9yOiB2YXIoLS11bmktcmVkLTIwMCk7XG4gICAgfVxuICB9XG5cbiAgJi10eXBlLXdhcm5pbmcge1xuICAgIGJvcmRlcjogMC41cHggc29saWQgdmFyKC0tdW5pLXllbGxvdy0xMDApO1xuICAgIGJhY2tncm91bmQ6IHJnYig4MSwgNjMsIDI5KTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoODEsIDYzLCAyOSwgMSkgMCUsIHJnYmEoMzEsIDM0LCAzOSwgMSkgNTElLCByZ2JhKDIxLCAyMiwgMjYsIDEpIDEwMCUpO1xuXG4gICAgaDMge1xuICAgICAgY29sb3I6IHZhcigtLXVuaS15ZWxsb3ctMjAwKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ== */
